mirror of
https://github.com/zadam/trilium.git
synced 2025-10-27 16:26:31 +01:00
Compare commits
563 Commits
v0.46.8
...
v0.48.6-do
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed5eb5c6db | ||
|
|
acb50f44a1 | ||
|
|
c946030106 | ||
|
|
df0411197b | ||
|
|
600c16551a | ||
|
|
5710c9e997 | ||
|
|
550a9fa711 | ||
|
|
51348cfbad | ||
|
|
7400a6723e | ||
|
|
e57dee2f14 | ||
|
|
b02a5b872a | ||
|
|
4733de23ba | ||
|
|
57b7f6199e | ||
|
|
a9df0c485f | ||
|
|
21dedff9bf | ||
|
|
6f60cf1a86 | ||
|
|
930d29d64a | ||
|
|
c345e7031b | ||
|
|
fc46398a3c | ||
|
|
7e41226549 | ||
|
|
b0c0ed8512 | ||
|
|
5978447185 | ||
|
|
ec4d445f97 | ||
|
|
e378435fbe | ||
|
|
e4dca4750f | ||
|
|
311b98ffcb | ||
|
|
126f41ae5e | ||
|
|
4b1678c416 | ||
|
|
da74272f13 | ||
|
|
9ce224d4c5 | ||
|
|
ce57a13002 | ||
|
|
e42357f1f8 | ||
|
|
ab7d121290 | ||
|
|
5209583a73 | ||
|
|
35fc4ba9a4 | ||
|
|
7f9019322b | ||
|
|
8a455e83f0 | ||
|
|
79b8d91025 | ||
|
|
bcabe5786f | ||
|
|
a7d3dafcf1 | ||
|
|
e6af84df39 | ||
|
|
674172f0b8 | ||
|
|
7ec20f9384 | ||
|
|
6135de8507 | ||
|
|
63b0d30e74 | ||
|
|
9e29fba8da | ||
|
|
8910ae92c7 | ||
|
|
3413074235 | ||
|
|
33aa72eb97 | ||
|
|
6e0a65b59c | ||
|
|
56e49cfc19 | ||
|
|
af40d73cee | ||
|
|
50b7063811 | ||
|
|
ee1b377bc2 | ||
|
|
51dfe8bb14 | ||
|
|
e426ee3e4f | ||
|
|
a434aa113d | ||
|
|
3b551e3e4d | ||
|
|
3d98644bf6 | ||
|
|
a22e4d60b6 | ||
|
|
069fbee3a6 | ||
|
|
8b21867c5c | ||
|
|
2cc4367b37 | ||
|
|
241d1b1035 | ||
|
|
449081807e | ||
|
|
dc0d6d24bd | ||
|
|
4111a2f0e8 | ||
|
|
8ef4b2bf50 | ||
|
|
53875d26bc | ||
|
|
f505f9d65a | ||
|
|
6434889cd6 | ||
|
|
21d2ca3c54 | ||
|
|
64a3a8b561 | ||
|
|
6738f2cd24 | ||
|
|
1cdd644b8f | ||
|
|
f5dc05e79a | ||
|
|
e2c37a6f8c | ||
|
|
cfea2440fb | ||
|
|
23e34e8c02 | ||
|
|
8bd7b657f8 | ||
|
|
899d9e65fd | ||
|
|
ec732c0a98 | ||
|
|
66797f34c4 | ||
|
|
1ad25b063d | ||
|
|
e09b2902fa | ||
|
|
f6776df645 | ||
|
|
f0c672445d | ||
|
|
a033ddfcb7 | ||
|
|
d02d846024 | ||
|
|
a8b6538c4e | ||
|
|
4eb4a44331 | ||
|
|
c1e1f3df24 | ||
|
|
11e9f8403e | ||
|
|
ba676587df | ||
|
|
20696aa0ab | ||
|
|
a08690b123 | ||
|
|
79f54b4e97 | ||
|
|
973fe52275 | ||
|
|
5938e033d4 | ||
|
|
eecba725b0 | ||
|
|
fa40a5f496 | ||
|
|
abbba6501d | ||
|
|
824f5dbaac | ||
|
|
24a45b03f5 | ||
|
|
e10e18e63a | ||
|
|
7152c5e51d | ||
|
|
711af02928 | ||
|
|
df8706026e | ||
|
|
17fe9a6a1b | ||
|
|
2d08eb7366 | ||
|
|
8d42ffca6d | ||
|
|
0654dc855f | ||
|
|
0571f02830 | ||
|
|
b2b1c9ebb7 | ||
|
|
1f75b9c92f | ||
|
|
e2c4f32b5e | ||
|
|
18ffcf7880 | ||
|
|
6ae8508413 | ||
|
|
ec3b844026 | ||
|
|
a1ca538106 | ||
|
|
75fc9e2048 | ||
|
|
a1c1c7c830 | ||
|
|
e4a483aefe | ||
|
|
8c2a5d19f2 | ||
|
|
2c450fc72d | ||
|
|
831de3ffed | ||
|
|
291b434d70 | ||
|
|
a68fd5ab83 | ||
|
|
8a8bdaf80e | ||
|
|
26b89fc801 | ||
|
|
af3fd61974 | ||
|
|
f4dde84f06 | ||
|
|
bc920dc5dc | ||
|
|
896c9cec04 | ||
|
|
b37bcd294c | ||
|
|
14f24c646a | ||
|
|
fea46bb150 | ||
|
|
37c30bf88a | ||
|
|
d975acc99a | ||
|
|
c2d35dac4d | ||
|
|
5358b58191 | ||
|
|
0264e847ef | ||
|
|
c5917bfc78 | ||
|
|
533fcd06e4 | ||
|
|
192a2fe9f9 | ||
|
|
e6bc8ed3b5 | ||
|
|
8ff563ba40 | ||
|
|
d5bd9875f9 | ||
|
|
113bebed3b | ||
|
|
2fcb0c05c0 | ||
|
|
fdb7b7721d | ||
|
|
3d9260c974 | ||
|
|
8769fd71cb | ||
|
|
a2baa9bdb3 | ||
|
|
88714cce94 | ||
|
|
bc1d438075 | ||
|
|
fd00f6bd97 | ||
|
|
b041d081db | ||
|
|
fabf24a065 | ||
|
|
e3fc0968ba | ||
|
|
a766374bf4 | ||
|
|
0f693dae5e | ||
|
|
208492bee1 | ||
|
|
b0d767df69 | ||
|
|
476b8250c9 | ||
|
|
e4ba7d65e8 | ||
|
|
9c9a3fc030 | ||
|
|
b85cf07a28 | ||
|
|
bdde52f004 | ||
|
|
dd37f09309 | ||
|
|
a0caa21458 | ||
|
|
43e829ca99 | ||
|
|
ed26e32ccb | ||
|
|
5866004e23 | ||
|
|
06bcfe1aee | ||
|
|
2d82da32d4 | ||
|
|
2b017a956e | ||
|
|
0448883782 | ||
|
|
9b9be5d155 | ||
|
|
3f2ee4aefd | ||
|
|
b90ae8eb79 | ||
|
|
266807179c | ||
|
|
4023c28f5e | ||
|
|
010f075ac5 | ||
|
|
151687cd9b | ||
|
|
f24ea8137b | ||
|
|
b8d8e01908 | ||
|
|
79d492d0f0 | ||
|
|
f0af26a57b | ||
|
|
2b8c6e3dd0 | ||
|
|
061f8acf11 | ||
|
|
5cfd1c030d | ||
|
|
6e300c7cf5 | ||
|
|
167d4816fd | ||
|
|
3e5db71652 | ||
|
|
1bc50ed976 | ||
|
|
08c638c2fa | ||
|
|
5f22864a93 | ||
|
|
cfcc34fa8e | ||
|
|
635f5fdc5b | ||
|
|
d0747b125c | ||
|
|
66374bf95f | ||
|
|
d27fcaf317 | ||
|
|
0ee093f038 | ||
|
|
06eb0ce910 | ||
|
|
c59b3a0c5c | ||
|
|
08eda83700 | ||
|
|
d23bb5fd17 | ||
|
|
8cb07525cf | ||
|
|
dc4c922edb | ||
|
|
c3ed673453 | ||
|
|
3fd16a16e8 | ||
|
|
3448eba7b9 | ||
|
|
ad8f374276 | ||
|
|
19a6d89d4f | ||
|
|
b99d83af50 | ||
|
|
e050e380b9 | ||
|
|
68d599ed19 | ||
|
|
9d9bc31d91 | ||
|
|
b619a6515b | ||
|
|
13a16e8251 | ||
|
|
86a53ceebb | ||
|
|
669eaa7509 | ||
|
|
f50084dc1b | ||
|
|
3a78a75afc | ||
|
|
6e7b722bf2 | ||
|
|
4ca0f4b06b | ||
|
|
a33661d050 | ||
|
|
f1338bb643 | ||
|
|
b6b6d11ef7 | ||
|
|
17a6c94f66 | ||
|
|
e74979ccc1 | ||
|
|
e003341dff | ||
|
|
5c4369206a | ||
|
|
507a0e2e1d | ||
|
|
b381331029 | ||
|
|
af703445e1 | ||
|
|
c508217604 | ||
|
|
6a1287a3de | ||
|
|
7261ab69bc | ||
|
|
f9cfd134b7 | ||
|
|
89d28ef27c | ||
|
|
9da8d466b8 | ||
|
|
74d0626dc9 | ||
|
|
830a357b9a | ||
|
|
7b129c7c34 | ||
|
|
adc98d4515 | ||
|
|
f3959cf2aa | ||
|
|
6fdabbc73b | ||
|
|
de6ff09bb9 | ||
|
|
c82308489b | ||
|
|
98ee3b029a | ||
|
|
a6bef45a30 | ||
|
|
05d077ce28 | ||
|
|
9adf4d7e8e | ||
|
|
e2819109e9 | ||
|
|
3c8e267aad | ||
|
|
da0670188b | ||
|
|
65938c5272 | ||
|
|
7ea72632b8 | ||
|
|
9ca225b40f | ||
|
|
b68bdc5005 | ||
|
|
9e77a424a4 | ||
|
|
e25b965cb3 | ||
|
|
8d3a3d4873 | ||
|
|
c115628f1f | ||
|
|
703fbd30df | ||
|
|
5011b6a51a | ||
|
|
4cc02ffb31 | ||
|
|
1e767482b4 | ||
|
|
2035304b63 | ||
|
|
5be7f003ca | ||
|
|
b660238a40 | ||
|
|
b9ff481eb7 | ||
|
|
eebbf74517 | ||
|
|
61e78858bc | ||
|
|
0351d7eff1 | ||
|
|
9e1c9782ff | ||
|
|
b2148f4a18 | ||
|
|
16cc84be99 | ||
|
|
0265c190db | ||
|
|
32c88219c3 | ||
|
|
962d5a5674 | ||
|
|
995e6c2fef | ||
|
|
0a2807c0b3 | ||
|
|
1b9c3b0759 | ||
|
|
f1a36f6cea | ||
|
|
d9ec8bba80 | ||
|
|
02da5b598c | ||
|
|
2220c4491b | ||
|
|
fb31acc8e0 | ||
|
|
92cf2c18fa | ||
|
|
c5182b8757 | ||
|
|
e054a1694e | ||
|
|
3a7da1d561 | ||
|
|
3893f663d0 | ||
|
|
a0de3c97a5 | ||
|
|
c886583396 | ||
|
|
e48609aa68 | ||
|
|
882912826f | ||
|
|
6d51593b7d | ||
|
|
faab6be48d | ||
|
|
8debf18984 | ||
|
|
4bf1c25721 | ||
|
|
a1d7737551 | ||
|
|
2bfd7b844c | ||
|
|
ac04be4433 | ||
|
|
5e5df72020 | ||
|
|
f1344e3b95 | ||
|
|
9216e430db | ||
|
|
855b876d50 | ||
|
|
c04bbd4973 | ||
|
|
1a615398aa | ||
|
|
b557a44f34 | ||
|
|
f50bb2278c | ||
|
|
6b68068cde | ||
|
|
7ed816f1b2 | ||
|
|
f8dd8ebf1a | ||
|
|
4c64bd852e | ||
|
|
af62b07d5b | ||
|
|
4338f65e01 | ||
|
|
9a147365f5 | ||
|
|
e48bbe5b19 | ||
|
|
bdff1c1246 | ||
|
|
d4a955a3f5 | ||
|
|
07e214c564 | ||
|
|
b351157a6a | ||
|
|
56378cd0f5 | ||
|
|
a76e3f6e2d | ||
|
|
f5573fcad4 | ||
|
|
60f88574b0 | ||
|
|
65c3bcb565 | ||
|
|
ef4bc13dd1 | ||
|
|
aa901b67ed | ||
|
|
7a389baf08 | ||
|
|
57b6271c0b | ||
|
|
9532a5662f | ||
|
|
520db931ae | ||
|
|
5e19a37df7 | ||
|
|
4b6b8b1678 | ||
|
|
a3d44fbdef | ||
|
|
7fcf90437a | ||
|
|
614b1bdbaf | ||
|
|
4d213300ac | ||
|
|
b7ca3dec54 | ||
|
|
c4987c4fd1 | ||
|
|
f176191efb | ||
|
|
dc5304faa0 | ||
|
|
205f9953f9 | ||
|
|
58d61800f3 | ||
|
|
b9639bffce | ||
|
|
3c7232f427 | ||
|
|
5707b7e29a | ||
|
|
2f5d3729de | ||
|
|
bae8551652 | ||
|
|
1f5e4530c3 | ||
|
|
7d94202460 | ||
|
|
30cc566518 | ||
|
|
85933771f8 | ||
|
|
e924662a29 | ||
|
|
2985100801 | ||
|
|
d68ea201a3 | ||
|
|
7528181ca2 | ||
|
|
1302765478 | ||
|
|
5b220adc31 | ||
|
|
98dfc77195 | ||
|
|
1a0aaf4a30 | ||
|
|
79a85a0aa7 | ||
|
|
274cf7312c | ||
|
|
29e4e2afbb | ||
|
|
39f0f26f28 | ||
|
|
1a13132a69 | ||
|
|
a3847842cb | ||
|
|
b7bd5396d1 | ||
|
|
8c1c9b00e2 | ||
|
|
845f5d15c4 | ||
|
|
d18b95d87c | ||
|
|
731051154b | ||
|
|
a093508fbe | ||
|
|
5860b2eebb | ||
|
|
a4aaa49774 | ||
|
|
a4c7069856 | ||
|
|
7cad65b370 | ||
|
|
3ead734323 | ||
|
|
2451596e8c | ||
|
|
a5d702b143 | ||
|
|
439ef4a8cb | ||
|
|
8bd3e17a3b | ||
|
|
7a7c890946 | ||
|
|
cb8e551ee0 | ||
|
|
04f249e800 | ||
|
|
a65eda5e4a | ||
|
|
9645a07f2f | ||
|
|
f6dd1110e8 | ||
|
|
623200b92b | ||
|
|
4ff40ba14f | ||
|
|
16563eaba4 | ||
|
|
caa6e9ee72 | ||
|
|
f4a58a2598 | ||
|
|
cecce1df20 | ||
|
|
2030c8e995 | ||
|
|
8a9bd4deb4 | ||
|
|
8417d4a4ea | ||
|
|
5d58520949 | ||
|
|
d8d15b528e | ||
|
|
1d008cad13 | ||
|
|
ef0941479c | ||
|
|
9afea492db | ||
|
|
84246fd197 | ||
|
|
9441cb177f | ||
|
|
bcfe097dd6 | ||
|
|
a410ed1b74 | ||
|
|
2edc7dbf58 | ||
|
|
051b9dff21 | ||
|
|
de6108f95d | ||
|
|
fddab59265 | ||
|
|
1308dc20e8 | ||
|
|
e257634ccf | ||
|
|
3091119893 | ||
|
|
c035627f0a | ||
|
|
273d4e0052 | ||
|
|
77eac8f764 | ||
|
|
1af10d48a2 | ||
|
|
d13c8771ca | ||
|
|
6626f100ad | ||
|
|
ccadff5015 | ||
|
|
e41be520a8 | ||
|
|
43eb248450 | ||
|
|
f22c76d9fb | ||
|
|
b1131844d6 | ||
|
|
03f3e46f8b | ||
|
|
6f1b0b92fe | ||
|
|
219098ab53 | ||
|
|
e466c393eb | ||
|
|
d8f1c39282 | ||
|
|
cb3a5bba61 | ||
|
|
5e40c03fc9 | ||
|
|
3b1fb8024f | ||
|
|
93cae44ba0 | ||
|
|
a5ee590544 | ||
|
|
6c5b1420d2 | ||
|
|
8d8d654fe8 | ||
|
|
7494491560 | ||
|
|
6f49f870ed | ||
|
|
b9133cb683 | ||
|
|
ccac46527c | ||
|
|
dcd35b1ea2 | ||
|
|
a74741343e | ||
|
|
4ff7e0813d | ||
|
|
6d2d72fa7f | ||
|
|
30ec706d37 | ||
|
|
25ce2e4253 | ||
|
|
b5674223e5 | ||
|
|
02988ed2b3 | ||
|
|
c27f573eed | ||
|
|
c5b0c60797 | ||
|
|
025af8df02 | ||
|
|
d9e8cff00f | ||
|
|
1a4f35470c | ||
|
|
1d99c4e80b | ||
|
|
dc7c64a94d | ||
|
|
dc6a530d8c | ||
|
|
38b0d05c20 | ||
|
|
6e010dfbd7 | ||
|
|
172bdb6118 | ||
|
|
6136243d61 | ||
|
|
a88a32acae | ||
|
|
583df35231 | ||
|
|
634baae796 | ||
|
|
a674a12706 | ||
|
|
c29f1af48f | ||
|
|
51d1d8efb8 | ||
|
|
a8d72c46e4 | ||
|
|
ec36fbd83e | ||
|
|
d3cccae2df | ||
|
|
9ba514d930 | ||
|
|
79bb249f3b | ||
|
|
1fdf889ccf | ||
|
|
42510fda5c | ||
|
|
f7e86c5be0 | ||
|
|
af5b1021c7 | ||
|
|
8e1b8ab26c | ||
|
|
4311834d75 | ||
|
|
197537b159 | ||
|
|
917b259e92 | ||
|
|
44aa2834b3 | ||
|
|
58e4bd4974 | ||
|
|
479d742e85 | ||
|
|
3337487063 | ||
|
|
beb42f18fe | ||
|
|
00a27313fb | ||
|
|
564fea43a9 | ||
|
|
3d3142e20c | ||
|
|
9c679aef20 | ||
|
|
d47a55d23a | ||
|
|
052f584bf4 | ||
|
|
1dfebdf6db | ||
|
|
5314446980 | ||
|
|
6b41c26d2b | ||
|
|
463071ea4d | ||
|
|
79c5645964 | ||
|
|
2f58b6b3c8 | ||
|
|
e7909d25c6 | ||
|
|
f739dbfe87 | ||
|
|
c43b20ec2b | ||
|
|
2d0cb5b66e | ||
|
|
caf38c94c7 | ||
|
|
51db6761c8 | ||
|
|
4d110aa143 | ||
|
|
9c436cb61f | ||
|
|
926e9e12c0 | ||
|
|
c4d35fb44e | ||
|
|
1b41b92e02 | ||
|
|
903e6b7ccc | ||
|
|
c71f3c35b8 | ||
|
|
2e82b7380b | ||
|
|
6c9ac5b5ec | ||
|
|
9cd45299b1 | ||
|
|
f1f4f45c9d | ||
|
|
8644c38abc | ||
|
|
e569ae1a0d | ||
|
|
da741b522e | ||
|
|
e055d4e15e | ||
|
|
58200d6431 | ||
|
|
57db945558 | ||
|
|
2e6cd5f809 | ||
|
|
6541523e88 | ||
|
|
f60b282e09 | ||
|
|
744ed27d91 | ||
|
|
a254199746 | ||
|
|
928c8bfdf7 | ||
|
|
d5f38c0f88 | ||
|
|
56f97f1081 | ||
|
|
e648505ad3 | ||
|
|
71c3fd5cbb | ||
|
|
f9b0418333 | ||
|
|
392a00ac17 | ||
|
|
1a9919a866 | ||
|
|
9dd95b62a9 | ||
|
|
135b4fe88e | ||
|
|
b79d81a94d | ||
|
|
7e2186721f | ||
|
|
6a70e0ab97 | ||
|
|
b38a63d336 | ||
|
|
d62558d97a | ||
|
|
76aa7d1451 | ||
|
|
4f401d71a2 | ||
|
|
eb437ff642 | ||
|
|
6edc6e2825 | ||
|
|
59e8cb8c8b | ||
|
|
a4bffbfa60 | ||
|
|
70656d240b | ||
|
|
42067b3c1e | ||
|
|
0bc91da0bb | ||
|
|
5b72b577b8 | ||
|
|
ec2f8ec796 | ||
|
|
cd3f8a41af | ||
|
|
aa8bf0e60a | ||
|
|
5b3a6b5e9d | ||
|
|
81e226af6f | ||
|
|
cb558e1378 | ||
|
|
723a0e479e | ||
|
|
5b8e876b77 |
1
.github/FUNDING.yml
vendored
1
.github/FUNDING.yml
vendored
@@ -1,3 +1,4 @@
|
|||||||
# These are supported funding model platforms
|
# These are supported funding model platforms
|
||||||
|
|
||||||
github: [zadam]
|
github: [zadam]
|
||||||
|
custom: ["https://paypal.me/za4am"]
|
||||||
|
|||||||
63
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
63
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
name: Bug Report
|
||||||
|
description: Report a bug
|
||||||
|
title: "(Bug report) "
|
||||||
|
labels: "Type: Bug"
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Preflight Checklist
|
||||||
|
description: Please ensure you've completed all of the following.
|
||||||
|
options:
|
||||||
|
- label: I have searched the [issue tracker](https://www.github.com/zadam/trilium/issues) for a bug report that matches the one I want to file, without success.
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: Trilium Version
|
||||||
|
description: What version of Trilium are you using?
|
||||||
|
placeholder: 0.48.0-beta
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: What operating system are you using?
|
||||||
|
options:
|
||||||
|
- Windows
|
||||||
|
- macOS
|
||||||
|
- Ubuntu
|
||||||
|
- Other Linux
|
||||||
|
- Other (specify below)
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
attributes:
|
||||||
|
label: What is your setup?
|
||||||
|
description: https://github.com/zadam/trilium/wiki#choose-the-setup
|
||||||
|
options:
|
||||||
|
- Local (no sync)
|
||||||
|
- Local + server sync
|
||||||
|
- Server access only
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
attributes:
|
||||||
|
label: Operating System Version
|
||||||
|
description: What operating system version are you using? On Windows, click Start button > Settings > System > About. On macOS, click the Apple Menu > About This Mac. On Linux, use lsb_release or uname -a.
|
||||||
|
placeholder: "e.g. Windows 10 version 1909, macOS Catalina 10.15.7, or Ubuntu 20.04"
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: A clear and concise description of what you expected to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Actual Behavior
|
||||||
|
description: A clear description of what actually happens.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Additional Information
|
||||||
|
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
|
||||||
22
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
22
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: Report a bug
|
||||||
|
title: "(Feature request) "
|
||||||
|
labels: "Type: Enhancement"
|
||||||
|
body:
|
||||||
|
- type: checkboxes
|
||||||
|
attributes:
|
||||||
|
label: Preflight Checklist
|
||||||
|
description: Please ensure you've completed all of the following.
|
||||||
|
options:
|
||||||
|
- label: I have searched the [issue tracker](https://www.github.com/zadam/trilium/issues) for a feature request that matches the one I want to file, without success.
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Describe feature
|
||||||
|
description: A clear and concise description of what you want to be added..
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Additional Information
|
||||||
|
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.
|
||||||
71
.github/workflows/codeql-analysis.yml
vendored
Normal file
71
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# We have attempted to detect the languages in your repository. Please check
|
||||||
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
|
# supported CodeQL languages.
|
||||||
|
#
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: '37 4 * * 1'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'javascript' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||||
|
# Learn more:
|
||||||
|
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||||
|
# and modify them (or add more) to build your code if your project
|
||||||
|
# uses a compiled language
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# make bootstrap
|
||||||
|
# make release
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
53
.github/workflows/docker.yaml
vendored
Normal file
53
.github/workflows/docker.yaml
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
name: Publish Docker image
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags: [v*]
|
||||||
|
jobs:
|
||||||
|
push_to_registries:
|
||||||
|
name: Push Docker image to multiple registries
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
packages: write
|
||||||
|
contents: read
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
- name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v3
|
||||||
|
with:
|
||||||
|
images: |
|
||||||
|
zadam/trilium
|
||||||
|
ghcr.io/zadam/trilium
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}-latest
|
||||||
|
type=match,pattern=(\d+.\d+).\d+\-beta,enable=${{ endsWith(github.ref, 'beta') }},group=1,suffix=-latest
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
with:
|
||||||
|
install: true
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
- name: Log in to GitHub Docker Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Create server-package.json
|
||||||
|
run: cat package.json | grep -v electron > server-package.json
|
||||||
|
- name: Build and Push
|
||||||
|
uses: docker/build-push-action@v2.7.0
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
|
||||||
|
push: true
|
||||||
|
cache-from: type=registry,ref=zadam/trilium:buildcache
|
||||||
|
cache-to: type=registry,ref=zadam/trilium:buildcache,mode=max
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
@@ -2,7 +2,7 @@ image:
|
|||||||
file: .gitpod.dockerfile
|
file: .gitpod.dockerfile
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- before: nvm install 10 && nvm use 10
|
- before: nvm install 14.18.1 && nvm use 14.18.1
|
||||||
init: npm install
|
init: npm install
|
||||||
command: npm run start-server
|
command: npm run start-server
|
||||||
|
|
||||||
|
|||||||
5
.idea/dataSources.xml
generated
5
.idea/dataSources.xml
generated
@@ -1,11 +1,12 @@
|
|||||||
<?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="4e69c96a-8a2b-43f5-9b40-d1608f75f7a4">
|
<data-source source="LOCAL" name="SQLite - document.db" uuid="30cef30d-e704-484d-a4ca-5d3bfc2ece63">
|
||||||
<driver-ref>sqlite.xerial</driver-ref>
|
<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:$USER_HOME$/trilium-data/document.db</jdbc-url>
|
<jdbc-url>jdbc:sqlite:$PROJECT_DIR$/../trilium-data/document.db</jdbc-url>
|
||||||
|
<working-dir>$ProjectFileDir$</working-dir>
|
||||||
</data-source>
|
</data-source>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
2
.idea/jsLibraryMappings.xml
generated
2
.idea/jsLibraryMappings.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="JavaScriptLibraryMappings">
|
<component name="JavaScriptLibraryMappings">
|
||||||
<file url="PROJECT" libraries="{@types/jquery}" />
|
<includedPredefinedLibrary name="Node.js Core" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -3,7 +3,7 @@
|
|||||||
<component name="JavaScriptSettings">
|
<component name="JavaScriptSettings">
|
||||||
<option name="languageLevel" value="ES6" />
|
<option name="languageLevel" value="ES6" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_16" project-jdk-name="openjdk-16" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
10
.idea/runConfigurations.xml
generated
Normal file
10
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RunConfigurationProducerService">
|
||||||
|
<option name="ignoredProducers">
|
||||||
|
<set>
|
||||||
|
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
1
.idea/sqldialects.xml
generated
1
.idea/sqldialects.xml
generated
@@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="SqlDialectMappings">
|
<component name="SqlDialectMappings">
|
||||||
|
<file url="file://$PROJECT_DIR$" dialect="SQLite" />
|
||||||
<file url="PROJECT" dialect="SQLite" />
|
<file url="PROJECT" dialect="SQLite" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:12.19.0-alpine
|
FROM node:14.18.1-alpine
|
||||||
|
|
||||||
# Create app directory
|
# Create app directory
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
@@ -16,7 +16,7 @@ RUN set -x \
|
|||||||
make \
|
make \
|
||||||
nasm \
|
nasm \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
python \
|
python3 \
|
||||||
&& npm install --production \
|
&& npm install --production \
|
||||||
&& apk del .build-dependencies
|
&& apk del .build-dependencies
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
# Trilium注意事项
|
# Trilium笔记
|
||||||
|
|
||||||
|
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
|
||||||
|
|
||||||
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
Trilium Notes是一个分层的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://github.com/zadam/trilium/wiki/Screenshot-tour)以快速了解:
|
Trilium Notes是一个分层的笔记应用程序,专注于建立大型个人知识库。请参阅[屏幕截图](https://github.com/zadam/trilium/wiki/Screenshot-tour)以快速了解:
|
||||||
@@ -35,6 +37,8 @@ Trilium是作为桌面应用程序(Linux和Windows)或服务器上托管的W
|
|||||||
|
|
||||||
[有关文档页面的完整列表,请参见Wiki。](https://github.com/zadam/trilium/wiki/)
|
[有关文档页面的完整列表,请参见Wiki。](https://github.com/zadam/trilium/wiki/)
|
||||||
|
|
||||||
|
[中文Wiki在这里](https://github.com/baddate/trilium/wiki/)
|
||||||
|
|
||||||
您还可以阅读[个人知识库模式](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base),以获取有关如何使用Trilium的灵感。
|
您还可以阅读[个人知识库模式](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base),以获取有关如何使用Trilium的灵感。
|
||||||
|
|
||||||
## 贡献
|
## 贡献
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Trilium Notes
|
# Trilium Notes
|
||||||
|
|
||||||
|
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
|
||||||
|
|
||||||
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. See [screenshots](https://github.com/zadam/trilium/wiki/Screenshot-tour) for quick overview:
|
Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. See [screenshots](https://github.com/zadam/trilium/wiki/Screenshot-tour) for quick overview:
|
||||||
|
|
||||||
|
|||||||
63
README.ru.md
Normal file
63
README.ru.md
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
# Trilium Notes
|
||||||
|
|
||||||
|
[English](https://github.com/zadam/trilium/blob/master/README.md) | [Chinese](https://github.com/zadam/trilium/blob/master/README-ZH_CN.md) | [Russian](https://github.com/zadam/trilium/blob/master/README.ru.md)
|
||||||
|
|
||||||
|
[](https://gitter.im/trilium-notes/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
Trilium Notes – это приложение для заметок с иерархической структурой, ориентированное на создание больших персональных баз знаний. Для быстрого ознакомления посмотрите [скриншот-тур](https://github.com/zadam/trilium/wiki/Screenshot-tour):
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
|
||||||
|
* Заметки можно расположить в виде дерева произвольной глубины. Отдельную заметку можно разместить в нескольких местах дерева (см. [клонирование](https://github.com/zadam/trilium/wiki/Cloning-notes))
|
||||||
|
* Продвинутый визуальный редактор (WYSIWYG) позволяет работать с таблицами, изображениями, [формулами](https://github.com/zadam/trilium/wiki/Text-notes#math-support) и разметкой markdown, имеет [автоформатирование](https://github.com/zadam/trilium/wiki/Text-notes#autoformat)
|
||||||
|
* Редактирование [заметок с исходным кодом](https://github.com/zadam/trilium/wiki/Code-notes), включая подсветку синтаксиса
|
||||||
|
* Быстрая и простая [навигация между заметками](https://github.com/zadam/trilium/wiki/Note-navigation), полнотекстовый поиск и [выделение заметок](https://github.com/zadam/trilium/wiki/Note-hoisting) в отдельный блок
|
||||||
|
* Бесшовное [версионирование заметки](https://github.com/zadam/trilium/wiki/Note-revisions)
|
||||||
|
* Специальные [атрибуты](https://github.com/zadam/trilium/wiki/Attributes) позволяют гибко организовать структуру, используются для поиска и продвинутого [скриптинга](https://github.com/zadam/trilium/wiki/Scripts)
|
||||||
|
* [Синхронизация](https://github.com/zadam/trilium/wiki/Synchronization) заметок со своим сервером
|
||||||
|
* Надёжное [шифрование](https://github.com/zadam/trilium/wiki/Protected-notes) с детализацией по каждой заметке
|
||||||
|
* [Карты связей](https://github.com/zadam/trilium/wiki/Relation-map) и [карты ссылок](https://github.com/zadam/trilium/wiki/Link-map) для визуализации их взяимосвязей
|
||||||
|
* [Скрипты](https://github.com/zadam/trilium/wiki/Scripts) - см. [продвинутые примеры](https://github.com/zadam/trilium/wiki/Advanced-showcases)
|
||||||
|
* Хорошо масштабируется, как по удобству использования, так и по производительности до 100000 заметок
|
||||||
|
* Оптимизированный [мобильный фронтенд](https://github.com/zadam/trilium/wiki/Mobile-frontend) смартфонов и планшетов
|
||||||
|
* [Темная тема](https://github.com/zadam/trilium/wiki/Themes)
|
||||||
|
* Импорт и экпорт [Evernote](https://github.com/zadam/trilium/wiki/Evernote-import) и данных в [markdown](https://github.com/zadam/trilium/wiki/Markdown) формате
|
||||||
|
* [Web Clipper](https://github.com/zadam/trilium/wiki/Web-clipper) для удобного сохранения веб-контента
|
||||||
|
|
||||||
|
## Сборки
|
||||||
|
|
||||||
|
Trilium предоставляется в виде десктопного приложения (Linux и Windows) или веб-приложения, размещенного на вашем сервере (Linux). Доступна сборка Mac OS, но она [не поддерживается](https://github.com/zadam/trilium/wiki/FAQ#mac-os-support).
|
||||||
|
|
||||||
|
* Если вы хотите использовать Trilium на десктопе, скачайте архив для своей платформы со страницы [релизов](https://github.com/zadam/trilium/releases/latest), распакуйте и запустите исполняемый файл ```trilium```.
|
||||||
|
* Если вы хотите установить Trilium на сервере, следуйте этой [инструкции](https://github.com/zadam/trilium/wiki/Server-installation).
|
||||||
|
* В данный момент поддерживаются (протестированы) последние версии браузеров Chrome и Firefox.
|
||||||
|
|
||||||
|
## Документация
|
||||||
|
|
||||||
|
[Полный список страниц документации доступен в Wiki.](https://github.com/zadam/trilium/wiki/)
|
||||||
|
|
||||||
|
Вы также можете ознакомиться с [шаблонами персональных баз знаний](https://github.com/zadam/trilium/wiki/Patterns-of-personal-knowledge-base), чтобы получить представление о том, как можно использовать Trilium.
|
||||||
|
|
||||||
|
## Участвуйте в разработке
|
||||||
|
|
||||||
|
Используйте онлайн среду разработки в браузере
|
||||||
|
|
||||||
|
[](https://gitpod.io/#https://github.com/zadam/trilium)
|
||||||
|
|
||||||
|
Или склонируйте на своё устройство и запустите
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
npm run start-server
|
||||||
|
```
|
||||||
|
|
||||||
|
## Благодарности
|
||||||
|
|
||||||
|
* [CKEditor 5](https://github.com/ckeditor/ckeditor5) - лучший WYSIWYG редактор, очень активная и внимательная команда.
|
||||||
|
* [FancyTree](https://github.com/mar10/fancytree) - многофункциональная библиотека для создания древовидных структур. Вне конкуренции. Без него Trilium Notes не были бы таким.
|
||||||
|
* [CodeMirror](https://github.com/codemirror/CodeMirror) - редактор кода с поддержкой огромного количество языков.
|
||||||
|
* [jsPlumb](https://github.com/jsplumb/jsplumb) - библиотека для визуализации связей. Вне конкуренции. Используется в [картах связей](https://github.com/zadam/trilium/wiki/Relation-map) и [картах ссылок](https://github.com/zadam/trilium/wiki/Link-map).
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
|
||||||
|
Эта программа является бесплатным программным обеспечением: вы можете распространять и/или изменять ее в соответствии с условиями GNU Affero General Public License, опубликованной Free Software Foundation, либо версии 3 Лицензии, либо (по вашему выбору) любой более поздней версии.
|
||||||
3
TODO
Normal file
3
TODO
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
- new icon
|
||||||
|
- polish becca entities API
|
||||||
|
- separate private and public APIs in becca entities
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -5,3 +5,18 @@ echo "Packaging debian x64 distribution..."
|
|||||||
VERSION=`jq -r ".version" package.json`
|
VERSION=`jq -r ".version" package.json`
|
||||||
|
|
||||||
./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64
|
./node_modules/.bin/electron-installer-debian --config bin/deb-options.json --options.version=${VERSION} --arch amd64
|
||||||
|
|
||||||
|
|
||||||
|
# hacky stop-gag measure to produce debian compatible XZ compressed debs until this is fixed: https://github.com/electron-userland/electron-installer-debian/issues/272
|
||||||
|
cd dist
|
||||||
|
ar x trilium_${VERSION}_amd64.deb
|
||||||
|
rm trilium_${VERSION}_amd64.deb
|
||||||
|
# recompress
|
||||||
|
< control.tar.zst zstd -d | xz > control.tar.xz
|
||||||
|
< data.tar.zst zstd -d | xz > data.tar.xz
|
||||||
|
# create deb archive (I really do not know, what argument "sdsd" is for but something is required for ar to create the archive as desired)
|
||||||
|
ar -m -c -a sdsd trilium_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
||||||
|
|
||||||
|
rm control* data* debian-binary
|
||||||
|
|
||||||
|
echo "Converted to XZ deb"
|
||||||
|
|||||||
@@ -27,8 +27,14 @@ 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/
|
cp bin/tpl/trilium-portable.sh $BUILD_DIR/
|
||||||
chmod 755 $BUILD_DIR/portable-trilium.sh
|
chmod 755 $BUILD_DIR/trilium-portable.sh
|
||||||
|
|
||||||
|
cp bin/tpl/trilium-safe-mode.sh $BUILD_DIR/
|
||||||
|
chmod 755 $BUILD_DIR/trilium-safe-mode.sh
|
||||||
|
|
||||||
|
cp bin/tpl/trilium-no-cert-check.sh $BUILD_DIR/
|
||||||
|
chmod 755 $BUILD_DIR/trilium-no-cert-check.sh
|
||||||
|
|
||||||
echo "Packaging linux x64 electron distribution..."
|
echo "Packaging linux x64 electron distribution..."
|
||||||
VERSION=`jq -r ".version" package.json`
|
VERSION=`jq -r ".version" package.json`
|
||||||
|
|||||||
@@ -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.19.0
|
NODE_VERSION=14.18.1
|
||||||
|
|
||||||
if [ "$1" != "DONTCOPY" ]
|
if [ "$1" != "DONTCOPY" ]
|
||||||
then
|
then
|
||||||
@@ -10,7 +10,7 @@ fi
|
|||||||
|
|
||||||
cd dist
|
cd dist
|
||||||
wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz
|
wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz
|
||||||
tar xvfJ node-v${NODE_VERSION}-linux-x64.tar.xz
|
tar xfJ node-v${NODE_VERSION}-linux-x64.tar.xz
|
||||||
rm node-v${NODE_VERSION}-linux-x64.tar.xz
|
rm node-v${NODE_VERSION}-linux-x64.tar.xz
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,9 @@ 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/
|
cp bin/tpl/trilium-portable.bat $BUILD_DIR/
|
||||||
|
cp bin/tpl/trilium-no-cert-check.bat $BUILD_DIR/
|
||||||
|
cp bin/tpl/trilium-safe-mode.bat $BUILD_DIR/
|
||||||
|
|
||||||
echo "Zipping windows x64 electron distribution..."
|
echo "Zipping windows x64 electron distribution..."
|
||||||
VERSION=`jq -r ".version" package.json`
|
VERSION=`jq -r ".version" package.json`
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ if [[ $# -eq 0 ]] ; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
npm run webpack
|
n exec 14.18.1 npm run webpack
|
||||||
|
|
||||||
DIR=$1
|
DIR=$1
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ cp -r electron.js $DIR/
|
|||||||
cp webpack-* $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 && n exec 14.18.1 npm install --only=prod)
|
||||||
|
|
||||||
# cleanup of useless files in dependencies
|
# cleanup of useless files in dependencies
|
||||||
rm -r $DIR/node_modules/image-q/demo
|
rm -r $DIR/node_modules/image-q/demo
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ fi
|
|||||||
VERSION=$1
|
VERSION=$1
|
||||||
SERIES=${VERSION:0:4}-latest
|
SERIES=${VERSION:0:4}-latest
|
||||||
|
|
||||||
sudo docker push zadam/trilium:$VERSION
|
docker push zadam/trilium:$VERSION
|
||||||
sudo docker push zadam/trilium:$SERIES
|
docker push zadam/trilium:$SERIES
|
||||||
|
|
||||||
if [[ $1 != *"beta"* ]]; then
|
if [[ $1 != *"beta"* ]]; then
|
||||||
sudo docker push zadam/trilium:latest
|
docker push zadam/trilium:latest
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -62,20 +62,10 @@ echo "$GITHUB_CLI_AUTH_TOKEN" | gh auth login --with-token
|
|||||||
|
|
||||||
gh release create "$TAG" \
|
gh release create "$TAG" \
|
||||||
--title "$TAG release" \
|
--title "$TAG release" \
|
||||||
--notes ""
|
--notes "" \
|
||||||
$EXTRA \
|
$EXTRA \
|
||||||
"dist/$DEBIAN_X64_BUILD" \
|
"dist/$DEBIAN_X64_BUILD" \
|
||||||
"dist/$LINUX_X64_BUILD" \
|
"dist/$LINUX_X64_BUILD" \
|
||||||
"dist/$WINDOWS_X64_BUILD" \
|
"dist/$WINDOWS_X64_BUILD" \
|
||||||
"dist/$MAC_X64_BUILD" \
|
"dist/$MAC_X64_BUILD" \
|
||||||
"dist/$SERVER_BUILD"
|
"dist/$SERVER_BUILD"
|
||||||
|
|
||||||
echo "Building docker image"
|
|
||||||
|
|
||||||
bin/build-docker.sh $VERSION
|
|
||||||
|
|
||||||
echo "Pushing docker image to dockerhub"
|
|
||||||
|
|
||||||
bin/push-docker-image.sh $VERSION
|
|
||||||
|
|
||||||
echo "Release finished!"
|
|
||||||
|
|||||||
4
bin/tpl/trilium-no-cert-check.bat
Normal file
4
bin/tpl/trilium-no-cert-check.bat
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
SET DIR=%~dp0
|
||||||
|
set NODE_TLS_REJECT_UNAUTHORIZED=0
|
||||||
|
cd %DIR%
|
||||||
|
start trilium.exe
|
||||||
7
bin/tpl/trilium-no-cert-check.sh
Normal file
7
bin/tpl/trilium-no-cert-check.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
DIR=`dirname "$0"`
|
||||||
|
export NODE_TLS_REJECT_UNAUTHORIZED=0
|
||||||
|
|
||||||
|
"$DIR/trilium"
|
||||||
|
|
||||||
4
bin/tpl/trilium-safe-mode.bat
Normal file
4
bin/tpl/trilium-safe-mode.bat
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
SET DIR=%~dp0
|
||||||
|
SET TRILIUM_SAFE_MODE=1
|
||||||
|
cd %DIR%
|
||||||
|
start trilium.exe
|
||||||
7
bin/tpl/trilium-safe-mode.sh
Normal file
7
bin/tpl/trilium-safe-mode.sh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
DIR=`dirname "$0"`
|
||||||
|
export TRILIUM_SAFE_MODE=1
|
||||||
|
|
||||||
|
"$DIR/trilium"
|
||||||
|
|
||||||
11
db/TODO.txt
Normal file
11
db/TODO.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
- drop branches.utcDateCreated - not used for anything
|
||||||
|
- drop options.utcDateCreated - not used for anything
|
||||||
|
- isDeleted = 0 by default
|
||||||
|
- rename openTabs to openNoteContexts
|
||||||
|
- migrate black theme to dark theme
|
||||||
|
- unify readOnly handling to a single attribute:
|
||||||
|
* readOnly - like now
|
||||||
|
* readOnly=auto - like without readOnly (used to override inherited readOnly)
|
||||||
|
* readOnly=never - like autoReadOnlyDisabled
|
||||||
|
- remove focusOnAttributesKeyboardShortcut
|
||||||
|
- rename white theme to "light" theme (it's not completely white and matches well to dark theme)
|
||||||
BIN
db/demo.zip
BIN
db/demo.zip
Binary file not shown.
@@ -1,11 +0,0 @@
|
|||||||
DROP TABLE IF EXISTS anchors;
|
|
||||||
DROP TABLE IF EXISTS attachments;
|
|
||||||
DROP TABLE IF EXISTS bookmarks;
|
|
||||||
DROP TABLE IF EXISTS custom_properties;
|
|
||||||
DROP TABLE IF EXISTS deletions;
|
|
||||||
DROP TABLE IF EXISTS deletions_attachments;
|
|
||||||
DROP TABLE IF EXISTS formatting;
|
|
||||||
DROP TABLE IF EXISTS icons;
|
|
||||||
DROP TABLE IF EXISTS tags;
|
|
||||||
DROP TABLE IF EXISTS tags_notes;
|
|
||||||
DROP TABLE IF EXISTS tasks;
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
CREATE TABLE notes_mig AS SELECT note_id, note_title, note_text, note_clone_id, date_created, date_modified, encryption FROM notes;
|
|
||||||
DROP TABLE notes;
|
|
||||||
ALTER TABLE notes_mig RENAME TO notes;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE notes ADD COLUMN is_deleted INTEGER NOT NULL DEFAULT 0
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE notes_tree ADD COLUMN date_modified INTEGER NOT NULL DEFAULT 0
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
DELETE FROM options WHERE opt_name IN ('is_readonly', 'prop_modified', 'doc_title', 'doc_UID', 'format_version', 'flask_secret_key')
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
CREATE TABLE notes_history_mig AS SELECT id, note_id, note_title, note_text, date_modified AS date_modified_from, date_modified AS date_modified_to FROM notes_history;
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE notes_history ADD COLUMN encryption INTEGER DEFAULT 0
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
CREATE TABLE `notes_history_mig` (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
|
|
||||||
`note_id` INT,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`date_modified_from` INT,
|
|
||||||
`date_modified_to` INT,
|
|
||||||
`encryption` INTEGER DEFAULT 0
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_history (id, note_id, note_title, note_text, date_modified_from, date_modified_to, encryption)
|
|
||||||
SELECT id, note_id, note_title, note_text, date_modified_from, date_modified_to, encryption FROM notes_history;
|
|
||||||
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
CREATE INDEX `IDX_notes_history_note_id` ON `notes_history` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_images_note_id` ON `images` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_links_note_id` ON `links` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_audit_log_note_id` ON `audit_log` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_audit_log_date_modified` ON `audit_log` (
|
|
||||||
`date_modified`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE `notes_mig` (
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`note_clone_id` TEXT,
|
|
||||||
`date_created` INT,
|
|
||||||
`date_modified` INT,
|
|
||||||
`encryption` INT,
|
|
||||||
`is_deleted` INTEGER NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY(`note_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_mig (note_id, note_title, note_text, note_clone_id, date_created, date_modified, encryption)
|
|
||||||
SELECT note_id, note_title, note_text, note_clone_id, date_created, date_modified, encryption FROM notes;
|
|
||||||
|
|
||||||
DROP TABLE notes;
|
|
||||||
ALTER TABLE notes_mig RENAME TO notes;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_is_deleted` ON `notes` (
|
|
||||||
`is_deleted`
|
|
||||||
);
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
ALTER TABLE notes_tree ADD COLUMN is_deleted INTEGER NOT NULL DEFAULT 0;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_is_deleted` ON `notes_tree` (
|
|
||||||
`is_deleted`
|
|
||||||
);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
INSERT INTO options (opt_name, opt_value) VALUES ('last_synced', 0)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
CREATE UNIQUE INDEX `IDX_notes_history_note_from_to` ON `notes_history` (
|
|
||||||
`note_id`,
|
|
||||||
`date_modified_from`,
|
|
||||||
`date_modified_to`
|
|
||||||
);
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
UPDATE options SET opt_name = 'last_synced_pull' WHERE opt_name = 'last_synced';
|
|
||||||
|
|
||||||
INSERT INTO options (opt_name, opt_value) VALUES ('last_synced_push', 0);
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
CREATE TABLE `audit_log_mig` (
|
|
||||||
`id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`date_modified` INTEGER NOT NULL,
|
|
||||||
`category` TEXT NOT NULL,
|
|
||||||
`browser_id` TEXT,
|
|
||||||
`note_id` TEXT,
|
|
||||||
`change_from` TEXT,
|
|
||||||
`change_to` TEXT,
|
|
||||||
`comment` TEXT
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO audit_log_mig (id, date_modified, category, browser_id, note_id, change_from, change_to)
|
|
||||||
SELECT id, date_modified, category, browser_id, note_id, change_from, change_to FROM audit_log;
|
|
||||||
|
|
||||||
DROP TABLE audit_log;
|
|
||||||
ALTER TABLE audit_log_mig RENAME TO audit_log;
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
UPDATE notes SET note_id = substr(note_id, 0, 22);
|
|
||||||
UPDATE notes_tree SET note_id = substr(note_id, 0, 22), note_pid = substr(note_pid, 0, 22);
|
|
||||||
UPDATE notes_history SET note_id = substr(note_id, 0, 22);
|
|
||||||
UPDATE audit_log SET note_id = substr(note_id, 0, 22);
|
|
||||||
UPDATE links SET note_id = substr(note_id, 0, 22);
|
|
||||||
UPDATE images SET note_id = substr(note_id, 0, 22);
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
UPDATE notes SET note_id = substr(note_id, 0, 13);
|
|
||||||
UPDATE notes_tree SET note_id = substr(note_id, 0, 13), note_pid = substr(note_pid, 0, 13);
|
|
||||||
UPDATE notes_history SET note_id = substr(note_id, 0, 13);
|
|
||||||
UPDATE audit_log SET note_id = substr(note_id, 0, 13);
|
|
||||||
UPDATE links SET note_id = substr(note_id, 0, 13);
|
|
||||||
UPDATE images SET note_id = substr(note_id, 0, 13);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
INSERT INTO options (opt_name, opt_value) VALUES ('document_id', '');
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
INSERT INTO options (opt_name, opt_value) VALUES ('document_secret', '');
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE options ADD COLUMN date_modified INTEGER NOT NULL DEFAULT 0
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
CREATE TABLE `sync` (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
`entity_name` TEXT NOT NULL,
|
|
||||||
`entity_id` TEXT NOT NULL,
|
|
||||||
`sync_date` INTEGER NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX `IDX_sync_entity_name_id` ON `sync` (
|
|
||||||
`entity_name`,
|
|
||||||
`entity_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_sync_sync_date` ON `sync` (
|
|
||||||
`sync_date`
|
|
||||||
);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE sync ADD COLUMN source_id TEXT
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
ALTER TABLE notes_history ADD COLUMN note_history_id TEXT;
|
|
||||||
|
|
||||||
UPDATE notes_history SET note_history_id = id;
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX `IDX_note_history_note_history_id` ON `notes_history` (
|
|
||||||
`note_history_id`
|
|
||||||
);
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
CREATE TABLE `notes_history_mig` (
|
|
||||||
`note_history_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`encryption` INT,
|
|
||||||
`date_modified_from` INT,
|
|
||||||
`date_modified_to` INT
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_history_mig (note_history_id, note_id, note_title, note_text, encryption, date_modified_from, date_modified_to)
|
|
||||||
SELECT note_history_id, note_id, note_title, note_text, encryption, date_modified_from, date_modified_to FROM notes_history;
|
|
||||||
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_id` ON `notes_history` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_from` ON `notes_history` (
|
|
||||||
`date_modified_from`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_to` ON `notes_history` (
|
|
||||||
`date_modified_to`
|
|
||||||
);
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
CREATE TABLE `options_mig` (
|
|
||||||
`opt_name` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`opt_value` TEXT,
|
|
||||||
`date_modified` INT
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO options_mig (opt_name, opt_value, date_modified)
|
|
||||||
SELECT opt_name, opt_value, date_modified FROM options;
|
|
||||||
|
|
||||||
DROP TABLE options;
|
|
||||||
ALTER TABLE options_mig RENAME TO options;
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
CREATE TABLE `event_log` (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
`note_id` TEXT,
|
|
||||||
`comment` TEXT,
|
|
||||||
`date_added` INTEGER NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_event_log_date_added` ON `event_log` (
|
|
||||||
`date_added`
|
|
||||||
);
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
CREATE TABLE `recent_notes` (
|
|
||||||
`note_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`date_accessed` INTEGER NOT NULL
|
|
||||||
);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE recent_notes ADD COLUMN is_deleted INT;
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
UPDATE audit_log SET category = 'PROTECTED' WHERE category = 'ENCRYPTION';
|
|
||||||
|
|
||||||
DELETE FROM notes WHERE note_clone_id IS NOT NULL AND note_clone_id != '';
|
|
||||||
|
|
||||||
CREATE TABLE `notes_mig` (
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`date_created` INT,
|
|
||||||
`date_modified` INT,
|
|
||||||
`is_protected` INT NOT NULL DEFAULT 0,
|
|
||||||
`is_deleted` INT NOT NULL DEFAULT 0,
|
|
||||||
PRIMARY KEY(`note_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_mig (note_id, note_title, note_text, date_created, date_modified, is_protected, is_deleted)
|
|
||||||
SELECT note_id, note_title, note_text, date_created, date_modified, encryption, is_deleted FROM notes;
|
|
||||||
|
|
||||||
DROP TABLE notes;
|
|
||||||
ALTER TABLE notes_mig RENAME TO notes;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_is_deleted` ON `notes` (
|
|
||||||
`is_deleted`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE `notes_history_mig` (
|
|
||||||
`note_history_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`is_protected` INT,
|
|
||||||
`date_modified_from` INT,
|
|
||||||
`date_modified_to` INT
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_history_mig (note_history_id, note_id, note_title, note_text, is_protected, date_modified_from, date_modified_to)
|
|
||||||
SELECT note_history_id, note_id, note_title, note_text, encryption, date_modified_from, date_modified_to FROM notes_history;
|
|
||||||
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_id` ON `notes_history` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_from` ON `notes_history` (
|
|
||||||
`date_modified_from`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_to` ON `notes_history` (
|
|
||||||
`date_modified_to`
|
|
||||||
);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
UPDATE options SET opt_name = 'protected_session_timeout' WHERE opt_name = 'encryption_session_timeout';
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
module.exports = async () => console.log("heeeelllooo!!!");
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
const sql = require('../services/sql');
|
|
||||||
const data_encryption = require('../services/data_encryption');
|
|
||||||
const password_encryption = require('../services/password_encryption');
|
|
||||||
const readline = require('readline');
|
|
||||||
|
|
||||||
const cl = readline.createInterface(process.stdin, process.stdout);
|
|
||||||
|
|
||||||
function question(q) {
|
|
||||||
return new Promise( (res, rej) => {
|
|
||||||
cl.question( q, answer => {
|
|
||||||
res(answer);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = async () => {
|
|
||||||
const password = await question("Enter password: ");
|
|
||||||
const dataKey = await password_encryption.getDecryptedDataKey(password);
|
|
||||||
|
|
||||||
const protectedNotes = await sql.getRows("SELECT * FROM notes WHERE is_protected = 1");
|
|
||||||
|
|
||||||
for (const note of protectedNotes) {
|
|
||||||
const decryptedTitle = data_encryption.decrypt(dataKey, note.note_title);
|
|
||||||
|
|
||||||
note.note_title = data_encryption.encrypt(dataKey, "0" + note.note_id, decryptedTitle);
|
|
||||||
|
|
||||||
const decryptedText = data_encryption.decrypt(dataKey, note.note_text);
|
|
||||||
note.note_text = data_encryption.encrypt(dataKey, "1" + note.note_id, decryptedText);
|
|
||||||
|
|
||||||
await sql.execute("UPDATE notes SET note_title = ?, note_text = ? WHERE note_id = ?", [note.note_title, note.note_text, note.note_id]);
|
|
||||||
}
|
|
||||||
|
|
||||||
const protectedNotesHistory = await sql.getRows("SELECT * FROM notes_history WHERE is_protected = 1");
|
|
||||||
|
|
||||||
for (const noteHistory of protectedNotesHistory) {
|
|
||||||
const decryptedTitle = data_encryption.decrypt(dataKey, noteHistory.note_title);
|
|
||||||
noteHistory.note_title = data_encryption.encrypt(dataKey, "0" + noteHistory.note_history_id, decryptedTitle);
|
|
||||||
|
|
||||||
const decryptedText = data_encryption.decrypt(dataKey, noteHistory.note_text);
|
|
||||||
noteHistory.note_text = data_encryption.encrypt(dataKey, "1" + noteHistory.note_history_id, decryptedText);
|
|
||||||
|
|
||||||
await sql.execute("UPDATE notes SET note_title = ?, note_text = ? WHERE note_id = ?", [noteHistory.note_title, noteHistory.note_text, noteHistory.note_history_id]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
INSERT INTO options (opt_name, opt_value) VALUES ('encrypted_data_key_iv', '')
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
const password_encryption = require('../services/password_encryption');
|
|
||||||
const readline = require('readline');
|
|
||||||
|
|
||||||
const cl = readline.createInterface(process.stdin, process.stdout);
|
|
||||||
|
|
||||||
function question(q) {
|
|
||||||
return new Promise( (res, rej) => {
|
|
||||||
cl.question( q, answer => {
|
|
||||||
res(answer);
|
|
||||||
})
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = async () => {
|
|
||||||
const password = await question("Enter password: ");
|
|
||||||
let dataKey = await password_encryption.getDecryptedDataKey(password);
|
|
||||||
|
|
||||||
console.log("Original data key: ", dataKey);
|
|
||||||
|
|
||||||
dataKey = dataKey.slice(0, 16);
|
|
||||||
|
|
||||||
console.log("Trimmed data key: ", dataKey);
|
|
||||||
|
|
||||||
await password_encryption.setDataKey(password, dataKey);
|
|
||||||
};
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
CREATE TABLE `source_ids` (
|
|
||||||
`source_id` TEXT NOT NULL,
|
|
||||||
`date_created` INTEGER NOT NULL,
|
|
||||||
PRIMARY KEY(`source_id`)
|
|
||||||
);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
UPDATE notes_tree SET note_pid = 'root' WHERE note_pid = ''
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
DELETE FROM sync;
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
CREATE TABLE [notes_tree_mig] (
|
|
||||||
[note_tree_id] VARCHAR(30) PRIMARY KEY NOT NULL,
|
|
||||||
[note_id] VARCHAR(30) UNIQUE NOT NULL,
|
|
||||||
[note_pid] VARCHAR(30) NOT NULL,
|
|
||||||
[note_pos] INTEGER NOT NULL,
|
|
||||||
[is_expanded] BOOLEAN NULL ,
|
|
||||||
date_modified INTEGER NOT NULL DEFAULT 0,
|
|
||||||
is_deleted INTEGER NOT NULL DEFAULT 0
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_tree_mig (note_tree_id, note_id, note_pid, note_pos, is_expanded, date_modified, is_deleted)
|
|
||||||
SELECT 'TT' || SUBSTR(note_id, 3), note_id, note_pid, note_pos, is_expanded, date_modified, is_deleted FROM notes_tree;
|
|
||||||
|
|
||||||
UPDATE notes_tree_mig SET note_pid = 'TT' || SUBSTR(note_pid, 3) WHERE note_pid != 'root';
|
|
||||||
|
|
||||||
DROP TABLE notes_tree;
|
|
||||||
ALTER TABLE notes_tree_mig RENAME TO notes_tree;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id` ON `notes_tree` (
|
|
||||||
`note_tree_id`
|
|
||||||
);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
UPDATE options SET opt_name = 'start_note_tree_id' WHERE opt_name = 'start_node';
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
DROP TABLE recent_notes;
|
|
||||||
|
|
||||||
CREATE TABLE `recent_notes` (
|
|
||||||
`note_tree_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`date_accessed` INTEGER NOT NULL ,
|
|
||||||
is_deleted INT
|
|
||||||
);
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
UPDATE
|
|
||||||
notes_tree
|
|
||||||
SET
|
|
||||||
note_pid = (SELECT parent.note_id FROM notes_tree parent WHERE notes_tree.note_pid = parent.note_tree_id)
|
|
||||||
WHERE
|
|
||||||
note_pid != 'root'
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
DROP TABLE recent_notes;
|
|
||||||
|
|
||||||
CREATE TABLE `recent_notes` (
|
|
||||||
`note_path` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`date_accessed` INTEGER NOT NULL ,
|
|
||||||
is_deleted INT
|
|
||||||
);
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
CREATE TABLE "notes_tree_mig" (
|
|
||||||
[note_tree_id] VARCHAR(30) PRIMARY KEY NOT NULL,
|
|
||||||
[note_id] VARCHAR(30) NOT NULL,
|
|
||||||
[note_pid] VARCHAR(30) NOT NULL,
|
|
||||||
[note_pos] INTEGER NOT NULL,
|
|
||||||
[is_expanded] BOOLEAN NULL ,
|
|
||||||
date_modified INTEGER NOT NULL DEFAULT 0,
|
|
||||||
is_deleted INTEGER NOT NULL DEFAULT 0
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_tree_mig (note_tree_id, note_id, note_pid, note_pos, is_expanded, date_modified, is_deleted)
|
|
||||||
SELECT note_tree_id, note_id, note_pid, note_pos, is_expanded, date_modified, is_deleted FROM notes_tree;
|
|
||||||
|
|
||||||
DROP TABLE notes_tree;
|
|
||||||
ALTER TABLE notes_tree_mig RENAME TO notes_tree;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_tree_id` ON `notes_tree` (
|
|
||||||
`note_tree_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id_note_pid` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`note_pid`
|
|
||||||
);
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
DELETE FROM sync;
|
|
||||||
|
|
||||||
UPDATE options SET opt_value = 0 WHERE opt_name IN ('last_synced_push', 'last_synced_pull');
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
DROP TABLE audit_log;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ALTER TABLE notes_tree ADD COLUMN `prefix` TEXT
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
DROP TABLE IF EXISTS links;
|
|
||||||
DROP TABLE IF EXISTS images;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
SELECT 1;
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
DROP TABLE recent_notes;
|
|
||||||
|
|
||||||
CREATE TABLE `recent_notes` (
|
|
||||||
'note_tree_id'TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_path` TEXT NOT NULL,
|
|
||||||
`date_accessed` INTEGER NOT NULL ,
|
|
||||||
is_deleted INT
|
|
||||||
);
|
|
||||||
|
|
||||||
DELETE FROM sync WHERE entity_name = 'recent_notes';
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
UPDATE options SET opt_name = 'start_note_path' WHERE opt_name = 'start_note_tree_id';
|
|
||||||
@@ -1,156 +0,0 @@
|
|||||||
DROP TABLE migrations;
|
|
||||||
|
|
||||||
-- Sync
|
|
||||||
CREATE TABLE `sync_mig` (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
`entity_name` TEXT NOT NULL,
|
|
||||||
`entity_id` TEXT NOT NULL,
|
|
||||||
`source_id` TEXT NOT NULL,
|
|
||||||
`sync_date` TEXT NOT NULL);
|
|
||||||
|
|
||||||
INSERT INTO sync_mig (id, entity_name, entity_id, source_id, sync_date)
|
|
||||||
SELECT id, entity_name, entity_id, source_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', sync_date, 'unixepoch') FROM sync;
|
|
||||||
|
|
||||||
DROP TABLE sync;
|
|
||||||
ALTER TABLE sync_mig RENAME TO sync;
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX `IDX_sync_entity_name_id` ON `sync` (
|
|
||||||
`entity_name`,
|
|
||||||
`entity_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_sync_sync_date` ON `sync` (
|
|
||||||
`sync_date`
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Options
|
|
||||||
|
|
||||||
UPDATE options SET opt_value = strftime('%Y-%m-%dT%H:%M:%S.000Z', opt_value, 'unixepoch') WHERE opt_name IN ('last_backup_date');
|
|
||||||
UPDATE options SET date_modified = strftime('%Y-%m-%dT%H:%M:%S.000Z', date_modified, 'unixepoch');
|
|
||||||
|
|
||||||
-- Event log
|
|
||||||
|
|
||||||
CREATE TABLE `event_log_mig` (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
`note_id` TEXT,
|
|
||||||
`comment` TEXT,
|
|
||||||
`date_added` TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO event_log_mig (id, note_id, comment, date_added)
|
|
||||||
SELECT id, note_id, comment, strftime('%Y-%m-%dT%H:%M:%S.000Z', date_added, 'unixepoch') FROM event_log;
|
|
||||||
|
|
||||||
DROP TABLE event_log;
|
|
||||||
ALTER TABLE event_log_mig RENAME TO event_log;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_event_log_date_added` ON `event_log` (
|
|
||||||
`date_added`
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Notes
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes_mig" (
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`is_protected` INT NOT NULL DEFAULT 0,
|
|
||||||
`is_deleted` INT NOT NULL DEFAULT 0,
|
|
||||||
`date_created` TEXT NOT NULL,
|
|
||||||
`date_modified` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`note_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_mig (note_id, note_title, note_text, is_protected, is_deleted, date_created, date_modified)
|
|
||||||
SELECT note_id, note_title, note_text, is_protected, is_deleted,
|
|
||||||
strftime('%Y-%m-%dT%H:%M:%S.000Z', date_created, 'unixepoch'),
|
|
||||||
strftime('%Y-%m-%dT%H:%M:%S.000Z', date_modified, 'unixepoch')
|
|
||||||
FROM notes;
|
|
||||||
|
|
||||||
DROP TABLE notes;
|
|
||||||
ALTER TABLE notes_mig RENAME TO notes;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_is_deleted` ON `notes` (
|
|
||||||
`is_deleted`
|
|
||||||
);
|
|
||||||
|
|
||||||
-- note history
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes_history_mig" (
|
|
||||||
`note_history_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`is_protected` INT NOT NULL DEFAULT 0,
|
|
||||||
`date_modified_from` TEXT NOT NULL,
|
|
||||||
`date_modified_to` TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_history_mig (note_history_id, note_id, note_title, note_text, is_protected, date_modified_from, date_modified_to)
|
|
||||||
SELECT note_history_id, note_id, note_title, note_text, is_protected,
|
|
||||||
strftime('%Y-%m-%dT%H:%M:%S.000Z', date_modified_from, 'unixepoch'),
|
|
||||||
strftime('%Y-%m-%dT%H:%M:%S.000Z', date_modified_to, 'unixepoch')
|
|
||||||
FROM notes_history;
|
|
||||||
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_id` ON `notes_history` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_from` ON `notes_history` (
|
|
||||||
`date_modified_from`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_to` ON `notes_history` (
|
|
||||||
`date_modified_to`
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Source IDs
|
|
||||||
|
|
||||||
DROP TABLE source_ids;
|
|
||||||
|
|
||||||
CREATE TABLE `source_ids` (
|
|
||||||
`source_id` TEXT NOT NULL,
|
|
||||||
`date_created` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`source_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Recent notes
|
|
||||||
|
|
||||||
DROP TABLE recent_notes;
|
|
||||||
|
|
||||||
CREATE TABLE `recent_notes` (
|
|
||||||
`note_tree_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_path` TEXT NOT NULL,
|
|
||||||
`date_accessed` TEXT NOT NULL,
|
|
||||||
is_deleted INT
|
|
||||||
);
|
|
||||||
|
|
||||||
-- Notes tree
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes_tree_mig" (
|
|
||||||
`note_tree_id` TEXT NOT NULL,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_pid` TEXT NOT NULL,
|
|
||||||
`note_pos` INTEGER NOT NULL,
|
|
||||||
`prefix` TEXT,
|
|
||||||
`is_expanded` BOOLEAN,
|
|
||||||
`is_deleted` INTEGER NOT NULL DEFAULT 0,
|
|
||||||
`date_modified` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`note_tree_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_tree_mig (note_tree_id, note_id, note_pid, note_pos, prefix, is_expanded, is_deleted, date_modified)
|
|
||||||
SELECT note_tree_id, note_id, note_pid, note_pos, prefix, is_expanded, is_deleted,
|
|
||||||
strftime('%Y-%m-%dT%H:%M:%S.000Z', date_modified, 'unixepoch')
|
|
||||||
FROM notes_tree;
|
|
||||||
|
|
||||||
DROP TABLE notes_tree;
|
|
||||||
ALTER TABLE notes_tree_mig RENAME TO notes_tree;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_tree_id` ON `notes_tree` (
|
|
||||||
`note_tree_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id_note_pid` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`note_pid`
|
|
||||||
);
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
DROP index IDX_notes_tree_note_tree_id;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id` ON `notes_tree` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
INSERT OR IGNORE INTO sync (entity_name, entity_id, sync_date, source_id)
|
|
||||||
SELECT 'notes', note_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), 'IMPORT' FROM notes;
|
|
||||||
|
|
||||||
INSERT OR IGNORE INTO sync (entity_name, entity_id, sync_date, source_id)
|
|
||||||
SELECT 'notes_tree', note_tree_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), 'IMPORT' FROM notes_tree;
|
|
||||||
|
|
||||||
INSERT OR IGNORE INTO sync (entity_name, entity_id, sync_date, source_id)
|
|
||||||
SELECT 'notes_history', note_history_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), 'IMPORT' FROM notes_history;
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
delete from notes where note_id in ('FfZylYxt','HqzAEsR2fFEZ','KgTQDh67+1Mh','TKMbAYl0AFyQ','W+bGM185c6gw',
|
|
||||||
'YXBdhv4dYKMy','aF4/6p1zTpIS','nsLnrrDktl/s','wkhFImoPuxky');
|
|
||||||
|
|
||||||
delete from notes_tree where note_tree_id in ('TTy5N2y2S6JP','TTkL3rWDexpp','TTEhtomZekUk','TTvP7zW01zwg','TTuYmMTZyKRt'
|
|
||||||
,'TToaClamxbBF','TTKvNCe5X2dj','TTE7jFx5A0zW','TTc79bscyrHX','TTcw8ZyDy2Cc','TTdFzAOWA9hZ','TTUyVLqyIvVg','TTy85NKSBDyO'
|
|
||||||
,'TTCyuireAWBv','TTDpVyuzbj1a','TTYznrYvAeIs','TTocvv15VMyu','TTjtxQkBT5vj','TToyyRzbBF0T','TTFt8NE9vSyZ','TTfzFZOuuDqv'
|
|
||||||
,'TT2e2oUYcxG6','TToXselUpPAy','TTEM68gGukg0','TTkZxxwtUOzW','TTAZNxBtgmmh','TTK1YErdBE3x','TTzjKiEf54o6','TTPWd5Ou1xET'
|
|
||||||
,'TTxQtjf22rTL','TTJAGaI4c89V','TTUQmsxSTdV3','TTGAOf5Lvr6b','TTECSDRN4ZPW','TTZZXLiGNWv4','TTxSLphulRct','TT8vld7x0qWF'
|
|
||||||
,'TTuuxXnv2Kpw','TT3RkLZ9AI6t','TTuEbI4Cj3qC','TT4CXXRyWRqm','TTQCuFgnMqxX','TTxnDEMz1bd4','TTMOnqhBesjs','TTHblx55gRHN'
|
|
||||||
,'TTMHW8HIGCjR','TTxzg3qqyLjw','TTluvD7yS8Rv','TT88qK2j3ggk','TTF7oHhS5ANF','TTOH275JiUSy','TToIt2dQ5tYH','TTBPgixQgbAq'
|
|
||||||
,'TTeN46707CJl','TTDb3GC2y6nN','TTlIXFwpICko','TTE6M9AxLh2U','TTjqhB8zXjD6','TT9NPeLg4FjK','TTj12jDX7TM3','TTPRjf7EdvDX'
|
|
||||||
,'TTBnu09pxOmn','TTZxyAkJQ9Cf','TTlvqeof2IBS','TT5R5xtIqRQf','TTiiD6hFjlVH','TTNVjGHSqNgo','TTrORSHCsAVQ','TT5Ei5fngqkv'
|
|
||||||
,'TTQ4hdpcIX3C','TTQgxq4CoiHU','TTJayLjI6BSE','TTYyraNy0CVT','TTnAJ3AK3wHz','TTJwKcgs1s0X','TT4FiatgbLEs','TTEdp5Zx1n5F');
|
|
||||||
|
|
||||||
update notes_tree set is_deleted = 1 where note_tree_id in ('TTiaU9xqnrca','TTQAy9c1vDId','TTHXWBJB2Y24','TTDV8DUK2IZA'
|
|
||||||
,'TTI5JHODZYV5','TTBEZ8TMSJV4','TT1MDWZXE8ZI','TTJV7ZOA8907','TTUGE6N99QSO','TTN0OS17T0KM');
|
|
||||||
|
|
||||||
delete from notes_history where note_history_id in ('KHAp5viTrrOfugzQ', 'xmhaS76piZn0QGzn', '25aL96ke8xmud9Bt');
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
DELETE FROM notes_tree WHERE note_tree_id IN ('cb94QGgnCwOD', 'c3FWKhcVYyaQ');
|
|
||||||
|
|
||||||
DELETE FROM notes_history WHERE note_history_id IN ('cdUD6ycs3l9h', 'OW4uh0HLtXaw');
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
UPDATE options SET opt_value = (SELECT MAX(id) FROM sync) WHERE opt_name = 'last_synced_push';
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
DELETE FROM recent_notes;
|
|
||||||
DELETE FROM sync;
|
|
||||||
|
|
||||||
INSERT OR IGNORE INTO sync (entity_name, entity_id, sync_date, source_id)
|
|
||||||
SELECT 'notes', note_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), 'IMPORT' FROM notes;
|
|
||||||
|
|
||||||
INSERT OR IGNORE INTO sync (entity_name, entity_id, sync_date, source_id)
|
|
||||||
SELECT 'notes_tree', note_tree_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), 'IMPORT' FROM notes_tree;
|
|
||||||
|
|
||||||
INSERT OR IGNORE INTO sync (entity_name, entity_id, sync_date, source_id)
|
|
||||||
SELECT 'notes_history', note_history_id, strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), 'IMPORT' FROM notes_history;
|
|
||||||
|
|
||||||
UPDATE options SET opt_value = (SELECT MAX(id) FROM sync) WHERE opt_name IN ('last_synced_push', 'last_synced_pull');
|
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
INSERT INTO notes (note_id, note_title, note_text, date_created, date_modified)
|
|
||||||
VALUES ('root', 'root', 'root', strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'), strftime('%Y-%m-%dT%H:%M:%S.000Z', 'now'));
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes_mig" (
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`is_protected` INT NOT NULL DEFAULT 0,
|
|
||||||
`is_deleted` INT NOT NULL DEFAULT 0,
|
|
||||||
`date_created` TEXT NOT NULL,
|
|
||||||
`date_modified` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`note_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_mig (note_id, note_title, note_text, is_protected, is_deleted, date_created, date_modified)
|
|
||||||
SELECT note_id, note_title, note_text, is_protected, is_deleted, date_created, date_modified FROM notes;
|
|
||||||
|
|
||||||
DROP TABLE notes;
|
|
||||||
ALTER TABLE notes_mig RENAME TO notes;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_is_deleted` ON `notes` (
|
|
||||||
`is_deleted`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes_tree_mig" (
|
|
||||||
`note_tree_id` TEXT NOT NULL,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`parent_note_id` TEXT NOT NULL,
|
|
||||||
`note_position` INTEGER NOT NULL,
|
|
||||||
`prefix` TEXT,
|
|
||||||
`is_expanded` BOOLEAN,
|
|
||||||
`is_deleted` INTEGER NOT NULL DEFAULT 0,
|
|
||||||
`date_modified` TEXT NOT NULL,
|
|
||||||
FOREIGN KEY(note_id) REFERENCES notes(note_id),
|
|
||||||
FOREIGN KEY(parent_note_id) REFERENCES notes(note_id),
|
|
||||||
PRIMARY KEY(`note_tree_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_tree_mig (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified)
|
|
||||||
SELECT note_tree_id, note_id, note_pid, note_pos, prefix, is_expanded, is_deleted, date_modified FROM notes_tree;
|
|
||||||
|
|
||||||
DROP TABLE notes_tree;
|
|
||||||
ALTER TABLE notes_tree_mig RENAME TO notes_tree;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_tree_id` ON `notes_tree` (
|
|
||||||
`note_tree_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`parent_note_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id` ON `notes_tree` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS "notes_history_mig" (
|
|
||||||
`note_history_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`is_protected` INT NOT NULL DEFAULT 0,
|
|
||||||
`date_modified_from` TEXT NOT NULL,
|
|
||||||
`date_modified_to` TEXT NOT NULL,
|
|
||||||
FOREIGN KEY(note_id) REFERENCES notes(note_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_history_mig (note_history_id, note_id, note_title, note_text, is_protected, date_modified_from, date_modified_to)
|
|
||||||
SELECT note_history_id, note_id, note_title, note_text, is_protected, date_modified_from, date_modified_to FROM notes_history;
|
|
||||||
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_id` ON `notes_history` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_from` ON `notes_history` (
|
|
||||||
`date_modified_from`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_to` ON `notes_history` (
|
|
||||||
`date_modified_to`
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TABLE recent_notes;
|
|
||||||
|
|
||||||
CREATE TABLE `recent_notes` (
|
|
||||||
`note_tree_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_path` TEXT NOT NULL,
|
|
||||||
`date_accessed` TEXT NOT NULL,
|
|
||||||
is_deleted INT,
|
|
||||||
FOREIGN KEY(note_tree_id) REFERENCES notes_tree(note_tree_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TABLE event_log;
|
|
||||||
|
|
||||||
CREATE TABLE `event_log` (
|
|
||||||
`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
|
||||||
`note_id` TEXT,
|
|
||||||
`comment` TEXT,
|
|
||||||
`date_added` TEXT NOT NULL,
|
|
||||||
FOREIGN KEY(note_id) REFERENCES notes(note_id)
|
|
||||||
);
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS "notes_tree_mig" (
|
|
||||||
`note_tree_id` TEXT NOT NULL,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`parent_note_id` TEXT NOT NULL,
|
|
||||||
`note_position` INTEGER NOT NULL,
|
|
||||||
`prefix` TEXT,
|
|
||||||
`is_expanded` BOOLEAN,
|
|
||||||
`is_deleted` INTEGER NOT NULL DEFAULT 0,
|
|
||||||
`date_modified` TEXT NOT NULL,
|
|
||||||
FOREIGN KEY(note_id) REFERENCES notes(note_id),
|
|
||||||
PRIMARY KEY(`note_tree_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_tree_mig (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified)
|
|
||||||
SELECT note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified FROM notes_tree;
|
|
||||||
|
|
||||||
DROP TABLE notes_tree;
|
|
||||||
ALTER TABLE notes_tree_mig RENAME TO notes_tree;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_tree_id` ON `notes_tree` (
|
|
||||||
`note_tree_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`parent_note_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id` ON `notes_tree` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS "notes_tree_mig" (
|
|
||||||
`note_tree_id` TEXT NOT NULL,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`parent_note_id` TEXT NOT NULL,
|
|
||||||
`note_position` INTEGER NOT NULL,
|
|
||||||
`prefix` TEXT,
|
|
||||||
`is_expanded` BOOLEAN,
|
|
||||||
`is_deleted` INTEGER NOT NULL DEFAULT 0,
|
|
||||||
`date_modified` TEXT NOT NULL,
|
|
||||||
PRIMARY KEY(`note_tree_id`)
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_tree_mig (note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified)
|
|
||||||
SELECT note_tree_id, note_id, parent_note_id, note_position, prefix, is_expanded, is_deleted, date_modified FROM notes_tree;
|
|
||||||
|
|
||||||
DROP TABLE notes_tree;
|
|
||||||
ALTER TABLE notes_tree_mig RENAME TO notes_tree;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_tree_id` ON `notes_tree` (
|
|
||||||
`note_tree_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`parent_note_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id` ON `notes_tree` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS "notes_history_mig" (
|
|
||||||
`note_history_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_id` TEXT NOT NULL,
|
|
||||||
`note_title` TEXT,
|
|
||||||
`note_text` TEXT,
|
|
||||||
`is_protected` INT NOT NULL DEFAULT 0,
|
|
||||||
`date_modified_from` TEXT NOT NULL,
|
|
||||||
`date_modified_to` TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO notes_history_mig (note_history_id, note_id, note_title, note_text, is_protected, date_modified_from, date_modified_to)
|
|
||||||
SELECT note_history_id, note_id, note_title, note_text, is_protected, date_modified_from, date_modified_to FROM notes_history;
|
|
||||||
|
|
||||||
DROP TABLE notes_history;
|
|
||||||
ALTER TABLE notes_history_mig RENAME TO notes_history;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_history_note_id` ON `notes_history` (
|
|
||||||
`note_id`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_from` ON `notes_history` (
|
|
||||||
`date_modified_from`
|
|
||||||
);
|
|
||||||
CREATE INDEX `IDX_notes_history_note_date_modified_to` ON `notes_history` (
|
|
||||||
`date_modified_to`
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TABLE recent_notes;
|
|
||||||
|
|
||||||
CREATE TABLE `recent_notes` (
|
|
||||||
`note_tree_id` TEXT NOT NULL PRIMARY KEY,
|
|
||||||
`note_path` TEXT NOT NULL,
|
|
||||||
`date_accessed` TEXT NOT NULL,
|
|
||||||
is_deleted INT
|
|
||||||
);
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
DROP INDEX IDX_notes_tree_note_id_parent_note_id;
|
|
||||||
|
|
||||||
CREATE UNIQUE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`parent_note_id`
|
|
||||||
);
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
DROP INDEX IDX_notes_tree_note_id_parent_note_id;
|
|
||||||
|
|
||||||
CREATE INDEX `IDX_notes_tree_note_id_parent_note_id` ON `notes_tree` (
|
|
||||||
`note_id`,
|
|
||||||
`parent_note_id`
|
|
||||||
);
|
|
||||||
|
|
||||||
-- dropping this as it's just duplicate of primary key
|
|
||||||
DROP INDEX IDX_notes_tree_note_tree_id;
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
CREATE TABLE images
|
|
||||||
(
|
|
||||||
image_id TEXT PRIMARY KEY NOT NULL,
|
|
||||||
format TEXT NOT NULL,
|
|
||||||
checksum TEXT NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
data BLOB,
|
|
||||||
is_deleted INT NOT NULL DEFAULT 0,
|
|
||||||
date_modified TEXT NOT NULL,
|
|
||||||
date_created TEXT NOT NULL
|
|
||||||
);
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
DROP TABLE images;
|
|
||||||
|
|
||||||
CREATE TABLE images
|
|
||||||
(
|
|
||||||
image_id TEXT PRIMARY KEY NOT NULL,
|
|
||||||
note_id TEXT NOT NULL,
|
|
||||||
format TEXT NOT NULL,
|
|
||||||
checksum TEXT NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
data BLOB,
|
|
||||||
is_deleted INT NOT NULL DEFAULT 0,
|
|
||||||
date_modified TEXT NOT NULL,
|
|
||||||
date_created TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX images_note_id_index ON images (note_id);
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
DROP TABLE images;
|
|
||||||
|
|
||||||
CREATE TABLE images
|
|
||||||
(
|
|
||||||
image_id TEXT PRIMARY KEY NOT NULL,
|
|
||||||
format TEXT NOT NULL,
|
|
||||||
checksum TEXT NOT NULL,
|
|
||||||
name TEXT NOT NULL,
|
|
||||||
data BLOB,
|
|
||||||
is_deleted INT NOT NULL DEFAULT 0,
|
|
||||||
date_modified TEXT NOT NULL,
|
|
||||||
date_created TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE notes_image
|
|
||||||
(
|
|
||||||
note_image_id TEXT PRIMARY KEY NOT NULL,
|
|
||||||
note_id TEXT NOT NULL,
|
|
||||||
image_id TEXT NOT NULL,
|
|
||||||
is_deleted INT NOT NULL DEFAULT 0,
|
|
||||||
date_modified TEXT NOT NULL,
|
|
||||||
date_created TEXT NOT NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE INDEX notes_image_note_id_index ON notes_image (note_id);
|
|
||||||
CREATE INDEX notes_image_image_id_index ON notes_image (image_id);
|
|
||||||
CREATE INDEX notes_image_note_id_image_id_index ON notes_image (note_id, image_id);
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user