Compare commits

...

781 Commits

Author SHA1 Message Date
azivner
269f56bdca release 0.23.0 2018-10-09 21:08:11 +02:00
azivner
5352f388a7 ckeditor updated to 11.1.0 2018-10-09 12:39:36 +02:00
azivner
be94766f76 trigger events after note attributes are created 2018-10-08 11:09:45 +02:00
azivner
24673168bb api docs update 2018-10-07 16:27:12 +02:00
azivner
b5bb653889 fancytree updated to 2.30.0 2018-10-07 14:34:05 +02:00
azivner
b09071eb9b publish API to allow manipulating list of allowed mime types for #192 2018-10-07 14:25:17 +02:00
azivner
5f95ab95c9 code mirror update to 5.40.2 2018-10-07 12:02:07 +02:00
azivner
0ce8d1e7e8 ctrl+del already has a standard behavior so removing it as a shortcut to delete note 2018-10-06 23:16:43 +02:00
azivner
b2776954a1 fix opening internal link from ckeditor link editing, fixes #191 2018-10-06 23:11:42 +02:00
azivner
d65610429c don't show tooltip over ckeditor link editing dialog 2018-10-06 22:00:43 +02:00
azivner
62de7f28eb consistently use root/ prefix for note paths 2018-10-06 21:32:07 +02:00
azivner
257cced182 release 0.22.1 2018-09-11 10:15:15 +02:00
azivner
3af27845b5 report missing sync configuration when clicking on Test sync 2018-09-11 10:09:55 +02:00
azivner
9b425025c9 fix sync double initialization issue 2018-09-11 10:01:40 +02:00
azivner
e8797a137f fix getting sync setup 2018-09-11 09:35:29 +02:00
azivner
947e875b6c added today script into demo document 2018-09-11 00:02:25 +02:00
azivner
15610626f1 fix for import issue 2018-09-10 23:41:11 +02:00
azivner
eb84cfbef2 sync login now includes check for sync server initialization and initializes it if necessary
Test sync button strictly not necessary
2018-09-10 20:22:26 +02:00
azivner
e4381d10e8 merged "Sync local document" into "Test sync" 2018-09-10 20:05:10 +02:00
azivner
b4a566df9e electron 2.0.9 and other small library updates 2018-09-10 19:09:05 +02:00
azivner
b20ff78653 revert server package to node 8 2018-09-09 17:53:55 +02:00
azivner
15888a5f8f sqlite binary for node 10 2018-09-09 12:57:11 +02:00
azivner
a90c164bbe fix server build 2018-09-09 12:08:56 +02:00
azivner
4f3aa9cd79 release 0.22.0 2018-09-09 10:08:45 +02:00
azivner
d248994143 updated windows scrypt binary 2018-09-09 09:46:15 +02:00
azivner
78518fbc60 note about platform support in README 2018-09-07 13:55:13 +02:00
azivner
50cd0c792c provide H4-H6, fixes #177 2018-09-07 13:47:26 +02:00
azivner
22e905aa99 enter on note in note tree leads to note title instead of content (second enter then goes to content) 2018-09-07 10:50:05 +02:00
azivner
8b41c1ef31 fix pasting HTML content into subnotes 2018-09-07 10:26:23 +02:00
azivner
492fde6f46 fix copy scrypt binary to correct directory 2018-09-06 23:23:19 +02:00
azivner
892a254e5a put missing options also to sqlInit 2018-09-06 23:21:14 +02:00
zadam
1ef3188213 cut selection and put it into subnote, fixes #171 2018-09-06 22:58:46 +02:00
azivner
c76329e671 increased default min pane width to 350px 2018-09-06 12:02:42 +02:00
azivner
c95e409b5e left pane sizing taking effect 2018-09-06 11:54:04 +02:00
azivner
ff086569f2 saving options for left pane sizing 2018-09-06 11:17:30 +02:00
azivner
bdc2fa1019 small refactoring of template and CSS 2018-09-06 09:33:38 +02:00
azivner
6668b55d6e use node 10 for docker and server package 2018-09-05 20:35:33 +02:00
azivner
46f37f7426 using @mlink/scrypt for node 10 compatibility 2018-09-05 15:14:20 +02:00
azivner
bc669c7b81 markdown wiki reference on README 2018-09-03 21:06:24 +02:00
azivner
185fb4b787 release 0.21.0 2018-09-03 20:18:28 +02:00
azivner
f2712e92bb minor demo db updates after change to paragraph layout 2018-09-03 20:14:45 +02:00
azivner
763f885cc7 commonjs modules should have "this" available 2018-09-03 17:31:52 +02:00
azivner
25f8df1e03 fix import for tars generated outside of trilium 2018-09-03 17:08:34 +02:00
azivner
c7a609e349 new frontend API - getCurrentNoteContent and onNoteChange 2018-09-03 16:05:28 +02:00
azivner
a3feaa13b3 single markdown file import, #166 2018-09-03 13:40:40 +02:00
azivner
4a58357a9a fixes & refactoring to markdown import 2018-09-03 13:17:29 +02:00
azivner
c41b809720 markdown import 2018-09-03 12:05:44 +02:00
azivner
9bdd4437f2 export single note as markdown, #166 2018-09-03 09:40:22 +02:00
azivner
467ad79129 implemented markdown export, #166 2018-09-02 23:39:10 +02:00
azivner
0daeb71869 removing paragraph margin & padding collapse, #51, no migration yet 2018-09-02 23:03:44 +02:00
azivner
708874a02c #166 inline markdown import 2018-09-02 23:02:01 +02:00
azivner
fa77132fe9 mention of markdown autoformat in README 2018-09-02 11:05:07 +02:00
azivner
d3300df3d7 typo, fixes #164 2018-09-02 08:01:16 +02:00
azivner
4984b06d9f night theme in README 2018-09-01 17:50:49 +02:00
azivner
66c908f2b2 relations should be also prefixed by at-sign in bottom attribute panel 2018-09-01 15:49:35 +02:00
azivner
7199208d9d putting reddit importer back 2018-09-01 15:23:51 +02:00
azivner
8adc111b0a removed scripts which are outdated, demo document should be sufficient for now 2018-09-01 14:10:36 +02:00
azivner
1079ba1707 release 0.20.2 2018-09-01 14:08:37 +02:00
azivner
10ff504528 demo document update 2018-09-01 13:57:03 +02:00
azivner
005b66f4f4 smaller initial height of 800 to fit into 1600*900 display 2018-09-01 13:41:01 +02:00
azivner
792039227f cssClass is correctly filled for new note 2018-09-01 13:18:55 +02:00
azivner
bc38172792 readme update 2018-09-01 11:04:31 +02:00
azivner
c55bc471db fix note move to different parent in note cache 2018-08-31 19:55:56 +02:00
azivner
fdc3a7a7f2 fix "search" button click 2018-08-31 19:23:56 +02:00
azivner
a98d80db31 renamed subtree operations in context menu from "branch" to "subtree" 2018-08-31 18:22:53 +02:00
azivner
65d99f3f06 fixed bug which caused incorrect ordering of lazy loaded branches 2018-08-31 17:29:54 +02:00
azivner
85215aa440 fix timing issue when saving changes to notes 2018-08-31 00:08:04 +02:00
azivner
cfa4cc4931 fix undefined Sync section in the config file 2018-08-30 23:28:38 +02:00
azivner
ce9805c5bc protection against deleting root note 2018-08-30 22:38:34 +02:00
azivner
0442a44aab font slightly larger in setup + tiny visual tweaks 2018-08-30 22:28:57 +02:00
azivner
be22d3cb4c new server package build without using pkg (fixes images stuff) 2018-08-30 21:57:14 +02:00
azivner
dcc770c443 readme update 2018-08-30 11:56:12 +02:00
azivner
a2d7be445f demo db update 2018-08-30 00:42:02 +02:00
azivner
3dd89ee9da release 0.20.1 2018-08-29 22:29:36 +02:00
azivner
561b514b84 refactored promoted attribute change handler 2018-08-29 22:28:58 +02:00
azivner
bc61f17a3a changes in initial document 2018-08-29 21:36:42 +02:00
azivner
7c3d46d22a added jsdocs generated pages 2018-08-29 20:44:35 +02:00
azivner
1ece9b71ec fix inserting current timestamp into editor 2018-08-29 20:22:57 +02:00
azivner
ee54dc3463 fix note placement from "create top level note" 2018-08-29 18:31:29 +02:00
azivner
b65a6c97a1 added missing attributes dump 2018-08-28 23:39:12 +02:00
azivner
dbca7bfb43 dump script + updated SQL dumps 2018-08-28 23:36:28 +02:00
azivner
3bb021fba1 entity deleltion should not trigger ENTITY_CHANGED event, it should be separate event 2018-08-28 23:17:56 +02:00
azivner
b009bcb6a0 set originEntity to render note 2018-08-28 23:08:56 +02:00
azivner
de4ace5ada overriding sync settings from config file, fixes #160 2018-08-28 21:13:40 +02:00
azivner
7ae2a24770 use relations to pick note to render, fixes #141 2018-08-28 20:55:21 +02:00
azivner
9cfa2ab1ba fix note cache record for newly created/updated protected notes 2018-08-28 19:22:46 +02:00
azivner
3ad7db39dd export branch => export subtree 2018-08-28 15:59:37 +02:00
azivner
bc207d5e30 fix for protected note freezing because of double initialization of CKEditor 2018-08-28 15:03:23 +02:00
azivner
d31a136442 mini refactoring 2018-08-28 14:26:11 +02:00
azivner
21a96d2776 listen to correct CKEditor event for data changes 2018-08-28 00:21:43 +02:00
azivner
174d4e67af fix encrypting new notes 2018-08-27 23:04:52 +02:00
azivner
4721ddc6b3 exceptions on decryption 2018-08-27 21:58:02 +02:00
azivner
c79fb2cc12 more stable script button placement 2018-08-27 21:08:02 +02:00
azivner
ad123cfc1a build fixes 2018-08-27 21:07:31 +02:00
azivner
05c9c5db50 fix server edition build for 10th time 2018-08-27 20:06:22 +02:00
azivner
2d1bc46c04 release 0.20.0 2018-08-27 18:59:54 +02:00
azivner
4bc44605fb don't short child: promoted attributes 2018-08-27 13:35:45 +02:00
azivner
b868990fba using exact versions of packages from now on 2018-08-23 23:42:47 +02:00
azivner
26c06c9826 more API docs 2018-08-23 15:33:19 +02:00
azivner
f5b89432a6 frontend script API documentation 2018-08-23 12:55:45 +02:00
azivner
0e7372adbf backend script API documentation 2018-08-23 10:10:04 +02:00
azivner
d4fbe28517 jsdoc comments on entities 2018-08-22 23:37:06 +02:00
azivner
668528d5eb promoted attributes are visible in tooltip preview, fixes #158 2018-08-22 15:31:36 +02:00
azivner
17348a9cfe fix some issues 2018-08-22 14:40:49 +02:00
azivner
09b610701d removed not unique warning from attributes dialog as it's more common to have multi value 2018-08-21 13:51:35 +02:00
azivner
71e687ad8e child: prefix now copies attributes on new note creation 2018-08-21 13:49:45 +02:00
azivner
171877ce08 renamed inheritAttributes to template 2018-08-21 12:52:11 +02:00
azivner
4f1e6ec70f note API additions 2018-08-21 12:50:43 +02:00
azivner
1938c317c3 fix relation definition in dialog 2018-08-20 10:04:26 +02:00
azivner
99d81059d0 better common JS compatibility 2018-08-19 22:28:32 +02:00
azivner
59d5a86110 fix attachment attributes 2018-08-19 21:42:03 +02:00
azivner
a5e56ea839 display a message if there's no recent change 2018-08-18 15:21:44 +02:00
azivner
44f85224e7 added new label type URL with open button, fixes #156 2018-08-18 15:00:52 +02:00
azivner
0aa08b1c1e relation promoted attribute has clickable button, fixes #155 2018-08-18 14:55:27 +02:00
azivner
406d74c4d7 initial focus on attribute type instead of name 2018-08-18 14:49:25 +02:00
azivner
7f9a8a55ca fix init of synced options in new database 2018-08-17 18:11:03 +02:00
azivner
a42bbba0e5 unprotecting note outside of protected session is not forbidden because it could overwrite previous note 2018-08-17 15:21:59 +02:00
azivner
145efe67c3 better logging and notifications on script errors for easier debugging 2018-08-17 11:31:42 +02:00
azivner
513748836e note autocomplete and full text search should be able to find notes by noteId 2018-08-17 10:06:52 +02:00
azivner
427ce3972e protected notes detail is now marked with shield background instead of just grey background 2018-08-17 09:32:07 +02:00
azivner
02c0f9a6cd shrinkable note title so the design crumbles with smaller width 2018-08-16 23:16:17 +02:00
azivner
208771216e fix in passing originEntity from frontend to backend, some refactorings 2018-08-16 23:00:04 +02:00
azivner
385d97a9b3 recent notes now don't display current note, unification of autocomplete source handling 2018-08-16 21:02:42 +02:00
azivner
e39d1d08ac easier API to add button to toolbar 2018-08-16 20:26:40 +02:00
azivner
0f106fb96f more relation events, events are now not triggered on sync changes 2018-08-15 22:06:49 +02:00
azivner
df9acd0504 relation target noteIds need to be translated into local noteIds 2018-08-15 18:32:06 +02:00
azivner
dbe0eb3f3a fix attribute name autocomplete, no tooltip preview on path selection 2018-08-15 18:22:02 +02:00
azivner
4513651e12 delete attributes when deleting note 2018-08-15 15:27:22 +02:00
azivner
3204291463 update codemirror to 5.39.2 2018-08-15 11:25:30 +02:00
azivner
510704a074 help buttons and existing custom HTML attribute refactoring to data-* 2018-08-15 10:14:14 +02:00
azivner
f440493e45 use ISO dateformat on the frontend instead of european formatting 2018-08-15 08:48:16 +02:00
azivner
b897c6de13 fix note revision saving 2018-08-15 08:44:54 +02:00
azivner
acbd18e8fc links to documentation for attributes, links and search + fix for opening external links 2018-08-14 23:07:50 +02:00
azivner
ff5b84db10 search (note) fixes 2018-08-14 22:50:05 +02:00
azivner
16535f6a73 small changes to attribute dialog 2018-08-14 21:02:42 +02:00
azivner
5b657ad961 minor package upgrades 2018-08-14 20:25:37 +02:00
azivner
bbbc3e9dc4 one more fix for release of pkg 2018-08-14 19:52:17 +02:00
azivner
f43f0e10a1 release 0.19.1 2018-08-14 18:06:31 +02:00
azivner
6d842a65a2 fix DB vacuum, fixes #154 2018-08-14 18:03:36 +02:00
azivner
50c4de021c fix for mysterious 404 not found notes like "appearance" 2018-08-14 18:00:11 +02:00
azivner
936d8449f6 fix & unify "show recent notes" buttons 2018-08-14 17:36:39 +02:00
azivner
462bc0edd5 attribute sync fix 2018-08-14 17:32:15 +02:00
azivner
35ef3c8470 fix migration 2018-08-14 16:09:30 +02:00
azivner
5117d43e29 fix pkg upload to github 2018-08-14 15:32:12 +02:00
azivner
7c9ac488e8 release 0.19.0 2018-08-14 14:19:37 +02:00
azivner
fec1574447 fixed import with attributes 2018-08-14 14:17:10 +02:00
azivner
f7587de452 fixes to multivalued input tabindex 2018-08-14 13:50:04 +02:00
azivner
41a6e777ea attributes coming from inheritAttributes are inherited only if the inheritAttributes relation itself is inheritable 2018-08-14 13:02:17 +02:00
azivner
8fb0de900b createNote API now accepts attributes instead of just labels 2018-08-14 12:54:58 +02:00
azivner
a40bf71fd4 connection lost error is now logged only to the console, it was too annoying while being mostly harmless 2018-08-14 11:42:29 +02:00
azivner
2a53bb03ae fix autocomplete casing issue with first level notes 2018-08-13 21:01:14 +02:00
azivner
a684879b91 primitive attribute caching inside note entity, fixes #149 2018-08-13 17:16:06 +02:00
azivner
ddbd4f73c8 attributes can be inherited through special relation "inheritAttributes" 2018-08-13 17:05:16 +02:00
azivner
b0ed790edf fix multivalue issue of not appearing when no attribute has been saved yet 2018-08-13 15:58:37 +02:00
azivner
3424406ff1 script API changes for task management #140 2018-08-13 13:53:08 +02:00
azivner
ce5c385c15 fix search by attributes was finding also deleted attributes 2018-08-13 11:06:17 +02:00
azivner
cd9eef32b0 support for cssClass label on note 2018-08-13 10:59:31 +02:00
azivner
12d82e3b33 listener exception doesn't stop execution 2018-08-13 09:49:39 +02:00
azivner
f071d3f651 fix validation issue + attribute not triggering change event on delete 2018-08-13 09:39:07 +02:00
azivner
297b536ebc promoted attributes have tabindex following the title and before note content 2018-08-13 09:07:21 +02:00
azivner
7cca2d9247 realoding tree doesn't steal focus (important for promoted attribute changes with attached scripts) 2018-08-13 08:42:37 +02:00
azivner
36dc802d16 updated schema.sql 2018-08-13 07:57:23 +02:00
azivner
c78ddb70cb all events are now synchronous 2018-08-12 20:07:02 +02:00
azivner
9fb0599c45 entities are now changed only if entity hash changed which will limit number of events emitted 2018-08-12 20:04:48 +02:00
azivner
13f524fb39 ENTITY_CHANGED event is emitted synchronously 2018-08-12 13:03:59 +02:00
azivner
27be3b4c90 fixes in tree loading 2018-08-12 12:59:38 +02:00
azivner
af4ea66742 fix shift-up selection, fixes #146 2018-08-11 20:02:48 +02:00
azivner
0f42c396f3 image upload fixes + some API changes 2018-08-11 19:45:55 +02:00
azivner
9e96272eb3 fixed runOnAttributeChange event 2018-08-10 14:31:57 +02:00
azivner
965dbcbc9a renamed workEntity to originEntity 2018-08-10 13:30:20 +02:00
azivner
7ac109e7f7 fix label => attributes omissions 2018-08-09 20:55:16 +02:00
azivner
ac25770c0e added runOnAttributeChange event 2018-08-09 20:08:00 +02:00
azivner
5b15424498 archived label now respects isInheritable flag, fixes #145 2018-08-08 16:14:35 +02:00
azivner
f1240c26bf more cleanup of labels and relations from backend, dropping tables from db 2018-08-07 13:44:51 +02:00
azivner
1c0fd243d1 cleanup of labels and relations from backend 2018-08-07 13:33:10 +02:00
azivner
3491235533 cleanup of labels & relations frontend code 2018-08-07 12:48:11 +02:00
azivner
5f36856571 * refactoring of repository layer to represent booleans as true/false instead of 1/0
* show list of inherited attributes, fixes #136
* properly work with inheritance
2018-08-07 11:38:00 +02:00
azivner
d3e44b37e9 autocomplete for promoted text labels 2018-08-06 22:52:49 +02:00
azivner
90e9297ec5 promoted relation attributes now work correctly, refactoring of note autocomplete code 2018-08-06 22:29:03 +02:00
azivner
c568ef2f8a nice icons for add / remove attribute 2018-08-06 17:53:13 +02:00
azivner
fcf6141cde support for promoted multi value attributes 2018-08-06 17:24:35 +02:00
azivner
21551d7b77 implemented date promoted attribute 2018-08-06 15:58:59 +02:00
azivner
12031d369f displaying and saving number and boolean promoted attributes 2018-08-06 15:23:22 +02:00
azivner
b44c523845 basic support for saving promoted attributes 2018-08-06 14:43:42 +02:00
azivner
49989695ff fix relations in attributes 2018-08-06 11:30:37 +02:00
azivner
a55d3530e9 attribute list on the bottom if there are no promoted attributes 2018-08-06 09:41:01 +02:00
azivner
2aab3ad281 fixes in attribute persistence + WIP on display of promoted attrs 2018-08-06 08:59:26 +02:00
azivner
194ce4f10f fixed UI for relation definition 2018-08-05 20:48:56 +02:00
azivner
2089c32839 attribute UI & saving now fully working 2018-08-05 20:08:56 +02:00
azivner
f437be7af0 attribute definition work in progress 2018-08-03 22:56:49 +02:00
azivner
96dc56098d ckeditor upgrade to 11.0.1 with blocktoolbar 2018-08-03 22:56:23 +02:00
azivner
61987e46f7 work in progress on attributes UI - unification of labels and relations now mostly works 2018-08-03 13:06:56 +02:00
azivner
509093b755 added "type" to attribute dialog, name autocomplete servers according to the choice 2018-08-03 11:11:57 +02:00
azivner
097114c0f2 basic entities for attributes (unification of labels and relations) 2018-08-02 22:48:21 +02:00
azivner
040f9185f8 electron 2.0.6 and some other minor library upgrades 2018-08-02 19:55:20 +02:00
azivner
6dc934abbe refactored targetNote to workNote in the ScriptContext which was very confusing with relation's targetNote 2018-08-01 10:12:54 +02:00
azivner
2d24bf81dd added new label "sorted" which will keep children notes alphabetically sorted, fixes #82 2018-08-01 09:26:02 +02:00
azivner
9452fc236b electron build uses random free port, fixes #142 2018-07-31 19:50:18 +02:00
azivner
365c37604b code note in tooltip needs to be wrapped in <pre> to keep formatting, fixes #137 2018-07-30 16:55:20 +02:00
azivner
01c7e58d47 check if sync is configured every minute, not just at app startup, fixes #138 2018-07-30 16:45:34 +02:00
azivner
d3d49923b1 changed backup to simple scheme with one daily, one weekly and one monthly backup, fixes #15 2018-07-30 16:40:50 +02:00
azivner
263ac299d0 fix pkg building 2018-07-30 14:18:43 +02:00
azivner
3d185a5178 release 0.18.0 2018-07-30 08:18:25 +02:00
azivner
2ff7a890bc script which shows list of edited files for a date, fixes #125 2018-07-29 20:51:28 +02:00
azivner
2eb1a9705f it's now possible to mark relation as inheritable (previously this was hardcoded for specific relation names) 2018-07-29 20:33:42 +02:00
azivner
ed1381103a #125, implementation of inheritable relations 2018-07-29 18:39:10 +02:00
azivner
170d317589 #125, basic infrastructure for scripts attached to notes via relations 2018-07-29 16:06:13 +02:00
azivner
ededc063df fix relation autocomplete 2018-07-29 12:34:40 +02:00
azivner
986eace1be schema update with relations 2018-07-29 11:47:46 +02:00
azivner
29086d8dfe fixed bug with select not firing on recent notes 2018-07-28 18:17:35 +02:00
azivner
9b3f3fde05 #126, relation list in note detail and fixes in saving 2018-07-28 17:59:55 +02:00
azivner
6a50afd952 #126, "show recent notes" now work in relations dialog 2018-07-28 17:02:48 +02:00
azivner
697eee2706 #126, autocomplete + can save relations 2018-07-27 11:28:24 +02:00
azivner
8a95afd756 #126, added skeleton of note relations, copied from similar concept of labels 2018-07-27 10:52:48 +02:00
azivner
4d6eda8fe6 #129, added input icon to trigger recent notes for easy discovery and mouse control 2018-07-27 09:22:25 +02:00
azivner
e4f459fa2b #129, removed recent notes dialog as its not necessary anymore 2018-07-26 17:35:32 +02:00
azivner
f578e001b0 #129, add link autocomplete now displays recent notes as well 2018-07-26 16:24:08 +02:00
azivner
2a08aef885 #129, recent notes are now visible in the jump to dialog 2018-07-26 16:05:09 +02:00
azivner
7564bf388c removed dangerous and unnecessary option to completely remove soft-deleted items 2018-07-26 09:21:52 +02:00
azivner
7e4d70259f soft-deleting note will delete its content and all the revisions content, fixes #132 2018-07-26 09:08:51 +02:00
azivner
5b98c1c0f3 fix context menu JS error on root note 2018-07-26 08:58:20 +02:00
azivner
02dc7b199b #98, better error reporting for sync setup 2018-07-25 22:54:37 +02:00
azivner
d39cdbfada better instructions for desktop => server instance sync setup, plus some sync fixes 2018-07-25 10:57:36 +02:00
azivner
50bb4a47ee fix sync bug 2018-07-25 10:12:34 +02:00
azivner
a4627f2ddb #98 some sync setup refactorings 2018-07-25 09:46:57 +02:00
azivner
c8253caae9 #98 proxy support for sync setup 2018-07-25 08:30:41 +02:00
azivner
0ece9bd1be sync isExpanded when it's a new branch 2018-07-24 22:03:36 +02:00
azivner
b6935abcc9 #98, sync button now shows total number of outstanding syncs instead of just pushes 2018-07-24 21:43:15 +02:00
azivner
37ab7b4641 #98, sync to server now works as well + a lot of related changes 2018-07-24 20:35:03 +02:00
azivner
013714cb5c #98, new option "initialized" which indicates if setup has been finished 2018-07-24 08:12:36 +02:00
azivner
1fe7c62f5a #98, sync setup now doesn't copy the whole DB file, but sets up minimal database and starts off sync 2018-07-23 21:15:32 +02:00
azivner
a06618d851 #98, test sync impl 2018-07-23 10:29:17 +02:00
azivner
e7460ca3a9 #98, sync is now configured in the options 2018-07-22 22:21:16 +02:00
azivner
073300bbcd #98, working sync setup from server to desktop instance + refactoring of DB initialization 2018-07-22 19:56:20 +02:00
azivner
a201661ce5 #98, fixes in the wizard 2018-07-22 14:49:59 +02:00
azivner
6235a3c886 beginning of #98, new multistep wizard, db creation after user enters username and password 2018-07-21 08:55:24 +02:00
azivner
3972c27e7a release 0.17.0 2018-07-09 21:22:12 +02:00
azivner
14cffbbe62 docker commands with sudo 2018-07-09 21:21:28 +02:00
azivner
599c3c04af correct sourceMappingURL which gets rid of error message, fixes #114 2018-07-08 23:23:49 +02:00
azivner
f1412b631d hide log polluting error message 2018-07-08 23:13:56 +02:00
azivner
41908050bb ctrl+u now doesn't trigger show source since it's occupied by underline 2018-07-08 21:45:05 +02:00
azivner
f07033423c ckeditor upgraded to 10.1.0 plus new plugins (table, strikethrough, underline) 2018-07-08 21:21:52 +02:00
azivner
daf96fcbf2 using zeit/pkg to package easy to use linux server edition 2018-07-06 00:05:06 +02:00
azivner
2bca94529e minor upgrades 2018-07-05 23:17:53 +02:00
azivner
b2c9a0da21 fix note sources, fixes #123 2018-07-04 20:37:23 +02:00
azivner
7a9542b4fc release 0.16.0 2018-06-16 13:34:39 -04:00
azivner
3a95c9e1bc all dialogs are now non-modal because of high cpu usage 2018-06-16 13:31:56 -04:00
azivner
3d2ef6be01 remove optionId, closes #117 2018-06-13 19:10:28 -04:00
azivner
d67246699a Introduced separate sync version (previously DB version was used to check sync compatibility), closes #120 2018-06-10 15:55:29 -04:00
azivner
14c704d6db db upgrades are now handled transparently in the background without bothering the user, closes #119 2018-06-10 15:49:22 -04:00
azivner
4c8eeb2e6f added docker build, closes #106 2018-06-10 15:06:52 -04:00
azivner
c1b245c8b1 fix unnecessary change events, closes #118 2018-06-10 11:51:13 -04:00
azivner
74202d67bb got rid of "Trilium Notes" branding - not necessary and takes valuable space 2018-06-10 10:57:45 -04:00
azivner
26066f39b1 chaged "focused mode" - now title is displayed as well and together with content takes whole window 2018-06-10 10:53:39 -04:00
azivner
b255cf190c fixes for zoom factor setting 2018-06-09 10:34:51 -04:00
azivner
bc77b143b0 darker outlines so inverted dark themes are more visible 2018-06-09 09:48:18 -04:00
azivner
9f0ff6ae7a note actions dropdown sizing 2018-06-09 09:44:40 -04:00
azivner
736704c7d6 fix show paths 2018-06-09 09:32:13 -04:00
azivner
654c116c58 use backgrounds for icon buttons so that dark and black themes look better 2018-06-09 09:28:50 -04:00
azivner
89a5cab98f added too options new tab appearance with possibility to change theme (white, black, dark) and zoom factor 2018-06-08 23:18:53 -04:00
azivner
c39d0be8cd refactoring of icon button styles 2018-06-08 22:17:00 -04:00
azivner
e75b4cd848 execute on script note is icon, closes #116 2018-06-08 21:59:40 -04:00
azivner
378e8f35e5 release 0.15.0 2018-06-07 23:09:21 -04:00
azivner
bdb5e2f13f no results also for "add link" 2018-06-07 23:08:41 -04:00
azivner
8211bed449 renamed icons according to their size, fixes #113 2018-06-07 23:02:21 -04:00
azivner
b243632483 usability improvements to autocomplete ("no results" etc.), needs refactoring 2018-06-07 20:18:46 -04:00
azivner
e4d2513451 close search button 2018-06-07 19:50:16 -04:00
azivner
385144451b renamed hideInAutocomplete label to archived 2018-06-07 19:26:28 -04:00
azivner
c8c533844e icons for render & toggle edit since text titles caused unwanted horizontal scrolling in smaller window sizes 2018-06-06 23:37:57 -04:00
azivner
0e69f0c079 fix recent notes issues 2018-06-06 22:38:36 -04:00
azivner
aee60c444f added "show results in full text" 2018-06-05 23:28:10 -04:00
azivner
e7a504c66b fixes and optimizations for search 2018-06-05 22:47:47 -04:00
azivner
45d9c7164c search refactorings 2018-06-05 19:12:52 -04:00
azivner
bd913a63a8 search note fixes 2018-06-04 23:21:45 -04:00
azivner
5a1938c078 better sizing of search pane 2018-06-04 20:22:41 -04:00
azivner
015cd68756 renaming/refactoring of search services 2018-06-04 19:48:02 -04:00
azivner
76c0e5b2b8 new UI for search, closes #108 (still needs cleanup) 2018-06-03 20:42:25 -04:00
azivner
0f8f707acd persisting zoom setting in electron, fixes #112 2018-06-02 13:02:20 -04:00
azivner
083cccea28 better protected/unprotected note indicator, fixes #110 2018-06-02 11:47:16 -04:00
azivner
31b76b23ce release 0.14.1 2018-06-02 09:39:37 -04:00
azivner
af529f82e5 fixed false sync error reporting 2018-06-02 09:39:04 -04:00
azivner
fc6669d254 initialization and schema fixes, closes #111 2018-06-01 22:26:37 -04:00
azivner
c07785be67 release 0.14.0 2018-05-31 23:23:44 -04:00
azivner
80d2457b23 moved parent list next to note title 2018-05-31 23:21:47 -04:00
azivner
5dde2752d2 add switch to manually enter/leave protected session, fixes #107 2018-05-31 20:00:39 -04:00
azivner
8bf4633cd0 fixes 2018-05-30 23:18:56 -04:00
azivner
bd66b8a1c8 fix issue with limitation of number of SQLite parameters (999) which caused problems when loading tree which was too expanded 2018-05-30 20:28:10 -04:00
azivner
be51e533fc OPML import support (issue #78) 2018-05-29 20:32:13 -04:00
azivner
f47ae12019 OPML export support (issue #78), import missing for now 2018-05-27 12:26:34 -04:00
azivner
cab54a458f unifying surrogate keys for event log and options, fixes #103 2018-05-26 23:25:09 -04:00
azivner
a30734f1bc Add history backwards/forwards buttons, fixes #94 2018-05-26 22:54:06 -04:00
azivner
7ad9f7b129 fixed layouting issues 2018-05-26 19:58:08 -04:00
azivner
40a32e6826 render notes can be edited and can contain HTML markup 2018-05-26 19:27:47 -04:00
azivner
ab0486aaf1 expose root node, fixes #101 2018-05-26 16:16:34 -04:00
azivner
874593a167 fix code editor growing 2018-05-26 15:28:36 -04:00
azivner
03bf33630e unify audit fields, fixes #102 2018-05-26 12:38:25 -04:00
azivner
933cce1b94 fix hideInAutocomplete bug 2018-05-26 10:50:13 -04:00
azivner
4a6ff573f8 fixed autocomplete issues with capitalization 2018-05-26 10:24:33 -04:00
azivner
1a737f7d19 expose add link on UI, fixes #95 2018-05-26 10:04:40 -04:00
azivner
cb69914f09 release 0.13.0-beta 2018-05-22 23:51:43 -04:00
azivner
a372cbb2df fix #105 2018-05-22 23:51:13 -04:00
azivner
0ce5caefe8 refactoring 2018-05-22 22:22:15 -04:00
azivner
94dabb81f6 fix sync of unsyncable options 2018-05-22 19:29:18 -04:00
azivner
cd45bcfd03 converted option operations to repository 2018-05-22 00:22:43 -04:00
azivner
49a53f7a45 added hash columns for faster sync check calculation 2018-05-22 00:15:54 -04:00
azivner
9fa6c0918c add index for note's type + some fixes 2018-05-21 20:12:46 -04:00
azivner
e8d089e37e ckeditor 10.0.0 2018-05-21 19:35:49 -04:00
azivner
a931ce25fa attempt to fix the hoek security warning with package upgrade 2018-05-21 16:08:34 -04:00
azivner
b507abb4f7 electron upgrade to 2.0.0 2018-05-08 16:39:01 -04:00
azivner
66e7c6de62 fix ordering 2018-04-21 12:23:35 -04:00
azivner
4ce5ea9886 autocomplete supports encrypted notes now as well 2018-04-20 00:12:01 -04:00
azivner
8c54b62f07 fix protect branch 2018-04-19 22:18:19 -04:00
azivner
85eb50ed0f autocomplete with prefixes 2018-04-19 20:59:44 -04:00
azivner
5ffd621e9d autocomplete respects hideInAutocomplete label 2018-04-19 00:13:55 -04:00
azivner
df93cb09da fix hide-toggle 2018-04-18 23:13:37 -04:00
azivner
bbf04209f0 autocomplete cache gets updated with note update 2018-04-18 23:11:30 -04:00
azivner
834bfa39c7 limit number of results to 200, other tweaks 2018-04-18 20:56:23 -04:00
azivner
52b445f70b Merge branch 'stable' 2018-04-18 20:22:16 -04:00
azivner
7b9b4fbb0c backend autocomplete WIP 2018-04-18 00:26:42 -04:00
azivner
5af0ba1fcb layout fixes 2018-04-17 20:04:27 -04:00
azivner
85a9748291 fix for clones & optimizations 2018-04-16 23:34:56 -04:00
azivner
b4005a7ffe optimizations to the lazy loading - expanding tree now takes only one request 2018-04-16 23:13:33 -04:00
azivner
82de1c88d4 basic lazy loading of tree now works, still WIP 2018-04-16 20:40:18 -04:00
azivner
1687ed7e0b load only expanded tree with the rest being lazy loaded, WIP 2018-04-16 16:26:47 -04:00
azivner
c8b9c7d936 release 0.12.0 2018-04-14 08:28:50 -04:00
azivner
d57057ba28 fix note ordering sync 2018-04-14 08:23:06 -04:00
azivner
66cee8daa4 restructuring CSS grid/flex which fixes jumpy scrolling in tree 2018-04-13 19:58:33 -04:00
azivner
afd7df0942 fix collapse tree button 2018-04-13 19:22:12 -04:00
azivner
bd6ae33d32 fancytree upgrade to 2.28.1 2018-04-12 20:42:12 -04:00
azivner
70660a0d68 Merge branch 'stable' 2018-04-12 20:04:01 -04:00
azivner
cdad18551a upgrade CKEditor to 1.0 beta.2, fixes #93 2018-04-12 20:03:23 -04:00
azivner
592c51d1a5 fix note reordering sync again 2018-04-12 18:31:29 -04:00
azivner
6a57b8a7e7 fix ordering sync 2018-04-12 18:13:48 -04:00
azivner
7a94e21c54 tabindex 2 for text and code editor so that tabbing from title leads to editor focus 2018-04-11 22:44:33 -04:00
azivner
5b43f321e2 release 0.11.1 2018-04-11 00:10:33 -04:00
azivner
a4eafb934f non null note title and content in the DB schema, allow saving non-valid JSON notes, children overview style changes 2018-04-11 00:10:11 -04:00
azivner
7b59a665dd hideChildrenOverview label which can disable children overview for specific notes 2018-04-10 23:15:41 -04:00
azivner
3d15450ffc children overview styling 2018-04-10 21:08:00 -04:00
azivner
b0c6d52461 can't rollback transaction multiple times 2018-04-10 20:28:02 -04:00
azivner
2dc16dd29f release 0.11.0-beta 2018-04-09 22:38:37 -04:00
azivner
d8924c536b Merge branch 'master' into stable 2018-04-09 22:30:50 -04:00
azivner
3ebbf2cc46 fix generating build.js 2018-04-09 22:30:11 -04:00
azivner
f4079604c9 basic implementation of children overview, closes #80 2018-04-08 22:38:52 -04:00
azivner
1f96a6beab export & import work correctly with clones 2018-04-08 13:14:30 -04:00
azivner
b277a250e5 protected notes are not in autocomplete when not in protected session, fixes #46 2018-04-08 12:27:10 -04:00
azivner
5b0e1a644d codemirror now doesn't hijack alt-left/right, fixes #86 2018-04-08 12:17:42 -04:00
azivner
6bb3cfa9a3 note revisions for code is now properly formatted, fixes #97 2018-04-08 12:13:52 -04:00
azivner
9720868f5a added type and mime to note revisions 2018-04-08 11:57:14 -04:00
azivner
8d8ee2a87a small sync refactorings 2018-04-08 10:09:33 -04:00
azivner
542e82ee5d upgraded uncompressed jquery 2018-04-08 09:40:28 -04:00
azivner
0104b19502 naming standards 2018-04-08 09:25:35 -04:00
azivner
120888b53e fix JSON saving bug 2018-04-08 08:31:19 -04:00
azivner
d2e2caed62 refactoring of note saving code & API 2018-04-08 08:21:49 -04:00
azivner
63066802a8 fix showMessage, showError
(cherry picked from commit 6128bb4)
2018-04-08 07:49:21 -04:00
azivner
6128bb4ff3 fix showMessage, showError 2018-04-08 07:48:47 -04:00
azivner
982796255d sync content check refactoring 2018-04-07 22:59:47 -04:00
azivner
36b15f474d sync cleanup 2018-04-07 22:32:46 -04:00
azivner
13f71f8967 bulk push sync 2018-04-07 22:25:28 -04:00
azivner
64336ffbee implemented bulk sync pull for increased performance 2018-04-07 21:53:42 -04:00
azivner
b09463d1b2 async logging of info messages 2018-04-07 21:30:01 -04:00
azivner
b5e6f46b9c release 0.10.2-beta 2018-04-07 16:07:25 -04:00
azivner
08af4a0465 fix code mirror loading 2018-04-07 15:56:46 -04:00
azivner
8c5df6321f fix windows sqlite binary for electron 2.0 2018-04-07 13:18:08 -04:00
azivner
d19f044961 fix bug 2018-04-07 13:14:01 -04:00
azivner
e378d9f645 label service refactoring + rename of doInTransaction to transactional 2018-04-07 13:03:16 -04:00
azivner
39dc0f71b4 fix execute note 2018-04-06 19:41:48 -04:00
azivner
0cef5c6b8c added showMessage/showError to script api as they are being used 2018-04-06 19:08:42 -04:00
azivner
9b5a44cef4 fix bugs 2018-04-06 18:49:37 -04:00
azivner
29769ed91d fix force note sync 2018-04-06 18:46:29 -04:00
azivner
867d794e17 release 0.10.1-beta 2018-04-06 00:15:04 -04:00
azivner
fdd8458336 fix sync branch route 2018-04-05 23:45:39 -04:00
azivner
a0bec22e96 fix non-200 logging 2018-04-05 23:35:49 -04:00
azivner
5aeb5cd214 jquery upgrade to 3.3.1 2018-04-05 23:18:15 -04:00
azivner
e827ddffb9 electron fixes 2018-04-05 23:17:19 -04:00
azivner
98f80998b9 fix electron build 2018-04-05 19:29:27 -04:00
azivner
69727d0b12 release 0.10.0-beta 2018-04-04 23:57:46 -04:00
azivner
84faf32b98 updated scripts 2018-04-04 23:55:19 -04:00
azivner
6ed6e27602 startup script running fix 2018-04-04 23:51:47 -04:00
azivner
fb54678fef getNoteWithLabel fix 2018-04-04 23:43:54 -04:00
azivner
2cdcb3af12 camel casing and fixes 2018-04-04 23:04:31 -04:00
azivner
cf7a336ac2 camel case for reddit labels and run values 2018-04-04 22:29:11 -04:00
azivner
abfc64af95 script to generate large documents, closes #55 2018-04-03 22:15:28 -04:00
azivner
42dd8d4754 smaller refactorings 2018-04-02 22:53:01 -04:00
azivner
a4e64350e9 fixed schema, initial setup 2018-04-02 22:33:54 -04:00
azivner
6f567e3e10 camelCase builtin labels 2018-04-02 21:56:55 -04:00
azivner
c6c76ba360 option names now follow camelCase 2018-04-02 21:47:46 -04:00
azivner
429d3f518e moved instanceName to index.ejs 2018-04-02 21:34:28 -04:00
azivner
26e4ad9bf9 separated DB initialization methods into sql_init 2018-04-02 21:25:20 -04:00
azivner
6ab0cea4e3 split out dateUtils on the backend 2018-04-02 20:46:46 -04:00
azivner
277368ab43 simplified new entity ID allocation 2018-04-02 20:30:00 -04:00
azivner
e2921a648d refactored backend to use new naming convention for modules 2018-04-01 21:27:46 -04:00
azivner
c765dbc5cf continuing in API review 2018-04-01 20:50:58 -04:00
azivner
a066c6fe2b changes in API format 2018-04-01 20:33:10 -04:00
azivner
311952d4dd renamed settings to options for consistency 2018-04-01 17:41:28 -04:00
azivner
96dab5d51e smaller refactorings continued 2018-04-01 17:38:24 -04:00
azivner
15d951b04e smaller refactorings continued 2018-04-01 12:45:35 -04:00
azivner
8ba830c04b smaller refactorings continued 2018-04-01 12:03:21 -04:00
azivner
acc82f39c4 smaller refactorings continued 2018-04-01 11:42:12 -04:00
azivner
fad0ec757b smaller refactorings (mostly entitization) 2018-04-01 11:05:09 -04:00
azivner
c9d73c6115 renamed outstanding attribute references to labels 2018-04-01 09:59:44 -04:00
azivner
ab2f28ceef added missing sync check hashes 2018-03-31 23:19:54 -04:00
azivner
87e415992c removed support for old option schema of opt_name and opt_value 2018-03-31 23:11:43 -04:00
azivner
12439d8761 refactoring of note deletion 2018-03-31 23:08:22 -04:00
azivner
4f200c73dc refactoring of note creation 2018-03-31 22:23:40 -04:00
azivner
5f7e74e15c refactoring of note update 2018-03-31 22:15:06 -04:00
azivner
e8a5d0ae16 converted note revision protection to repository/entities 2018-03-31 10:51:37 -04:00
azivner
088fb00ca9 repository is now stateless 2018-03-31 09:07:58 -04:00
azivner
05676f3459 removed dataKey where it's not necessary anymore (use of CLS instead) 2018-03-31 08:53:52 -04:00
azivner
5d203b2278 removed sourceId where it's not necessary (stored in CLS instead) 2018-03-30 19:41:54 -04:00
azivner
795d50f02e converted of web (non-api) routes, basic conversion completed 2018-03-30 19:31:22 -04:00
azivner
cfe0ae1eda converted file, script, search and sender routes 2018-03-30 17:29:13 -04:00
azivner
aa57a64c61 converted image and maintainance routes 2018-03-30 17:07:41 -04:00
azivner
e36a81e189 converted export/import notes 2018-03-30 15:34:07 -04:00
azivner
88c07a9e48 converted sync route 2018-03-30 14:27:41 -04:00
azivner
bfd9f292a6 Merge remote-tracking branch 'origin/stable' 2018-03-30 14:05:11 -04:00
azivner
9edee9340b converted settings, note revisions, password change and recent changes routes 2018-03-30 13:56:46 -04:00
azivner
8550ed72f2 converted cloning and label routes 2018-03-30 13:20:36 -04:00
azivner
efffc29649 initial work on new router model 2018-03-30 12:57:22 -04:00
azivner
0ec909fd7a added basic CLS support with re-entrant transactions 2018-03-28 23:41:22 -04:00
azivner
b10b0048f3 split out library loader 2018-03-27 22:42:46 -04:00
azivner
9bb188b519 fix unnecessary popups about leaving the page 2018-03-27 22:27:46 -04:00
azivner
7464835058 renamed "attachment" to "file" for consistency 2018-03-27 22:11:06 -04:00
azivner
913b6bb6f6 abstracted note detail components 2018-03-27 21:46:38 -04:00
azivner
000cf99546 split out render and search from note detail service 2018-03-27 21:36:01 -04:00
azivner
c918267750 separated attachments out of note detail 2018-03-27 00:27:38 -04:00
azivner
68921ee59b separated text and code handling out of note detail service 2018-03-27 00:22:02 -04:00
azivner
7e856283ee some refactorings of note detail service 2018-03-26 23:48:45 -04:00
azivner
9c1b8da573 split out keybindings out of tree service 2018-03-26 23:25:54 -04:00
azivner
cb39b9cca8 split out tree_builder 2018-03-26 23:18:50 -04:00
azivner
788ac43ad1 further refactorings, got rid of init.js 2018-03-26 22:29:14 -04:00
azivner
57d19f3302 refactored moving note in the tree 2018-03-26 22:11:45 -04:00
azivner
68bba623b6 split up autocomplete related functionality 2018-03-26 21:50:47 -04:00
azivner
35998058ce introduced NoteFull entity, fixes 2018-03-25 23:25:17 -04:00
azivner
cdf94181d2 got rid of instanceName in tree service 2018-03-25 22:56:23 -04:00
azivner
91ee90d827 cleanup in tree service 2018-03-25 22:37:02 -04:00
azivner
d3316cd09c reduced dependencies of utils 2018-03-25 21:29:35 -04:00
azivner
ac1b06967f decoupled protected session holder from presentation stuff and similar things 2018-03-25 21:16:57 -04:00
azivner
47eb1e3e02 refactored all mentions of "history" to "revision" 2018-03-25 20:52:38 -04:00
azivner
a69d8737ce fixed image upload and eslint 2018-03-25 20:18:08 -04:00
azivner
341f47f0f2 moved dialog entrypoints into bootstrap, fixes 2018-03-25 19:49:33 -04:00
azivner
19c605a9a8 labels have now alt-l shortcut to correspond with the renaming 2018-03-25 15:47:31 -04:00
azivner
54e4f54678 all access to notes and branches is now async so we can lazy load it in the future 2018-03-25 14:49:20 -04:00
azivner
297a2cd9da renamed service variables to conform to new naming scheme 2018-03-25 13:41:29 -04:00
azivner
d746d707b5 unblocking infinite cycle 2018-03-25 13:13:26 -04:00
azivner
299252b650 making WS connection asynchronous to not block module registration 2018-03-25 13:08:58 -04:00
azivner
fddd1c278f moved services into the service directory 2018-03-25 13:02:39 -04:00
azivner
f52d7e3c28 split tree_cache and entities from note_tree 2018-03-25 12:29:00 -04:00
azivner
a699210a29 using ES6 modules for whole frontend SPA app 2018-03-25 11:09:17 -04:00
azivner
b3c32a39e9 fix for moving the notes 2018-03-25 10:06:14 -04:00
azivner
df27533b66 fixes after refactorings 2018-03-25 00:20:55 -04:00
azivner
b96a1274c5 all JS functions are now inside old-school JS modules, preparation for ES6 modularization 2018-03-24 23:58:58 -04:00
azivner
001a5107dd ScriptApi separated from ScriptContext, preparation for modularisation 2018-03-24 23:45:36 -04:00
azivner
c8e456cdb1 refactoring utils into module 2018-03-24 23:37:55 -04:00
azivner
0f6b00e1c8 fixes after refactoring, base functionality works again 2018-03-24 23:00:12 -04:00
azivner
5ea060a054 renaming attributes to labels in readme 2018-03-24 22:17:31 -04:00
azivner
95bb2cf0bb renaming attributes to labels, fixes #79 2018-03-24 22:02:26 -04:00
azivner
4c472ce78b renaming note_tree to branch 2018-03-24 21:39:15 -04:00
azivner
511fb89af0 WIP refactoring of data structures in note tree 2018-03-24 20:41:27 -04:00
azivner
7e524c0cd1 removed some warnings in idea 2018-03-24 12:52:58 -04:00
azivner
e3e2dc9fff first POC of ES6 module 2018-03-24 11:18:46 -04:00
azivner
1612e9093d removed all onclick handlers from index template 2018-03-24 00:54:50 -04:00
azivner
f8649feea4 saved search can now be created from the search dialog 2018-03-23 23:08:29 -04:00
azivner
ac978c3fa7 upgrade to electron 2.0.0-beta.5, fixes #65 2018-03-23 21:01:49 -04:00
azivner
efcc804149 redesign search buttons 2018-03-13 20:02:00 -04:00
azivner
db514e8f41 display note type only for non-search notes 2018-03-13 19:47:34 -04:00
azivner
9c32f66329 context menu disables actions not applicable to search note 2018-03-13 19:31:07 -04:00
azivner
0fd5102a26 added consistency check for search note not containing children 2018-03-13 19:18:52 -04:00
azivner
840af15dae release 0.9.2 2018-03-13 08:22:25 -04:00
azivner
f1b0b3bcdb basic implementation of saved searches finished, closes #83 2018-03-12 23:27:21 -04:00
azivner
e5c0acbb43 note tree refactorings 2018-03-12 23:14:09 -04:00
azivner
834661c461 Merge remote-tracking branch 'origin/master' 2018-03-12 20:00:29 -04:00
azivner
5204ab5a7e refactoring of note tree 2018-03-12 20:00:19 -04:00
azivner
74862536a8 Merge branch 'stable' 2018-03-12 19:46:43 -04:00
zadam
a24f1f5b95 Merge pull request #90 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2018-03-11 18:52:32 -04:00
The Gitter Badger
0be76f746a Add Gitter badge 2018-03-11 22:46:54 +00:00
azivner
fad89ff63f added Theming to list of pages 2018-03-11 13:09:28 -04:00
azivner
b8ae791191 icon for saved seach 2018-03-11 10:53:10 -04:00
azivner
ce754cbd91 saving saved search, #73 2018-03-11 10:49:22 -04:00
azivner
0fdb6af98a Merge branch 'master' into stable 2018-03-10 20:33:58 -05:00
azivner
f6c7f6a0f2 added require() method for commonJS compliancy 2018-03-10 11:53:51 -05:00
azivner
354999f37a fix weight tracker script 2018-03-09 19:28:38 -05:00
azivner
348c622845 release 0.9.1-beta 2018-03-09 00:12:22 -05:00
azivner
44bcdedaba Updated all scripts to current versions working with current script API 2018-03-09 00:10:43 -05:00
azivner
755c0f3ce2 fix exclude from export 2018-03-09 00:10:02 -05:00
azivner
895bda41b5 return only startup bundles for executale notes 2018-03-08 23:36:08 -05:00
azivner
b2df622cb6 Merge branch 'stable' 2018-03-08 23:35:17 -05:00
azivner
9ba6e6d0f5 disable inclusion should work only on non-root notes 2018-03-08 23:35:08 -05:00
azivner
a5c9180533 release 0.9.0-beta 2018-03-08 20:18:37 -05:00
azivner
e86f1e0d05 changes to the HTML template to allow more complete styling 2018-03-07 23:58:34 -05:00
azivner
b6277049f3 added support for app_css attribute, which allows custom styling 2018-03-07 23:24:23 -05:00
azivner
c831221cc4 add "play" icon for "render" note types 2018-03-07 20:52:34 -05:00
azivner
577a168714 stop propagation of ctrl+enter from SQL console, fixes #73 2018-03-07 20:46:01 -05:00
azivner
b0bd27321a escape will close SQL console, closes #72 2018-03-07 20:33:41 -05:00
azivner
90c5348ca7 fix saving only image in a note, fixes #77 2018-03-07 20:19:53 -05:00
azivner
8e95b080da fixed render notes 2018-03-07 00:17:18 -05:00
azivner
766a567a32 changes in access to startNote and currentNote 2018-03-06 23:04:35 -05:00
azivner
6d0218cb36 execute note (ctrl+enter) now works for both frontend and backend scripts 2018-03-05 23:19:46 -05:00
azivner
d26170762b inclusion of scripts based on script environment 2018-03-05 23:09:36 -05:00
azivner
b3209a9bbf split javascript mime type into frontend and backend 2018-03-05 22:08:45 -05:00
azivner
61c2456cf6 startNote/currentNote is now accessible on frontend as well 2018-03-04 23:28:26 -05:00
azivner
1c6fc9029f new "disable_inclusion" attribute 2018-03-04 22:09:51 -05:00
azivner
5c91e38dfe server.exec() refactored into api 2018-03-04 21:43:14 -05:00
azivner
07bf075894 cleaned up unused jobs implementation 2018-03-04 21:33:06 -05:00
azivner
ddce5c959e fix render 2018-03-04 21:05:14 -05:00
azivner
3b9d1df05c fixed frontend script execution 2018-03-04 14:21:11 -05:00
azivner
d239ef2956 refactoring of getModules function 2018-03-04 12:06:35 -05:00
azivner
7a865a9081 common JS module system prototype 2018-03-04 10:32:53 -05:00
azivner
83d6c2970f added versioning to the metadata files in export tars 2018-03-03 09:32:21 -05:00
azivner
8c7d159012 fix export/import for multi-valued attributes 2018-03-03 09:30:18 -05:00
azivner
d169f67901 changes in backend script running 2018-03-03 09:11:41 -05:00
azivner
982b723647 basic scheduling of backend scripts using attributes 2018-03-02 20:56:58 -05:00
azivner
31d5ac05ff release 0.8.1 2018-03-01 23:08:53 -05:00
azivner
72d91d1571 don't use eslint on JSON notes, closes #70 2018-03-01 22:42:51 -05:00
azivner
f4b57f4c57 Allow attachments to be included in the scripts, closes #66 2018-03-01 22:30:06 -05:00
azivner
ee0833390a fix export in electron (auth problem) 2018-02-27 09:47:05 -05:00
azivner
2acff07368 release 0.8.0-beta 2018-02-26 22:57:15 -05:00
azivner
bea1d24f07 tweaks to eslint 2018-02-26 22:55:58 -05:00
azivner
adc270c59f removed reference to reddit plugin 2018-02-26 22:31:35 -05:00
azivner
66064f7a94 Script API changes, finished porting reddit plugin, reddit importer tar file 2018-02-26 20:47:34 -05:00
azivner
1501fa8dbf import notes from tar archive, closes #63 2018-02-26 00:07:43 -05:00
azivner
60bba46d80 export subtree to tar file 2018-02-25 10:55:21 -05:00
azivner
12c06ae97e manual transaction handling for jobs 2018-02-24 22:44:45 -05:00
azivner
f0bea9cf71 API changes necessary to port reddit plugin, closes #58 2018-02-24 21:23:04 -05:00
azivner
a555b6319c support for backend jobs and other script API changes 2018-02-24 14:42:52 -05:00
azivner
5dd93e4cdc eslint for javascript inside HTML (htmlmixed mode), closes #62 2018-02-24 00:58:11 -05:00
azivner
3b4509d833 support encryption for files, closes #60 2018-02-23 22:58:24 -05:00
azivner
19308bbfbd small changes to linting and protected session 2018-02-23 20:10:29 -05:00
azivner
4acc5432c3 autocomplete returns items which have at least one of the tokens in the leaf note title, closes #59 2018-02-22 19:52:08 -05:00
azivner
08b8141fdf upgrade to codemirror 5.35 2018-02-21 23:09:52 -05:00
azivner
e1200aa308 lazy loading of eslint only for JS code 2018-02-21 20:30:15 -05:00
azivner
89666eb078 paperclip icon for attachment, closes #61 2018-02-21 19:53:46 -05:00
azivner
d5605aa64d initial support for eslint backed JS linting 2018-02-20 23:24:55 -05:00
azivner
2582b016f9 increased "connection lost" timeout from 5 seconds to 30, it was way to common and mostly false positive 2018-02-20 07:52:39 -05:00
azivner
e8c52e25f0 release 0.7.0-beta 2018-02-19 23:03:30 -05:00
azivner
a149c6a105 lazy / dynamic loading of CKEditor and Code mirror 2018-02-19 22:02:03 -05:00
azivner
131af9ab12 fix attachment sync 2018-02-18 22:55:36 -05:00
azivner
aa2bbc6575 attachment download now works also in electron, added option to open the attachment 2018-02-18 22:19:07 -05:00
azivner
78e8c15786 attachment upload and download now works for browser 2018-02-18 21:28:24 -05:00
azivner
fda4146150 correct handling of inclusion of dependencies 2018-02-18 10:47:02 -05:00
azivner
ddc885066e support passing functions to the backend as parameters 2018-02-18 09:53:36 -05:00
azivner
08bc2afb49 now it's possible to add comment to the weight, closes #54 2018-02-17 11:47:22 -05:00
azivner
1d0220b03d add weight causes updating old chart instead of creating new chart, closes #53 2018-02-17 10:45:00 -05:00
azivner
3033f7cc08 attribute value is now non-null, fixes #52 2018-02-16 19:07:59 -05:00
azivner
6b9ff47c88 Merge branch 'stable' 2018-02-15 23:24:02 -05:00
azivner
fd02c6102d release 0.6.2 2018-02-15 23:08:02 -05:00
azivner
30c712a6be updated package-lock 2018-02-15 23:07:58 -05:00
azivner
3928c96640 electron update to 1.8.2 stable 2018-02-15 23:05:18 -05:00
azivner
d86f655658 attempt to mitigate problem with creating day subnotes 2018-02-15 23:04:50 -05:00
azivner
abdad1c3ae log error messages with ERROR: prefix (there's wasn't anyt other distinction before) 2018-02-15 22:30:05 -05:00
azivner
9e5f1a0a87 Global shortcut registration logs failure, closes #47 2018-02-15 22:17:18 -05:00
azivner
cdde6a4d8e file/attachment upload, wiP 2018-02-14 23:31:20 -05:00
azivner
8028b09351 release 0.6.1 2018-02-13 23:27:34 -05:00
azivner
ebe66eaed9 after creating new note, unselect previous active, fixes #45 2018-02-13 23:25:28 -05:00
azivner
5bce9a5f94 added hide_in_autocomplete attribute to weight script 2018-02-13 22:50:12 -05:00
azivner
dfd9927310 added createAttribute method to script API 2018-02-13 22:46:45 -05:00
azivner
9bf1735bde reddit notes will be created with "hide_in_autocomplete" attribute 2018-02-13 22:34:33 -05:00
azivner
2e8eeda5ab new attribute "hide_in_autocomplete", fixes #16 2018-02-13 22:30:33 -05:00
azivner
1cef0ce5f9 removed CTRL-ALT-C global shortcut with pasting from clipboard, keeping only CTRL-ALT-P without clipboard 2018-02-13 19:55:04 -05:00
azivner
1efac99828 limit number of autocomplete results to 100, closes #44 2018-02-13 19:37:07 -05:00
azivner
0e9473119e global keyboard shortcuts for quick creating sub-notes under day note 2018-02-12 23:53:00 -05:00
azivner
7bbfef7af3 better positioning of the recent notes dialog 2018-02-12 21:20:30 -05:00
azivner
5cb93509c1 stop trying to wrap autocomplete with underlying dialog - seems to be impossible to get it right on all platforms 2018-02-12 21:09:50 -05:00
azivner
89e89e04d8 alt+t is now shortcut for today script 2018-02-12 00:30:02 -05:00
azivner
72df0d8861 release 0.6.0-beta 2018-02-11 22:06:57 -05:00
azivner
9910aebf45 fix schema.sql 2018-02-11 22:06:12 -05:00
azivner
f9f8ecb2b1 recent notes doesn't fail totally when we can't find title for some note 2018-02-11 15:33:10 -05:00
azivner
438f7c5b0b escape should close the recent notes dialog 2018-02-11 11:53:43 -05:00
azivner
4b1d1aba74 add sender API to send text notes 2018-02-11 10:54:56 -05:00
azivner
6dea73cfe2 sender API now accepts local time header so we don't have problems with UTC 2018-02-11 09:14:21 -05:00
azivner
58f5d0cf6e recent notes are not closed when I click on e.g. dialog title bar 2018-02-11 08:57:12 -05:00
azivner
7b77e40514 added support for trilium-sender 2018-02-11 00:18:59 -05:00
azivner
660908c54b fix sorting notes 2018-02-10 13:55:06 -05:00
azivner
e970564036 create months and days with associated english names, closes #37 2018-02-10 13:53:35 -05:00
azivner
b3038487f8 fix image support broken in recent refactorings 2018-02-10 10:00:40 -05:00
azivner
cac98392a6 code mirror in SQL console, closes #24 2018-02-10 09:14:18 -05:00
azivner
dbd28377e3 change in naming conventions for element variables from *El to $name 2018-02-10 08:44:34 -05:00
azivner
c76e4faf5d added attributes sorting 2018-02-10 08:37:14 -05:00
azivner
e011b9ae63 deleting attributes, closes #34 2018-02-06 23:09:19 -05:00
azivner
7c74c77a2c allow duplicated attribute per note (in effect attributes can be multi-valued). Closes #33 2018-02-06 21:18:09 -05:00
azivner
c2a2f195aa Merge branch 'stable' 2018-02-06 21:04:27 -05:00
azivner
85d32c66f2 release 0.5.6 2018-02-06 00:06:04 -05:00
azivner
4e70cebf70 recent notes now use autocomplete instead of select box, closes #36 2018-02-05 23:50:25 -05:00
azivner
214d2e7659 correct quoting rules for attribute/status bar 2018-02-05 22:28:12 -05:00
azivner
f380bb7f65 removal of extra console logs 2018-02-05 22:26:50 -05:00
azivner
0a9a032daa fix incorrect removal of attribute filter from string, fixes #35 2018-02-05 22:25:25 -05:00
azivner
23a2b58b24 fix #32, could not open attribute dialog if it didn't have any attributes yet 2018-02-05 21:07:18 -05:00
azivner
aee64b2522 fix visual glitch in search - showing search now doesn't move note content 2018-02-05 20:53:04 -05:00
azivner
02e07ec03a release 0.5.5-beta 2018-02-04 23:19:20 -05:00
azivner
3d2dc8e699 fixes for change propagation (conflict between knockout and jquery UI autocomplete) 2018-02-04 23:16:45 -05:00
azivner
c84e15c9be implemented query language for attributes, closes #26 2018-02-04 22:44:15 -05:00
azivner
e18d0b9fd4 tag list in "status bar", closes #28 2018-02-04 20:23:30 -05:00
azivner
52817504d1 autocomplete for attribute values, closes #31 2018-02-04 19:43:11 -05:00
azivner
a3b31fab54 autocomplete for attribute names, issue #31 2018-02-04 19:27:27 -05:00
azivner
bc4aa3e40a removed ctrl+shift+left, ctrl+shift+right because of conflict with standard keyboard mapping, close #25 2018-02-04 18:12:17 -05:00
azivner
873ea67e9c nice UI for attributes with validation 2018-02-04 17:22:21 -05:00
azivner
2c5115003b release 0.5.4-beta 2018-02-03 13:25:29 -05:00
azivner
e8ed913374 small changes in the toolbar 2018-02-03 12:44:22 -05:00
azivner
5bffba4e2f add API to add plugin buttons, fixes 2018-02-03 10:37:57 -05:00
azivner
05575913db release 0.5.3-beta 2018-01-31 23:57:20 -05:00
azivner
31c32ff42c fixes when generating new DB 2018-01-31 23:36:39 -05:00
azivner
6a671a5c02 fix electron app icon 2018-01-31 22:39:30 -05:00
azivner
e174aec299 release 0.5.2-beta 2018-01-31 08:04:13 -05:00
azivner
d1329f60c3 fix electron build 2018-01-31 08:03:25 -05:00
azivner
56b59e59bc release 0.5.1-beta 2018-01-30 23:59:01 -05:00
azivner
0ef426dde3 fix electron build 2018-01-30 23:58:52 -05:00
azivner
97acb24dce release 0.5.0-beta 2018-01-30 23:25:22 -05:00
azivner
3f7b54425d sync fixes 2018-01-30 23:23:19 -05:00
azivner
47dfca83eb added weight script 2018-01-30 23:06:11 -05:00
azivner
8249a81c77 various script fixes, including for electron 2018-01-30 22:44:46 -05:00
azivner
72bd2507fe script bugfixes 2018-01-30 21:25:47 -05:00
azivner
5217339209 update to entity creates sync event 2018-01-30 20:12:19 -05:00
azivner
35c7b54176 support for updating entities etc. 2018-01-29 23:35:36 -05:00
azivner
6fa6891496 created repository object to access entities 2018-01-29 23:17:44 -05:00
azivner
9a091408e3 script related changes 2018-01-29 20:57:55 -05:00
azivner
587f3d833e basic entity support with lazy loaded relations 2018-01-29 18:34:59 -05:00
azivner
b44412bc32 renaming of sql methods to fit getRows/getEntities model 2018-01-29 17:41:59 -05:00
azivner
9b53a17168 first experiments with note entity 2018-01-28 23:16:50 -05:00
azivner
52ad7f64b4 moved all sources to src directory 2018-01-28 22:18:15 -05:00
azivner
669d189ab7 fix problem with headers / source ids 2018-01-28 21:57:46 -05:00
azivner
9a0c2b6bcd moved migration directory to db, fix sync records 2018-01-28 21:00:54 -05:00
azivner
75878c80a8 migration script to camel case 2018-01-28 20:52:05 -05:00
azivner
c558b7c506 removed unused doc directory 2018-01-28 19:42:02 -05:00
azivner
11e173aeac small changes to table names (notes_image => note_images etc.) 2018-01-28 19:38:05 -05:00
azivner
3b1f928fbc renamed db columns to camelCase 2018-01-28 19:30:14 -05:00
azivner
55d8ef7e81 script API changes 2018-01-28 12:08:57 -05:00
azivner
4ab763e295 added codemirror plugin for easier editing - matchtags, match brackets and highlight matches 2018-01-28 11:19:31 -05:00
azivner
e8f8341ef9 fix for icon change when creating note / changing type/mime 2018-01-28 10:37:43 -05:00
azivner
7ca0445bae indent JSON when saving 2018-01-27 18:02:44 -05:00
azivner
3f1e73d06b more changes for scripts - separate API etc. 2018-01-27 17:18:19 -05:00
azivner
005480059a changes for script execution (parameters etc.) 2018-01-26 23:40:48 -05:00
azivner
5981b9bc7b new code icons, protected note icon in note tree is now styled using CSS filter drop shadow 2018-01-26 22:32:44 -05:00
azivner
b2ff97ccf2 new note inherits type and mime from parent note, closes #20 2018-01-26 21:31:52 -05:00
azivner
0da13994a6 better filtering of empty HTML content (just tags and whitespace) 2018-01-26 19:54:27 -05:00
azivner
9f3d46ddb1 Allow marking code (JavaScript) notes for execution after application loads, closes #19 2018-01-25 23:49:03 -05:00
azivner
a42fd9b090 refactoring of script subtree execution 2018-01-25 23:22:19 -05:00
azivner
aad5ea577f refactored "date note" functions out of reddit plugin 2018-01-24 23:08:14 -05:00
azivner
af34b378e2 electron dev dependencies upgrade 2018-01-24 22:30:31 -05:00
azivner
e9c2c4f895 electron 1.8.2-beta.4 upgrade 2018-01-24 22:20:03 -05:00
azivner
74fff39c3f refactoring / unification of note encryption / decryption 2018-01-24 22:13:41 -05:00
azivner
18709eb340 new note type: render HTML note 2018-01-23 23:41:22 -05:00
azivner
f3ccf85285 filtering out initial <p>&nbsp;</p> which is ugly when switching to code 2018-01-23 23:01:30 -05:00
azivner
4ed2dc9f53 support of including JS subnotes when executing 2018-01-23 22:53:27 -05:00
azivner
6f79a1c05b notes with attribute "disable_versioning" set to "true" won't have history records created upon modification. This is meant for e.g. large JS libraries etc. 2018-01-23 22:11:03 -05:00
azivner
f439969962 support for execution of async functions + integration with backend through server.exec() 2018-01-23 21:59:30 -05:00
azivner
27cb6b1c4d added possibility of executing javascript 2018-01-23 20:45:34 -05:00
azivner
8adb31757f add link disables HTML link when in code note (plus some related refactorings) 2018-01-23 20:14:10 -05:00
azivner
403cf02ea7 fix syntax highlight switch 2018-01-23 19:51:16 -05:00
azivner
27f12a0186 keyboard based zooming in electron, fixes #10 2018-01-22 23:30:25 -05:00
azivner
a10269a086 measuring how much time does autocomplete building takes 2018-01-22 23:18:08 -05:00
azivner
9901882a0f codemirror mode lazy loading 2018-01-22 23:07:04 -05:00
azivner
93d0e0aa2d fixes for indentation and keyboard shortcuts 2018-01-22 22:14:03 -05:00
azivner
d8b7763dea fix non-handled keyboard events coming from code mirror 2018-01-22 21:29:56 -05:00
azivner
9760eb71d3 updated schema 2018-01-21 23:44:42 -05:00
azivner
e56fb6d2d4 support for loading and saving type and mime 2018-01-21 23:36:09 -05:00
azivner
f9631ff59f added note type picker component 2018-01-21 23:06:25 -05:00
azivner
c8f456d228 note ID in lower right corner 2018-01-21 20:15:42 -05:00
azivner
15958d06a9 support for saving code notes + other tweaks 2018-01-21 10:33:33 -05:00
azivner
090e1b845f first experiments with code mirror 2018-01-20 21:56:03 -05:00
azivner
93b4cf6a05 submit attribute form on enter 2018-01-19 19:39:37 -05:00
azivner
32db96f388 added note scoped actions button, fix #8 2018-01-19 19:36:41 -05:00
azivner
f42835e083 fix order of pasted notes when doing multi-select operations 2018-01-19 18:34:21 -05:00
azivner
fcd11c341c added consitency check for null title or text 2018-01-18 19:04:30 -05:00
azivner
ec4b28f97c release 0.4.1 2018-01-17 23:59:03 -05:00
azivner
651a9fb327 fix note sorting with sync - deleted note trees should not be sorted 2018-01-17 20:19:41 -05:00
azivner
b642a567bb fix #5 2018-01-16 23:22:13 -05:00
azivner
9c85303c94 fix attribute sync 2018-01-16 20:30:33 -05:00
azivner
06bb39cffd small refactorings of reddit plugin 2018-01-16 20:11:50 -05:00
azivner
7ea23586fe improvements to search, fixing issue #1 2018-01-15 20:54:22 -05:00
azivner
31a69a96c0 release 0.4.0-beta 2018-01-14 22:08:42 -05:00
azivner
d30a57d388 delete now works with multi-select 2018-01-14 21:39:21 -05:00
azivner
45a92313d5 attribute sync fixes 2018-01-13 23:33:09 -05:00
azivner
359ff58be8 Merge branch 'stable' 2018-01-13 23:27:11 -05:00
azivner
5173afde82 changes in formatting of reddit comments 2018-01-13 23:24:40 -05:00
azivner
36f920b975 alt+s is now shortcut for sorting, search is not triggered with ctrl+s 2018-01-13 23:03:17 -05:00
azivner
9839ea019e reddit plugin configuration from file, not from options now. Scheduling, refactoring of sync mutex 2018-01-13 22:51:39 -05:00
azivner
fbfaff6ab8 reddit plugin - recognizing existing date structure 2018-01-13 21:32:29 -05:00
azivner
9860c8deef refactoring of routes - noteId needs to go to /notes noteTreeId to /tree 2018-01-13 20:53:00 -05:00
azivner
16eb156033 refactoring of note changes / cloning 2018-01-13 18:02:41 -05:00
azivner
4f649c2e21 added note alphabetical sorting to context menu 2018-01-13 17:00:40 -05:00
azivner
a375c55371 reddit plugin refactoring, performance improvemnts etc. 2018-01-13 15:25:09 -05:00
azivner
416cf9a2bc release 0.3.3 2018-01-12 23:30:47 -05:00
azivner
ccd222cf12 reddit plugin - import from multiple accounts, paging, structuring per year, month, day 2018-01-12 22:44:55 -05:00
azivner
983d3f2cc5 Merge branch 'stable' 2018-01-12 20:15:33 -05:00
azivner
92271a84b7 fix for setup & db upgrade - we still need internal redirects 2018-01-12 20:05:17 -05:00
azivner
7d456240a8 prevent drag & drop to navigate away from trilium 2018-01-12 18:42:00 -05:00
azivner
453f22df14 work in progress reddit plugin 2018-01-11 23:54:17 -05:00
azivner
0575924cf1 added is_synced to options to better differentiate between synced and not synced options 2018-01-11 22:45:25 -05:00
azivner
231c245c87 saving attributes 2018-01-11 21:40:09 -05:00
azivner
8fe6a9353a added dialog and read only view of attributes 2018-01-11 00:01:16 -05:00
azivner
b250ad593c added basic infrastructure for attributes 2018-01-09 22:09:45 -05:00
azivner
58362405c6 workaround for CKEditor bug with setting empty data 2018-01-09 20:01:02 -05:00
azivner
0bdf900e2e release 0.3.2 2018-01-08 23:35:02 -05:00
azivner
90de4b8600 fixes in build script 2018-01-08 23:34:54 -05:00
azivner
4e5a95a1ac fix scrypt binary for windows 2018-01-08 20:40:20 -05:00
azivner
77278fe09e added small image to demo document 2018-01-07 23:52:32 -05:00
azivner
cfbeba80db release 0.3.1 2018-01-07 22:23:41 -05:00
azivner
865d298631 release 0.3.1 2018-01-07 22:10:13 -05:00
azivner
86b1410952 release 0.3.1 2018-01-07 21:56:39 -05:00
azivner
29eb88bac3 added consistency check 2018-01-07 20:16:31 -05:00
azivner
31b4186e17 optional cleanup of unused images 2018-01-07 14:07:59 -05:00
azivner
bde9e825c8 added binary dependencies to repo 2018-01-07 11:49:35 -05:00
azivner
0e8285a7e4 updated schema with image tables 2018-01-07 10:35:24 -05:00
azivner
780f462e94 release 0.3.0 2018-01-07 10:04:46 -05:00
azivner
488e657cc4 forgotten express-promise-wrap in package.json 2018-01-07 10:04:43 -05:00
azivner
8bc2a21d80 auth exception for images in electron 2018-01-07 09:59:05 -05:00
azivner
743d72a0c3 added express-promise-wrap to catch and respond to unhandled exceptions immediately, previously the requests just hanged 2018-01-07 09:35:44 -05:00
azivner
20b1357be6 gif support 2018-01-07 09:22:55 -05:00
azivner
d9f2bb37e7 PNG alpha channel is converted to white instead of default ugly black 2018-01-07 08:26:42 -05:00
azivner
97c1b3061f correct detection of optimized image format 2018-01-07 08:24:04 -05:00
azivner
c022fcf196 reloading note tree when we have note detail changes 2018-01-06 22:56:54 -05:00
azivner
b5baab056c enter on title will put focus on editor 2018-01-06 22:53:37 -05:00
azivner
edc9a1a2bf creating / updating notes_image rows 2018-01-06 22:38:53 -05:00
azivner
c0e45a73a8 relation between notes and images 2018-01-06 21:49:02 -05:00
azivner
784cd62df1 image sync 2018-01-06 15:56:00 -05:00
azivner
91cf090820 compressing PNGs with pngquant 2018-01-06 13:53:02 -05:00
azivner
d9f29cbf27 resizing and optimizing jpeg images with mozjpeg 2018-01-06 12:38:25 -05:00
azivner
23a5e38e02 added basic support for uploading and serving files 2018-01-05 23:54:02 -05:00
azivner
663bd1a8fe added sync mutex for consistency checks and backup 2018-01-04 21:37:36 -05:00
azivner
a6a687c4a6 release 0.2.2 2018-01-03 23:05:00 -05:00
azivner
f2aaf8b0a3 ctrl+click doesn't activate the node and selects only if it's not selected yet, otherwise deselects 2018-01-03 22:54:13 -05:00
azivner
01ede22504 added backspace to move to parent node 2018-01-03 22:49:53 -05:00
azivner
b6d617aefa returned missing requires 2018-01-03 22:43:01 -05:00
azivner
7921850186 added missing map file and unminified context menu js file 2018-01-03 22:36:27 -05:00
azivner
244a4562b1 not unique key between parent_note_id and note_id in schema 2018-01-03 22:15:06 -05:00
azivner
07c33979c3 consistent checking of is_deleted, some small refactorings 2018-01-03 22:13:02 -05:00
azivner
353a9b24c1 added consistency check for unique non-deleted parent note <-> note relationship 2018-01-03 21:33:19 -05:00
azivner
548ecd4171 removed unique index again - from now on the invariant is that there's unique undeleted relationship between note and parent note 2018-01-03 21:29:13 -05:00
azivner
8d9b0db316 release 0.2.1 2018-01-02 22:46:50 -05:00
azivner
96a44a9a0c added some showcase formatting to the welcome page in the demo database 2018-01-02 22:14:53 -05:00
azivner
b545100cad removed loader animation - it was causing issues with initial focus on the tree (probably by stealing focus) 2018-01-02 22:01:38 -05:00
azivner
e32289720c not hiding the elements for alt-m, just lowering opacity 2018-01-02 20:52:36 -05:00
azivner
550bb77ca9 fixed switching between note clones 2018-01-02 20:16:17 -05:00
azivner
664a87cdd5 checks against moving note to where it already exists 2018-01-02 19:56:45 -05:00
azivner
53ee1fa5ed note_id - parent_note_id index needs to be unique 2018-01-02 19:20:42 -05:00
azivner
361d8a4216 release 0.2.0 2018-01-01 23:29:34 -05:00
azivner
ae6e222c50 fix for moving note inside not-yet folder 2018-01-01 23:28:00 -05:00
azivner
37995f1ce5 info message about copying / cutting into clipboard 2018-01-01 22:33:21 -05:00
azivner
ad7fa5e096 better conflict detection 2018-01-01 22:28:19 -05:00
azivner
3585982758 measuring and logging time to compute content hash and consistency checks 2018-01-01 19:47:50 -05:00
azivner
c776f298f2 tree cycle consistency check 2018-01-01 19:41:22 -05:00
azivner
f07c427da1 fixed race condition when changing note path in URL hash which caused flickering 2018-01-01 18:53:52 -05:00
azivner
e560072f8b drag & drop support for multi select plus some fixes 2018-01-01 18:29:06 -05:00
azivner
3f976a3821 ctrl-a selects all nodes at the current level (without children) 2018-01-01 18:11:23 -05:00
azivner
274bb32696 multi-select in note tree and clipboard operations on the selection 2018-01-01 17:59:59 -05:00
azivner
99b163a042 fix for forced note sync 2017-12-30 21:55:44 -05:00
azivner
fdcc833f6d added force note sync functionality to context menu 2017-12-30 21:44:26 -05:00
azivner
a8e45019e4 failing early when decryption fails 2017-12-30 20:14:05 -05:00
azivner
7f7028873c fixed synced issue when changing protected status of note history 2017-12-30 19:38:30 -05:00
azivner
2d2d76a715 enter on note tree can also give focus to the editor 2017-12-28 22:57:35 -05:00
azivner
69cbfaae17 release 0.1.2 2017-12-28 21:17:25 -05:00
azivner
aebce8f12b making not focused active tree item more visible 2017-12-28 20:53:31 -05:00
azivner
045ca1f0bf global CTRL-SHIFT-arrows to move in the note tree without losing focus in the note editor 2017-12-28 20:38:57 -05:00
azivner
bf2db6eac7 after loading new note make sure editor is scrolled to the top 2017-12-28 20:13:54 -05:00
azivner
cf84114f91 removed unused methods 2017-12-28 19:58:33 -05:00
azivner
6426157bb3 title in fancytree needs to be escaped for HTML special characters 2017-12-28 19:00:31 -05:00
azivner
332fc16852 fix pasting into non-expanded non-loaded node (UI only) 2017-12-27 22:44:27 -05:00
azivner
da2cd57428 CTRL+ENTER on note in tree pane switches to the editor 2017-12-27 21:16:47 -05:00
azivner
de9bab1181 fixed keyboard controlled clipboard 2017-12-27 21:12:54 -05:00
azivner
136375cf11 refactored detection of whether user is initialized 2017-12-27 18:23:24 -05:00
azivner
eabc7f80b7 release 0.1.1 2017-12-27 17:41:07 -05:00
azivner
6405d6e066 added linux ia32 build 2017-12-27 17:39:41 -05:00
azivner
f6d481a9e2 fix resource path bug 2017-12-27 16:44:15 -05:00
azivner
695f0e5879 release 0.1.0 2017-12-26 22:59:46 -05:00
azivner
ae337e4500 don't open dev tools for search page in electron 2017-12-26 22:24:47 -05:00
azivner
19ffa14f10 hide logout button in electron since it doesn't do anything 2017-12-26 22:19:42 -05:00
azivner
bf3f26fde8 using textarea instead of pre for note source since that's easier to copy to clipboard 2017-12-26 20:54:41 -05:00
azivner
dece400207 release 0.0.11 2017-12-26 19:57:44 -05:00
azivner
baab745462 some visual tweaks 2017-12-26 19:54:43 -05:00
azivner
0d3b3ec7c5 alt+s toggles search instead of just showing it 2017-12-26 19:16:04 -05:00
azivner
7aff20bb0d added show note source 2017-12-26 18:15:29 -05:00
azivner
5acf84aece Calling project "Trilium Notes" in some places as it is more self explanatory 2017-12-26 12:55:40 -05:00
azivner
c58a0df76d added list of wiki pages into README 2017-12-26 11:08:23 -05:00
azivner
20c14a1920 fix collapse tree keyboard shortcut 2017-12-26 11:00:04 -05:00
azivner
04063d8a9c sql console reports successful execution (useful when query doesn't produce any result set like in update/delete) 2017-12-26 10:21:33 -05:00
azivner
dd69e0135b added collapse sub-tree in context menu 2017-12-26 10:00:08 -05:00
azivner
ab6e78f726 keyboard shortcut titles on buttons 2017-12-26 09:44:16 -05:00
azivner
9029d18178 fix go to external link by double clicking 2017-12-26 09:10:54 -05:00
azivner
e9a1791e3d fix unwanted movement with navigation keys 2017-12-25 21:47:32 -05:00
azivner
70e13c8a20 release 0.0.10 2017-12-25 21:06:39 -05:00
azivner
7e1cc729f9 have to add changed files to index before committing 2017-12-25 21:06:35 -05:00
azivner
87e7828440 release scripts fixes 2017-12-25 21:05:08 -05:00
864 changed files with 237941 additions and 13589 deletions

4
.dockerignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules
npm-debug.log
dist
.idea

2
.gitignore vendored
View File

@@ -6,4 +6,4 @@ yarn-error.log
*.db
config.ini
cert.key
cert.crt
cert.crt

14
.idea/dataSources.xml generated Normal file
View File

@@ -0,0 +1,14 @@
<?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="a2c75661-f9e2-478f-a69f-6a9409e69997">
<driver-ref>sqlite.xerial</driver-ref>
<synchronize>true</synchronize>
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/../trilium-data/document.db</jdbc-url>
<driver-properties>
<property name="enable_load_extension" value="true" />
</driver-properties>
</data-source>
</component>
</project>

View File

@@ -0,0 +1,651 @@
<?xml version="1.0" encoding="UTF-8"?>
<dataSource name="document.db">
<database-model serializer="dbm" rdbms="SQLITE" format-version="4.11">
<root id="1">
<ServerVersion>3.16.1</ServerVersion>
</root>
<schema id="2" parent="1" name="main">
<Current>1</Current>
<Visible>1</Visible>
</schema>
<collation id="3" parent="1" name="BINARY"/>
<collation id="4" parent="1" name="NOCASE"/>
<collation id="5" parent="1" name="RTRIM"/>
<table id="6" parent="2" name="api_tokens"/>
<table id="7" parent="2" name="attributes"/>
<table id="8" parent="2" name="branches"/>
<table id="9" parent="2" name="event_log"/>
<table id="10" parent="2" name="images"/>
<table id="11" parent="2" name="note_images"/>
<table id="12" parent="2" name="note_revisions"/>
<table id="13" parent="2" name="notes"/>
<table id="14" parent="2" name="options"/>
<table id="15" parent="2" name="recent_notes"/>
<table id="16" parent="2" name="source_ids"/>
<table id="17" parent="2" name="sqlite_master">
<System>1</System>
</table>
<table id="18" parent="2" name="sqlite_sequence">
<System>1</System>
</table>
<table id="19" parent="2" name="sync"/>
<column id="20" parent="6" name="apiTokenId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="21" parent="6" name="token">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="22" parent="6" name="dateCreated">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="23" parent="6" name="isDeleted">
<Position>4</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="24" parent="6" name="hash">
<Position>5</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<index id="25" parent="6" name="sqlite_autoindex_api_tokens_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>apiTokenId</ColNames>
<Unique>1</Unique>
</index>
<key id="26" parent="6">
<ColNames>apiTokenId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_api_tokens_1</UnderlyingIndexName>
</key>
<column id="27" parent="7" name="attributeId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="28" parent="7" name="noteId">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="29" parent="7" name="type">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="30" parent="7" name="name">
<Position>4</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="31" parent="7" name="value">
<Position>5</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;&apos;</DefaultExpression>
</column>
<column id="32" parent="7" name="position">
<Position>6</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="33" parent="7" name="dateCreated">
<Position>7</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="34" parent="7" name="dateModified">
<Position>8</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="35" parent="7" name="isDeleted">
<Position>9</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="36" parent="7" name="hash">
<Position>10</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<column id="37" parent="7" name="isInheritable">
<Position>11</Position>
<DataType>int|0s</DataType>
<DefaultExpression>0</DefaultExpression>
</column>
<index id="38" parent="7" name="sqlite_autoindex_attributes_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>attributeId</ColNames>
<Unique>1</Unique>
</index>
<key id="39" parent="7">
<ColNames>attributeId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_attributes_1</UnderlyingIndexName>
</key>
<column id="40" parent="8" name="branchId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="41" parent="8" name="noteId">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="42" parent="8" name="parentNoteId">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="43" parent="8" name="notePosition">
<Position>4</Position>
<DataType>INTEGER|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="44" parent="8" name="prefix">
<Position>5</Position>
<DataType>TEXT|0s</DataType>
</column>
<column id="45" parent="8" name="isExpanded">
<Position>6</Position>
<DataType>BOOLEAN|0s</DataType>
</column>
<column id="46" parent="8" name="isDeleted">
<Position>7</Position>
<DataType>INTEGER|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="47" parent="8" name="dateModified">
<Position>8</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="48" parent="8" name="hash">
<Position>9</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<column id="49" parent="8" name="dateCreated">
<Position>10</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1970-01-01T00:00:00.000Z&apos;</DefaultExpression>
</column>
<index id="50" parent="8" name="sqlite_autoindex_branches_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>branchId</ColNames>
<Unique>1</Unique>
</index>
<index id="51" parent="8" name="IDX_branches_noteId_parentNoteId">
<ColNames>noteId
parentNoteId</ColNames>
</index>
<index id="52" parent="8" name="IDX_branches_noteId">
<ColNames>noteId</ColNames>
</index>
<index id="53" parent="8" name="IDX_branches_parentNoteId">
<ColNames>parentNoteId</ColNames>
</index>
<key id="54" parent="8">
<ColNames>branchId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_branches_1</UnderlyingIndexName>
</key>
<column id="55" parent="9" name="eventId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="56" parent="9" name="noteId">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
</column>
<column id="57" parent="9" name="comment">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
</column>
<column id="58" parent="9" name="dateCreated">
<Position>4</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<index id="59" parent="9" name="sqlite_autoindex_event_log_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>eventId</ColNames>
<Unique>1</Unique>
</index>
<key id="60" parent="9">
<ColNames>eventId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_event_log_1</UnderlyingIndexName>
</key>
<column id="61" parent="10" name="imageId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="62" parent="10" name="format">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="63" parent="10" name="checksum">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="64" parent="10" name="name">
<Position>4</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="65" parent="10" name="data">
<Position>5</Position>
<DataType>BLOB|0s</DataType>
</column>
<column id="66" parent="10" name="isDeleted">
<Position>6</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="67" parent="10" name="dateModified">
<Position>7</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="68" parent="10" name="dateCreated">
<Position>8</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="69" parent="10" name="hash">
<Position>9</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<index id="70" parent="10" name="sqlite_autoindex_images_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>imageId</ColNames>
<Unique>1</Unique>
</index>
<key id="71" parent="10">
<ColNames>imageId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_images_1</UnderlyingIndexName>
</key>
<column id="72" parent="11" name="noteImageId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="73" parent="11" name="noteId">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="74" parent="11" name="imageId">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="75" parent="11" name="isDeleted">
<Position>4</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="76" parent="11" name="dateModified">
<Position>5</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="77" parent="11" name="dateCreated">
<Position>6</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="78" parent="11" name="hash">
<Position>7</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<index id="79" parent="11" name="sqlite_autoindex_note_images_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>noteImageId</ColNames>
<Unique>1</Unique>
</index>
<index id="80" parent="11" name="IDX_note_images_noteId_imageId">
<ColNames>noteId
imageId</ColNames>
</index>
<index id="81" parent="11" name="IDX_note_images_noteId">
<ColNames>noteId</ColNames>
</index>
<index id="82" parent="11" name="IDX_note_images_imageId">
<ColNames>imageId</ColNames>
</index>
<key id="83" parent="11">
<ColNames>noteImageId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_note_images_1</UnderlyingIndexName>
</key>
<column id="84" parent="12" name="noteRevisionId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="85" parent="12" name="noteId">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="86" parent="12" name="title">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
</column>
<column id="87" parent="12" name="content">
<Position>4</Position>
<DataType>TEXT|0s</DataType>
</column>
<column id="88" parent="12" name="isProtected">
<Position>5</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="89" parent="12" name="dateModifiedFrom">
<Position>6</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="90" parent="12" name="dateModifiedTo">
<Position>7</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="91" parent="12" name="type">
<Position>8</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;&apos;</DefaultExpression>
</column>
<column id="92" parent="12" name="mime">
<Position>9</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;&apos;</DefaultExpression>
</column>
<column id="93" parent="12" name="hash">
<Position>10</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<index id="94" parent="12" name="sqlite_autoindex_note_revisions_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>noteRevisionId</ColNames>
<Unique>1</Unique>
</index>
<index id="95" parent="12" name="IDX_note_revisions_noteId">
<ColNames>noteId</ColNames>
</index>
<index id="96" parent="12" name="IDX_note_revisions_dateModifiedFrom">
<ColNames>dateModifiedFrom</ColNames>
</index>
<index id="97" parent="12" name="IDX_note_revisions_dateModifiedTo">
<ColNames>dateModifiedTo</ColNames>
</index>
<key id="98" parent="12">
<ColNames>noteRevisionId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_note_revisions_1</UnderlyingIndexName>
</key>
<column id="99" parent="13" name="noteId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="100" parent="13" name="title">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;unnamed&quot;</DefaultExpression>
</column>
<column id="101" parent="13" name="content">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<column id="102" parent="13" name="isProtected">
<Position>4</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="103" parent="13" name="isDeleted">
<Position>5</Position>
<DataType>INT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="104" parent="13" name="dateCreated">
<Position>6</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="105" parent="13" name="dateModified">
<Position>7</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="106" parent="13" name="type">
<Position>8</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;text&apos;</DefaultExpression>
</column>
<column id="107" parent="13" name="mime">
<Position>9</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;text/html&apos;</DefaultExpression>
</column>
<column id="108" parent="13" name="hash">
<Position>10</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<index id="109" parent="13" name="sqlite_autoindex_notes_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>noteId</ColNames>
<Unique>1</Unique>
</index>
<index id="110" parent="13" name="IDX_notes_type">
<ColNames>type</ColNames>
</index>
<key id="111" parent="13">
<ColNames>noteId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_notes_1</UnderlyingIndexName>
</key>
<column id="112" parent="14" name="name">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="113" parent="14" name="value">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
</column>
<column id="114" parent="14" name="dateModified">
<Position>3</Position>
<DataType>INT|0s</DataType>
</column>
<column id="115" parent="14" name="isSynced">
<Position>4</Position>
<DataType>INTEGER|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>0</DefaultExpression>
</column>
<column id="116" parent="14" name="hash">
<Position>5</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<column id="117" parent="14" name="dateCreated">
<Position>6</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&apos;1970-01-01T00:00:00.000Z&apos;</DefaultExpression>
</column>
<index id="118" parent="14" name="sqlite_autoindex_options_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>name</ColNames>
<Unique>1</Unique>
</index>
<key id="119" parent="14">
<ColNames>name</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_options_1</UnderlyingIndexName>
</key>
<column id="120" parent="15" name="branchId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="121" parent="15" name="notePath">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="122" parent="15" name="hash">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
<DefaultExpression>&quot;&quot;</DefaultExpression>
</column>
<column id="123" parent="15" name="dateCreated">
<Position>4</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="124" parent="15" name="isDeleted">
<Position>5</Position>
<DataType>INT|0s</DataType>
</column>
<index id="125" parent="15" name="sqlite_autoindex_recent_notes_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>branchId</ColNames>
<Unique>1</Unique>
</index>
<key id="126" parent="15">
<ColNames>branchId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_recent_notes_1</UnderlyingIndexName>
</key>
<column id="127" parent="16" name="sourceId">
<Position>1</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="128" parent="16" name="dateCreated">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<index id="129" parent="16" name="sqlite_autoindex_source_ids_1">
<NameSurrogate>1</NameSurrogate>
<ColNames>sourceId</ColNames>
<Unique>1</Unique>
</index>
<key id="130" parent="16">
<ColNames>sourceId</ColNames>
<Primary>1</Primary>
<UnderlyingIndexName>sqlite_autoindex_source_ids_1</UnderlyingIndexName>
</key>
<column id="131" parent="17" name="type">
<Position>1</Position>
<DataType>text|0s</DataType>
</column>
<column id="132" parent="17" name="name">
<Position>2</Position>
<DataType>text|0s</DataType>
</column>
<column id="133" parent="17" name="tbl_name">
<Position>3</Position>
<DataType>text|0s</DataType>
</column>
<column id="134" parent="17" name="rootpage">
<Position>4</Position>
<DataType>integer|0s</DataType>
</column>
<column id="135" parent="17" name="sql">
<Position>5</Position>
<DataType>text|0s</DataType>
</column>
<column id="136" parent="18" name="name">
<Position>1</Position>
</column>
<column id="137" parent="18" name="seq">
<Position>2</Position>
</column>
<column id="138" parent="19" name="id">
<Position>1</Position>
<DataType>INTEGER|0s</DataType>
<NotNull>1</NotNull>
<SequenceIdentity>1</SequenceIdentity>
</column>
<column id="139" parent="19" name="entityName">
<Position>2</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="140" parent="19" name="entityId">
<Position>3</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="141" parent="19" name="sourceId">
<Position>4</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<column id="142" parent="19" name="syncDate">
<Position>5</Position>
<DataType>TEXT|0s</DataType>
<NotNull>1</NotNull>
</column>
<index id="143" parent="19" name="IDX_sync_entityName_entityId">
<ColNames>entityName
entityId</ColNames>
<Unique>1</Unique>
</index>
<index id="144" parent="19" name="IDX_sync_syncDate">
<ColNames>syncDate</ColNames>
</index>
<key id="145" parent="19">
<ColNames>id</ColNames>
<Primary>1</Primary>
</key>
</database-model>
</dataSource>

View File

@@ -0,0 +1,2 @@
#n:main
!<md> [0, 0, null, null, -2147483648, -2147483648]

View File

@@ -0,0 +1,10 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>
</component>

9
.idea/jsLinters/jslint.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JSLintConfiguration">
<option devel="true" />
<option es6="true" />
<option maxerr="50" />
<option node="true" />
</component>
</project>

9
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/trilium.iml" filepath="$PROJECT_DIR$/trilium.iml" />
</modules>
</component>
</project>

6
.idea/sqldialects.xml generated Normal file
View File

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

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

21
Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
FROM node:10.9.0
RUN apt-get update && apt-get install -y nasm
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install --production
# If you are building your code for production
# RUN npm install --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "node", "src/www" ]

View File

@@ -1,32 +1,40 @@
# Trilium
Hierarchical note taking application. Picture tells a thousand words:
# Trilium Notes
[![Join the chat at https://gitter.im/trilium-notes/Lobby](https://badges.gitter.im/trilium-notes/Lobby.svg)](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
Trilium Notes is a hierarchical note taking application. Picture tells a thousand words:
![](https://raw.githubusercontent.com/wiki/zadam/trilium/images/screenshot.png)
See other pictures in [screenshot tour](https://github.com/zadam/trilium/wiki/Screenshot-tour).
## Features
* Notes can be arranged into arbitrarily deep hierarchy
* Notes can be arranged into arbitrarily deep hierarchy (tree)
* Notes can have more than 1 parents - see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes)
* WYSIWYG (What You See Is What You Get) editing
* Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation) inspired by IDEs
* Seamless note versioning
* Can be deployed as web application and / or desktop application with offline access (electron based)
* [Synchronization with](https://github.com/zadam/trilium/wiki/Synchronization) self-hosted sync server
* Rich WYSIWYG note editing including e.g. tables and images with markdown [autoformat](https://github.com/zadam/trilium/wiki/Text-editor#autoformat)
* Support for editing [notes with source code](https://raw.githubusercontent.com/wiki/zadam/trilium/images/code-note.png), including syntax highlighting
* Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation)
* Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions)
* Note [attributes](https://github.com/zadam/trilium/wiki/Attributes) can be used for note organization, querying and advanced [[scripting|scripts]]
* [Synchronization](https://github.com/zadam/trilium/wiki/Synchronization) with self-hosted sync server
* Strong [note encryption](https://github.com/zadam/trilium/wiki/Protected-notes)
* [Scripting](https://github.com/zadam/trilium/wiki/Scripts) - see [Advanced showcases](https://github.com/zadam/trilium/wiki/Advanced-showcases)
* Scales well in both usability and performance upwards of 100 000 notes
* [Night theme](https://github.com/zadam/trilium/wiki/Themes)
* [Markdown import & export](https://github.com/zadam/trilium/wiki/Markdown)
## Builds
* If you want to install Trilium on server, follow [this page](https://github.com/zadam/trilium/wiki/Installation-as-webapp)
* If you want to use Trilium on the desktop, download binary release for your platfor from [latest release](https://github.com/zadam/trilium/releases/latest), unzip the package and run ```trilium``` executable.
Trilium is provided as either desktop application ([Electron](https://electronjs.org)-based) or web application hosted on your server.
## Supported platforms
* If you want to use Trilium on the desktop, download binary release for your platform (currently Linux and Windows are supported) from [latest release](https://github.com/zadam/trilium/releases/latest), unzip the package and run ```trilium``` executable.
* If you want to install Trilium on server, follow [this page](https://github.com/zadam/trilium/wiki/Server-installation).
* Currently only recent Chrome and Firefox are supported (tested) browsers.
Desktop (electron) builds are available for Linux and Windows, both for 64 bits.
## Status
Requirements for web based installation are [outlined here](https://github.com/zadam/trilium/wiki/Installation-as-webapp).
Currently only recent Chrome and Firefox are supported (tested) browsers. Other modern browsers (not IE) might work as well.
Trilium is beta quality software. While it is reasonably feature complete and is tested by its author, it lacks proper testing by more users. It's not yet recommended for daily use, but testing and experimentation is encouraged.
## Documentation
See [wiki](https://github.com/zadam/trilium/wiki/Home) for complete list of available pages.
[See wiki for complete list of documentation pages.](https://github.com/zadam/trilium/wiki/)

8
bin/build-docker.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
if [[ $# -eq 0 ]] ; then
echo "Missing argument of new version"
exit 1
fi
sudo docker build -t zadam/trilium:latest -t zadam/trilium:$1 .

38
bin/build-server.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
if [[ $# -eq 0 ]] ; then
echo "Missing argument of new version"
exit 1
fi
VERSION=$1
PKG_DIR=dist/trilium-linux-x64-server
NODE_VERSION=8.11.4
rm -r $PKG_DIR
mkdir $PKG_DIR
cd $PKG_DIR
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
rm node-v${NODE_VERSION}-linux-x64.tar.xz
mv node-v${NODE_VERSION}-linux-x64 node
cp -r ../../node_modules/ ./
cp -r ../../src/ ./
cp -r ../../db/ ./
cp -r ../../package.json ./
cp -r ../../package-lock.json ./
cp -r ../../README.md ./
cp -r ../../LICENSE ./
cp -r ../../config-sample.ini ./
rm -r ./node_modules/electron*
printf "#/bin/sh\n./node/bin/node src/www" > trilium.sh
chmod 755 trilium.sh
cd ..
7z a trilium-linux-x64-server-${VERSION}.7z trilium-linux-x64-server

View File

@@ -1,18 +1,38 @@
#!/usr/bin/env bash
echo 'module.exports = { build_date:"'`date --iso-8601=seconds`'", build_revision: "'`git log -1 --format="%H"`'" };' > services/build.js
rm -r node_modules
echo "Deleting dist"
npm install
echo "Deleting existing builds"
rm -r dist/*
cp -r ../trilium-node-binaries/sqlite/* node_modules/sqlite3/lib/binding/
echo "Rebuilding binaries for linux-ia32"
./node_modules/.bin/electron-rebuild --arch=ia32
cp -r ../trilium-node-binaries/scrypt/* node_modules/scrypt/bin/
./node_modules/.bin/electron-packager . --out=dist --platform=linux --arch=ia32 --overwrite
./node_modules/.bin/electron-rebuild
./node_modules/.bin/electron-packager . --out=dist --platform=win32 --arch=x64 --overwrite
./node_modules/.bin/electron-packager . --out=dist --platform=linux,win32 --overwrite
# we build x64 as second so that we keep X64 binaries in node_modules for local development and server build
echo "Rebuilding binaries for linux-x64"
./node_modules/.bin/electron-rebuild --arch=x64
# can't copy this before the packaging because the same file name is used for both linux and windows build
cp ../trilium-node-binaries/scrypt.node ./dist/trilium-win32-x64/resources/app/node_modules/scrypt/build/Release/
./node_modules/.bin/electron-packager . --out=dist --platform=linux --arch=x64 --overwrite
echo "Copying required windows binaries"
WIN_RES_DIR=./dist/trilium-win32-x64/resources/app
cp -r bin/deps/sqlite/* $WIN_RES_DIR/node_modules/sqlite3/lib/binding/
cp bin/deps/image/cjpeg.exe $WIN_RES_DIR/node_modules/mozjpeg/vendor/
cp bin/deps/image/pngquant.exe $WIN_RES_DIR/node_modules/imagemin-pngquant/node_modules/pngquant-bin/vendor/
cp bin/deps/image/gifsicle.exe $WIN_RES_DIR/node_modules/giflossy/vendor/
cp bin/deps/scrypt.node $WIN_RES_DIR/node_modules/@mlink/scrypt/build/Release/
echo "Cleaning up unnecessary binaries from all builds"
rm -r ./dist/trilium-linux-ia32/resources/app/bin/deps
rm -r ./dist/trilium-linux-x64/resources/app/bin/deps
rm -r ./dist/trilium-win32-x64/resources/app/bin/deps

BIN
bin/deps/image/cjpeg.exe Normal file

Binary file not shown.

BIN
bin/deps/image/gifsicle.exe Normal file

Binary file not shown.

BIN
bin/deps/image/pngquant.exe Normal file

Binary file not shown.

BIN
bin/deps/scrypt.node Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

3
bin/dump.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
sqlite3 ~/trilium-data/document.db < bin/dump.sql

19
bin/dump.sql Normal file
View File

@@ -0,0 +1,19 @@
.mode insert branches
.out db/main_branches.sql
select * from branches where isDeleted = 0;
.mode insert notes
.out db/main_notes.sql
select * from notes where isDeleted = 0;
.mode insert images
.out db/main_images.sql
select * from images where isDeleted = 0;
.mode insert note_images
.out db/main_note_images.sql
select * from note_images where isDeleted = 0;
.mode insert attributes
.out db/main_attributes.sql
select * from attributes where isDeleted = 0;

View File

@@ -4,8 +4,11 @@ VERSION=`jq -r ".version" package.json`
cd dist
echo "Packaging windows electron distribution..."
7z a trilium-windows-${VERSION}.7z trilium-win32-x64
echo "Packaging linux x64 electron distribution..."
7z a trilium-linux-x64-${VERSION}.7z trilium-linux-x64
echo "Packaging linux electron distribution..."
7z a trilium-linux-${VERSION}.7z trilium-linux-x64
echo "Packaging linux ia32 electron distribution..."
7z a trilium-linux-ia32-${VERSION}.7z trilium-linux-ia32
echo "Packaging windows x64 electron distribution..."
7z a trilium-windows-x64-${VERSION}.7z trilium-win32-x64

9
bin/push-docker-image.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
if [[ $# -eq 0 ]] ; then
echo "Missing argument of new version"
exit 1
fi
sudo docker push zadam/trilium:latest
sudo docker push zadam/trilium:$1

View File

@@ -18,35 +18,79 @@ if ! git diff-index --quiet HEAD --; then
exit 1
fi
echo "Releasing Trilium $VERSION"
jq '.version = "'$VERSION'"' package.json|sponge package.json
git add package.json
echo 'module.exports = { buildDate:"'`date --iso-8601=seconds`'", buildRevision: "'`git log -1 --format="%H"`'" };' > src/services/build.js
git add src/services/build.js
TAG=v$VERSION
git commit -m "$VERSION"
echo "Committing package.json version change"
git commit -m "release $VERSION"
git push
echo "Tagging commit with $TAG"
git tag $TAG
git push origin $TAG
echo "Releasing Trilium $VERSION"
bin/build.sh
build
bin/package.sh
package
LINUX_X64_BUILD=trilium-linux-x64-$VERSION.7z
LINUX_IA32_BUILD=trilium-linux-ia32-$VERSION.7z
WINDOWS_X64_BUILD=trilium-windows-x64-$VERSION.7z
SERVER_BUILD=trilium-linux-x64-server-$VERSION.7z
LINUX_BUILD=trilium-linux-$VERSION.7z
WINDOWS_BUILD=trilium-windows-$VERSION.7z
echo "Creating release in GitHub"
github-release release \
--tag $TAG \
--name "$TAG release"
github-release upload \
--tag $TAG \
--name "$LINUX_BUILD" \
--file "dist/$LINUX_BUILD"
echo "Uploading linux x64 build"
github-release upload \
--tag $TAG \
--name "$WINDOWS_BUILD" \
--file "dist/$WINDOWS_BUILD"
--name "$LINUX_X64_BUILD" \
--file "dist/$LINUX_X64_BUILD"
echo "Uploading linux ia32 build"
github-release upload \
--tag $TAG \
--name "$LINUX_IA32_BUILD" \
--file "dist/$LINUX_IA32_BUILD"
echo "Uploading windows x64 build"
github-release upload \
--tag $TAG \
--name "$WINDOWS_X64_BUILD" \
--file "dist/$WINDOWS_X64_BUILD"
echo "Packaging server version"
bin/build-server.sh $VERSION
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!"

126
bin/www
View File

@@ -1,126 +0,0 @@
#!/usr/bin/env node
process.on('unhandledRejection', error => {
// this makes sure that stacktrace of failed promise is printed out
console.log(error);
// but also try to log it into file
require('../services/log').info(error);
});
const { app, sessionParser } = require('../app');
const debug = require('debug')('node:server');
const fs = require('fs');
const http = require('http');
const https = require('https');
const config = require('../services/config');
const log = require('../services/log');
const app_info = require('../services/app_info');
const messaging = require('../services/messaging');
const utils = require('../services/utils');
const sql = require('../services/sql');
const port = normalizePort(config['Network']['port'] || '3000');
app.set('port', port);
/**
* Create HTTP server.
*/
let httpServer;
if (config['Network']['https']) {
const options = {
key: fs.readFileSync(config['Network']['keyPath']),
cert: fs.readFileSync(config['Network']['certPath'])
};
httpServer = https.createServer(options, app);
log.info("App HTTPS server starting up at port " + port);
}
else {
httpServer = http.createServer(app);
log.info("App HTTP server starting up at port " + port);
}
log.info(JSON.stringify(app_info, null, 2));
/**
* Listen on provided port, on all network interfaces.
*/
httpServer.keepAliveTimeout = 120000 * 5;
httpServer.listen(port);
httpServer.on('error', onError);
httpServer.on('listening', onListening);
sql.dbReady.then(() => messaging.init(httpServer, sessionParser));
if (utils.isElectron()) {
const electronRouting = require('../routes/electron');
electronRouting(app);
}
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
const port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
const bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
const addr = httpServer.address();
const bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}

View File

@@ -1,13 +1,12 @@
[General]
# Instance name can be used to distinguish between different instances
instanceName=
[Network]
# port setting is relevant only for web deployments, desktop builds run on random free port
port=8080
# true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure).
https=false
# path to certificate (run "bash generate-cert.sh" to generate self-signed certificate). Relevant only if https=true
# path to certificate (run "bash bin/generate-cert.sh" to generate self-signed certificate). Relevant only if https=true
certPath=
keyPath=
[Sync]
syncServerHost=
syncServerTimeout=10000
syncProxy=
syncServerCertificate=

BIN
db/image-deleted.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

216
db/main_attributes.sql Normal file
View File

@@ -0,0 +1,216 @@
INSERT INTO attributes VALUES('YGaLsZ2s2WFr','N029F9ANGn8b','label','originalFileName','d3.js',1,'2018-08-28T20:50:22.260Z','2018-08-28T20:50:22.260Z',0,'71K4ZEuZMn',0);
INSERT INTO attributes VALUES('MU459UPoTpIl','N029F9ANGn8b','label','fileSize','495159',2,'2018-08-28T20:50:22.268Z','2018-08-28T20:50:22.269Z',0,'Uw4q81aSPb',0);
INSERT INTO attributes VALUES('K7NPLAdJC75T','bFTtwsnNgw9T','label','originalFileName','dagre-d3.js',1,'2018-08-28T20:50:22.278Z','2018-08-28T20:50:22.278Z',0,'B+5IYDa0kV',0);
INSERT INTO attributes VALUES('fxcbzV7SajDg','bFTtwsnNgw9T','label','fileSize','1412934',2,'2018-08-28T20:50:22.338Z','2018-08-28T20:50:22.338Z',0,'fKMcMhthAe',0);
INSERT INTO attributes VALUES('H1Y47EfTlkcx','ucC6Zabv3Uml','label','appCss','',0,'2018-08-28T20:50:22.404Z','2018-08-28T20:50:22.404Z',0,'gy/N05x553',0);
INSERT INTO attributes VALUES('dClxXNDtkPhG','YULCKCrWJJZ6','relation','child:template','WkdQrYTnsgxP',0,'2018-08-28T20:50:22.407Z','2018-08-28T20:50:22.407Z',0,'KCB4vrX2+Q',0);
INSERT INTO attributes VALUES('ascoxgnizejs','YULCKCrWJJZ6','label','child:person','',1,'2018-08-28T20:50:22.410Z','2018-08-28T20:50:22.410Z',0,'cWQ4h0JzfC',0);
INSERT INTO attributes VALUES('nDrmznDDBYA9','wHb2YBwhjxiD','label','dateOfBirth','1895-12-14',0,'2018-08-28T20:50:22.413Z','2018-08-28T20:50:22.413Z',0,'erlRsUQzW5',0);
INSERT INTO attributes VALUES('xQ6wvIQaVIZ1','wHb2YBwhjxiD','label','dateOfDeath','1952-02-06',1,'2018-08-28T20:50:22.416Z','2018-08-28T20:50:22.416Z',0,'2uh0vKvpVU',0);
INSERT INTO attributes VALUES('oyIs9VmMgsvI','wHb2YBwhjxiD','relation','isPartnerOf','cUYFEvsdY6N6',2,'2018-08-28T20:50:22.419Z','2018-08-28T20:50:22.419Z',0,'OM3NVpPaUq',0);
INSERT INTO attributes VALUES('O54Zoiiq2Fcu','wHb2YBwhjxiD','label','person','',3,'2018-08-28T20:50:22.423Z','2018-08-28T20:50:22.423Z',0,'FHNEKhY7+c',0);
INSERT INTO attributes VALUES('hq6g3wa2T2Iw','wHb2YBwhjxiD','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.426Z','2018-08-28T20:50:22.426Z',0,'+K8jpY+5S/',0);
INSERT INTO attributes VALUES('8zizvAfpH5Jl','wHb2YBwhjxiD','relation','hasChild','s0Hhsl0nb1bg',5,'2018-08-28T20:50:22.428Z','2018-08-28T20:50:22.428Z',0,'NRrR0GBy88',0);
INSERT INTO attributes VALUES('WPqEnSKOFM8N','cUYFEvsdY6N6','label','dateOfBirth','1900-08-04',0,'2018-08-28T20:50:22.431Z','2018-08-28T20:50:22.432Z',0,'3HOaOLE+oy',0);
INSERT INTO attributes VALUES('BY6Kj6aAFu0e','cUYFEvsdY6N6','label','dateOfDeath','2002-03-30',1,'2018-08-28T20:50:22.436Z','2018-08-28T20:50:22.436Z',0,'rZrLFiOvj8',0);
INSERT INTO attributes VALUES('0555anatAyWg','cUYFEvsdY6N6','relation','isPartnerOf','wHb2YBwhjxiD',2,'2018-08-28T20:50:22.439Z','2018-08-28T20:50:22.439Z',0,'yWMcMCRxnH',0);
INSERT INTO attributes VALUES('oXibmgJQOzGB','cUYFEvsdY6N6','label','person','',3,'2018-08-28T20:50:22.441Z','2018-08-28T20:50:22.441Z',0,'RetqdPzOby',0);
INSERT INTO attributes VALUES('A0E0SgIGNYBR','cUYFEvsdY6N6','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.444Z','2018-08-28T20:50:22.444Z',0,'UGs+JIASFB',0);
INSERT INTO attributes VALUES('DlXDyWCKW7ST','cUYFEvsdY6N6','relation','hasChild','s0Hhsl0nb1bg',5,'2018-08-28T20:50:22.448Z','2018-08-28T20:50:22.448Z',0,'wPF8Epw2f2',0);
INSERT INTO attributes VALUES('5Dxq7ZOSyOwZ','8APXN4n4Hnb8','label','dateOfBirth','1921-06-10',0,'2018-08-28T20:50:22.451Z','2018-08-28T20:50:22.451Z',0,'kM9tlQ1n7a',0);
INSERT INTO attributes VALUES('pRMQNiknkpSr','8APXN4n4Hnb8','relation','isPartnerOf','s0Hhsl0nb1bg',1,'2018-08-28T20:50:22.457Z','2018-08-28T20:50:22.457Z',0,'TzsOqFQYjk',0);
INSERT INTO attributes VALUES('OKlFBgqr61Uy','8APXN4n4Hnb8','relation','hasChild','baafKkgNGYLm',2,'2018-08-28T20:50:22.460Z','2018-08-28T20:50:22.460Z',0,'t4hEDC534r',0);
INSERT INTO attributes VALUES('yVZf4BNnV0Ev','8APXN4n4Hnb8','label','person','',3,'2018-08-28T20:50:22.462Z','2018-08-28T20:50:22.462Z',0,'L+xujQPpBw',0);
INSERT INTO attributes VALUES('8oAIhmdTUvEg','8APXN4n4Hnb8','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.465Z','2018-08-28T20:50:22.465Z',0,'GbRQJL+GEp',0);
INSERT INTO attributes VALUES('cneD8mgzvai7','s0Hhsl0nb1bg','label','dateOfBirth','1926-04-21',0,'2018-08-28T20:50:22.468Z','2018-08-28T20:50:22.468Z',0,'cXdtlXqXEB',0);
INSERT INTO attributes VALUES('8z9zChaZOTDH','s0Hhsl0nb1bg','relation','isPartnerOf','8APXN4n4Hnb8',1,'2018-08-28T20:50:22.471Z','2018-08-28T20:50:22.471Z',0,'33J9ZyF2ho',0);
INSERT INTO attributes VALUES('gdJaomu0xBOu','s0Hhsl0nb1bg','relation','isChildOf','cUYFEvsdY6N6',3,'2018-08-28T20:50:22.477Z','2018-08-28T20:50:22.477Z',0,'BIFGASgBgq',0);
INSERT INTO attributes VALUES('9Jwa8a993yen','s0Hhsl0nb1bg','relation','isChildOf','wHb2YBwhjxiD',4,'2018-08-28T20:50:22.479Z','2018-08-28T20:50:22.480Z',0,'TG9GD3do5B',0);
INSERT INTO attributes VALUES('Xe1QAkKsWWpF','s0Hhsl0nb1bg','relation','hasChild','baafKkgNGYLm',5,'2018-08-28T20:50:22.482Z','2018-08-28T20:50:22.482Z',0,'dqIMe2e19M',0);
INSERT INTO attributes VALUES('kEg8zFFq248G','s0Hhsl0nb1bg','label','person','',6,'2018-08-28T20:50:22.485Z','2018-08-28T20:50:22.485Z',0,'MMnLxCR8F3',0);
INSERT INTO attributes VALUES('tRZ6MSnKSTqR','s0Hhsl0nb1bg','relation','template','WkdQrYTnsgxP',7,'2018-08-28T20:50:22.509Z','2018-08-28T20:50:22.509Z',0,'rosgXW/nGc',0);
INSERT INTO attributes VALUES('JBKulahGmJbS','baafKkgNGYLm','label','dateOfBirth','1948-11-14',0,'2018-08-28T20:50:22.513Z','2018-08-28T20:50:22.513Z',0,'rrxcH0EJyd',0);
INSERT INTO attributes VALUES('iQrlMg7Hw4TV','baafKkgNGYLm','relation','isPartnerOf','Ab7WuV47mQOf',1,'2018-08-28T20:50:22.517Z','2018-08-28T20:50:22.517Z',0,'ZC8g7df+GX',0);
INSERT INTO attributes VALUES('lR5KNuf8nZPv','baafKkgNGYLm','relation','isChildOf','s0Hhsl0nb1bg',3,'2018-08-28T20:50:22.520Z','2018-08-28T20:50:22.520Z',0,'3+cBucfifY',0);
INSERT INTO attributes VALUES('Zy86gvVrUdL9','baafKkgNGYLm','relation','isChildOf','8APXN4n4Hnb8',4,'2018-08-28T20:50:22.527Z','2018-08-28T20:50:22.527Z',0,'S8oRMD6Zl2',0);
INSERT INTO attributes VALUES('4A0fdX1Nw6HW','baafKkgNGYLm','relation','hasChild','w7t110kWsK8e',5,'2018-08-28T20:50:22.529Z','2018-08-28T20:50:22.529Z',0,'1xwLwGQ8Nq',0);
INSERT INTO attributes VALUES('KJp2whVwU9t8','baafKkgNGYLm','relation','hasChild','at7bZyjJfIrM',6,'2018-08-28T20:50:22.533Z','2018-08-28T20:50:22.533Z',0,'GCW74wkayV',0);
INSERT INTO attributes VALUES('Z9XptIzsoACA','baafKkgNGYLm','label','person','',7,'2018-08-28T20:50:22.536Z','2018-08-28T20:50:22.536Z',0,'JjkYlF07eh',0);
INSERT INTO attributes VALUES('ZW3lFQx4x5b2','baafKkgNGYLm','relation','template','WkdQrYTnsgxP',8,'2018-08-28T20:50:22.540Z','2018-08-28T20:50:22.540Z',0,'UpMRWuOZb/',0);
INSERT INTO attributes VALUES('Ey8y4cy3DcCi','Ab7WuV47mQOf','label','dateOfBirth','1961-07-01',0,'2018-08-28T20:50:22.543Z','2018-08-28T20:50:22.543Z',0,'64htbnhge6',0);
INSERT INTO attributes VALUES('AiAfIBWpOz5x','Ab7WuV47mQOf','label','dateOfDeath','1997-08-31',1,'2018-08-28T20:50:22.545Z','2018-08-28T20:50:22.546Z',0,'mFxHu1vXL5',0);
INSERT INTO attributes VALUES('MZYw8enjG9NE','Ab7WuV47mQOf','relation','isPartnerOf','baafKkgNGYLm',2,'2018-08-28T20:50:22.549Z','2018-08-28T20:50:22.549Z',0,'jvWO1/tx45',0);
INSERT INTO attributes VALUES('ScLhggJccqQa','Ab7WuV47mQOf','relation','hasChild','at7bZyjJfIrM',3,'2018-08-28T20:50:22.551Z','2018-08-28T20:50:22.552Z',0,'bvNZplJq2L',0);
INSERT INTO attributes VALUES('ZsXr2c8BygWE','Ab7WuV47mQOf','relation','hasChild','w7t110kWsK8e',4,'2018-08-28T20:50:22.555Z','2018-08-28T20:50:22.555Z',0,'FN00a6ym1T',0);
INSERT INTO attributes VALUES('YdQLLaYVuziQ','Ab7WuV47mQOf','label','person','',5,'2018-08-28T20:50:22.558Z','2018-08-28T20:50:22.558Z',0,'j3DcoUoRob',0);
INSERT INTO attributes VALUES('wCFa6BcfMeYs','Ab7WuV47mQOf','relation','template','WkdQrYTnsgxP',6,'2018-08-28T20:50:22.561Z','2018-08-28T20:50:22.561Z',0,'pWMc9bIpYU',0);
INSERT INTO attributes VALUES('UjQK6CfeN1FQ','w7t110kWsK8e','label','dateOfBirth','1982-06-21',0,'2018-08-28T20:50:22.564Z','2018-08-28T20:50:22.564Z',0,'KmPfpQC3YZ',0);
INSERT INTO attributes VALUES('BgEgHc6nbK9N','w7t110kWsK8e','relation','isPartnerOf','OZKicr536m7U',1,'2018-08-28T20:50:22.567Z','2018-08-28T20:50:22.567Z',0,'/x6KvO+8a3',0);
INSERT INTO attributes VALUES('KqV4d4pJYS2E','w7t110kWsK8e','relation','isChildOf','Ab7WuV47mQOf',2,'2018-08-28T20:50:22.570Z','2018-08-28T20:50:22.570Z',0,'KyraxcQqDz',0);
INSERT INTO attributes VALUES('wlb9vaZSYcq5','w7t110kWsK8e','relation','isChildOf','baafKkgNGYLm',3,'2018-08-28T20:50:22.575Z','2018-08-28T20:50:22.575Z',0,'UU8YR4ybWt',0);
INSERT INTO attributes VALUES('z5LqaK45g4hR','w7t110kWsK8e','relation','hasChild','oato1D7kuNU2',4,'2018-08-28T20:50:22.577Z','2018-08-28T20:50:22.577Z',0,'e/UPI6kcvv',0);
INSERT INTO attributes VALUES('fCD45rh2vdkT','w7t110kWsK8e','relation','hasChild','C1I7GPA8ORO4',5,'2018-08-28T20:50:22.580Z','2018-08-28T20:50:22.581Z',0,'oT4QlgrVte',0);
INSERT INTO attributes VALUES('C2Vigv6G5FS1','w7t110kWsK8e','relation','hasChild','gQNQaMBzRYdb',6,'2018-08-28T20:50:22.584Z','2018-08-28T20:50:22.584Z',0,'wUKaPiuJQk',0);
INSERT INTO attributes VALUES('E9rVr79Kz9V6','w7t110kWsK8e','label','person','',7,'2018-08-28T20:50:22.587Z','2018-08-28T20:50:22.587Z',0,'K/hdjV+tSK',0);
INSERT INTO attributes VALUES('8XRlAf6WV3qg','w7t110kWsK8e','relation','template','WkdQrYTnsgxP',8,'2018-08-28T20:50:22.590Z','2018-08-28T20:50:22.590Z',0,'FSl46d9i1L',0);
INSERT INTO attributes VALUES('zH72GS2ubC6n','at7bZyjJfIrM','label','dateOfBirth','1984-09-15',0,'2018-08-28T20:50:22.593Z','2018-08-28T20:50:22.593Z',0,'gRa24FkJ54',0);
INSERT INTO attributes VALUES('RUlGHoZKKwI1','at7bZyjJfIrM','relation','isChildOf','Ab7WuV47mQOf',2,'2018-08-28T20:50:22.595Z','2018-08-28T20:50:22.595Z',0,'UqtXMxkS8I',0);
INSERT INTO attributes VALUES('s6fz9RfUkN16','at7bZyjJfIrM','relation','isChildOf','baafKkgNGYLm',3,'2018-08-28T20:50:22.598Z','2018-08-28T20:50:22.598Z',0,'sflViPP/Jy',0);
INSERT INTO attributes VALUES('ewBwlqrIQ4gT','at7bZyjJfIrM','label','person','',4,'2018-08-28T20:50:22.600Z','2018-08-28T20:50:22.600Z',0,'qV4yjjVjU8',0);
INSERT INTO attributes VALUES('R2LUPwcGsuNw','at7bZyjJfIrM','relation','template','WkdQrYTnsgxP',5,'2018-08-28T20:50:22.603Z','2018-08-28T20:50:22.603Z',0,'NRS6Dn58NQ',0);
INSERT INTO attributes VALUES('NmqnFfEvfSPm','OZKicr536m7U','label','dateOfBirth','1982-01-09',0,'2018-08-28T20:50:22.606Z','2018-08-28T20:50:22.607Z',0,'d3wENODQzf',0);
INSERT INTO attributes VALUES('TFzxV7PECiaL','OZKicr536m7U','relation','isPartnerOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.611Z','2018-08-28T20:50:22.611Z',0,'Om8CZOKQ3n',0);
INSERT INTO attributes VALUES('KZkuMnxLcwXv','OZKicr536m7U','label','person','',2,'2018-08-28T20:50:22.615Z','2018-08-28T20:50:22.615Z',0,'ant2+CLJEK',0);
INSERT INTO attributes VALUES('mpaiLAxFYEaV','OZKicr536m7U','relation','template','WkdQrYTnsgxP',3,'2018-08-28T20:50:22.618Z','2018-08-28T20:50:22.619Z',0,'sny+Ar6U5l',0);
INSERT INTO attributes VALUES('DMrFjWJ1gEGV','OZKicr536m7U','relation','hasChild','oato1D7kuNU2',4,'2018-08-28T20:50:22.624Z','2018-08-28T20:50:22.624Z',0,'JDx8fEDsrJ',0);
INSERT INTO attributes VALUES('We1iR49umgtV','OZKicr536m7U','relation','hasChild','C1I7GPA8ORO4',5,'2018-08-28T20:50:22.626Z','2018-08-28T20:50:22.626Z',0,'ZZPFqVVGHL',0);
INSERT INTO attributes VALUES('AYJHtO581jiN','OZKicr536m7U','relation','hasChild','gQNQaMBzRYdb',6,'2018-08-28T20:50:22.628Z','2018-08-28T20:50:22.629Z',0,'tbtnoMJJZn',0);
INSERT INTO attributes VALUES('iuCrdcbtL4qC','oato1D7kuNU2','label','dateOfBirth','2013-07-22',0,'2018-08-28T20:50:22.632Z','2018-08-28T20:50:22.632Z',0,'IcMT391SzX',0);
INSERT INTO attributes VALUES('Q8Vo1KIxkJmj','oato1D7kuNU2','relation','isChildOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.635Z','2018-08-28T20:50:22.635Z',0,'zoA+rRFKM+',0);
INSERT INTO attributes VALUES('5mrM42brxDuz','oato1D7kuNU2','relation','isChildOf','OZKicr536m7U',2,'2018-08-28T20:50:22.638Z','2018-08-28T20:50:22.639Z',0,'P6P4YU7BTd',0);
INSERT INTO attributes VALUES('buvl0DlrHfPa','oato1D7kuNU2','label','person','',3,'2018-08-28T20:50:22.642Z','2018-08-28T20:50:22.642Z',0,'AumhH4Hib8',0);
INSERT INTO attributes VALUES('fmy9BlOToZyF','oato1D7kuNU2','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.645Z','2018-08-28T20:50:22.645Z',0,'E1I7jbmUVs',0);
INSERT INTO attributes VALUES('dO2wroKfcuE0','C1I7GPA8ORO4','label','dateOfBirth','2015-05-02',0,'2018-08-28T20:50:22.647Z','2018-08-28T20:50:22.648Z',0,'Y7bf4ZWZCE',0);
INSERT INTO attributes VALUES('Z5gVHx3DbIch','C1I7GPA8ORO4','relation','isChildOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.650Z','2018-08-28T20:50:22.650Z',0,'LSINZZQzBt',0);
INSERT INTO attributes VALUES('1kNzvErwUjrs','C1I7GPA8ORO4','relation','isChildOf','OZKicr536m7U',2,'2018-08-28T20:50:22.653Z','2018-08-28T20:50:22.653Z',0,'ePUs5vanHB',0);
INSERT INTO attributes VALUES('W6glbhKhyWPT','C1I7GPA8ORO4','label','person','',3,'2018-08-28T20:50:22.658Z','2018-08-28T20:50:22.658Z',0,'zRvRYSbqZi',0);
INSERT INTO attributes VALUES('0GJ2aHqAuodC','C1I7GPA8ORO4','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.661Z','2018-08-28T20:50:22.661Z',0,'m88hxWjzQ0',0);
INSERT INTO attributes VALUES('ITjvtJPre6AT','gQNQaMBzRYdb','label','dateOfBirth','2018-04-23',0,'2018-08-28T20:50:22.664Z','2018-08-28T20:50:22.664Z',0,'ceKKy9B5o1',0);
INSERT INTO attributes VALUES('CObXkmUCKNvA','gQNQaMBzRYdb','relation','isChildOf','w7t110kWsK8e',1,'2018-08-28T20:50:22.667Z','2018-08-28T20:50:22.668Z',0,'D/R7JZPq5g',0);
INSERT INTO attributes VALUES('zFLwAPnbTSXJ','gQNQaMBzRYdb','relation','isChildOf','OZKicr536m7U',2,'2018-08-28T20:50:22.674Z','2018-08-28T20:50:22.674Z',0,'Hi1uUloX9W',0);
INSERT INTO attributes VALUES('76tF3kkXj0DU','gQNQaMBzRYdb','label','person','',3,'2018-08-28T20:50:22.676Z','2018-08-28T20:50:22.676Z',0,'MDjdPy4afu',0);
INSERT INTO attributes VALUES('t1iefYiRAtYo','gQNQaMBzRYdb','relation','template','WkdQrYTnsgxP',4,'2018-08-28T20:50:22.679Z','2018-08-28T20:50:22.679Z',0,'5GgcLGKhaR',0);
INSERT INTO attributes VALUES('Bpe9iT3XyyOY','WkdQrYTnsgxP','label-definition','dateOfBirth','{"labelType":"date","multiplicityType":"singlevalue","isPromoted":true}',0,'2018-08-28T20:50:22.682Z','2018-08-28T20:50:22.682Z',0,'NYj5Rr17+t',1);
INSERT INTO attributes VALUES('GxEesX6Ps1qg','WkdQrYTnsgxP','label-definition','dateOfDeath','{"labelType":"date","multiplicityType":"singlevalue","isPromoted":true}',1,'2018-08-28T20:50:22.684Z','2018-08-28T20:50:22.685Z',0,'ayZ1VP6NAU',1);
INSERT INTO attributes VALUES('8lmgLJkU0fts','WkdQrYTnsgxP','relation-definition','isPartnerOf','{"multiplicityType":"multivalue","isPromoted":true}',2,'2018-08-28T20:50:22.687Z','2018-08-28T20:50:22.687Z',0,'efMdysR9Pd',1);
INSERT INTO attributes VALUES('jKbUzkPDskWK','WkdQrYTnsgxP','relation-definition','isChildOf','{"multiplicityType":"multivalue","isPromoted":true}',3,'2018-08-28T20:50:22.690Z','2018-08-28T20:50:22.690Z',0,'ZUJB7r3rT4',1);
INSERT INTO attributes VALUES('WUn7ZivbtEEL','WkdQrYTnsgxP','relation-definition','hasChild','{"multiplicityType":"multivalue","isPromoted":true}',4,'2018-08-28T20:50:22.693Z','2018-08-28T20:50:22.694Z',0,'l55U94jslK',1);
INSERT INTO attributes VALUES('9bwMbu66bibw','WkdQrYTnsgxP','label','person','',5,'2018-08-28T20:50:22.696Z','2018-08-28T20:50:22.696Z',0,'4PC6o0t3Pr',0);
INSERT INTO attributes VALUES('6oj5nftjfbBC','HgaAwBX5zVcP','label','originalFileName','chart.js',1,'2018-08-28T20:50:36.164Z','2018-08-28T20:50:36.164Z',0,'6nDd6oTR6B',0);
INSERT INTO attributes VALUES('gZgmYZ9C4foc','HgaAwBX5zVcP','label','fileSize','211133',2,'2018-08-28T20:50:36.171Z','2018-08-28T20:50:36.171Z',0,'hHlFlDfuQP',0);
INSERT INTO attributes VALUES('Fb8UazsIiOk5','Dyahpf7LroQY','label','taskLocationRoot','',0,'2018-08-28T20:50:48.604Z','2018-08-28T20:50:48.604Z',0,'DM2/m1t5TR',0);
INSERT INTO attributes VALUES('f0Ow5PJyhbYY','nUgD4SYx2gt7','label','taskTagRoot','',0,'2018-08-28T20:50:48.618Z','2018-08-28T20:50:48.618Z',0,'5MQeVb7i0Z',0);
INSERT INTO attributes VALUES('6or0Gr0hFW2t','9HHqPxJkLAkl','label','taskDoneRoot','',0,'2018-08-28T20:50:48.626Z','2018-08-28T20:50:48.626Z',0,'e8MjtXx+UD',0);
INSERT INTO attributes VALUES('pSVR4p5EM3i1','XVlWndK4Oh6A','label','run','frontendStartup',0,'2018-08-28T20:50:48.630Z','2018-08-28T20:50:48.630Z',0,'/Og2vneotj',0);
INSERT INTO attributes VALUES('uSj6vDAaM3Z8','gYNJtGEPGW95','label','appCss','',0,'2018-08-28T20:50:48.636Z','2018-08-28T20:50:48.636Z',0,'TssM5mauP3',0);
INSERT INTO attributes VALUES('lKaZjiGo2X1T','gDrEI7LFWqrP','label','hideChildrenOverview','',0,'2018-08-28T20:50:22.253Z','2018-08-28T20:50:22.253Z',0,'qGo6F87JjB',0);
INSERT INTO attributes VALUES('wycKIOGBLBr2','gDrEI7LFWqrP','relation','familyContainer','YULCKCrWJJZ6',1,'2018-08-28T20:50:22.257Z','2018-08-28T20:50:22.257Z',0,'wRgPdq8myG',0);
INSERT INTO attributes VALUES('45sz6us7COFA','gDrEI7LFWqrP','relation','renderNote','Z5yhGE5g0UB5',2,'2018-08-28T20:52:45.872Z','2018-08-28T20:52:45.872Z',0,'Rf2zkiB3bY',0);
INSERT INTO attributes VALUES('4m6dIcDjkC2q','8LOr7xUMuWD4','label','hideChildrenOverview','',0,'2018-08-28T20:50:36.159Z','2018-08-28T20:50:36.159Z',0,'3emtcLLcp7',0);
INSERT INTO attributes VALUES('UbMObRd5U1p3','8LOr7xUMuWD4','relation','renderNote','YBAcWV8TjYEp',1,'2018-08-28T20:54:40.517Z','2018-08-28T20:56:27.135Z',0,'iqKSOL+B1L',0);
INSERT INTO attributes VALUES('2YBCX6bTRrde','qEi5St9PBPCP','label','run','frontendStartup',0,'2018-08-28T20:50:36.178Z','2018-08-28T20:50:36.179Z',0,'hDcu/CoV8A',0);
INSERT INTO attributes VALUES('IhuXzxRoCdJj','qEi5St9PBPCP','relation','targetNote','8LOr7xUMuWD4',1,'2018-08-28T20:58:15.164Z','2018-08-28T20:58:15.164Z',0,'un6P3bD9wb',0);
INSERT INTO attributes VALUES('wfv43UPhvRDB','1s6SGhByxkoU','label','cssClass','todo',3,'2018-08-28T21:11:48.954Z','2018-08-28T21:11:48.955Z',0,'CFjJZ/EjzN',0);
INSERT INTO attributes VALUES('vnDnf7erhpHf','eXHZAKsMYgur','relation','child:template','TlGCAdcfxkOT',0,'2018-08-29T17:13:34.317Z','2018-08-29T17:13:34.317Z',0,'8W6ql67C0G',0);
INSERT INTO attributes VALUES('Vwo09bhVsDFP','TjWEndYCCg7g','relation','child:template','TlGCAdcfxkOT',0,'2018-08-29T17:15:28.700Z','2018-08-29T17:15:28.700Z',0,'Dowmf6VzWU',0);
INSERT INTO attributes VALUES('zguuNS6ERdQL','8nRNDJGyGs2Z','relation','template','TlGCAdcfxkOT',0,'2018-08-29T17:16:14.938Z','2018-08-29T17:16:14.940Z',0,'bQanDjKWpy',0);
INSERT INTO attributes VALUES('Ar39t8omV0MM','8nRNDJGyGs2Z','label','link','https://www.amazon.com/Mechanical-Alchemy-Wars-Ian-Tregillis/dp/0316248002',1,'2018-08-29T17:16:26.915Z','2018-08-29T17:16:26.916Z',0,'SQyuo81DHH',0);
INSERT INTO attributes VALUES('E2ol5oG7vwq8','TlGCAdcfxkOT','label-definition','link','{"isPromoted":true,"labelType":"url","multiplicityType":"singlevalue"}',1,'2018-08-29T17:12:47.600Z','2018-08-29T17:12:47.600Z',0,'ZMGjd3nm/p',1);
INSERT INTO attributes VALUES('awToFhC7v0UV','TlGCAdcfxkOT','label-definition','readingStart','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',2,'2018-08-29T17:12:47.610Z','2018-08-29T17:12:47.610Z',0,'VabLEj737Q',1);
INSERT INTO attributes VALUES('pLJ9r6lnPOYs','TlGCAdcfxkOT','label-definition','readingEnd','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',3,'2018-08-29T17:12:47.618Z','2018-08-29T17:12:47.618Z',0,'UHB3bE1/yM',1);
INSERT INTO attributes VALUES('rmg7IQRkazsZ','TlGCAdcfxkOT','label-definition','author','{"isPromoted":true,"labelType":"text","multiplicityType":"singlevalue"}',0,'2018-08-29T17:13:11.393Z','2018-08-29T17:13:11.393Z',0,'AriDq8D/S+',1);
INSERT INTO attributes VALUES('FaiTpHt7VXzC','8nRNDJGyGs2Z','label','author','Ian Tregillis',2,'2018-08-29T17:17:00.159Z','2018-08-29T17:17:00.160Z',0,'GjzmTQcGwE',0);
INSERT INTO attributes VALUES('oINm9qaejyqS','8nRNDJGyGs2Z','label','readingStart','2018-05-05',3,'2018-08-29T17:17:11.560Z','2018-08-29T17:17:11.561Z',0,'LG7/XyjXMx',0);
INSERT INTO attributes VALUES('ss4NVSjoxcv4','8nRNDJGyGs2Z','label','readingEnd','2018-05-23',4,'2018-08-29T17:17:18.653Z','2018-08-29T17:17:18.653Z',0,'UuAazixGy6',0);
INSERT INTO attributes VALUES('yw88iR3gN1NW','u5t1EvWa3CMO','relation','template','TlGCAdcfxkOT',0,'2018-08-29T17:17:49.060Z','2018-08-29T17:17:49.061Z',0,'ejixmQdU6q',0);
INSERT INTO attributes VALUES('eTIoe4Ab7ocY','u5t1EvWa3CMO','label','author','Viktor Frankl',1,'2018-08-29T17:18:59.006Z','2018-08-29T17:18:59.006Z',0,'OZhmBfoQOo',0);
INSERT INTO attributes VALUES('VBiqEJ6mnFgT','u5t1EvWa3CMO','label','link','https://en.wikipedia.org/wiki/Man%27s_Search_for_Meaning',2,'2018-08-29T17:19:10.420Z','2018-08-29T17:19:10.421Z',0,'esBqX0UAL1',0);
INSERT INTO attributes VALUES('hAKixYWrKL4f','u5t1EvWa3CMO','label','readingStart','2018-08-01',3,'2018-08-29T17:19:14.550Z','2018-08-29T17:19:14.550Z',0,'HoGROsXwVQ',0);
INSERT INTO attributes VALUES('n3OTUTkuWRYM','u5t1EvWa3CMO','label','readingEnd','2018-08-10',4,'2018-08-29T17:19:17.741Z','2018-08-29T17:19:17.742Z',0,'65QfoguWMa',0);
INSERT INTO attributes VALUES('82OrS7QREaBM','3RkyK9LI18dO','label','calendarRoot','',0,'2018-08-28T21:18:18.512Z','2018-08-28T21:18:18.512Z',0,'1Mw7vhXyk1',0);
INSERT INTO attributes VALUES('eZeOn45UgWa6','3RkyK9LI18dO','label','sorted','',1,'2018-08-29T10:51:55.212Z','2018-08-29T10:51:55.212Z',0,'GeXw6I7toO',0);
INSERT INTO attributes VALUES('J4vAdbL9o5M2','3RkyK9LI18dO','label','child:sorted','',2,'2018-08-29T10:51:55.205Z','2018-08-29T10:51:55.205Z',0,'6iLHLIFy96',0);
INSERT INTO attributes VALUES('GTGfj3qmMoSC','3RkyK9LI18dO','label','child:sorted:sorted','',3,'2018-08-29T10:51:55.220Z','2018-08-29T10:51:55.220Z',0,'8gxZmnY60b',0);
INSERT INTO attributes VALUES('L6vT9du3WHzI','3RkyK9LI18dO','relation','child:child:child:template','Lt8IUldw7d7H',4,'2018-08-29T17:24:45.182Z','2018-08-29T17:24:45.182Z',0,'+PS2Pj1tU+',0);
INSERT INTO attributes VALUES('kPk6wY2as8Il','HJusZTbBU494','label','sorted','',0,'2018-08-29T10:52:08.238Z','2018-08-29T10:52:08.238Z',0,'m+y/Oxpq6f',0);
INSERT INTO attributes VALUES('ysCNVMnBf3s1','HJusZTbBU494','label','child:sorted','',1,'2018-08-29T10:52:08.249Z','2018-08-29T10:52:08.250Z',0,'ItprIuiTlZ',0);
INSERT INTO attributes VALUES('oTeqKnzwZURH','HJusZTbBU494','label','yearNote','2017',2,'2018-08-29T10:53:09.515Z','2018-08-29T10:53:16.513Z',0,'YrrW7ywzCK',0);
INSERT INTO attributes VALUES('8oreGYcHHVTA','HJusZTbBU494','relation','child:child:template','Lt8IUldw7d7H',3,'2018-08-29T17:25:04.693Z','2018-08-29T17:25:04.694Z',0,'ABVdTeSYoK',0);
INSERT INTO attributes VALUES('KOTvzLMSuse5','6ZuXjCSWgjB4','label','sorted','',0,'2018-08-29T10:52:15.655Z','2018-08-29T10:52:15.658Z',0,'veo8Kp5mE0',0);
INSERT INTO attributes VALUES('aCBsrwvzvqjE','6ZuXjCSWgjB4','label','monthNote','2017-11',1,'2018-08-29T10:53:37.887Z','2018-08-29T10:53:37.887Z',0,'tF8CYyko+S',0);
INSERT INTO attributes VALUES('Q9q3JLWvglVK','6ZuXjCSWgjB4','relation','child:template','Lt8IUldw7d7H',2,'2018-08-29T17:25:31.601Z','2018-08-29T17:25:31.601Z',0,'14xS6esi1y',0);
INSERT INTO attributes VALUES('dGdwWsGNqPOD','GpGnjmcAPeWG','label','dateNote','2017-11-28',0,'2018-08-29T10:55:14.883Z','2018-08-29T10:55:14.884Z',0,'dBEaBZnqWC',0);
INSERT INTO attributes VALUES('6VedgpljPNFf','GpGnjmcAPeWG','relation','template','Lt8IUldw7d7H',1,'2018-08-29T17:25:57.641Z','2018-08-29T17:25:57.641Z',0,'IzqZVWA336',0);
INSERT INTO attributes VALUES('CJJjUCdpdD3K','Lt8IUldw7d7H','label-definition','weight','{"isPromoted":true,"labelType":"number","multiplicityType":"singlevalue"}',0,'2018-08-29T17:24:15.719Z','2018-08-29T17:26:16.917Z',0,'iedV7CtrF8',1);
INSERT INTO attributes VALUES('7twUQrUK7XcT','3oldoiMUPOlr','label','sorted','',0,'2018-08-29T10:52:19.809Z','2018-08-29T10:52:19.809Z',0,'sm1omFTQsu',0);
INSERT INTO attributes VALUES('OJYkhC8lC8ZC','3oldoiMUPOlr','label','monthNote','2017-12',1,'2018-08-29T10:53:53.206Z','2018-08-29T10:53:55.686Z',0,'dec3sb4XOC',0);
INSERT INTO attributes VALUES('0xu9SmGcAeFA','3oldoiMUPOlr','relation','child:template','Lt8IUldw7d7H',2,'2018-08-29T17:26:48.714Z','2018-08-29T17:26:48.714Z',0,'x7h9ty9Ba2',0);
INSERT INTO attributes VALUES('fpbatIuJE1a5','Iha4YwchR413','label','dateNote','2017-12-21',0,'2018-08-29T10:54:11.560Z','2018-08-29T10:55:02.740Z',0,'+XTEkYlpvF',0);
INSERT INTO attributes VALUES('ZgqCVhuTO3C6','Iha4YwchR413','relation','template','Lt8IUldw7d7H',1,'2018-08-29T17:27:04.139Z','2018-08-29T17:27:04.139Z',0,'2BaPFmr3ug',0);
INSERT INTO attributes VALUES('tWMT7ukJwwQy','MG0wntwILQW6','label','dateNote','2017-12-22',0,'2018-08-29T10:54:54.959Z','2018-08-29T10:54:54.959Z',0,'ApbCv7exkj',0);
INSERT INTO attributes VALUES('XHzaztChYyx4','MG0wntwILQW6','relation','template','Lt8IUldw7d7H',1,'2018-08-29T17:27:21.763Z','2018-08-29T17:27:21.763Z',0,'v0KSL22+Eo',0);
INSERT INTO attributes VALUES('5cvnf0PsN3id','tX80udgxnW5n','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:24.575Z','2018-08-29T17:29:24.575Z',0,'6L62Rt1ejL',0);
INSERT INTO attributes VALUES('7UPbae4hkikm','tX80udgxnW5n','label','dateNote','2017-12-18',1,'2018-08-29T17:30:19.926Z','2018-08-29T17:30:19.926Z',0,'KtRpvYjniC',0);
INSERT INTO attributes VALUES('epyMNWR2avA9','cwPuYRAGKtUi','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:16.650Z','2018-08-29T17:29:16.650Z',0,'NLYu4DPer2',0);
INSERT INTO attributes VALUES('93zAKNkRBxjN','cwPuYRAGKtUi','label','dateNote','2017-12-19',1,'2018-08-29T17:30:28.732Z','2018-08-29T17:30:28.732Z',0,'7wIkRCgM05',0);
INSERT INTO attributes VALUES('L2F19EaI9bOZ','1Fi3MpUkZkLk','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:02.051Z','2018-08-29T17:29:02.051Z',0,'Nu8wfSkKSt',0);
INSERT INTO attributes VALUES('id69I9N34M1O','1Fi3MpUkZkLk','label','dateNote','2017-12-20',1,'2018-08-29T17:30:54.265Z','2018-08-29T17:30:54.265Z',0,'hQ9mpr1Rd5',0);
INSERT INTO attributes VALUES('h0git26ZEGDy','rUsGgtpohm7T','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:32.966Z','2018-08-29T17:29:32.966Z',0,'CNQTOtg9ZJ',0);
INSERT INTO attributes VALUES('mcqG8yBYNxTo','rUsGgtpohm7T','label','dateNote','2017-12-23',1,'2018-08-29T17:31:06.444Z','2018-08-29T17:31:06.444Z',0,'BdarwYoBuQ',0);
INSERT INTO attributes VALUES('KtkikXf0X9nc','sXti7HgialF2','relation','template','Lt8IUldw7d7H',0,'2018-08-29T17:29:43.173Z','2018-08-29T17:29:43.173Z',0,'iFuRC25cyS',0);
INSERT INTO attributes VALUES('3LO087cn7L37','sXti7HgialF2','label','dateNote','2017-12-24',1,'2018-08-29T17:31:14.645Z','2018-08-29T17:31:14.645Z',0,'U2d5WjCqq4',0);
INSERT INTO attributes VALUES('tgeFjZXxRCVr','cwPuYRAGKtUi','label','weight','75.4',2,'2018-08-29T17:32:04.330Z','2018-08-29T17:32:04.330Z',0,'1qYNDu4uln',0);
INSERT INTO attributes VALUES('QkQATsOfaiZ2','1Fi3MpUkZkLk','label','weight','75.2',2,'2018-08-29T17:32:08.910Z','2018-08-29T17:32:08.910Z',0,'ildTmrBJED',0);
INSERT INTO attributes VALUES('cjrMaMByU8d7','Iha4YwchR413','label','weight','76',2,'2018-08-29T17:32:13.915Z','2018-08-29T17:32:13.915Z',0,'PSxYyr9giQ',0);
INSERT INTO attributes VALUES('06pEZahjSI3k','sXti7HgialF2','label','weight','76.1',2,'2018-08-29T17:32:36.358Z','2018-08-29T17:32:36.358Z',0,'d2oQY/Lj1b',0);
INSERT INTO attributes VALUES('VdwPmuaTpT0T','MG0wntwILQW6','label','weight','75.9',2,'2018-08-29T17:32:18.592Z','2018-08-29T17:42:14.520Z',0,'tjceaSy8hu',0);
INSERT INTO attributes VALUES('bPDbyj7wXvma','rUsGgtpohm7T','label','weight','75.6',2,'2018-08-29T17:32:24.677Z','2018-08-29T17:46:17.548Z',0,'uicNUs05DG',0);
INSERT INTO attributes VALUES('T9S7wfp2FvFV','uP3V8BqwXC05','label','task','',1,'2018-08-29T19:42:32.724Z','2018-08-29T19:42:32.724Z',0,'1I/LdG1tOp',0);
INSERT INTO attributes VALUES('Rlvwcmprsvq5','uP3V8BqwXC05','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:42:32.731Z','2018-08-29T19:42:32.731Z',0,'OzTsnqPj78',0);
INSERT INTO attributes VALUES('K6edZDy1VBTi','uP3V8BqwXC05','label','location','tesco',3,'2018-08-29T19:42:47.815Z','2018-08-29T19:42:47.815Z',0,'kevp3B5qMM',0);
INSERT INTO attributes VALUES('LTGKKLNRYSM6','Z4CC9azzMNhg','label','taskLocationNote','tesco',1,'2018-08-29T19:42:47.863Z','2018-08-29T19:42:47.863Z',0,'VXA4YOEPpK',0);
INSERT INTO attributes VALUES('J0g9ODCjbAOD','uP3V8BqwXC05','label','cssClass','todo',4,'2018-08-29T19:42:47.875Z','2018-08-29T19:42:47.875Z',0,'0mfYyV3m0Y',0);
INSERT INTO attributes VALUES('OmZAhWAt2bIe','uP3V8BqwXC05','label','tag','groceries',5,'2018-08-29T19:42:51.115Z','2018-08-29T19:42:51.115Z',0,'9CP3TeprnT',0);
INSERT INTO attributes VALUES('n2RHZ8Sl0lQF','q6A62bZE2R1r','label','taskTagNote','groceries',1,'2018-08-29T19:42:51.152Z','2018-08-29T19:42:51.152Z',0,'ke/5NXvA5v',0);
INSERT INTO attributes VALUES('ch6YD8XTrUr5','XoLNnnlwdjBi','label','task','',1,'2018-08-29T19:43:06.412Z','2018-08-29T19:43:06.412Z',0,'jQHXfhklXB',0);
INSERT INTO attributes VALUES('TZkneA5u23Kw','XoLNnnlwdjBi','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:43:06.432Z','2018-08-29T19:43:06.432Z',0,'0ePfOmtYfE',0);
INSERT INTO attributes VALUES('4TPlivzsoHPv','XoLNnnlwdjBi','label','location','mall',3,'2018-08-29T19:43:40.276Z','2018-08-29T19:43:40.276Z',0,'vh+2pYyK3U',0);
INSERT INTO attributes VALUES('FMUuvj9EqQaH','tQmqkQOMHgQJ','label','taskLocationNote','mall',1,'2018-08-29T19:43:40.327Z','2018-08-29T19:43:40.327Z',0,'BN9MF6o9qm',0);
INSERT INTO attributes VALUES('axCS9DyjSRmo','XoLNnnlwdjBi','label','cssClass','todo',4,'2018-08-29T19:43:40.339Z','2018-08-29T19:43:40.339Z',0,'HLfCqLKAbE',0);
INSERT INTO attributes VALUES('FPm7iK5b179Z','XoLNnnlwdjBi','label','tag','christmas',5,'2018-08-29T19:43:43.973Z','2018-08-29T19:43:43.973Z',0,'LSaUBtMo8z',0);
INSERT INTO attributes VALUES('Li7MCkVJwtoe','Lom0LEnCes1l','label','taskTagNote','christmas',1,'2018-08-29T19:43:44.030Z','2018-08-29T19:43:44.030Z',0,'3yDGaK13Ey',0);
INSERT INTO attributes VALUES('7hNexvifrZ9F','XoLNnnlwdjBi','label','todoDate','2017-12-20',6,'2018-08-29T19:43:50.837Z','2018-08-29T19:43:50.837Z',0,'+nJtkDbMMG',0);
INSERT INTO attributes VALUES('OllsfdAN2wCw','prjUbW6QtsL4','label','task','',1,'2018-08-29T19:46:42.152Z','2018-08-29T19:46:42.152Z',0,'TCfgA6DVBv',0);
INSERT INTO attributes VALUES('VjUlZR2yv2Vs','prjUbW6QtsL4','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:46:42.158Z','2018-08-29T19:46:42.158Z',0,'eFW+ARGCQN',0);
INSERT INTO attributes VALUES('PwkDmazJTPAM','prjUbW6QtsL4','label','cssClass','done',6,'2018-08-29T19:48:00.986Z','2018-08-29T19:48:00.986Z',0,'JQ5wGmAqdM',0);
INSERT INTO attributes VALUES('Q3u9O4u2utP3','prjUbW6QtsL4','label','location','mall',7,'2018-08-29T19:49:13.815Z','2018-08-29T19:49:13.816Z',0,'JkBPyNcdpA',0);
INSERT INTO attributes VALUES('SMyP8V9L8vBj','prjUbW6QtsL4','label','tag','christmas',8,'2018-08-29T19:49:35.716Z','2018-08-29T19:49:35.717Z',0,'polIDXvbFh',0);
INSERT INTO attributes VALUES('T2HBEaDedUkK','EluAg7EiealE','label','task','',1,'2018-08-29T19:53:44.535Z','2018-08-29T19:53:44.535Z',0,'qLcD7/Sxu/',0);
INSERT INTO attributes VALUES('uXxiBvaawSxB','EluAg7EiealE','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:53:44.545Z','2018-08-29T19:53:44.546Z',0,'LYDxqtQ0oj',0);
INSERT INTO attributes VALUES('rPKq1auqgjne','EluAg7EiealE','label','location','gym',3,'2018-08-29T19:54:19.526Z','2018-08-29T19:54:19.527Z',0,'3D6MY7txSx',0);
INSERT INTO attributes VALUES('OlQapDHmPsvE','vkoNZlNO5TO4','label','taskLocationNote','gym',1,'2018-08-29T19:54:19.623Z','2018-08-29T19:54:19.624Z',0,'JjIloRX8Lj',0);
INSERT INTO attributes VALUES('isgI18Da7raL','EluAg7EiealE','label','cssClass','todo',4,'2018-08-29T19:54:19.645Z','2018-08-29T19:54:19.645Z',0,'oSAy7WDTd/',0);
INSERT INTO attributes VALUES('bueAaBOZaPR1','EluAg7EiealE','label','todoDate','2017-12-28',5,'2018-08-29T19:54:38.485Z','2018-08-29T19:55:04.592Z',0,'h8K/66xrrB',0);
INSERT INTO attributes VALUES('o9VzDlKJm2Wv','cUWgYJfpp8G8','relation','template','Lt8IUldw7d7H',2,'2018-08-29T19:55:04.668Z','2018-08-29T19:55:04.668Z',0,'mU4NSX5SfY',0);
INSERT INTO attributes VALUES('aAAKUP8Xzk84','cUWgYJfpp8G8','label','dateNote','2017-12-28',3,'2018-08-29T19:55:04.681Z','2018-08-29T19:55:04.681Z',0,'KkDCxAsM5x',0);
INSERT INTO attributes VALUES('Ts6QDZqcbOWK','cmYy3Z22F4MY','label','task','',1,'2018-08-29T19:56:35.634Z','2018-08-29T19:56:35.634Z',0,'9XyxVqr+mR',0);
INSERT INTO attributes VALUES('mi8JlZzzDMvf','cmYy3Z22F4MY','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:56:35.640Z','2018-08-29T19:56:35.640Z',0,'l8tpnd26SZ',0);
INSERT INTO attributes VALUES('xCrm8cWEAERo','cmYy3Z22F4MY','label','tag','health',3,'2018-08-29T19:57:02.217Z','2018-08-29T19:57:02.218Z',0,'gkz91AYO7M',0);
INSERT INTO attributes VALUES('EQgv8jgBGDeO','2V9Zg9CXdNvn','label','taskTagNote','health',1,'2018-08-29T19:57:02.276Z','2018-08-29T19:57:02.276Z',0,'T1LboUFYwM',0);
INSERT INTO attributes VALUES('2CLl7F07nrUX','cmYy3Z22F4MY','label','cssClass','done',7,'2018-08-29T19:57:11.866Z','2018-08-29T19:57:11.866Z',0,'U+xrckPbD4',0);
INSERT INTO attributes VALUES('L8QbHBtuWocN','cmYy3Z22F4MY','label','todoDate','2017-12-19',5,'2018-08-29T19:57:09.347Z','2018-08-29T19:57:33.998Z',0,'P+niQLnqtT',0);
INSERT INTO attributes VALUES('HWw4Q01cb9Re','cmYy3Z22F4MY','label','doneDate','2017-12-19',6,'2018-08-29T19:57:11.798Z','2018-08-29T19:57:39.255Z',0,'jGSCX/QklX',0);
INSERT INTO attributes VALUES('qwtBFzh0wmpe','XoLNnnlwdjBi','label','tag','shopping',7,'2018-08-29T19:58:59.083Z','2018-08-29T19:58:59.084Z',0,'Hw2zrl2NtD',0);
INSERT INTO attributes VALUES('AX3w15mAFRoB','d04CnuZxPXj2','label','taskTagNote','shopping',1,'2018-08-29T19:58:59.142Z','2018-08-29T19:58:59.142Z',0,'e0BBJ30IQ1',0);
INSERT INTO attributes VALUES('1cermfHB24bp','ve3Ib30x9nGf','label','task','',1,'2018-08-29T19:59:04.352Z','2018-08-29T19:59:04.352Z',0,'vFv8J/h5qJ',0);
INSERT INTO attributes VALUES('QlSQJcHlt3ZQ','ve3Ib30x9nGf','relation','template','HbtlYiMvmm4V',2,'2018-08-29T19:59:04.359Z','2018-08-29T19:59:04.360Z',0,'263XZD0Xpd',0);
INSERT INTO attributes VALUES('UPvlXSBXxRJv','ve3Ib30x9nGf','label','location','work',3,'2018-08-29T19:59:38.832Z','2018-08-29T19:59:38.832Z',0,'GufZy7QNVn',0);
INSERT INTO attributes VALUES('YngESU7G6T62','TTl2nD4CqzC9','label','taskLocationNote','work',1,'2018-08-29T19:59:38.890Z','2018-08-29T19:59:38.890Z',0,'FTH7CxVaB1',0);
INSERT INTO attributes VALUES('PEbrAcRaFOXE','ve3Ib30x9nGf','label','cssClass','todo',4,'2018-08-29T19:59:38.915Z','2018-08-29T19:59:38.915Z',0,'Xepyx9jFGP',0);
INSERT INTO attributes VALUES('cdSIp3FJ50vX','ve3Ib30x9nGf','label','todoDate','2017-12-18',5,'2018-08-29T19:59:46.829Z','2018-08-29T20:00:18.351Z',0,'TWZfKhjpe3',0);
INSERT INTO attributes VALUES('TZa1McDCnNHj','uP3V8BqwXC05','label','tag','shopping',7,'2018-08-29T20:01:47.691Z','2018-08-29T20:01:47.691Z',0,'kH6CGtIT/r',0);
INSERT INTO attributes VALUES('kNp0J9uXoC8U','tX80udgxnW5n','label','weight','74.9',2,'2018-08-29T17:31:58.692Z','2018-08-29T21:30:23.669Z',0,'xagvtLz48G',0);
INSERT INTO attributes VALUES('0F9G0OQujXVO','prjUbW6QtsL4','label','tag','shopping',9,'2018-08-30T07:54:40.727Z','2018-08-30T07:54:40.728Z',0,'XyCvk4htB5',0);
INSERT INTO attributes VALUES('yc58HTwoM3b0','prjUbW6QtsL4','label','todoDate','2017-12-20',3,'2018-08-29T19:47:53.123Z','2018-08-30T07:56:53.874Z',0,'UnKvGyVk7X',0);
INSERT INTO attributes VALUES('JVlFEQPYUiCR','prjUbW6QtsL4','label','doneDate','2017-12-24',5,'2018-08-29T19:48:00.928Z','2018-08-30T07:57:00.569Z',0,'nbXCZOrqq6',0);
INSERT INTO attributes VALUES('01UuzuSR78Kj','uP3V8BqwXC05','label','todoDate','2017-12-24',6,'2018-08-29T19:43:01.973Z','2018-08-30T08:04:55.301Z',0,'tDEAzDOKYn',0);
INSERT INTO attributes VALUES('cyujybJzh4It','HbtlYiMvmm4V','relation','runOnAttributeChange','gYVdjKAJeImD',0,'2018-08-28T20:50:48.640Z','2018-08-28T20:50:48.640Z',0,'6ziRrHJAhQ',1);
INSERT INTO attributes VALUES('MEr8Y48B5fuA','HbtlYiMvmm4V','label-definition','location','{"isPromoted":true,"labelType":"text","multiplicityType":"singlevalue"}',1,'2018-08-28T20:50:48.652Z','2018-08-28T20:50:48.652Z',0,'SHKsaKOZDy',1);
INSERT INTO attributes VALUES('0zEib333MHaK','HbtlYiMvmm4V','label-definition','tag','{"isPromoted":true,"labelType":"text","multiplicityType":"multivalue"}',2,'2018-08-28T20:50:48.661Z','2018-08-28T20:50:48.661Z',0,'qGaGNt4Il4',1);
INSERT INTO attributes VALUES('XsQlrpkI26vx','HbtlYiMvmm4V','label-definition','todoDate','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',3,'2018-08-28T20:50:48.707Z','2018-08-28T20:50:48.708Z',0,'K1zIHbXWjg',1);
INSERT INTO attributes VALUES('jbVAxy9rOvw7','HbtlYiMvmm4V','label-definition','doneDate','{"isPromoted":true,"labelType":"date","multiplicityType":"singlevalue"}',4,'2018-08-28T20:50:48.716Z','2018-08-28T20:50:48.717Z',0,'ibiT2W04+I',1);
INSERT INTO attributes VALUES('0p8vtV5LoH0e','L9qettZi0csz','label','taskTodoRoot','',0,'2018-08-28T20:50:48.596Z','2018-08-28T20:50:48.596Z',0,'mKdjsJRSwv',0);
INSERT INTO attributes VALUES('lCyxJnXmNy5x','L9qettZi0csz','label','child:task','',1,'2018-08-28T21:11:09.138Z','2018-08-28T21:11:09.138Z',0,'EarSd1tApi',0);
INSERT INTO attributes VALUES('ifqAReEYdFh6','L9qettZi0csz','relation','child:template','HbtlYiMvmm4V',2,'2018-08-28T21:11:09.143Z','2018-08-28T21:11:09.143Z',0,'JXcAyc3in4',0);
INSERT INTO attributes VALUES('1hmYf4fJQmBk','L9qettZi0csz','label','child:cssClass','todo',3,'2018-09-01T11:20:29.168Z','2018-09-01T11:20:29.168Z',0,'toS3GWHG/9',0);
INSERT INTO attributes VALUES('rZBWHIojcLGl','7YEYLSrnFpIi','label','run','frontendStartup',0,'2018-09-10T22:00:30.600Z','2018-09-10T22:00:30.600Z',0,'Z+589x5RRa',0);

129
db/main_branches.sql Normal file
View File

@@ -0,0 +1,129 @@
INSERT INTO branches VALUES('root','root','none',0,NULL,1,0,'2018-01-01T00:00:00.000Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('dLgtLUFn3GoN','1Heh2acXfPNt','root',21,NULL,1,0,'2017-12-23T00:46:39.304Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('QLfS835GSfIh','3RkyK9LI18dO','1Heh2acXfPNt',5,NULL,1,0,'2017-12-23T01:20:04.181Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('wLTa2l3lYi83','HJusZTbBU494','3RkyK9LI18dO',1,NULL,1,0,'2017-12-23T01:20:50.709Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('jvhKcwz4pYTr','ZC78NlmdXeC6','WdWZFuWNVDZk',0,NULL,1,0,'2017-12-23T04:06:21.579Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('CarTrwkGVcPz','NncfGH8dyNjJ','WdWZFuWNVDZk',1,NULL,1,0,'2017-12-23T04:06:24.012Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('6M7qPlr7at6N','eouCLkjbruai','NncfGH8dyNjJ',0,NULL,0,0,'2017-12-23T01:23:28.291Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('tQgognnAH9WI','C44aq4mkaX67','NncfGH8dyNjJ',1,NULL,0,0,'2017-12-23T01:23:31.879Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('xyAi7MmgvAgR','C44aq4mkaX67','ZC78NlmdXeC6',1,NULL,1,0,'2017-12-23T01:23:47.756Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('xQ3fjRp9yaPq','I6Cw88AirBBl','C44aq4mkaX67',0,NULL,0,0,'2017-12-23T01:24:04.681Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('2GOsNT5LsvTP','mcEwFMSjhlvL','C44aq4mkaX67',1,NULL,0,0,'2017-12-23T01:29:35.974Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('RxUiraiR655R','CF2lUIJAr6Ey','NncfGH8dyNjJ',2,NULL,0,0,'2017-12-23T01:34:37.658Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('mZuSrZ18Zmv0','xkXwueRoDNeN','MG0wntwILQW6',0,NULL,0,0,'2017-12-23T01:35:40.306Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('hbcWTnEnXPwF','eXHZAKsMYgur','1Heh2acXfPNt',9,NULL,0,0,'2017-12-23T03:32:42.868Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('8a3aNxjG0nu7','2WU27ekfy07E','eXHZAKsMYgur',0,NULL,0,0,'2017-12-23T03:32:49.379Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('4Tu6vaPdCxCM','TjWEndYCCg7g','eXHZAKsMYgur',1,NULL,1,0,'2017-12-23T03:33:23.584Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('lBPOmhP12egP','8nRNDJGyGs2Z','TjWEndYCCg7g',0,NULL,1,0,'2017-12-23T03:33:37.327Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('C5ipVqeDWySp','9zSwD89vgzNO','8nRNDJGyGs2Z',0,NULL,0,0,'2017-12-23T03:37:04.912Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('uSitzbGcSATJ','u5t1EvWa3CMO','TjWEndYCCg7g',1,NULL,0,0,'2017-12-23T03:39:21.918Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('GZ6aRI8rdSJt','8nRNDJGyGs2Z','MG0wntwILQW6',1,'',1,0,'2017-12-23T03:42:28.310Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('uipfvAfwWRgx','6ZuXjCSWgjB4','HJusZTbBU494',0,NULL,0,0,'2017-12-23T03:44:54.096Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('nMRpPWWH8WRk','GpGnjmcAPeWG','6ZuXjCSWgjB4',1,NULL,0,0,'2017-12-23T03:44:57.036Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('c4wt27WNjepw','21K84UqGhqlt','GpGnjmcAPeWG',0,NULL,0,0,'2017-12-23T03:45:10.933Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('d8L8zYlLTbym','R6pheWjdwmNU','rz5t0r9Qr2WC',0,NULL,0,0,'2017-12-23T03:45:28.002Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('T4USGzfllu5t','5v5Dx6LMHXIO','Iha4YwchR413',0,NULL,0,0,'2017-12-23T03:45:44.184Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('c4JgFNIobvQW','MLQjmREtcnJ3','R6pheWjdwmNU',0,NULL,0,0,'2017-12-23T03:47:48.208Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('nfWjptAU2ZDg','pTTjrxgnvURB','R6pheWjdwmNU',1,NULL,0,0,'2017-12-23T03:47:55.932Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('T2ToYBfyPy0g','cFK9sGYZaMWs','rz5t0r9Qr2WC',1,NULL,0,0,'2017-12-23T03:49:32.210Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('NG4gbKOnsM3v','21K84UqGhqlt','MLQjmREtcnJ3',0,'28. 11. 2017',0,0,'2017-12-23T03:53:38.110Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('Fstg4tkccO4N','5v5Dx6LMHXIO','MLQjmREtcnJ3',1,'21. 12. 2017',0,0,'2017-12-23T03:53:49.737Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('MN8B7qXDUViO','xkXwueRoDNeN','MLQjmREtcnJ3',2,'22. 12. 2017',0,0,'2017-12-23T03:53:57.486Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('gSRkHpB7Bu3D','pOFVzbXLmzhX','R6pheWjdwmNU',2,NULL,0,0,'2017-12-23T03:54:46.138Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('6brdjeWDOB6w','0xtvjqrcGiRB','ZC78NlmdXeC6',0,NULL,0,0,'2017-12-23T04:02:06.650Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('AqKUM2zUVFUF','Zl69uXBSen0w','ZC78NlmdXeC6',2,NULL,1,0,'2017-12-23T04:02:16.685Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('Ez7NN2WVzRc4','62BKAQMVP2KW','Zl69uXBSen0w',1,NULL,0,0,'2017-12-23T04:02:39.164Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('t3vVElqMIQVa','h4OfLEAYspud','WdWZFuWNVDZk',2,NULL,1,0,'2017-12-23T04:06:25.769Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('O983DHtLpgmr','1hASbLRDL7oo','h4OfLEAYspud',0,NULL,0,0,'2017-12-23T16:42:26.347Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('RsvL795Mk1bp','1hASbLRDL7oo','GpGnjmcAPeWG',1,'',0,0,'2017-12-23T04:04:56.830Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('79e4hrHLFmx6','jyqG9GucsMdn','Iha4YwchR413',1,NULL,0,0,'2017-12-23T04:05:16.439Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('oWO8rctUjf7d','WdWZFuWNVDZk','1Heh2acXfPNt',13,NULL,0,0,'2017-12-23T04:06:16.179Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('GOxcrZrxalFN','yK4SBJfwD3tY','1Heh2acXfPNt',18,NULL,0,0,'2017-12-23T04:06:32.833Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('bSPmEvjLzQKU','r4BnsmSQeVr1','yK4SBJfwD3tY',0,NULL,0,0,'2017-12-23T04:06:37.427Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('bMtxCD6cwNR9','QbL3pTvhgzM8','yK4SBJfwD3tY',2,NULL,0,0,'2017-12-23T04:06:43.841Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('o4ycR7xIi4oI','moMbTKwN15Ps','yK4SBJfwD3tY',3,NULL,1,0,'2017-12-23T04:06:49.331Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('abTEhnOsAsSg','PEGQGg0In3Ar','GpGnjmcAPeWG',2,NULL,0,0,'2017-12-23T16:44:35.900Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('ccslPJf3wQV3','vBv6ovBupfTj','IlULcDiOTI4K',0,NULL,0,0,'2017-12-23T18:04:50.904Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('5Dt9YCMn59sY','mw4f2xB4J5fV','IlULcDiOTI4K',1,NULL,0,0,'2017-12-23T18:05:24.868Z','','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('Qwj5gpLainnP','N029F9ANGn8b','Dk5RGYzufXg3',0,NULL,0,0,'2018-08-28T20:50:22.011Z','gziRGab1sT','2018-08-28T20:50:22.011Z');
INSERT INTO branches VALUES('gslGsoDESZjG','bFTtwsnNgw9T','Dk5RGYzufXg3',1,NULL,0,0,'2018-08-28T20:50:22.110Z','ZcNPsaKsw8','2018-08-28T20:50:22.110Z');
INSERT INTO branches VALUES('aP3f70xCJWGs','N029F9ANGn8b','bFTtwsnNgw9T',0,NULL,NULL,0,'2018-08-28T20:50:22.117Z','ZvcZgDrutn','2018-08-28T20:50:22.117Z');
INSERT INTO branches VALUES('WlpZMMsXlQJw','wHb2YBwhjxiD','YULCKCrWJJZ6',0,NULL,0,0,'2018-08-28T20:50:22.181Z','cBicKleFbl','2018-08-28T20:50:22.181Z');
INSERT INTO branches VALUES('jyFk0k855gf1','cUYFEvsdY6N6','YULCKCrWJJZ6',1,NULL,0,0,'2018-08-28T20:50:22.187Z','BC+PIh5h25','2018-08-28T20:50:22.186Z');
INSERT INTO branches VALUES('O7hcbDc4taan','8APXN4n4Hnb8','YULCKCrWJJZ6',2,NULL,0,0,'2018-08-28T20:50:22.192Z','ubas1i1Xzz','2018-08-28T20:50:22.192Z');
INSERT INTO branches VALUES('hmtcxz6dMz9S','s0Hhsl0nb1bg','YULCKCrWJJZ6',3,NULL,0,0,'2018-08-28T20:50:22.197Z','sRmlG1Gqe3','2018-08-28T20:50:22.197Z');
INSERT INTO branches VALUES('W0tZAcTC0dGY','baafKkgNGYLm','YULCKCrWJJZ6',4,NULL,0,0,'2018-08-28T20:50:22.204Z','/Y9ycmu78F','2018-08-28T20:50:22.204Z');
INSERT INTO branches VALUES('t0PqYe7oEZQg','Ab7WuV47mQOf','YULCKCrWJJZ6',5,NULL,0,0,'2018-08-28T20:50:22.210Z','NznnppTEIe','2018-08-28T20:50:22.210Z');
INSERT INTO branches VALUES('7cOKBWmaN1kw','w7t110kWsK8e','YULCKCrWJJZ6',6,NULL,0,0,'2018-08-28T20:50:22.215Z','VxtbCyFURt','2018-08-28T20:50:22.215Z');
INSERT INTO branches VALUES('3bIvCk23JeXJ','at7bZyjJfIrM','YULCKCrWJJZ6',7,NULL,0,0,'2018-08-28T20:50:22.220Z','lH/8HHwLB1','2018-08-28T20:50:22.220Z');
INSERT INTO branches VALUES('vWch9vHEIsKw','OZKicr536m7U','YULCKCrWJJZ6',8,NULL,0,0,'2018-08-28T20:50:22.225Z','FldZuyxiDN','2018-08-28T20:50:22.225Z');
INSERT INTO branches VALUES('p07f522OT9FP','oato1D7kuNU2','YULCKCrWJJZ6',9,NULL,0,0,'2018-08-28T20:50:22.231Z','LQlWJmL3RR','2018-08-28T20:50:22.231Z');
INSERT INTO branches VALUES('03YszmiIfe8B','C1I7GPA8ORO4','YULCKCrWJJZ6',10,NULL,0,0,'2018-08-28T20:50:22.236Z','uNgEmMMv59','2018-08-28T20:50:22.236Z');
INSERT INTO branches VALUES('iZJMJE9v4caq','gQNQaMBzRYdb','YULCKCrWJJZ6',11,NULL,0,0,'2018-08-28T20:50:22.242Z','OIMswfv8u0','2018-08-28T20:50:22.242Z');
INSERT INTO branches VALUES('BgakZWX2NSoa','8LOr7xUMuWD4','1Heh2acXfPNt',24,NULL,0,0,'2018-08-28T20:50:36.080Z','l6e868XpLw','2018-08-28T20:50:36.079Z');
INSERT INTO branches VALUES('6yEXb5xSww7E','qEi5St9PBPCP','8LOr7xUMuWD4',3,NULL,0,0,'2018-08-28T20:50:36.154Z','wiqkXVJhDQ','2018-08-28T20:50:36.154Z');
INSERT INTO branches VALUES('WFBrWWGubT8N','IYKhW6LTUpwP','1Heh2acXfPNt',28,NULL,0,0,'2018-08-28T20:50:48.458Z','KaPAe+LyvC','2018-08-28T20:50:48.458Z');
INSERT INTO branches VALUES('VEq36SudFqDe','L9qettZi0csz','IYKhW6LTUpwP',0,NULL,1,0,'2018-08-28T20:50:48.471Z','74RNaEVH/C','2018-08-28T20:50:48.470Z');
INSERT INTO branches VALUES('cnL65jQZPFng','Dyahpf7LroQY','IYKhW6LTUpwP',2,NULL,1,0,'2018-08-28T20:50:48.481Z','uY3Jzm+34n','2018-08-28T20:50:48.480Z');
INSERT INTO branches VALUES('jj5QAGAl31lB','nUgD4SYx2gt7','IYKhW6LTUpwP',4,NULL,1,0,'2018-08-28T20:50:48.507Z','sxhKcIO0Fo','2018-08-28T20:50:48.507Z');
INSERT INTO branches VALUES('H4uX5U8UA3Fb','hL4rychNFWZs','IYKhW6LTUpwP',6,NULL,1,0,'2018-08-28T20:50:48.539Z','8/KA289XO5','2018-08-28T20:50:48.539Z');
INSERT INTO branches VALUES('r6XUe41mCgPY','gYVdjKAJeImD','hL4rychNFWZs',0,NULL,0,0,'2018-08-28T20:50:48.546Z','B8Zx5cyTRW','2018-08-28T20:50:48.546Z');
INSERT INTO branches VALUES('UPdB517CCSC6','vVhlPtM5YgWe','gYVdjKAJeImD',0,NULL,0,0,'2018-08-28T20:50:48.556Z','Ydd3hXIn5h','2018-08-28T20:50:48.556Z');
INSERT INTO branches VALUES('2lLNmlPp32DT','XVlWndK4Oh6A','hL4rychNFWZs',2,NULL,0,0,'2018-08-28T20:50:48.575Z','7KpHQIqICP','2018-08-28T20:50:48.575Z');
INSERT INTO branches VALUES('8A8Hj2KELLZe','gYNJtGEPGW95','hL4rychNFWZs',3,NULL,0,0,'2018-08-28T20:50:48.583Z','akAZK6+pYC','2018-08-28T20:50:48.583Z');
INSERT INTO branches VALUES('feP0uJpIPOz3','HbtlYiMvmm4V','hL4rychNFWZs',4,NULL,0,0,'2018-08-28T20:50:48.592Z','2hPRviPOvY','2018-08-28T20:50:48.592Z');
INSERT INTO branches VALUES('VgaH4I1fLW0p','Dk5RGYzufXg3','Z5yhGE5g0UB5',0,NULL,1,0,'2018-08-28T20:51:30.388Z','A5p7MjKIdD','2018-08-28T20:50:21.941Z');
INSERT INTO branches VALUES('sOGDHPGhnMoM','YBAcWV8TjYEp','8LOr7xUMuWD4',0,NULL,1,0,'2018-08-28T20:56:04.336Z','e84wqxU8y+','2018-08-28T20:55:00.064Z');
INSERT INTO branches VALUES('Hoq9xTZg8sCK','kV2NwNNvepGF','YBAcWV8TjYEp',0,NULL,1,0,'2018-08-28T20:56:05.910Z','0rORbULibz','2018-08-28T20:50:36.095Z');
INSERT INTO branches VALUES('A56xlTT6rczp','YULCKCrWJJZ6','gDrEI7LFWqrP',0,NULL,1,0,'2018-08-29T16:03:23.987Z','7YCK6Cf3vr','2018-08-28T20:50:22.175Z');
INSERT INTO branches VALUES('5cJwU0VlCJA7','WkdQrYTnsgxP','gDrEI7LFWqrP',1,NULL,0,0,'2018-08-29T16:03:24.889Z','RaGS8TUyuV','2018-08-28T20:50:22.250Z');
INSERT INTO branches VALUES('U4XC6g7oB4ME','Z5yhGE5g0UB5','gDrEI7LFWqrP',2,NULL,1,0,'2018-08-29T16:03:25.779Z','fAkVtlU455','2018-08-28T20:51:10.194Z');
INSERT INTO branches VALUES('bFGrKoCcHTD0','ucC6Zabv3Uml','gDrEI7LFWqrP',3,NULL,0,0,'2018-08-29T16:03:30.624Z','KWGpDGiWrq','2018-08-28T20:50:22.122Z');
INSERT INTO branches VALUES('FIurtaYkU3mn','gDrEI7LFWqrP','1Heh2acXfPNt',26,NULL,0,0,'2018-08-29T16:03:27.894Z','+Jd+Zzgx2u','2018-08-28T20:50:21.931Z');
INSERT INTO branches VALUES('bryQseMhyzaI','IlULcDiOTI4K','1Heh2acXfPNt',2,NULL,0,0,'2018-08-29T17:10:47.987Z','wX6dY3pq/D','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('u84s3tBBB92g','TlGCAdcfxkOT','eXHZAKsMYgur',2,NULL,0,0,'2018-08-29T17:11:16.550Z','Ei4ozqDMWi','2018-08-29T17:11:16.550Z');
INSERT INTO branches VALUES('yMhwsE7uvEij','3oldoiMUPOlr','HJusZTbBU494',1,NULL,1,0,'2018-08-29T17:20:59.012Z','7U4pIRsbwO','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('NTlSXCbgt5Va','Lt8IUldw7d7H','3RkyK9LI18dO',2,NULL,0,0,'2018-08-29T17:23:45.198Z','QjebjIeHUj','2018-08-29T17:23:45.198Z');
INSERT INTO branches VALUES('0fpnraUGs9Kl','rz5t0r9Qr2WC','HJusZTbBU494',2,NULL,1,0,'2018-08-29T17:26:27.928Z','rw9k0n9SUb','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('uMt25KxpV45Y','tX80udgxnW5n','3oldoiMUPOlr',1,NULL,1,0,'2018-08-29T17:29:24.554Z','XlDqz7PX7X','2018-08-29T17:29:24.554Z');
INSERT INTO branches VALUES('IsCUFfM1QzHl','rUsGgtpohm7T','3oldoiMUPOlr',21,NULL,0,0,'2018-08-29T17:29:32.942Z','o8ZNDOfGSB','2018-08-29T17:29:32.942Z');
INSERT INTO branches VALUES('UozNcoXYDovC','sXti7HgialF2','3oldoiMUPOlr',23,NULL,1,0,'2018-08-29T17:29:43.138Z','mDyppB0lkz','2018-08-29T17:29:43.138Z');
INSERT INTO branches VALUES('3B2q1J0jymcC','uP3V8BqwXC05','L9qettZi0csz',0,NULL,0,0,'2018-08-29T19:42:32.718Z','fgHfgNl00Y','2018-08-29T19:42:32.718Z');
INSERT INTO branches VALUES('tznJp79kaw59','Z4CC9azzMNhg','Dyahpf7LroQY',0,NULL,1,0,'2018-08-29T19:42:47.857Z','GPgoswIB8x','2018-08-29T19:42:47.856Z');
INSERT INTO branches VALUES('akqrs7gHmh5t','uP3V8BqwXC05','Z4CC9azzMNhg',0,NULL,0,0,'2018-08-29T19:42:47.872Z','aoLg0gFrd/','2018-08-29T19:42:47.872Z');
INSERT INTO branches VALUES('acVSG5Mau4XN','q6A62bZE2R1r','nUgD4SYx2gt7',2,NULL,0,0,'2018-08-29T19:42:51.139Z','V1TNeMyqD5','2018-08-29T19:42:51.139Z');
INSERT INTO branches VALUES('Gd1QxgTLiOQx','uP3V8BqwXC05','q6A62bZE2R1r',0,NULL,0,0,'2018-08-29T19:42:51.161Z','FC79qQkyC3','2018-08-29T19:42:51.161Z');
INSERT INTO branches VALUES('aCAgcqpOKx7z','XoLNnnlwdjBi','L9qettZi0csz',1,NULL,0,0,'2018-08-29T19:43:06.394Z','5tETh0Khcc','2018-08-29T19:43:06.394Z');
INSERT INTO branches VALUES('ofME2yjEstZT','tQmqkQOMHgQJ','Dyahpf7LroQY',1,NULL,0,0,'2018-08-29T19:43:40.323Z','bRdu27+7TZ','2018-08-29T19:43:40.323Z');
INSERT INTO branches VALUES('LfV9Vuv2KOYi','XoLNnnlwdjBi','tQmqkQOMHgQJ',0,NULL,0,0,'2018-08-29T19:43:40.335Z','blImjibA2C','2018-08-29T19:43:40.334Z');
INSERT INTO branches VALUES('mSyNlVSA6WRX','XoLNnnlwdjBi','Lom0LEnCes1l',0,NULL,0,0,'2018-08-29T19:43:44.040Z','kQy9lC8qmF','2018-08-29T19:43:44.039Z');
INSERT INTO branches VALUES('q735AeBxPj1T','ydix6JqjXiUm','XoLNnnlwdjBi',0,NULL,0,0,'2018-08-29T19:46:03.357Z','5eoW9KyskY','2018-08-29T19:46:03.356Z');
INSERT INTO branches VALUES('fmm6YcEBxv8T','prjUbW6QtsL4','9HHqPxJkLAkl',0,NULL,0,0,'2018-08-29T19:48:00.972Z','JMdLMCDy2J','2018-08-29T19:48:00.972Z');
INSERT INTO branches VALUES('NnybbW5xPPHO','9HHqPxJkLAkl','IYKhW6LTUpwP',1,NULL,1,0,'2018-08-29T19:48:05.277Z','FirAueCkjs','2018-08-28T20:50:48.529Z');
INSERT INTO branches VALUES('Fq4TqKTo93aK','EluAg7EiealE','L9qettZi0csz',2,NULL,0,0,'2018-08-29T19:53:44.530Z','mJCxaZ1mlW','2018-08-29T19:53:44.530Z');
INSERT INTO branches VALUES('2dac99oNkdH3','vkoNZlNO5TO4','Dyahpf7LroQY',2,NULL,0,0,'2018-08-29T19:54:19.618Z','fN3DqnjcUb','2018-08-29T19:54:19.618Z');
INSERT INTO branches VALUES('8aSc0sibmCZm','EluAg7EiealE','vkoNZlNO5TO4',0,NULL,0,0,'2018-08-29T19:54:19.637Z','RpUFzJs2RD','2018-08-29T19:54:19.637Z');
INSERT INTO branches VALUES('uMnwVhwtdXZg','cUWgYJfpp8G8','3oldoiMUPOlr',24,NULL,1,0,'2018-08-29T19:55:04.661Z','ZMEYWKhIhB','2018-08-29T19:55:04.661Z');
INSERT INTO branches VALUES('kS7GsSvztE1J','EluAg7EiealE','cUWgYJfpp8G8',0,'TODO',NULL,0,'2018-08-29T19:55:04.691Z','72zbNyyFRw','2018-08-29T19:54:38.626Z');
INSERT INTO branches VALUES('EjQTcVVHFmmZ','MG0wntwILQW6','3oldoiMUPOlr',19,NULL,0,0,'2018-08-29T19:55:53.824Z','bx2z9074Vi','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('HsN4600rQoL9','Iha4YwchR413','3oldoiMUPOlr',17,NULL,1,0,'2018-08-29T17:26:52.528Z','GBlVZxHhto','1970-01-01T00:00:00.000Z');
INSERT INTO branches VALUES('fQ2BsgDWdqoE','1Fi3MpUkZkLk','3oldoiMUPOlr',16,NULL,1,0,'2018-08-29T19:56:00.793Z','tk6763xjRL','2018-08-29T17:29:02.035Z');
INSERT INTO branches VALUES('Sv77hHzVZvdw','cwPuYRAGKtUi','3oldoiMUPOlr',2,NULL,1,0,'2018-08-29T19:56:04.404Z','Uwn3W1Q8py','2018-08-29T17:29:16.635Z');
INSERT INTO branches VALUES('kPZLi2VKVjQ1','2V9Zg9CXdNvn','nUgD4SYx2gt7',6,NULL,0,0,'2018-08-29T19:57:02.270Z','v0dB+4MnXy','2018-08-29T19:57:02.270Z');
INSERT INTO branches VALUES('9nEK1jBKqdL7','cmYy3Z22F4MY','9HHqPxJkLAkl',1,NULL,0,0,'2018-08-29T19:57:11.828Z','P7AvZh6VlN','2018-08-29T19:57:11.828Z');
INSERT INTO branches VALUES('HVvl5lR3Db7p','cmYy3Z22F4MY','cwPuYRAGKtUi',1,'DONE',NULL,0,'2018-08-29T19:57:39.314Z','dZK0rWy9IN','2018-08-29T19:57:11.876Z');
INSERT INTO branches VALUES('bPQksNkJmvLR','XoLNnnlwdjBi','d04CnuZxPXj2',0,NULL,0,0,'2018-08-29T19:58:59.150Z','bMHPa6tOOV','2018-08-29T19:58:59.150Z');
INSERT INTO branches VALUES('eoWt4fWm0sW3','XoLNnnlwdjBi','1Fi3MpUkZkLk',0,'TODO',NULL,0,'2018-08-29T19:43:50.887Z','Dq9p08n0+S','2018-08-29T19:43:50.887Z');
INSERT INTO branches VALUES('lMn7U8E3HcM8','ve3Ib30x9nGf','L9qettZi0csz',3,NULL,0,0,'2018-08-29T19:59:04.336Z','9uxcfSBqQm','2018-08-29T19:59:04.336Z');
INSERT INTO branches VALUES('No0w47P6V5NU','TTl2nD4CqzC9','Dyahpf7LroQY',3,NULL,0,0,'2018-08-29T19:59:38.884Z','Po5wJqpzvR','2018-08-29T19:59:38.884Z');
INSERT INTO branches VALUES('0TOuqT1KIYRZ','ve3Ib30x9nGf','TTl2nD4CqzC9',0,NULL,0,0,'2018-08-29T19:59:38.901Z','jjfsd5sCg4','2018-08-29T19:59:38.901Z');
INSERT INTO branches VALUES('5dNoZxDbyGLR','ve3Ib30x9nGf','tX80udgxnW5n',0,'TODO',NULL,0,'2018-08-29T20:00:18.428Z','YrUH6cdlZO','2018-08-29T19:59:47.032Z');
INSERT INTO branches VALUES('mTe83gvO9fsQ','uP3V8BqwXC05','d04CnuZxPXj2',1,NULL,0,0,'2018-08-29T20:01:47.773Z','2uPfZok3xo','2018-08-29T20:01:47.772Z');
INSERT INTO branches VALUES('DzI3pH06LRAK','7H3OrcgB8Io6','tX80udgxnW5n',1,NULL,0,0,'2018-08-29T21:26:55.817Z','TQATDSthxP','2018-08-29T21:26:55.817Z');
INSERT INTO branches VALUES('9zW6GNyUrSwj','HgaAwBX5zVcP','kV2NwNNvepGF',0,NULL,0,0,'2018-08-29T22:13:25.436Z','n7SHMc8Do/','2018-08-28T20:50:36.139Z');
INSERT INTO branches VALUES('KgPU7QD19kBk','prjUbW6QtsL4','sXti7HgialF2',0,'DONE',NULL,0,'2018-08-30T07:57:00.605Z','55wpz4Yj6h','2018-08-29T19:48:00.995Z');
INSERT INTO branches VALUES('iTtVoNfVBdex','d04CnuZxPXj2','nUgD4SYx2gt7',0,NULL,1,0,'2018-08-30T07:57:39.090Z','YuZ73fj3vz','2018-08-29T19:58:59.136Z');
INSERT INTO branches VALUES('7XqFyRCCbbFR','Lom0LEnCes1l','nUgD4SYx2gt7',1,NULL,0,0,'2018-08-30T08:04:45.853Z','xPKVn25yMG','2018-08-29T19:43:44.024Z');
INSERT INTO branches VALUES('5OwmqXXREhwW','uP3V8BqwXC05','sXti7HgialF2',2,'TODO',NULL,0,'2018-08-30T08:04:55.389Z','SBwS31n2Cp','2018-08-29T19:43:02.012Z');
INSERT INTO branches VALUES('Bu2TmxdlNlTi','i3cLVxiO6GlW','1Heh2acXfPNt',3,NULL,0,0,'2018-09-01T11:47:59.762Z','imw6rHOkkw','2018-09-01T11:47:52.505Z');
INSERT INTO branches VALUES('MKMv2KLxfXhp','7YEYLSrnFpIi','3RkyK9LI18dO',3,NULL,0,0,'2018-09-10T22:00:30.553Z','c8DQDwMIOI','2018-09-10T22:00:30.553Z');

2
db/main_images.sql Normal file

File diff suppressed because one or more lines are too long

2
db/main_note_images.sql Normal file
View File

@@ -0,0 +1,2 @@
INSERT INTO note_images VALUES('2EtgRRPfk4Fi','1Heh2acXfPNt','ed64aET6i379',0,'2018-01-08T04:41:30.663Z','2018-01-08T04:41:30.663Z','');
INSERT INTO note_images VALUES('T7qQAw9BVi0E','prjUbW6QtsL4','0mLHhGv61RDM',0,'2018-08-30T07:53:53.165Z','2018-08-30T07:53:53.164Z','lSz2qni/Rx');

File diff suppressed because one or more lines are too long

View File

@@ -1,52 +0,0 @@
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('dLgtLUFn3GoN', '1Heh2acXfPNt', 'root', 21, null, 1, 0, '2017-12-23T00:46:39.304Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('QLfS835GSfIh', '3RkyK9LI18dO', '1Heh2acXfPNt', 1, null, 1, 0, '2017-12-23T01:20:04.181Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('QJAcYJ1gGUh9', 'L1Ox40M1aEyy', '3RkyK9LI18dO', 0, null, 0, 0, '2017-12-23T01:20:45.365Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('wLTa2l3lYi83', 'HJusZTbBU494', '3RkyK9LI18dO', 2, null, 1, 0, '2017-12-23T01:20:50.709Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('yMhwsE7uvEij', '3oldoiMUPOlr', 'HJusZTbBU494', 1, null, 1, 0, '2017-12-23T01:20:55.775Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('EjQTcVVHFmmZ', 'MG0wntwILQW6', '3oldoiMUPOlr', 1, null, 1, 0, '2017-12-23T01:21:10.517Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('jvhKcwz4pYTr', 'ZC78NlmdXeC6', 'WdWZFuWNVDZk', 0, null, 1, 0, '2017-12-23T04:06:21.579Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('CarTrwkGVcPz', 'NncfGH8dyNjJ', 'WdWZFuWNVDZk', 1, null, 0, 0, '2017-12-23T04:06:24.012Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('6M7qPlr7at6N', 'eouCLkjbruai', 'NncfGH8dyNjJ', 0, null, 0, 0, '2017-12-23T01:23:28.291Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('tQgognnAH9WI', 'C44aq4mkaX67', 'NncfGH8dyNjJ', 1, null, 0, 0, '2017-12-23T01:23:31.879Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('xyAi7MmgvAgR', 'C44aq4mkaX67', 'ZC78NlmdXeC6', 1, null, 0, 0, '2017-12-23T01:23:47.756Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('xQ3fjRp9yaPq', 'I6Cw88AirBBl', 'C44aq4mkaX67', 0, null, 0, 0, '2017-12-23T01:24:04.681Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('2GOsNT5LsvTP', 'mcEwFMSjhlvL', 'C44aq4mkaX67', 1, null, 0, 0, '2017-12-23T01:29:35.974Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('RxUiraiR655R', 'CF2lUIJAr6Ey', 'NncfGH8dyNjJ', 2, null, 0, 0, '2017-12-23T01:34:37.658Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('mZuSrZ18Zmv0', 'xkXwueRoDNeN', 'MG0wntwILQW6', 0, null, 0, 0, '2017-12-23T01:35:40.306Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('hbcWTnEnXPwF', 'eXHZAKsMYgur', '1Heh2acXfPNt', 3, null, 1, 0, '2017-12-23T03:32:42.868Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('8a3aNxjG0nu7', '2WU27ekfy07E', 'eXHZAKsMYgur', 0, null, 0, 0, '2017-12-23T03:32:49.379Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('4Tu6vaPdCxCM', 'TjWEndYCCg7g', 'eXHZAKsMYgur', 1, null, 0, 0, '2017-12-23T03:33:23.584Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('lBPOmhP12egP', '8nRNDJGyGs2Z', 'TjWEndYCCg7g', 0, null, 0, 0, '2017-12-23T03:33:37.327Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('C5ipVqeDWySp', '9zSwD89vgzNO', '8nRNDJGyGs2Z', 0, null, 0, 0, '2017-12-23T03:37:04.912Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('uSitzbGcSATJ', 'u5t1EvWa3CMO', 'TjWEndYCCg7g', 1, null, 0, 0, '2017-12-23T03:39:21.918Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('GZ6aRI8rdSJt', '8nRNDJGyGs2Z', 'MG0wntwILQW6', 1, '', 0, 0, '2017-12-23T03:42:28.310Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('HsN4600rQoL9', 'Iha4YwchR413', '3oldoiMUPOlr', 0, null, 1, 0, '2017-12-23T03:44:30.945Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('uipfvAfwWRgx', '6ZuXjCSWgjB4', 'HJusZTbBU494', 0, null, 0, 0, '2017-12-23T03:44:54.096Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('nMRpPWWH8WRk', 'GpGnjmcAPeWG', '6ZuXjCSWgjB4', 0, null, 1, 0, '2017-12-23T03:44:57.036Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('c4wt27WNjepw', '21K84UqGhqlt', 'GpGnjmcAPeWG', 0, null, 0, 0, '2017-12-23T03:45:10.933Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('0fpnraUGs9Kl', 'rz5t0r9Qr2WC', 'HJusZTbBU494', 2, null, 1, 0, '2017-12-23T03:45:20.914Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('d8L8zYlLTbym', 'R6pheWjdwmNU', 'rz5t0r9Qr2WC', 0, null, 1, 0, '2017-12-23T03:45:28.002Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('T4USGzfllu5t', '5v5Dx6LMHXIO', 'Iha4YwchR413', 0, null, 0, 0, '2017-12-23T03:45:44.184Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('c4JgFNIobvQW', 'MLQjmREtcnJ3', 'R6pheWjdwmNU', 0, null, 0, 0, '2017-12-23T03:47:48.208Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('nfWjptAU2ZDg', 'pTTjrxgnvURB', 'R6pheWjdwmNU', 1, null, 0, 0, '2017-12-23T03:47:55.932Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('T2ToYBfyPy0g', 'cFK9sGYZaMWs', 'rz5t0r9Qr2WC', 1, null, 0, 0, '2017-12-23T03:49:32.210Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('NG4gbKOnsM3v', '21K84UqGhqlt', 'MLQjmREtcnJ3', 0, '28. 11. 2017', 0, 0, '2017-12-23T03:53:38.110Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('Fstg4tkccO4N', '5v5Dx6LMHXIO', 'MLQjmREtcnJ3', 1, '21. 12. 2017', 0, 0, '2017-12-23T03:53:49.737Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('MN8B7qXDUViO', 'xkXwueRoDNeN', 'MLQjmREtcnJ3', 2, '22. 12. 2017', 0, 0, '2017-12-23T03:53:57.486Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('gSRkHpB7Bu3D', 'pOFVzbXLmzhX', 'R6pheWjdwmNU', 2, null, 0, 0, '2017-12-23T03:54:46.138Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('6brdjeWDOB6w', '0xtvjqrcGiRB', 'ZC78NlmdXeC6', 0, null, 0, 0, '2017-12-23T04:02:06.650Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('AqKUM2zUVFUF', 'Zl69uXBSen0w', 'ZC78NlmdXeC6', 2, null, 1, 0, '2017-12-23T04:02:16.685Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('Ez7NN2WVzRc4', '62BKAQMVP2KW', 'Zl69uXBSen0w', 1, null, 0, 0, '2017-12-23T04:02:39.164Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('t3vVElqMIQVa', 'h4OfLEAYspud', 'WdWZFuWNVDZk', 2, null, 1, 0, '2017-12-23T04:06:25.769Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('O983DHtLpgmr', '1hASbLRDL7oo', 'h4OfLEAYspud', 0, null, 0, 0, '2017-12-23T16:42:26.347Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('RsvL795Mk1bp', '1hASbLRDL7oo', 'GpGnjmcAPeWG', 1, '', 0, 0, '2017-12-23T04:04:56.830Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('79e4hrHLFmx6', 'jyqG9GucsMdn', 'Iha4YwchR413', 1, null, 0, 0, '2017-12-23T04:05:16.439Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('oWO8rctUjf7d', 'WdWZFuWNVDZk', '1Heh2acXfPNt', 5, null, 1, 0, '2017-12-23T04:06:16.179Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('GOxcrZrxalFN', 'yK4SBJfwD3tY', '1Heh2acXfPNt', 8, null, 1, 0, '2017-12-23T04:06:32.833Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('bSPmEvjLzQKU', 'r4BnsmSQeVr1', 'yK4SBJfwD3tY', 0, null, 0, 0, '2017-12-23T04:06:37.427Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('bMtxCD6cwNR9', 'QbL3pTvhgzM8', 'yK4SBJfwD3tY', 2, null, 0, 0, '2017-12-23T04:06:43.841Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('o4ycR7xIi4oI', 'moMbTKwN15Ps', 'yK4SBJfwD3tY', 3, null, 1, 0, '2017-12-23T04:06:49.331Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('abTEhnOsAsSg', 'PEGQGg0In3Ar', 'GpGnjmcAPeWG', 2, null, 0, 0, '2017-12-23T16:44:35.900Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('bryQseMhyzaI', 'IlULcDiOTI4K', '1Heh2acXfPNt', 0, null, 0, 0, '2017-12-23T18:04:26.439Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('ccslPJf3wQV3', 'vBv6ovBupfTj', 'IlULcDiOTI4K', 0, null, 0, 0, '2017-12-23T18:04:50.904Z');
INSERT INTO notes_tree (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified) VALUES ('5Dt9YCMn59sY', 'mw4f2xB4J5fV', 'IlULcDiOTI4K', 1, null, 0, 0, '2017-12-23T18:05:24.868Z');

View File

@@ -17,7 +17,7 @@ module.exports = async () => {
const password = await question("Enter password: ");
const dataKey = await password_encryption.getDecryptedDataKey(password);
const protectedNotes = await sql.getAll("SELECT * FROM notes WHERE is_protected = 1");
const protectedNotes = await sql.getRows("SELECT * FROM notes WHERE is_protected = 1");
for (const note of protectedNotes) {
const decryptedTitle = data_encryption.decrypt(dataKey, note.note_title);
@@ -30,7 +30,7 @@ module.exports = async () => {
await sql.execute("UPDATE notes SET note_title = ?, note_text = ? WHERE note_id = ?", [note.note_title, note.note_text, note.note_id]);
}
const protectedNotesHistory = await sql.getAll("SELECT * FROM notes_history WHERE is_protected = 1");
const protectedNotesHistory = await sql.getRows("SELECT * FROM notes_history WHERE is_protected = 1");
for (const noteHistory of protectedNotesHistory) {
const decryptedTitle = data_encryption.decrypt(dataKey, noteHistory.note_title);

View File

@@ -0,0 +1,6 @@
DROP INDEX IDX_notes_tree_note_id_parent_note_id;
CREATE UNIQUE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
`note_id`,
`parent_note_id`
);

View File

@@ -0,0 +1,9 @@
DROP INDEX IDX_notes_tree_note_id_parent_note_id;
CREATE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
`note_id`,
`parent_note_id`
);
-- dropping this as it's just duplicate of primary key
DROP INDEX IDX_notes_tree_note_tree_id;

View File

@@ -0,0 +1,11 @@
CREATE TABLE images
(
image_id TEXT PRIMARY KEY NOT NULL,
format TEXT NOT NULL,
checksum TEXT NOT NULL,
name TEXT NOT NULL,
data BLOB,
is_deleted INT NOT NULL DEFAULT 0,
date_modified TEXT NOT NULL,
date_created TEXT NOT NULL
);

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