mirror of
https://github.com/zadam/trilium.git
synced 2025-10-26 15:56:29 +01:00
Compare commits
1219 Commits
v0.36.2
...
v0.44.0-be
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bdfb6e11f | ||
|
|
11c63b7778 | ||
|
|
befec48506 | ||
|
|
15d94e91db | ||
|
|
7787fa1758 | ||
|
|
0bd9b849b2 | ||
|
|
918e827d91 | ||
|
|
42ecc0e15b | ||
|
|
a37fa0cb3f | ||
|
|
647863b489 | ||
|
|
e8114fcc4f | ||
|
|
0745d9ec0b | ||
|
|
5e75d2380a | ||
|
|
32c88c7481 | ||
|
|
0aef99b98e | ||
|
|
bf548f9d38 | ||
|
|
a15f8d7e11 | ||
|
|
574b71de63 | ||
|
|
408ed8dbf0 | ||
|
|
98f1bc51a5 | ||
|
|
f3efb22a50 | ||
|
|
5fd58def11 | ||
|
|
b793f8cb88 | ||
|
|
058edcfe15 | ||
|
|
5d500de527 | ||
|
|
81207f3d27 | ||
|
|
21575d862b | ||
|
|
9359f05335 | ||
|
|
7fb22d41a0 | ||
|
|
2823bf3488 | ||
|
|
172f3689fa | ||
|
|
5a8c3f6a2b | ||
|
|
416b7088c5 | ||
|
|
3f69a3c572 | ||
|
|
268910ed3b | ||
|
|
8259b4a32c | ||
|
|
9873dd1242 | ||
|
|
f4266754d8 | ||
|
|
30e84321f9 | ||
|
|
020a8766c8 | ||
|
|
dc288fb18c | ||
|
|
26dfa1ffdb | ||
|
|
d4e1900f89 | ||
|
|
4cd1a0ee7d | ||
|
|
355780c595 | ||
|
|
ef996f3919 | ||
|
|
445902d081 | ||
|
|
31d85ed8cc | ||
|
|
c8af250caa | ||
|
|
b7b13c1d8b | ||
|
|
b05b9196a0 | ||
|
|
fbe3995398 | ||
|
|
6aa61ca306 | ||
|
|
87161cfe0d | ||
|
|
6a3e27eb62 | ||
|
|
b7947a40ea | ||
|
|
1d813c82e4 | ||
|
|
46e373e822 | ||
|
|
a6c79c934c | ||
|
|
08c612c876 | ||
|
|
ed6181a85e | ||
|
|
0533b95562 | ||
|
|
5b4826fd08 | ||
|
|
60e213433b | ||
|
|
153de63f4d | ||
|
|
4d4d9f2000 | ||
|
|
0b38e24185 | ||
|
|
d037420acb | ||
|
|
20b4b059e3 | ||
|
|
28ebca1268 | ||
|
|
a89629b3de | ||
|
|
eec850c11f | ||
|
|
52e0f838a9 | ||
|
|
d1f70efdb4 | ||
|
|
5b1e229d7d | ||
|
|
5c55278c59 | ||
|
|
3c224e80ee | ||
|
|
5741b380f0 | ||
|
|
7335844ae3 | ||
|
|
53c361945b | ||
|
|
03d7ee9abb | ||
|
|
3670fbff49 | ||
|
|
f24e27dadd | ||
|
|
53b39e2e82 | ||
|
|
c20577909c | ||
|
|
a87b710626 | ||
|
|
625483a8f2 | ||
|
|
121c819b79 | ||
|
|
77a3bdce1f | ||
|
|
827f8b42a0 | ||
|
|
b815e10ff3 | ||
|
|
c2789bf355 | ||
|
|
e8d63b5647 | ||
|
|
53c6542af6 | ||
|
|
d9c246f8a7 | ||
|
|
803694d113 | ||
|
|
f6f9f0d2c0 | ||
|
|
47a9516ada | ||
|
|
bd8b83898f | ||
|
|
97109efb6c | ||
|
|
b4d9fdaeda | ||
|
|
1810116a34 | ||
|
|
3e89855aa3 | ||
|
|
eaac65142f | ||
|
|
ae909d1079 | ||
|
|
935e5de493 | ||
|
|
8d0df6ddb9 | ||
|
|
3b148eb6f8 | ||
|
|
4e8d1dac67 | ||
|
|
7779fd1dfe | ||
|
|
960d7dede3 | ||
|
|
e663d7da1b | ||
|
|
02cc52af66 | ||
|
|
f60af1f05e | ||
|
|
224fbdc8cd | ||
|
|
8561201abc | ||
|
|
3c1a809276 | ||
|
|
ddf0a89e1f | ||
|
|
4b101baf00 | ||
|
|
782127dd91 | ||
|
|
7900622f38 | ||
|
|
864271d5ef | ||
|
|
5a5ea4f474 | ||
|
|
749791f6d1 | ||
|
|
5ca3e9a0bc | ||
|
|
f4a4e746bf | ||
|
|
4fc8bace94 | ||
|
|
47a22f6e8d | ||
|
|
17d7ff3ff1 | ||
|
|
3582013a33 | ||
|
|
95bbdb3b6b | ||
|
|
e1dd933ec0 | ||
|
|
8a57960c6e | ||
|
|
a7b62b30cb | ||
|
|
c9cbc2db02 | ||
|
|
c92526372c | ||
|
|
5f4a84d967 | ||
|
|
ef59810f89 | ||
|
|
099e90ed64 | ||
|
|
9b15437ff6 | ||
|
|
a3a2f1a2b4 | ||
|
|
3261fea67f | ||
|
|
b19589033d | ||
|
|
2217c5a3e0 | ||
|
|
b60efbbf5a | ||
|
|
e9bfe4521e | ||
|
|
79d9d79055 | ||
|
|
a36022d8c1 | ||
|
|
0eb77e43e2 | ||
|
|
e1d4be814f | ||
|
|
aa4a645670 | ||
|
|
2c9565b4b3 | ||
|
|
c5cc6b91c1 | ||
|
|
3109233d4f | ||
|
|
60e8bd98b9 | ||
|
|
32ecb43b5c | ||
|
|
f03e4bc7d7 | ||
|
|
4e5ddaf7d1 | ||
|
|
35469f6f2d | ||
|
|
4c7b1d6543 | ||
|
|
df69b1d8dd | ||
|
|
9d46c7253b | ||
|
|
a94ae81c30 | ||
|
|
9f527f0330 | ||
|
|
68d8b1c8a9 | ||
|
|
0ab9d02434 | ||
|
|
3d324b954d | ||
|
|
f028b88cce | ||
|
|
64dc522b27 | ||
|
|
3d02f82c77 | ||
|
|
528418aecb | ||
|
|
5dd73562da | ||
|
|
62cacf85ed | ||
|
|
443f389d73 | ||
|
|
08edc521e4 | ||
|
|
f54f6d09b0 | ||
|
|
3219441fdf | ||
|
|
1c97310e92 | ||
|
|
0ecb2f3662 | ||
|
|
055db32510 | ||
|
|
054420225f | ||
|
|
448a3254a3 | ||
|
|
b2c0eaeaf8 | ||
|
|
1b0a2b41da | ||
|
|
50b976990c | ||
|
|
9f2545395d | ||
|
|
67bffbf30b | ||
|
|
51dae378a3 | ||
|
|
a0b3bc858d | ||
|
|
2e24111c2b | ||
|
|
69d529ada1 | ||
|
|
bfa69a3dc3 | ||
|
|
5b862c3d29 | ||
|
|
dee4083bf3 | ||
|
|
18749092ff | ||
|
|
c4cc48dfc9 | ||
|
|
ef847b9904 | ||
|
|
3e189d5c10 | ||
|
|
46d3160da4 | ||
|
|
78a2c1753e | ||
|
|
f0b608ddec | ||
|
|
582429e762 | ||
|
|
bf073690e0 | ||
|
|
c012620338 | ||
|
|
5e18e7dc67 | ||
|
|
51f094f87f | ||
|
|
262a4fa3c7 | ||
|
|
c778e87683 | ||
|
|
dd62b306fd | ||
|
|
1f05638609 | ||
|
|
92e49214c7 | ||
|
|
9615e25a67 | ||
|
|
a574fce13f | ||
|
|
238df0fb40 | ||
|
|
89356918f1 | ||
|
|
263b65997c | ||
|
|
2b757bfccd | ||
|
|
99d66ea89f | ||
|
|
c78ca4c9db | ||
|
|
b245b249d3 | ||
|
|
a0395e9866 | ||
|
|
89aa4fbc73 | ||
|
|
74a7802088 | ||
|
|
a89b6711d1 | ||
|
|
b2549b2834 | ||
|
|
959c4cbe64 | ||
|
|
d03d3603d2 | ||
|
|
22302e8200 | ||
|
|
f117ae4915 | ||
|
|
c34a9b96e4 | ||
|
|
f0acfaf147 | ||
|
|
e1c2573778 | ||
|
|
56d6384ae1 | ||
|
|
5f699cc28c | ||
|
|
969f31dde2 | ||
|
|
027afab6b1 | ||
|
|
6207203b35 | ||
|
|
88348c560c | ||
|
|
30062d687f | ||
|
|
ffc96ad6b2 | ||
|
|
2af2b45062 | ||
|
|
eabe4775bd | ||
|
|
da9b321aa0 | ||
|
|
7b0aa7ab0b | ||
|
|
f700e6e12b | ||
|
|
a87e59cecb | ||
|
|
a04aa6fd36 | ||
|
|
a7d9870846 | ||
|
|
c18d8d2d1b | ||
|
|
f745e21e0d | ||
|
|
5f2361ebd5 | ||
|
|
9791dab97d | ||
|
|
85d986534d | ||
|
|
00faf758e8 | ||
|
|
6ba2e5cf73 | ||
|
|
fb3876d28b | ||
|
|
fb975849b9 | ||
|
|
16fef78344 | ||
|
|
e0b4b369dc | ||
|
|
0df7851214 | ||
|
|
5d47c2b23e | ||
|
|
d09b021487 | ||
|
|
910bda860c | ||
|
|
2d92b4931a | ||
|
|
212b719ee9 | ||
|
|
1db892d22f | ||
|
|
535dcb6d12 | ||
|
|
4426362799 | ||
|
|
2c609e8136 | ||
|
|
11b73b79ed | ||
|
|
28dc6b93ca | ||
|
|
e70c862e72 | ||
|
|
b3e66d5a83 | ||
|
|
e8cd821e57 | ||
|
|
401a3f0ecb | ||
|
|
e73dffad0b | ||
|
|
ef1d062745 | ||
|
|
f245d51746 | ||
|
|
be7ac74235 | ||
|
|
ad48b59893 | ||
|
|
e817acba4e | ||
|
|
4ae965c5cb | ||
|
|
58fa0832f6 | ||
|
|
1502b9ce66 | ||
|
|
ed9fbae65d | ||
|
|
01a7af965c | ||
|
|
99120be46d | ||
|
|
915b1d1a45 | ||
|
|
e68aed2057 | ||
|
|
eedeaca37d | ||
|
|
7307ca385f | ||
|
|
c1fd9825aa | ||
|
|
9de7d3fc53 | ||
|
|
3c5db844ba | ||
|
|
e7330c1104 | ||
|
|
ec4586b164 | ||
|
|
91e5f24798 | ||
|
|
38723e0189 | ||
|
|
8c88ce6f65 | ||
|
|
0def5f9a63 | ||
|
|
4d22959e28 | ||
|
|
50a28d8c51 | ||
|
|
e25b633ec4 | ||
|
|
ac10701b55 | ||
|
|
75bd395669 | ||
|
|
5e353a5612 | ||
|
|
c0cd321118 | ||
|
|
d65624d8d2 | ||
|
|
6b359b7796 | ||
|
|
13f9d037dc | ||
|
|
1911d64c1c | ||
|
|
1c388c9805 | ||
|
|
6a957eff17 | ||
|
|
5aaa429203 | ||
|
|
d4c3f1b3f2 | ||
|
|
ae934720bc | ||
|
|
753c181979 | ||
|
|
55b210d7c5 | ||
|
|
dc2d5a0a79 | ||
|
|
c753f228ac | ||
|
|
a1a744bb00 | ||
|
|
077d19b44b | ||
|
|
b5627b138a | ||
|
|
cb4d0624b5 | ||
|
|
e2490f9975 | ||
|
|
9ede77aead | ||
|
|
8ce2afff8a | ||
|
|
a2e1fb35b8 | ||
|
|
bb03a8714a | ||
|
|
ae772288e2 | ||
|
|
355ffd3d02 | ||
|
|
3d12341ff1 | ||
|
|
4ea934509e | ||
|
|
3db84daf94 | ||
|
|
714881ad99 | ||
|
|
ee053b9fdf | ||
|
|
cd48135394 | ||
|
|
a06662f4ce | ||
|
|
2e6395ad88 | ||
|
|
75d8627f1c | ||
|
|
a8d12f723f | ||
|
|
08dbf90a8c | ||
|
|
32dde426fd | ||
|
|
b26100479d | ||
|
|
faf4daa577 | ||
|
|
2526715aa4 | ||
|
|
04c573e212 | ||
|
|
99aa481ace | ||
|
|
ef37bc1a99 | ||
|
|
58f4f5d1e6 | ||
|
|
b72dc977e6 | ||
|
|
81bf84f2de | ||
|
|
fa5d982a55 | ||
|
|
e77e0ce675 | ||
|
|
32eaafd024 | ||
|
|
60c2049729 | ||
|
|
dcd371b5b1 | ||
|
|
e3071e630a | ||
|
|
78ea0b4ba9 | ||
|
|
f07025f741 | ||
|
|
5f1f65a3c2 | ||
|
|
a3e2369599 | ||
|
|
1ec446137d | ||
|
|
108afe8896 | ||
|
|
a287bb59ea | ||
|
|
7992f32d34 | ||
|
|
b07accfd9d | ||
|
|
ccb5f3ee18 | ||
|
|
29e6b63f82 | ||
|
|
2818854c4b | ||
|
|
d75b770fb9 | ||
|
|
37da0adb8a | ||
|
|
13117d2e68 | ||
|
|
4f50864ec8 | ||
|
|
30b9ef8604 | ||
|
|
b063b4c528 | ||
|
|
b51f5ac6fd | ||
|
|
e08b0141a4 | ||
|
|
9d8b8e26a1 | ||
|
|
cb70109ee7 | ||
|
|
2e0fb8aaf1 | ||
|
|
ac4e6077bd | ||
|
|
8e8fa48241 | ||
|
|
e541abbd60 | ||
|
|
940a70adc5 | ||
|
|
9a662f76da | ||
|
|
88e8eb7e9c | ||
|
|
b365c186a1 | ||
|
|
15bc9dce1c | ||
|
|
552fc5261a | ||
|
|
83c9e6e846 | ||
|
|
2e837642e2 | ||
|
|
c70a842bc6 | ||
|
|
d20415c979 | ||
|
|
c3438e0f3f | ||
|
|
64c9734f05 | ||
|
|
48c843c087 | ||
|
|
1bb895bb83 | ||
|
|
0e4eec10b9 | ||
|
|
a3661cb763 | ||
|
|
115879ec4a | ||
|
|
f1ce0c7774 | ||
|
|
df11b076bc | ||
|
|
54ecd2ee75 | ||
|
|
2369bcf9fc | ||
|
|
5d8808a2ad | ||
|
|
62b993f06f | ||
|
|
8aa5608085 | ||
|
|
b452d7e5c5 | ||
|
|
a0f8caeccd | ||
|
|
edb9bc9229 | ||
|
|
9b9d6d86d0 | ||
|
|
7f2755d4a0 | ||
|
|
3b268cc8eb | ||
|
|
768ac83e14 | ||
|
|
6dfe335707 | ||
|
|
c7125d2b50 | ||
|
|
e8a33a5ee7 | ||
|
|
deb0b24c4c | ||
|
|
cafcb67a8a | ||
|
|
4c6e9480e4 | ||
|
|
109bead1c7 | ||
|
|
ae1220b970 | ||
|
|
b89a2df462 | ||
|
|
8b5536ee3a | ||
|
|
647790885d | ||
|
|
227c3e4dcc | ||
|
|
4eb2407c73 | ||
|
|
43e12fbea2 | ||
|
|
2a3091f788 | ||
|
|
742df25bc2 | ||
|
|
7ac2206e9b | ||
|
|
9be1d1f697 | ||
|
|
ed52f93bbb | ||
|
|
3466a19397 | ||
|
|
fe53e2351c | ||
|
|
5c35b870eb | ||
|
|
90d091aedb | ||
|
|
0a05a40186 | ||
|
|
7482ed063b | ||
|
|
70e343f2fc | ||
|
|
358f3a7291 | ||
|
|
6161b1c193 | ||
|
|
94b57dadd7 | ||
|
|
81fbefb9cd | ||
|
|
6d6695e3a9 | ||
|
|
4c308ad68f | ||
|
|
989a003d2f | ||
|
|
ccdb41841e | ||
|
|
0a94622413 | ||
|
|
5769587305 | ||
|
|
ffbfccb701 | ||
|
|
56ce23fc36 | ||
|
|
cba7e5a59f | ||
|
|
86cf8f3202 | ||
|
|
907cdd8fcb | ||
|
|
7ea53d468e | ||
|
|
586d6b4557 | ||
|
|
8f68ff1932 | ||
|
|
a1ea2c9115 | ||
|
|
e8ce81a133 | ||
|
|
aff12950f0 | ||
|
|
75c58cbf79 | ||
|
|
87a1e98fa2 | ||
|
|
d1eacbb574 | ||
|
|
71d248cd87 | ||
|
|
ac608b9334 | ||
|
|
32020d78b5 | ||
|
|
ff853c7d0a | ||
|
|
8526cb2315 | ||
|
|
dc89f72e75 | ||
|
|
657ff16267 | ||
|
|
ed759f5585 | ||
|
|
a86177bb59 | ||
|
|
9f1b3cc892 | ||
|
|
8473f72ec8 | ||
|
|
666d202a3a | ||
|
|
988fae50cb | ||
|
|
98bbd17920 | ||
|
|
dadcc93ae3 | ||
|
|
48e19d0149 | ||
|
|
f97c9e3619 | ||
|
|
61167f6646 | ||
|
|
29cec8112e | ||
|
|
48aadc8309 | ||
|
|
b2508db9af | ||
|
|
87510fd72b | ||
|
|
339f212e4c | ||
|
|
3c311cd2a4 | ||
|
|
b5bf581bd9 | ||
|
|
242f139be4 | ||
|
|
6c76d862d2 | ||
|
|
62bc05134e | ||
|
|
50d3928dd5 | ||
|
|
44d641617e | ||
|
|
f3b84e5185 | ||
|
|
34b8979016 | ||
|
|
6c188982b3 | ||
|
|
1175a8ee49 | ||
|
|
9c04ef9fb7 | ||
|
|
6cc3e3cdf6 | ||
|
|
f8bd55374f | ||
|
|
3ccb1c6ac1 | ||
|
|
d34d265d01 | ||
|
|
c063f75f48 | ||
|
|
2d1f3b7633 | ||
|
|
3772d97dfa | ||
|
|
5c0355718f | ||
|
|
081693f263 | ||
|
|
8d312515dd | ||
|
|
7bd05415fa | ||
|
|
8d7687f354 | ||
|
|
42128c007f | ||
|
|
dfb97d64f7 | ||
|
|
b1bed18331 | ||
|
|
ae50c9847d | ||
|
|
6201dd70a0 | ||
|
|
451c408063 | ||
|
|
3bbb213f82 | ||
|
|
bab657e43d | ||
|
|
4b24d9562c | ||
|
|
a73739d03e | ||
|
|
4485650cbc | ||
|
|
58f610b2c6 | ||
|
|
5024454914 | ||
|
|
ca0e36ea81 | ||
|
|
c9b2ff05e9 | ||
|
|
0973498fe9 | ||
|
|
189202b1f6 | ||
|
|
cc298b1e7a | ||
|
|
f8bd6183bf | ||
|
|
ef60cb5395 | ||
|
|
b10c083560 | ||
|
|
8eeb395523 | ||
|
|
084882a50e | ||
|
|
7c04521e9c | ||
|
|
0a0de7312c | ||
|
|
37255243f7 | ||
|
|
b4b22d9353 | ||
|
|
d3eb640aa2 | ||
|
|
78d431387b | ||
|
|
c4bc53da59 | ||
|
|
34de8fb874 | ||
|
|
5a6ab68144 | ||
|
|
c4e5b35187 | ||
|
|
2e55d544f1 | ||
|
|
b778985b5e | ||
|
|
f9a79fa00f | ||
|
|
ef61e22f1f | ||
|
|
8a92786012 | ||
|
|
a856463173 | ||
|
|
cb168218fb | ||
|
|
978575498c | ||
|
|
8584de27ab | ||
|
|
a36d6bf9be | ||
|
|
9b17e9976e | ||
|
|
d927865cbd | ||
|
|
6de0b19569 | ||
|
|
84d7097b1a | ||
|
|
8ccc48c25d | ||
|
|
438da7cfbb | ||
|
|
af5c4b5859 | ||
|
|
04360381b6 | ||
|
|
45e2dc96fb | ||
|
|
ff426fc1fc | ||
|
|
6dfc2755e7 | ||
|
|
789f12ac8f | ||
|
|
9a1a76605a | ||
|
|
debce78c7f | ||
|
|
48c57c7ce7 | ||
|
|
4a89df7ebf | ||
|
|
6295a1825d | ||
|
|
280955b3a2 | ||
|
|
72cc54a83f | ||
|
|
c3b44b9a91 | ||
|
|
8a9875ecfa | ||
|
|
9230b07adb | ||
|
|
5a6066dcd1 | ||
|
|
d4d54c5f01 | ||
|
|
141d4593ca | ||
|
|
a7ddc33b6d | ||
|
|
173030e02e | ||
|
|
8ae78a9e23 | ||
|
|
babc27f824 | ||
|
|
2c7eb723d5 | ||
|
|
40247a591e | ||
|
|
3a4d32f163 | ||
|
|
7f2c859b94 | ||
|
|
a5764c269f | ||
|
|
6a1bfdeab9 | ||
|
|
6de0f75931 | ||
|
|
fcf72262bd | ||
|
|
114017147f | ||
|
|
a717ee00fb | ||
|
|
f5e27278ab | ||
|
|
2cc0442ef2 | ||
|
|
687a466a35 | ||
|
|
20c24e26cc | ||
|
|
3bafc396fc | ||
|
|
08606f7d88 | ||
|
|
3fa3e912a4 | ||
|
|
44219e7ccc | ||
|
|
48abd765c6 | ||
|
|
2d38706ba8 | ||
|
|
8d45662bee | ||
|
|
dc4024b6de | ||
|
|
5b67854cbe | ||
|
|
72745aca29 | ||
|
|
e6e41adad0 | ||
|
|
bcbf1b79c3 | ||
|
|
1d78432df4 | ||
|
|
c6d912dcb7 | ||
|
|
eb287917c1 | ||
|
|
da53c1eaa8 | ||
|
|
c67613a557 | ||
|
|
0ca107ff48 | ||
|
|
73bf2dcb02 | ||
|
|
719f10981e | ||
|
|
1774f48d07 | ||
|
|
deb67d6275 | ||
|
|
bafd829ff6 | ||
|
|
e7aa84435b | ||
|
|
493d088d80 | ||
|
|
5f4d963580 | ||
|
|
5114f3f782 | ||
|
|
53f5df4e88 | ||
|
|
e4039ea5e1 | ||
|
|
95fef8d2e5 | ||
|
|
7105b61aab | ||
|
|
78a50be663 | ||
|
|
3d3ad3b99b | ||
|
|
0d9cdcac85 | ||
|
|
c4f7bb37db | ||
|
|
81ec85083a | ||
|
|
62da383623 | ||
|
|
8513e0201c | ||
|
|
abd60581be | ||
|
|
aff02184f8 | ||
|
|
8909d175d0 | ||
|
|
091eb8f791 | ||
|
|
e10d23289e | ||
|
|
26599f057c | ||
|
|
4e0e2e8926 | ||
|
|
9c631e4398 | ||
|
|
687539cc95 | ||
|
|
03e0c98066 | ||
|
|
77f358b846 | ||
|
|
4c82e882e0 | ||
|
|
0f4ba43463 | ||
|
|
f15239c006 | ||
|
|
ed1b5e3843 | ||
|
|
607bdfef92 | ||
|
|
4f744564f2 | ||
|
|
f64b343d8d | ||
|
|
47b803920b | ||
|
|
8888d04878 | ||
|
|
49398f5374 | ||
|
|
95d1952896 | ||
|
|
3ab2b41e8c | ||
|
|
e5155130e7 | ||
|
|
724ba352e6 | ||
|
|
1239293435 | ||
|
|
16f42dd4ab | ||
|
|
350331e2ef | ||
|
|
a2d6a5c3e9 | ||
|
|
cb35284d37 | ||
|
|
2af37640d8 | ||
|
|
4bd298a55b | ||
|
|
cd4b1235a7 | ||
|
|
5e3c85f891 | ||
|
|
b2a3e1cc04 | ||
|
|
d71763aedb | ||
|
|
368d0c55da | ||
|
|
637010577b | ||
|
|
7bcae9981b | ||
|
|
3752cf8cba | ||
|
|
7270bf287d | ||
|
|
d821ea4095 | ||
|
|
41d1d83dc2 | ||
|
|
a2fe110400 | ||
|
|
fdc99bb6f9 | ||
|
|
36eac6badd | ||
|
|
7cac2521ef | ||
|
|
e8a9e49e9e | ||
|
|
fb55cdaea6 | ||
|
|
b9b2cc8364 | ||
|
|
8dfdd090f5 | ||
|
|
fe7705524a | ||
|
|
8e77d729e5 | ||
|
|
2b1b7774f8 | ||
|
|
2d58019d6e | ||
|
|
fe31f08c0d | ||
|
|
d9fb36a9a6 | ||
|
|
52f4876f2d | ||
|
|
ad7a55d305 | ||
|
|
2e3534dfb7 | ||
|
|
d288c1b052 | ||
|
|
f2cf361acf | ||
|
|
e7af24c139 | ||
|
|
9797942b8e | ||
|
|
32d60a7eb9 | ||
|
|
4330dc47a0 | ||
|
|
8ca9ad3497 | ||
|
|
a679fedb58 | ||
|
|
880f4ad711 | ||
|
|
e000fb4579 | ||
|
|
22c042e21f | ||
|
|
2c3f07521d | ||
|
|
e06f3ef97e | ||
|
|
7e41a2750c | ||
|
|
b2a48a1f3a | ||
|
|
e1bf4dcbc9 | ||
|
|
6d847d22d3 | ||
|
|
9337564075 | ||
|
|
2fa41b44c5 | ||
|
|
8d2c2202fa | ||
|
|
380bb0cd01 | ||
|
|
789f62267c | ||
|
|
25553c9e67 | ||
|
|
81a54cd4a0 | ||
|
|
1d2fc773c2 | ||
|
|
7767edd82f | ||
|
|
99ea238c3f | ||
|
|
826c434630 | ||
|
|
4401a8e1e8 | ||
|
|
4ce4ac9584 | ||
|
|
88bd65c679 | ||
|
|
9eab3026bb | ||
|
|
7abaedbf31 | ||
|
|
402718d293 | ||
|
|
990a84c202 | ||
|
|
d8e181a828 | ||
|
|
4ec671d199 | ||
|
|
9f4a514562 | ||
|
|
18ee239362 | ||
|
|
08687b76ea | ||
|
|
60d07a6871 | ||
|
|
81f4966a1a | ||
|
|
9acf723a9a | ||
|
|
47f7f5f4d9 | ||
|
|
14d6372bd8 | ||
|
|
6d912c4897 | ||
|
|
62e1284790 | ||
|
|
d79ae261e1 | ||
|
|
92f6558e55 | ||
|
|
8d49249ed7 | ||
|
|
d1bb62c40e | ||
|
|
42017fde5f | ||
|
|
786bbbc160 | ||
|
|
0cc013c13f | ||
|
|
c5475765e5 | ||
|
|
9ea91f821c | ||
|
|
b757dfcf79 | ||
|
|
44ddcdd852 | ||
|
|
66204811cf | ||
|
|
822a8509b3 | ||
|
|
9f62490a75 | ||
|
|
b63ecba695 | ||
|
|
d5ae3802d1 | ||
|
|
7c6cd63a53 | ||
|
|
62a80ef016 | ||
|
|
27ab55d26a | ||
|
|
34150e7177 | ||
|
|
b946599320 | ||
|
|
3cd4be4e48 | ||
|
|
96e2b9bc18 | ||
|
|
adb8caa8a2 | ||
|
|
0054a32dc7 | ||
|
|
513ce1a183 | ||
|
|
9f38ea6ee7 | ||
|
|
0e13678f7c | ||
|
|
f0cbca2838 | ||
|
|
f6f7836b8e | ||
|
|
7651c53363 | ||
|
|
0f25c8a95f | ||
|
|
1a49894adf | ||
|
|
bd8c078fb9 | ||
|
|
6e060b87b8 | ||
|
|
2375b170ba | ||
|
|
eeedb91ef7 | ||
|
|
05b51c0f68 | ||
|
|
8bf794f13b | ||
|
|
48b401164a | ||
|
|
b65631be7e | ||
|
|
439b45b0b8 | ||
|
|
976b2aa6f5 | ||
|
|
88213c1bbd | ||
|
|
d2e3aedf7f | ||
|
|
368d3b1b97 | ||
|
|
9301679707 | ||
|
|
865f7e1ee1 | ||
|
|
c243d2e85c | ||
|
|
97a35d6fba | ||
|
|
3f0974d3d2 | ||
|
|
48a7c0235f | ||
|
|
ac7d5f2e81 | ||
|
|
516e6c35da | ||
|
|
7cad386a56 | ||
|
|
60c908cd63 | ||
|
|
52a907651e | ||
|
|
3254b551d8 | ||
|
|
7a62d1636b | ||
|
|
7d9b720ea8 | ||
|
|
ba500a3a80 | ||
|
|
606d5afcab | ||
|
|
4b66765cc1 | ||
|
|
8651e47118 | ||
|
|
34bc02965f | ||
|
|
eacefeb08b | ||
|
|
11a61325f9 | ||
|
|
370c63986d | ||
|
|
d103b16d9a | ||
|
|
c63bb7ce8a | ||
|
|
af5c623671 | ||
|
|
55d1f9e9f0 | ||
|
|
96a7b4e45e | ||
|
|
c83ca78565 | ||
|
|
c5eac8f438 | ||
|
|
9bc1f5af45 | ||
|
|
423a70d102 | ||
|
|
562c729ed6 | ||
|
|
0760dc742b | ||
|
|
1098d75ce0 | ||
|
|
bd8e5f255b | ||
|
|
8da094cd3c | ||
|
|
44dc3c28de | ||
|
|
828cce0d78 | ||
|
|
49c0d3199d | ||
|
|
416d733510 | ||
|
|
6de4914ea6 | ||
|
|
9f1e777e6d | ||
|
|
adb9ce5e93 | ||
|
|
746181689f | ||
|
|
a99c016818 | ||
|
|
37f279fab0 | ||
|
|
ab535bf147 | ||
|
|
1876664dfb | ||
|
|
1690248e24 | ||
|
|
cbeb8ea17e | ||
|
|
e355b449c4 | ||
|
|
4fdea77c57 | ||
|
|
9a13edd490 | ||
|
|
6d276582cb | ||
|
|
493730dff6 | ||
|
|
b00a9f4415 | ||
|
|
b25c1d6fa8 | ||
|
|
c9113ae752 | ||
|
|
0ec11d29ba | ||
|
|
a6cd25071e | ||
|
|
97b13ae91d | ||
|
|
0178232f26 | ||
|
|
cc138ef9f8 | ||
|
|
1552c3804d | ||
|
|
7963de0abc | ||
|
|
f98a20928c | ||
|
|
209b1610f6 | ||
|
|
bd0f7d3680 | ||
|
|
f852e1de81 | ||
|
|
c9770573b2 | ||
|
|
23701219e1 | ||
|
|
c9bc4ad108 | ||
|
|
8b9c235465 | ||
|
|
20fdeee048 | ||
|
|
657d01da95 | ||
|
|
17e2627a34 | ||
|
|
bf7541bfb9 | ||
|
|
9d81bf030d | ||
|
|
f25d735b9d | ||
|
|
4d16018f6c | ||
|
|
5e11840137 | ||
|
|
61474defff | ||
|
|
b12e38c231 | ||
|
|
d1f679ab90 | ||
|
|
0f8a7bad06 | ||
|
|
9e031dcd60 | ||
|
|
51c3f98dde | ||
|
|
a79a063d17 | ||
|
|
5e91b1b5e0 | ||
|
|
7877443fb4 | ||
|
|
759e47bfcf | ||
|
|
67bdffb27b | ||
|
|
3386dace3b | ||
|
|
f3a2e2cbde | ||
|
|
3cf3fc13b9 | ||
|
|
2b69abf8ab | ||
|
|
3e49a7dbfa | ||
|
|
4c7c3105e8 | ||
|
|
f782d2bef9 | ||
|
|
ccaa9eae3a | ||
|
|
24c5388e0c | ||
|
|
1cd2711097 | ||
|
|
f0dfe7d552 | ||
|
|
3b8b4da149 | ||
|
|
2150619d62 | ||
|
|
acb76e0630 | ||
|
|
fdb46f9329 | ||
|
|
ca587cccf6 | ||
|
|
571772069a | ||
|
|
79e7762c72 | ||
|
|
d025cfee1b | ||
|
|
7793552443 | ||
|
|
f377a84fa1 | ||
|
|
b8f2797abf | ||
|
|
54d89a9f47 | ||
|
|
1699646b39 | ||
|
|
94a0a31f17 | ||
|
|
10219fb9dd | ||
|
|
50431dd55a | ||
|
|
17b23d92ef | ||
|
|
14f3c783f2 | ||
|
|
c1d0a1e07b | ||
|
|
1d3608b7bf | ||
|
|
d0c655f66a | ||
|
|
ac75fd2ca3 | ||
|
|
3b98428c8c | ||
|
|
7d877d0fef | ||
|
|
cb79f2c7eb | ||
|
|
547a5714ae | ||
|
|
82420fe5f6 | ||
|
|
395913d1bb | ||
|
|
f3a29b55ba | ||
|
|
232321f3a4 | ||
|
|
51dddb0bbb | ||
|
|
8b9bf6e46f | ||
|
|
631a75deec | ||
|
|
3f1d0e5872 | ||
|
|
0fe91d0184 | ||
|
|
2f711a12f8 | ||
|
|
64f32ba38f | ||
|
|
7db4859fb9 | ||
|
|
eee9fcae5c | ||
|
|
9c4a976342 | ||
|
|
e4a09c6207 | ||
|
|
d467db2227 | ||
|
|
b8d6ff0542 | ||
|
|
a9b8e65c9b | ||
|
|
bb8b563ece | ||
|
|
05a8ffb944 | ||
|
|
2502646a64 | ||
|
|
3d95d69f80 | ||
|
|
df751f5d67 | ||
|
|
4f06b6de78 | ||
|
|
d2177cd517 | ||
|
|
0affcf5ad2 | ||
|
|
7a416b107b | ||
|
|
1ff124dab7 | ||
|
|
4cb511bad0 | ||
|
|
73c8d145fa | ||
|
|
ab79f24729 | ||
|
|
cec71f65b3 | ||
|
|
f75c008154 | ||
|
|
474baa7d95 | ||
|
|
a155b6e8d5 | ||
|
|
229974e543 | ||
|
|
6fc19bfb93 | ||
|
|
ccaa108faa | ||
|
|
0a72383495 | ||
|
|
d389100611 | ||
|
|
ea7257a5b2 | ||
|
|
0ebc947fbd | ||
|
|
c89514f9bb | ||
|
|
e0368e395c | ||
|
|
6986c201dd | ||
|
|
bcf163f8a1 | ||
|
|
15aaead7b9 | ||
|
|
d29c5c4758 | ||
|
|
81e2baeee5 | ||
|
|
4cececafc9 | ||
|
|
7c8e7a3f4b | ||
|
|
613d5f93e8 | ||
|
|
4f5b23fbf8 | ||
|
|
a37b9cfc7b | ||
|
|
2bc18bc214 | ||
|
|
f31a998c5d | ||
|
|
5552917533 | ||
|
|
a9702aa6a2 | ||
|
|
d1941cc650 | ||
|
|
f98fa4098f | ||
|
|
5350496ed4 | ||
|
|
b62d79044a | ||
|
|
0db3722ec2 | ||
|
|
d47403c0e7 | ||
|
|
77311954a1 | ||
|
|
b7cf4fe96b | ||
|
|
6d9b702d4c | ||
|
|
6e4c30571c | ||
|
|
5988776b7e | ||
|
|
384da60953 | ||
|
|
21fab412cb | ||
|
|
eb4dfbad92 | ||
|
|
aff9ce97ee | ||
|
|
b0a3f828fb | ||
|
|
76f5736255 | ||
|
|
a82066d899 | ||
|
|
45c5287d53 | ||
|
|
dce54c7af3 | ||
|
|
ee15db0ae1 | ||
|
|
c48dbb0913 | ||
|
|
882ebdbd8f | ||
|
|
6f32d6fabe | ||
|
|
1e123f2390 | ||
|
|
b29155775e | ||
|
|
b821ed28fc | ||
|
|
fdb8959aa1 | ||
|
|
7554cb057b | ||
|
|
fab959539a | ||
|
|
afe44a6fe8 | ||
|
|
7ed526beb7 | ||
|
|
af695802e3 | ||
|
|
156f040880 | ||
|
|
cf6f04defb | ||
|
|
a890b91079 | ||
|
|
e0aabe4f9c | ||
|
|
01cd9d8fb3 | ||
|
|
af10f0f52a | ||
|
|
aa5ede5039 | ||
|
|
21e77c83fc | ||
|
|
b0310e34e2 | ||
|
|
9812b9c272 | ||
|
|
92d5f91aa6 | ||
|
|
b0368c7f17 | ||
|
|
8e1f8c869b | ||
|
|
4688cda493 | ||
|
|
761c51069a | ||
|
|
4dc285d84f | ||
|
|
0e2f8b5734 | ||
|
|
a1402c7c66 | ||
|
|
6ba3e5ab7f | ||
|
|
f740e52ebf | ||
|
|
e9454e4db7 | ||
|
|
749bb90713 | ||
|
|
eb8c296e62 | ||
|
|
dc063983ea | ||
|
|
2595c3ac31 | ||
|
|
9cb8bc5dd8 | ||
|
|
3b690f5456 | ||
|
|
7ef2e7769f | ||
|
|
4c07ac4c4c | ||
|
|
35cd7f3261 | ||
|
|
8c3e2e5eb7 | ||
|
|
d57caee0d3 | ||
|
|
6e83980784 | ||
|
|
295af1f43e | ||
|
|
ed2afe5c20 | ||
|
|
bfc7570e14 | ||
|
|
d9b9d730bb | ||
|
|
ba8a8dca7b | ||
|
|
29eb5a8435 | ||
|
|
5de92171a7 | ||
|
|
29c5e394ab | ||
|
|
07b3d11fe5 | ||
|
|
67663fba50 | ||
|
|
995ebbf577 | ||
|
|
d0e6be3e0c | ||
|
|
01370a5968 | ||
|
|
6c561b5764 | ||
|
|
2953f1bdb8 | ||
|
|
1c057cac75 | ||
|
|
0415efd33b | ||
|
|
e58dc829f5 | ||
|
|
90d10c1ff3 | ||
|
|
5b30291601 | ||
|
|
5193f073e9 | ||
|
|
6c7d8a9667 | ||
|
|
5e9bedd903 | ||
|
|
e712990c03 | ||
|
|
91487b338a | ||
|
|
3ff24d53e5 | ||
|
|
94c904fb40 | ||
|
|
5f258fbbbf | ||
|
|
56c7b7f5bd | ||
|
|
bf9ad976b9 | ||
|
|
19206d1e0d | ||
|
|
420be6d8c6 | ||
|
|
dbd2040bee | ||
|
|
1e979d71c7 | ||
|
|
6bbd4c59bc | ||
|
|
3a54d00e2b | ||
|
|
499c9a7381 | ||
|
|
cd139bdd76 | ||
|
|
60c3b5cccc | ||
|
|
540f9f933a | ||
|
|
a59943094e | ||
|
|
c400a7143c | ||
|
|
1f37d00e42 | ||
|
|
d21e824343 | ||
|
|
ff3f0ee0a0 | ||
|
|
01ff34b5d4 | ||
|
|
0cde7ede24 | ||
|
|
92cb723d0c | ||
|
|
e4bec265c1 | ||
|
|
434d8ef48c | ||
|
|
c8ba07a4ae | ||
|
|
4da6234911 | ||
|
|
38e7649ac3 | ||
|
|
ff0245f05f | ||
|
|
7a2c7edd7e | ||
|
|
98c81faedb | ||
|
|
cfb850acb2 | ||
|
|
a16aaf7a81 | ||
|
|
465c3b87a7 | ||
|
|
0e5028acd3 | ||
|
|
00c295e4bf | ||
|
|
7084ed4fb1 | ||
|
|
587134c2f8 | ||
|
|
5fac2c7633 | ||
|
|
08a518479b | ||
|
|
522f71cb91 | ||
|
|
bcdfb47939 | ||
|
|
667471e7bb | ||
|
|
d357943ebb | ||
|
|
07043fb177 | ||
|
|
3c4ec7fe1a | ||
|
|
1f8d382b1f | ||
|
|
4bd7438fca | ||
|
|
0ae9c8da17 | ||
|
|
61e8cbbcba | ||
|
|
86c5dd6494 | ||
|
|
f921562346 | ||
|
|
c5acb7fc9b | ||
|
|
643d9077fc | ||
|
|
b4709e8ee5 | ||
|
|
a1181623b7 | ||
|
|
73a6c66379 | ||
|
|
1d5daa8dfd | ||
|
|
834e1f7253 | ||
|
|
c141f4b2c0 | ||
|
|
1a87190f43 | ||
|
|
a1262aaaf3 | ||
|
|
1838f097e5 | ||
|
|
95d0ad1cad | ||
|
|
767aaa18f4 | ||
|
|
8a7228146c | ||
|
|
f9b5e473f2 | ||
|
|
3d294c5163 | ||
|
|
60231de0ed | ||
|
|
35e9df6170 | ||
|
|
13c0411533 | ||
|
|
c5e040c4a4 | ||
|
|
e00ab5dbf9 | ||
|
|
95c37cfdd1 | ||
|
|
de02e9e889 | ||
|
|
e143becb7a | ||
|
|
c0eb30472e | ||
|
|
8b320bb85f | ||
|
|
d93b9b8a23 | ||
|
|
69b53fdfb3 | ||
|
|
920d71a5a6 | ||
|
|
d4a277321c | ||
|
|
4068691078 | ||
|
|
86d7e139a4 | ||
|
|
44add751b2 | ||
|
|
c49c69f824 | ||
|
|
7bd1d8feb4 | ||
|
|
4ba7e74b58 | ||
|
|
4cda661c1b | ||
|
|
5b4a2bd71c | ||
|
|
a808e12d31 | ||
|
|
1f3f9a4037 | ||
|
|
77ac8df1e6 | ||
|
|
b53e2a3570 | ||
|
|
7539e6a616 | ||
|
|
b5a0cadcf4 | ||
|
|
b8db842788 | ||
|
|
dea5195223 | ||
|
|
c3ea2ae1b3 | ||
|
|
1fddd6f318 | ||
|
|
466a4802b6 | ||
|
|
8f2d2b189c | ||
|
|
0837cabb41 | ||
|
|
5646218be8 | ||
|
|
169551c6a8 | ||
|
|
3a1c80c189 | ||
|
|
31bcc037f1 | ||
|
|
179d530ea9 | ||
|
|
da92809299 | ||
|
|
c2ebd4b308 | ||
|
|
9b24ae0600 | ||
|
|
7cd75cebfc | ||
|
|
664485ccd5 | ||
|
|
60ac1a04f4 | ||
|
|
7c7beb5502 | ||
|
|
5aa5ec3af1 | ||
|
|
58a857cf79 | ||
|
|
712f67e983 | ||
|
|
3149dff880 | ||
|
|
d58e98e361 | ||
|
|
744855d4f5 | ||
|
|
8a9f2ff1d8 | ||
|
|
f539aedd25 | ||
|
|
05547845cb | ||
|
|
9b905563c3 | ||
|
|
894c888d87 | ||
|
|
34d4274032 | ||
|
|
b685d7ffb5 | ||
|
|
d87c469fbb | ||
|
|
d8730f1722 | ||
|
|
72fda89360 | ||
|
|
7075842954 | ||
|
|
a2c78e2c5c | ||
|
|
9c9ef1c7b4 | ||
|
|
df40accdd4 | ||
|
|
b67aa99b86 | ||
|
|
5ecb881cec | ||
|
|
fcb6a06d68 | ||
|
|
5b5ab0b044 | ||
|
|
ab04bde5fb | ||
|
|
c9e4261930 | ||
|
|
9ea8209d4e | ||
|
|
56e50cc850 | ||
|
|
fc87bcf10c | ||
|
|
b471d51cb4 | ||
|
|
b7b583ff04 | ||
|
|
475fddeec1 | ||
|
|
2af86927b0 | ||
|
|
2e58e32112 | ||
|
|
5c05963bd9 | ||
|
|
4e5e3e4675 | ||
|
|
cf53cbf1dd |
3
.github/FUNDING.yml
vendored
Normal file
3
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
github: [zadam]
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
dist/
|
||||||
|
src/public/app-dist/
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
yarn-error.log
|
yarn-error.log
|
||||||
*.db
|
*.db
|
||||||
|
|||||||
3
.idea/.gitignore
generated
vendored
3
.idea/.gitignore
generated
vendored
@@ -2,4 +2,5 @@
|
|||||||
/workspace.xml
|
/workspace.xml
|
||||||
|
|
||||||
# Datasource local storage ignored files
|
# Datasource local storage ignored files
|
||||||
/dataSources.local.xml
|
/dataSources.local.xml
|
||||||
|
/dataSources/
|
||||||
|
|||||||
7
.idea/dataSources.xml
generated
7
.idea/dataSources.xml
generated
@@ -1,14 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||||
<data-source source="LOCAL" name="document.db" uuid="a2c75661-f9e2-478f-a69f-6a9409e69997">
|
<data-source source="LOCAL" name="document.db" uuid="4e69c96a-8a2b-43f5-9b40-d1608f75f7a4">
|
||||||
<driver-ref>sqlite.xerial</driver-ref>
|
<driver-ref>sqlite.xerial</driver-ref>
|
||||||
<synchronize>true</synchronize>
|
<synchronize>true</synchronize>
|
||||||
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
|
<jdbc-driver>org.sqlite.JDBC</jdbc-driver>
|
||||||
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/../trilium-data/document.db</jdbc-url>
|
<jdbc-url>jdbc:sqlite:$USER_HOME$/trilium-data/document.db</jdbc-url>
|
||||||
<driver-properties>
|
|
||||||
<property name="enable_load_extension" value="true" />
|
|
||||||
</driver-properties>
|
|
||||||
</data-source>
|
</data-source>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,590 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<dataSource name="document.db">
|
|
||||||
<database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.16">
|
|
||||||
<root id="1">
|
|
||||||
<ServerVersion>3.25.1</ServerVersion>
|
|
||||||
</root>
|
|
||||||
<schema id="2" parent="1" name="main">
|
|
||||||
<Current>1</Current>
|
|
||||||
</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="note_contents"/>
|
|
||||||
<table id="11" parent="2" name="note_revisions"/>
|
|
||||||
<table id="12" parent="2" name="notes"/>
|
|
||||||
<table id="13" parent="2" name="options"/>
|
|
||||||
<table id="14" parent="2" name="recent_notes"/>
|
|
||||||
<table id="15" parent="2" name="source_ids"/>
|
|
||||||
<table id="16" parent="2" name="sqlite_master">
|
|
||||||
<System>1</System>
|
|
||||||
</table>
|
|
||||||
<table id="17" parent="2" name="sqlite_sequence">
|
|
||||||
<System>1</System>
|
|
||||||
</table>
|
|
||||||
<table id="18" parent="2" name="sync"/>
|
|
||||||
<column id="19" parent="6" name="apiTokenId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="20" parent="6" name="token">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="21" parent="6" name="utcDateCreated">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="22" parent="6" name="isDeleted">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="23" parent="6" name="hash">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<index id="24" parent="6" name="sqlite_autoindex_api_tokens_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>apiTokenId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="25" parent="6">
|
|
||||||
<ColNames>apiTokenId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_api_tokens_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="26" parent="7" name="attributeId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="27" parent="7" name="noteId">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="28" parent="7" name="type">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="29" parent="7" name="name">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="30" parent="7" name="value">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>''</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="31" parent="7" name="position">
|
|
||||||
<Position>6</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="32" parent="7" name="utcDateCreated">
|
|
||||||
<Position>7</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="33" parent="7" name="utcDateModified">
|
|
||||||
<Position>8</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="34" parent="7" name="isDeleted">
|
|
||||||
<Position>9</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="35" parent="7" name="hash">
|
|
||||||
<Position>10</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="36" parent="7" name="isInheritable">
|
|
||||||
<Position>11</Position>
|
|
||||||
<DataType>int|0s</DataType>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<index id="37" parent="7" name="sqlite_autoindex_attributes_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>attributeId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<index id="38" parent="7" name="IDX_attributes_noteId_index">
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="39" parent="7" name="IDX_attributes_name_value">
|
|
||||||
<ColNames>name
|
|
||||||
value</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="40" parent="7" name="IDX_attributes_name_index">
|
|
||||||
<ColNames>name</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="41" parent="7" name="IDX_attributes_value_index">
|
|
||||||
<ColNames>value</ColNames>
|
|
||||||
</index>
|
|
||||||
<key id="42" parent="7">
|
|
||||||
<ColNames>attributeId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_attributes_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="43" parent="8" name="branchId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="44" parent="8" name="noteId">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="45" parent="8" name="parentNoteId">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="46" parent="8" name="notePosition">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>INTEGER|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="47" parent="8" name="prefix">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="48" parent="8" name="isExpanded">
|
|
||||||
<Position>6</Position>
|
|
||||||
<DataType>BOOLEAN|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="49" parent="8" name="isDeleted">
|
|
||||||
<Position>7</Position>
|
|
||||||
<DataType>INTEGER|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="50" parent="8" name="utcDateModified">
|
|
||||||
<Position>8</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="51" parent="8" name="utcDateCreated">
|
|
||||||
<Position>9</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="52" parent="8" name="hash">
|
|
||||||
<Position>10</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<index id="53" parent="8" name="sqlite_autoindex_branches_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>branchId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<index id="54" parent="8" name="IDX_branches_noteId_parentNoteId">
|
|
||||||
<ColNames>noteId
|
|
||||||
parentNoteId</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="55" parent="8" name="IDX_branches_noteId">
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="56" parent="8" name="IDX_branches_parentNoteId">
|
|
||||||
<ColNames>parentNoteId</ColNames>
|
|
||||||
</index>
|
|
||||||
<key id="57" parent="8">
|
|
||||||
<ColNames>branchId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_branches_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="58" parent="9" name="eventId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="59" parent="9" name="noteId">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="60" parent="9" name="comment">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="61" parent="9" name="utcDateCreated">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<index id="62" parent="9" name="sqlite_autoindex_event_log_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>eventId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="63" parent="9">
|
|
||||||
<ColNames>eventId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_event_log_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="64" parent="10" name="noteId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="65" parent="10" name="content">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<DefaultExpression>NULL</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="66" parent="10" name="hash">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="67" parent="10" name="utcDateModified">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<index id="68" parent="10" name="sqlite_autoindex_note_contents_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="69" parent="10">
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_note_contents_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="70" parent="11" name="noteRevisionId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="71" parent="11" name="noteId">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="72" parent="11" name="title">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="73" parent="11" name="content">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="74" parent="11" name="isProtected">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="75" parent="11" name="utcDateModifiedFrom">
|
|
||||||
<Position>6</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="76" parent="11" name="utcDateModifiedTo">
|
|
||||||
<Position>7</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="77" parent="11" name="dateModifiedFrom">
|
|
||||||
<Position>8</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="78" parent="11" name="dateModifiedTo">
|
|
||||||
<Position>9</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="79" parent="11" name="type">
|
|
||||||
<Position>10</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>''</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="80" parent="11" name="mime">
|
|
||||||
<Position>11</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>''</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="81" parent="11" name="hash">
|
|
||||||
<Position>12</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<index id="82" parent="11" name="sqlite_autoindex_note_revisions_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>noteRevisionId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<index id="83" parent="11" name="IDX_note_revisions_noteId">
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="84" parent="11" name="IDX_note_revisions_dateModifiedFrom">
|
|
||||||
<ColNames>utcDateModifiedFrom</ColNames>
|
|
||||||
</index>
|
|
||||||
<index id="85" parent="11" name="IDX_note_revisions_dateModifiedTo">
|
|
||||||
<ColNames>utcDateModifiedTo</ColNames>
|
|
||||||
</index>
|
|
||||||
<key id="86" parent="11">
|
|
||||||
<ColNames>noteRevisionId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_note_revisions_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="87" parent="12" name="noteId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="88" parent="12" name="title">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>"note"</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="89" parent="12" name="isProtected">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="90" parent="12" name="type">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>'text'</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="91" parent="12" name="mime">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>'text/html'</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="92" parent="12" name="hash">
|
|
||||||
<Position>6</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="93" parent="12" name="isDeleted">
|
|
||||||
<Position>7</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="94" parent="12" name="dateCreated">
|
|
||||||
<Position>8</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="95" parent="12" name="dateModified">
|
|
||||||
<Position>9</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="96" parent="12" name="utcDateCreated">
|
|
||||||
<Position>10</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="97" parent="12" name="utcDateModified">
|
|
||||||
<Position>11</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<index id="98" parent="12" name="sqlite_autoindex_notes_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="99" parent="12">
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_notes_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="100" parent="13" name="name">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="101" parent="13" name="value">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="102" parent="13" name="isSynced">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>INTEGER|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>0</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="103" parent="13" name="hash">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="104" parent="13" name="utcDateCreated">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="105" parent="13" name="utcDateModified">
|
|
||||||
<Position>6</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<index id="106" parent="13" name="sqlite_autoindex_options_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>name</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="107" parent="13">
|
|
||||||
<ColNames>name</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_options_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="108" parent="14" name="noteId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="109" parent="14" name="notePath">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="110" parent="14" name="hash">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<DefaultExpression>""</DefaultExpression>
|
|
||||||
</column>
|
|
||||||
<column id="111" parent="14" name="utcDateCreated">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="112" parent="14" name="isDeleted">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>INT|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<index id="113" parent="14" name="sqlite_autoindex_recent_notes_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="114" parent="14">
|
|
||||||
<ColNames>noteId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_recent_notes_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="115" parent="15" name="sourceId">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="116" parent="15" name="utcDateCreated">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<index id="117" parent="15" name="sqlite_autoindex_source_ids_1">
|
|
||||||
<NameSurrogate>1</NameSurrogate>
|
|
||||||
<ColNames>sourceId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<key id="118" parent="15">
|
|
||||||
<ColNames>sourceId</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
<UnderlyingIndexName>sqlite_autoindex_source_ids_1</UnderlyingIndexName>
|
|
||||||
</key>
|
|
||||||
<column id="119" parent="16" name="type">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>text|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="120" parent="16" name="name">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>text|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="121" parent="16" name="tbl_name">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>text|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="122" parent="16" name="rootpage">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>int|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="123" parent="16" name="sql">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>text|0s</DataType>
|
|
||||||
</column>
|
|
||||||
<column id="124" parent="17" name="name">
|
|
||||||
<Position>1</Position>
|
|
||||||
</column>
|
|
||||||
<column id="125" parent="17" name="seq">
|
|
||||||
<Position>2</Position>
|
|
||||||
</column>
|
|
||||||
<column id="126" parent="18" name="id">
|
|
||||||
<Position>1</Position>
|
|
||||||
<DataType>INTEGER|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
<SequenceIdentity>1</SequenceIdentity>
|
|
||||||
</column>
|
|
||||||
<column id="127" parent="18" name="entityName">
|
|
||||||
<Position>2</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="128" parent="18" name="entityId">
|
|
||||||
<Position>3</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="129" parent="18" name="sourceId">
|
|
||||||
<Position>4</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<column id="130" parent="18" name="utcSyncDate">
|
|
||||||
<Position>5</Position>
|
|
||||||
<DataType>TEXT|0s</DataType>
|
|
||||||
<NotNull>1</NotNull>
|
|
||||||
</column>
|
|
||||||
<index id="131" parent="18" name="IDX_sync_entityName_entityId">
|
|
||||||
<ColNames>entityName
|
|
||||||
entityId</ColNames>
|
|
||||||
<Unique>1</Unique>
|
|
||||||
</index>
|
|
||||||
<index id="132" parent="18" name="IDX_sync_utcSyncDate">
|
|
||||||
<ColNames>utcSyncDate</ColNames>
|
|
||||||
</index>
|
|
||||||
<key id="133" parent="18">
|
|
||||||
<ColNames>id</ColNames>
|
|
||||||
<Primary>1</Primary>
|
|
||||||
</key>
|
|
||||||
</database-model>
|
|
||||||
</dataSource>
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
#n:main
|
|
||||||
!<md> [0, 0, null, null, -2147483648, -2147483648]
|
|
||||||
1
.idea/inspectionProfiles/Project_Default.xml
generated
1
.idea/inspectionProfiles/Project_Default.xml
generated
@@ -1,6 +1,7 @@
|
|||||||
<component name="InspectionProjectProfileManager">
|
<component name="InspectionProjectProfileManager">
|
||||||
<profile version="1.0">
|
<profile version="1.0">
|
||||||
<option name="myName" value="Project Default" />
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="JSUnfilteredForInLoop" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
|
||||||
<option name="processCode" value="true" />
|
<option name="processCode" value="true" />
|
||||||
<option name="processLiterals" value="true" />
|
<option name="processLiterals" value="true" />
|
||||||
|
|||||||
1
.idea/vcs.xml
generated
1
.idea/vcs.xml
generated
@@ -2,5 +2,6 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="" vcs="Git" />
|
<mapping directory="" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
18
.vscode/launch.json
vendored
Normal file
18
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "start-server",
|
||||||
|
"skipFiles": [
|
||||||
|
"<node_internals>/**"
|
||||||
|
],
|
||||||
|
"env": {
|
||||||
|
"TRILIUM_ENV": "dev"
|
||||||
|
},
|
||||||
|
"outputCapture": "std",
|
||||||
|
"program": "${workspaceFolder}/src/www"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:12.13.0-alpine
|
FROM node:12.16.3-alpine
|
||||||
|
|
||||||
# Create app directory
|
# Create app directory
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ Trilium Notes is a hierarchical note taking application with focus on building l
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
* Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes))
|
* Notes can be arranged into arbitrarily deep tree. Single note can be placed into multiple places in the tree (see [cloning](https://github.com/zadam/trilium/wiki/Cloning-notes))
|
||||||
* Rich WYSIWYG note editing including e.g. tables and images with markdown [autoformat](https://github.com/zadam/trilium/wiki/Text-editor#autoformat)
|
* Rich WYSIWYG note editing including e.g. tables and images with markdown [autoformat](https://github.com/zadam/trilium/wiki/Text-notes#autoformat)
|
||||||
* Support for editing [notes with source code](https://github.com/zadam/trilium/wiki/Code-notes), including syntax highlighting
|
* Support for editing [notes with source code](https://github.com/zadam/trilium/wiki/Code-notes), including syntax highlighting
|
||||||
* Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation), full text search and [note hoisting](https://github.com/zadam/trilium/wiki/Note-hoisting)
|
* Fast and easy [navigation between notes](https://github.com/zadam/trilium/wiki/Note-navigation), full text search and [note hoisting](https://github.com/zadam/trilium/wiki/Note-hoisting)
|
||||||
* Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions)
|
* Seamless [note versioning](https://github.com/zadam/trilium/wiki/Note-revisions)
|
||||||
|
|||||||
13
SECURITY.md
Normal file
13
SECURITY.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
In the (still active) 0.X phase of the project only the latest stable minor release is getting bugfixes (including security ones).
|
||||||
|
|
||||||
|
So e.g. if the latest stable version is 0.42.3 and the latest beta version is 0.43.0-beta, then 0.42 line will still get security fixes but older versions (like 0.41.X) won't get any fixes.
|
||||||
|
|
||||||
|
Description above is a general rule and may be altered on case by case basis.
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
You can report low severity vulnerabilities as GitHub issues, more severe vulnerabilities should be reported to the email zadam.apps@gmail.com
|
||||||
BIN
bin/better-sqlite3/linux-desktop-better_sqlite3.node
Normal file
BIN
bin/better-sqlite3/linux-desktop-better_sqlite3.node
Normal file
Binary file not shown.
BIN
bin/better-sqlite3/linux-server-better_sqlite3.node
Normal file
BIN
bin/better-sqlite3/linux-server-better_sqlite3.node
Normal file
Binary file not shown.
BIN
bin/better-sqlite3/mac-better_sqlite3.node
Normal file
BIN
bin/better-sqlite3/mac-better_sqlite3.node
Normal file
Binary file not shown.
BIN
bin/better-sqlite3/win-better_sqlite3.node
Normal file
BIN
bin/better-sqlite3/win-better_sqlite3.node
Normal file
Binary file not shown.
@@ -7,15 +7,11 @@ then
|
|||||||
./bin/copy-trilium.sh $SRC_DIR
|
./bin/copy-trilium.sh $SRC_DIR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rm -r $SRC_DIR/src/public/app-dist/*.mobile.*
|
||||||
|
|
||||||
echo "Copying required linux-x64 binaries"
|
echo "Copying required linux-x64 binaries"
|
||||||
|
|
||||||
rm -r $SRC_DIR/node_modules/sqlite3/lib/binding/*
|
cp -r bin/better-sqlite3/linux-desktop-better_sqlite3.node $SRC_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||||
rm -r $SRC_DIR/node_modules/pngquant-bin/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/*
|
|
||||||
|
|
||||||
cp -r bin/deps/linux-x64/sqlite/* $SRC_DIR/node_modules/sqlite3/lib/binding/
|
|
||||||
cp bin/deps/linux-x64/image/pngquant $SRC_DIR/node_modules/pngquant-bin/vendor/
|
|
||||||
cp bin/deps/linux-x64/spellchecker/* $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/
|
|
||||||
|
|
||||||
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=linux --arch=x64 --overwrite
|
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=linux --arch=x64 --overwrite
|
||||||
|
|
||||||
@@ -29,6 +25,9 @@ cp images/app-icons/png/128x128.png $BUILD_DIR/icon.png
|
|||||||
# removing software WebGL binaries because they are pretty huge and not necessary
|
# removing software WebGL binaries because they are pretty huge and not necessary
|
||||||
rm -r $BUILD_DIR/swiftshader
|
rm -r $BUILD_DIR/swiftshader
|
||||||
|
|
||||||
|
cp bin/tpl/portable-trilium.sh $BUILD_DIR/
|
||||||
|
chmod 755 $BUILD_DIR/portable-trilium.sh
|
||||||
|
|
||||||
echo "Packaging linux x64 electron distribution..."
|
echo "Packaging linux x64 electron distribution..."
|
||||||
VERSION=`jq -r ".version" package.json`
|
VERSION=`jq -r ".version" package.json`
|
||||||
|
|
||||||
@@ -38,4 +37,4 @@ tar cJf trilium-linux-x64-${VERSION}.tar.xz trilium-linux-x64
|
|||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
bin/build-debian.sh
|
bin/build-debian.sh
|
||||||
|
|||||||
@@ -9,19 +9,9 @@ fi
|
|||||||
|
|
||||||
echo "Copying required mac binaries"
|
echo "Copying required mac binaries"
|
||||||
|
|
||||||
rm -r $SRC_DIR/node_modules/sqlite3/lib/binding/*
|
cp -r bin/better-sqlite3/mac-better_sqlite3.node $SRC_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||||
rm -r $SRC_DIR/node_modules/mozjpeg/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/pngquant-bin/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/giflossy/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/*
|
|
||||||
rm -r $SRC_DIR/node_modules/keyboard-layout/build/Release/*
|
|
||||||
|
|
||||||
cp -r bin/deps/mac-x64/sqlite/* $SRC_DIR/node_modules/sqlite3/lib/binding/
|
rm -r $SRC_DIR/src/public/app-dist/*.mobile.*
|
||||||
cp bin/deps/mac-x64/image/cjpeg $SRC_DIR/node_modules/mozjpeg/vendor/
|
|
||||||
cp bin/deps/mac-x64/image/pngquant $SRC_DIR/node_modules/pngquant-bin/vendor/
|
|
||||||
cp bin/deps/mac-x64/image/gifsicle $SRC_DIR/node_modules/giflossy/vendor/
|
|
||||||
cp bin/deps/mac-x64/spellchecker/* $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/
|
|
||||||
cp bin/deps/mac-x64/keyboard-layout-manager.node $SRC_DIR/node_modules/keyboard-layout/build/Release/
|
|
||||||
|
|
||||||
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=darwin --arch=x64 --overwrite --icon=images/app-icons/mac/icon.icns
|
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=darwin --arch=x64 --overwrite --icon=images/app-icons/mac/icon.icns
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
PKG_DIR=dist/trilium-linux-x64-server
|
PKG_DIR=dist/trilium-linux-x64-server
|
||||||
NODE_VERSION=12.13.0
|
NODE_VERSION=12.18.3
|
||||||
|
|
||||||
if [ "$1" != "DONTCOPY" ]
|
if [ "$1" != "DONTCOPY" ]
|
||||||
then
|
then
|
||||||
@@ -16,11 +16,12 @@ cd ..
|
|||||||
|
|
||||||
mv dist/node-v${NODE_VERSION}-linux-x64 $PKG_DIR/node
|
mv dist/node-v${NODE_VERSION}-linux-x64 $PKG_DIR/node
|
||||||
|
|
||||||
|
rm -r $PKG_DIR/node/lib/node_modules/npm
|
||||||
|
rm -r $PKG_DIR/node/include/node
|
||||||
|
|
||||||
rm -r $PKG_DIR/node_modules/electron*
|
rm -r $PKG_DIR/node_modules/electron*
|
||||||
|
|
||||||
rm -r $PKG_DIR/node_modules/sqlite3/lib/binding/*
|
cp -r bin/better-sqlite3/linux-server-better_sqlite3.node $PKG_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||||
|
|
||||||
cp -r ./bin/deps/linux-x64/sqlite/node* $PKG_DIR/node_modules/sqlite3/lib/binding/
|
|
||||||
|
|
||||||
printf "#!/bin/sh\n./node/bin/node src/www" > $PKG_DIR/trilium.sh
|
printf "#!/bin/sh\n./node/bin/node src/www" > $PKG_DIR/trilium.sh
|
||||||
chmod 755 $PKG_DIR/trilium.sh
|
chmod 755 $PKG_DIR/trilium.sh
|
||||||
|
|||||||
@@ -9,20 +9,9 @@ fi
|
|||||||
|
|
||||||
echo "Copying required windows binaries"
|
echo "Copying required windows binaries"
|
||||||
|
|
||||||
rm -r $SRC_DIR/node_modules/sqlite3/lib/binding/*
|
cp -r bin/better-sqlite3/win-better_sqlite3.node $SRC_DIR/node_modules/better-sqlite3/build/Release/better_sqlite3.node
|
||||||
rm -r $SRC_DIR/node_modules/mozjpeg/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/pngquant-bin/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/giflossy/vendor/*
|
|
||||||
rm -r $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/*
|
|
||||||
rm -r $SRC_DIR/node_modules/keyboard-layout/build/Release/*
|
|
||||||
rm -r $SRC_DIR/node_modules/cld/build/Release/*
|
|
||||||
|
|
||||||
cp -r bin/deps/win-x64/sqlite/* $SRC_DIR/node_modules/sqlite3/lib/binding/
|
rm -r $SRC_DIR/src/public/app-dist/*.mobile.*
|
||||||
cp bin/deps/win-x64/image/cjpeg.exe $SRC_DIR/node_modules/mozjpeg/vendor/
|
|
||||||
cp bin/deps/win-x64/image/pngquant.exe $SRC_DIR/node_modules/pngquant-bin/vendor/
|
|
||||||
cp bin/deps/win-x64/image/gifsicle.exe $SRC_DIR/node_modules/giflossy/vendor/
|
|
||||||
cp bin/deps/win-x64/spellchecker/* $SRC_DIR/node_modules/@felixrieseberg/spellchecker/build/Release/
|
|
||||||
cp bin/deps/win-x64/keyboard-layout-manager.node $SRC_DIR/node_modules/keyboard-layout/build/Release/
|
|
||||||
|
|
||||||
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=win32 --arch=x64 --overwrite --icon=images/app-icons/win/icon.ico
|
./node_modules/.bin/electron-packager $SRC_DIR --asar --out=dist --executable-name=trilium --platform=win32 --arch=x64 --overwrite --icon=images/app-icons/win/icon.ico
|
||||||
|
|
||||||
@@ -34,6 +23,8 @@ mv "./dist/Trilium Notes-win32-x64" $BUILD_DIR
|
|||||||
# removing software WebGL binaries because they are pretty huge and not necessary
|
# removing software WebGL binaries because they are pretty huge and not necessary
|
||||||
rm -r $BUILD_DIR/swiftshader
|
rm -r $BUILD_DIR/swiftshader
|
||||||
|
|
||||||
|
cp bin/tpl/portable-trilium.bat $BUILD_DIR/
|
||||||
|
|
||||||
echo "Zipping windows x64 electron distribution..."
|
echo "Zipping windows x64 electron distribution..."
|
||||||
VERSION=`jq -r ".version" package.json`
|
VERSION=`jq -r ".version" package.json`
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ if [[ $# -eq 0 ]] ; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
npm run webpack
|
||||||
|
|
||||||
DIR=$1
|
DIR=$1
|
||||||
|
|
||||||
rm -rf $DIR
|
rm -rf $DIR
|
||||||
@@ -22,11 +24,27 @@ cp -r README.md $DIR/
|
|||||||
cp -r LICENSE $DIR/
|
cp -r LICENSE $DIR/
|
||||||
cp -r config-sample.ini $DIR/
|
cp -r config-sample.ini $DIR/
|
||||||
cp -r electron.js $DIR/
|
cp -r electron.js $DIR/
|
||||||
|
cp webpack-* $DIR/
|
||||||
|
|
||||||
# run in subshell (so we return to original dir)
|
# run in subshell (so we return to original dir)
|
||||||
(cd $DIR && npm install --only=prod)
|
(cd $DIR && npm install --only=prod)
|
||||||
|
|
||||||
rm -r $DIR/node_modules/cld/deps
|
# cleanup of useless files in dependencies
|
||||||
|
rm -r $DIR/node_modules/image-q/demo
|
||||||
|
rm -r $DIR/node_modules/better-sqlite3/deps/sqlite3.tar.gz
|
||||||
|
rm -r $DIR/node_modules/@jimp/plugin-print/fonts
|
||||||
|
rm -r $DIR/node_modules/jimp/browser
|
||||||
|
rm -r $DIR/node_modules/jimp/fonts
|
||||||
|
|
||||||
|
# delete all tests (there are often large images as test file for jimp etc.)
|
||||||
|
find $DIR/node_modules -name test -exec rm -rf {} \;
|
||||||
|
find $DIR/node_modules -name docs -exec rm -rf {} \;
|
||||||
|
find $DIR/node_modules -name demo -exec rm -rf {} \;
|
||||||
|
|
||||||
find $DIR/libraries -name "*.map" -type f -delete
|
find $DIR/libraries -name "*.map" -type f -delete
|
||||||
find $DIR/libraries -name "hunspell.lib" -type f -delete
|
|
||||||
|
rm -r $DIR/src/public/app
|
||||||
|
|
||||||
|
sed -i -e 's/app\/desktop.js/app-dist\/desktop.js/g' $DIR/src/views/desktop.ejs
|
||||||
|
sed -i -e 's/app\/mobile.js/app-dist\/mobile.js/g' $DIR/src/views/mobile.ejs
|
||||||
|
sed -i -e 's/app\/setup.js/app-dist\/setup.js/g' $DIR/src/views/setup.ejs
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -12,5 +12,4 @@ fi
|
|||||||
mkdir -p "$DIR"
|
mkdir -p "$DIR"
|
||||||
cd "$DIR"
|
cd "$DIR"
|
||||||
|
|
||||||
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 2000 -nodes
|
openssl req -newkey rsa:4096 -x509 -sha256 -days 3650 -nodes -out cert.crt -keyout key.key
|
||||||
|
|
||||||
|
|||||||
4
bin/tpl/portable-trilium.bat
Normal file
4
bin/tpl/portable-trilium.bat
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
SET DIR=%~dp0
|
||||||
|
SET TRILIUM_DATA_DIR=%DIR%\trilium-data
|
||||||
|
cd %DIR%
|
||||||
|
start trilium.exe
|
||||||
7
bin/tpl/portable-trilium.sh
Executable file
7
bin/tpl/portable-trilium.sh
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
DIR=`dirname "$0"`
|
||||||
|
export TRILIUM_DATA_DIR="$DIR/trilium-data"
|
||||||
|
|
||||||
|
"$DIR/trilium"
|
||||||
|
|
||||||
@@ -2,10 +2,16 @@
|
|||||||
# Instance name can be used to distinguish between different instances
|
# Instance name can be used to distinguish between different instances
|
||||||
instanceName=
|
instanceName=
|
||||||
|
|
||||||
|
# set to true to allow using Trilium without authentication (makes sense for server build only, desktop build doesn't need password)
|
||||||
|
noAuthentication=false
|
||||||
|
|
||||||
|
# Disable automatically generating desktop icon
|
||||||
|
# noDesktopIcon=true
|
||||||
|
|
||||||
[Network]
|
[Network]
|
||||||
# host setting is relevant only for web deployments - set the host on which the server will listen
|
# host setting is relevant only for web deployments - set the host on which the server will listen
|
||||||
# host=0.0.0.0
|
# host=0.0.0.0
|
||||||
# port setting is relevant only for web deployments, desktop builds run on random free port
|
# port setting is relevant only for web deployments, desktop builds run on a fixed port (changeable with TRILIUM_PORT environment variable)
|
||||||
port=8080
|
port=8080
|
||||||
# true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure).
|
# true for TLS/SSL/HTTPS (secure), false for HTTP (unsecure).
|
||||||
https=false
|
https=false
|
||||||
|
|||||||
BIN
db/demo.tar
BIN
db/demo.tar
Binary file not shown.
BIN
db/demo.zip
Normal file
BIN
db/demo.zip
Normal file
Binary file not shown.
@@ -1,4 +1,4 @@
|
|||||||
const syncTableService = require('../../src/services/sync_table');
|
const syncTableService = require('../../src/services/entity_changes.js');
|
||||||
|
|
||||||
// options has not been filled so far which caused problems with clean-slate sync.
|
// options has not been filled so far which caused problems with clean-slate sync.
|
||||||
module.exports = async () => await syncTableService.fillAllSyncRows();
|
module.exports = async () => await syncTableService.fillAllSyncRows();
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const syncTableService = require('../../src/services/sync_table');
|
const syncTableService = require('../../src/services/entity_changes.js');
|
||||||
|
|
||||||
module.exports = async () => {
|
module.exports = async () => {
|
||||||
await syncTableService.fillAllSyncRows();
|
await syncTableService.fillAllSyncRows();
|
||||||
};
|
};
|
||||||
|
|||||||
36
db/migrations/0150__note_revision_contents.sql
Normal file
36
db/migrations/0150__note_revision_contents.sql
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT,
|
||||||
|
`contentLength` INT NOT NULL,
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`utcDateLastEdited` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
`dateLastEdited` TEXT NOT NULL,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
type TEXT DEFAULT '' NOT NULL,
|
||||||
|
mime TEXT DEFAULT '' NOT NULL,
|
||||||
|
hash TEXT DEFAULT '' NOT NULL);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS "note_revision_contents" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
|
`content` TEXT,
|
||||||
|
hash TEXT DEFAULT '' NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL);
|
||||||
|
|
||||||
|
INSERT INTO note_revision_contents (noteRevisionId, content, hash, utcDateModified)
|
||||||
|
SELECT noteRevisionId, content, hash, utcDateModifiedTo FROM note_revisions;
|
||||||
|
|
||||||
|
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, contentLength, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash)
|
||||||
|
SELECT noteRevisionId, noteId, title, COALESCE(LENGTH(content), 0), isProtected, utcDateModifiedFrom, utcDateModifiedTo, utcDateModifiedTo, dateModifiedFrom, dateModifiedTo, type, mime, hash FROM note_revisions;
|
||||||
|
|
||||||
|
DROP TABLE note_revisions;
|
||||||
|
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);
|
||||||
|
|
||||||
|
INSERT INTO sync (entityName, entityId, sourceId, utcSyncDate)
|
||||||
|
SELECT 'note_revision_contents', entityId, sourceId, utcSyncDate FROM sync WHERE entityName = 'note_revisions';
|
||||||
31
db/migrations/0151__add_isErased_to_note.sql
Normal file
31
db/migrations/0151__add_isErased_to_note.sql
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "notes_mig" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT NOT NULL DEFAULT "note",
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`type` TEXT NOT NULL DEFAULT 'text',
|
||||||
|
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`isDeleted` INT NOT NULL DEFAULT 0,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`));
|
||||||
|
|
||||||
|
INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
|
||||||
|
SELECT noteId, title, isProtected, type, mime, hash, isDeleted, 0, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
|
||||||
|
|
||||||
|
DROP TABLE notes;
|
||||||
|
ALTER TABLE notes_mig RENAME TO notes;
|
||||||
|
|
||||||
|
UPDATE notes SET isErased = 1 WHERE isDeleted = 1
|
||||||
|
AND 1=(SELECT CASE WHEN content IS NULL THEN 1 ELSE 0 END FROM note_contents WHERE note_contents.noteId = notes.noteId);
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
|
||||||
|
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
|
||||||
|
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
|
||||||
|
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
|
||||||
34
db/migrations/0152__add_contentLength_to_note.sql
Normal file
34
db/migrations/0152__add_contentLength_to_note.sql
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "notes_mig" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT NOT NULL DEFAULT "note",
|
||||||
|
`contentLength` INT NOT NULL,
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`type` TEXT NOT NULL DEFAULT 'text',
|
||||||
|
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`isDeleted` INT NOT NULL DEFAULT 0,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`));
|
||||||
|
|
||||||
|
INSERT INTO notes_mig (noteId, title, contentLength, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
|
||||||
|
SELECT noteId, title, -1, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
|
||||||
|
|
||||||
|
DROP TABLE notes;
|
||||||
|
ALTER TABLE notes_mig RENAME TO notes;
|
||||||
|
|
||||||
|
UPDATE notes SET contentLength = COALESCE((SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId), -1);
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
|
||||||
|
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
|
||||||
|
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
|
||||||
|
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
|
||||||
|
|
||||||
|
-- should be OK since sync protocol changes so all instances must upgrade
|
||||||
|
UPDATE attributes SET isDeleted = 1 WHERE name = 'fileSize';
|
||||||
28
db/migrations/0153__add_isErased_to_note_revision.sql
Normal file
28
db/migrations/0153__add_isErased_to_note_revision.sql
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT,
|
||||||
|
`contentLength` INT NOT NULL,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`utcDateLastEdited` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
`dateLastEdited` TEXT NOT NULL,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
type TEXT DEFAULT '' NOT NULL,
|
||||||
|
mime TEXT DEFAULT '' NOT NULL,
|
||||||
|
hash TEXT DEFAULT '' NOT NULL);
|
||||||
|
|
||||||
|
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, contentLength, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash)
|
||||||
|
SELECT noteRevisionId, noteId, title, contentLength, 0, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash FROM note_revisions;
|
||||||
|
|
||||||
|
DROP TABLE note_revisions;
|
||||||
|
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
|
||||||
|
|
||||||
|
UPDATE note_revisions SET isErased = (SELECT isErased FROM notes WHERE notes.noteId = note_revisions.noteId);
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
UPDATE attributes SET name = 'internalLink' WHERE name = 'internal-link';
|
||||||
|
UPDATE attributes SET name = 'imageLink' WHERE name = 'image-link';
|
||||||
|
UPDATE attributes SET name = 'relationMapLink' WHERE name = 'relation-map-link';
|
||||||
5
db/migrations/0155__indexes.sql
Normal file
5
db/migrations/0155__indexes.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
DROP INDEX IF EXISTS IDX_attributes_name_index;
|
||||||
|
DROP INDEX IF EXISTS IDX_branches_noteId;
|
||||||
|
|
||||||
|
CREATE INDEX IDX_source_ids_utcDateCreated
|
||||||
|
on source_ids (utcDateCreated);
|
||||||
81
db/migrations/0156__add_deleteId.sql
Normal file
81
db/migrations/0156__add_deleteId.sql
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "notes_mig" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT NOT NULL DEFAULT "note",
|
||||||
|
`contentLength` INT NOT NULL,
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`type` TEXT NOT NULL DEFAULT 'text',
|
||||||
|
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`isDeleted` INT NOT NULL DEFAULT 0,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`));
|
||||||
|
|
||||||
|
INSERT INTO notes_mig (noteId, title, contentLength, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
|
||||||
|
SELECT noteId, title, -1, isProtected, type, mime, hash, isDeleted, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
|
||||||
|
|
||||||
|
DROP TABLE notes;
|
||||||
|
ALTER TABLE notes_mig RENAME TO notes;
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
|
||||||
|
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
|
||||||
|
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
|
||||||
|
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS "branches_mig" (
|
||||||
|
`branchId` TEXT NOT NULL,
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`parentNoteId` TEXT NOT NULL,
|
||||||
|
`notePosition` INTEGER NOT NULL,
|
||||||
|
`prefix` TEXT,
|
||||||
|
`isExpanded` INTEGER NOT NULL DEFAULT 0,
|
||||||
|
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
utcDateCreated TEXT NOT NULL,
|
||||||
|
hash TEXT DEFAULT "" NOT NULL,
|
||||||
|
PRIMARY KEY(`branchId`));
|
||||||
|
|
||||||
|
INSERT INTO branches_mig (branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash)
|
||||||
|
SELECT branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated, hash FROM branches;
|
||||||
|
|
||||||
|
DROP TABLE branches;
|
||||||
|
ALTER TABLE branches_mig RENAME TO branches;
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`);
|
||||||
|
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS "attributes_mig"
|
||||||
|
(
|
||||||
|
attributeId TEXT not null primary key,
|
||||||
|
noteId TEXT not null,
|
||||||
|
type TEXT not null,
|
||||||
|
name TEXT not null,
|
||||||
|
value TEXT default '' not null,
|
||||||
|
position INT default 0 not null,
|
||||||
|
utcDateCreated TEXT not null,
|
||||||
|
utcDateModified TEXT not null,
|
||||||
|
isDeleted INT not null,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
|
hash TEXT default "" not null,
|
||||||
|
isInheritable int DEFAULT 0 NULL);
|
||||||
|
|
||||||
|
INSERT INTO attributes_mig (attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable)
|
||||||
|
SELECT attributeId, noteId, type, name, value, position, utcDateCreated, utcDateModified, isDeleted, hash, isInheritable FROM attributes;
|
||||||
|
|
||||||
|
DROP TABLE attributes;
|
||||||
|
ALTER TABLE attributes_mig RENAME TO attributes;
|
||||||
|
|
||||||
|
CREATE INDEX IDX_attributes_name_value
|
||||||
|
on attributes (name, value);
|
||||||
|
CREATE INDEX IDX_attributes_noteId_index
|
||||||
|
on attributes (noteId);
|
||||||
|
CREATE INDEX IDX_attributes_value_index
|
||||||
|
on attributes (value);
|
||||||
1
db/migrations/0157__fix_contentLength.sql
Normal file
1
db/migrations/0157__fix_contentLength.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
UPDATE notes SET contentLength = COALESCE((SELECT COALESCE(LENGTH(content), 0) FROM note_contents WHERE note_contents.noteId = notes.noteId), -1);
|
||||||
22
db/migrations/0158__add_isSynced_to_sync.sql
Normal file
22
db/migrations/0158__add_isSynced_to_sync.sql
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "sync_mig" (
|
||||||
|
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
`entityName` TEXT NOT NULL,
|
||||||
|
`entityId` TEXT NOT NULL,
|
||||||
|
`sourceId` TEXT NOT NULL,
|
||||||
|
`isSynced` INTEGER default 0 not null,
|
||||||
|
`utcSyncDate` TEXT NOT NULL);
|
||||||
|
|
||||||
|
INSERT INTO sync_mig (id, entityName, entityId, sourceId, isSynced, utcSyncDate)
|
||||||
|
SELECT id, entityName, entityId, sourceId, 1, utcSyncDate FROM sync;
|
||||||
|
|
||||||
|
DROP TABLE sync;
|
||||||
|
|
||||||
|
ALTER TABLE sync_mig RENAME TO sync;
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` (
|
||||||
|
`entityName`,
|
||||||
|
`entityId`
|
||||||
|
);
|
||||||
|
CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` (
|
||||||
|
`utcSyncDate`
|
||||||
|
);
|
||||||
4
db/migrations/0159__fix_isSynced_in_sync_rows.sql
Normal file
4
db/migrations/0159__fix_isSynced_in_sync_rows.sql
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
UPDATE sync SET isSynced = 1 WHERE entityName != 'options' OR (
|
||||||
|
entityName = 'options'
|
||||||
|
AND 1 = (SELECT isSynced FROM options WHERE name = sync.entityId)
|
||||||
|
)
|
||||||
2
db/migrations/0160__migrate_attr_definitions.sql
Normal file
2
db/migrations/0160__migrate_attr_definitions.sql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
UPDATE attributes SET type = 'label', name = 'label:' || name WHERE type = 'label-definition';
|
||||||
|
UPDATE attributes SET type = 'label', name = 'relation:' || name WHERE type = 'relation-definition';
|
||||||
79
db/migrations/0161__attr_def_short.js
Normal file
79
db/migrations/0161__attr_def_short.js
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
const sql = require('../../src/services/sql');
|
||||||
|
|
||||||
|
module.exports = () => {
|
||||||
|
for (const attr of sql.getRows("SELECT * FROM attributes WHERE name LIKE 'label:%'")) {
|
||||||
|
let obj;
|
||||||
|
|
||||||
|
try {
|
||||||
|
obj = JSON.parse(attr.value);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log(`Parsing attribute definition "${attr.value}" of ${attr.attributeId} failed with error "${e.message}", setting to default value.`);
|
||||||
|
|
||||||
|
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?',
|
||||||
|
["multi,text", attr.attributeId]);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const tokens = [];
|
||||||
|
|
||||||
|
if (obj.isPromoted) {
|
||||||
|
tokens.push('promoted');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj.multiplicityType === 'singlevalue') {
|
||||||
|
tokens.push('single');
|
||||||
|
} else if (obj.multiplicityType === 'multivalue') {
|
||||||
|
tokens.push('multi');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj.labelType) {
|
||||||
|
tokens.push(obj.labelType);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj.numberPrecision) {
|
||||||
|
tokens.push('precision='+obj.numberPrecision);
|
||||||
|
}
|
||||||
|
|
||||||
|
const newValue = tokens.join(',');
|
||||||
|
|
||||||
|
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', [newValue, attr.attributeId]);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const attr of sql.getRows("SELECT * FROM attributes WHERE name LIKE 'relation:%'")) {
|
||||||
|
let obj;
|
||||||
|
|
||||||
|
try {
|
||||||
|
obj = JSON.parse(attr.value);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log(`Parsing attribute definition "${attr.value}" of ${attr.attributeId} failed with error "${e.message}", setting to default value.`);
|
||||||
|
|
||||||
|
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?',
|
||||||
|
["multi", attr.attributeId]);
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
const tokens = [];
|
||||||
|
|
||||||
|
if (obj.isPromoted) {
|
||||||
|
tokens.push('promoted');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj.multiplicityType === 'singlevalue') {
|
||||||
|
tokens.push('single');
|
||||||
|
} else if (obj.multiplicityType === 'multivalue') {
|
||||||
|
tokens.push('multi');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (obj.inverseRelation) {
|
||||||
|
tokens.push('inverse=' + obj.inverseRelation);
|
||||||
|
}
|
||||||
|
|
||||||
|
const newValue = tokens.join(',');
|
||||||
|
|
||||||
|
sql.execute('UPDATE attributes SET value = ? WHERE attributeId = ?', [newValue, attr.attributeId]);
|
||||||
|
}
|
||||||
|
};
|
||||||
1
db/migrations/0162__drop_source_ids.sql
Normal file
1
db/migrations/0162__drop_source_ids.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DROP TABLE source_ids;
|
||||||
1
db/migrations/0163__rename_sync_to_entity_changes.sql
Normal file
1
db/migrations/0163__rename_sync_to_entity_changes.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
ALTER TABLE sync RENAME TO entity_changes;
|
||||||
22
db/migrations/0164__rename_utcSyncDate.sql
Normal file
22
db/migrations/0164__rename_utcSyncDate.sql
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "mig_entity_changes" (
|
||||||
|
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
`entityName` TEXT NOT NULL,
|
||||||
|
`entityId` TEXT NOT NULL,
|
||||||
|
`sourceId` TEXT NOT NULL,
|
||||||
|
`isSynced` INTEGER default 0 not null,
|
||||||
|
`utcChangedDate` TEXT NOT NULL);
|
||||||
|
|
||||||
|
INSERT INTO mig_entity_changes (id, entityName, entityId, sourceId, isSynced, utcChangedDate)
|
||||||
|
SELECT id, entityName, entityId, sourceId, isSynced, utcSyncDate FROM entity_changes;
|
||||||
|
|
||||||
|
DROP TABLE entity_changes;
|
||||||
|
|
||||||
|
ALTER TABLE mig_entity_changes RENAME TO entity_changes;
|
||||||
|
|
||||||
|
CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" (
|
||||||
|
`entityName`,
|
||||||
|
`entityId`
|
||||||
|
);
|
||||||
|
CREATE INDEX `IDX_entityChanges_utcChangedDate` ON "entity_changes" (
|
||||||
|
`utcChangedDate`
|
||||||
|
);
|
||||||
55
db/migrations/0165__move_contentLength.sql
Normal file
55
db/migrations/0165__move_contentLength.sql
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "notes_mig" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT NOT NULL DEFAULT "note",
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`type` TEXT NOT NULL DEFAULT 'text',
|
||||||
|
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`isDeleted` INT NOT NULL DEFAULT 0,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`));
|
||||||
|
|
||||||
|
INSERT INTO notes_mig (noteId, title, isProtected, type, mime, hash, isDeleted, deleteId, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified)
|
||||||
|
SELECT noteId, title, isProtected, type, mime, hash, isDeleted, deleteId, isErased, dateCreated, dateModified, utcDateCreated, utcDateModified FROM notes;
|
||||||
|
|
||||||
|
DROP TABLE notes;
|
||||||
|
ALTER TABLE notes_mig RENAME TO notes;
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
|
||||||
|
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
|
||||||
|
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
|
||||||
|
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS "note_revisions_mig" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`utcDateLastEdited` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
`dateLastEdited` TEXT NOT NULL,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
type TEXT DEFAULT '' NOT NULL,
|
||||||
|
mime TEXT DEFAULT '' NOT NULL,
|
||||||
|
hash TEXT DEFAULT '' NOT NULL);
|
||||||
|
|
||||||
|
INSERT INTO note_revisions_mig (noteRevisionId, noteId, title, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash)
|
||||||
|
SELECT noteRevisionId, noteId, title, isErased, isProtected, utcDateLastEdited, utcDateCreated, utcDateModified, dateLastEdited, dateCreated, type, mime, hash FROM note_revisions;
|
||||||
|
|
||||||
|
DROP TABLE note_revisions;
|
||||||
|
ALTER TABLE note_revisions_mig RENAME TO note_revisions;
|
||||||
|
|
||||||
|
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);
|
||||||
20
db/migrations/0166__add_dateModified_to_note_content.sql
Normal file
20
db/migrations/0166__add_dateModified_to_note_content.sql
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
CREATE TABLE IF NOT EXISTS "note_contents_mig" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`content` TEXT NULL DEFAULT NULL,
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO note_contents_mig (noteId, content, hash, dateModified, utcDateModified)
|
||||||
|
SELECT noteId,
|
||||||
|
content,
|
||||||
|
hash,
|
||||||
|
(SELECT dateModified FROM notes WHERE noteId = note_contents.noteId),
|
||||||
|
utcDateModified
|
||||||
|
FROM note_contents;
|
||||||
|
|
||||||
|
DROP TABLE note_contents;
|
||||||
|
|
||||||
|
ALTER TABLE note_contents_mig RENAME TO note_contents;
|
||||||
1
db/migrations/0167__remove_activateParentNote.sql
Normal file
1
db/migrations/0167__remove_activateParentNote.sql
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DELETE FROM options WHERE name = 'keyboardShortcutsActivateParentNote';
|
||||||
170
db/schema.sql
170
db/schema.sql
@@ -1,27 +1,3 @@
|
|||||||
CREATE TABLE IF NOT EXISTS "sync" (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
`entityName` TEXT NOT NULL,
|
|
||||||
`entityId` TEXT NOT NULL,
|
|
||||||
`sourceId` TEXT NOT NULL,
|
|
||||||
`utcSyncDate` TEXT NOT NULL);
|
|
||||||
CREATE TABLE IF NOT EXISTS "source_ids" (
|
|
||||||
`sourceId` TEXT NOT NULL,
|
|
||||||
`utcDateCreated` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`sourceId`)
|
|
||||||
);
|
|
||||||
CREATE TABLE IF NOT EXISTS "note_revisions" (
|
|
||||||
`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`noteId` TEXT NOT NULL,
|
|
||||||
`title` TEXT,
|
|
||||||
`content` TEXT,
|
|
||||||
`isProtected` INT NOT NULL DEFAULT 0,
|
|
||||||
`utcDateModifiedFrom` TEXT NOT NULL,
|
|
||||||
`utcDateModifiedTo` TEXT NOT NULL,
|
|
||||||
`dateModifiedFrom` TEXT NOT NULL,
|
|
||||||
`dateModifiedTo` TEXT NOT NULL,
|
|
||||||
type TEXT DEFAULT '' NOT NULL,
|
|
||||||
mime TEXT DEFAULT '' NOT NULL,
|
|
||||||
hash TEXT DEFAULT "" NOT NULL);
|
|
||||||
CREATE TABLE IF NOT EXISTS "api_tokens"
|
CREATE TABLE IF NOT EXISTS "api_tokens"
|
||||||
(
|
(
|
||||||
apiTokenId TEXT PRIMARY KEY NOT NULL,
|
apiTokenId TEXT PRIMARY KEY NOT NULL,
|
||||||
@@ -38,64 +14,6 @@ CREATE TABLE IF NOT EXISTS "options"
|
|||||||
utcDateCreated TEXT not null,
|
utcDateCreated TEXT not null,
|
||||||
utcDateModified TEXT NOT NULL
|
utcDateModified TEXT NOT NULL
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS "attributes"
|
|
||||||
(
|
|
||||||
attributeId TEXT not null primary key,
|
|
||||||
noteId TEXT not null,
|
|
||||||
type TEXT not null,
|
|
||||||
name TEXT not null,
|
|
||||||
value TEXT default '' not null,
|
|
||||||
position INT default 0 not null,
|
|
||||||
utcDateCreated TEXT not null,
|
|
||||||
utcDateModified TEXT not null,
|
|
||||||
isDeleted INT not null,
|
|
||||||
hash TEXT default "" not null,
|
|
||||||
isInheritable int DEFAULT 0 NULL);
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes" (
|
|
||||||
`noteId` TEXT NOT NULL,
|
|
||||||
`title` TEXT NOT NULL DEFAULT "note",
|
|
||||||
`isProtected` INT NOT NULL DEFAULT 0,
|
|
||||||
`type` TEXT NOT NULL DEFAULT 'text',
|
|
||||||
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
|
||||||
`hash` TEXT DEFAULT "" NOT NULL,
|
|
||||||
`isDeleted` INT NOT NULL DEFAULT 0,
|
|
||||||
`dateCreated` TEXT NOT NULL,
|
|
||||||
`dateModified` TEXT NOT NULL,
|
|
||||||
`utcDateCreated` TEXT NOT NULL,
|
|
||||||
`utcDateModified` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`noteId`)
|
|
||||||
);
|
|
||||||
CREATE UNIQUE INDEX `IDX_sync_entityName_entityId` ON `sync` (
|
|
||||||
`entityName`,
|
|
||||||
`entityId`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_sync_utcSyncDate` ON `sync` (
|
|
||||||
`utcSyncDate`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (
|
|
||||||
`noteId`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_note_revisions_dateModifiedFrom` ON `note_revisions` (
|
|
||||||
`utcDateModifiedFrom`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_note_revisions_dateModifiedTo` ON `note_revisions` (
|
|
||||||
`utcDateModifiedTo`
|
|
||||||
);
|
|
||||||
CREATE INDEX IDX_attributes_name_value
|
|
||||||
on attributes (name, value);
|
|
||||||
CREATE INDEX IDX_attributes_name_index
|
|
||||||
on attributes (name);
|
|
||||||
CREATE INDEX IDX_attributes_noteId_index
|
|
||||||
on attributes (noteId);
|
|
||||||
CREATE INDEX IDX_attributes_value_index
|
|
||||||
on attributes (value);
|
|
||||||
CREATE TABLE IF NOT EXISTS "note_contents" (
|
|
||||||
`noteId` TEXT NOT NULL,
|
|
||||||
`content` TEXT NULL DEFAULT NULL,
|
|
||||||
`hash` TEXT DEFAULT "" NOT NULL,
|
|
||||||
`utcDateModified` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`noteId`)
|
|
||||||
);
|
|
||||||
CREATE TABLE recent_notes
|
CREATE TABLE recent_notes
|
||||||
(
|
(
|
||||||
noteId TEXT not null primary key,
|
noteId TEXT not null primary key,
|
||||||
@@ -104,6 +22,10 @@ CREATE TABLE recent_notes
|
|||||||
utcDateCreated TEXT not null,
|
utcDateCreated TEXT not null,
|
||||||
isDeleted INT
|
isDeleted INT
|
||||||
);
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS "note_revision_contents" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
|
`content` TEXT,
|
||||||
|
hash TEXT DEFAULT '' NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL);
|
||||||
CREATE TABLE IF NOT EXISTS "branches" (
|
CREATE TABLE IF NOT EXISTS "branches" (
|
||||||
`branchId` TEXT NOT NULL,
|
`branchId` TEXT NOT NULL,
|
||||||
`noteId` TEXT NOT NULL,
|
`noteId` TEXT NOT NULL,
|
||||||
@@ -112,10 +34,92 @@ CREATE TABLE IF NOT EXISTS "branches" (
|
|||||||
`prefix` TEXT,
|
`prefix` TEXT,
|
||||||
`isExpanded` INTEGER NOT NULL DEFAULT 0,
|
`isExpanded` INTEGER NOT NULL DEFAULT 0,
|
||||||
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
`isDeleted` INTEGER NOT NULL DEFAULT 0,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
`utcDateModified` TEXT NOT NULL,
|
`utcDateModified` TEXT NOT NULL,
|
||||||
utcDateCreated TEXT NOT NULL,
|
utcDateCreated TEXT NOT NULL,
|
||||||
hash TEXT DEFAULT "" NOT NULL,
|
hash TEXT DEFAULT "" NOT NULL,
|
||||||
PRIMARY KEY(`branchId`));
|
PRIMARY KEY(`branchId`));
|
||||||
CREATE INDEX `IDX_branches_noteId` ON `branches` (`noteId`);
|
|
||||||
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`);
|
CREATE INDEX `IDX_branches_noteId_parentNoteId` ON `branches` (`noteId`,`parentNoteId`);
|
||||||
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
|
CREATE INDEX IDX_branches_parentNoteId ON branches (parentNoteId);
|
||||||
|
CREATE TABLE IF NOT EXISTS "attributes"
|
||||||
|
(
|
||||||
|
attributeId TEXT not null primary key,
|
||||||
|
noteId TEXT not null,
|
||||||
|
type TEXT not null,
|
||||||
|
name TEXT not null,
|
||||||
|
value TEXT default '' not null,
|
||||||
|
position INT default 0 not null,
|
||||||
|
utcDateCreated TEXT not null,
|
||||||
|
utcDateModified TEXT not null,
|
||||||
|
isDeleted INT not null,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
|
hash TEXT default "" not null,
|
||||||
|
isInheritable int DEFAULT 0 NULL);
|
||||||
|
CREATE INDEX IDX_attributes_name_value
|
||||||
|
on attributes (name, value);
|
||||||
|
CREATE INDEX IDX_attributes_noteId_index
|
||||||
|
on attributes (noteId);
|
||||||
|
CREATE INDEX IDX_attributes_value_index
|
||||||
|
on attributes (value);
|
||||||
|
CREATE TABLE IF NOT EXISTS "entity_changes" (
|
||||||
|
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
`entityName` TEXT NOT NULL,
|
||||||
|
`entityId` TEXT NOT NULL,
|
||||||
|
`sourceId` TEXT NOT NULL,
|
||||||
|
`isSynced` INTEGER default 0 not null,
|
||||||
|
`utcChangedDate` TEXT NOT NULL);
|
||||||
|
CREATE UNIQUE INDEX `IDX_entityChanges_entityName_entityId` ON "entity_changes" (
|
||||||
|
`entityName`,
|
||||||
|
`entityId`
|
||||||
|
);
|
||||||
|
CREATE INDEX `IDX_entityChanges_utcChangedDate` ON "entity_changes" (
|
||||||
|
`utcChangedDate`
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS "notes" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT NOT NULL DEFAULT "note",
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`type` TEXT NOT NULL DEFAULT 'text',
|
||||||
|
`mime` TEXT NOT NULL DEFAULT 'text/html',
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`isDeleted` INT NOT NULL DEFAULT 0,
|
||||||
|
`deleteId` TEXT DEFAULT NULL,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`));
|
||||||
|
CREATE INDEX `IDX_notes_isDeleted` ON `notes` (`isDeleted`);
|
||||||
|
CREATE INDEX `IDX_notes_title` ON `notes` (`title`);
|
||||||
|
CREATE INDEX `IDX_notes_type` ON `notes` (`type`);
|
||||||
|
CREATE INDEX `IDX_notes_dateCreated` ON `notes` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_notes_dateModified` ON `notes` (`dateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateModified` ON `notes` (`utcDateModified`);
|
||||||
|
CREATE INDEX `IDX_notes_utcDateCreated` ON `notes` (`utcDateCreated`);
|
||||||
|
CREATE TABLE IF NOT EXISTS "note_revisions" (`noteRevisionId` TEXT NOT NULL PRIMARY KEY,
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`title` TEXT,
|
||||||
|
`isErased` INT NOT NULL DEFAULT 0,
|
||||||
|
`isProtected` INT NOT NULL DEFAULT 0,
|
||||||
|
`utcDateLastEdited` TEXT NOT NULL,
|
||||||
|
`utcDateCreated` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
`dateLastEdited` TEXT NOT NULL,
|
||||||
|
`dateCreated` TEXT NOT NULL,
|
||||||
|
type TEXT DEFAULT '' NOT NULL,
|
||||||
|
mime TEXT DEFAULT '' NOT NULL,
|
||||||
|
hash TEXT DEFAULT '' NOT NULL);
|
||||||
|
CREATE INDEX `IDX_note_revisions_noteId` ON `note_revisions` (`noteId`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateCreated` ON `note_revisions` (`utcDateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_utcDateLastEdited` ON `note_revisions` (`utcDateLastEdited`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateCreated` ON `note_revisions` (`dateCreated`);
|
||||||
|
CREATE INDEX `IDX_note_revisions_dateLastEdited` ON `note_revisions` (`dateLastEdited`);
|
||||||
|
CREATE TABLE IF NOT EXISTS "note_contents" (
|
||||||
|
`noteId` TEXT NOT NULL,
|
||||||
|
`content` TEXT NULL DEFAULT NULL,
|
||||||
|
`hash` TEXT DEFAULT "" NOT NULL,
|
||||||
|
`dateModified` TEXT NOT NULL,
|
||||||
|
`utcDateModified` TEXT NOT NULL,
|
||||||
|
PRIMARY KEY(`noteId`)
|
||||||
|
);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<h2><span class="attribs"><span class="type-signature"></span></span>ApiToken<span class="signature">(apiTokenId, token, isDeleted, utcDateCreated)</span><span class="type-signature"></span></h2>
|
<h2><span class="attribs"><span class="type-signature"></span></span>ApiToken<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
<div class="class-description">ApiToken is an entity representing token used to authenticate against Trilium API from client applications. Currently used only by Trilium Sender.</div>
|
<div class="class-description">ApiToken is an entity representing token used to authenticate against Trilium API from client applications. Currently used only by Trilium Sender.</div>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="ApiToken"><span class="type-signature"></span>new ApiToken<span class="signature">(apiTokenId, token, isDeleted, utcDateCreated)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="ApiToken"><span class="type-signature"></span>new ApiToken<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,10 +60,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h5>Parameters:</h5>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table class="params">
|
<table class="props">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
@@ -180,8 +185,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
@@ -290,7 +293,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<h2><span class="attribs"><span class="type-signature"></span></span>Attribute<span class="signature">(attributeId, noteId, type, name, value, position, isInheritable, isDeleted, utcDateCreated, utcDateModified)</span><span class="type-signature"></span></h2>
|
<h2><span class="attribs"><span class="type-signature"></span></span>Attribute<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
<div class="class-description">Attribute is key value pair owned by a note.</div>
|
<div class="class-description">Attribute is key value pair owned by a note.</div>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="Attribute"><span class="type-signature"></span>new Attribute<span class="signature">(attributeId, noteId, type, name, value, position, isInheritable, isDeleted, utcDateCreated, utcDateModified)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="Attribute"><span class="type-signature"></span>new Attribute<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,10 +60,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h5>Parameters:</h5>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table class="params">
|
<table class="props">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
@@ -267,6 +272,32 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>deleteId</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
|
||||||
|
|
||||||
|
<span class="param-type">null</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">ID identifying delete transaction</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>utcDateCreated</code></td>
|
<td class="name"><code>utcDateCreated</code></td>
|
||||||
@@ -318,8 +349,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
@@ -349,7 +378,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line29">line 29</a>
|
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line30">line 30</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -464,7 +493,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line46">line 46</a>
|
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line47">line 47</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -566,7 +595,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line57">line 57</a>
|
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line54">line 54</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -668,7 +697,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line76">line 76</a>
|
<a href="entities_attribute.js.html">entities/attribute.js</a>, <a href="entities_attribute.js.html#line69">line 69</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -738,7 +767,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -351,69 +351,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="refreshTree"><span class="type-signature"></span>refreshTree<span class="type-signature"></span></h4>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="description">
|
|
||||||
Trigger tree refresh in all connected clients. This is required when some tree change happens in
|
|
||||||
the backend.
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line312">line 312</a>
|
|
||||||
</li></ul></dd>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</dl>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="startNote"><span class="type-signature"></span>startNote<span class="type-signature"></span></h4>
|
<h4 class="name" id="startNote"><span class="type-signature"></span>startNote<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
@@ -534,6 +471,375 @@ the backend.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="createDataNote"><span class="type-signature"></span>createDataNote<span class="signature">(parentNoteId, title, content)</span><span class="type-signature"> → {Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="description">
|
||||||
|
Create data note - data in this context means object serializable to JSON. Created note will be of type 'code' and
|
||||||
|
JSON MIME type. See also createNewNote() for more options.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Parameters:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="params">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<th>Name</th>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<th class="last">Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>parentNoteId</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>title</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>content</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">object</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line204">line 204</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}></span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="createNewNote"><span class="type-signature"></span>createNewNote<span class="signature">(params<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Parameters:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
<table class="params">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<th>Name</th>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Attributes</th>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<th class="last">Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>params</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type"><a href="global.html#CreateNewNoteParams">CreateNewNoteParams</a></span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="attributes">
|
||||||
|
|
||||||
|
<optional><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line231">line 231</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="param-desc">
|
||||||
|
object contains newly created entities note and branch
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}></span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="createNote"><span class="type-signature"></span>createNote<span class="signature">(parentNoteId, title, content<span class="signature-attributes">opt</span>, extraOptions<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}>}</span></h4>
|
<h4 class="name" id="createNote"><span class="type-signature"></span>createNote<span class="signature">(parentNoteId, title, content<span class="signature-attributes">opt</span>, extraOptions<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
@@ -748,6 +1054,8 @@ the backend.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="important tag-deprecated">Deprecated:</dt><dd><ul class="dummy"><li>please use createNote() API method instead</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -760,7 +1068,7 @@ the backend.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line198">line 198</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line259">line 259</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -818,7 +1126,7 @@ the backend.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="createNoteAndRefresh"><span class="type-signature"></span>createNoteAndRefresh<span class="signature">(parentNoteId, title, content<span class="signature-attributes">opt</span>, extraOptions<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}>}</span></h4>
|
<h4 class="name" id="createTextNote"><span class="type-signature"></span>createTextNote<span class="signature">(parentNoteId, title, content)</span><span class="type-signature"> → {Promise.<{note: <a href="Note.html">Note</a>, branch: <a href="Branch.html">Branch</a>}>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -826,7 +1134,7 @@ the backend.
|
|||||||
|
|
||||||
|
|
||||||
<div class="description">
|
<div class="description">
|
||||||
Creates new note according to given params and force all connected clients to refresh their tree.
|
Create text note. See also createNewNote() for more options.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -850,12 +1158,8 @@ the backend.
|
|||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
<th>Attributes</th>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<th>Default</th>
|
|
||||||
|
|
||||||
|
|
||||||
<th class="last">Description</th>
|
<th class="last">Description</th>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -879,22 +1183,10 @@ the backend.
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<td class="default">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
<td class="description last">create new note under this parent</td>
|
<td class="description last"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@@ -914,19 +1206,7 @@ the backend.
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<td class="default">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
<td class="description last"></td>
|
<td class="description last"></td>
|
||||||
@@ -949,62 +1229,7 @@ the backend.
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
<optional><br>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<td class="default">
|
|
||||||
|
|
||||||
""
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
<td class="description last"></td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
|
|
||||||
<td class="name"><code>extraOptions</code></td>
|
|
||||||
|
|
||||||
|
|
||||||
<td class="type">
|
|
||||||
|
|
||||||
|
|
||||||
<span class="param-type"><a href="global.html#CreateNoteExtraOptions">CreateNoteExtraOptions</a></span>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
<optional><br>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<td class="default">
|
|
||||||
|
|
||||||
{}
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
<td class="description last"></td>
|
<td class="description last"></td>
|
||||||
@@ -1048,7 +1273,7 @@ the backend.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line211">line 211</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line188">line 188</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -1076,10 +1301,6 @@ the backend.
|
|||||||
<h5>Returns:</h5>
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
<div class="param-desc">
|
|
||||||
object contains newly created entities note and branch
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
@@ -1533,7 +1754,7 @@ the backend.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line317">line 317</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line398">line 398</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -1997,7 +2218,7 @@ the backend.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line241">line 241</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line315">line 315</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -2765,7 +2986,7 @@ if some action needs to happen on only one specific instance.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line260">line 260</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line342">line 342</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -3418,7 +3639,113 @@ if some action needs to happen on only one specific instance.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line232">line 232</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line306">line 306</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">Promise.<(<a href="Note.html">Note</a>|null)></span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="getTodayNote"><span class="type-signature"></span>getTodayNote<span class="signature">()</span><span class="type-signature"> → {Promise.<(<a href="Note.html">Note</a>|null)>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="description">
|
||||||
|
Returns today's day note. If such note doesn't exist, it is created.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line323">line 323</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -3596,7 +3923,7 @@ if some action needs to happen on only one specific instance.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line251">line 251</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line333">line 333</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -3751,7 +4078,7 @@ if some action needs to happen on only one specific instance.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line269">line 269</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line351">line 351</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -3901,7 +4228,93 @@ if some action needs to happen on only one specific instance.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line224">line 224</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line298">line 298</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="refreshTree"><span class="type-signature"></span>refreshTree<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="important tag-deprecated">Deprecated:</dt><dd><ul class="dummy"><li>- this is now no-op since all the changes should be gracefully handled per widget</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line393">line 393</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -4249,7 +4662,7 @@ if some action needs to happen on only one specific instance.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="setNoteToParent"><span class="type-signature"></span>setNoteToParent<span class="signature">(noteId, prefix, parentNoteId<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="setNoteToParent"><span class="type-signature"></span>setNoteToParent<span class="signature">(noteId, prefix, parentNoteId)</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4284,8 +4697,6 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
<th>Type</th>
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
<th>Attributes</th>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4311,14 +4722,6 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4342,14 +4745,6 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4367,22 +4762,15 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
|
|
||||||
|
|
||||||
<span class="param-type">string</span>
|
<span class="param-type">string</span>
|
||||||
|
|
|
||||||
|
|
||||||
|
<span class="param-type">null</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
|
||||||
<td class="attributes">
|
|
||||||
|
|
||||||
<optional><br>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4415,6 +4803,8 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="important tag-deprecated">Deprecated:</dt><dd><ul class="dummy"><li>- this method is pretty confusing and serves specialized purpose only</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -4427,7 +4817,7 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line289">line 289</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line372">line 372</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -4560,7 +4950,7 @@ This method looks similar to toggleNoteInParent() but differs because we're look
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line276">line 276</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line358">line 358</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -4935,7 +5325,7 @@ transactional by default.
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line302">line 302</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line385">line 385</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -5009,7 +5399,7 @@ transactional by default.
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<h2><span class="attribs"><span class="type-signature"></span></span>Branch<span class="signature">(branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated)</span><span class="type-signature"></span></h2>
|
<h2><span class="attribs"><span class="type-signature"></span></span>Branch<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
<div class="class-description">Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId.
|
<div class="class-description">Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId.
|
||||||
Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree.</div>
|
Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree.</div>
|
||||||
@@ -46,7 +46,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="Branch"><span class="type-signature"></span>new Branch<span class="signature">(branchId, noteId, parentNoteId, notePosition, prefix, isExpanded, isDeleted, utcDateModified, utcDateCreated)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="Branch"><span class="type-signature"></span>new Branch<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -61,10 +61,15 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h5>Parameters:</h5>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table class="params">
|
<table class="props">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
@@ -245,6 +250,32 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>deleteId</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
|
||||||
|
|
||||||
|
<span class="param-type">null</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">ID identifying delete transaction</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>utcDateModified</code></td>
|
<td class="name"><code>utcDateModified</code></td>
|
||||||
@@ -296,8 +327,6 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
@@ -327,7 +356,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line30">line 30</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line25">line 25</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -394,7 +423,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getNote"><span class="type-signature">(async) </span>getNote<span class="signature">()</span><span class="type-signature"> → {<a href="Note.html">Note</a>|null}</span></h4>
|
<h4 class="name" id="getNote"><span class="type-signature">(async) </span>getNote<span class="signature">()</span><span class="type-signature"> → {Promise.<(<a href="Note.html">Note</a>|null)>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -442,7 +471,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line38">line 38</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line32">line 32</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -478,10 +507,109 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type"><a href="Note.html">Note</a></span>
|
<span class="param-type">Promise.<(<a href="Note.html">Note</a>|null)></span>
|
||||||
|
|
|
||||||
|
|
||||||
<span class="param-type">null</span>
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="getParentNote"><span class="type-signature">(async) </span>getParentNote<span class="signature">()</span><span class="type-signature"> → {Promise.<(<a href="Note.html">Note</a>|null)>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line37">line 37</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">Promise.<(<a href="Note.html">Note</a>|null)></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@@ -515,7 +643,7 @@ Each note can have multiple (at least one) branches, meaning it can be placed in
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -218,7 +218,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<h2><span class="attribs"><span class="type-signature"></span></span>NoteRevision<span class="signature">(noteRevisionId, noteId, type, mime, title, content, isProtected, dateModifiedFrom, dateModifiedTo, utcDateModifiedFrom, utcDateModifiedTo)</span><span class="type-signature"></span></h2>
|
<h2><span class="attribs"><span class="type-signature"></span></span>NoteRevision<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
<div class="class-description">NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning.</div>
|
<div class="class-description">NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning.</div>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="NoteRevision"><span class="type-signature"></span>new NoteRevision<span class="signature">(noteRevisionId, noteId, type, mime, title, content, isProtected, dateModifiedFrom, dateModifiedTo, utcDateModifiedFrom, utcDateModifiedTo)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="NoteRevision"><span class="type-signature"></span>new NoteRevision<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,10 +60,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h5>Parameters:</h5>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table class="params">
|
<table class="props">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
@@ -200,13 +205,36 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>content</code></td>
|
<td class="name"><code>contentLength</code></td>
|
||||||
|
|
||||||
|
|
||||||
<td class="type">
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
<span class="param-type">string</span>
|
<span class="param-type">int</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>isErased</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -229,7 +257,7 @@
|
|||||||
<td class="type">
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
<span class="param-type">string</span>
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -246,7 +274,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>dateModifiedFrom</code></td>
|
<td class="name"><code>dateLastEdited</code></td>
|
||||||
|
|
||||||
|
|
||||||
<td class="type">
|
<td class="type">
|
||||||
@@ -269,7 +297,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>dateModifiedTo</code></td>
|
<td class="name"><code>dateCreated</code></td>
|
||||||
|
|
||||||
|
|
||||||
<td class="type">
|
<td class="type">
|
||||||
@@ -292,7 +320,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>utcDateModifiedFrom</code></td>
|
<td class="name"><code>utcDateLastEdited</code></td>
|
||||||
|
|
||||||
|
|
||||||
<td class="type">
|
<td class="type">
|
||||||
@@ -315,7 +343,30 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
<td class="name"><code>utcDateModifiedTo</code></td>
|
<td class="name"><code>utcDateCreated</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>utcDateModified</code></td>
|
||||||
|
|
||||||
|
|
||||||
<td class="type">
|
<td class="type">
|
||||||
@@ -341,8 +392,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
@@ -372,7 +421,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_note_revision.js.html">entities/note_revision.js</a>, <a href="entities_note_revision.js.html#line29">line 29</a>
|
<a href="entities_note_revision.js.html">entities/note_revision.js</a>, <a href="entities_note_revision.js.html#line35">line 35</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -431,6 +480,320 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 class="subsection-title">Methods</h3>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="getContent"><span class="type-signature">(async) </span>getContent<span class="signature">()</span><span class="type-signature"> → {Promise.<*>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_revision.js.html">entities/note_revision.js</a>, <a href="entities_note_revision.js.html#line69">line 69</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">Promise.<*></span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="isStringNote"><span class="type-signature"></span>isStringNote<span class="signature">()</span><span class="type-signature"> → {boolean}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_revision.js.html">entities/note_revision.js</a>, <a href="entities_note_revision.js.html#line55">line 55</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="param-desc">
|
||||||
|
true if the note has string content (not binary)
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="setContent"><span class="type-signature">(async) </span>setContent<span class="signature">()</span><span class="type-signature"> → {Promise}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_revision.js.html">entities/note_revision.js</a>, <a href="entities_note_revision.js.html#line105">line 105</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type">Promise</span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -451,7 +814,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<h2><span class="attribs"><span class="type-signature"></span></span>Option<span class="signature">(name, value, isSynced, utcDateModified, utcDateCreated)</span><span class="type-signature"></span></h2>
|
<h2><span class="attribs"><span class="type-signature"></span></span>Option<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
<div class="class-description">Option represents name-value pair, either directly configurable by the user or some system property.</div>
|
<div class="class-description">Option represents name-value pair, either directly configurable by the user or some system property.</div>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="Option"><span class="type-signature"></span>new Option<span class="signature">(name, value, isSynced, utcDateModified, utcDateCreated)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="Option"><span class="type-signature"></span>new Option<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,10 +60,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h5>Parameters:</h5>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table class="params">
|
<table class="props">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
@@ -203,8 +208,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
@@ -313,7 +316,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<header>
|
<header>
|
||||||
|
|
||||||
<h2><span class="attribs"><span class="type-signature"></span></span>RecentNote<span class="signature">(noteId, notePath, isDeleted, utcDateModified)</span><span class="type-signature"></span></h2>
|
<h2><span class="attribs"><span class="type-signature"></span></span>RecentNote<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
<div class="class-description">RecentNote represents recently visited note.</div>
|
<div class="class-description">RecentNote represents recently visited note.</div>
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="RecentNote"><span class="type-signature"></span>new RecentNote<span class="signature">(noteId, notePath, isDeleted, utcDateModified)</span><span class="type-signature"></span></h4>
|
<h4 class="name" id="RecentNote"><span class="type-signature"></span>new RecentNote<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -60,10 +60,15 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h5>Parameters:</h5>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<table class="params">
|
<table class="props">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
@@ -180,8 +185,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dl class="details">
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
@@ -290,7 +293,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -34,10 +34,10 @@ const dateUtils = require('../services/date_utils');
|
|||||||
/**
|
/**
|
||||||
* ApiToken is an entity representing token used to authenticate against Trilium API from client applications. Currently used only by Trilium Sender.
|
* ApiToken is an entity representing token used to authenticate against Trilium API from client applications. Currently used only by Trilium Sender.
|
||||||
*
|
*
|
||||||
* @param {string} apiTokenId - primary key
|
* @property {string} apiTokenId - primary key
|
||||||
* @param {string} token
|
* @property {string} token
|
||||||
* @param {boolean} isDeleted - true if API token is deleted
|
* @property {boolean} isDeleted - true if API token is deleted
|
||||||
* @param {string} utcDateCreated
|
* @property {string} utcDateCreated
|
||||||
*
|
*
|
||||||
* @extends Entity
|
* @extends Entity
|
||||||
*/
|
*/
|
||||||
@@ -75,7 +75,7 @@ module.exports = ApiToken;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -36,16 +36,17 @@ const sql = require('../services/sql');
|
|||||||
/**
|
/**
|
||||||
* Attribute is key value pair owned by a note.
|
* Attribute is key value pair owned by a note.
|
||||||
*
|
*
|
||||||
* @param {string} attributeId
|
* @property {string} attributeId
|
||||||
* @param {string} noteId
|
* @property {string} noteId
|
||||||
* @param {string} type
|
* @property {string} type
|
||||||
* @param {string} name
|
* @property {string} name
|
||||||
* @param {string} value
|
* @property {string} value
|
||||||
* @param {int} position
|
* @property {int} position
|
||||||
* @param {boolean} isInheritable
|
* @property {boolean} isInheritable
|
||||||
* @param {boolean} isDeleted
|
* @property {boolean} isDeleted
|
||||||
* @param {string} utcDateCreated
|
* @property {string|null} deleteId - ID identifying delete transaction
|
||||||
* @param {string} utcDateModified
|
* @property {string} utcDateCreated
|
||||||
|
* @property {string} utcDateModified
|
||||||
*
|
*
|
||||||
* @extends Entity
|
* @extends Entity
|
||||||
*/
|
*/
|
||||||
@@ -72,11 +73,7 @@ class Attribute extends Entity {
|
|||||||
* @returns {Promise<Note|null>}
|
* @returns {Promise<Note|null>}
|
||||||
*/
|
*/
|
||||||
async getNote() {
|
async getNote() {
|
||||||
if (!this.__note) {
|
return await repository.getNote(this.noteId);
|
||||||
this.__note = await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.noteId]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.__note;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -91,11 +88,7 @@ class Attribute extends Entity {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.__targetNote) {
|
return await repository.getNote(this.value);
|
||||||
this.__targetNote = await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.value]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.__targetNote;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -107,6 +100,10 @@ class Attribute extends Entity {
|
|||||||
|
|
||||||
async beforeSaving() {
|
async beforeSaving() {
|
||||||
if (!this.value) {
|
if (!this.value) {
|
||||||
|
if (this.type === 'relation') {
|
||||||
|
throw new Error(`Cannot save relation ${this.name} since it does not target any note.`);
|
||||||
|
}
|
||||||
|
|
||||||
// null value isn't allowed
|
// null value isn't allowed
|
||||||
this.value = "";
|
this.value = "";
|
||||||
}
|
}
|
||||||
@@ -137,6 +134,21 @@ class Attribute extends Entity {
|
|||||||
// cannot be static!
|
// cannot be static!
|
||||||
updatePojo(pojo) {
|
updatePojo(pojo) {
|
||||||
delete pojo.isOwned;
|
delete pojo.isOwned;
|
||||||
|
delete pojo.__note;
|
||||||
|
}
|
||||||
|
|
||||||
|
createClone(type, name, value) {
|
||||||
|
return new Attribute({
|
||||||
|
noteId: this.noteId,
|
||||||
|
type: type,
|
||||||
|
name: name,
|
||||||
|
value: value,
|
||||||
|
position: this.position,
|
||||||
|
isInheritable: this.isInheritable,
|
||||||
|
isDeleted: false,
|
||||||
|
utcDateCreated: this.utcDateCreated,
|
||||||
|
utcDateModified: this.utcDateModified
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +168,7 @@ module.exports = Attribute;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -37,15 +37,16 @@ const sql = require('../services/sql');
|
|||||||
* Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId.
|
* Branch represents note's placement in the tree - it's essentially pair of noteId and parentNoteId.
|
||||||
* Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree.
|
* Each note can have multiple (at least one) branches, meaning it can be placed into multiple places in the tree.
|
||||||
*
|
*
|
||||||
* @param {string} branchId - primary key
|
* @property {string} branchId - primary key
|
||||||
* @param {string} noteId
|
* @property {string} noteId
|
||||||
* @param {string} parentNoteId
|
* @property {string} parentNoteId
|
||||||
* @param {int} notePosition
|
* @property {int} notePosition
|
||||||
* @param {string} prefix
|
* @property {string} prefix
|
||||||
* @param {boolean} isExpanded
|
* @property {boolean} isExpanded
|
||||||
* @param {boolean} isDeleted
|
* @property {boolean} isDeleted
|
||||||
* @param {string} utcDateModified
|
* @property {string|null} deleteId - ID identifying delete transaction
|
||||||
* @param {string} utcDateCreated
|
* @property {string} utcDateModified
|
||||||
|
* @property {string} utcDateCreated
|
||||||
*
|
*
|
||||||
* @extends Entity
|
* @extends Entity
|
||||||
*/
|
*/
|
||||||
@@ -53,18 +54,16 @@ class Branch extends Entity {
|
|||||||
static get entityName() { return "branches"; }
|
static get entityName() { return "branches"; }
|
||||||
static get primaryKeyName() { return "branchId"; }
|
static get primaryKeyName() { return "branchId"; }
|
||||||
// notePosition is not part of hash because it would produce a lot of updates in case of reordering
|
// notePosition is not part of hash because it would produce a lot of updates in case of reordering
|
||||||
static get hashedProperties() { return ["branchId", "noteId", "parentNoteId", "isDeleted", "prefix"]; }
|
static get hashedProperties() { return ["branchId", "noteId", "parentNoteId", "isDeleted", "deleteId", "prefix"]; }
|
||||||
|
|
||||||
constructor(row = {}) {
|
/** @returns {Promise<Note|null>} */
|
||||||
super(row);
|
async getNote() {
|
||||||
|
return await repository.getNote(this.noteId);
|
||||||
// used to detect move in note tree
|
|
||||||
this.origParentNoteId = this.parentNoteId;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Note|null} */
|
/** @returns {Promise<Note|null>} */
|
||||||
async getNote() {
|
async getParentNote() {
|
||||||
return await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.noteId]);
|
return await repository.getNote(this.parentNoteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async beforeSaving() {
|
async beforeSaving() {
|
||||||
@@ -73,6 +72,10 @@ class Branch extends Entity {
|
|||||||
this.notePosition = maxNotePos === null ? 0 : maxNotePos + 10;
|
this.notePosition = maxNotePos === null ? 0 : maxNotePos + 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!this.isExpanded) {
|
||||||
|
this.isExpanded = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.isDeleted) {
|
if (!this.isDeleted) {
|
||||||
this.isDeleted = false;
|
this.isDeleted = false;
|
||||||
}
|
}
|
||||||
@@ -88,9 +91,17 @@ class Branch extends Entity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// cannot be static!
|
createClone(parentNoteId, notePosition) {
|
||||||
updatePojo(pojo) {
|
return new Branch({
|
||||||
delete pojo.origParentNoteId;
|
noteId: this.noteId,
|
||||||
|
parentNoteId: parentNoteId,
|
||||||
|
notePosition: notePosition,
|
||||||
|
prefix: this.prefix,
|
||||||
|
isExpanded: this.isExpanded,
|
||||||
|
isDeleted: false,
|
||||||
|
utcDateCreated: this.utcDateCreated,
|
||||||
|
utcDateModified: this.utcDateModified
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +121,7 @@ module.exports = Branch;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ module.exports = Entity;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -42,8 +42,6 @@ const LABEL_DEFINITION = 'label-definition';
|
|||||||
const RELATION = 'relation';
|
const RELATION = 'relation';
|
||||||
const RELATION_DEFINITION = 'relation-definition';
|
const RELATION_DEFINITION = 'relation-definition';
|
||||||
|
|
||||||
const STRING_MIME_TYPES = ["application/x-javascript"];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This represents a Note which is a central object in the Trilium Notes project.
|
* This represents a Note which is a central object in the Trilium Notes project.
|
||||||
*
|
*
|
||||||
@@ -51,8 +49,11 @@ const STRING_MIME_TYPES = ["application/x-javascript"];
|
|||||||
* @property {string} type - one of "text", "code", "file" or "render"
|
* @property {string} type - one of "text", "code", "file" or "render"
|
||||||
* @property {string} mime - MIME type, e.g. "text/html"
|
* @property {string} mime - MIME type, e.g. "text/html"
|
||||||
* @property {string} title - note title
|
* @property {string} title - note title
|
||||||
|
* @property {int} contentLength - length of content
|
||||||
* @property {boolean} isProtected - true if note is protected
|
* @property {boolean} isProtected - true if note is protected
|
||||||
* @property {boolean} isDeleted - true if note is deleted
|
* @property {boolean} isDeleted - true if note is deleted
|
||||||
|
* @property {string|null} deleteId - ID identifying delete transaction
|
||||||
|
* @property {boolean} isErased - true if note's content is erased after it has been deleted
|
||||||
* @property {string} dateCreated - local date time (with offset)
|
* @property {string} dateCreated - local date time (with offset)
|
||||||
* @property {string} dateModified - local date time (with offset)
|
* @property {string} dateModified - local date time (with offset)
|
||||||
* @property {string} utcDateCreated
|
* @property {string} utcDateCreated
|
||||||
@@ -63,7 +64,7 @@ const STRING_MIME_TYPES = ["application/x-javascript"];
|
|||||||
class Note extends Entity {
|
class Note extends Entity {
|
||||||
static get entityName() { return "notes"; }
|
static get entityName() { return "notes"; }
|
||||||
static get primaryKeyName() { return "noteId"; }
|
static get primaryKeyName() { return "noteId"; }
|
||||||
static get hashedProperties() { return ["noteId", "title", "type", "isProtected", "isDeleted"]; }
|
static get hashedProperties() { return ["noteId", "title", "type", "mime", "isProtected", "isDeleted", "deleteId"]; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param row - object containing database row from "notes" table
|
* @param row - object containing database row from "notes" table
|
||||||
@@ -72,7 +73,7 @@ class Note extends Entity {
|
|||||||
super(row);
|
super(row);
|
||||||
|
|
||||||
this.isProtected = !!this.isProtected;
|
this.isProtected = !!this.isProtected;
|
||||||
/* true if content (meaning any kind of potentially encrypted content) is either not encrypted
|
/* true if content is either not encrypted
|
||||||
* or encrypted, but with available protected session (so effectively decrypted) */
|
* or encrypted, but with available protected session (so effectively decrypted) */
|
||||||
this.isContentAvailable = true;
|
this.isContentAvailable = true;
|
||||||
|
|
||||||
@@ -81,7 +82,7 @@ class Note extends Entity {
|
|||||||
this.isContentAvailable = protectedSessionService.isProtectedSessionAvailable();
|
this.isContentAvailable = protectedSessionService.isProtectedSessionAvailable();
|
||||||
|
|
||||||
if (this.isContentAvailable) {
|
if (this.isContentAvailable) {
|
||||||
protectedSessionService.decryptNote(this);
|
this.title = protectedSessionService.decryptString(this.title);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.title = "[protected]";
|
this.title = "[protected]";
|
||||||
@@ -116,34 +117,46 @@ class Note extends Entity {
|
|||||||
|
|
||||||
if (this.isProtected) {
|
if (this.isProtected) {
|
||||||
if (this.isContentAvailable) {
|
if (this.isContentAvailable) {
|
||||||
protectedSessionService.decryptNoteContent(this);
|
this.content = this.content === null ? null : protectedSessionService.decrypt(this.content);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.content = "";
|
this.content = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isStringNote()) {
|
|
||||||
this.content = this.content === null
|
|
||||||
? ""
|
|
||||||
: this.content.toString("UTF-8");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.content;
|
if (this.isStringNote()) {
|
||||||
|
return this.content === null
|
||||||
|
? ""
|
||||||
|
: this.content.toString("UTF-8");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return this.content;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<*>} */
|
/** @returns {Promise<*>} */
|
||||||
async getJsonContent() {
|
async getJsonContent() {
|
||||||
const content = await this.getContent();
|
const content = await this.getContent();
|
||||||
|
|
||||||
|
if (!content || !content.trim()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return JSON.parse(content);
|
return JSON.parse(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise} */
|
/** @returns {Promise} */
|
||||||
async setContent(content) {
|
async setContent(content) {
|
||||||
// force updating note itself so that dateChanged is represented correctly even for the content
|
if (content === null || content === undefined) {
|
||||||
|
throw new Error(`Cannot set null content to note ${this.noteId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
content = Buffer.isBuffer(content) ? content : Buffer.from(content);
|
||||||
|
|
||||||
|
// force updating note itself so that dateModified is represented correctly even for the content
|
||||||
this.forcedChange = true;
|
this.forcedChange = true;
|
||||||
|
this.contentLength = content.byteLength;
|
||||||
await this.save();
|
await this.save();
|
||||||
|
|
||||||
this.content = content;
|
this.content = content;
|
||||||
@@ -152,12 +165,12 @@ class Note extends Entity {
|
|||||||
noteId: this.noteId,
|
noteId: this.noteId,
|
||||||
content: content,
|
content: content,
|
||||||
utcDateModified: dateUtils.utcNowDateTime(),
|
utcDateModified: dateUtils.utcNowDateTime(),
|
||||||
hash: utils.hash(this.noteId + "|" + content)
|
hash: utils.hash(this.noteId + "|" + content.toString())
|
||||||
};
|
};
|
||||||
|
|
||||||
if (this.isProtected) {
|
if (this.isProtected) {
|
||||||
if (this.isContentAvailable) {
|
if (this.isContentAvailable) {
|
||||||
protectedSessionService.encryptNoteContent(pojo);
|
pojo.content = protectedSessionService.encrypt(pojo.content);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new Error(`Cannot update content of noteId=${this.noteId} since we're out of protected session.`);
|
throw new Error(`Cannot update content of noteId=${this.noteId} since we're out of protected session.`);
|
||||||
@@ -199,9 +212,7 @@ class Note extends Entity {
|
|||||||
|
|
||||||
/** @returns {boolean} true if the note has string content (not binary) */
|
/** @returns {boolean} true if the note has string content (not binary) */
|
||||||
isStringNote() {
|
isStringNote() {
|
||||||
return ["text", "code", "relation-map", "search"].includes(this.type)
|
return utils.isStringNote(this.type, this.mime);
|
||||||
|| this.mime.startsWith('text/')
|
|
||||||
|| STRING_MIME_TYPES.includes(this.mime);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {string} JS script environment - either "frontend" or "backend" */
|
/** @returns {string} JS script environment - either "frontend" or "backend" */
|
||||||
@@ -221,26 +232,36 @@ class Note extends Entity {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async loadOwnedAttributesToCache() {
|
||||||
|
this.__ownedAttributeCache = await repository.getEntities(`SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ?`, [this.noteId]);
|
||||||
|
return this.__ownedAttributeCache;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @returns {Promise<Attribute[]>} attributes belonging to this specific note (excludes inherited attributes)
|
* This method is a faster variant of getAttributes() which looks for only owned attributes.
|
||||||
|
* Use when inheritance is not needed and/or in batch/performance sensitive operations.
|
||||||
*
|
*
|
||||||
* This method can be significantly faster than the getAttributes()
|
* @param {string} [type] - (optional) attribute type to filter
|
||||||
|
* @param {string} [name] - (optional) attribute name to filter
|
||||||
|
* @returns {Promise<Attribute[]>} note's "owned" attributes - excluding inherited ones
|
||||||
*/
|
*/
|
||||||
async getOwnedAttributes(type, name) {
|
async getOwnedAttributes(type, name) {
|
||||||
let query = `SELECT * FROM attributes WHERE isDeleted = 0 AND noteId = ?`;
|
if (!this.__ownedAttributeCache) {
|
||||||
const params = [this.noteId];
|
await this.loadOwnedAttributesToCache();
|
||||||
|
|
||||||
if (type) {
|
|
||||||
query += ` AND type = ?`;
|
|
||||||
params.push(type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name) {
|
if (type && name) {
|
||||||
query += ` AND name = ?`;
|
return this.__ownedAttributeCache.filter(attr => attr.type === type && attr.name === name);
|
||||||
params.push(name);
|
}
|
||||||
|
else if (type) {
|
||||||
|
return this.__ownedAttributeCache.filter(attr => attr.type === type);
|
||||||
|
}
|
||||||
|
else if (name) {
|
||||||
|
return this.__ownedAttributeCache.filter(attr => attr.name === name);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return this.__ownedAttributeCache.slice();
|
||||||
}
|
}
|
||||||
|
|
||||||
return await repository.getEntities(query, params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -262,19 +283,26 @@ class Note extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - attribute name to filter
|
* @param {string} [type] - (optional) attribute type to filter
|
||||||
|
* @param {string} [name] - (optional) attribute name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's attributes, including inherited ones
|
* @returns {Promise<Attribute[]>} all note's attributes, including inherited ones
|
||||||
*/
|
*/
|
||||||
async getAttributes(name) {
|
async getAttributes(type, name) {
|
||||||
if (!this.__attributeCache) {
|
if (!this.__attributeCache) {
|
||||||
await this.loadAttributesToCache();
|
await this.loadAttributesToCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name) {
|
if (type && name) {
|
||||||
|
return this.__attributeCache.filter(attr => attr.type === type && attr.name === name);
|
||||||
|
}
|
||||||
|
else if (type) {
|
||||||
|
return this.__attributeCache.filter(attr => attr.type === type);
|
||||||
|
}
|
||||||
|
else if (name) {
|
||||||
return this.__attributeCache.filter(attr => attr.name === name);
|
return this.__attributeCache.filter(attr => attr.name === name);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return this.__attributeCache;
|
return this.__attributeCache.slice();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,7 +311,15 @@ class Note extends Entity {
|
|||||||
* @returns {Promise<Attribute[]>} all note's labels (attributes with type label), including inherited ones
|
* @returns {Promise<Attribute[]>} all note's labels (attributes with type label), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getLabels(name) {
|
async getLabels(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === LABEL);
|
return await this.getAttributes(LABEL, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} [name] - label name to filter
|
||||||
|
* @returns {Promise<Attribute[]>} all note's labels (attributes with type label), excluding inherited ones
|
||||||
|
*/
|
||||||
|
async getOwnedLabels(name) {
|
||||||
|
return await this.getOwnedAttributes(LABEL, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -291,7 +327,7 @@ class Note extends Entity {
|
|||||||
* @returns {Promise<Attribute[]>} all note's label definitions, including inherited ones
|
* @returns {Promise<Attribute[]>} all note's label definitions, including inherited ones
|
||||||
*/
|
*/
|
||||||
async getLabelDefinitions(name) {
|
async getLabelDefinitions(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === LABEL_DEFINITION);
|
return await this.getAttributes(LABEL_DEFINITION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -299,7 +335,15 @@ class Note extends Entity {
|
|||||||
* @returns {Promise<Attribute[]>} all note's relations (attributes with type relation), including inherited ones
|
* @returns {Promise<Attribute[]>} all note's relations (attributes with type relation), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getRelations(name) {
|
async getRelations(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === RELATION);
|
return await this.getAttributes(RELATION, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} [name] - relation name to filter
|
||||||
|
* @returns {Promise<Attribute[]>} all note's relations (attributes with type relation), excluding inherited ones
|
||||||
|
*/
|
||||||
|
async getOwnedRelations(name) {
|
||||||
|
return await this.getOwnedAttributes(RELATION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -322,7 +366,7 @@ class Note extends Entity {
|
|||||||
* @returns {Promise<Attribute[]>} all note's relation definitions including inherited ones
|
* @returns {Promise<Attribute[]>} all note's relation definitions including inherited ones
|
||||||
*/
|
*/
|
||||||
async getRelationDefinitions(name) {
|
async getRelationDefinitions(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === RELATION_DEFINITION);
|
return await this.getAttributes(RELATION_DEFINITION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -331,6 +375,7 @@ class Note extends Entity {
|
|||||||
*/
|
*/
|
||||||
invalidateAttributeCache() {
|
invalidateAttributeCache() {
|
||||||
this.__attributeCache = null;
|
this.__attributeCache = null;
|
||||||
|
this.__ownedAttributeCache = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<void>} */
|
/** @returns {Promise<void>} */
|
||||||
@@ -340,11 +385,10 @@ class Note extends Entity {
|
|||||||
tree(noteId, level) AS (
|
tree(noteId, level) AS (
|
||||||
SELECT ?, 0
|
SELECT ?, 0
|
||||||
UNION
|
UNION
|
||||||
SELECT branches.parentNoteId, tree.level + 1 FROM branches
|
SELECT branches.parentNoteId, tree.level + 1
|
||||||
|
FROM branches
|
||||||
JOIN tree ON branches.noteId = tree.noteId
|
JOIN tree ON branches.noteId = tree.noteId
|
||||||
JOIN notes ON notes.noteId = branches.parentNoteId
|
WHERE branches.isDeleted = 0
|
||||||
WHERE notes.isDeleted = 0
|
|
||||||
AND branches.isDeleted = 0
|
|
||||||
),
|
),
|
||||||
treeWithAttrs(noteId, level) AS (
|
treeWithAttrs(noteId, level) AS (
|
||||||
SELECT * FROM tree
|
SELECT * FROM tree
|
||||||
@@ -363,6 +407,11 @@ class Note extends Entity {
|
|||||||
// we order by noteId so that attributes from same note stay together. Actual noteId ordering doesn't matter.
|
// we order by noteId so that attributes from same note stay together. Actual noteId ordering doesn't matter.
|
||||||
|
|
||||||
const filteredAttributes = attributes.filter((attr, index) => {
|
const filteredAttributes = attributes.filter((attr, index) => {
|
||||||
|
// if this exact attribute already appears then don't include it (can happen via cloning)
|
||||||
|
if (attributes.findIndex(it => it.attributeId === attr.attributeId) !== index) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (attr.isDefinition()) {
|
if (attr.isDefinition()) {
|
||||||
const firstDefinitionIndex = attributes.findIndex(el => el.type === attr.type && el.name === attr.name);
|
const firstDefinitionIndex = attributes.findIndex(el => el.type === attr.type && el.name === attr.name);
|
||||||
|
|
||||||
@@ -406,6 +455,15 @@ class Note extends Entity {
|
|||||||
return !!await this.getAttribute(type, name);
|
return !!await this.getAttribute(type, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
|
* @param {string} name - attribute name
|
||||||
|
* @returns {Promise<boolean>} true if note has an attribute with given type and name (excluding inherited)
|
||||||
|
*/
|
||||||
|
async hasOwnedAttribute(type, name) {
|
||||||
|
return !!await this.getOwnedAttribute(type, name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
@@ -420,7 +478,7 @@ class Note extends Entity {
|
|||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<string>} attribute value of given type and name or null if no such attribute exists.
|
* @returns {Promise<string|null>} attribute value of given type and name or null if no such attribute exists.
|
||||||
*/
|
*/
|
||||||
async getAttributeValue(type, name) {
|
async getAttributeValue(type, name) {
|
||||||
const attr = await this.getAttribute(type, name);
|
const attr = await this.getAttribute(type, name);
|
||||||
@@ -428,6 +486,17 @@ class Note extends Entity {
|
|||||||
return attr ? attr.value : null;
|
return attr ? attr.value : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
|
* @param {string} name - attribute name
|
||||||
|
* @returns {Promise<string|null>} attribute value of given type and name or null if no such attribute exists.
|
||||||
|
*/
|
||||||
|
async getOwnedAttributeValue(type, name) {
|
||||||
|
const attr = await this.getOwnedAttribute(type, name);
|
||||||
|
|
||||||
|
return attr ? attr.value : null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Based on enabled, attribute is either set or removed.
|
* Based on enabled, attribute is either set or removed.
|
||||||
*
|
*
|
||||||
@@ -447,7 +516,7 @@ class Note extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates given attribute name-value pair if it doesn't exist.
|
* Update's given attribute's value or creates it if it doesn't exist
|
||||||
*
|
*
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
@@ -455,10 +524,18 @@ class Note extends Entity {
|
|||||||
* @returns {Promise<void>}
|
* @returns {Promise<void>}
|
||||||
*/
|
*/
|
||||||
async setAttribute(type, name, value) {
|
async setAttribute(type, name, value) {
|
||||||
const attributes = await this.getOwnedAttributes();
|
const attributes = await this.loadOwnedAttributesToCache();
|
||||||
let attr = attributes.find(attr => attr.type === type && (value === undefined || attr.value === value));
|
let attr = attributes.find(attr => attr.type === type && attr.name === name);
|
||||||
|
|
||||||
if (!attr) {
|
if (attr) {
|
||||||
|
if (attr.value !== value) {
|
||||||
|
attr.value = value;
|
||||||
|
await attr.save();
|
||||||
|
|
||||||
|
this.invalidateAttributeCache();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
attr = new Attribute({
|
attr = new Attribute({
|
||||||
noteId: this.noteId,
|
noteId: this.noteId,
|
||||||
type: type,
|
type: type,
|
||||||
@@ -481,10 +558,10 @@ class Note extends Entity {
|
|||||||
* @returns {Promise<void>}
|
* @returns {Promise<void>}
|
||||||
*/
|
*/
|
||||||
async removeAttribute(type, name, value) {
|
async removeAttribute(type, name, value) {
|
||||||
const attributes = await this.getOwnedAttributes();
|
const attributes = await this.loadOwnedAttributesToCache();
|
||||||
|
|
||||||
for (const attribute of attributes) {
|
for (const attribute of attributes) {
|
||||||
if (attribute.type === type && (value === undefined || value === attribute.value)) {
|
if (attribute.type === type && attribute.name === name && (value === undefined || value === attribute.value)) {
|
||||||
attribute.isDeleted = true;
|
attribute.isDeleted = true;
|
||||||
await attribute.save();
|
await attribute.save();
|
||||||
|
|
||||||
@@ -493,42 +570,104 @@ class Note extends Entity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {Promise<Attribute>}
|
||||||
|
*/
|
||||||
|
async addAttribute(type, name, value = "") {
|
||||||
|
const attr = new Attribute({
|
||||||
|
noteId: this.noteId,
|
||||||
|
type: type,
|
||||||
|
name: name,
|
||||||
|
value: value
|
||||||
|
});
|
||||||
|
|
||||||
|
await attr.save();
|
||||||
|
|
||||||
|
this.invalidateAttributeCache();
|
||||||
|
|
||||||
|
return attr;
|
||||||
|
}
|
||||||
|
|
||||||
|
async addLabel(name, value = "") {
|
||||||
|
return await this.addAttribute(LABEL, name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
async addRelation(name, targetNoteId) {
|
||||||
|
return await this.addAttribute(RELATION, name, targetNoteId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<boolean>} true if label exists (including inherited)
|
* @returns {Promise<boolean>} true if label exists (including inherited)
|
||||||
*/
|
*/
|
||||||
async hasLabel(name) { return await this.hasAttribute(LABEL, name); }
|
async hasLabel(name) { return await this.hasAttribute(LABEL, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - label name
|
||||||
|
* @returns {Promise<boolean>} true if label exists (excluding inherited)
|
||||||
|
*/
|
||||||
|
async hasOwnedLabel(name) { return await this.hasOwnedAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<boolean>} true if relation exists (including inherited)
|
* @returns {Promise<boolean>} true if relation exists (including inherited)
|
||||||
*/
|
*/
|
||||||
async hasRelation(name) { return await this.hasAttribute(RELATION, name); }
|
async hasRelation(name) { return await this.hasAttribute(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {Promise<boolean>} true if relation exists (excluding inherited)
|
||||||
|
*/
|
||||||
|
async hasOwnedRelation(name) { return await this.hasOwnedAttribute(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<Attribute>} label if it exists, null otherwise
|
* @returns {Promise<Attribute|null>} label if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getLabel(name) { return await this.getAttribute(LABEL, name); }
|
async getLabel(name) { return await this.getAttribute(LABEL, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - label name
|
||||||
|
* @returns {Promise<Attribute|null>} label if it exists, null otherwise
|
||||||
|
*/
|
||||||
|
async getOwnedLabel(name) { return await this.getOwnedAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<Attribute>} relation if it exists, null otherwise
|
* @returns {Promise<Attribute|null>} relation if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getRelation(name) { return await this.getAttribute(RELATION, name); }
|
async getRelation(name) { return await this.getAttribute(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {Promise<Attribute|null>} relation if it exists, null otherwise
|
||||||
|
*/
|
||||||
|
async getOwnedRelation(name) { return await this.getOwnedAttribute(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<string>} label value if label exists, null otherwise
|
* @returns {Promise<string|null>} label value if label exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getLabelValue(name) { return await this.getAttributeValue(LABEL, name); }
|
async getLabelValue(name) { return await this.getAttributeValue(LABEL, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - label name
|
||||||
|
* @returns {Promise<string|null>} label value if label exists, null otherwise
|
||||||
|
*/
|
||||||
|
async getOwnedLabelValue(name) { return await this.getOwnedAttributeValue(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<string>} relation value if relation exists, null otherwise
|
* @returns {Promise<string|null>} relation value if relation exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getRelationValue(name) { return await this.getAttributeValue(RELATION, name); }
|
async getRelationValue(name) { return await this.getAttributeValue(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {Promise<string|null>} relation value if relation exists, null otherwise
|
||||||
|
*/
|
||||||
|
async getOwnedRelationValue(name) { return await this.getOwnedAttributeValue(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
* @returns {Promise<Note>|null} target note of the relation or null (if target is empty or note was not found)
|
* @returns {Promise<Note>|null} target note of the relation or null (if target is empty or note was not found)
|
||||||
@@ -539,6 +678,16 @@ class Note extends Entity {
|
|||||||
return relation ? await repository.getNote(relation.value) : null;
|
return relation ? await repository.getNote(relation.value) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name
|
||||||
|
* @returns {Promise<Note>|null} target note of the relation or null (if target is empty or note was not found)
|
||||||
|
*/
|
||||||
|
async getOwnedRelationTarget(name) {
|
||||||
|
const relation = await this.getOwnedRelation(name);
|
||||||
|
|
||||||
|
return relation ? await repository.getNote(relation.value) : null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Based on enabled, label is either set or removed.
|
* Based on enabled, label is either set or removed.
|
||||||
*
|
*
|
||||||
@@ -560,7 +709,7 @@ class Note extends Entity {
|
|||||||
async toggleRelation(enabled, name, value) { return await this.toggleAttribute(RELATION, enabled, name, value); }
|
async toggleRelation(enabled, name, value) { return await this.toggleAttribute(RELATION, enabled, name, value); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create label name-value pair if it doesn't exist yet.
|
* Update's given label's value or creates it if it doesn't exist
|
||||||
*
|
*
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @param {string} [value] - label value
|
* @param {string} [value] - label value
|
||||||
@@ -569,7 +718,7 @@ class Note extends Entity {
|
|||||||
async setLabel(name, value) { return await this.setAttribute(LABEL, name, value); }
|
async setLabel(name, value) { return await this.setAttribute(LABEL, name, value); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create relation name-value pair if it doesn't exist yet.
|
* Update's given relation's value or creates it if it doesn't exist
|
||||||
*
|
*
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @param {string} [value] - relation value (noteId)
|
* @param {string} [value] - relation value (noteId)
|
||||||
@@ -690,9 +839,9 @@ class Note extends Entity {
|
|||||||
SELECT *
|
SELECT *
|
||||||
FROM attributes
|
FROM attributes
|
||||||
WHERE noteId = ? AND
|
WHERE noteId = ? AND
|
||||||
isDeleted = 0 AND
|
isDeleted = 0 AND
|
||||||
type = 'relation' AND
|
type = 'relation' AND
|
||||||
name IN ('internal-link', 'image-link', 'relation-map-link')`, [this.noteId]);
|
name IN ('internalLink', 'imageLink', 'relationMapLink', 'includeNoteLink')`, [this.noteId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -749,6 +898,36 @@ class Note extends Entity {
|
|||||||
AND parent_notes.isDeleted = 0`, [this.noteId]);
|
AND parent_notes.isDeleted = 0`, [this.noteId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return {Promise<string[][]>} - array of notePaths (each represented by array of noteIds constituting the particular note path)
|
||||||
|
*/
|
||||||
|
async getAllNotePaths() {
|
||||||
|
if (this.noteId === 'root') {
|
||||||
|
return [['root']];
|
||||||
|
}
|
||||||
|
|
||||||
|
const notePaths = [];
|
||||||
|
|
||||||
|
for (const parentNote of await this.getParentNotes()) {
|
||||||
|
for (const parentPath of await parentNote.getAllNotePaths()) {
|
||||||
|
parentPath.push(this.noteId);
|
||||||
|
notePaths.push(parentPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return notePaths;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ancestorNoteId
|
||||||
|
* @return {Promise<boolean>} - true if ancestorNoteId occurs in at least one of the note's paths
|
||||||
|
*/
|
||||||
|
async isDescendantOfNote(ancestorNoteId) {
|
||||||
|
const notePaths = await this.getAllNotePaths();
|
||||||
|
|
||||||
|
return notePaths.some(path => path.includes(ancestorNoteId));
|
||||||
|
}
|
||||||
|
|
||||||
beforeSaving() {
|
beforeSaving() {
|
||||||
if (!this.isDeleted) {
|
if (!this.isDeleted) {
|
||||||
this.isDeleted = false;
|
this.isDeleted = false;
|
||||||
@@ -762,6 +941,10 @@ class Note extends Entity {
|
|||||||
this.utcDateCreated = dateUtils.utcNowDateTime();
|
this.utcDateCreated = dateUtils.utcNowDateTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.contentLength === undefined) {
|
||||||
|
this.contentLength = -1;
|
||||||
|
}
|
||||||
|
|
||||||
super.beforeSaving();
|
super.beforeSaving();
|
||||||
|
|
||||||
if (this.isChanged) {
|
if (this.isChanged) {
|
||||||
@@ -774,7 +957,7 @@ class Note extends Entity {
|
|||||||
updatePojo(pojo) {
|
updatePojo(pojo) {
|
||||||
if (pojo.isProtected) {
|
if (pojo.isProtected) {
|
||||||
if (this.isContentAvailable) {
|
if (this.isContentAvailable) {
|
||||||
protectedSessionService.encryptNote(pojo);
|
pojo.title = protectedSessionService.encrypt(pojo.title);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// updating protected note outside of protected session means we will keep original ciphertexts
|
// updating protected note outside of protected session means we will keep original ciphertexts
|
||||||
@@ -784,7 +967,9 @@ class Note extends Entity {
|
|||||||
|
|
||||||
delete pojo.isContentAvailable;
|
delete pojo.isContentAvailable;
|
||||||
delete pojo.__attributeCache;
|
delete pojo.__attributeCache;
|
||||||
|
delete pojo.__ownedAttributeCache;
|
||||||
delete pojo.content;
|
delete pojo.content;
|
||||||
|
/** zero references to contentHash, probably can be removed */
|
||||||
delete pojo.contentHash;
|
delete pojo.contentHash;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -805,7 +990,7 @@ module.exports = Note;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -31,28 +31,34 @@
|
|||||||
const Entity = require('./entity');
|
const Entity = require('./entity');
|
||||||
const protectedSessionService = require('../services/protected_session');
|
const protectedSessionService = require('../services/protected_session');
|
||||||
const repository = require('../services/repository');
|
const repository = require('../services/repository');
|
||||||
|
const utils = require('../services/utils');
|
||||||
|
const sql = require('../services/sql');
|
||||||
|
const dateUtils = require('../services/date_utils');
|
||||||
|
const syncTableService = require('../services/sync_table');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning.
|
* NoteRevision represents snapshot of note's title and content at some point in the past. It's used for seamless note versioning.
|
||||||
*
|
*
|
||||||
* @param {string} noteRevisionId
|
* @property {string} noteRevisionId
|
||||||
* @param {string} noteId
|
* @property {string} noteId
|
||||||
* @param {string} type
|
* @property {string} type
|
||||||
* @param {string} mime
|
* @property {string} mime
|
||||||
* @param {string} title
|
* @property {string} title
|
||||||
* @param {string} content
|
* @property {int} contentLength
|
||||||
* @param {string} isProtected
|
* @property {boolean} isErased
|
||||||
* @param {string} dateModifiedFrom
|
* @property {boolean} isProtected
|
||||||
* @param {string} dateModifiedTo
|
* @property {string} dateLastEdited
|
||||||
* @param {string} utcDateModifiedFrom
|
* @property {string} dateCreated
|
||||||
* @param {string} utcDateModifiedTo
|
* @property {string} utcDateLastEdited
|
||||||
|
* @property {string} utcDateCreated
|
||||||
|
* @property {string} utcDateModified
|
||||||
*
|
*
|
||||||
* @extends Entity
|
* @extends Entity
|
||||||
*/
|
*/
|
||||||
class NoteRevision extends Entity {
|
class NoteRevision extends Entity {
|
||||||
static get entityName() { return "note_revisions"; }
|
static get entityName() { return "note_revisions"; }
|
||||||
static get primaryKeyName() { return "noteRevisionId"; }
|
static get primaryKeyName() { return "noteRevisionId"; }
|
||||||
static get hashedProperties() { return ["noteRevisionId", "noteId", "title", "content", "isProtected", "dateModifiedFrom", "dateModifiedTo", "utcDateModifiedFrom", "utcDateModifiedTo"]; }
|
static get hashedProperties() { return ["noteRevisionId", "noteId", "title", "contentLength", "isErased", "isProtected", "dateLastEdited", "dateCreated", "utcDateLastEdited", "utcDateCreated", "utcDateModified"]; }
|
||||||
|
|
||||||
constructor(row) {
|
constructor(row) {
|
||||||
super(row);
|
super(row);
|
||||||
@@ -60,20 +66,120 @@ class NoteRevision extends Entity {
|
|||||||
this.isProtected = !!this.isProtected;
|
this.isProtected = !!this.isProtected;
|
||||||
|
|
||||||
if (this.isProtected) {
|
if (this.isProtected) {
|
||||||
protectedSessionService.decryptNoteRevision(this);
|
if (protectedSessionService.isProtectedSessionAvailable()) {
|
||||||
|
this.title = protectedSessionService.decryptString(this.title);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.title = "[Protected]";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async getNote() {
|
async getNote() {
|
||||||
return await repository.getEntity("SELECT * FROM notes WHERE noteId = ?", [this.noteId]);
|
return await repository.getNote(this.noteId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {boolean} true if the note has string content (not binary) */
|
||||||
|
isStringNote() {
|
||||||
|
return utils.isStringNote(this.type, this.mime);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Note revision content has quite special handling - it's not a separate entity, but a lazily loaded
|
||||||
|
* part of NoteRevision entity with it's own sync. Reason behind this hybrid design is that
|
||||||
|
* content can be quite large and it's not necessary to load it / fill memory for any note access even
|
||||||
|
* if we don't need a content, especially for bulk operations like search.
|
||||||
|
*
|
||||||
|
* This is the same approach as is used for Note's content.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @returns {Promise<*>} */
|
||||||
|
async getContent(silentNotFoundError = false) {
|
||||||
|
if (this.content === undefined) {
|
||||||
|
const res = await sql.getRow(`SELECT content, hash FROM note_revision_contents WHERE noteRevisionId = ?`, [this.noteRevisionId]);
|
||||||
|
|
||||||
|
if (!res) {
|
||||||
|
if (silentNotFoundError) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error("Cannot find note revision content for noteRevisionId=" + this.noteRevisionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.content = res.content;
|
||||||
|
|
||||||
|
if (this.isProtected) {
|
||||||
|
if (protectedSessionService.isProtectedSessionAvailable()) {
|
||||||
|
this.content = protectedSessionService.decrypt(this.content);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.content = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.isStringNote()) {
|
||||||
|
return this.content === null
|
||||||
|
? ""
|
||||||
|
: this.content.toString("UTF-8");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return this.content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {Promise} */
|
||||||
|
async setContent(content) {
|
||||||
|
// force updating note itself so that utcDateModified is represented correctly even for the content
|
||||||
|
this.forcedChange = true;
|
||||||
|
this.contentLength = content === null ? 0 : content.length;
|
||||||
|
await this.save();
|
||||||
|
|
||||||
|
this.content = content;
|
||||||
|
|
||||||
|
const pojo = {
|
||||||
|
noteRevisionId: this.noteRevisionId,
|
||||||
|
content: content,
|
||||||
|
utcDateModified: dateUtils.utcNowDateTime(),
|
||||||
|
hash: utils.hash(this.noteRevisionId + "|" + content)
|
||||||
|
};
|
||||||
|
|
||||||
|
if (this.isProtected) {
|
||||||
|
if (protectedSessionService.isProtectedSessionAvailable()) {
|
||||||
|
pojo.content = protectedSessionService.encrypt(pojo.content);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Error(`Cannot update content of noteRevisionId=${this.noteRevisionId} since we're out of protected session.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await sql.upsert("note_revision_contents", "noteRevisionId", pojo);
|
||||||
|
|
||||||
|
await syncTableService.addNoteRevisionContentSync(this.noteRevisionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
beforeSaving() {
|
beforeSaving() {
|
||||||
if (this.isProtected) {
|
super.beforeSaving();
|
||||||
protectedSessionService.encryptNoteRevision(this);
|
|
||||||
|
if (this.isChanged) {
|
||||||
|
this.utcDateModified = dateUtils.utcNowDateTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// cannot be static!
|
||||||
|
updatePojo(pojo) {
|
||||||
|
if (pojo.isProtected) {
|
||||||
|
if (protectedSessionService.isProtectedSessionAvailable()) {
|
||||||
|
pojo.title = protectedSessionService.encrypt(pojo.title);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// updating protected note outside of protected session means we will keep original ciphertexts
|
||||||
|
delete pojo.title;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
super.beforeSaving();
|
delete pojo.content;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,7 +199,7 @@ module.exports = NoteRevision;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -34,11 +34,11 @@ const dateUtils = require('../services/date_utils');
|
|||||||
/**
|
/**
|
||||||
* Option represents name-value pair, either directly configurable by the user or some system property.
|
* Option represents name-value pair, either directly configurable by the user or some system property.
|
||||||
*
|
*
|
||||||
* @param {string} name
|
* @property {string} name
|
||||||
* @param {string} value
|
* @property {string} value
|
||||||
* @param {boolean} isSynced
|
* @property {boolean} isSynced
|
||||||
* @param {string} utcDateModified
|
* @property {string} utcDateModified
|
||||||
* @param {string} utcDateCreated
|
* @property {string} utcDateCreated
|
||||||
*
|
*
|
||||||
* @extends Entity
|
* @extends Entity
|
||||||
*/
|
*/
|
||||||
@@ -82,7 +82,7 @@ module.exports = Option;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -34,10 +34,10 @@ const dateUtils = require('../services/date_utils');
|
|||||||
/**
|
/**
|
||||||
* RecentNote represents recently visited note.
|
* RecentNote represents recently visited note.
|
||||||
*
|
*
|
||||||
* @param {string} noteId
|
* @property {string} noteId
|
||||||
* @param {string} notePath
|
* @property {string} notePath
|
||||||
* @param {boolean} isDeleted
|
* @property {boolean} isDeleted
|
||||||
* @param {string} utcDateModified
|
* @property {string} utcDateModified
|
||||||
*
|
*
|
||||||
* @extends Entity
|
* @extends Entity
|
||||||
*/
|
*/
|
||||||
@@ -75,7 +75,7 @@ module.exports = RecentNote;</code></pre>
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -102,6 +102,313 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="CreateNewNoteParams">CreateNewNoteParams</h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Type:</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<span class="param-type">object</span>
|
||||||
|
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<table class="props">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<th>Name</th>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<th class="last">Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>parentNoteId</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">MANDATORY</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>title</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">MANDATORY</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>content</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
|
||||||
|
|
||||||
|
<span class="param-type">buffer</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">MANDATORY</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>type</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">text, code, file, image, search, book, relation-map - MANDATORY</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>mime</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">value is derived from default mimes for type</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>isProtected</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">default is false</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>isExpanded</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">default is false</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>prefix</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">default is empty string</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>notePosition</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">int</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">default is last existing notePosition in a parent + 10</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line212">line 212</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="CreateNoteAttribute">CreateNoteAttribute</h4>
|
<h4 class="name" id="CreateNoteAttribute">CreateNoteAttribute</h4>
|
||||||
|
|
||||||
|
|
||||||
@@ -290,6 +597,194 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="CreateNoteAttribute">CreateNoteAttribute</h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Type:</h5>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
|
||||||
|
<span class="param-type">object</span>
|
||||||
|
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<table class="props">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<th>Name</th>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Attributes</th>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<th class="last">Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>type</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="attributes">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">attribute type - label, relation etc.</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>name</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="attributes">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">attribute name</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
<td class="name"><code>value</code></td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="attributes">
|
||||||
|
|
||||||
|
<optional><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last">attribute value</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line233">line 233</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="CreateNoteExtraOptions">CreateNoteExtraOptions</h4>
|
<h4 class="name" id="CreateNoteExtraOptions">CreateNoteExtraOptions</h4>
|
||||||
|
|
||||||
|
|
||||||
@@ -558,7 +1053,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line180">line 180</a>
|
<a href="services_backend_script_api.js.html">services/backend_script_api.js</a>, <a href="services_backend_script_api.js.html#line240">line 240</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -594,7 +1089,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -198,6 +198,66 @@ function BackendScriptApi(currentNote, apiParams) {
|
|||||||
*/
|
*/
|
||||||
this.toggleNoteInParent = cloningService.toggleNoteInParent;
|
this.toggleNoteInParent = cloningService.toggleNoteInParent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} CreateNoteAttribute
|
||||||
|
* @property {string} type - attribute type - label, relation etc.
|
||||||
|
* @property {string} name - attribute name
|
||||||
|
* @property {string} [value] - attribute value
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create text note. See also createNewNote() for more options.
|
||||||
|
*
|
||||||
|
* @param {string} parentNoteId
|
||||||
|
* @param {string} title
|
||||||
|
* @param {string} content
|
||||||
|
* @return {Promise<{note: Note, branch: Branch}>}
|
||||||
|
*/
|
||||||
|
this.createTextNote = async (parentNoteId, title, content = '') => await noteService.createNewNote({
|
||||||
|
parentNoteId,
|
||||||
|
title,
|
||||||
|
content,
|
||||||
|
type: 'text'
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create data note - data in this context means object serializable to JSON. Created note will be of type 'code' and
|
||||||
|
* JSON MIME type. See also createNewNote() for more options.
|
||||||
|
*
|
||||||
|
* @param {string} parentNoteId
|
||||||
|
* @param {string} title
|
||||||
|
* @param {object} content
|
||||||
|
* @return {Promise<{note: Note, branch: Branch}>}
|
||||||
|
*/
|
||||||
|
this.createDataNote = async (parentNoteId, title, content = {}) => await noteService.createNewNote({
|
||||||
|
parentNoteId,
|
||||||
|
title,
|
||||||
|
content: JSON.stringify(content, null, '\t'),
|
||||||
|
type: 'code',
|
||||||
|
mime: 'application/json'
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {object} CreateNewNoteParams
|
||||||
|
* @property {string} parentNoteId - MANDATORY
|
||||||
|
* @property {string} title - MANDATORY
|
||||||
|
* @property {string|buffer} content - MANDATORY
|
||||||
|
* @property {string} type - text, code, file, image, search, book, relation-map - MANDATORY
|
||||||
|
* @property {string} mime - value is derived from default mimes for type
|
||||||
|
* @property {boolean} isProtected - default is false
|
||||||
|
* @property {boolean} isExpanded - default is false
|
||||||
|
* @property {string} prefix - default is empty string
|
||||||
|
* @property {int} notePosition - default is last existing notePosition in a parent + 10
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @method
|
||||||
|
*
|
||||||
|
* @param {CreateNewNoteParams} [params]
|
||||||
|
* @returns {Promise<{note: Note, branch: Branch}>} object contains newly created entities note and branch
|
||||||
|
*/
|
||||||
|
this.createNewNote = noteService.createNewNote;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {object} CreateNoteAttribute
|
* @typedef {object} CreateNoteAttribute
|
||||||
* @property {string} type - attribute type - label, relation etc.
|
* @property {string} type - attribute type - label, relation etc.
|
||||||
@@ -216,6 +276,7 @@ function BackendScriptApi(currentNote, apiParams) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @method
|
* @method
|
||||||
|
* @deprecated please use createNote() API method instead
|
||||||
*
|
*
|
||||||
* @param {string} parentNoteId - create new note under this parent
|
* @param {string} parentNoteId - create new note under this parent
|
||||||
* @param {string} title
|
* @param {string} title
|
||||||
@@ -223,25 +284,38 @@ function BackendScriptApi(currentNote, apiParams) {
|
|||||||
* @param {CreateNoteExtraOptions} [extraOptions={}]
|
* @param {CreateNoteExtraOptions} [extraOptions={}]
|
||||||
* @returns {Promise<{note: Note, branch: Branch}>} object contains newly created entities note and branch
|
* @returns {Promise<{note: Note, branch: Branch}>} object contains newly created entities note and branch
|
||||||
*/
|
*/
|
||||||
this.createNote = noteService.createNote;
|
this.createNote = async (parentNoteId, title, content = "", extraOptions= {}) => {
|
||||||
|
extraOptions.parentNoteId = parentNoteId;
|
||||||
|
extraOptions.title = title;
|
||||||
|
|
||||||
/**
|
const parentNote = await repository.getNote(parentNoteId);
|
||||||
* Creates new note according to given params and force all connected clients to refresh their tree.
|
|
||||||
*
|
|
||||||
* @method
|
|
||||||
*
|
|
||||||
* @param {string} parentNoteId - create new note under this parent
|
|
||||||
* @param {string} title
|
|
||||||
* @param {string} [content=""]
|
|
||||||
* @param {CreateNoteExtraOptions} [extraOptions={}]
|
|
||||||
* @returns {Promise<{note: Note, branch: Branch}>} object contains newly created entities note and branch
|
|
||||||
*/
|
|
||||||
this.createNoteAndRefresh = async function(parentNoteId, title, content, extraOptions) {
|
|
||||||
const ret = await noteService.createNote(parentNoteId, title, content, extraOptions);
|
|
||||||
|
|
||||||
ws.refreshTree();
|
// code note type can be inherited, otherwise text is default
|
||||||
|
extraOptions.type = parentNote.type === 'code' ? 'code' : 'text';
|
||||||
return ret;
|
extraOptions.mime = parentNote.type === 'code' ? parentNote.mime : 'text/html';
|
||||||
|
|
||||||
|
if (extraOptions.json) {
|
||||||
|
extraOptions.content = JSON.stringify(content || {}, null, '\t');
|
||||||
|
extraOptions.type = 'code';
|
||||||
|
extraOptions.mime = 'application/json';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
extraOptions.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
const {note, branch} = await noteService.createNewNote(extraOptions);
|
||||||
|
|
||||||
|
for (const attr of extraOptions.attributes || []) {
|
||||||
|
await attributeService.createAttribute({
|
||||||
|
noteId: note.noteId,
|
||||||
|
type: attr.type,
|
||||||
|
name: attr.name,
|
||||||
|
value: attr.value,
|
||||||
|
isInheritable: !!attr.isInheritable
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return {note, branch};
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -268,6 +342,14 @@ function BackendScriptApi(currentNote, apiParams) {
|
|||||||
*/
|
*/
|
||||||
this.getDateNote = dateNoteService.getDateNote;
|
this.getDateNote = dateNoteService.getDateNote;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns today's day note. If such note doesn't exist, it is created.
|
||||||
|
*
|
||||||
|
* @method
|
||||||
|
* @returns {Promise<Note|null>}
|
||||||
|
*/
|
||||||
|
this.getTodayNote = dateNoteService.getTodayNote;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns note for the first date of the week of the given date.
|
* Returns note for the first date of the week of the given date.
|
||||||
*
|
*
|
||||||
@@ -310,9 +392,10 @@ function BackendScriptApi(currentNote, apiParams) {
|
|||||||
* This method looks similar to toggleNoteInParent() but differs because we're looking up branch by prefix.
|
* This method looks similar to toggleNoteInParent() but differs because we're looking up branch by prefix.
|
||||||
*
|
*
|
||||||
* @method
|
* @method
|
||||||
|
* @deprecated - this method is pretty confusing and serves specialized purpose only
|
||||||
* @param {string} noteId
|
* @param {string} noteId
|
||||||
* @param {string} prefix
|
* @param {string} prefix
|
||||||
* @param {string} [parentNoteId]
|
* @param {string|null} parentNoteId
|
||||||
*/
|
*/
|
||||||
this.setNoteToParent = treeService.setNoteToParent;
|
this.setNoteToParent = treeService.setNoteToParent;
|
||||||
|
|
||||||
@@ -332,12 +415,10 @@ function BackendScriptApi(currentNote, apiParams) {
|
|||||||
this.sql = sql;
|
this.sql = sql;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trigger tree refresh in all connected clients. This is required when some tree change happens in
|
* @method
|
||||||
* the backend.
|
* @deprecated - this is now no-op since all the changes should be gracefully handled per widget
|
||||||
*
|
|
||||||
* @returns {Promise<void>}
|
|
||||||
*/
|
*/
|
||||||
this.refreshTree = ws.refreshTree;
|
this.refreshTree = () => {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return {{syncVersion, appVersion, buildRevision, dbVersion, dataDirectory, buildDate}|*} - object representing basic info about running Trilium version
|
* @return {{syncVersion, appVersion, buildRevision, dbVersion, dataDirectory, buildDate}|*} - object representing basic info about running Trilium version
|
||||||
@@ -362,7 +443,7 @@ module.exports = BackendScriptApi;
|
|||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -183,7 +183,65 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line6">line 6</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line11">line 11</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="isDeleted"><span class="type-signature"></span>isDeleted<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line23">line 23</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -241,7 +299,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line17">line 17</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line21">line 21</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -299,7 +357,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line8">line 8</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line13">line 13</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -357,7 +415,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line13">line 13</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line17">line 17</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -415,7 +473,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line11">line 11</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line15">line 15</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -473,7 +531,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line15">line 15</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line19">line 19</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -549,7 +607,109 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line21">line 21</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line27">line 27</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5>Returns:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>
|
||||||
|
Type
|
||||||
|
</dt>
|
||||||
|
<dd>
|
||||||
|
|
||||||
|
<span class="param-type"><a href="NoteShort.html">NoteShort</a></span>
|
||||||
|
|
||||||
|
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="getParentNote"><span class="type-signature">(async) </span>getParentNote<span class="signature">()</span><span class="type-signature"> → {<a href="NoteShort.html">NoteShort</a>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line32">line 32</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -651,7 +811,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line26">line 26</a>
|
<a href="entities_branch.js.html">entities/branch.js</a>, <a href="entities_branch.js.html#line37">line 37</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -719,13 +879,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
2266
docs/frontend_api/KeyboardAction.html
Normal file
2266
docs/frontend_api/KeyboardAction.html
Normal file
File diff suppressed because it is too large
Load Diff
280
docs/frontend_api/KeyboardActions.html
Normal file
280
docs/frontend_api/KeyboardActions.html
Normal file
@@ -0,0 +1,280 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>JSDoc: Class: KeyboardActions</title>
|
||||||
|
|
||||||
|
<script src="scripts/prettify/prettify.js"> </script>
|
||||||
|
<script src="scripts/prettify/lang-css.js"> </script>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
|
||||||
|
<h1 class="page-title">Class: KeyboardActions</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
|
||||||
|
<h2><span class="attribs"><span class="type-signature"></span></span>KeyboardActions<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
|
<div class="class-description">blaa vlaa</div>
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<div class="container-overview">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Constructor</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="KeyboardActions"><span class="type-signature"></span>new KeyboardActions<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_keyboard_actions.js.html">services/keyboard_action.js</a>, <a href="services_keyboard_actions.js.html#line5">line 5</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 class="subsection-title">Members</h3>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="JUMP_TO"><span class="type-signature"></span>JUMP_TO<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h5 class="subsection-title">Properties:</h5>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<table class="props">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
|
||||||
|
<th>Type</th>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<th class="last">Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
|
||||||
|
|
||||||
|
<td class="type">
|
||||||
|
|
||||||
|
|
||||||
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<td class="description last"></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="services_keyboard_actions.js.html">services/keyboard_action.js</a>, <a href="services_keyboard_actions.js.html#line7">line 7</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="KeyboardActions.html">KeyboardActions</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<br class="clear">
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script> prettyPrint(); </script>
|
||||||
|
<script src="scripts/linenumber.js"> </script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
522
docs/frontend_api/NoteComplement.html
Normal file
522
docs/frontend_api/NoteComplement.html
Normal file
@@ -0,0 +1,522 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>JSDoc: Class: NoteComplement</title>
|
||||||
|
|
||||||
|
<script src="scripts/prettify/prettify.js"> </script>
|
||||||
|
<script src="scripts/prettify/lang-css.js"> </script>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
|
||||||
|
<h1 class="page-title">Class: NoteComplement</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
|
||||||
|
<h2><span class="attribs"><span class="type-signature"></span></span>NoteComplement<span class="signature">()</span><span class="type-signature"></span></h2>
|
||||||
|
|
||||||
|
<div class="class-description">Complements the NoteShort with the main note content and other extra attributes</div>
|
||||||
|
|
||||||
|
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<div class="container-overview">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Constructor</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="NoteComplement"><span class="type-signature"></span>new NoteComplement<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line5">line 5</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 class="subsection-title">Members</h3>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="content"><span class="type-signature"></span>content<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line10">line 10</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="dateCreated"><span class="type-signature"></span>dateCreated<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line13">line 13</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="dateModified"><span class="type-signature"></span>dateModified<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line16">line 16</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="noteId"><span class="type-signature"></span>noteId<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line7">line 7</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="utcDateCreated"><span class="type-signature"></span>utcDateCreated<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line19">line 19</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="utcDateModified"><span class="type-signature"></span>utcDateModified<span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="entities_note_complement.js.html">entities/note_complement.js</a>, <a href="entities_note_complement.js.html#line22">line 22</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</article>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<br class="clear">
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script> prettyPrint(); </script>
|
||||||
|
<script src="scripts/linenumber.js"> </script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -29,6 +29,11 @@
|
|||||||
<pre class="prettyprint source linenums"><code>class Attribute {
|
<pre class="prettyprint source linenums"><code>class Attribute {
|
||||||
constructor(treeCache, row) {
|
constructor(treeCache, row) {
|
||||||
this.treeCache = treeCache;
|
this.treeCache = treeCache;
|
||||||
|
|
||||||
|
this.update(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
update(row) {
|
||||||
/** @param {string} attributeId */
|
/** @param {string} attributeId */
|
||||||
this.attributeId = row.attributeId;
|
this.attributeId = row.attributeId;
|
||||||
/** @param {string} noteId */
|
/** @param {string} noteId */
|
||||||
@@ -43,12 +48,6 @@
|
|||||||
this.position = row.position;
|
this.position = row.position;
|
||||||
/** @param {boolean} isInheritable */
|
/** @param {boolean} isInheritable */
|
||||||
this.isInheritable = row.isInheritable;
|
this.isInheritable = row.isInheritable;
|
||||||
/** @param {boolean} isDeleted */
|
|
||||||
this.isDeleted = row.isDeleted;
|
|
||||||
/** @param {string} utcDateCreated */
|
|
||||||
this.utcDateCreated = row.utcDateCreated;
|
|
||||||
/** @param {string} utcDateModified */
|
|
||||||
this.utcDateModified = row.utcDateModified;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {NoteShort} */
|
/** @returns {NoteShort} */
|
||||||
@@ -56,8 +55,17 @@
|
|||||||
return await this.treeCache.getNote(this.noteId);
|
return await this.treeCache.getNote(this.noteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get jsonValue() {
|
||||||
|
try {
|
||||||
|
return JSON.parse(this.value);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
get toString() {
|
get toString() {
|
||||||
return `Attribute(attributeId=${this.attributeId}, type=${this.type}, name=${this.name})`;
|
return `Attribute(attributeId=${this.attributeId}, type=${this.type}, name=${this.name}, value=${this.value})`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,13 +79,13 @@ export default Attribute;</code></pre>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -30,11 +30,15 @@
|
|||||||
class Branch {
|
class Branch {
|
||||||
constructor(treeCache, row) {
|
constructor(treeCache, row) {
|
||||||
this.treeCache = treeCache;
|
this.treeCache = treeCache;
|
||||||
|
|
||||||
|
this.update(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
update(row) {
|
||||||
/** @param {string} primary key */
|
/** @param {string} primary key */
|
||||||
this.branchId = row.branchId;
|
this.branchId = row.branchId;
|
||||||
/** @param {string} */
|
/** @param {string} */
|
||||||
this.noteId = row.noteId;
|
this.noteId = row.noteId;
|
||||||
this.note = null;
|
|
||||||
/** @param {string} */
|
/** @param {string} */
|
||||||
this.parentNoteId = row.parentNoteId;
|
this.parentNoteId = row.parentNoteId;
|
||||||
/** @param {int} */
|
/** @param {int} */
|
||||||
@@ -43,11 +47,18 @@ class Branch {
|
|||||||
this.prefix = row.prefix;
|
this.prefix = row.prefix;
|
||||||
/** @param {boolean} */
|
/** @param {boolean} */
|
||||||
this.isExpanded = !!row.isExpanded;
|
this.isExpanded = !!row.isExpanded;
|
||||||
|
/** @param {boolean} */
|
||||||
|
this.isDeleted = !!row.isDeleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {NoteShort} */
|
/** @returns {NoteShort} */
|
||||||
async getNote() {
|
async getNote() {
|
||||||
return await this.treeCache.getNote(this.noteId);
|
return this.treeCache.getNote(this.noteId);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {NoteShort} */
|
||||||
|
async getParentNote() {
|
||||||
|
return this.treeCache.getNote(this.parentNoteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {boolean} true if it's top level, meaning its parent is root note */
|
/** @returns {boolean} true if it's top level, meaning its parent is root note */
|
||||||
@@ -70,13 +81,13 @@ export default Branch;</code></pre>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
76
docs/frontend_api/entities_note_complement.js.html
Normal file
76
docs/frontend_api/entities_note_complement.js.html
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>JSDoc: Source: entities/note_complement.js</title>
|
||||||
|
|
||||||
|
<script src="scripts/prettify/prettify.js"> </script>
|
||||||
|
<script src="scripts/prettify/lang-css.js"> </script>
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
|
||||||
|
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div id="main">
|
||||||
|
|
||||||
|
<h1 class="page-title">Source: entities/note_complement.js</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<article>
|
||||||
|
<pre class="prettyprint source linenums"><code>/**
|
||||||
|
* Complements the NoteShort with the main note content and other extra attributes
|
||||||
|
*/
|
||||||
|
class NoteComplement {
|
||||||
|
constructor(row) {
|
||||||
|
/** @param {string} */
|
||||||
|
this.noteId = row.noteId;
|
||||||
|
|
||||||
|
/** @param {string} */
|
||||||
|
this.content = row.content;
|
||||||
|
|
||||||
|
/** @param {string} */
|
||||||
|
this.dateCreated = row.dateCreated;
|
||||||
|
|
||||||
|
/** @param {string} */
|
||||||
|
this.dateModified = row.dateModified;
|
||||||
|
|
||||||
|
/** @param {string} */
|
||||||
|
this.utcDateCreated = row.utcDateCreated;
|
||||||
|
|
||||||
|
/** @param {string} */
|
||||||
|
this.utcDateModified = row.utcDateModified;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default NoteComplement;</code></pre>
|
||||||
|
</article>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<br class="clear">
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<script> prettyPrint(); </script>
|
||||||
|
<script src="scripts/linenumber.js"> </script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -28,7 +28,6 @@
|
|||||||
<article>
|
<article>
|
||||||
<pre class="prettyprint source linenums"><code>import server from '../services/server.js';
|
<pre class="prettyprint source linenums"><code>import server from '../services/server.js';
|
||||||
import Attribute from './attribute.js';
|
import Attribute from './attribute.js';
|
||||||
import branches from "../services/branches.js";
|
|
||||||
|
|
||||||
const LABEL = 'label';
|
const LABEL = 'label';
|
||||||
const LABEL_DEFINITION = 'label-definition';
|
const LABEL_DEFINITION = 'label-definition';
|
||||||
@@ -36,33 +35,21 @@ const RELATION = 'relation';
|
|||||||
const RELATION_DEFINITION = 'relation-definition';
|
const RELATION_DEFINITION = 'relation-definition';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FIXME: rethink how attributes are cached in Note entities since they are long lived inside the cache.
|
|
||||||
* Attribute cache should be limited to "transaction".
|
|
||||||
*
|
|
||||||
* This note's representation is used in note tree and is kept in TreeCache.
|
* This note's representation is used in note tree and is kept in TreeCache.
|
||||||
*/
|
*/
|
||||||
class NoteShort {
|
class NoteShort {
|
||||||
/**
|
/**
|
||||||
* @param {TreeCache} treeCache
|
* @param {TreeCache} treeCache
|
||||||
* @param {Object.<string, Object>} row
|
* @param {Object.<string, Object>} row
|
||||||
* @param {Branch[]} branches - all relevant branches, i.e. where this note is either child or parent
|
|
||||||
*/
|
*/
|
||||||
constructor(treeCache, row, branches) {
|
constructor(treeCache, row) {
|
||||||
this.treeCache = treeCache;
|
this.treeCache = treeCache;
|
||||||
/** @param {string} */
|
|
||||||
this.noteId = row.noteId;
|
/** @type {string[]} */
|
||||||
/** @param {string} */
|
this.attributes = [];
|
||||||
this.title = row.title;
|
|
||||||
/** @param {boolean} */
|
/** @type {string[]} */
|
||||||
this.isProtected = row.isProtected;
|
this.targetRelations = [];
|
||||||
/** @param {string} one of 'text', 'code', 'file' or 'render' */
|
|
||||||
this.type = row.type;
|
|
||||||
/** @param {string} content-type, e.g. "application/json" */
|
|
||||||
this.mime = row.mime;
|
|
||||||
/** @param {boolean} */
|
|
||||||
this.archived = row.archived;
|
|
||||||
/** @param {string} */
|
|
||||||
this.cssClass = row.cssClass;
|
|
||||||
|
|
||||||
/** @type {string[]} */
|
/** @type {string[]} */
|
||||||
this.parents = [];
|
this.parents = [];
|
||||||
@@ -75,19 +62,24 @@ class NoteShort {
|
|||||||
/** @type {Object.<string, string>} */
|
/** @type {Object.<string, string>} */
|
||||||
this.childToBranch = {};
|
this.childToBranch = {};
|
||||||
|
|
||||||
for (const branch of branches) {
|
this.update(row);
|
||||||
if (this.noteId === branch.noteId) {
|
}
|
||||||
this.parents.push(branch.parentNoteId);
|
|
||||||
this.parentToBranch[branch.parentNoteId] = branch.branchId;
|
update(row) {
|
||||||
}
|
/** @param {string} */
|
||||||
else if (this.noteId === branch.parentNoteId) {
|
this.noteId = row.noteId;
|
||||||
this.children.push(branch.noteId);
|
/** @param {string} */
|
||||||
this.childToBranch[branch.noteId] = branch.branchId;
|
this.title = row.title;
|
||||||
}
|
/** @param {int} */
|
||||||
else {
|
this.contentLength = row.contentLength;
|
||||||
throw new Error(`Unknown branch ${branch.branchId} for note ${this.noteId}`);
|
/** @param {boolean} */
|
||||||
}
|
this.isProtected = !!row.isProtected;
|
||||||
}
|
/** @param {string} one of 'text', 'code', 'file' or 'render' */
|
||||||
|
this.type = row.type;
|
||||||
|
/** @param {string} content-type, e.g. "application/json" */
|
||||||
|
this.mime = row.mime;
|
||||||
|
/** @param {boolean} */
|
||||||
|
this.isDeleted = row.isDeleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
addParent(parentNoteId, branchId) {
|
addParent(parentNoteId, branchId) {
|
||||||
@@ -108,7 +100,7 @@ class NoteShort {
|
|||||||
const branchIdPos = {};
|
const branchIdPos = {};
|
||||||
|
|
||||||
for (const branchId of Object.values(this.childToBranch)) {
|
for (const branchId of Object.values(this.childToBranch)) {
|
||||||
branchIdPos[branchId] = this.treeCache.branches[branchId].notePosition;
|
branchIdPos[branchId] = this.treeCache.getBranch(branchId).notePosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.children.sort((a, b) => branchIdPos[this.childToBranch[a]] < branchIdPos[this.childToBranch[b]] ? -1 : 1);
|
this.children.sort((a, b) => branchIdPos[this.childToBranch[a]] < branchIdPos[this.childToBranch[b]] ? -1 : 1);
|
||||||
@@ -139,8 +131,13 @@ class NoteShort {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<Branch[]>} */
|
/** @returns {string[]} */
|
||||||
async getBranches() {
|
getBranchIds() {
|
||||||
|
return Object.values(this.parentToBranch);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @returns {Branch[]} */
|
||||||
|
getBranches() {
|
||||||
const branchIds = Object.values(this.parentToBranch);
|
const branchIds = Object.values(this.parentToBranch);
|
||||||
|
|
||||||
return this.treeCache.getBranches(branchIds);
|
return this.treeCache.getBranches(branchIds);
|
||||||
@@ -151,9 +148,10 @@ class NoteShort {
|
|||||||
return this.children.length > 0;
|
return this.children.length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<Branch[]>} */
|
/** @returns {Branch[]} */
|
||||||
async getChildBranches() {
|
getChildBranches() {
|
||||||
const branchIds = Object.values(this.childToBranch);
|
// don't use Object.values() to guarantee order
|
||||||
|
const branchIds = this.children.map(childNoteId => this.childToBranch[childNoteId]);
|
||||||
|
|
||||||
return this.treeCache.getBranches(branchIds);
|
return this.treeCache.getBranches(branchIds);
|
||||||
}
|
}
|
||||||
@@ -163,9 +161,9 @@ class NoteShort {
|
|||||||
return this.parents;
|
return this.parents;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<NoteShort[]>} */
|
/** @returns {NoteShort[]} */
|
||||||
async getParentNotes() {
|
getParentNotes() {
|
||||||
return await this.treeCache.getNotes(this.parents);
|
return this.treeCache.getNotesFromCache(this.parents);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {string[]} */
|
/** @returns {string[]} */
|
||||||
@@ -179,121 +177,251 @@ class NoteShort {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - attribute name to filter
|
* @param {string} [type] - (optional) attribute type to filter
|
||||||
* @returns {Promise<Attribute[]>}
|
* @param {string} [name] - (optional) attribute name to filter
|
||||||
|
* @returns {Attribute[]} all note's attributes, including inherited ones
|
||||||
*/
|
*/
|
||||||
async getAttributes(name) {
|
getOwnedAttributes(type, name) {
|
||||||
if (!this.attributeCache) {
|
const attrs = this.attributes
|
||||||
this.attributeCache = (await server.get('notes/' + this.noteId + '/attributes'))
|
.map(attributeId => this.treeCache.attributes[attributeId])
|
||||||
.map(attrRow => new Attribute(this.treeCache, attrRow));
|
.filter(attr => !!attr);
|
||||||
|
|
||||||
|
return this.__filterAttrs(attrs, type, name)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} [type] - (optional) attribute type to filter
|
||||||
|
* @param {string} [name] - (optional) attribute name to filter
|
||||||
|
* @returns {Attribute[]} all note's attributes, including inherited ones
|
||||||
|
*/
|
||||||
|
getAttributes(type, name) {
|
||||||
|
const ownedAttributes = this.getOwnedAttributes();
|
||||||
|
|
||||||
|
const attrArrs = [
|
||||||
|
ownedAttributes
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const templateAttr of ownedAttributes.filter(oa => oa.type === 'relation' && oa.name === 'template')) {
|
||||||
|
const templateNote = this.treeCache.getNoteFromCache(templateAttr.value);
|
||||||
|
|
||||||
|
if (templateNote) {
|
||||||
|
attrArrs.push(templateNote.getAttributes());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name) {
|
if (this.noteId !== 'root') {
|
||||||
return this.attributeCache.filter(attr => attr.name === name);
|
for (const parentNote of this.getParentNotes()) {
|
||||||
|
// these virtual parent-child relationships are also loaded into frontend tree cache
|
||||||
|
if (parentNote.type !== 'search') {
|
||||||
|
attrArrs.push(parentNote.getInheritableAttributes());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
return this.attributeCache;
|
const attributes = attrArrs.flat();
|
||||||
|
|
||||||
|
return this.__filterAttrs(attributes, type, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
__filterAttrs(attributes, type, name) {
|
||||||
|
if (type && name) {
|
||||||
|
return attributes.filter(attr => attr.type === type && attr.name === name);
|
||||||
|
} else if (type) {
|
||||||
|
return attributes.filter(attr => attr.type === type);
|
||||||
|
} else if (name) {
|
||||||
|
return attributes.filter(attr => attr.name === name);
|
||||||
|
} else {
|
||||||
|
return attributes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getInheritableAttributes() {
|
||||||
|
const attrs = this.getAttributes();
|
||||||
|
|
||||||
|
return attrs.filter(attr => attr.isInheritable);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - label name to filter
|
* @param {string} [name] - label name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's labels (attributes with type label), including inherited ones
|
* @returns {Attribute[]} all note's labels (attributes with type label), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getLabels(name) {
|
getOwnedLabels(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === LABEL);
|
return this.getOwnedAttributes(LABEL, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - label name to filter
|
* @param {string} [name] - label name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's label definitions, including inherited ones
|
* @returns {Attribute[]} all note's labels (attributes with type label), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getLabelDefinitions(name) {
|
getLabels(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === LABEL_DEFINITION);
|
return this.getAttributes(LABEL, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} [name] - label name to filter
|
||||||
|
* @returns {Attribute[]} all note's label definitions, including inherited ones
|
||||||
|
*/
|
||||||
|
getLabelDefinitions(name) {
|
||||||
|
return this.getAttributes(LABEL_DEFINITION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - relation name to filter
|
* @param {string} [name] - relation name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's relations (attributes with type relation), including inherited ones
|
* @returns {Attribute[]} all note's relations (attributes with type relation), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getRelations(name) {
|
getOwnedRelations(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === RELATION);
|
return this.getOwnedAttributes(RELATION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - relation name to filter
|
* @param {string} [name] - relation name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's relation definitions including inherited ones
|
* @returns {Attribute[]} all note's relations (attributes with type relation), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getRelationDefinitions(name) {
|
getRelations(name) {
|
||||||
return (await this.getAttributes(name)).filter(attr => attr.type === RELATION_DEFINITION);
|
return this.getAttributes(RELATION, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} [name] - relation name to filter
|
||||||
|
* @returns {Attribute[]} all note's relation definitions including inherited ones
|
||||||
|
*/
|
||||||
|
getRelationDefinitions(name) {
|
||||||
|
return this.getAttributes(RELATION_DEFINITION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<boolean>} true if note has an attribute with given type and name (including inherited)
|
* @returns {boolean} true if note has an attribute with given type and name (including inherited)
|
||||||
*/
|
*/
|
||||||
async hasAttribute(type, name) {
|
hasAttribute(type, name) {
|
||||||
return !!await this.getAttribute(type, name);
|
return !!this.getAttribute(type, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<Attribute>} attribute of given type and name. If there's more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.
|
* @returns {boolean} true if note has an attribute with given type and name (including inherited)
|
||||||
*/
|
*/
|
||||||
async getAttribute(type, name) {
|
hasOwnedAttribute(type, name) {
|
||||||
const attributes = await this.getAttributes();
|
return !!this.getOwnedAttribute(type, name);
|
||||||
|
|
||||||
return attributes.find(attr => attr.type === type && attr.name === name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<string>} attribute value of given type and name or null if no such attribute exists.
|
* @returns {Attribute} attribute of given type and name. If there's more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.
|
||||||
*/
|
*/
|
||||||
async getAttributeValue(type, name) {
|
getOwnedAttribute(type, name) {
|
||||||
const attr = await this.getAttribute(type, name);
|
const attributes = this.getOwnedAttributes(type, name);
|
||||||
|
|
||||||
|
return attributes.length > 0 ? attributes[0] : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
|
* @param {string} name - attribute name
|
||||||
|
* @returns {Attribute} attribute of given type and name. If there's more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.
|
||||||
|
*/
|
||||||
|
getAttribute(type, name) {
|
||||||
|
const attributes = this.getAttributes(type, name);
|
||||||
|
|
||||||
|
return attributes.length > 0 ? attributes[0] : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
|
* @param {string} name - attribute name
|
||||||
|
* @returns {string} attribute value of given type and name or null if no such attribute exists.
|
||||||
|
*/
|
||||||
|
getOwnedAttributeValue(type, name) {
|
||||||
|
const attr = this.getOwnedAttribute(type, name);
|
||||||
|
|
||||||
|
return attr ? attr.value : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
|
* @param {string} name - attribute name
|
||||||
|
* @returns {string} attribute value of given type and name or null if no such attribute exists.
|
||||||
|
*/
|
||||||
|
getAttributeValue(type, name) {
|
||||||
|
const attr = this.getAttribute(type, name);
|
||||||
|
|
||||||
return attr ? attr.value : null;
|
return attr ? attr.value : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<boolean>} true if label exists (including inherited)
|
* @returns {boolean} true if label exists (excluding inherited)
|
||||||
*/
|
*/
|
||||||
async hasLabel(name) { return await this.hasAttribute(LABEL, name); }
|
hasOwnedLabel(name) { return this.hasOwnedAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} name - relation name
|
|
||||||
* @returns {Promise<boolean>} true if relation exists (including inherited)
|
|
||||||
*/
|
|
||||||
async hasRelation(name) { return await this.hasAttribute(RELATION, name); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<Attribute>} label if it exists, null otherwise
|
* @returns {boolean} true if label exists (including inherited)
|
||||||
*/
|
*/
|
||||||
async getLabel(name) { return await this.getAttribute(LABEL, name); }
|
hasLabel(name) { return this.hasAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<Attribute>} relation if it exists, null otherwise
|
* @returns {boolean} true if relation exists (excluding inherited)
|
||||||
*/
|
*/
|
||||||
async getRelation(name) { return await this.getAttribute(RELATION, name); }
|
hasOwnedRelation(name) { return this.hasOwnedAttribute(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {boolean} true if relation exists (including inherited)
|
||||||
|
*/
|
||||||
|
hasRelation(name) { return this.hasAttribute(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<string>} label value if label exists, null otherwise
|
* @returns {Attribute} label if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getLabelValue(name) { return await this.getAttributeValue(LABEL, name); }
|
getOwnedLabel(name) { return this.getOwnedAttribute(LABEL, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - label name
|
||||||
|
* @returns {Attribute} label if it exists, null otherwise
|
||||||
|
*/
|
||||||
|
getLabel(name) { return this.getAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<string>} relation value if relation exists, null otherwise
|
* @returns {Attribute} relation if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getRelationValue(name) { return await this.getAttributeValue(RELATION, name); }
|
getOwnedRelation(name) { return this.getOwnedAttribute(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {Attribute} relation if it exists, null otherwise
|
||||||
|
*/
|
||||||
|
getRelation(name) { return this.getAttribute(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - label name
|
||||||
|
* @returns {string} label value if label exists, null otherwise
|
||||||
|
*/
|
||||||
|
getOwnedLabelValue(name) { return this.getOwnedAttributeValue(LABEL, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - label name
|
||||||
|
* @returns {string} label value if label exists, null otherwise
|
||||||
|
*/
|
||||||
|
getLabelValue(name) { return this.getAttributeValue(LABEL, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {string} relation value if relation exists, null otherwise
|
||||||
|
*/
|
||||||
|
getOwnedRelationValue(name) { return this.getOwnedAttributeValue(RELATION, name); }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} name - relation name
|
||||||
|
* @returns {string} relation value if relation exists, null otherwise
|
||||||
|
*/
|
||||||
|
getRelationValue(name) { return this.getAttributeValue(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
@@ -310,7 +438,7 @@ class NoteShort {
|
|||||||
* @returns {Promise<NoteShort[]>}
|
* @returns {Promise<NoteShort[]>}
|
||||||
*/
|
*/
|
||||||
async getRelationTargets(name) {
|
async getRelationTargets(name) {
|
||||||
const relations = await this.getRelations(name);
|
const relations = this.getRelations(name);
|
||||||
const targets = [];
|
const targets = [];
|
||||||
|
|
||||||
for (const relation of relations) {
|
for (const relation of relations) {
|
||||||
@@ -325,17 +453,17 @@ class NoteShort {
|
|||||||
* Cache is note instance scoped.
|
* Cache is note instance scoped.
|
||||||
*/
|
*/
|
||||||
invalidateAttributeCache() {
|
invalidateAttributeCache() {
|
||||||
this.attributeCache = null;
|
this.__attributeCache = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get relations which target this note
|
* Get relations which target this note
|
||||||
*
|
*
|
||||||
* @returns {Promise<Attribute[]>}
|
* @returns {Attribute[]}
|
||||||
*/
|
*/
|
||||||
async getTargetRelations() {
|
getTargetRelations() {
|
||||||
return (await server.get('notes/' + this.noteId + '/target-relations'))
|
return this.targetRelations
|
||||||
.map(attrRow => new Attribute(this.treeCache, attrRow));
|
.map(attributeId => this.treeCache.attributes[attributeId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
get toString() {
|
get toString() {
|
||||||
@@ -345,11 +473,14 @@ class NoteShort {
|
|||||||
get dto() {
|
get dto() {
|
||||||
const dto = Object.assign({}, this);
|
const dto = Object.assign({}, this);
|
||||||
delete dto.treeCache;
|
delete dto.treeCache;
|
||||||
delete dto.archived;
|
|
||||||
delete dto.attributeCache;
|
|
||||||
|
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getCssClass() {
|
||||||
|
const labels = this.getLabels('cssClass');
|
||||||
|
return labels.map(l => l.value).join(' ');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default NoteShort;</code></pre>
|
export default NoteShort;</code></pre>
|
||||||
@@ -362,13 +493,13 @@ export default NoteShort;</code></pre>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -95,6 +95,275 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3 class="subsection-title">Methods</h3>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="decorateWidget"><span class="type-signature"></span>decorateWidget<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="description">
|
||||||
|
for overriding
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="widgets_collapsible_widget.js.html">widgets/collapsible_widget.js</a>, <a href="widgets_collapsible_widget.js.html#line93">line 93</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="doRenderBody"><span class="type-signature">(async) </span>doRenderBody<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="description">
|
||||||
|
for overriding
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="widgets_collapsible_widget.js.html">widgets/collapsible_widget.js</a>, <a href="widgets_collapsible_widget.js.html#line96">line 96</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h4 class="name" id="widgetCollapsedStateChangedEvent"><span class="type-signature"></span>widgetCollapsedStateChangedEvent<span class="signature">()</span><span class="type-signature"></span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="description">
|
||||||
|
This event is used to synchronize collapsed state of all the tab-cached widgets since they are all rendered
|
||||||
|
separately but should behave uniformly for the user.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dl class="details">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<dt class="tag-source">Source:</dt>
|
||||||
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
|
<a href="widgets_collapsible_widget.js.html">widgets/collapsible_widget.js</a>, <a href="widgets_collapsible_widget.js.html#line86">line 86</a>
|
||||||
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -204,7 +473,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<td class="description last">name of the JAM icon to be used (e.g. "clock" for "jam-clock" icon)</td>
|
<td class="description last">name of the boxicon to be used (e.g. "time" for "bx-time" icon)</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|
||||||
@@ -303,7 +572,7 @@
|
|||||||
|
|
||||||
<dt class="tag-source">Source:</dt>
|
<dt class="tag-source">Source:</dt>
|
||||||
<dd class="tag-source"><ul class="dummy"><li>
|
<dd class="tag-source"><ul class="dummy"><li>
|
||||||
<a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line72">line 72</a>
|
<a href="services_frontend_script_api.js.html">services/frontend_script_api.js</a>, <a href="services_frontend_script_api.js.html#line76">line 76</a>
|
||||||
</li></ul></dd>
|
</li></ul></dd>
|
||||||
|
|
||||||
|
|
||||||
@@ -333,13 +602,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
@@ -50,13 +50,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteFull.html">NoteFull</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3><a href="global.html">Global</a></h3>
|
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Branch.html">Branch</a></li><li><a href="FrontendScriptApi.html">FrontendScriptApi</a></li><li><a href="NoteComplement.html">NoteComplement</a></li><li><a href="NoteShort.html">NoteShort</a></li></ul><h3>Global</h3><ul><li><a href="global.html#decorateWidget">decorateWidget</a></li><li><a href="global.html#doRenderBody">doRenderBody</a></li><li><a href="global.html#widgetCollapsedStateChangedEvent">widgetCollapsedStateChangedEvent</a></li></ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<br class="clear">
|
<br class="clear">
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.3</a>
|
Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script> prettyPrint(); </script>
|
<script> prettyPrint(); </script>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user