Compare commits

...

597 Commits

Author SHA1 Message Date
zadam
4bc4b9ade7 release 0.49.0-beta 2021-12-23 23:03:21 +01:00
zadam
f0217cae5e fix webpack build 2021-12-23 23:01:25 +01:00
zadam
da050c6369 release 0.49.0-beta 2021-12-23 22:33:49 +01:00
zadam
842c317568 cleanup 2021-12-23 21:08:43 +01:00
zadam
47845930f4 sharing improvements 2021-12-23 20:54:48 +01:00
zadam
972f2f40bf share improvements/cleanup 2021-12-23 12:54:21 +01:00
zadam
94111c464b changed symbol for shared notes 2021-12-22 16:02:36 +01:00
zadam
94e18dfb7c add symbol to shared notes in the tree 2021-12-22 15:01:54 +01:00
zadam
bc9903191e fix migration script 2021-12-22 13:14:50 +01:00
zadam
cd8c24ceae windows better-sqlite3 binary 2021-12-22 12:58:33 +01:00
zadam
f9709c9c39 added shareOmitDefaultCss label 2021-12-22 11:43:21 +01:00
zadam
c0964a4f12 added shareAlias label 2021-12-22 10:57:02 +01:00
zadam
bcef8579ce added shareCss relation and shareHiddenFromTree label 2021-12-22 09:36:38 +01:00
zadam
1180be75d1 added 404 error page 2021-12-22 09:10:38 +01:00
zadam
cfa49c7b1b feature request desc 2021-12-21 22:47:31 +01:00
zadam
8e4926ed7f cleanup of issue templates, closes #2461 2021-12-21 22:46:29 +01:00
zadam
2430dcba65 mac better_sqlite3.node 2021-12-21 22:02:25 +01:00
zadam
7c885a8b76 sharing WIP 2021-12-21 22:01:06 +01:00
zadam
402e29d6dc Merge remote-tracking branch 'origin/stable' 2021-12-21 16:13:09 +01:00
zadam
e7faebfac3 sharing WIP 2021-12-21 16:12:59 +01:00
zadam
10a5773c66 added consistency check to reconcile erased status between entity_changes and data 2021-12-21 14:25:26 +01:00
zadam
1e8472266f small fixes 2021-12-21 13:22:13 +01:00
zadam
b30792a3da make sure that the info about periodically erased entities is sent to the frontend 2021-12-21 11:04:41 +01:00
zadam
8b56fb10fd Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package-lock.json
2021-12-20 22:24:50 +01:00
zadam
26602e8226 focus "jump to note" in new tab when there are no workspaces, #2455 2021-12-20 22:10:21 +01:00
zadam
b8eeb0371c fixed bug in search where note with inherited attribute is not matched when the owning note is not matched, #2457 2021-12-20 21:35:12 +01:00
zadam
b1c4737e78 fixed search tests 2021-12-20 21:31:44 +01:00
zadam
3860028a9e sharing WIP 2021-12-20 17:30:47 +01:00
zadam
16d97b95af optimized custom script/widget loading 2021-12-19 22:08:52 +01:00
zadam
20465a4f71 allow setting image labels in sender API 2021-12-19 21:56:19 +01:00
zadam
2ff6e50af4 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	src/public/app/dialogs/options/other.js
2021-12-19 10:54:30 +01:00
zadam
e0378c5064 optimized #keyboardShortcuts retrieval 2021-12-19 10:50:38 +01:00
zadam
e29aee1aae use lazy title loading in bookmarks buttons to have decrypted title upon protected session start, #2393 2021-12-19 10:36:48 +01:00
zadam
1aff42f453 fix setting exported file extension when truncated 2021-12-17 22:03:00 +01:00
zadam
a098630e09 add default JPG quality if value not in range 2021-12-16 22:10:51 +01:00
zadam
074eb1c02f importing of cloned notes should not depend on ZIP listing order, fixes #2440 2021-12-15 22:36:45 +01:00
zadam
657496ea37 Merge remote-tracking branch 'origin/master' 2021-12-14 21:55:00 +01:00
zadam
034aaa7209 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	src/public/app/dialogs/options/other.js
2021-12-14 21:54:38 +01:00
zadam
a81ea3771f release 0.48.8 2021-12-13 11:12:31 +01:00
Lake
4ceba8cc6e Correct "Options change have been saved." (#2436) 2021-12-12 21:08:54 +01:00
zadam
d9550dd59b fix "getNoteStartingWith" relic 2021-12-11 14:15:38 +01:00
zadam
97f7fe7b18 set note type/mime in PUT body to avoid http proxy slash reencoding, fixes #2419 2021-12-08 22:36:09 +01:00
zadam
a810c08c02 trigger note revisioning saving also on title changes #2426 2021-12-08 21:04:22 +01:00
zadam
ab550a1e8d share functionality WIP 2021-12-07 23:03:49 +01:00
zadam
08e8047d8a share functionality WIP 2021-12-06 22:53:17 +01:00
zadam
67da877135 Merge remote-tracking branch 'origin/stable' 2021-12-06 20:57:32 +01:00
zadam
263b7a84bb full text search should look into link URLs as well, closes #2412 2021-12-06 20:54:37 +01:00
zadam
9d18bebb13 "show in full search" closes the quick search dropdown 2021-12-06 20:43:50 +01:00
zadam
2d339dec6b share functionality WIP 2021-12-05 23:10:35 +01:00
zadam
b78ab1ee02 boxicons 2.1.1 2021-12-05 21:50:02 +01:00
Myzel394
2f5f116345 Improve tabs background coloring (#2395)
* improved tabs background coloring

* improvements

* reverted changes

* color improvements

* added light theme
2021-12-05 13:07:53 +01:00
zadam
64f1671566 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package.json
2021-12-04 13:48:35 +01:00
zadam
26bcfe5160 fix hidden notes appearing in note map, closes #2403 2021-12-04 13:45:15 +01:00
zadam
89c04e6b6b fix "note paths" ribbon widget for root note 2021-12-04 13:33:31 +01:00
zadam
e079359c15 copied links from tree should be reference links 2021-12-04 12:50:02 +01:00
zadam
c4ab6b4866 copy action in the tree (or ctrl+c) will also save note links to the clipboard, fixes #2401 2021-12-04 12:45:27 +01:00
zadam
630d9f2e45 backlinks improvements, #2349 2021-12-02 22:00:42 +01:00
zadam
bbceb6251a backlinks WIP, #2349 2021-12-01 23:12:54 +01:00
zadam
89f117da5b Merge remote-tracking branch 'origin/stable' 2021-11-30 21:40:55 +01:00
zadam
40fb4ff56b fix for "Today page does not work for 2021-11-20", closes #2359 2021-11-30 21:21:16 +01:00
zadam
d64c14482b after removing last promoted attribute, create a blank one, fixes #2388 2021-11-26 23:39:08 +01:00
zadam
61f197dd81 Merge remote-tracking branch 'origin/stable' 2021-11-25 21:36:19 +01:00
zadam
564366861e prevent browser from caching images/files, fixes #2378 2021-11-25 20:24:42 +01:00
zadam
1ee2abcc42 keep some types (e.g. mermaid diagrams) of notes full width 2021-11-24 21:27:55 +01:00
zadam
f4242b4096 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	src/services/app_info.js
2021-11-24 20:08:34 +01:00
zadam
d59542dd6f Merge remote-tracking branch 'origin/master' 2021-11-23 23:09:37 +01:00
zadam
211ff90ee8 add "top" label to keep notes on top, allow sorting by label, #2343 2021-11-23 23:09:29 +01:00
zadam
8c11d022fb release 0.48.7 2021-11-23 21:53:32 +01:00
Myzel394
24210ef80c fixed settings menu (#2374)
(cherry picked from commit 3f40a52f65)
2021-11-23 21:38:13 +01:00
Myzel394
3f40a52f65 fixed settings menu (#2374) 2021-11-23 21:37:32 +01:00
zadam
df4cf80be4 fix version detection without running npm 2021-11-21 17:20:28 +01:00
zadam
bc854ee149 cleanup 2021-11-21 17:15:10 +01:00
Myzel394
b23ead8097 Fix: Highlighting searched term should ignore accents (#2364)
* fixed accent highlighting not working

* fixed

* fixes

* improvements
2021-11-21 16:27:50 +01:00
Myzel394
886fdf7cd6 Improve image compression (#2369)
* added options

* added checkbox handling to import into note

* added image compression option respecting
2021-11-21 16:27:13 +01:00
zadam
2135aa058e increase sync version to 22 2021-11-21 16:16:28 +01:00
zadam
de20183a22 Merge remote-tracking branch 'origin/stable' 2021-11-21 13:45:57 +01:00
zadam
42b5437c87 fix setup new document, closes #2368 2021-11-21 13:44:52 +01:00
zadam
67542f448d fix total height / scrolling on mobile chrome/safari, closes #2367 2021-11-21 13:39:47 +01:00
zadam
ae29c6bac4 global note map should respect hoisting, #2365 2021-11-21 10:40:48 +01:00
zadam
1dce96b4c1 Merge remote-tracking branch 'origin/stable' 2021-11-20 21:34:34 +01:00
zadam
08e9b59696 hide hidden subtree notes from search results, closes #2361 2021-11-20 21:01:37 +01:00
jasongwq
db9e35a7e1 add quick search in mobile layout (#2360)
Co-authored-by: jasongwq <jasongwq@126.com>
2021-11-20 20:55:52 +01:00
zadam
fe605c012a fix setting monospace font from theme 2021-11-20 13:20:06 +01:00
zadam
7a383a1314 create tray only for main window, not setup window 2021-11-20 12:52:23 +01:00
zadam
5290aab781 Merge remote-tracking branch 'origin/master' 2021-11-20 12:51:13 +01:00
zadam
86c3bbe5a2 Merge remote-tracking branch 'origin/stable' 2021-11-20 12:50:58 +01:00
zadam
4c7c53d8c8 retry for OpenNoteButtonWidget 2021-11-20 12:49:12 +01:00
Myzel394
21854b4a04 fixed title (#2356) 2021-11-19 13:03:12 +01:00
zadam
83f125a79f cleanup setting of utcDateCreated in branches and options code 2021-11-18 22:39:12 +01:00
zadam
e36bc42519 added changeId into entity_changes to have cross-sync change ID 2021-11-18 22:33:08 +01:00
zadam
15ac81627c DB cleanup migration 2021-11-18 21:52:56 +01:00
zadam
57fae2c8c6 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package-lock.json
#	package.json
2021-11-18 21:36:03 +01:00
zadam
87b76abef9 better-sqlite3 binaries 2021-11-18 21:35:23 +01:00
zadam
d345b7ed56 added entity changes check after sync check failure, fixed sync 2021-11-17 22:57:09 +01:00
zadam
298af217e9 fix bug overwriting entity changes 2021-11-17 21:47:41 +01:00
zadam
89322c4b03 upgrade to electron v16 and node v16 2021-11-16 22:43:08 +01:00
zadam
7d64f6a7dd increment lastProcessedEntityChangeId correctly 2021-11-16 22:12:53 +01:00
zadam
b7efc92099 frontend library updates 2021-11-15 22:28:56 +01:00
zadam
bc8b6284a6 fix exporting root note, closes #2346
(cherry picked from commit 20a187fab9)
2021-11-15 21:28:12 +01:00
zadam
20a187fab9 fix exporting root note, closes #2346 2021-11-15 21:23:19 +01:00
zadam
0b001f41c0 improvements/simplification to the update check 2021-11-14 21:52:18 +01:00
zadam
242977c7a5 cleanup after update check merge 2021-11-14 13:45:37 +01:00
Myzel394
364ac331da Add update available box (#2329)
* current stand

* added update available button

* improved update available icon

* improved update available box

* adding server side version

* added backend

* fixed text

* added option handling

* added field disabling

* removed options

* fixed terminology

* removed unnecessary imports
2021-11-14 13:42:50 +01:00
Myzel394
fcc0a80f4e Add tray (#2325)
* copied tray from old thread

* added visibility changer to tray
2021-11-14 13:36:39 +01:00
zadam
8996f35cc0 Merge remote-tracking branch 'origin/next49' 2021-11-14 13:18:13 +01:00
zadam
ed5eb5c6db fix dockerfile APK python dependency 2021-11-14 11:35:10 +01:00
zadam
acb50f44a1 release 0.48.6 2021-11-13 22:49:58 +01:00
zadam
c946030106 slowndown note map for small note counts to mitigate drift 2021-11-13 22:48:30 +01:00
zadam
df0411197b fixed syncing of erased notes, closes #2316 2021-11-12 21:19:23 +01:00
zadam
600c16551a fixed jsdoc script API generation, closes #2313 2021-11-10 21:30:54 +01:00
zadam
5710c9e997 extra init check to provide better error response 2021-11-10 21:12:53 +01:00
Myzel394
550a9fa711 fixed button background (#2310)
* fixed button background

* fixed width
2021-11-09 21:26:38 +01:00
zadam
51348cfbad don't show hidden subtree in autocomplete, fixes #2301 2021-11-04 22:27:39 +01:00
zadam
7400a6723e fix ribbon tab not appearing 2021-11-04 22:21:49 +01:00
zadam
e57dee2f14 pasted images should have trimmed names if too long (too often it's just garbage), closes #2307 2021-11-04 21:48:46 +01:00
zadam
b02a5b872a default font family after checking font overriding should be "theme" 2021-11-04 21:23:16 +01:00
zadam
4733de23ba fix {isoDate} template variable in journal date naming, closes #2306 2021-11-04 19:56:45 +01:00
zadam
57b7f6199e utcDateStr => utcDateTimeStr 2021-11-04 19:52:00 +01:00
zadam
a9df0c485f link map contains also backward references and tree map contains parents as well, closes #2270 2021-11-01 21:11:16 +01:00
zadam
21dedff9bf release 0.48.5 2021-11-01 10:25:43 +01:00
zadam
6f60cf1a86 release 0.48.5 2021-11-01 09:19:28 +01:00
zadam
930d29d64a add hack to produce debian compatible XZ compressed deb packages, fixes #2272 2021-11-01 09:11:04 +01:00
zadam
c345e7031b fix hoisting note from empty detail screen 2021-11-01 08:50:01 +01:00
zadam
fc46398a3c close last tab should behave similarly to 0.47, fixes #2298 2021-11-01 08:37:59 +01:00
zadam
7e41226549 fix "XSS" in the new empty tab, closes #2145 2021-10-31 23:12:24 +01:00
zadam
b0c0ed8512 add configurable max content width with default value of 1200px. 2021-10-31 21:55:11 +01:00
zadam
5978447185 add back .isDeleted property to becca's note, branch and attribute entities for BC, fixes #2268 2021-10-31 21:03:26 +01:00
zadam
ec4d445f97 make sure we're not using electron before enabling mobile version 2021-10-31 20:25:54 +01:00
zadam
e378435fbe added "switch to mobile version" button to web edition, closes #1889 2021-10-31 16:56:23 +01:00
zadam
e4dca4750f fix overriding monospace font size, closes #2296 2021-10-31 16:48:21 +01:00
zadam
311b98ffcb fix immediately closed attribute detail after clicking e.g. "add label" 2021-10-30 15:36:50 +02:00
zadam
126f41ae5e fix broken autocomplete in attribute editor, closes #2295 2021-10-30 15:22:20 +02:00
zadam
4b1678c416 fix sizing of the attribute detail in inherited attribute list 2021-10-29 21:47:04 +02:00
zadam
da74272f13 jsdoc @param => @type 2021-10-29 21:37:12 +02:00
zadam
9ce224d4c5 fix correct number of related attributes 2021-10-29 21:36:57 +02:00
zadam
ce57a13002 fix infinite recursion, closes #2292 2021-10-29 21:36:23 +02:00
zadam
e42357f1f8 release 0.48.4 2021-10-28 22:28:52 +02:00
zadam
ab7d121290 disallow removing last tab because of frequent race conditions when done too quickly 2021-10-28 22:27:21 +02:00
zadam
5209583a73 new note is in decrypted state even if protected, fixes #2291 2021-10-28 22:02:18 +02:00
zadam
35fc4ba9a4 fix wrapping of code blocks in note revisions, #2216 2021-10-28 20:38:35 +02:00
zadam
7f9019322b after creation of inverse relation we need to clear the cache, otherwise inverse relations will be created infinitely, fixes #2269 2021-10-27 22:36:33 +02:00
zadam
8a455e83f0 fix creating inverse relations 2021-10-27 22:28:33 +02:00
zadam
79b8d91025 validate/clean inverse relation name in promoted attr definition 2021-10-27 22:13:54 +02:00
zadam
bcabe5786f fix ordering of note contexts, fixes #2283 2021-10-27 21:32:03 +02:00
Abitofevrything
a7d3dafcf1 Remove logging line (#2284) 2021-10-27 19:45:59 +02:00
zadam
e6af84df39 fix updating "lastAcceptedEntityId" - can't take last entityChange since they might be reordered based on update order, closes #2277 2021-10-26 22:07:35 +02:00
zadam
674172f0b8 fix not updating attribute if not needed 2021-10-26 20:57:45 +02:00
zadam
7ec20f9384 fix refreshing ribbon titles upon entity change, closes #2274 2021-10-26 20:14:56 +02:00
zadam
6135de8507 Merge remote-tracking branch 'origin/master' 2021-10-25 21:59:34 +02:00
zadam
63b0d30e74 fix note status update, closes #2276 2021-10-25 21:59:21 +02:00
MeIchthys
9e29fba8da Update "Sync from Desktop" setup instructions. (#2271) 2021-10-25 21:15:17 +02:00
zadam
8910ae92c7 increasing amount of text rendered in note previous to 2000 (previously 1000) bytes, #2266 2021-10-25 20:01:41 +02:00
zadam
3413074235 when saving Saved Search or SQL console, move it to their home (i.e. remove from hidden subtree) 2021-10-24 14:53:45 +02:00
zadam
33aa72eb97 fix finding note paths of hidden notes, fixes #2262 2021-10-24 14:37:41 +02:00
zadam
6e0a65b59c release 0.48.3 2021-10-22 21:31:44 +02:00
zadam
56e49cfc19 set iconClass also on whole page clipping #2250 2021-10-21 23:02:22 +02:00
zadam
af40d73cee fix saving images from web clipper, closes #2249 2021-10-21 22:58:52 +02:00
zadam
50b7063811 display properly relations in note map even if they are not in the subtree, closes #2251 2021-10-21 22:52:52 +02:00
zadam
ee1b377bc2 deactivate some buttons based on note type 2021-10-21 21:28:44 +02:00
zadam
51dfe8bb14 avoid double rendering of note paths 2021-10-21 21:10:55 +02:00
zadam
e426ee3e4f disallow changing note type of note-map 2021-10-21 21:02:37 +02:00
zadam
a434aa113d fix repeated invocation of actions in note actions dropdown, closes #2255 2021-10-21 20:53:35 +02:00
Sathyam M Vellal
3b551e3e4d Add week notes to frontend_script_api (#2253)
Note: getWeekNote can take `startOfTheWeek` as options but is not passed to the api route.
2021-10-21 12:16:51 +02:00
zadam
3d98644bf6 release 0.48.2 2021-10-20 22:12:20 +02:00
zadam
a22e4d60b6 Merge remote-tracking branch 'origin/master' 2021-10-20 21:30:39 +02:00
zadam
069fbee3a6 allow async scripts in runOnBackend(), fixes #2243 2021-10-20 21:27:47 +02:00
Matt
8b21867c5c Set default icon for clipped notes (#2246)
* Set default icon for clipped notes

I like being able to differentiate between clipped notes and regular notes

* Globe
2021-10-20 08:57:05 +02:00
zadam
980309ae2a sharing WIP 2021-10-19 22:48:38 +02:00
zadam
6a6bd4541a sharing WIP 2021-10-17 14:44:59 +02:00
zadam
a14aa461ca sharing WIP 2021-10-16 22:13:34 +02:00
zadam
2cc4367b37 fix restoring note revision, closes #2232 2021-10-15 21:37:16 +02:00
zadam
241d1b1035 node 14.18.1 2021-10-14 22:22:27 +02:00
zadam
449081807e fix backend API's getNote, getBranch, getAttribute, closes #2230 2021-10-14 21:19:03 +02:00
zadam
dc0d6d24bd Merge remote-tracking branch 'origin/master' 2021-10-14 21:09:32 +02:00
zadam
4111a2f0e8 docker image build/push is now handled by github actions 2021-10-14 20:49:48 +02:00
TrAnn3l
8ef4b2bf50 Add tag based multi arch docker build. (#2229) 2021-10-14 20:42:27 +02:00
zadam
53875d26bc don't try to activate the pane being currently removed 2021-10-13 23:27:58 +02:00
zadam
f505f9d65a hide tooltip after clicking on a button, fixes #2228 2021-10-13 23:05:47 +02:00
zadam
6434889cd6 added SVG icon 2021-10-13 19:54:26 +02:00
zadam
21d2ca3c54 release 0.48.1-beta 2021-10-12 22:42:48 +02:00
zadam
64a3a8b561 tweaks 2021-10-12 22:36:22 +02:00
zadam
6738f2cd24 fix preserving original sourceId after running script notes, fixes #2224 2021-10-12 21:41:25 +02:00
zadam
1cdd644b8f fix reloading frontend after erasing notes in firefox, fixes #2221 2021-10-12 19:47:44 +02:00
zadam
f5dc05e79a Merge remote-tracking branch 'origin/master' 2021-10-12 19:30:42 +02:00
zadam
e2c37a6f8c add toggleLeftPane command/shortcut, closes #2225 2021-10-12 19:29:42 +02:00
sigaloid
cfea2440fb fix mobile frontend, closes #2217 (#2223)
does this

rename

Update bug_report.yml

Update bug_report.yml

Update bug_report.yml

Update bug_report.yml

Update and rename feature_request.md to feature_request.yml

Co-authored-by: zadam <zadam.apps@gmail.com>
2021-10-12 18:57:07 +02:00
zadam
23e34e8c02 fix mobile frontend, closes #2217 2021-10-11 23:00:52 +02:00
zadam
8bd7b657f8 added option to disable backup, #2210 2021-10-11 22:30:23 +02:00
zadam
899d9e65fd Merge remote-tracking branch 'origin/master' 2021-10-11 21:08:48 +02:00
zadam
ec732c0a98 filter out duplicated note paths, fixes #2218 2021-10-11 21:08:25 +02:00
Tom Free
66797f34c4 upgrade node v14.17.6 for gitpod since optional chaining is required (#2219) 2021-10-11 20:54:01 +02:00
zadam
1ad25b063d change order of ribbon tabs so that type specific ones are in front 2021-10-10 21:47:56 +02:00
zadam
e09b2902fa fix large image deforming the note revisions dialog, closing #2216 2021-10-10 21:47:22 +02:00
zadam
f6776df645 link overflowing with ellipsis 2021-10-10 14:34:54 +02:00
zadam
f0c672445d show note icons also in bookmark folder 2021-10-10 14:10:51 +02:00
zadam
a033ddfcb7 Merge remote-tracking branch 'origin/master' 2021-10-10 14:09:42 +02:00
zadam
d02d846024 empty notes in note overview will display the list of children 2021-10-10 14:09:22 +02:00
sigaloid
a8b6538c4e Add issue templates (#2213)
* Create feature_request.md

* Create bug_report.md

* Update feature_request.md

* Update bug_report.md

* Update feature_request.md

* Update feature_request.md

* Update bug_report.md

* Update bug_report.md

* Update bug_report.md

* Update feature_request.md

* Update bug_report.md
2021-10-10 11:22:32 +02:00
zadam
4eb4a44331 fix reopening last tab for splits 2021-10-09 22:03:24 +02:00
Abitofevrything
c1e1f3df24 Add shortcut to reopen last closed tab, closes #2211 (#2214) 2021-10-09 21:20:12 +02:00
zadam
11e9f8403e release 0.48.0-beta 2021-10-08 22:32:59 +02:00
zadam
ba676587df fix importing notePosition of directories 2021-10-08 22:31:35 +02:00
zadam
20696aa0ab fix finding single note by label with mixed case 2021-10-08 22:13:39 +02:00
zadam
a08690b123 CKEditor 30 content styles 2021-10-08 18:17:17 +02:00
zadam
79f54b4e97 inactive tab background tweaks 2021-10-08 18:09:24 +02:00
zadam
973fe52275 lighter node style of note map in dark theme 2021-10-08 16:45:21 +02:00
zadam
5938e033d4 lighter node style of note map in dark theme 2021-10-08 16:38:37 +02:00
zadam
eecba725b0 bookmarking should be available for all note types 2021-10-08 16:18:00 +02:00
zadam
fa40a5f496 fixed demo document + added bookmarks 2021-10-08 15:48:15 +02:00
zadam
abbba6501d script execution results are also pojo-ized 2021-10-08 15:14:23 +02:00
zadam
824f5dbaac fix handling of string/empty responses 2021-10-07 22:14:23 +02:00
zadam
24a45b03f5 bookmark folder 2021-10-07 21:57:20 +02:00
zadam
e10e18e63a added optimized version for single label searching + noteset cache fix 2021-10-07 07:46:13 +02:00
zadam
7152c5e51d refactored separate RightDropdownButton from calendar widgets 2021-10-06 22:25:33 +02:00
zadam
711af02928 fixed leaking entities into the responses and thus increased performance of e.g. create/duplicate note 2021-10-06 20:52:23 +02:00
zadam
df8706026e caching initial noteset to improve search times 2021-10-06 19:59:29 +02:00
zadam
17fe9a6a1b added help button to JS code notes to navigate to API docs 2021-10-06 18:31:19 +02:00
zadam
2d08eb7366 fix "connected with changes" sync status icon 2021-10-06 18:13:58 +02:00
zadam
8d42ffca6d basic bookmark support 2021-10-05 22:08:02 +02:00
zadam
0654dc855f Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package-lock.json
#	package.json
2021-10-05 19:45:32 +02:00
zadam
0571f02830 updated windows better-sqlite3 binary 2021-10-05 17:32:32 +02:00
zadam
b2b1c9ebb7 release 0.47.8 2021-10-04 22:18:33 +02:00
zadam
1f75b9c92f electron 13.5.1 to fix the TLS expiration issue 2021-10-04 22:16:51 +02:00
zadam
e2c4f32b5e added ckeditor with Find & Replace, for now without keyboard shortcut (ckeditor/ckeditor5#10645) 2021-10-04 21:53:57 +02:00
zadam
18ffcf7880 small fixes 2021-10-03 23:01:22 +02:00
Ben Jackson
6ae8508413 html_sanitizer: Demote H1 tags (#2190)
Generalize clipper.js support for removing H1 tags so it also applies to
imports. This will move all heading levels down to make room if
needed, only leaving duplicates at H6.
2021-10-03 20:56:08 +02:00
Abitofevrything
ec3b844026 Fix "Theme defined" option not working in font overrride (#2197) 2021-10-03 20:54:20 +02:00
zadam
a1ca538106 excludeFromTreeMap generalized to excludeFromNoteMap 2021-10-03 11:04:56 +02:00
zadam
75fc9e2048 small fixes 2021-10-03 10:42:46 +02:00
zadam
a1c1c7c830 added "reloadNeeded" to consistency checks so that entity changes fix won't force reload 2021-10-03 10:00:38 +02:00
zadam
e4a483aefe fix duplicate subtree 2021-10-02 23:26:18 +02:00
zadam
8c2a5d19f2 remove extra logging 2021-09-30 22:26:56 +02:00
Abitofevrything
2c450fc72d Allow HTML nodes in mermaid diagrams (#2192) 2021-09-30 20:12:23 +02:00
zadam
831de3ffed fix mermaid diagram size 2021-09-30 13:48:01 +02:00
zadam
291b434d70 added mermaid samples to demo document 2021-09-30 13:17:37 +02:00
zadam
a68fd5ab83 fixes 2021-09-30 13:02:07 +02:00
zadam
8a8bdaf80e updated API docs 2021-09-30 12:26:13 +02:00
zadam
26b89fc801 fix note revisions not displaying content length 2021-09-30 12:23:22 +02:00
zadam
af3fd61974 mermaid layout improvements 2021-09-30 10:18:03 +02:00
zadam
f4dde84f06 mermaid layout improvements 2021-09-30 09:48:03 +02:00
zadam
bc920dc5dc refactoring of mermaid support WIP 2021-09-29 22:14:45 +02:00
zadam
896c9cec04 refactoring of mermaid support WIP 2021-09-29 22:10:15 +02:00
Abitofevrything
b37bcd294c Implement mermaid diagrams (#2187)
* Start implementing mermaid diagrams

* Implement theming for mermaid diagrams

* Add edit tab to mermaid diagrams

* Remove comment

* Render mermaid diagrams in included notes

* Prevent mermaid notes from being removed to consistency checks
2021-09-29 21:54:56 +02:00
Ben Jackson
14f24c646a enex: Convert OneNote (via Evernote) todo images to Unicode checkboxes (#2189)
When a OneNote todo bullet is imported by Evernote it is converted to an
image showing the checkbox the way it looked in OneNote. This change
takes advantage of the consistency of that image hashing to convert
those images into unicode checkboxes (matching the existing ENEX
<en-todo> behavior) . It also removes the image attachments.
2021-09-29 18:11:04 +02:00
zadam
fea46bb150 ckeditor v30.0.0 2021-09-29 17:47:15 +02:00
zadam
37c30bf88a fix initializing new attribute in becca 2021-09-29 13:33:05 +02:00
zadam
d975acc99a fix collapsing/expanding the book note 2021-09-29 13:19:21 +02:00
zadam
c2d35dac4d small fixes and tweaks 2021-09-29 12:39:28 +02:00
zadam
5358b58191 fix double refresh of note map 2021-09-28 13:27:21 +02:00
zadam
0264e847ef fixes 2021-09-28 10:58:34 +02:00
zadam
c5917bfc78 fix "steel blue" demo theme 2021-09-28 10:02:25 +02:00
zadam
533fcd06e4 search should ignore diacritics, closes #2182 2021-09-27 22:09:55 +02:00
zadam
192a2fe9f9 Merge remote-tracking branch 'origin/master' 2021-09-27 21:02:04 +02:00
zadam
e6bc8ed3b5 allow overriding theme fonts 2021-09-27 21:01:56 +02:00
hyfree
8ff563ba40 Fix translation errors (#2180)
Fix translation errors
2021-09-27 14:37:29 +02:00
zadam
d5bd9875f9 fix websocket ping 2021-09-26 15:37:18 +02:00
zadam
113bebed3b switching themes via loading only specific CSS 2021-09-26 15:24:37 +02:00
zadam
2fcb0c05c0 added grey icon for the dark mode 2021-09-25 21:58:15 +02:00
zadam
fdb7b7721d right context menu on note map 2021-09-24 21:40:02 +02:00
Abitofevrything
3d9260c974 Add shortcut to delete newly created note quickly (#2177)
* Add shortcut to delete newly created note quickly

* Add space
2021-09-23 23:34:51 +02:00
zadam
8769fd71cb fix hidden notes appearing after creation in a new document 2021-09-23 23:30:30 +02:00
zadam
a2baa9bdb3 excludeFromTreeMap in demo document 2021-09-23 22:54:37 +02:00
zadam
88714cce94 simplify migration 2021-09-23 22:49:16 +02:00
zadam
bc1d438075 updated better sqlite 3 binaries 2021-09-23 22:36:12 +02:00
zadam
fd00f6bd97 removed older migrations since they don't work anyway (after becca refactoring) 2021-09-23 22:09:11 +02:00
zadam
b041d081db added migration to add excludeFromTreeMap for journal subtrees 2021-09-23 22:08:23 +02:00
zadam
fabf24a065 sizing of the link map 2021-09-22 23:02:38 +02:00
zadam
e3fc0968ba note map refactoring 2021-09-22 22:41:31 +02:00
zadam
a766374bf4 unified note map with ribbon map 2021-09-22 22:25:39 +02:00
zadam
0f693dae5e split of note map widget from type widget 2021-09-22 21:11:36 +02:00
zadam
208492bee1 tweaks to note map 2021-09-21 22:45:06 +02:00
zadam
b0d767df69 refresh note detail icon after type change 2021-09-21 20:28:52 +02:00
zadam
476b8250c9 note map refactoring 2021-09-20 23:04:41 +02:00
zadam
e4ba7d65e8 note map refactoring 2021-09-20 22:19:47 +02:00
zadam
9c9a3fc030 small refactorings of auto readonly size 2021-09-20 21:12:35 +02:00
Abitofevrything
b85cf07a28 Add config option to change automatic readonly size (#2174) 2021-09-20 21:08:41 +02:00
zadam
bdde52f004 global link map WIP 2021-09-20 20:02:23 +02:00
zadam
dd37f09309 global link map WIP 2021-09-18 14:29:41 +02:00
zadam
a0caa21458 global link map WIP 2021-09-17 22:34:23 +02:00
zadam
43e829ca99 global link map setup 2021-09-17 10:09:42 +02:00
zadam
ed26e32ccb skeleton for global link map 2021-09-16 23:09:48 +02:00
zadam
5866004e23 auto init of special notes after startup 2021-09-16 22:20:59 +02:00
zadam
06bcfe1aee refactoring of special notes route to a service 2021-09-16 22:09:39 +02:00
zadam
2d82da32d4 refactoring of "date-notes" to "special-notes" 2021-09-16 21:59:34 +02:00
zadam
2b017a956e store in CLS only entity change IDs instead of whole records 2021-09-16 15:02:20 +02:00
zadam
0448883782 option to erase notes immediately 2021-09-16 14:38:09 +02:00
zadam
9b9be5d155 reload frontend when consistency is fixed 2021-09-12 11:18:06 +02:00
zadam
3f2ee4aefd ckeditor fix to use correct modified mention plugin 2021-09-12 00:08:25 +02:00
zadam
b90ae8eb79 ckeditor fix 2021-09-11 22:01:04 +02:00
zadam
266807179c ckeditor upgrade to 29.2.0 2021-09-11 21:44:52 +02:00
zadam
4023c28f5e consistency_checks fix 2021-09-11 14:34:37 +02:00
zadam
010f075ac5 fix toggling protected flag and display of the title 2021-09-08 22:35:32 +02:00
zadam
151687cd9b fixing consistency checks 2021-09-08 21:54:26 +02:00
zadam
f24ea8137b revert of better sqlite3 dep for server build 2021-09-08 20:56:26 +02:00
zadam
b8d8e01908 updated icon 2021-09-07 23:14:17 +02:00
zadam
79d492d0f0 bug fixes 2021-09-07 22:56:54 +02:00
zadam
f0af26a57b Merge remote-tracking branch 'origin/master' 2021-09-07 22:37:12 +02:00
zadam
2b8c6e3dd0 bug fixes 2021-09-07 22:37:03 +02:00
Egor Dubenetskiy
061f8acf11 Add shortcut to follow link under text cursor (#1842) (#2148) 2021-09-05 12:24:38 +02:00
zadam
5cfd1c030d allow specifiyng sorted attribute (including off for overriding), #2142 2021-09-03 22:33:40 +02:00
zadam
6e300c7cf5 make sure the sorted branches are still sorted after drag & drop, #2142 2021-09-02 23:21:02 +02:00
zadam
167d4816fd display "multiple-parents" asterisk only for multiple non-search parents 2021-09-02 22:27:35 +02:00
zadam
3e5db71652 Merge remote-tracking branch 'origin/master' 2021-09-02 22:14:29 +02:00
zadam
1bc50ed976 strip # or ~ when getting attribute 2021-09-02 22:14:22 +02:00
zadam
08c638c2fa Create codeql-analysis.yml 2021-09-01 09:32:58 +02:00
zadam
5f22864a93 support image/jpg as well, closes #2103 2021-08-31 22:02:38 +02:00
zadam
cfcc34fa8e package upgrades (including #2134) 2021-08-31 21:54:42 +02:00
zadam
635f5fdc5b small refactoring 2021-08-26 22:10:59 +02:00
zadam
d0747b125c improvements in frontend sync (WIP) 2021-08-25 22:49:24 +02:00
zadam
66374bf95f improvements in frontend sync (WIP) 2021-08-24 22:59:51 +02:00
zadam
d27fcaf317 improvements in frontend sync (WIP) 2021-08-24 22:37:00 +02:00
zadam
0ee093f038 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	Dockerfile
#	bin/build-server.sh
#	package-lock.json
#	src/public/app/layouts/mobile_layout.js
2021-08-23 22:27:19 +02:00
zadam
06eb0ce910 alias shell with bash 2021-08-23 22:26:01 +02:00
zadam
c59b3a0c5c release 0.47.7 2021-08-22 12:36:49 +02:00
zadam
08eda83700 node update to 14.17.5 2021-08-22 12:25:50 +02:00
zadam
d23bb5fd17 note title gets overflown by long content 2021-08-22 12:21:22 +02:00
zadam
8cb07525cf Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package-lock.json
2021-08-21 21:32:11 +02:00
zadam
dc4c922edb fix imported strikethrough text, closes #2110 2021-08-21 21:31:30 +02:00
zadam
c3ed673453 release 0.47.6 2021-08-21 20:56:58 +02:00
zadam
3fd16a16e8 fix deletion in the mobile frontend, closes #2114 2021-08-21 20:53:45 +02:00
zadam
3448eba7b9 fix importing image captions, closes #2113
(cherry picked from commit e050e380b9)
2021-08-21 20:23:55 +02:00
zadam
ad8f374276 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package.json
2021-08-21 20:20:09 +02:00
zadam
19a6d89d4f fix include note PDF sizing, closes #2116 2021-08-21 20:19:02 +02:00
zadam
b99d83af50 improvements in frontend sync (WIP) 2021-08-20 21:42:06 +02:00
zadam
e050e380b9 fix importing image captions, closes #2113 2021-08-20 21:40:28 +02:00
zadam
68d599ed19 fix dynamic positioning 2021-08-20 21:39:56 +02:00
zadam
9d9bc31d91 fixes in frontend sync 2021-08-14 10:13:59 +02:00
zadam
b619a6515b fix first "0-24:00:00.000" log time 2021-08-12 20:57:43 +02:00
zadam
13a16e8251 force attribute value to be a string, closes #2104 2021-08-12 20:42:35 +02:00
zadam
86a53ceebb updating becca after sync 2021-08-07 21:21:30 +02:00
zadam
669eaa7509 fix SQL console 2021-07-27 22:08:41 +02:00
zadam
f50084dc1b removed annoying "sync update in progress" toast message 2021-07-26 21:28:45 +02:00
zadam
3a78a75afc fixed frontend update after note deletion 2021-07-26 21:11:51 +02:00
zadam
6e7b722bf2 fixed image being too high 2021-07-26 20:18:57 +02:00
zadam
4ca0f4b06b tree item styling based on flex, fixed root element jumping on hover 2021-07-25 22:46:45 +02:00
zadam
a33661d050 websocket events fill additional data from becca instead of database 2021-07-25 21:25:06 +02:00
zadam
f1338bb643 fix moving notes up and down using keyboard 2021-07-25 20:55:41 +02:00
zadam
b6b6d11ef7 keep sorting for content hash computation backwards compatible 2021-07-25 10:58:50 +02:00
zadam
17a6c94f66 fix errors popping up when closing tabs with multiple panes 2021-07-24 22:51:12 +02:00
zadam
e74979ccc1 fix edited notes ribbon widget 2021-07-24 22:13:32 +02:00
zadam
e003341dff optimized becca loader with raw queries 2021-07-24 21:10:16 +02:00
zadam
5c4369206a optimized content hash computation using raw queries 2021-07-24 12:04:48 +02:00
zadam
507a0e2e1d "pojoing" backend entity responses to significantly speed up 2021-07-24 11:38:57 +02:00
zadam
b381331029 refactoring of date notes route 2021-07-24 11:28:47 +02:00
zadam
af703445e1 hover for tree item buttons 2021-07-24 09:36:52 +02:00
zadam
c508217604 added underline heading style and make it a default 2021-07-23 16:04:56 +02:00
zadam
6a1287a3de fixes in the demo document 2021-07-23 14:53:31 +02:00
zadam
7261ab69bc add ignoreMissing flag to becca's getNotes() 2021-07-22 21:23:01 +02:00
zadam
f9cfd134b7 fixed corner cases in becca updates from sync 2021-07-22 20:19:44 +02:00
Abitofevrything
89d28ef27c Various window border related fixes (#2077)
* Remove gap between window control buttons and top of screen, add square hitbox to window control buttons

* Add better overflow detection for context menu

* Remove gap between tabs and top of screen
2021-07-22 19:37:53 +02:00
zadam
9da8d466b8 fix note hoisting 2021-07-21 22:47:52 +02:00
zadam
74d0626dc9 Merge remote-tracking branch 'origin/master' 2021-07-21 22:07:13 +02:00
zadam
830a357b9a better styling for drop marker #2073 2021-07-21 21:12:21 +02:00
Abitofevrything
7b129c7c34 Check for active node before create note in createNoteAfter (#2074) 2021-07-21 20:19:17 +02:00
zadam
adc98d4515 fix corner case when deleting a note with not yet downloaded images, closes #2073 2021-07-21 20:18:03 +02:00
zadam
f3959cf2aa styles for dropping items in the tree, WIP 2021-07-20 22:07:14 +02:00
zadam
6fdabbc73b fixed styling for loading notes 2021-07-20 21:25:26 +02:00
zadam
de6ff09bb9 fix moving notes 2021-07-20 21:12:23 +02:00
zadam
c82308489b fix import 2021-07-20 13:29:11 +02:00
zadam
98ee3b029a Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	src/becca/becca_service.js
2021-07-08 13:11:25 +02:00
zadam
a6bef45a30 fix "root" note in edited notes, closes #2058 2021-07-08 13:06:22 +02:00
zadam
05d077ce28 removed green theme 2021-07-05 17:10:10 +02:00
zadam
9adf4d7e8e fixed calendar widget when open in a non-date note 2021-07-05 15:50:21 +02:00
zadam
e2819109e9 added edited notes ribbon widget 2021-07-05 14:56:40 +02:00
zadam
3c8e267aad added calendar to the sidebar 2021-07-05 14:46:20 +02:00
zadam
da0670188b Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	src/services/ws.js
2021-07-05 10:14:37 +02:00
zadam
65938c5272 enable autoformat plugin in ckeditor build, closes #1339 2021-07-05 10:13:52 +02:00
zadam
7ea72632b8 display keyboard shortcuts in button widget title 2021-07-05 09:59:03 +02:00
zadam
9ca225b40f ribbon widgets titles show associated keyboard shortcuts 2021-07-05 09:44:41 +02:00
zadam
b68bdc5005 hide global menu tooltip upon click 2021-07-05 08:59:36 +02:00
zadam
9e77a424a4 fix sync status button 2021-07-04 21:24:47 +02:00
zadam
e25b965cb3 fix searching by label 2021-07-04 21:05:47 +02:00
zadam
8d3a3d4873 fix content length in note revisions 2021-07-04 16:49:23 +02:00
zadam
c115628f1f full search should be already triggered when going from quick search 2021-07-04 16:46:57 +02:00
zadam
703fbd30df css fixes 2021-07-04 15:49:52 +02:00
zadam
5011b6a51a don't try to fill additional properties for erased entities 2021-07-03 20:52:40 +02:00
zadam
4cc02ffb31 fix search 2021-07-02 23:22:10 +02:00
zadam
1e767482b4 removed black theme from setup 2021-06-30 21:30:54 +02:00
zadam
2035304b63 cleanup of entity changes processing 2021-06-30 20:54:15 +02:00
zadam
5be7f003ca sync fixes 2021-06-29 23:45:45 +02:00
zadam
b660238a40 backend import unification 2021-06-29 22:15:57 +02:00
zadam
b9ff481eb7 Merge remote-tracking branch 'origin/stable' into redesign
# Conflicts:
#	package.json
2021-06-29 20:55:58 +02:00
zadam
eebbf74517 Merge remote-tracking branch 'origin/master' into redesign 2021-06-29 20:55:15 +02:00
zadam
61e78858bc fix random ordering in search, fixes #2047 2021-06-29 20:54:56 +02:00
zadam
0351d7eff1 keyboard shortcuts for ribbon tabs 2021-06-27 12:53:05 +02:00
zadam
9e1c9782ff use MontserratLight also for setup 2021-06-26 23:20:12 +02:00
zadam
b2148f4a18 updated demo document with adjusted steel blue theme 2021-06-26 23:10:03 +02:00
zadam
16cc84be99 add back utcDateModified to Attribute and Branch becca entities 2021-06-26 17:32:40 +02:00
zadam
0265c190db adding check to the selected editability 2021-06-26 17:21:54 +02:00
zadam
32c88219c3 switcher for editability 2021-06-26 17:08:50 +02:00
zadam
962d5a5674 fixes 2021-06-26 13:35:36 +02:00
zadam
995e6c2fef release 0.47.5 2021-06-25 21:26:48 +02:00
zadam
0a2807c0b3 update to electron 13.1.4 which fixes the PDF display on Windows, closes #1976 2021-06-25 21:26:15 +02:00
zadam
1b9c3b0759 keep focus when clicking on edit read only note 2021-06-24 23:50:56 +02:00
zadam
f1a36f6cea add keyboard shortcut for the edit button, #2036 2021-06-24 20:27:04 +02:00
zadam
d9ec8bba80 fix layouting 2021-06-15 23:04:13 +02:00
zadam
02da5b598c added "edit" button into ribbon button container 2021-06-15 22:59:13 +02:00
zadam
2220c4491b layout fixes 2021-06-15 21:53:22 +02:00
zadam
fb31acc8e0 layout changes 2021-06-13 22:55:31 +02:00
dependabot[bot]
92cf2c18fa Bump normalize-url from 4.5.0 to 4.5.1 (#2006)
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-12 12:01:16 +02:00
alex
c5182b8757 add Chinese wiki support (#2013) 2021-06-12 12:00:55 +02:00
zadam
e054a1694e using rate limiter 2021-06-11 21:00:06 +02:00
zadam
3a7da1d561 icon and theme experiments 2021-06-06 22:15:51 +02:00
zadam
3893f663d0 sql console also doesn't create a normal note by default 2021-06-06 13:38:01 +02:00
zadam
a0de3c97a5 note paths widget does not show hidden path 2021-06-06 11:13:17 +02:00
zadam
c886583396 added "save search to note" button 2021-06-06 11:01:10 +02:00
zadam
e48609aa68 introducing hidden notes, WIP 2021-06-05 23:35:47 +02:00
zadam
882912826f fix ribbon shrinking/wrap 2021-06-05 22:40:17 +02:00
zadam
6d51593b7d removed CSS contain from widgets 2021-06-05 22:07:15 +02:00
zadam
faab6be48d removed zen mode 2021-06-05 21:56:39 +02:00
zadam
8debf18984 added plugin buttons to the launcher pane 2021-06-05 14:12:17 +02:00
zadam
4bf1c25721 fixed resizer for both left and right pane 2021-06-05 14:01:21 +02:00
zadam
a1d7737551 right pane restoration for custom widgets 2021-06-03 23:34:40 +02:00
zadam
2bfd7b844c refactoring of pane => split, "pane" keeps its old meaning (left-pane, center-pane, right-pane) 2021-06-03 22:23:11 +02:00
zadam
ac04be4433 mobile frontend fixes 2021-06-03 21:47:25 +02:00
zadam
5e5df72020 theme refactoring 2021-06-03 12:57:39 +02:00
zadam
f1344e3b95 refactoring of "collapsible section container" into "ribbon container" 2021-06-03 12:47:13 +02:00
zadam
9216e430db fix relation map 2021-06-03 12:32:48 +02:00
zadam
855b876d50 Merge remote-tracking branch 'origin/stable' into redesign 2021-06-03 12:29:58 +02:00
zadam
c04bbd4973 context menu now offer option to open notes in a new pane 2021-06-03 12:25:33 +02:00
zadam
1a615398aa docker now uses node 14.17 as other builds 2021-06-02 23:37:55 +02:00
zadam
b557a44f34 release 0.47.4 2021-06-02 21:44:19 +02:00
zadam
f50bb2278c Merge remote-tracking branch 'origin/stable' into stable 2021-06-02 21:41:06 +02:00
zadam
6b68068cde Merge remote-tracking branch 'origin/master' into stable 2021-06-02 21:40:43 +02:00
zadam
7ed816f1b2 dark theme tweaks 2021-06-02 21:39:18 +02:00
zadam
f8dd8ebf1a dark theme tweaks 2021-06-02 21:23:40 +02:00
zadam
4c64bd852e Merge remote-tracking branch 'origin/stable' into redesign 2021-06-01 23:33:07 +02:00
zadam
af62b07d5b Merge remote-tracking branch 'origin/master' into redesign 2021-06-01 23:32:53 +02:00
zadam
4338f65e01 dark mode fixes + refactoring 2021-06-01 23:19:49 +02:00
zadam
9a147365f5 link map lazy loading 2021-06-01 22:03:38 +02:00
zadam
e48bbe5b19 link map WIP 2021-05-31 23:38:47 +02:00
zadam
bdff1c1246 removal of link map service 2021-05-31 21:31:07 +02:00
zadam
d4a955a3f5 cleaned up link map 2021-05-31 21:23:01 +02:00
zadam
07e214c564 link map zooming 2021-05-31 21:20:30 +02:00
zadam
b351157a6a link map WIP 2021-05-30 23:21:34 +02:00
zadam
56378cd0f5 reorder database initialization so that all critical sections are in the same transaction, #1985 2021-05-30 22:03:41 +02:00
zadam
a76e3f6e2d correctly logging slow async requests 2021-05-30 21:21:20 +02:00
zadam
f5573fcad4 starting work on link map reimplementation using force-graph library 2021-05-29 22:52:32 +02:00
zadam
60f88574b0 put show source button back to note actions since it's pretty rare 2021-05-29 20:54:11 +02:00
zadam
65c3bcb565 don't override section activation if section if open 2021-05-29 14:25:05 +02:00
zadam
ef4bc13dd1 section widgets are updated lazily 2021-05-29 14:13:22 +02:00
zadam
aa901b67ed remove unused static getType() from section widgets 2021-05-29 13:51:21 +02:00
zadam
7a389baf08 moved to section widgets 2021-05-29 13:24:47 +02:00
zadam
57b6271c0b similar notes section widget 2021-05-29 13:24:14 +02:00
zadam
9532a5662f added note paths section container 2021-05-29 13:06:09 +02:00
zadam
520db931ae maximize button 2021-05-28 23:52:42 +02:00
zadam
5e19a37df7 fix rendering 2021-05-28 23:21:55 +02:00
zadam
4b6b8b1678 link map section widget 2021-05-28 23:19:11 +02:00
zadam
a3d44fbdef button tweaks 2021-05-28 22:47:59 +02:00
zadam
7fcf90437a button changes and book properties 2021-05-27 23:17:13 +02:00
zadam
614b1bdbaf added safe mode scripts 2021-05-27 21:29:23 +02:00
zadam
4d213300ac added buttons to section container 2021-05-26 23:08:00 +02:00
zadam
b7ca3dec54 added note info into section container 2021-05-26 23:00:40 +02:00
zadam
c4987c4fd1 added basic properties 2021-05-26 22:41:55 +02:00
zadam
f176191efb Merge remote-tracking branch 'origin/stable' into redesign
# Conflicts:
#	package-lock.json
#	package.json
2021-05-26 21:44:08 +02:00
zadam
dc5304faa0 updated ckeditor content styles 2021-05-26 21:41:58 +02:00
zadam
205f9953f9 Merge remote-tracking branch 'origin/stable' into redesign
# Conflicts:
#	package-lock.json
#	package.json
2021-05-26 21:27:06 +02:00
zadam
58d61800f3 tweaks 2021-05-26 21:26:12 +02:00
zadam
b9639bffce imported internal links crash ckeditor, #1979 2021-05-25 21:45:59 +02:00
zadam
3c7232f427 don't error out when backend log does not exist yet, fixes #1977 2021-05-25 21:03:00 +02:00
zadam
5707b7e29a closing panes 2021-05-24 22:29:49 +02:00
zadam
2f5d3729de fixes 2021-05-24 21:43:24 +02:00
zadam
bae8551652 open the pane on the correct position 2021-05-24 21:05:44 +02:00
zadam
1f5e4530c3 moved note actions button into section container 2021-05-24 14:39:44 +02:00
zadam
7d94202460 reworked section container to be icon based 2021-05-23 23:41:01 +02:00
zadam
30cc566518 tweaks 2021-05-23 22:24:04 +02:00
zadam
85933771f8 tab styling changes 2021-05-23 21:24:22 +02:00
zadam
e924662a29 tree visual changes, fonts etc. 2021-05-23 20:26:54 +02:00
zadam
2985100801 visual tweaks 2021-05-22 23:25:44 +02:00
zadam
d68ea201a3 fixes 2021-05-22 22:55:24 +02:00
zadam
7528181ca2 nice tooltips for side buttons 2021-05-22 21:51:40 +02:00
zadam
1302765478 added sidebar toggle button 2021-05-22 21:35:25 +02:00
zadam
5b220adc31 refactored TabContext => NoteContext 2021-05-22 17:58:46 +02:00
zadam
98dfc77195 refactored TabContext => NoteContext 2021-05-22 13:04:08 +02:00
zadam
1a0aaf4a30 refactored TabContext => NoteContext 2021-05-22 12:42:34 +02:00
zadam
79a85a0aa7 refactored TabContext => NoteContext 2021-05-22 12:35:41 +02:00
zadam
274cf7312c refactored TabContext => NoteContext 2021-05-22 12:26:45 +02:00
zadam
29e4e2afbb split window WIP 2021-05-21 22:44:08 +02:00
zadam
39f0f26f28 split window WIP 2021-05-21 22:34:40 +02:00
zadam
1a13132a69 split window WIP 2021-05-20 23:13:34 +02:00
zadam
a3847842cb split window WIP 2021-05-19 23:00:03 +02:00
zadam
b7bd5396d1 split window WIP 2021-05-19 22:45:34 +02:00
zadam
8c1c9b00e2 buttons on the left improvements 2021-05-18 22:49:47 +02:00
zadam
845f5d15c4 buttons on the left 2021-05-18 22:14:35 +02:00
zadam
d18b95d87c Merge branch 'next' into redesign 2021-05-18 21:08:02 +02:00
zadam
731051154b Merge branch 'stable' into next
# Conflicts:
#	package.json
2021-05-18 21:07:29 +02:00
zadam
a093508fbe converting note properties to methods 2021-05-18 20:56:49 +02:00
zadam
5860b2eebb style cleanup 2021-05-18 20:46:19 +02:00
zadam
a4aaa49774 fix width in zen mode, closes #1965 2021-05-18 20:30:06 +02:00
zadam
a4c7069856 Delete FUNDING.yml 2021-05-18 19:56:00 +02:00
zadam
7cad65b370 Update FUNDING.yml 2021-05-18 19:55:45 +02:00
zadam
3ead734323 Create FUNDING.yml 2021-05-18 19:54:19 +02:00
zadam
2451596e8c converting note properties to methods 2021-05-17 22:35:36 +02:00
zadam
a5d702b143 moved becca to top level source dir 2021-05-17 22:10:00 +02:00
zadam
439ef4a8cb moved becca to top level source dir 2021-05-17 22:09:49 +02:00
zadam
8bd3e17a3b removed legacy entities and repository 2021-05-17 22:05:35 +02:00
zadam
7a7c890946 redesign experiments 2021-05-17 21:46:18 +02:00
zadam
cb8e551ee0 release 0.47.3 2021-05-15 23:05:20 +02:00
zadam
04f249e800 backend scripts should not be async because of transaction management 2021-05-15 22:57:23 +02:00
zadam
a65eda5e4a Merge remote-tracking branch 'origin/master' into next 2021-05-15 22:45:28 +02:00
zadam
9645a07f2f Merge remote-tracking branch 'origin/stable' into next
# Conflicts:
#	package-lock.json
#	package.json
2021-05-15 22:45:11 +02:00
zadam
f6dd1110e8 fix sync status 2021-05-15 22:00:53 +02:00
zadam
623200b92b fix "force note sync" 2021-05-15 14:04:01 +02:00
zadam
4ff40ba14f fix sync status in-progress 2021-05-15 13:44:12 +02:00
zadam
16563eaba4 limit data base filename in ZIP export to 30 characters 2021-05-15 13:22:54 +02:00
zadam
caa6e9ee72 use archiver.js to export instead of yazl, #1938 2021-05-14 22:57:44 +02:00
zadam
f4a58a2598 Merge remote-tracking branch 'origin/master' 2021-05-14 22:35:15 +02:00
zadam
cecce1df20 electron upgrade 2021-05-14 22:23:11 +02:00
zadam
2030c8e995 fallback value for isErased for 0173 migration, #1937 2021-05-14 21:52:14 +02:00
zadam
8a9bd4deb4 zooming with ctrl + mousewheel 2021-05-12 22:38:17 +02:00
zadam
8417d4a4ea various becca migration fixes 2021-05-11 22:00:16 +02:00
zadam
5d58520949 froca should not keep any deleted notes 2021-05-09 22:00:21 +02:00
zadam
d8d15b528e fix .runOnBackend() API call 2021-05-09 21:29:59 +02:00
zadam
1d008cad13 fixes 2021-05-09 20:46:32 +02:00
zadam
ef0941479c fix undelete 2021-05-09 11:12:53 +02:00
zadam
9afea492db delete note fixes 2021-05-08 23:31:20 +02:00
zadam
84246fd197 adding missing .getPojo() to becca entities 2021-05-08 22:13:08 +02:00
zadam
9441cb177f undelete becca conversion 2021-05-08 22:01:14 +02:00
zadam
bcfe097dd6 refactoring of becca entity saving 2021-05-08 21:10:58 +02:00
Jules-Bertholet
a410ed1b74 Update KaTeX to v0.13.9 (#1925)
* Update KaTeX to v0.13.9

* Allow KaTeX commands like \url and \includegraphics
https://katex.org/docs/options.html
2021-05-08 20:58:56 +02:00
zadam
2edc7dbf58 merge fixes 2021-05-08 11:20:20 +02:00
zadam
051b9dff21 Merge remote-tracking branch 'origin/stable' into next
# Conflicts:
#	package-lock.json
#	package.json
#	src/public/app/entities/note_short.js
#	src/public/app/services/protected_session.js
#	src/routes/api/login.js
2021-05-08 10:58:38 +02:00
zadam
de6108f95d protected session is now global application state to avoid weird issues with multiple tabs/windows/reloads 2021-05-07 22:23:49 +02:00
zadam
fddab59265 added note.executeScript() 2021-05-07 21:23:10 +02:00
Jules-Bertholet
1308dc20e8 Add support for mhchem markup in KaTeX (#1917) 2021-05-06 22:38:56 +02:00
zadam
e257634ccf becca conversion WIP 2021-05-02 22:47:57 +02:00
zadam
3091119893 becca conversion WIP 2021-05-02 21:34:57 +02:00
zadam
c035627f0a use .markAsDeleted() instead of setting .isDeleted manually 2021-05-02 20:32:50 +02:00
zadam
273d4e0052 becca conversion WIP 2021-05-02 19:59:16 +02:00
zadam
77eac8f764 becca conversion WIP 2021-05-02 12:02:32 +02:00
zadam
1af10d48a2 becca conversion WIP 2021-05-02 11:23:58 +02:00
zadam
d13c8771ca becca conversion WIP 2021-05-01 21:52:22 +02:00
zadam
6626f100ad becca conversion WIP 2021-05-01 11:38:20 +02:00
zadam
ccadff5015 becca conversion WIP 2021-04-30 23:10:25 +02:00
zadam
e41be520a8 becca conversion WIP 2021-04-30 22:13:13 +02:00
zadam
43eb248450 Merge branch 'master' into next 2021-04-29 22:09:48 +02:00
zadam
f22c76d9fb fix focusing tree from note detail, closes #1897 2021-04-27 23:05:28 +02:00
zadam
b1131844d6 fix filling entity changes from Options' Advanced tab, closes #1898 2021-04-27 22:59:08 +02:00
zadam
03f3e46f8b release 0.47.2 2021-04-26 22:32:54 +02:00
zadam
6f1b0b92fe fix searchForNote backend API method 2021-04-26 22:27:12 +02:00
zadam
219098ab53 more becca changes 2021-04-26 22:24:55 +02:00
zadam
e466c393eb converted NoteRevision entity to the becca 2021-04-26 22:18:14 +02:00
zadam
d8f1c39282 converted NoteRevision entity to the becca 2021-04-26 22:00:55 +02:00
zadam
cb3a5bba61 Merge branch 'master' into next
# Conflicts:
#	package-lock.json
2021-04-26 21:45:37 +02:00
zadam
5e40c03fc9 use Map instead of object where keys can be (reserved) words, fixes #1895 2021-04-26 21:12:46 +02:00
zadam
3b1fb8024f handle undefined in the search ordering 2021-04-26 21:04:22 +02:00
zadam
93cae44ba0 subtree duplication with becca 2021-04-25 22:02:32 +02:00
zadam
a5ee590544 after note creation with becca 2021-04-25 21:24:32 +02:00
zadam
6c5b1420d2 basic note creation with becca 2021-04-25 21:19:18 +02:00
zadam
8d8d654fe8 becca entities enriched with functionality from repository entities 2021-04-25 20:00:42 +02:00
zadam
7494491560 Merge remote-tracking branch 'origin/master' into next
# Conflicts:
#	package-lock.json
#	src/public/app/services/note_content_renderer.js
#	src/public/stylesheets/style.css
#	src/routes/api/files.js
#	src/routes/routes.js
2021-04-25 11:14:45 +02:00
FliegendeWurst
6f49f870ed Exit on SIGTERM (#1891)
Stopping the systemd service running the server now works properly.
2021-04-25 11:05:09 +02:00
zadam
b9133cb683 fix keyboard shortcut for "open externally" 2021-04-24 22:18:25 +02:00
zadam
ccac46527c opened file change detection now useable on all note types 2021-04-24 21:56:44 +02:00
zadam
dcd35b1ea2 fix broken inline PDF viewer, #1833 2021-04-24 20:27:42 +02:00
zadam
a74741343e upload of modified open file WIP 2021-04-24 11:39:59 +02:00
zadam
4ff7e0813d upload of modified open file WIP 2021-04-24 11:39:44 +02:00
zadam
6d2d72fa7f add ERR_ADDRESS_UNREACHABLE as expected sync exception, #1888 2021-04-24 10:17:21 +02:00
zadam
30ec706d37 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package.json
#	src/services/build.js
2021-04-22 21:25:15 +02:00
zadam
25ce2e4253 release 0.46.9 2021-04-22 20:50:22 +02:00
zadam
b5674223e5 fixed some incorrect order by behavior, #1881 2021-04-22 20:28:26 +02:00
zadam
02988ed2b3 added random ordering 2021-04-22 19:53:11 +02:00
zadam
c27f573eed fix line continuation in the release script 2021-04-22 19:39:57 +02:00
zadam
c5b0c60797 Merge remote-tracking branch 'origin/master' 2021-04-21 23:03:16 +02:00
zadam
025af8df02 ckeditor 27.1 2021-04-21 23:03:09 +02:00
chee
d9e8cff00f Only add widgets that are executable (#1875)
closes #1874
2021-04-21 22:25:52 +02:00
zadam
1a4f35470c Merge remote-tracking branch 'origin/stable' 2021-04-21 22:04:33 +02:00
zadam
1d99c4e80b fix moving notes with keyboard on Firefox, closes #1865 2021-04-21 22:03:41 +02:00
zadam
dc7c64a94d Merge remote-tracking branch 'origin/stable' into stable 2021-04-21 20:38:15 +02:00
zadam
dc6a530d8c clear note selection anytime a new note is activated 2021-04-21 20:38:07 +02:00
chee
38b0d05c20 Add .includes to the type check (#1871)
beforehand it would always be `true`
fixes #1869
2021-04-21 20:16:15 +02:00
zadam
6e010dfbd7 fix note preview, closes #1869 2021-04-21 20:14:37 +02:00
zadam
172bdb6118 release 0.47.1-beta 2021-04-19 22:43:03 +02:00
zadam
6136243d61 release 0.47.1-beta 2021-04-19 22:40:50 +02:00
zadam
a88a32acae support OPML from MindManager, fixes #1862 2021-04-19 22:33:58 +02:00
zadam
583df35231 log warning about unsucessful login 2021-04-19 21:41:29 +02:00
zadam
634baae796 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	src/services/build.js
2021-04-19 20:56:56 +02:00
zadam
a674a12706 disable tar polluting build log 2021-04-19 20:56:05 +02:00
zadam
c29f1af48f use n to force node version
(cherry picked from commit 51d1d8efb8)
2021-04-19 20:51:06 +02:00
zadam
51d1d8efb8 use n to force node version 2021-04-19 20:26:58 +02:00
zadam
a8d72c46e4 release 0.46.8 2021-04-18 21:47:45 +02:00
zadam
ec36fbd83e release 0.46.8 2021-04-18 21:46:35 +02:00
zadam
aedb05cbab release 0.46.8 2021-04-18 21:39:01 +02:00
zadam
bb16840a72 release 0.46.8 2021-04-18 21:30:43 +02:00
zadam
7b5d44a329 use official gh client instead of github-release to execute releases 2021-04-18 21:29:10 +02:00
zadam
d3cccae2df implemented audio/video in note content renderer + streaming API #886 2021-04-18 12:40:12 +02:00
zadam
9ba514d930 Merge remote-tracking branch 'origin/stable'
# Conflicts:
#	package-lock.json
#	trilium.iml
2021-04-18 12:39:19 +02:00
zadam
79bb249f3b implemented audio/video in note content renderer + streaming API #886 2021-04-17 22:35:47 +02:00
zadam
1fdf889ccf refactoring 2021-04-17 20:52:46 +02:00
zadam
42510fda5c renamed also cache files/modules 2021-04-16 23:01:56 +02:00
zadam
f7e86c5be0 renamed noteCache into becca 2021-04-16 23:00:08 +02:00
zadam
af5b1021c7 renamed treeCache into froca 2021-04-16 22:57:37 +02:00
zadam
8e1b8ab26c show not set keyboard shortcuts as "not set", #1851 2021-04-15 21:45:37 +02:00
zadam
4311834d75 reload note cache if transaction rollback is detected 2021-04-14 22:57:45 +02:00
zadam
197537b159 idea config stuff 2021-04-13 21:54:34 +02:00
zadam
917b259e92 add new sync status "unknown" to differentiate from "can't connect", #1844 2021-04-13 21:54:07 +02:00
zadam
a53a65be1f clipper fix, closes #1840 2021-04-12 23:29:02 +02:00
630 changed files with 48649 additions and 38215 deletions

1
.github/FUNDING.yml vendored
View File

@@ -1,3 +1,4 @@
# These are supported funding model platforms
github: [zadam]
custom: ["https://paypal.me/za4am"]

46
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Bug Report
description: Report a bug
title: "(Bug report) "
labels: "Type: Bug"
body:
- type: input
attributes:
label: Trilium Version
description: What version of Trilium are you using?
placeholder: 0.48.0-beta
validations:
required: true
- type: dropdown
attributes:
label: What operating system are you using?
options:
- Windows
- macOS
- Ubuntu
- Other Linux
- Other (specify below)
validations:
required: true
- type: dropdown
attributes:
label: What is your setup?
description: https://github.com/zadam/trilium/wiki#choose-the-setup
options:
- Local (no sync)
- Local + server sync
- Server access only
validations:
required: true
- type: input
attributes:
label: Operating System Version
description: What operating system version are you using? On Windows, click Start button > Settings > System > About. On macOS, click the Apple Menu > About This Mac. On Linux, use lsb_release or uname -a.
placeholder: "e.g. Windows 10 version 1909, macOS Catalina 10.15.7, or Ubuntu 20.04"
validations:
required: true
- type: textarea
attributes:
label: Description
description: A clear and concise description of the bug and any additional information.
validations:
required: true

View File

@@ -0,0 +1,15 @@
name: Feature Request
description: Ask for a new feature to be added
title: "(Feature request) "
labels: "Type: Enhancement"
body:
- type: textarea
attributes:
label: Describe feature
description: A clear and concise description of what you want to be added..
validations:
required: true
- type: textarea
attributes:
label: Additional Information
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.

71
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,71 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '37 4 * * 1'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

53
.github/workflows/docker.yaml vendored Normal file
View File

@@ -0,0 +1,53 @@
name: Publish Docker image
on:
push:
tags: [v*]
jobs:
push_to_registries:
name: Push Docker image to multiple registries
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
zadam/trilium
ghcr.io/zadam/trilium
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}-latest
type=match,pattern=(\d+.\d+).\d+\-beta,enable=${{ endsWith(github.ref, 'beta') }},group=1,suffix=-latest
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to GitHub Docker Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create server-package.json
run: cat package.json | grep -v electron > server-package.json
- name: Build and Push
uses: docker/build-push-action@v2.7.0
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
push: true
cache-from: type=registry,ref=zadam/trilium:buildcache
cache-to: type=registry,ref=zadam/trilium:buildcache,mode=max
tags: ${{ steps.meta.outputs.tags }}

View File

@@ -2,10 +2,10 @@ image:
file: .gitpod.dockerfile
tasks:
- before: nvm install 10 && nvm use 10
- before: nvm install 16.13.1 && nvm use 16.13.1
init: npm install
command: npm run start-server
ports:
- port: 8080
onOpen: open-preview
onOpen: open-preview

5
.idea/dataSources.xml generated
View File

@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
<data-source source="LOCAL" name="document.db" uuid="4e69c96a-8a2b-43f5-9b40-d1608f75f7a4">
<data-source source="LOCAL" name="SQLite - document.db" uuid="30cef30d-e704-484d-a4ca-5d3bfc2ece63">
<driver-ref>sqlite.xerial</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:$USER_HOME$/trilium-data/document.db</jdbc-url>
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/../trilium-data/document.db</jdbc-url>
<working-dir>$ProjectFileDir$</working-dir>
</data-source>
</component>
</project>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptLibraryMappings">
<file url="PROJECT" libraries="{@types/jquery}" />
<includedPredefinedLibrary name="Node.js Core" />
</component>
</project>

2
.idea/misc.xml generated
View File

@@ -3,7 +3,7 @@
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager">
<component name="ProjectRootManager" version="2" languageLevel="JDK_16" project-jdk-name="openjdk-16" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

1
.idea/sqldialects.xml generated
View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="SqlDialectMappings">
<file url="file://$PROJECT_DIR$" dialect="SQLite" />
<file url="PROJECT" dialect="SQLite" />
</component>
</project>

3
.idea/vcs.xml generated
View File

@@ -2,6 +2,5 @@
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
</component>
</project>
</project>

View File

@@ -1,4 +1,4 @@
FROM node:12.19.0-alpine
FROM node:16.13.1-alpine
# Create app directory
WORKDIR /usr/src/app
@@ -16,7 +16,7 @@ RUN set -x \
make \
nasm \
libpng-dev \
python \
python3 \
&& npm install --production \
&& apk del .build-dependencies

View File

@@ -1,4 +1,4 @@
# Trilium注意事项
# Trilium笔记
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
@@ -37,6 +37,8 @@ Trilium是作为桌面应用程序Linux和Windows或服务器上托管的W
[有关文档页面的完整列表请参见Wiki。](https://github.com/zadam/trilium/wiki/)
[中文Wiki在这里](https://github.com/baddate/trilium/wiki/)
您还可以阅读[个人知识库模式](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base)以获取有关如何使用Trilium的灵感。
## 贡献
@@ -57,4 +59,4 @@ npm run start-server
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - 市场上最好的所见即所得编辑器,互动性强且聆听能力强的团队
* [FancyTree](https://github.com/mar10/fancytree) - 一个非常丰富的关于树的库强大的没有对手。没有它Trilium Notes将不会如此。
* [CodeMirror](https://github.com/codemirror/CodeMirror) - 支持大量语言的代码编辑器
* [jsPlumb](https://github.com/jsplumb/jsplumb)强大的可视化连接库。- 用于[关系图](https://github.com/zadam/trilium/wiki/Relation-map)和[链接图](https://github.com/zadam/trilium/wiki/Link-map)
* [jsPlumb](https://github.com/jsplumb/jsplumb)强大的可视化连接库。- 用于[关系图](https://github.com/zadam/trilium/wiki/Relation-map)和[链接图](https://github.com/zadam/trilium/wiki/Link-map)

3
TODO Normal file
View File

@@ -0,0 +1,3 @@
- new icon
- polish becca entities API
- separate private and public APIs in becca entities

View File

@@ -4,4 +4,19 @@ echo "Packaging debian x64 distribution..."
VERSION=`jq -r ".version" package.json`
./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64
./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64
# hacky stop-gag measure to produce debian compatible XZ compressed debs until this is fixed: https://github.com/electron-userland/electron-installer-debian/issues/272
cd dist
ar x trilium_${VERSION}_amd64.deb
rm trilium_${VERSION}_amd64.deb
# recompress
< control.tar.zst zstd -d | xz > control.tar.xz
< data.tar.zst zstd -d | xz > data.tar.xz
# create deb archive (I really do not know, what argument "sdsd" is for but something is required for ar to create the archive as desired)
ar -m -c -a sdsd trilium_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
rm control* data* debian-binary
echo "Converted to XZ deb"

View File

@@ -30,6 +30,9 @@ rm -r $BUILD_DIR/swiftshader
cp bin/tpl/trilium-portable.sh $BUILD_DIR/
chmod 755 $BUILD_DIR/trilium-portable.sh
cp bin/tpl/trilium-safe-mode.sh $BUILD_DIR/
chmod 755 $BUILD_DIR/trilium-safe-mode.sh
cp bin/tpl/trilium-no-cert-check.sh $BUILD_DIR/
chmod 755 $BUILD_DIR/trilium-no-cert-check.sh

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env bash
PKG_DIR=dist/trilium-linux-x64-server
NODE_VERSION=14.16.1
NODE_VERSION=16.13.1
if [ "$1" != "DONTCOPY" ]
then
@@ -10,7 +10,7 @@ fi
cd dist
wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz
tar xvfJ node-v${NODE_VERSION}-linux-x64.tar.xz
tar xfJ node-v${NODE_VERSION}-linux-x64.tar.xz
rm node-v${NODE_VERSION}-linux-x64.tar.xz
cd ..

View File

@@ -27,6 +27,7 @@ rm -r $BUILD_DIR/swiftshader
cp bin/tpl/trilium-portable.bat $BUILD_DIR/
cp bin/tpl/trilium-no-cert-check.bat $BUILD_DIR/
cp bin/tpl/trilium-safe-mode.bat $BUILD_DIR/
echo "Zipping windows x64 electron distribution..."
VERSION=`jq -r ".version" package.json`

View File

@@ -5,7 +5,7 @@ if [[ $# -eq 0 ]] ; then
exit 1
fi
npm run webpack
n exec 16.13.1 npm run webpack
DIR=$1
@@ -27,7 +27,7 @@ cp -r electron.js $DIR/
cp webpack-* $DIR/
# run in subshell (so we return to original dir)
(cd $DIR && npm install --only=prod)
(cd $DIR && n exec 16.13.1 npm install --only=prod)
# cleanup of useless files in dependencies
rm -r $DIR/node_modules/image-q/demo

View File

@@ -8,9 +8,9 @@ fi
VERSION=$1
SERIES=${VERSION:0:4}-latest
sudo docker push zadam/trilium:$VERSION
sudo docker push zadam/trilium:$SERIES
docker push zadam/trilium:$VERSION
docker push zadam/trilium:$SERIES
if [[ $1 != *"beta"* ]]; then
sudo docker push zadam/trilium:latest
docker push zadam/trilium:latest
fi

View File

@@ -55,54 +55,17 @@ echo "Creating release in GitHub"
EXTRA=
if [[ $TAG == *"beta"* ]]; then
EXTRA=--pre-release
EXTRA=--prerelease
fi
github-release release \
--tag $TAG \
--name "$TAG release" $EXTRA
echo "$GITHUB_CLI_AUTH_TOKEN" | gh auth login --with-token
echo "Uploading debian x64 package"
github-release upload \
--tag $TAG \
--name "$DEBIAN_X64_BUILD" \
--file "dist/$DEBIAN_X64_BUILD"
echo "Uploading linux x64 build"
github-release upload \
--tag $TAG \
--name "$LINUX_X64_BUILD" \
--file "dist/$LINUX_X64_BUILD"
echo "Uploading windows x64 build"
github-release upload \
--tag $TAG \
--name "$WINDOWS_X64_BUILD" \
--file "dist/$WINDOWS_X64_BUILD"
echo "Uploading mac x64 build"
github-release upload \
--tag $TAG \
--name "$MAC_X64_BUILD" \
--file "dist/$MAC_X64_BUILD"
echo "Uploading linux x64 server build"
github-release upload \
--tag $TAG \
--name "$SERVER_BUILD" \
--file "dist/$SERVER_BUILD"
echo "Building docker image"
bin/build-docker.sh $VERSION
echo "Pushing docker image to dockerhub"
bin/push-docker-image.sh $VERSION
echo "Release finished!"
gh release create "$TAG" \
--title "$TAG release" \
--notes "" \
$EXTRA \
"dist/$DEBIAN_X64_BUILD" \
"dist/$LINUX_X64_BUILD" \
"dist/$WINDOWS_X64_BUILD" \
"dist/$MAC_X64_BUILD" \
"dist/$SERVER_BUILD"

View File

@@ -0,0 +1,4 @@
SET DIR=%~dp0
SET TRILIUM_SAFE_MODE=1
cd %DIR%
start trilium.exe

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env sh
DIR=`dirname "$0"`
export TRILIUM_SAFE_MODE=1
"$DIR/trilium"

11
db/TODO.txt Normal file
View File

@@ -0,0 +1,11 @@
- drop branches.utcDateCreated - not used for anything
- drop options.utcDateCreated - not used for anything
- isDeleted = 0 by default
- rename openTabs to openNoteContexts
- migrate black theme to dark theme
- unify readOnly handling to a single attribute:
* readOnly - like now
* readOnly=auto - like without readOnly (used to override inherited readOnly)
* readOnly=never - like autoReadOnlyDisabled
- remove focusOnAttributesKeyboardShortcut
- rename white theme to "light" theme (it's not completely white and matches well to dark theme)

Binary file not shown.

View File

@@ -1,5 +0,0 @@
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
VALUES ('leftPaneMinWidth', '350', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
VALUES ('leftPaneWidthPercent', '20', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1 +0,0 @@
update branches set parentNoteId = 'none' where branchId = 'root'

View File

@@ -1,75 +0,0 @@
-- first fix deleted status of existing images
UPDATE note_images SET isDeleted = 1 WHERE noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1);
-- we don't need set data to null because table is going to be dropped anyway and we want image size into attribute
UPDATE images SET isDeleted = 1 WHERE imageId NOT IN (SELECT imageId FROM note_images WHERE isDeleted = 0);
-- allow null for note content (for deleted notes)
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`content` TEXT NULL DEFAULT NULL,
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`)
);
INSERT INTO notes_mig (noteId, title, content, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash)
SELECT noteId, title, content, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;
CREATE TABLE "links" (
`linkId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`targetNoteId` TEXT NOT NULL,
`type` TEXT NOT NULL,
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INTEGER NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
PRIMARY KEY(`linkId`)
);
INSERT INTO links (linkId, noteId, targetNoteId, type, isDeleted, dateCreated, dateModified)
SELECT 'L' || SUBSTR(noteImageId, 2), noteId, imageId, 'image', isDeleted, dateCreated, dateModified FROM note_images;
INSERT INTO branches (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, dateModified, hash, dateCreated)
SELECT 'B' || SUBSTR(noteImageId, 2), imageId, noteId, 100, '', 0, isDeleted, dateModified, hash, dateCreated FROM note_images;
DROP TABLE note_images;
INSERT INTO notes (noteId, title, content, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash)
SELECT imageId, name, data, 0, isDeleted, dateCreated, dateModified, 'image', 'image/' || format, hash FROM images;
INSERT INTO attributes (attributeId, noteId, type, name, value, position, dateCreated, dateModified, isDeleted, hash, isInheritable)
SELECT 'O' || SUBSTR(imageId, 2), imageId, 'label', 'originalFileName', name, 0, dateCreated, dateModified, isDeleted, '', 0 FROM images;
INSERT INTO attributes (attributeId, noteId, type, name, value, position, dateCreated, dateModified, isDeleted, hash, isInheritable)
SELECT 'F' || SUBSTR(imageId, 2), imageId, 'label', 'fileSize', LENGTH(data), 0, dateCreated, dateModified, isDeleted, '', 0 FROM images;
DROP TABLE images;
INSERT INTO sync (entityName, entityId, sourceId, syncDate)
SELECT 'attributes', 'O' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'images';
INSERT INTO sync (entityName, entityId, sourceId, syncDate)
SELECT 'attributes', 'F' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'images';
UPDATE sync SET entityName = 'notes' WHERE entityName = 'images';
INSERT INTO sync (entityName, entityId, sourceId, syncDate)
SELECT 'links', 'L' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'note_images';
INSERT INTO sync (entityName, entityId, sourceId, syncDate)
SELECT 'branches', 'B' || SUBSTR(entityId, 2), sourceId, syncDate FROM sync WHERE entityName = 'note_images';
DELETE FROM sync WHERE entityName = 'note_images';
DELETE FROM sync WHERE entityName = 'images';

View File

@@ -1,14 +0,0 @@
create index IDX_links_noteId_index
on links (noteId);
create index IDX_links_targetNoteId_index
on links (targetNoteId);
create index IDX_attributes_name_index
on attributes (name);
create index IDX_attributes_noteId_index
on attributes (noteId);
create index IDX_attributes_value_index
on attributes (value);

View File

@@ -1 +0,0 @@
UPDATE attributes SET isDeleted = 1 WHERE noteId IN (SELECT noteId FROM notes WHERE isDeleted = 1);

View File

@@ -1 +0,0 @@
UPDATE attributes SET isDeleted = 1 WHERE type = 'relation' AND value NOT IN (SELECT noteId FROM notes WHERE notes.isDeleted = 0);

View File

@@ -1 +0,0 @@
UPDATE attributes SET value = replace(value, 'mirrorRelation', 'inverseRelation') WHERE type = 'relation-definition';

View File

@@ -1 +0,0 @@
UPDATE attributes SET name = 'archived' where name = 'hideInAutocomplete';

View File

@@ -1,2 +0,0 @@
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
VALUES ('hoistedNoteId', 'root', '2018-12-11T18:31:00.874Z', '2018-12-11T18:31:00.874Z', 0);

View File

@@ -1,62 +0,0 @@
const sql = require('../../src/services/sql');
function prependIv(cipherText, ivText) {
const arr = ivText.split("").map(c => parseInt(c) || 0);
const iv = Buffer.from(arr);
const payload = Buffer.from(cipherText, 'base64');
const complete = Buffer.concat([iv, payload]);
return complete.toString('base64');
}
async function updateEncryptedDataKey() {
const encryptedDataKey = await sql.getValue("SELECT value FROM options WHERE name = 'encryptedDataKey'");
const encryptedDataKeyIv = await sql.getValue("SELECT value FROM options WHERE name = 'encryptedDataKeyIv'");
const newEncryptedDataKey = prependIv(encryptedDataKey, encryptedDataKeyIv);
await sql.execute("UPDATE options SET value = ? WHERE name = 'encryptedDataKey'", [newEncryptedDataKey]);
await sql.execute("DELETE FROM options WHERE name = 'encryptedDataKeyIv'");
await sql.execute("DELETE FROM sync WHERE entityName = 'options' AND entityId = 'encryptedDataKeyIv'");
}
async function updateNotes() {
const protectedNotes = await sql.getRows("SELECT noteId, title, content FROM notes WHERE isProtected = 1");
for (const note of protectedNotes) {
if (note.title !== null) {
note.title = prependIv(note.title, "0" + note.noteId);
}
if (note.content !== null) {
note.content = prependIv(note.content, "1" + note.noteId);
}
await sql.execute("UPDATE notes SET title = ?, content = ? WHERE noteId = ?", [note.title, note.content, note.noteId]);
}
}
async function updateNoteRevisions() {
const protectedNoteRevisions = await sql.getRows("SELECT noteRevisionId, title, content FROM note_revisions WHERE isProtected = 1");
for (const noteRevision of protectedNoteRevisions) {
if (noteRevision.title !== null) {
noteRevision.title = prependIv(noteRevision.title, "0" + noteRevision.noteRevisionId);
}
if (noteRevision.content !== null) {
noteRevision.content = prependIv(noteRevision.content, "1" + noteRevision.noteRevisionId);
}
await sql.execute("UPDATE note_revisions SET title = ?, content = ? WHERE noteRevisionId = ?", [noteRevision.title, noteRevision.content, noteRevision.noteRevisionId]);
}
}
module.exports = async () => {
await updateEncryptedDataKey();
await updateNotes();
await updateNoteRevisions();
};

View File

@@ -1,8 +0,0 @@
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
VALUES ('mainFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0);
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
VALUES ('treeFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0);
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
VALUES ('detailFontSize', '110', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0);

View File

@@ -1,11 +0,0 @@
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
SELECT 'mainFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0
WHERE NOT EXISTS (SELECT 1 FROM options WHERE name = 'mainFontSize');
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
SELECT 'treeFontSize', '100', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0
WHERE NOT EXISTS (SELECT 1 FROM options WHERE name = 'treeFontSize');
INSERT INTO options (name, value, dateCreated, dateModified, isSynced)
SELECT 'detailFontSize', '110', '2019-01-13T18:31:00.874Z', '2019-01-13T18:31:00.874Z', 0
WHERE NOT EXISTS (SELECT 1 FROM options WHERE name = 'detailFontSize');

View File

@@ -1,35 +0,0 @@
CREATE TABLE IF NOT EXISTS "note_contents" (
`noteContentId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`isProtected` INT NOT NULL DEFAULT 0,
`content` TEXT NULL DEFAULT NULL,
`hash` TEXT DEFAULT "" NOT NULL,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
PRIMARY KEY(`noteContentId`)
);
CREATE UNIQUE INDEX `IDX_note_contents_noteId` ON `note_contents` (`noteId`);
INSERT INTO note_contents (noteContentId, noteId, isProtected, content, dateCreated, dateModified)
SELECT 'C' || SUBSTR(noteId, 2), noteId, isProtected, content, dateCreated, dateModified FROM notes;
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`)
);
INSERT INTO notes_mig (noteId, title, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash)
SELECT noteId, title, isProtected, isDeleted, dateCreated, dateModified, type, mime, hash FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;

View File

@@ -1,2 +0,0 @@
INSERT OR REPLACE INTO sync (entityName, entityId, sourceId, syncDate)
SELECT 'note_contents', noteContentId, '', '2019-03-02T18:07:29.182Z' FROM note_contents;

View File

@@ -1,6 +0,0 @@
UPDATE notes SET title = 'Recovered protected note', isProtected = 0 WHERE noteId IN (
SELECT noteId FROM notes JOIN note_contents USING(noteId)
WHERE notes.isProtected = 1
AND note_contents.isProtected = 0
AND notes.isDeleted = 0
)

View File

@@ -1 +0,0 @@
module.exports = async () => {};

View File

@@ -1,236 +0,0 @@
CREATE TABLE IF NOT EXISTS "sync_mig" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`entityName` TEXT NOT NULL,
`entityId` TEXT NOT NULL,
`sourceId` TEXT NOT NULL,
`utcSyncDate` TEXT NOT NULL);
INSERT INTO sync_mig (id, entityName, entityId, sourceId, utcSyncDate)
SELECT id, entityName, entityId, sourceId, REPLACE(syncDate, 'T', ' ') FROM sync;
DROP TABLE sync;
ALTER TABLE sync_mig RENAME TO sync;
CREATE TABLE IF NOT EXISTS "source_ids_mig" (
`sourceId` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
PRIMARY KEY(`sourceId`)
);
INSERT INTO source_ids_mig (sourceId, utcDateCreated)
SELECT sourceId, REPLACE(dateCreated, 'T', ' ') FROM source_ids;
DROP TABLE source_ids;
ALTER TABLE source_ids_mig RENAME TO source_ids;
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (
`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`noteId` TEXT NOT NULL,
`title` TEXT,
`content` TEXT,
`isProtected` INT NOT NULL DEFAULT 0,
`utcDateModifiedFrom` TEXT NOT NULL,
`utcDateModifiedTo` TEXT NOT NULL,
`dateModifiedFrom` TEXT NOT NULL,
`dateModifiedTo` TEXT NOT NULL,
type TEXT DEFAULT '' NOT NULL,
mime TEXT DEFAULT '' NOT NULL,
hash TEXT DEFAULT "" NOT NULL);
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, content, isProtected, utcDateModifiedFrom, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash)
SELECT noteRevisionId, noteId, title, content, isProtected, REPLACE(dateModifiedFrom, 'T', ' '), REPLACE(dateModifiedTo, 'T', ' '), REPLACE(REPLACE(dateModifiedFrom, 'T', ' '), 'Z', '+0000'), REPLACE(REPLACE(dateModifiedTo, 'T', ' '), 'Z', '+0000'), type, mime, hash FROM note_revisions;
DROP TABLE note_revisions;
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
CREATE TABLE IF NOT EXISTS "api_tokens_mig"
(
apiTokenId TEXT PRIMARY KEY NOT NULL,
token TEXT NOT NULL,
utcDateCreated TEXT NOT NULL,
isDeleted INT NOT NULL DEFAULT 0,
hash TEXT DEFAULT "" NOT NULL);
INSERT INTO api_tokens_mig (apiTokenId, token, utcDateCreated, isDeleted, hash)
SELECT apiTokenId, token, REPLACE(dateCreated, 'T', ' '), isDeleted, hash FROM api_tokens;
DROP TABLE api_tokens;
ALTER TABLE api_tokens_mig RENAME TO api_tokens;
CREATE TABLE IF NOT EXISTS "branches_mig" (
`branchId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`parentNoteId` TEXT NOT NULL,
`notePosition` INTEGER NOT NULL,
`prefix` TEXT,
`isExpanded` BOOLEAN,
`isDeleted` INTEGER NOT NULL DEFAULT 0,
`utcDateModified` TEXT NOT NULL,
utcDateCreated TEXT NOT NULL,
hash TEXT DEFAULT "" NOT NULL,
PRIMARY KEY(`branchId`)
);
INSERT INTO branches_mig (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash)
SELECT branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, REPLACE(dateModified, 'T', ' '), REPLACE(dateCreated, 'T', ' '), hash FROM branches;
DROP TABLE branches;
ALTER TABLE branches_mig RENAME TO branches;
CREATE TABLE IF NOT EXISTS "recent_notes_mig" (
`branchId` TEXT NOT NULL PRIMARY KEY,
`notePath` TEXT NOT NULL,
hash TEXT DEFAULT "" NOT NULL,
`utcDateCreated` TEXT NOT NULL,
isDeleted INT
);
INSERT INTO recent_notes_mig (branchId, notePath, hash, utcDateCreated, isDeleted)
SELECT branchId, notePath, hash, REPLACE(dateCreated, 'T', ' '), isDeleted FROM recent_notes;
DROP TABLE recent_notes;
ALTER TABLE recent_notes_mig RENAME TO recent_notes;
CREATE TABLE IF NOT EXISTS "event_log_mig" (
`eventId` TEXT NOT NULL PRIMARY KEY,
`noteId` TEXT,
`comment` TEXT,
`utcDateCreated` TEXT NOT NULL
);
INSERT INTO event_log_mig (eventId, noteId, comment, utcDateCreated)
SELECT eventId, noteId, comment, REPLACE(dateCreated, 'T', ' ') FROM event_log;
DROP TABLE event_log;
ALTER TABLE event_log_mig RENAME TO event_log;
CREATE TABLE IF NOT EXISTS "options_mig"
(
name TEXT not null PRIMARY KEY,
value TEXT,
isSynced INTEGER default 0 not null,
hash TEXT default "" not null,
utcDateCreated TEXT not null,
utcDateModified TEXT NOT NULL
);
INSERT INTO options_mig (name, value, isSynced, hash, utcDateCreated, utcDateModified)
SELECT name, value, isSynced, hash, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM options;
DROP TABLE options;
ALTER TABLE options_mig RENAME TO options;
CREATE TABLE attributes_mig
(
attributeId TEXT not null primary key,
noteId TEXT not null,
type TEXT not null,
name TEXT not null,
value TEXT default '' not null,
position INT default 0 not null,
utcDateCreated TEXT not null,
utcDateModified TEXT not null,
isDeleted INT not null,
hash TEXT default "" not null,
isInheritable int DEFAULT 0 NULL);
INSERT INTO attributes_mig (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable)
SELECT attributeId, noteId, type, name, value, position, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' '), isDeleted, hash, isInheritable FROM attributes;
DROP TABLE attributes;
ALTER TABLE attributes_mig RENAME TO attributes;
CREATE TABLE IF NOT EXISTS "links_mig" (
`linkId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`targetNoteId` TEXT NOT NULL,
`type` TEXT NOT NULL,
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INTEGER NOT NULL DEFAULT 0,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`linkId`)
);
INSERT INTO links_mig (linkId, noteId, targetNoteId, type, hash, isDeleted, utcDateCreated, utcDateModified)
SELECT linkId, noteId, targetNoteId, type, hash, isDeleted, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM links;
DROP TABLE links;
ALTER TABLE links_mig RENAME TO links;
CREATE TABLE IF NOT EXISTS "note_contents_mig" (
`noteContentId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`isProtected` INT NOT NULL DEFAULT 0,
`content` TEXT NULL DEFAULT NULL,
`hash` TEXT DEFAULT "" NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteContentId`)
);
INSERT INTO note_contents_mig (noteContentId, noteId, isProtected, content, hash, utcDateCreated, utcDateModified)
SELECT noteContentId, noteId, isProtected, content, hash, REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM note_contents;
DROP TABLE note_contents;
ALTER TABLE note_contents_mig RENAME TO note_contents;
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`)
);
INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, isProtected, type, mime, hash, isDeleted, REPLACE(REPLACE(dateCreated, 'T', ' '), 'Z', '+0000'), REPLACE(REPLACE(dateModified, 'T', ' '), 'Z', '+0000'), REPLACE(dateCreated, 'T', ' '), REPLACE(dateModified, 'T', ' ') FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;
CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` (
`entityName`,
`entityId`
);
CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` (
`utcSyncDate`
);
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (
`noteId`
);
CREATE INDEX `IDX_note_revisions_dateModifiedFrom` ON `note_revisions` (
`utcDateModifiedFrom`
);
CREATE INDEX `IDX_note_revisions_dateModifiedTo` ON `note_revisions` (
`utcDateModifiedTo`
);
CREATE INDEX `IDX_branches_noteId` ON `branches` (
`noteId`
);
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (
`noteId`,
`parentNoteId`
);
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
CREATE INDEX IDX_attributes_name_value
on attributes (name, value);
CREATE INDEX IDX_links_noteId_index
on links (noteId);
CREATE INDEX IDX_links_targetNoteId_index
on links (targetNoteId);
CREATE INDEX IDX_attributes_name_index
on attributes (name);
CREATE INDEX IDX_attributes_noteId_index
on attributes (noteId);
CREATE INDEX IDX_attributes_value_index
on attributes (value);
CREATE UNIQUE INDEX `IDX_note_contents_noteId` ON `note_contents` (`noteId`);

View File

@@ -1,13 +0,0 @@
CREATE TABLE IF NOT EXISTS "note_contents_mig" (
`noteId` TEXT NOT NULL,
`content` TEXT NULL DEFAULT NULL,
`hash` TEXT DEFAULT "" NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`)
);
INSERT INTO note_contents_mig (noteId, content, hash, utcDateModified)
SELECT noteId, content, hash, utcDateModified FROM note_contents;
DROP TABLE note_contents;
ALTER TABLE note_contents_mig RENAME TO note_contents;

View File

@@ -1,5 +0,0 @@
const syncTableService = require('../../src/services/entity_changes.js');
module.exports = async () => {
await syncTableService.fillAllSyncRows();
};

View File

@@ -1 +0,0 @@
DROP TABLE IF EXISTS note_fulltext;

View File

@@ -1,4 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
SELECT 'openTabs', '[{"notePath":"' || value || '","active": true,"tabId":"1111"}]', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0 FROM options WHERE name = 'startNotePath';
DELETE FROM options WHERE name = 'startNotePath';

View File

@@ -1,2 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('hideTabRowForOneTab', 'false', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0);

View File

@@ -1,12 +0,0 @@
drop table recent_notes;
create table recent_notes
(
noteId TEXT not null primary key,
notePath TEXT not null,
hash TEXT default "" not null,
utcDateCreated TEXT not null,
isDeleted INT
);
delete from sync where entityName = 'recent_notes';

View File

@@ -1,10 +0,0 @@
UPDATE links SET type = 'internal-link' WHERE type = 'hyper';
UPDATE links SET type = 'image-link' WHERE type = 'image';
UPDATE links SET type = 'relation-map-link' WHERE type = 'relation-map';
INSERT INTO attributes (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable)
SELECT linkId, noteId, 'relation', type, targetNoteId, 0, utcDateCreated, utcDateModified, isDeleted, hash, 0 FROM links;
UPDATE sync SET entityName = 'attributes' WHERE entityName = 'links';
DROP TABLE links;

View File

@@ -1,5 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('sidebarMinWidth', '350', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('sidebarWidthPercent', '25', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1,2 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('showSidebarInNewTab', 'true', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1,14 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('noteInfoWidget', '{"enabled":true,"expanded":true,"position":100}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('attributesWidget', '{"enabled":true,"expanded":true,"position":200}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('linkMapWidget', '{"enabled":true,"expanded":true,"position":300}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('noteRevisionsWidget', '{"enabled":true,"expanded":true,"position":400}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('whatLinksHereWidget', '{"enabled":false,"expanded":true,"position":500}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1,5 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('codeNotesMimeTypes', '["text/x-csrc","text/x-c++src","text/x-csharp","text/css","text/x-go","text/x-groovy","text/x-haskell","text/html","message/http","text/x-java","application/javascript;env=frontend","application/javascript;env=backend","application/json","text/x-kotlin","text/x-markdown","text/x-perl","text/x-php","text/x-python","text/x-ruby",null,"text/x-sql","text/x-swift","text/xml","text/x-yaml"]', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 1);
INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate)
VALUES ('options' ,'codeNotesMimeTypes', 'SYNC_FILL', '2018-01-01T00:00:00.000Z');

View File

@@ -1,2 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('similarNotesWidget', '{"enabled":true,"expanded":true,"position":600}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1 +0,0 @@
DROP TABLE event_log;

View File

@@ -1,2 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('editedNotesWidget', '{"enabled":true,"expanded":true,"position":50}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1,2 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('calendarWidget', '{"enabled":true,"expanded":true,"position":20}', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1,5 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('spellCheckEnabled', 'true', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
VALUES ('spellCheckLanguageCode', 'en-US', '2018-07-29T18:31:00.874Z', '2018-07-29T18:31:00.874Z', 0);

View File

@@ -1,3 +0,0 @@
INSERT INTO options (name, value, utcDateCreated, utcDateModified, isSynced)
SELECT 'hideTabRowForOneTab', 'false', '2019-05-01T18:31:00.874Z', '2019-05-01T18:31:00.874Z', 0
WHERE NOT EXISTS(SELECT 1 FROM options WHERE name = 'hideTabRowForOneTab');

View File

@@ -1,22 +0,0 @@
CREATE TABLE IF NOT EXISTS "mig_branches" (
`branchId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`parentNoteId` TEXT NOT NULL,
`notePosition` INTEGER NOT NULL,
`prefix` TEXT,
`isExpanded` INTEGER NOT NULL DEFAULT 0,
`isDeleted` INTEGER NOT NULL DEFAULT 0,
`utcDateModified` TEXT NOT NULL,
utcDateCreated TEXT NOT NULL,
hash TEXT DEFAULT "" NOT NULL,
PRIMARY KEY(`branchId`));
INSERT INTO mig_branches (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash)
SELECT branchId, noteId, parentNoteId, notePosition, prefix, COALESCE(isExpanded, 0), isDeleted, utcDateModified, utcDateCreated, hash FROM branches;
DROP TABLE branches;
ALTER TABLE mig_branches RENAME TO branches;
CREATE INDEX `IDX_branches_noteId` ON `branches` (`noteId`);
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`);
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);

View File

@@ -1,2 +0,0 @@
UPDATE branches SET notePosition = notePosition * 10;
UPDATE attributes SET position = position * 10;

View File

@@ -1,36 +0,0 @@
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`noteId` TEXT NOT NULL,
`title` TEXT,
`contentLength` INT NOT NULL,
`isProtected` INT NOT NULL DEFAULT 0,
`utcDateLastEdited` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
`dateLastEdited` TEXT NOT NULL,
`dateCreated` TEXT NOT NULL,
type TEXT DEFAULT '' NOT NULL,
mime TEXT DEFAULT '' NOT NULL,
hash TEXT DEFAULT '' NOT NULL);
CREATE TABLE IF NOT EXISTS "note_revision_contents" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`content` TEXT,
hash TEXT DEFAULT '' NOT NULL,
`utcDateModified` TEXT NOT NULL);
INSERT INTO note_revision_contents (noteRevisionId, content, hash, utcDateModified)
SELECT noteRevisionId, content, hash, utcDateModifiedTo FROM note_revisions;
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, contentLength, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash)
SELECT noteRevisionId, noteId, title, COALESCE(LENGTH(content), 0), isProtected, utcDateModifiedFrom, utcDateModifiedTo, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash FROM note_revisions;
DROP TABLE note_revisions;
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);
INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate)
SELECT 'note_revision_contents', entityId, sourceId, utcSyncDate FROM sync WHERE entityName = 'note_revisions';

View File

@@ -1,31 +0,0 @@
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`isErased` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`));
INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, isProtected, type, mime, hash, isDeleted, 0, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;
UPDATE notes SET isErased = 1 WHERE isDeleted = 1
AND 1=(SELECT CASE WHEN content IS NULL THEN 1 ELSE 0 END FROM note_contents WHERE note_contents.noteId = notes.noteId);
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);

View File

@@ -1,34 +0,0 @@
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`contentLength` INT NOT NULL,
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`isErased` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`));
INSERT INTO notes_mig (noteId, title, contentLength, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, -1, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;
UPDATE notes SET contentLength = COALESCE((SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId), -1);
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
-- should be OK since sync protocol changes so all instances must upgrade
UPDATE attributes SET isDeleted = 1 WHERE name = 'fileSize';

View File

@@ -1,28 +0,0 @@
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`noteId` TEXT NOT NULL,
`title` TEXT,
`contentLength` INT NOT NULL,
`isErased` INT NOT NULL DEFAULT 0,
`isProtected` INT NOT NULL DEFAULT 0,
`utcDateLastEdited` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
`dateLastEdited` TEXT NOT NULL,
`dateCreated` TEXT NOT NULL,
type TEXT DEFAULT '' NOT NULL,
mime TEXT DEFAULT '' NOT NULL,
hash TEXT DEFAULT '' NOT NULL);
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, contentLength, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash)
SELECT noteRevisionId, noteId, title, contentLength, 0, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash FROM note_revisions;
DROP TABLE note_revisions;
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
UPDATE note_revisions SET isErased = (SELECT isErased FROM notes WHERE notes.noteId = note_revisions.noteId);
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);

View File

@@ -1,3 +0,0 @@
UPDATE attributes SET name = 'internalLink' WHERE name = 'internal-link';
UPDATE attributes SET name = 'imageLink' WHERE name = 'image-link';
UPDATE attributes SET name = 'relationMapLink' WHERE name = 'relation-map-link';

View File

@@ -1,5 +0,0 @@
DROP INDEX IF EXISTS IDX_attributes_name_index;
DROP INDEX IF EXISTS IDX_branches_noteId;
CREATE INDEX IDX_source_ids_utcDateCreated
on source_ids (utcDateCreated);

View File

@@ -1,81 +0,0 @@
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`contentLength` INT NOT NULL,
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`deleteId` TEXT DEFAULT NULL,
`isErased` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`));
INSERT INTO notes_mig (noteId, title, contentLength, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, -1, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
CREATE TABLE IF NOT EXISTS "branches_mig" (
`branchId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`parentNoteId` TEXT NOT NULL,
`notePosition` INTEGER NOT NULL,
`prefix` TEXT,
`isExpanded` INTEGER NOT NULL DEFAULT 0,
`isDeleted` INTEGER NOT NULL DEFAULT 0,
`deleteId` TEXT DEFAULT NULL,
`utcDateModified` TEXT NOT NULL,
utcDateCreated TEXT NOT NULL,
hash TEXT DEFAULT "" NOT NULL,
PRIMARY KEY(`branchId`));
INSERT INTO branches_mig (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash)
SELECT branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash FROM branches;
DROP TABLE branches;
ALTER TABLE branches_mig RENAME TO branches;
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`);
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
CREATE TABLE IF NOT EXISTS "attributes_mig"
(
attributeId TEXT not null primary key,
noteId TEXT not null,
type TEXT not null,
name TEXT not null,
value TEXT default '' not null,
position INT default 0 not null,
utcDateCreated TEXT not null,
utcDateModified TEXT not null,
isDeleted INT not null,
`deleteId` TEXT DEFAULT NULL,
hash TEXT default "" not null,
isInheritable int DEFAULT 0 NULL);
INSERT INTO attributes_mig (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable)
SELECT attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable FROM attributes;
DROP TABLE attributes;
ALTER TABLE attributes_mig RENAME TO attributes;
CREATE INDEX IDX_attributes_name_value
on attributes (name, value);
CREATE INDEX IDX_attributes_noteId_index
on attributes (noteId);
CREATE INDEX IDX_attributes_value_index
on attributes (value);

View File

@@ -1 +0,0 @@
UPDATE notes SET contentLength = COALESCE((SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId), -1);

View File

@@ -1,22 +0,0 @@
CREATE TABLE IF NOT EXISTS "sync_mig" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`entityName` TEXT NOT NULL,
`entityId` TEXT NOT NULL,
`sourceId` TEXT NOT NULL,
`isSynced` INTEGER default 0 not null,
`utcSyncDate` TEXT NOT NULL);
INSERT INTO sync_mig (id, entityName, entityId, sourceId, isSynced, utcSyncDate)
SELECT id, entityName, entityId, sourceId, 1, utcSyncDate FROM sync;
DROP TABLE sync;
ALTER TABLE sync_mig RENAME TO sync;
CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` (
`entityName`,
`entityId`
);
CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` (
`utcSyncDate`
);

View File

@@ -1,4 +0,0 @@
UPDATE sync SET isSynced = 1 WHERE entityName != 'options' OR (
entityName = 'options'
AND 1 = (SELECT isSynced FROM options WHERE name = sync.entityId)
)

View File

@@ -1,2 +0,0 @@
UPDATE attributes SET type = 'label', name = 'label:' || name WHERE type = 'label-definition';
UPDATE attributes SET type = 'label', name = 'relation:' || name WHERE type = 'relation-definition';

View File

@@ -1,79 +0,0 @@
const sql = require('../../src/services/sql');
module.exports = () => {
for (const attr of sql.getRows("SELECT * FROM attributes WHERE name LIKE 'label:%'")) {
let obj;
try {
obj = JSON.parse(attr.value);
}
catch (e) {
console.log(`Parsing attribute definition "${attr.value}" of ${attr.attributeId} failed with error "${e.message}", setting to default value.`);
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?',
["multi,text", attr.attributeId]);
continue;
}
const tokens = [];
if (obj.isPromoted) {
tokens.push('promoted');
}
if (obj.multiplicityType === 'singlevalue') {
tokens.push('single');
} else if (obj.multiplicityType === 'multivalue') {
tokens.push('multi');
}
if (obj.labelType) {
tokens.push(obj.labelType);
}
if (obj.numberPrecision) {
tokens.push('precision='+obj.numberPrecision);
}
const newValue = tokens.join(',');
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', [newValue, attr.attributeId]);
}
for (const attr of sql.getRows("SELECT * FROM attributes WHERE name LIKE 'relation:%'")) {
let obj;
try {
obj = JSON.parse(attr.value);
}
catch (e) {
console.log(`Parsing attribute definition "${attr.value}" of ${attr.attributeId} failed with error "${e.message}", setting to default value.`);
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?',
["multi", attr.attributeId]);
continue;
}
const tokens = [];
if (obj.isPromoted) {
tokens.push('promoted');
}
if (obj.multiplicityType === 'singlevalue') {
tokens.push('single');
} else if (obj.multiplicityType === 'multivalue') {
tokens.push('multi');
}
if (obj.inverseRelation) {
tokens.push('inverse=' + obj.inverseRelation);
}
const newValue = tokens.join(',');
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', [newValue, attr.attributeId]);
}
};

View File

@@ -1 +0,0 @@
DROP TABLE source_ids;

View File

@@ -1 +0,0 @@
ALTER TABLE sync RENAME TO entity_changes;

View File

@@ -1,55 +0,0 @@
CREATE TABLE IF NOT EXISTS "notes_mig" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`hash` TEXT DEFAULT "" NOT NULL,
`isDeleted` INT NOT NULL DEFAULT 0,
`deleteId` TEXT DEFAULT NULL,
`isErased` INT NOT NULL DEFAULT 0,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`));
INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, deleteId, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, isProtected, type, mime, hash, isDeleted, deleteId, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
DROP TABLE notes;
ALTER TABLE notes_mig RENAME TO notes;
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`noteId` TEXT NOT NULL,
`title` TEXT,
`isErased` INT NOT NULL DEFAULT 0,
`isProtected` INT NOT NULL DEFAULT 0,
`utcDateLastEdited` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
`dateLastEdited` TEXT NOT NULL,
`dateCreated` TEXT NOT NULL,
type TEXT DEFAULT '' NOT NULL,
mime TEXT DEFAULT '' NOT NULL,
hash TEXT DEFAULT '' NOT NULL);
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash)
SELECT noteRevisionId, noteId, title, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash FROM note_revisions;
DROP TABLE note_revisions;
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);

View File

@@ -1,20 +0,0 @@
CREATE TABLE IF NOT EXISTS "note_contents_mig" (
`noteId` TEXT NOT NULL,
`content` TEXT NULL DEFAULT NULL,
`hash` TEXT DEFAULT "" NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`)
);
INSERT INTO note_contents_mig (noteId, content, hash, dateModified, utcDateModified)
SELECT noteId,
content,
hash,
COALESCE((SELECT dateModified FROM notes WHERE noteId = note_contents.noteId), utcDateModified),
utcDateModified
FROM note_contents;
DROP TABLE note_contents;
ALTER TABLE note_contents_mig RENAME TO note_contents;

View File

@@ -1 +0,0 @@
DELETE FROM options WHERE name = 'keyboardShortcutsActivateParentNote';

View File

@@ -1 +0,0 @@
UPDATE attributes SET name = 'archived' WHERE name = 'hideInAutocomplete';

View File

@@ -1,20 +0,0 @@
const repository = require('../../src/services/repository');
module.exports = () => {
for (const note of repository.getEntities("SELECT * FROM notes WHERE type = 'text' AND isProtected = 0")) {
try {
let origContent = note.getContent();
const newContent = origContent
.replace(/<h1/ig, "<h2")
.replace(/<\/h1/ig, "</h2");
if (newContent !== origContent) {
note.setContent(newContent);
}
}
catch (e) {
console.log(`Changing note content for note ${note.noteId} failed with: ${e.message} ${e.stack}`);
}
}
};

View File

@@ -1,14 +0,0 @@
const repository = require('../../src/services/repository');
const sql = require('../../src/services/sql');
module.exports = () => {
for (const note of repository.getEntities("SELECT * FROM notes")) {
let position = 0;
for (const branch of note.getChildBranches()) {
sql.execute(`UPDATE branches SET notePosition = ? WHERE branchId = ?`, [position, branch.branchId]);
position += 10;
}
}
};

View File

@@ -1,15 +0,0 @@
DELETE FROM options WHERE name IN (
'noteInfoWidget',
'attributesWidget',
'linkMapWidget',
'noteRevisionsWidget',
'whatLinksHereWidget',
'codeNotesMimeTypes',
'similarNotesWidget',
'editedNotesWidget',
'calendarWidget',
'sidebarMinWidth',
'sidebarWidthPercent',
'showSidebarInNewTab',
'hoistedNoteId'
);

View File

@@ -1,69 +0,0 @@
CREATE TABLE IF NOT EXISTS "mig_entity_changes" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`entityName` TEXT NOT NULL,
`entityId` TEXT NOT NULL,
`hash` TEXT NOT NULL,
`sourceId` TEXT NOT NULL,
`isErased` INT NOT NULL,
`utcDateChanged` TEXT NOT NULL,
`isSynced` INTEGER NOT NULL);
INSERT INTO mig_entity_changes (id, entityName, entityId, hash, sourceId, isSynced, utcDateChanged, isErased)
SELECT id, entityName, entityId, '', sourceId, isSynced, utcChangedDate, 0 FROM entity_changes;
UPDATE mig_entity_changes SET isErased = (SELECT isErased FROM notes WHERE noteId = entityId) WHERE entityName = 'notes';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM notes WHERE noteId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'notes';
UPDATE mig_entity_changes SET isErased = (SELECT isErased FROM notes WHERE noteId = entityId) WHERE entityName = 'note_contents';
UPDATE mig_entity_changes SET isErased = (
SELECT isErased
FROM attributes
JOIN notes USING(noteId)
WHERE attributeId = entityId
) WHERE entityName = 'attributes';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM attributes WHERE attributeId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'attributes';
UPDATE mig_entity_changes SET isErased = (
SELECT isErased
FROM branches
JOIN notes USING(noteId)
WHERE branchId = entityId
) WHERE entityName = 'branches';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM branches WHERE branchId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'branches';
UPDATE mig_entity_changes SET isErased = (
SELECT isErased
FROM note_revisions
WHERE noteRevisionId = entityId
) WHERE entityName = 'note_revisions';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM note_revisions WHERE noteRevisionId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'note_revisions';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateCreated FROM api_tokens WHERE apiTokenId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'api_tokens';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM note_contents WHERE noteId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'note_contents';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM note_revision_contents WHERE noteRevisionId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'note_revision_contents';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateModified FROM options WHERE name = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'options';
UPDATE mig_entity_changes SET utcDateChanged = COALESCE((SELECT utcDateCreated FROM recent_notes WHERE noteId = entityId), '2020-12-14 14:07:05.165Z') WHERE entityName = 'options';
DROP TABLE entity_changes;
ALTER TABLE mig_entity_changes RENAME TO entity_changes;
CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" (
`entityName`,
`entityId`
);
DELETE FROM attributes WHERE noteId IN (SELECT noteId FROM notes WHERE isErased = 1);
DELETE FROM branches WHERE noteId IN (SELECT noteId FROM notes WHERE isErased = 1);
DELETE FROM note_contents WHERE noteId IN (SELECT noteId FROM notes WHERE isErased = 1);
DELETE FROM note_revision_contents WHERE noteRevisionId IN (
SELECT noteRevisionId FROM note_revisions WHERE isErased = 1
);
DELETE FROM note_revisions WHERE isErased = 1;
DELETE FROM notes WHERE isErased = 1;
UPDATE entity_changes SET isErased = COALESCE((SELECT isErased FROM entity_changes AS sub WHERE sub.entityId = entity_changes.entityId AND sub.entityName = 'note_revisions'), 0) WHERE entityName = 'note_revision_contents';

View File

@@ -1,198 +0,0 @@
CREATE TABLE IF NOT EXISTS "mig_entity_changes" (
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
`entityName` TEXT NOT NULL,
`entityId` TEXT NOT NULL,
`hash` TEXT NOT NULL,
`isErased` INT NOT NULL,
`sourceId` TEXT NOT NULL,
`isSynced` INTEGER NOT NULL,
`utcDateChanged` TEXT NOT NULL
);
INSERT INTO mig_entity_changes (id, entityName, entityId, hash, sourceId, isSynced, isErased, utcDateChanged)
SELECT id, entityName, entityId, '', sourceId, isSynced, isErased, utcDateChanged FROM entity_changes;
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM api_tokens WHERE apiTokenId = entityId), '') WHERE entityName = 'api_tokens';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM attributes WHERE attributeId = entityId), '') WHERE entityName = 'attributes';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM branches WHERE branchId = entityId), '') WHERE entityName = 'branches';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM notes WHERE noteId = entityId), '') WHERE entityName = 'notes';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM note_contents WHERE noteId = entityId), '') WHERE entityName = 'note_contents';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM note_revisions WHERE noteRevisionId = entityId), '') WHERE entityName = 'note_revisions';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM note_revision_contents WHERE noteRevisionId = entityId), '') WHERE entityName = 'note_revision_contents';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM options WHERE name = entityId), '') WHERE entityName = 'options';
UPDATE mig_entity_changes SET hash = COALESCE((SELECT hash FROM recent_notes WHERE noteId = entityId), '') WHERE entityName = 'recent_notes';
DROP TABLE entity_changes;
ALTER TABLE mig_entity_changes RENAME TO entity_changes;
CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" (
`entityName`,
`entityId`
);
CREATE TABLE IF NOT EXISTS "mig_api_tokens"
(
apiTokenId TEXT PRIMARY KEY NOT NULL,
token TEXT NOT NULL,
utcDateCreated TEXT NOT NULL,
isDeleted INT NOT NULL DEFAULT 0);
INSERT INTO mig_api_tokens (apiTokenId, token, utcDateCreated, isDeleted)
SELECT apiTokenId, token, utcDateCreated, isDeleted FROM api_tokens;
DROP TABLE api_tokens;
ALTER TABLE mig_api_tokens RENAME TO api_tokens;
CREATE TABLE IF NOT EXISTS "mig_attributes"
(
attributeId TEXT not null primary key,
noteId TEXT not null,
type TEXT not null,
name TEXT not null,
value TEXT default '' not null,
position INT default 0 not null,
utcDateCreated TEXT not null,
utcDateModified TEXT not null,
isDeleted INT not null,
`deleteId` TEXT DEFAULT NULL,
isInheritable int DEFAULT 0 NULL);
INSERT INTO mig_attributes (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, deleteId, isInheritable)
SELECT attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, deleteId, isInheritable FROM attributes;
DROP TABLE attributes;
ALTER TABLE mig_attributes RENAME TO attributes;
CREATE INDEX IDX_attributes_name_value
on attributes (name, value);
CREATE INDEX IDX_attributes_noteId_index
on attributes (noteId);
CREATE INDEX IDX_attributes_value_index
on attributes (value);
CREATE TABLE IF NOT EXISTS "mig_branches" (
`branchId` TEXT NOT NULL,
`noteId` TEXT NOT NULL,
`parentNoteId` TEXT NOT NULL,
`notePosition` INTEGER NOT NULL,
`prefix` TEXT,
`isExpanded` INTEGER NOT NULL DEFAULT 0,
`isDeleted` INTEGER NOT NULL DEFAULT 0,
`deleteId` TEXT DEFAULT NULL,
`utcDateModified` TEXT NOT NULL,
utcDateCreated TEXT NOT NULL,
PRIMARY KEY(`branchId`));
INSERT INTO mig_branches (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, deleteId, utcDateModified, utcDateCreated)
SELECT branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, deleteId, utcDateModified, utcDateCreated FROM branches;
DROP TABLE branches;
ALTER TABLE mig_branches RENAME TO branches;
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`);
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
CREATE TABLE IF NOT EXISTS "mig_notes" (
`noteId` TEXT NOT NULL,
`title` TEXT NOT NULL DEFAULT "note",
`isProtected` INT NOT NULL DEFAULT 0,
`type` TEXT NOT NULL DEFAULT 'text',
`mime` TEXT NOT NULL DEFAULT 'text/html',
`isDeleted` INT NOT NULL DEFAULT 0,
`deleteId` TEXT DEFAULT NULL,
`dateCreated` TEXT NOT NULL,
`dateModified` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`));
INSERT INTO mig_notes (noteId, title, isProtected, type, mime, isDeleted, deleteId, dateCreated, dateModified, utcDateCreated, utcDateModified)
SELECT noteId, title, isProtected, type, mime, isDeleted, deleteId, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
DROP TABLE notes;
ALTER TABLE mig_notes RENAME TO notes;
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
CREATE TABLE IF NOT EXISTS "mig_note_contents" (
`noteId` TEXT NOT NULL,
`content` TEXT NULL DEFAULT NULL,
`dateModified` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
PRIMARY KEY(`noteId`)
);
INSERT INTO mig_note_contents (noteId, content, dateModified, utcDateModified)
SELECT noteId, content, dateModified, utcDateModified FROM note_contents;
DROP TABLE note_contents;
ALTER TABLE mig_note_contents RENAME TO note_contents;
CREATE TABLE IF NOT EXISTS "mig_note_revisions" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`noteId` TEXT NOT NULL,
type TEXT DEFAULT '' NOT NULL,
mime TEXT DEFAULT '' NOT NULL,
`title` TEXT,
`isProtected` INT NOT NULL DEFAULT 0,
`utcDateLastEdited` TEXT NOT NULL,
`utcDateCreated` TEXT NOT NULL,
`utcDateModified` TEXT NOT NULL,
`dateLastEdited` TEXT NOT NULL,
`dateCreated` TEXT NOT NULL);
INSERT INTO mig_note_revisions (noteRevisionId, noteId, type, mime, title, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated)
SELECT noteRevisionId, noteId, type, mime, title, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated FROM note_revisions;
DROP TABLE note_revisions;
ALTER TABLE mig_note_revisions RENAME TO note_revisions;
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);
CREATE TABLE IF NOT EXISTS "mig_note_revision_contents" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
`content` TEXT,
`utcDateModified` TEXT NOT NULL);
INSERT INTO mig_note_revision_contents (noteRevisionId, content, utcDateModified)
SELECT noteRevisionId, content, utcDateModified FROM note_revision_contents;
DROP TABLE note_revision_contents;
ALTER TABLE mig_note_revision_contents RENAME TO note_revision_contents;
CREATE TABLE IF NOT EXISTS "mig_options"
(
name TEXT not null PRIMARY KEY,
value TEXT,
isSynced INTEGER default 0 not null,
utcDateCreated TEXT not null,
utcDateModified TEXT NOT NULL
);
INSERT INTO mig_options (name, value, isSynced, utcDateCreated, utcDateModified)
SELECT name, value, isSynced, utcDateCreated, utcDateModified FROM options;
DROP TABLE options;
ALTER TABLE mig_options RENAME TO options;
CREATE TABLE mig_recent_notes
(
noteId TEXT not null primary key,
notePath TEXT not null,
utcDateCreated TEXT not null,
isDeleted INT NOT NULL DEFAULT 0
);
INSERT INTO mig_recent_notes (noteId, notePath, utcDateCreated, isDeleted)
SELECT noteId, notePath, utcDateCreated, isDeleted FROM recent_notes;
DROP TABLE recent_notes;
ALTER TABLE mig_recent_notes RENAME TO recent_notes;

View File

@@ -1,2 +0,0 @@
UPDATE options SET name = 'eraseEntitiesAfterTimeInSeconds' WHERE name = 'eraseNotesAfterTimeInSeconds';
UPDATE entity_changes SET entityId = 'eraseEntitiesAfterTimeInSeconds' WHERE entityName = 'options' AND entityId = 'eraseNotesAfterTimeInSeconds';

View File

@@ -1,25 +0,0 @@
CREATE TABLE IF NOT EXISTS "mig_attributes"
(
attributeId TEXT not null primary key,
noteId TEXT not null,
type TEXT not null,
name TEXT not null,
value TEXT default '' not null,
position INT default 0 not null,
utcDateModified TEXT not null,
isDeleted INT not null,
`deleteId` TEXT DEFAULT NULL,
isInheritable int DEFAULT 0 NULL);
INSERT INTO mig_attributes (attributeId, noteId, type, name, value, position, utcDateModified, isDeleted, deleteId, isInheritable)
SELECT attributeId, noteId, type, name, value, position, utcDateModified, isDeleted, deleteId, isInheritable FROM attributes;
DROP TABLE attributes;
ALTER TABLE mig_attributes RENAME TO attributes;
CREATE INDEX IDX_attributes_name_value
on attributes (name, value);
CREATE INDEX IDX_attributes_noteId_index
on attributes (noteId);
CREATE INDEX IDX_attributes_value_index
on attributes (value);

View File

@@ -1,5 +0,0 @@
DELETE FROM options WHERE name = 'keyboardShortcutsCreateNoteIntoInbox'; -- in case there is already one which shouldn't (except for in-dev documents)
UPDATE options SET name = 'keyboardShortcutsCreateNoteIntoInbox' WHERE name = 'keyboardShortcutsCreateNoteIntoDayNote';
DELETE FROM options WHERE name = 'keyboardShortcutsShowAttributes';
DELETE FROM entity_changes WHERE entityName = 'options' AND entityId = 'keyboardShortcutsShowAttributes';

View File

@@ -1 +0,0 @@
DROP INDEX IDX_notes_isDeleted;

View File

@@ -1 +0,0 @@
VACUUM

View File

@@ -1,2 +0,0 @@
UPDATE options SET name = 'keyboardShortcutsQuickSearch' WHERE name = 'keyboardShortcutsSearchNotes';
UPDATE entity_changes SET entityId = 'keyboardShortcutsQuickSearch' WHERE entityId = 'keyboardShortcutsSearchNotes' AND entityName = 'options';

View File

@@ -1,5 +0,0 @@
UPDATE entity_changes SET isSynced = COALESCE((
SELECT options.isSynced
FROM options
WHERE options.name = entity_changes.entityId
), 0) WHERE entityName = 'options';

View File

@@ -1,14 +0,0 @@
DELETE FROM entity_changes WHERE entityName = 'recent_notes';
CREATE TABLE IF NOT EXISTS "mig_recent_notes"
(
noteId TEXT not null primary key,
notePath TEXT not null,
utcDateCreated TEXT not null
);
INSERT INTO mig_recent_notes (noteId, notePath, utcDateCreated)
SELECT noteId, notePath, utcDateCreated FROM recent_notes;
DROP TABLE recent_notes;
ALTER TABLE mig_recent_notes RENAME TO recent_notes;

View File

@@ -1,25 +0,0 @@
const repository = require('../../src/services/repository');
module.exports = () => {
for (const note of repository.getEntities("SELECT * FROM notes WHERE type = 'search' AND isProtected = 0 AND isDeleted = 0")) {
try {
let origContent = note.getJsonContent();
if (!origContent) {
continue;
}
note.addLabel('searchString', origContent.searchString);
note.setContent('');
note.mime = 'text/plain';
note.save();
console.log(`Migrated search note ${note.noteId}`);
}
catch (e) {
console.log(`Changing note content for note ${note.noteId} failed with: ${e.message} ${e.stack}`);
}
}
};

View File

@@ -0,0 +1,15 @@
const becca = require('../../src/becca/becca');
const beccaLoader = require('../../src/becca/becca_loader');
const cls = require('../../src/services/cls');
module.exports = () => {
cls.init(() => {
beccaLoader.load();
for (const note of Object.values(becca.notes)) {
if (note.hasLabel('calendarRoot')) {
note.addLabel('excludeFromNoteMap', "", true);
}
}
});
};

View File

@@ -0,0 +1,4 @@
-- black theme has been removed, dark is closest replacement
UPDATE options SET value = 'dark' WHERE name = 'theme' AND value = 'black';
UPDATE options SET value = 'light' WHERE name = 'theme' AND value = 'white';

Some files were not shown because too many files have changed in this diff Show More