Compare commits
817 Commits
v1.15.0-be
...
v1.15.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2468b84b4 | ||
|
|
efb7d688f0 | ||
|
|
dc6e27730a | ||
|
|
567c5f2056 | ||
|
|
1460a7a84d | ||
|
|
769aba0aed | ||
|
|
72d1b3cdca | ||
|
|
ee4d90f68f | ||
|
|
f300c933a5 | ||
|
|
e250c3f1fb | ||
|
|
ba7b23ac48 | ||
|
|
2946bb1679 | ||
|
|
9c5c32d4a5 | ||
|
|
20f4fe085f | ||
|
|
c18f449190 | ||
|
|
e033da8a04 | ||
|
|
62c0454cfe | ||
|
|
0b57ec19ce | ||
|
|
9f7902efdf | ||
|
|
978f1ee04f | ||
|
|
a0164b1c38 | ||
|
|
05a92885f2 | ||
|
|
e128264b66 | ||
|
|
14ba638345 | ||
|
|
e6b9e8ddee | ||
|
|
381a32abe6 | ||
|
|
3f5f38dd89 | ||
|
|
255cf43ea9 | ||
|
|
fe63c6aef3 | ||
|
|
2e44639210 | ||
|
|
1ce983ccb9 | ||
|
|
8368c25b1d | ||
|
|
d32e4e0213 | ||
|
|
e81e88f3e9 | ||
|
|
f1f9b225b0 | ||
|
|
bcbc085497 | ||
|
|
d227fe9fb6 | ||
|
|
6255874e32 | ||
|
|
74951f5967 | ||
|
|
0b30efba31 | ||
|
|
16d03975a0 | ||
|
|
d263192271 | ||
|
|
1446cec77f | ||
|
|
6b196a207f | ||
|
|
f2bb42c076 | ||
|
|
60e1e99b4f | ||
|
|
7e273e7710 | ||
|
|
90bcfa6d16 | ||
|
|
512f6de6de | ||
|
|
113d3324fb | ||
|
|
c61dee4b62 | ||
|
|
9e3eb5d41a | ||
|
|
f68bce86a9 | ||
|
|
00f90cd98c | ||
|
|
78ee83324c | ||
|
|
76cd5b0fc1 | ||
|
|
064c99cd9f | ||
|
|
e0cf9740d1 | ||
|
|
de5a21f19b | ||
|
|
40eb658bc1 | ||
|
|
eec630f1ef | ||
|
|
7b8a5567c7 | ||
|
|
9f5ef9d0cb | ||
|
|
891a1ea2af | ||
|
|
540a32cfdd | ||
|
|
a30aa5629c | ||
|
|
155f74e45e | ||
|
|
1afd215050 | ||
|
|
b44c7e9658 | ||
|
|
f06d4878c0 | ||
|
|
4b63f9937c | ||
|
|
69f4d5ac7d | ||
|
|
4bd2788ba3 | ||
|
|
a338f52780 | ||
|
|
518d4fa170 | ||
|
|
0d80190f79 | ||
|
|
08ff4041aa | ||
|
|
5a2b14b751 | ||
|
|
d40779a4ba | ||
|
|
f6623622be | ||
|
|
715775a707 | ||
|
|
c0f699e655 | ||
|
|
35e725d17c | ||
|
|
e66c1f4017 | ||
|
|
df5d66e5fe | ||
|
|
2fa78e4384 | ||
|
|
b6d8687837 | ||
|
|
4818ec377e | ||
|
|
1c8b8ce14a | ||
|
|
1688294165 | ||
|
|
57b4932074 | ||
|
|
eddf4a4f33 | ||
|
|
a3fa313298 | ||
|
|
6e85920cb6 | ||
|
|
841cbcc3e3 | ||
|
|
87bff6cd65 | ||
|
|
0c7d58605e | ||
|
|
a53d49a2b0 | ||
|
|
dda5d42610 | ||
|
|
15e0731dd9 | ||
|
|
4439864ce0 | ||
|
|
2738041b38 | ||
|
|
6de7760a1d | ||
|
|
a02ae6f5df | ||
|
|
27016d221c | ||
|
|
57ed6be78b | ||
|
|
a08fb8e53b | ||
|
|
0b6ef61e40 | ||
|
|
266d7587b2 | ||
|
|
bff53de03f | ||
|
|
a6a52430ce | ||
|
|
aa8faf58a0 | ||
|
|
e0b6781776 | ||
|
|
9082062e90 | ||
|
|
c4431294a5 | ||
|
|
2d29e603bd | ||
|
|
7d0d0005ff | ||
|
|
2baccd3ce2 | ||
|
|
224502d8c3 | ||
|
|
1f2eca6a52 | ||
|
|
6ac73ccb7e | ||
|
|
cc1c722092 | ||
|
|
04185d94c1 | ||
|
|
8e7914ff72 | ||
|
|
14e5c24ec5 | ||
|
|
b2e9e3e048 | ||
|
|
9f9e3c1582 | ||
|
|
3ebb3a3479 | ||
|
|
3c98cd3d95 | ||
|
|
a4f3270fc5 | ||
|
|
1392d064a1 | ||
|
|
b092f65d95 | ||
|
|
ec03af7a38 | ||
|
|
618e098305 | ||
|
|
843aff582d | ||
|
|
93f65f89e7 | ||
|
|
b156b8b573 | ||
|
|
b3ca7de016 | ||
|
|
a512d99472 | ||
|
|
f0131e72ae | ||
|
|
2e9f27d8ff | ||
|
|
c3a7ab54dc | ||
|
|
7c084134c7 | ||
|
|
5605a0d1b7 | ||
|
|
12c590ad56 | ||
|
|
93bdfe2f10 | ||
|
|
88a07e69b5 | ||
|
|
3108f628b6 | ||
|
|
8353857b3b | ||
|
|
4f49b3da8c | ||
|
|
943424b539 | ||
|
|
a05905f196 | ||
|
|
822c13f199 | ||
|
|
89a1f481e0 | ||
|
|
9de8497dad | ||
|
|
0db0231cff | ||
|
|
203db47b30 | ||
|
|
156e1396f2 | ||
|
|
7a3183520f | ||
|
|
a7b6d0dfe5 | ||
|
|
63e07c9433 | ||
|
|
c26f2b6599 | ||
|
|
aab5f018b9 | ||
|
|
8d48455b04 | ||
|
|
db63f5e3f0 | ||
|
|
177a961000 | ||
|
|
1a4c0decb7 | ||
|
|
d68ffea80d | ||
|
|
c31cab3457 | ||
|
|
3964872289 | ||
|
|
2dd3c9622f | ||
|
|
e6440c0d21 | ||
|
|
1f43e98f8b | ||
|
|
bbafa1b82a | ||
|
|
a691be5952 | ||
|
|
205a10308e | ||
|
|
7a019494e8 | ||
|
|
7a8f704900 | ||
|
|
df1cfc4caf | ||
|
|
75024c3580 | ||
|
|
b26e9b5993 | ||
|
|
ea31f50554 | ||
|
|
3ee4936db6 | ||
|
|
85cfe49d65 | ||
|
|
cf474ab246 | ||
|
|
7bddec93ec | ||
|
|
1b50e1a062 | ||
|
|
b3619d3d47 | ||
|
|
ff4fcc23b6 | ||
|
|
c107649b40 | ||
|
|
e362c342a3 | ||
|
|
d9a16855d0 | ||
|
|
272e73da53 | ||
|
|
4bfd008781 | ||
|
|
9738e20207 | ||
|
|
bb85c059de | ||
|
|
08a240fa8e | ||
|
|
a471b1afb3 | ||
|
|
2279e37261 | ||
|
|
083c74e059 | ||
|
|
e78c498e84 | ||
|
|
bc880ee0ca | ||
|
|
8fd3c04480 | ||
|
|
9d81660e24 | ||
|
|
135c2d6c7d | ||
|
|
9ee3cb9b62 | ||
|
|
68d6818bca | ||
|
|
21974a77f8 | ||
|
|
40598b368e | ||
|
|
b6cce75d97 | ||
|
|
ede9435f0e | ||
|
|
854d61a257 | ||
|
|
c913900ed6 | ||
|
|
2927509af3 | ||
|
|
bf480ee58b | ||
|
|
688d7a2cc2 | ||
|
|
b2ff1594b8 | ||
|
|
e98285dbbb | ||
|
|
84a179f48c | ||
|
|
3f347baadb | ||
|
|
14f9d8b0e5 | ||
|
|
222b4c9533 | ||
|
|
2d252f2fa4 | ||
|
|
7d86be2bc2 | ||
|
|
48a9b5d66e | ||
|
|
e367c5403e | ||
|
|
bbbd9fee85 | ||
|
|
960e925e40 | ||
|
|
081c4fa6d4 | ||
|
|
430e7f5834 | ||
|
|
8ae1f81cf4 | ||
|
|
77481947f0 | ||
|
|
31ae8a8323 | ||
|
|
d69e503d21 | ||
|
|
eed8deda61 | ||
|
|
51a60d3d46 | ||
|
|
d07f0081b7 | ||
|
|
23086daead | ||
|
|
5e2caf19f5 | ||
|
|
25e4a09816 | ||
|
|
4418ff0716 | ||
|
|
cc6e995ee2 | ||
|
|
205e46647c | ||
|
|
43afe7ffab | ||
|
|
3b88545b03 | ||
|
|
bae0f343e1 | ||
|
|
3881ac309f | ||
|
|
1fd2eba6f2 | ||
|
|
b295d15eae | ||
|
|
d89477cad0 | ||
|
|
42aed15b96 | ||
|
|
9dd3cc0483 | ||
|
|
a4ba23899e | ||
|
|
20bb9c7ec8 | ||
|
|
3326d80c11 | ||
|
|
3673accdb8 | ||
|
|
a784d10fff | ||
|
|
d52992de1b | ||
|
|
4b9444f1a5 | ||
|
|
e6ea71c95a | ||
|
|
8c6a559188 | ||
|
|
331d236f6e | ||
|
|
a481024d27 | ||
|
|
71d82ec8e0 | ||
|
|
b6d5888334 | ||
|
|
97628e2ff2 | ||
|
|
25c447df05 | ||
|
|
872bacf1c4 | ||
|
|
1289c10568 | ||
|
|
59bbede8c7 | ||
|
|
a411df1321 | ||
|
|
dd7424e5b5 | ||
|
|
2d6ea6e505 | ||
|
|
a2edb86dfb | ||
|
|
959314c921 | ||
|
|
bfaeb27c11 | ||
|
|
1e07886f30 | ||
|
|
0e0f1506d2 | ||
|
|
933989e013 | ||
|
|
682e926c6b | ||
|
|
c68653d035 | ||
|
|
7aa4d104af | ||
|
|
16873800a6 | ||
|
|
7b2301ff9c | ||
|
|
54e6003a7c | ||
|
|
dcf7235466 | ||
|
|
30b3fedca4 | ||
|
|
700e1e4340 | ||
|
|
40a05b70ef | ||
|
|
b038ac07d8 | ||
|
|
ba2e1c4c7e | ||
|
|
7beaf49028 | ||
|
|
411fa8bc84 | ||
|
|
01265d08f3 | ||
|
|
30d6a2b84e | ||
|
|
1ee9384875 | ||
|
|
0a4fd50aac | ||
|
|
d76229c061 | ||
|
|
e92d4719cc | ||
|
|
7db224f689 | ||
|
|
cecdd2915e | ||
|
|
ae5fb103ca | ||
|
|
dc29f4dca2 | ||
|
|
bddfcb5867 | ||
|
|
f16c8268cf | ||
|
|
eab7489ec5 | ||
|
|
cd34bfb1ed | ||
|
|
948f26143c | ||
|
|
c954db84e4 | ||
|
|
931d44b5e2 | ||
|
|
a77ba71e05 | ||
|
|
e2d407b769 | ||
|
|
aedd28e0a6 | ||
|
|
8f436eb881 | ||
|
|
3bbb4e269d | ||
|
|
c721625a95 | ||
|
|
cc705e5e2b | ||
|
|
0399ffaf5f | ||
|
|
f8e2324ce7 | ||
|
|
75c9668656 | ||
|
|
8c019a6a3b | ||
|
|
300a87559f | ||
|
|
420a312982 | ||
|
|
3b231360d3 | ||
|
|
fda2aedfd8 | ||
|
|
666064bf46 | ||
|
|
ea830871c2 | ||
|
|
1c94220b45 | ||
|
|
87e3f26fe4 | ||
|
|
414fe19c6e | ||
|
|
1bc99411b5 | ||
|
|
59311a63a0 | ||
|
|
944a7e0e28 | ||
|
|
ae3a231fce | ||
|
|
43df4b8e15 | ||
|
|
ba62ebb620 | ||
|
|
9a5b8a798a | ||
|
|
45aceb26a5 | ||
|
|
0c7af5029b | ||
|
|
4207dde4c2 | ||
|
|
1531536d46 | ||
|
|
2c1897b373 | ||
|
|
dbb4cfe9d6 | ||
|
|
ffac3c7902 | ||
|
|
9c157de05d | ||
|
|
45e8a4d588 | ||
|
|
43589a744d | ||
|
|
8af30a51b5 | ||
|
|
a46cbb623d | ||
|
|
e02c57d963 | ||
|
|
aa08f8826c | ||
|
|
70c085ba5d | ||
|
|
d5d05e17af | ||
|
|
12c8b1c2bc | ||
|
|
f259063f08 | ||
|
|
b3ed26ac2c | ||
|
|
4a63c20a72 | ||
|
|
ebcb664b41 | ||
|
|
229eb2c2d8 | ||
|
|
b8703ba9f6 | ||
|
|
8ecef7b891 | ||
|
|
41f55b7a5a | ||
|
|
cfee431c53 | ||
|
|
f870721fca | ||
|
|
a55b381791 | ||
|
|
2ec838fc59 | ||
|
|
2928b9b87a | ||
|
|
c7d15dfa94 | ||
|
|
3ea1aa4780 | ||
|
|
f67824719c | ||
|
|
0973feea16 | ||
|
|
9942c248eb | ||
|
|
5e2a3ea6ec | ||
|
|
414169fdfa | ||
|
|
f66c2fb60f | ||
|
|
1605e5e443 | ||
|
|
9be5629458 | ||
|
|
da25ce4d09 | ||
|
|
675a62dadd | ||
|
|
5fc7e7bfd0 | ||
|
|
49652e6f1b | ||
|
|
adcadbb2b5 | ||
|
|
cb9369f10e | ||
|
|
a905d7f022 | ||
|
|
8e89f34dbf | ||
|
|
8e7baac6ef | ||
|
|
7757f965eb | ||
|
|
549ca11056 | ||
|
|
6096f74ab2 | ||
|
|
4c833d0bf0 | ||
|
|
40dc1c38d3 | ||
|
|
68ecf41ecf | ||
|
|
e1c40b2792 | ||
|
|
952dc211dd | ||
|
|
d044c3223e | ||
|
|
ba345e53e8 | ||
|
|
49994f3a15 | ||
|
|
3072de4812 | ||
|
|
e942ad8101 | ||
|
|
dc666fd8a9 | ||
|
|
a5af2dc819 | ||
|
|
db5c5b2cfb | ||
|
|
b5bbcbaeaa | ||
|
|
7aed174ebc | ||
|
|
af2e424ffe | ||
|
|
a1ddc210b2 | ||
|
|
d15d9e4492 | ||
|
|
d8879d21db | ||
|
|
58043e07ba | ||
|
|
bba2a4638c | ||
|
|
91b79f1793 | ||
|
|
7b6d43bcc8 | ||
|
|
fd67355b03 | ||
|
|
f6433ef2c5 | ||
|
|
ec5c48b188 | ||
|
|
dc152a558c | ||
|
|
7138d433b1 | ||
|
|
af90b99706 | ||
|
|
bae2eadae9 | ||
|
|
264818e517 | ||
|
|
8eb62e2210 | ||
|
|
804729fcec | ||
|
|
fc603a5368 | ||
|
|
20e0cc5cbb | ||
|
|
cdb794888d | ||
|
|
174e239332 | ||
|
|
ed092bf6b5 | ||
|
|
dde5b6b814 | ||
|
|
b01bc2ae0f | ||
|
|
0170261369 | ||
|
|
04b1daac16 | ||
|
|
b955fd363d | ||
|
|
3c7f79cb8a | ||
|
|
ba906d7d02 | ||
|
|
229421edbe | ||
|
|
1542a5d7e5 | ||
|
|
63696c400e | ||
|
|
fca176d2bd | ||
|
|
7cd83b9a6a | ||
|
|
6924eb6c52 | ||
|
|
cb2f6f7c4a | ||
|
|
7bf6d3b8eb | ||
|
|
2ea9768e00 | ||
|
|
d93315e3ee | ||
|
|
b3a24f7410 | ||
|
|
60afb110ef | ||
|
|
6ee0cad289 | ||
|
|
fbd85680fb | ||
|
|
c95a38987f | ||
|
|
fc2795d317 | ||
|
|
2b0deeb77a | ||
|
|
5d9a868142 | ||
|
|
f14b49457c | ||
|
|
f1de084da3 | ||
|
|
caa8c00f89 | ||
|
|
7545951725 | ||
|
|
c65ea5bfa6 | ||
|
|
1aa336d837 | ||
|
|
e60357d20d | ||
|
|
55d5cccf2e | ||
|
|
017af63fb0 | ||
|
|
39b51707ce | ||
|
|
d3951ebeaf | ||
|
|
5441651ea7 | ||
|
|
1d0eaafb5f | ||
|
|
72e82c4aca | ||
|
|
1761e13dbd | ||
|
|
c33dc90562 | ||
|
|
54737d3076 | ||
|
|
c56236f081 | ||
|
|
38f88fc563 | ||
|
|
2a1da61cd9 | ||
|
|
f4d76f1edd | ||
|
|
8437130ec2 | ||
|
|
f693ce97bf | ||
|
|
fd975a6694 | ||
|
|
57f83162f9 | ||
|
|
a395324b52 | ||
|
|
14ba1a6dbb | ||
|
|
7067382494 | ||
|
|
78fad24068 | ||
|
|
799dbec5af | ||
|
|
ffbf2d6d63 | ||
|
|
c7d27731b3 | ||
|
|
9bdef70786 | ||
|
|
3e2816ae31 | ||
|
|
f17d42ede6 | ||
|
|
966d3f7654 | ||
|
|
ea0f3262f4 | ||
|
|
7f58e3ab09 | ||
|
|
1e5621c049 | ||
|
|
84f5e4cf3d | ||
|
|
9c5b690799 | ||
|
|
6478b32d0e | ||
|
|
bf3c1c0878 | ||
|
|
3fbddbe2ca | ||
|
|
b12e8d6312 | ||
|
|
07af621381 | ||
|
|
aa268d5eeb | ||
|
|
54705cc432 | ||
|
|
5172d73137 | ||
|
|
f69697b3fa | ||
|
|
31528a5202 | ||
|
|
46800b6639 | ||
|
|
4c1e717b2b | ||
|
|
4fc84e9f5c | ||
|
|
5b427a0c3b | ||
|
|
aacf8f22f5 | ||
|
|
f66cb05fcf | ||
|
|
f85fe7faff | ||
|
|
5078a8df25 | ||
|
|
119ab71950 | ||
|
|
852ec92e93 | ||
|
|
16039b1117 | ||
|
|
d0010c405e | ||
|
|
bb04f149f3 | ||
|
|
8dc11b3586 | ||
|
|
b6f2f0e5d0 | ||
|
|
611f3c6155 | ||
|
|
5e01d28898 | ||
|
|
62c440957e | ||
|
|
f8032cd09b | ||
|
|
7fa61fafbf | ||
|
|
ff8a833a6d | ||
|
|
30aa7e83a1 | ||
|
|
07172b6fe8 | ||
|
|
68a5e7e319 | ||
|
|
5a2adb4254 | ||
|
|
5ddf70221c | ||
|
|
8b855720f8 | ||
|
|
342de83225 | ||
|
|
8e88ccd6a6 | ||
|
|
4a0f54ae17 | ||
|
|
240a04b406 | ||
|
|
1124d4ee41 | ||
|
|
2ad3305879 | ||
|
|
0fffe28941 | ||
|
|
abe8377387 | ||
|
|
2cd5f959a0 | ||
|
|
48a8ec4ab2 | ||
|
|
6ebd2c80e7 | ||
|
|
bd9b6c99e6 | ||
|
|
032e600120 | ||
|
|
83d4e7efaa | ||
|
|
80dbf97a2f | ||
|
|
72ab5ba1da | ||
|
|
23ba071de7 | ||
|
|
f2f3ba49b6 | ||
|
|
e09f00ba0a | ||
|
|
f8ef380b34 | ||
|
|
7ecac97a95 | ||
|
|
c8a75631ac | ||
|
|
d38c872259 | ||
|
|
82ab6cd3b1 | ||
|
|
5407bf48e5 | ||
|
|
683c01b0d3 | ||
|
|
4c2eab4b52 | ||
|
|
81595095da | ||
|
|
445a840b88 | ||
|
|
d989cb9988 | ||
|
|
bbf6889ecc | ||
|
|
703ac1b685 | ||
|
|
9a7c3c689f | ||
|
|
91133b0f48 | ||
|
|
ac43cd8b6f | ||
|
|
ccddbb15c9 | ||
|
|
e72fe25920 | ||
|
|
654d583059 | ||
|
|
4f14dc7a58 | ||
|
|
bcac080543 | ||
|
|
9dc4db1f14 | ||
|
|
9da69dc35b | ||
|
|
ba70a1bf88 | ||
|
|
72cd5f139f | ||
|
|
55921ccf50 | ||
|
|
0123209014 | ||
|
|
b175d671a2 | ||
|
|
02a48e1c64 | ||
|
|
fe2dc3101e | ||
|
|
af43f0e48e | ||
|
|
9e7f5b9403 | ||
|
|
bd10559121 | ||
|
|
95c65e2da0 | ||
|
|
23de5613bd | ||
|
|
4f9131fdc3 | ||
|
|
047c414841 | ||
|
|
e6ea208c06 | ||
|
|
61a04eb9a0 | ||
|
|
ddc0ac37ab | ||
|
|
43571bac38 | ||
|
|
763cec31bd | ||
|
|
8093142340 | ||
|
|
dc0a4a49b7 | ||
|
|
6669b23d9a | ||
|
|
59ee74c282 | ||
|
|
9c9329ee19 | ||
|
|
22cd265434 | ||
|
|
220297d501 | ||
|
|
2833624e4e | ||
|
|
8089542e09 | ||
|
|
966cdc1376 | ||
|
|
f1f82dd610 | ||
|
|
42298fe659 | ||
|
|
70d3ad025a | ||
|
|
5ea172f9a6 | ||
|
|
606794818e | ||
|
|
1650f30312 | ||
|
|
c8e57ec195 | ||
|
|
c9c9dd2f9b | ||
|
|
9cde5105ad | ||
|
|
2eb7c2842a | ||
|
|
7148be2fd1 | ||
|
|
99f24c5997 | ||
|
|
b1d781e858 | ||
|
|
b2ca968673 | ||
|
|
e096791e3e | ||
|
|
685633d031 | ||
|
|
7cd30650b2 | ||
|
|
437424375e | ||
|
|
44309ee62f | ||
|
|
4fca79380a | ||
|
|
29b357bc66 | ||
|
|
d617815823 | ||
|
|
f1c2809220 | ||
|
|
8089387bae | ||
|
|
5e8c376115 | ||
|
|
de824007d9 | ||
|
|
a8e18fdbe6 | ||
|
|
21ae81b4af | ||
|
|
38d3982bf1 | ||
|
|
4be693f2e7 | ||
|
|
9389749b79 | ||
|
|
c5ca2609a6 | ||
|
|
8acdf3f615 | ||
|
|
0891236142 | ||
|
|
7e7366be13 | ||
|
|
ed0469b5bb | ||
|
|
134ebba636 | ||
|
|
e08297ff73 | ||
|
|
6043c9cbd8 | ||
|
|
65d049c6f9 | ||
|
|
2d5bd153e0 | ||
|
|
31635e3e58 | ||
|
|
2a13e583d4 | ||
|
|
e90940949c | ||
|
|
c1c617b323 | ||
|
|
4969c86909 | ||
|
|
74f14829a0 | ||
|
|
f878b92cc6 | ||
|
|
10b94f9bfa | ||
|
|
34eb1bd244 | ||
|
|
8137cdc22d | ||
|
|
37e37c868d | ||
|
|
632793b067 | ||
|
|
f6d564667e | ||
|
|
66ef90df9f | ||
|
|
5e60d09201 | ||
|
|
6ca4b86f7e | ||
|
|
762e9fe88c | ||
|
|
65d94a3b6d | ||
|
|
7ab8707285 | ||
|
|
2740655d2d | ||
|
|
2bebdf017d | ||
|
|
a78e1df965 | ||
|
|
5a40d26b44 | ||
|
|
885e0ebfde | ||
|
|
61a8c6f037 | ||
|
|
ca8d492b9a | ||
|
|
bdd71c51a4 | ||
|
|
0cec103489 | ||
|
|
d82a145b6f | ||
|
|
d507ba3531 | ||
|
|
7738482be9 | ||
|
|
fd6259c8f6 | ||
|
|
a1d310bd2c | ||
|
|
a34b685c65 | ||
|
|
8a752364a7 | ||
|
|
61590c7e54 | ||
|
|
5f10d67db5 | ||
|
|
251ea79bd2 | ||
|
|
e3a0b4b1c1 | ||
|
|
01681ab4bf | ||
|
|
0d85dc4818 | ||
|
|
b52301b1af | ||
|
|
4bace773f9 | ||
|
|
5002e0f62c | ||
|
|
19c448612d | ||
|
|
3cd3b7a172 | ||
|
|
630bac2aa5 | ||
|
|
fddeb5c0f8 | ||
|
|
33c1bd5f01 | ||
|
|
46ab2711d4 | ||
|
|
6fc31df033 | ||
|
|
4588e52120 | ||
|
|
a38784f567 | ||
|
|
4d6659553b | ||
|
|
53a5f1516e | ||
|
|
b6917b9dee | ||
|
|
69373fded7 | ||
|
|
3c0540c16e | ||
|
|
94da9fe55e | ||
|
|
4031a8cab1 | ||
|
|
54b497258f | ||
|
|
b0a759223d | ||
|
|
962446a5ac | ||
|
|
9542ef1285 | ||
|
|
a263897627 | ||
|
|
1b7ba2c8f1 | ||
|
|
64a457a441 | ||
|
|
1e5981c0d6 | ||
|
|
c495aacc3e | ||
|
|
57f67e2b91 | ||
|
|
391102766f | ||
|
|
5ba23f2404 | ||
|
|
dc1f1db9a1 | ||
|
|
97e3543e96 | ||
|
|
1bb0896e49 | ||
|
|
5fc2f5f996 | ||
|
|
b7db0f200e | ||
|
|
0a24260571 | ||
|
|
b852c9b7e0 | ||
|
|
f743f92088 | ||
|
|
dfeb65bb95 | ||
|
|
f07ba8665e | ||
|
|
c1ce7391e2 | ||
|
|
09de364e93 | ||
|
|
2a4f4f5aec | ||
|
|
b201bb2111 | ||
|
|
9c34ecede6 | ||
|
|
f252d4d73b | ||
|
|
05efeff619 | ||
|
|
e1b9814219 | ||
|
|
0c20351702 | ||
|
|
27426c0629 | ||
|
|
02a5fe9c68 | ||
|
|
896fe9d65e | ||
|
|
affc7927c5 | ||
|
|
8dc513da24 | ||
|
|
0e58d2b866 | ||
|
|
3b960c3b64 | ||
|
|
34bb869c96 | ||
|
|
694f4b2bcf | ||
|
|
e449ff9a4c | ||
|
|
fd917b8eae | ||
|
|
64f4179ac5 | ||
|
|
777419b2e8 | ||
|
|
8cc36de284 | ||
|
|
b587127560 | ||
|
|
a9dfc9a74e | ||
|
|
e0c7d65a92 | ||
|
|
de0f4aadb8 | ||
|
|
a7f03b64b2 | ||
|
|
a9019cbef5 | ||
|
|
c25af08da0 | ||
|
|
9f9164a9be | ||
|
|
fb3b4a0293 | ||
|
|
56101ae5ae | ||
|
|
c681b4b2e0 | ||
|
|
dc5bd7601f | ||
|
|
efc30e97ec | ||
|
|
a93e19559d | ||
|
|
4dc6e64a94 | ||
|
|
2b785628e7 | ||
|
|
6e805c1be7 | ||
|
|
b6b94a56dc | ||
|
|
073c4d7886 | ||
|
|
0e90064e45 | ||
|
|
81e4c4df97 | ||
|
|
abb5e81d0d | ||
|
|
cd8e7963de | ||
|
|
bacee6b467 | ||
|
|
5d60dce379 | ||
|
|
7ca967ee61 | ||
|
|
c722b0e513 | ||
|
|
a4dbbc3749 | ||
|
|
6c4aed8cf4 | ||
|
|
f2726a6df4 | ||
|
|
9a84b4a9b7 | ||
|
|
55533b11e5 | ||
|
|
af9f328cad | ||
|
|
39f4bbaa0e | ||
|
|
5f15afff39 | ||
|
|
11e2ccaba6 | ||
|
|
39178c2d41 | ||
|
|
354e6ccc66 | ||
|
|
4f7cfd5372 | ||
|
|
c4ad14cb68 | ||
|
|
91d9333a50 | ||
|
|
074d7dfd86 | ||
|
|
9fd3775325 | ||
|
|
840cb5105f | ||
|
|
d8a9f1c3be | ||
|
|
59b50d0ae4 | ||
|
|
4b0cb26b34 | ||
|
|
cc2686057c | ||
|
|
cf2f1e956a | ||
|
|
f00595b32d | ||
|
|
ae68a254d7 | ||
|
|
03bd76dea2 | ||
|
|
29e3ab247d | ||
|
|
9cbe9389f5 | ||
|
|
7a5daff4c9 | ||
|
|
f425cecded | ||
|
|
9608b44f21 | ||
|
|
aeca19d5f4 | ||
|
|
4fa57fbb25 | ||
|
|
5415c01c51 | ||
|
|
a3a2279358 | ||
|
|
589216e720 | ||
|
|
6521e4dac4 | ||
|
|
2a948d32a4 | ||
|
|
0dc55bbc80 | ||
|
|
563937950a | ||
|
|
4737f937ee | ||
|
|
b2271eb64f | ||
|
|
bb7bd1b421 | ||
|
|
7daba7ddc1 |
@@ -7,7 +7,6 @@ node_modules/
|
||||
logs/
|
||||
/public/templates
|
||||
/public/uploads
|
||||
/public/sounds
|
||||
/public/vendor
|
||||
/public/src/modules/string.js
|
||||
.idea/
|
||||
|
||||
204
.github/workflows/test.yaml
vendored
Normal file
@@ -0,0 +1,204 @@
|
||||
name: Lint and test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Lint and test
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
node: [10, 12, 14]
|
||||
database: [mongo-dev, mongo, redis, postgres]
|
||||
include:
|
||||
# only run coverage once
|
||||
- os: ubuntu-latest
|
||||
node: 14
|
||||
coverage: true
|
||||
# test under development once
|
||||
- database: mongo-dev
|
||||
test_env: development
|
||||
# only run eslint once
|
||||
- os: ubuntu-latest
|
||||
node: 14
|
||||
database: mongo-dev
|
||||
lint: true
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
TEST_ENV: ${{ matrix.test_env || 'production' }}
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: 'postgres:10-alpine'
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
# Set health checks to wait until postgres has started
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
ports:
|
||||
# Maps port 5432 on service container to the host
|
||||
- 5432:5432
|
||||
|
||||
redis:
|
||||
image: 'redis:2.8.9'
|
||||
# Set health checks to wait until redis has started
|
||||
options: >-
|
||||
--health-cmd "redis-cli ping"
|
||||
--health-interval 10s
|
||||
--health-timeout 5s
|
||||
--health-retries 5
|
||||
ports:
|
||||
# Maps port 6379 on service container to the host
|
||||
- 6379:6379
|
||||
|
||||
mongo:
|
||||
image: 'mongo:3.2'
|
||||
ports:
|
||||
# Maps port 27017 on service container to the host
|
||||
- 27017:27017
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- run: cp install/package.json package.json
|
||||
|
||||
- name: Install Node
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
|
||||
- name: NPM Install
|
||||
uses: bahmutov/npm-install@v1
|
||||
with:
|
||||
useLockFile: false
|
||||
|
||||
- name: Setup on MongoDB
|
||||
if: startsWith(matrix.database, 'mongo')
|
||||
env:
|
||||
SETUP: >-
|
||||
{
|
||||
"url": "http://127.0.0.1:4567",
|
||||
"secret": "abcdef",
|
||||
"admin:username": "admin",
|
||||
"admin:email": "test@example.org",
|
||||
"admin:password": "hAN3Eg8W",
|
||||
"admin:password:confirm": "hAN3Eg8W",
|
||||
|
||||
"database": "mongo",
|
||||
"mongo:host": "127.0.0.1",
|
||||
"mongo:port": 27017,
|
||||
"mongo:username": "",
|
||||
"mongo:password": "",
|
||||
"mongo:database": "nodebb"
|
||||
}
|
||||
CI: >-
|
||||
{
|
||||
"host": "127.0.0.1",
|
||||
"port": 27017,
|
||||
"database": "ci_test"
|
||||
}
|
||||
run: |
|
||||
node app --setup="${SETUP}" --ci="${CI}"
|
||||
|
||||
- name: Setup on PostgreSQL
|
||||
if: startsWith(matrix.database, 'postgres')
|
||||
env:
|
||||
SETUP: >-
|
||||
{
|
||||
"url": "http://127.0.0.1:4567",
|
||||
"secret": "abcdef",
|
||||
"admin:username": "admin",
|
||||
"admin:email": "test@example.org",
|
||||
"admin:password": "hAN3Eg8W",
|
||||
"admin:password:confirm": "hAN3Eg8W",
|
||||
|
||||
"database": "postgres",
|
||||
"postgres:host": "127.0.0.1",
|
||||
"postgres:port": 5432,
|
||||
"postgres:username": "postgres",
|
||||
"postgres:password": "postgres",
|
||||
"postgres:database": "nodebb"
|
||||
}
|
||||
CI: >-
|
||||
{
|
||||
"host": "127.0.0.1",
|
||||
"database": "ci_test",
|
||||
"port": 5432,
|
||||
"username": "postgres",
|
||||
"password": "postgres"
|
||||
}
|
||||
run: |
|
||||
node -e "const { Client } = require('pg'); const c = new Client({ host: '127.0.0.1', port: 5432, user: 'postgres', password: 'postgres' }); c.connect().then(() => c.query('CREATE DATABASE nodebb')).then(() => c.query('CREATE DATABASE ci_test')).then(() => c.end())"
|
||||
node app --setup="${SETUP}" --ci="${CI}"
|
||||
|
||||
- name: Setup on Redis
|
||||
if: startsWith(matrix.database, 'redis')
|
||||
env:
|
||||
SETUP: >-
|
||||
{
|
||||
"url": "http://127.0.0.1:4567/forum",
|
||||
"secret": "abcdef",
|
||||
"admin:username": "admin",
|
||||
"admin:email": "test@example.org",
|
||||
"admin:password": "hAN3Eg8W",
|
||||
"admin:password:confirm": "hAN3Eg8W",
|
||||
|
||||
"database": "redis",
|
||||
"redis:host": "127.0.0.1",
|
||||
"redis:port": 6379,
|
||||
"redis:password": "",
|
||||
"redis:database": 0
|
||||
}
|
||||
CI: >-
|
||||
{
|
||||
"host": "127.0.0.1",
|
||||
"database": 1,
|
||||
"port": 6379
|
||||
}
|
||||
run: |
|
||||
node app --setup="${SETUP}" --ci="${CI}"
|
||||
|
||||
- name: Run ESLint
|
||||
if: matrix.lint
|
||||
run: npm run lint
|
||||
|
||||
- name: Node tests
|
||||
run: npm test
|
||||
|
||||
- name: Extract coverage info
|
||||
run: npm run coverage
|
||||
|
||||
- name: Test coverage
|
||||
uses: coverallsapp/github-action@v1.1.2
|
||||
if: matrix.coverage
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
flag-name: ${{ matrix.os }}-node-${{ matrix.node }}-db-${{ matrix.database }}
|
||||
parallel: true
|
||||
|
||||
finish:
|
||||
needs: test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Coveralls Finished
|
||||
uses: coverallsapp/github-action@v1.1.2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
parallel-finished: true
|
||||
2
.gitignore
vendored
@@ -28,7 +28,6 @@ pidfile
|
||||
# templates
|
||||
/public/templates
|
||||
|
||||
/public/sounds
|
||||
/public/uploads
|
||||
/test/uploads
|
||||
|
||||
@@ -41,6 +40,7 @@ pidfile
|
||||
/public/acp.min.js.map
|
||||
/public/installer.css
|
||||
/public/installer.min.js
|
||||
/public/bootstrap.min.css
|
||||
/public/logo.png
|
||||
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
|
||||
|
||||
48
.travis.yml
@@ -1,48 +0,0 @@
|
||||
services:
|
||||
- mongodb
|
||||
- redis-server
|
||||
- postgresql
|
||||
before_install:
|
||||
- cp install/package.json package.json
|
||||
- sudo apt-get update
|
||||
- sudo apt-get --yes remove postgresql\*
|
||||
- sudo apt-get install -y postgresql-12 postgresql-client-12
|
||||
- sudo cp /etc/postgresql/{9.6,12}/main/pg_hba.conf
|
||||
- sudo service postgresql restart 12
|
||||
before_script:
|
||||
- sleep 15 # wait for mongodb to be ready
|
||||
- "mongo mydb_test --eval 'db.createUser({user:\"travis\", pwd: \"test\", roles: []});'"
|
||||
- sh -c "if [ '$DB' = 'mongodb' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"mongo\\\",\\\"mongo:host\\\":\\\"127.0.0.1\\\",\\\"mongo:port\\\":27017,\\\"mongo:username\\\":\\\"\\\",\\\"mongo:password\\\":\\\"\\\",\\\"mongo:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":27017,\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'redis' ]; then node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567/forum\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"redis\\\",\\\"redis:host\\\":\\\"127.0.0.1\\\",\\\"redis:port\\\":6379,\\\"redis:password\\\":\\\"\\\",\\\"redis:database\\\":0,\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":6379,\\\"database\\\":1}\"; fi"
|
||||
- sh -c "if [ '$DB' = 'postgres' ]; then psql -c 'create database nodebb;' -U postgres; psql -c 'create database travis_ci_test;' -U postgres; node app --setup=\"{\\\"url\\\":\\\"http://127.0.0.1:4567\\\",\\\"secret\\\":\\\"abcdef\\\",\\\"database\\\":\\\"postgres\\\",\\\"postgres:host\\\":\\\"127.0.0.1\\\",\\\"postgres:port\\\":5433,\\\"postgres:password\\\":\\\"\\\",\\\"postgres:database\\\":\\\"nodebb\\\",\\\"admin:username\\\":\\\"admin\\\",\\\"admin:email\\\":\\\"test@example.org\\\",\\\"admin:password\\\":\\\"hAN3Eg8W\\\",\\\"admin:password:confirm\\\":\\\"hAN3Eg8W\\\"}\" --ci=\"{\\\"host\\\":\\\"127.0.0.1\\\",\\\"port\\\":5433,\\\"username\\\":\\\"postgres\\\",\\\"database\\\":\\\"travis_ci_test\\\"}\"; fi"
|
||||
after_success:
|
||||
- "npm run coveralls"
|
||||
language: node_js
|
||||
sudo: false
|
||||
dist: xenial
|
||||
env:
|
||||
global:
|
||||
- PGUSER=postgres
|
||||
- PGPORT=5433
|
||||
- CXX=g++-4.8
|
||||
jobs:
|
||||
- "DB=mongodb TEST_ENV=production"
|
||||
- "DB=mongodb TEST_ENV=development"
|
||||
- "DB=redis TEST_ENV=production"
|
||||
- "DB=postgres TEST_ENV=production"
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- mongodb-4.0-xenial
|
||||
packages:
|
||||
- g++-4.8
|
||||
- mongodb-org-server
|
||||
node_js:
|
||||
- "14"
|
||||
- "12"
|
||||
- "10"
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
250
.tx/config
@@ -251,6 +251,106 @@ trans.zh_CN = public/language/zh-CN/modules.json
|
||||
trans.zh_TW = public/language/zh-TW/modules.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.post-queue]
|
||||
file_filter = public/language/<lang>/post-queue.json
|
||||
source_file = public/language/en-GB/post-queue.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/post-queue.json
|
||||
trans.bg = public/language/bg/post-queue.json
|
||||
trans.bn = public/language/bn/post-queue.json
|
||||
trans.cs = public/language/cs/post-queue.json
|
||||
trans.da = public/language/da/post-queue.json
|
||||
trans.de = public/language/de/post-queue.json
|
||||
trans.el = public/language/el/post-queue.json
|
||||
trans.en@pirate = public/language/en-x-pirate/post-queue.json
|
||||
trans.en_US = public/language/en-US/post-queue.json
|
||||
trans.es = public/language/es/post-queue.json
|
||||
trans.et = public/language/et/post-queue.json
|
||||
trans.fa_IR = public/language/fa-IR/post-queue.json
|
||||
trans.fi = public/language/fi/post-queue.json
|
||||
trans.fr = public/language/fr/post-queue.json
|
||||
trans.gl = public/language/gl/post-queue.json
|
||||
trans.he = public/language/he/post-queue.json
|
||||
trans.hr = public/language/hr/post-queue.json
|
||||
trans.hu = public/language/hu/post-queue.json
|
||||
trans.id = public/language/id/post-queue.json
|
||||
trans.it = public/language/it/post-queue.json
|
||||
trans.ja = public/language/ja/post-queue.json
|
||||
trans.ko = public/language/ko/post-queue.json
|
||||
trans.lt = public/language/lt/post-queue.json
|
||||
trans.lv = public/language/lv/post-queue.json
|
||||
trans.ms = public/language/ms/post-queue.json
|
||||
trans.nb = public/language/nb/post-queue.json
|
||||
trans.nl = public/language/nl/post-queue.json
|
||||
trans.pl = public/language/pl/post-queue.json
|
||||
trans.pt_BR = public/language/pt-BR/post-queue.json
|
||||
trans.pt_PT = public/language/pt-PT/post-queue.json
|
||||
trans.ro = public/language/ro/post-queue.json
|
||||
trans.ru = public/language/ru/post-queue.json
|
||||
trans.rw = public/language/rw/post-queue.json
|
||||
trans.sc = public/language/sc/post-queue.json
|
||||
trans.sk = public/language/sk/post-queue.json
|
||||
trans.sl = public/language/sl/post-queue.json
|
||||
trans.sr = public/language/sr/post-queue.json
|
||||
trans.sv = public/language/sv/post-queue.json
|
||||
trans.th = public/language/th/post-queue.json
|
||||
trans.tr = public/language/tr/post-queue.json
|
||||
trans.uk = public/language/uk/post-queue.json
|
||||
trans.vi = public/language/vi/post-queue.json
|
||||
trans.zh_CN = public/language/zh-CN/post-queue.json
|
||||
trans.zh_TW = public/language/zh-TW/post-queue.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.ip-blacklist]
|
||||
file_filter = public/language/<lang>/ip-blacklist.json
|
||||
source_file = public/language/en-GB/ip-blacklist.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/ip-blacklist.json
|
||||
trans.bg = public/language/bg/ip-blacklist.json
|
||||
trans.bn = public/language/bn/ip-blacklist.json
|
||||
trans.cs = public/language/cs/ip-blacklist.json
|
||||
trans.da = public/language/da/ip-blacklist.json
|
||||
trans.de = public/language/de/ip-blacklist.json
|
||||
trans.el = public/language/el/ip-blacklist.json
|
||||
trans.en@pirate = public/language/en-x-pirate/ip-blacklist.json
|
||||
trans.en_US = public/language/en-US/ip-blacklist.json
|
||||
trans.es = public/language/es/ip-blacklist.json
|
||||
trans.et = public/language/et/ip-blacklist.json
|
||||
trans.fa_IR = public/language/fa-IR/ip-blacklist.json
|
||||
trans.fi = public/language/fi/ip-blacklist.json
|
||||
trans.fr = public/language/fr/ip-blacklist.json
|
||||
trans.gl = public/language/gl/ip-blacklist.json
|
||||
trans.he = public/language/he/ip-blacklist.json
|
||||
trans.hr = public/language/hr/ip-blacklist.json
|
||||
trans.hu = public/language/hu/ip-blacklist.json
|
||||
trans.id = public/language/id/ip-blacklist.json
|
||||
trans.it = public/language/it/ip-blacklist.json
|
||||
trans.ja = public/language/ja/ip-blacklist.json
|
||||
trans.ko = public/language/ko/ip-blacklist.json
|
||||
trans.lt = public/language/lt/ip-blacklist.json
|
||||
trans.lv = public/language/lv/ip-blacklist.json
|
||||
trans.ms = public/language/ms/ip-blacklist.json
|
||||
trans.nb = public/language/nb/ip-blacklist.json
|
||||
trans.nl = public/language/nl/ip-blacklist.json
|
||||
trans.pl = public/language/pl/ip-blacklist.json
|
||||
trans.pt_BR = public/language/pt-BR/ip-blacklist.json
|
||||
trans.pt_PT = public/language/pt-PT/ip-blacklist.json
|
||||
trans.ro = public/language/ro/ip-blacklist.json
|
||||
trans.ru = public/language/ru/ip-blacklist.json
|
||||
trans.rw = public/language/rw/ip-blacklist.json
|
||||
trans.sc = public/language/sc/ip-blacklist.json
|
||||
trans.sk = public/language/sk/ip-blacklist.json
|
||||
trans.sl = public/language/sl/ip-blacklist.json
|
||||
trans.sr = public/language/sr/ip-blacklist.json
|
||||
trans.sv = public/language/sv/ip-blacklist.json
|
||||
trans.th = public/language/th/ip-blacklist.json
|
||||
trans.tr = public/language/tr/ip-blacklist.json
|
||||
trans.uk = public/language/uk/ip-blacklist.json
|
||||
trans.vi = public/language/vi/ip-blacklist.json
|
||||
trans.zh_CN = public/language/zh-CN/ip-blacklist.json
|
||||
trans.zh_TW = public/language/zh-TW/ip-blacklist.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.register]
|
||||
file_filter = public/language/<lang>/register.json
|
||||
source_file = public/language/en-GB/register.json
|
||||
@@ -2300,56 +2400,6 @@ trans.zh_CN = public/language/zh-CN/admin/manage/groups.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/groups.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-manage-ip-blacklist]
|
||||
file_filter = public/language/<lang>/admin/manage/ip-blacklist.json
|
||||
source_file = public/language/en-GB/admin/manage/ip-blacklist.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/manage/ip-blacklist.json
|
||||
trans.bg = public/language/bg/admin/manage/ip-blacklist.json
|
||||
trans.bn = public/language/bn/admin/manage/ip-blacklist.json
|
||||
trans.cs = public/language/cs/admin/manage/ip-blacklist.json
|
||||
trans.da = public/language/da/admin/manage/ip-blacklist.json
|
||||
trans.de = public/language/de/admin/manage/ip-blacklist.json
|
||||
trans.el = public/language/el/admin/manage/ip-blacklist.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/manage/ip-blacklist.json
|
||||
trans.en_US = public/language/en-US/admin/manage/ip-blacklist.json
|
||||
trans.es = public/language/es/admin/manage/ip-blacklist.json
|
||||
trans.et = public/language/et/admin/manage/ip-blacklist.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/manage/ip-blacklist.json
|
||||
trans.fi = public/language/fi/admin/manage/ip-blacklist.json
|
||||
trans.fr = public/language/fr/admin/manage/ip-blacklist.json
|
||||
trans.gl = public/language/gl/admin/manage/ip-blacklist.json
|
||||
trans.he = public/language/he/admin/manage/ip-blacklist.json
|
||||
trans.hr = public/language/hr/admin/manage/ip-blacklist.json
|
||||
trans.hu = public/language/hu/admin/manage/ip-blacklist.json
|
||||
trans.id = public/language/id/admin/manage/ip-blacklist.json
|
||||
trans.it = public/language/it/admin/manage/ip-blacklist.json
|
||||
trans.ja = public/language/ja/admin/manage/ip-blacklist.json
|
||||
trans.ko = public/language/ko/admin/manage/ip-blacklist.json
|
||||
trans.lt = public/language/lt/admin/manage/ip-blacklist.json
|
||||
trans.lv = public/language/lv/admin/manage/ip-blacklist.json
|
||||
trans.ms = public/language/ms/admin/manage/ip-blacklist.json
|
||||
trans.nb = public/language/nb/admin/manage/ip-blacklist.json
|
||||
trans.nl = public/language/nl/admin/manage/ip-blacklist.json
|
||||
trans.pl = public/language/pl/admin/manage/ip-blacklist.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/manage/ip-blacklist.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/manage/ip-blacklist.json
|
||||
trans.ro = public/language/ro/admin/manage/ip-blacklist.json
|
||||
trans.ru = public/language/ru/admin/manage/ip-blacklist.json
|
||||
trans.rw = public/language/rw/admin/manage/ip-blacklist.json
|
||||
trans.sc = public/language/sc/admin/manage/ip-blacklist.json
|
||||
trans.sk = public/language/sk/admin/manage/ip-blacklist.json
|
||||
trans.sl = public/language/sl/admin/manage/ip-blacklist.json
|
||||
trans.sr = public/language/sr/admin/manage/ip-blacklist.json
|
||||
trans.sv = public/language/sv/admin/manage/ip-blacklist.json
|
||||
trans.th = public/language/th/admin/manage/ip-blacklist.json
|
||||
trans.tr = public/language/tr/admin/manage/ip-blacklist.json
|
||||
trans.uk = public/language/uk/admin/manage/ip-blacklist.json
|
||||
trans.vi = public/language/vi/admin/manage/ip-blacklist.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/manage/ip-blacklist.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/ip-blacklist.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-manage-privileges]
|
||||
file_filter = public/language/<lang>/admin/manage/privileges.json
|
||||
source_file = public/language/en-GB/admin/manage/privileges.json
|
||||
@@ -2400,56 +2450,6 @@ trans.zh_CN = public/language/zh-CN/admin/manage/privileges.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/privileges.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-manage-post-queue]
|
||||
file_filter = public/language/<lang>/admin/manage/post-queue.json
|
||||
source_file = public/language/en-GB/admin/manage/post-queue.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/manage/post-queue.json
|
||||
trans.bg = public/language/bg/admin/manage/post-queue.json
|
||||
trans.bn = public/language/bn/admin/manage/post-queue.json
|
||||
trans.cs = public/language/cs/admin/manage/post-queue.json
|
||||
trans.da = public/language/da/admin/manage/post-queue.json
|
||||
trans.de = public/language/de/admin/manage/post-queue.json
|
||||
trans.el = public/language/el/admin/manage/post-queue.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/manage/post-queue.json
|
||||
trans.en_US = public/language/en-US/admin/manage/post-queue.json
|
||||
trans.es = public/language/es/admin/manage/post-queue.json
|
||||
trans.et = public/language/et/admin/manage/post-queue.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/manage/post-queue.json
|
||||
trans.fi = public/language/fi/admin/manage/post-queue.json
|
||||
trans.fr = public/language/fr/admin/manage/post-queue.json
|
||||
trans.gl = public/language/gl/admin/manage/post-queue.json
|
||||
trans.he = public/language/he/admin/manage/post-queue.json
|
||||
trans.hr = public/language/hr/admin/manage/post-queue.json
|
||||
trans.hu = public/language/hu/admin/manage/post-queue.json
|
||||
trans.id = public/language/id/admin/manage/post-queue.json
|
||||
trans.it = public/language/it/admin/manage/post-queue.json
|
||||
trans.ja = public/language/ja/admin/manage/post-queue.json
|
||||
trans.ko = public/language/ko/admin/manage/post-queue.json
|
||||
trans.lt = public/language/lt/admin/manage/post-queue.json
|
||||
trans.lv = public/language/lv/admin/manage/post-queue.json
|
||||
trans.ms = public/language/ms/admin/manage/post-queue.json
|
||||
trans.nb = public/language/nb/admin/manage/post-queue.json
|
||||
trans.nl = public/language/nl/admin/manage/post-queue.json
|
||||
trans.pl = public/language/pl/admin/manage/post-queue.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/manage/post-queue.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/manage/post-queue.json
|
||||
trans.ro = public/language/ro/admin/manage/post-queue.json
|
||||
trans.ru = public/language/ru/admin/manage/post-queue.json
|
||||
trans.rw = public/language/rw/admin/manage/post-queue.json
|
||||
trans.sc = public/language/sc/admin/manage/post-queue.json
|
||||
trans.sk = public/language/sk/admin/manage/post-queue.json
|
||||
trans.sl = public/language/sl/admin/manage/post-queue.json
|
||||
trans.sr = public/language/sr/admin/manage/post-queue.json
|
||||
trans.sv = public/language/sv/admin/manage/post-queue.json
|
||||
trans.th = public/language/th/admin/manage/post-queue.json
|
||||
trans.tr = public/language/tr/admin/manage/post-queue.json
|
||||
trans.uk = public/language/uk/admin/manage/post-queue.json
|
||||
trans.vi = public/language/vi/admin/manage/post-queue.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/manage/post-queue.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/manage/post-queue.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-manage-registration]
|
||||
file_filter = public/language/<lang>/admin/manage/registration.json
|
||||
source_file = public/language/en-GB/admin/manage/registration.json
|
||||
@@ -3300,6 +3300,56 @@ trans.zh_CN = public/language/zh-CN/admin/settings/notifications.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/notifications.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-api]
|
||||
file_filter = public/language/<lang>/admin/settings/api.json
|
||||
source_file = public/language/en-GB/admin/settings/api.json
|
||||
source_lang = en_GB
|
||||
trans.ar = public/language/ar/admin/settings/api.json
|
||||
trans.bg = public/language/bg/admin/settings/api.json
|
||||
trans.bn = public/language/bn/admin/settings/api.json
|
||||
trans.cs = public/language/cs/admin/settings/api.json
|
||||
trans.da = public/language/da/admin/settings/api.json
|
||||
trans.de = public/language/de/admin/settings/api.json
|
||||
trans.el = public/language/el/admin/settings/api.json
|
||||
trans.en@pirate = public/language/en-x-pirate/admin/settings/api.json
|
||||
trans.en_US = public/language/en-US/admin/settings/api.json
|
||||
trans.es = public/language/es/admin/settings/api.json
|
||||
trans.et = public/language/et/admin/settings/api.json
|
||||
trans.fa_IR = public/language/fa-IR/admin/settings/api.json
|
||||
trans.fi = public/language/fi/admin/settings/api.json
|
||||
trans.fr = public/language/fr/admin/settings/api.json
|
||||
trans.gl = public/language/gl/admin/settings/api.json
|
||||
trans.he = public/language/he/admin/settings/api.json
|
||||
trans.hr = public/language/hr/admin/settings/api.json
|
||||
trans.hu = public/language/hu/admin/settings/api.json
|
||||
trans.id = public/language/id/admin/settings/api.json
|
||||
trans.it = public/language/it/admin/settings/api.json
|
||||
trans.ja = public/language/ja/admin/settings/api.json
|
||||
trans.ko = public/language/ko/admin/settings/api.json
|
||||
trans.lt = public/language/lt/admin/settings/api.json
|
||||
trans.lv = public/language/lv/admin/settings/api.json
|
||||
trans.ms = public/language/ms/admin/settings/api.json
|
||||
trans.nb = public/language/nb/admin/settings/api.json
|
||||
trans.nl = public/language/nl/admin/settings/api.json
|
||||
trans.pl = public/language/pl/admin/settings/api.json
|
||||
trans.pt_BR = public/language/pt-BR/admin/settings/api.json
|
||||
trans.pt_PT = public/language/pt-PT/admin/settings/api.json
|
||||
trans.ro = public/language/ro/admin/settings/api.json
|
||||
trans.ru = public/language/ru/admin/settings/api.json
|
||||
trans.rw = public/language/rw/admin/settings/api.json
|
||||
trans.sc = public/language/sc/admin/settings/api.json
|
||||
trans.sk = public/language/sk/admin/settings/api.json
|
||||
trans.sl = public/language/sl/admin/settings/api.json
|
||||
trans.sr = public/language/sr/admin/settings/api.json
|
||||
trans.sv = public/language/sv/admin/settings/api.json
|
||||
trans.th = public/language/th/admin/settings/api.json
|
||||
trans.tr = public/language/tr/admin/settings/api.json
|
||||
trans.uk = public/language/uk/admin/settings/api.json
|
||||
trans.vi = public/language/vi/admin/settings/api.json
|
||||
trans.zh_CN = public/language/zh-CN/admin/settings/api.json
|
||||
trans.zh_TW = public/language/zh-TW/admin/settings/api.json
|
||||
type = KEYVALUEJSON
|
||||
|
||||
[nodebb.admin-settings-post]
|
||||
file_filter = public/language/<lang>/admin/settings/post.json
|
||||
source_file = public/language/en-GB/admin/settings/post.json
|
||||
|
||||
959
CHANGELOG.md
@@ -1,3 +1,962 @@
|
||||
#### v1.15.1 (2020-11-11)
|
||||
|
||||
##### Chores
|
||||
|
||||
* incrementing version number - v1.15.1-beta.0 (e033da8a)
|
||||
* fallback l10n for admin-settings-api (8368c25b)
|
||||
* **deps:**
|
||||
* update dependency eslint to v7.13.0 (bcbc0854)
|
||||
* update dependency eslint-config-airbnb-base to v14.2.1 (d227fe9f)
|
||||
* update commitlint monorepo to v11 (90bcfa6d)
|
||||
|
||||
##### New Features
|
||||
|
||||
* #8864, add action:events.log (9c5c32d4)
|
||||
* show db info side by side (62c0454c)
|
||||
* add language keys for admin-settings-api (d32e4e02)
|
||||
* #8824, cache refactor (#8851) (f1f9b225)
|
||||
* move mkdirp to beforeBuild so it doesnt get called twice (6255874e)
|
||||
* group exists API call in write api (d2631922)
|
||||
* user exist route in write api (1446cec7)
|
||||
* new shorthand route /api/v3/users/bySlug/:userslug (60e1e99b)
|
||||
* allow passwords with length > 73 characters (#8818) (512f6de6)
|
||||
* #8821, allow guest topic views (9e3eb5d4)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* #8869, dont escape category title,description twice (567c5f20)
|
||||
* refresh flags list on bulk action success (769aba0a)
|
||||
* test breakage from f300c933a50263039a57811f8cc716df39a138b0 (ee4d90f6)
|
||||
* remove some unnecessary jquery wrappers (9f7902ef)
|
||||
* send back jquery object to keep backwards compat (978f1ee0)
|
||||
* use header/footer cache in prod (a0164b1c)
|
||||
* add missing maxAge to cache (05a92885)
|
||||
* clear header-cache after each suite (3f5f38dd)
|
||||
* show msg on fail (255cf43e)
|
||||
* spec (fe63c6ae)
|
||||
* guest header/footer cache (2e446392)
|
||||
* #8846, possible fix (74951f59)
|
||||
* winston error message (16d03975)
|
||||
* permanent redirect on user api redirect shorthand (6b196a20)
|
||||
* user exist route needs no authentication (f2bb42c0)
|
||||
* #8840, don't crash if /compose route is called with no query params (c61dee4b)
|
||||
* XSS in event:banned messaging modal (f68bce86)
|
||||
* #8838, fix chat dropdown timestamps (78ee8332)
|
||||
* #8836, truncate fullname (76cd5b0f)
|
||||
* #8827, do not require admin:users privilege to ban users (891a1ea2)
|
||||
* **deps:**
|
||||
* update dependency nodebb-plugin-mentions to v2.13.4 (1460a7a8)
|
||||
* update dependency diff to v5 (72d1b3cd)
|
||||
* update dependency nodebb-theme-persona to v10.2.67 (#8847) (e250c3f1)
|
||||
* update dependency json2csv to v5.0.4 (#8865) (ba7b23ac)
|
||||
* update dependency postcss to v8.1.7 (#8866) (2946bb16)
|
||||
* update dependency nodebb-theme-slick to v1.2.40 (#8863) (20f4fe08)
|
||||
* update dependency nodebb-plugin-mentions to v2.13.3 (#8862) (c18f4491)
|
||||
* update dependency benchpressjs to v2.1.0 (14ba6383)
|
||||
* update dependency benchpressjs to v2.0.9 (381a32ab)
|
||||
* update dependency mongodb to v3.6.3 (#8841) (7e273e77)
|
||||
* update dependency nodebb-theme-persona to v10.2.66 (#8839) (00f90cd9)
|
||||
* update dependency nodebb-plugin-mentions to v2.13.2 (#8835) (064c99cd)
|
||||
* update dependency postcss to v8.1.6 (e0cf9740)
|
||||
* update dependency @nodebb/socket.io-adapter-mongo to v3.1.1 (#8831) (40eb658b)
|
||||
* update dependency @nodebb/mubsub to v1.7.1 (#8830) (7b8a5567)
|
||||
* update dependency postcss to v8.1.5 (9f5ef9d0)
|
||||
* **#8828:** web install templates now compiled (#8832) (de5a21f1)
|
||||
* **acp:** max-height for plugin menu list (eec630f1)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* move session revocation route to write api (f300c933)
|
||||
* change Benchpress.parse to .render (#8856) (e128264b)
|
||||
|
||||
#### v1.15.0 (2020-11-04)
|
||||
|
||||
##### Breaking Changes
|
||||
|
||||
* remove toolsVisible in post tools' menu [breaking] (7e7366be)
|
||||
|
||||
##### Chores
|
||||
|
||||
* update changelog for v1.15.0-rc.5 (69f4d5ac)
|
||||
* incrementing version number - v1.15.0-rc.5 (4bd2788b)
|
||||
* add info log into tests (b6d86878)
|
||||
* update renovate config to automatically merge non-major version bumps #yolo (1c8b8ce1)
|
||||
* update changelog for v1.15.0-rc.4 (16882941)
|
||||
* incrementing version number - v1.15.0-rc.4 (57b49320)
|
||||
* update changelog for v1.15.0-rc.3 (2738041b)
|
||||
* incrementing version number - v1.15.0-rc.3 (6de7760a)
|
||||
* bump persona (e0b67817)
|
||||
* update changelog for v1.15.0-rc.2 (c3a7ab54)
|
||||
* incrementing version number - v1.15.0-rc.2 (7c084134)
|
||||
* update changelog for v1.15.0-rc.1 (4f49b3da)
|
||||
* incrementing version number - v1.15.0-rc.1 (943424b5)
|
||||
* update changelog for v1.15.0-rc.0 (aab5f018)
|
||||
* incrementing version number - v1.15.0-rc.0 (8d48455b)
|
||||
* update changelog for v1.15.0-beta.30 (39648722)
|
||||
* incrementing version number - v1.15.0-beta.30 (2dd3c962)
|
||||
* some optimizations for codeclimate (4a63c20a)
|
||||
* update changelog for v1.15.0-beta.29 (63696c40)
|
||||
* incrementing version number - v1.15.0-beta.29 (fca176d2)
|
||||
* refactor src/emailer.js (75459517)
|
||||
* update changelog for v1.15.0-beta.28 (fd975a66)
|
||||
* incrementing version number - v1.15.0-beta.28 (57f83162)
|
||||
* update changelog for v1.15.0-beta.27 (70673824)
|
||||
* incrementing version number - v1.15.0-beta.27 (78fad240)
|
||||
* lint notifications.js (4fc84e9f)
|
||||
* update changelog for v1.15.0-beta.26 (5e01d288)
|
||||
* incrementing version number - v1.15.0-beta.26 (62c44095)
|
||||
* up persona (ff8a833a)
|
||||
* up persona (4a0f54ae)
|
||||
* update changelog for v1.15.0-beta.25 (240a04b4)
|
||||
* incrementing version number - v1.15.0-beta.25 (1124d4ee)
|
||||
* up persona (032e6001)
|
||||
* update changelog for v1.15.0-beta.24 (72ab5ba1)
|
||||
* incrementing version number - v1.15.0-beta.24 (23ba071d)
|
||||
* up persona (5407bf48)
|
||||
* up persona (4c2eab4b)
|
||||
* up persona (91133b0f)
|
||||
* up persona (bcac0805)
|
||||
* up persona (9dc4db1f)
|
||||
* up persona (ba70a1bf)
|
||||
* update changelog for v1.15.0-beta.23 (e6ea208c)
|
||||
* incrementing version number - v1.15.0-beta.23 (61a04eb9)
|
||||
* update changelog for v1.15.0-beta.22 (59ee74c2)
|
||||
* incrementing version number - v1.15.0-beta.22 (9c9329ee)
|
||||
* update changelog for v1.15.0-beta.21 (8089542e)
|
||||
* incrementing version number - v1.15.0-beta.21 (966cdc13)
|
||||
* update changelog for v1.15.0-beta.20 (1650f303)
|
||||
* incrementing version number - v1.15.0-beta.20 (c8e57ec1)
|
||||
* update changelog for v1.15.0-beta.19 (9cde5105)
|
||||
* incrementing version number - v1.15.0-beta.19 (2eb7c284)
|
||||
* update changelog for v1.15.0-beta.18 (b2ca9686)
|
||||
* incrementing version number - v1.15.0-beta.18 (e096791e)
|
||||
* update changelog for v1.15.0-beta.17 (d6178158)
|
||||
* incrementing version number - v1.15.0-beta.17 (f1c28092)
|
||||
* update changelog for v1.15.0-beta.16 (e08297ff)
|
||||
* incrementing version number - v1.15.0-beta.16 (6043c9cb)
|
||||
* update changelog for v1.15.0-beta.15 (f878b92c)
|
||||
* incrementing version number - v1.15.0-beta.15 (10b94f9b)
|
||||
* update changelog for v1.15.0-beta.14 (5e60d092)
|
||||
* incrementing version number - v1.15.0-beta.14 (6ca4b86f)
|
||||
* update commitlint config (61a8c6f0)
|
||||
* update changelog for v1.15.0-beta.13 (ca8d492b)
|
||||
* incrementing version number - v1.15.0-beta.13 (bdd71c51)
|
||||
* update changelog for v1.15.0-beta.12 (0a242605)
|
||||
* incrementing version number - v1.15.0-beta.12 (b852c9b7)
|
||||
* update changelog for v1.15.0-beta.11 (f07ba866)
|
||||
* incrementing version number - v1.15.0-beta.11 (c1ce7391)
|
||||
* update changelog for v1.15.0-beta.10 (9c34eced)
|
||||
* incrementing version number - v1.15.0-beta.10 (f252d4d7)
|
||||
* update changelog for v1.15.0-beta.9 (affc7927)
|
||||
* incrementing version number - v1.15.0-beta.9 (8dc513da)
|
||||
* update changelog for v1.15.0-beta.8 (3b960c3b)
|
||||
* incrementing version number - v1.15.0-beta.8 (34bb869c)
|
||||
* update changelog for v1.15.0-beta.7 (e449ff9a)
|
||||
* incrementing version number - v1.15.0-beta.7 (fd917b8e)
|
||||
* update changelog for v1.15.0-beta.6 (a7f03b64)
|
||||
* incrementing version number - v1.15.0-beta.6 (a9019cbe)
|
||||
* update changelog for v1.15.0-beta.5 (0e90064e)
|
||||
* incrementing version number - v1.15.0-beta.5 (81e4c4df)
|
||||
* update changelog for v1.15.0-beta.4 (6c4aed8c)
|
||||
* incrementing version number - v1.15.0-beta.4 (f2726a6d)
|
||||
* update changelog for v1.15.0-beta.3 (11e2ccab)
|
||||
* incrementing version number - v1.15.0-beta.3 (39178c2d)
|
||||
* update changelog for v1.15.0-beta.2 (d8a9f1c3)
|
||||
* incrementing version number - v1.15.0-beta.2 (59b50d0a)
|
||||
* update changelog for v1.15.0-beta.1 (aeca19d5)
|
||||
* incrementing version number - v1.15.0-beta.1 (4fa57fbb)
|
||||
* incrementing version number - v1.15.0-beta.0 (bff80983)
|
||||
* incrementing version number - v1.14.3-beta.16 (d9a05035)
|
||||
* incrementing version number - v1.14.3-beta.15 (e2a253f2)
|
||||
* incrementing version number - v1.14.3-beta.14 (9500871e)
|
||||
* incrementing version number - v1.14.3-beta.13 (b5a2e4b6)
|
||||
* incrementing version number - v1.14.3-beta.12 (f4c986a7)
|
||||
* incrementing version number - v1.14.3-beta.11 (8618c32a)
|
||||
* incrementing version number - v1.14.3-beta.10 (fa341714)
|
||||
* incrementing version number - v1.14.3-beta.9 (9945c409)
|
||||
* incrementing version number - v1.14.3-beta.8 (b5dcce9c)
|
||||
* incrementing version number - v1.14.3-beta.7 (2531c44c)
|
||||
* incrementing version number - v1.14.3-beta.6 (97088f68)
|
||||
* incrementing version number - v1.14.3-beta.5 (a33a8a5a)
|
||||
* incrementing version number - v1.14.3-beta.4 (55b3e376)
|
||||
* incrementing version number - v1.14.3-beta.3 (5a5abf3c)
|
||||
* incrementing version number - v1.14.3-beta.2 (bbab183f)
|
||||
* incrementing version number - v1.14.3-beta.1 (2c06f6ac)
|
||||
* incrementing version number - v1.14.3-beta.0 (3f87d5f9)
|
||||
* update changelog for v1.14.2 (cd94c24a)
|
||||
* incrementing version number - v1.14.2 (1e4d683f)
|
||||
* update changelog for v1.14.2 (488e69fd)
|
||||
* **deps:**
|
||||
* update dependency mocha to v8.2.1 (35e725d1)
|
||||
* update dependency lint-staged to v10.5.1 (2fa78e43)
|
||||
* update dependency eslint to v7.12.1 (#8799) (224502d8)
|
||||
* update dependency lint-staged to v10.5.0 (#8797) (1f2eca6a)
|
||||
* update dependency eslint to v7.12.0 (#8791) (3108f628)
|
||||
* update dependency lint-staged to v10.4.2 (#8773) (4bfd0087)
|
||||
* update dependency eslint to v7.11.0 (#8747) (bb85c059)
|
||||
* update dependency lint-staged to v10.4.1 (#8771) (08a240fa)
|
||||
* update dependency mocha to v8.2.0 (#8772) (a471b1af)
|
||||
* update dependency eslint-plugin-import to v2.22.1 (aacf8f22)
|
||||
* update dependency eslint to v7.10.0 (#8687) (119ab719)
|
||||
* update dependency lint-staged to v10.4.0 (2833624e)
|
||||
* update dependency eslint to v7.9.0 (b1d781e8)
|
||||
* update dependency eslint to v7.8.1 (#8597) (39110276)
|
||||
* update dependency lint-staged to v10.3.0 (#8608) (dc1f1db9)
|
||||
* update dependency mocha to v8.1.3 (#8588) (05efeff6)
|
||||
* update dependency eslint to v7.8.0 (#8594) (e1b98142)
|
||||
* update dependency lint-staged to v10.2.13 (efc30e97)
|
||||
* update dependency mocha to v8.1.2 (#8579) (c722b0e5)
|
||||
* update dependency grunt to v1.3.0 (df61d080)
|
||||
* update commitlint monorepo to v9.1.2 (877cdfb9)
|
||||
* update dependency eslint to v7.7.0 (#8564) (f1398da2)
|
||||
* update dependency jsdom to v16.4.0 (#8554) (bb8f7c74)
|
||||
* update dependency eslint-config-airbnb-base to v14.2.0 (#8396) (fde4f110)
|
||||
* update dependency eslint-plugin-import to v2.22.0 (#8390) (788a8bfe)
|
||||
* update dependency mocha to v8.1.1 (fe352eb1)
|
||||
* update dependency eslint to v7.6.0 (#8540) (37418375)
|
||||
* update dependency mocha to v8.1.0 (#8536) (72a78833)
|
||||
* update dependency @apidevtools/swagger-parser to v10.0.1 (#8517) (8c498fa1)
|
||||
* update dependency nyc to v15.1.0 (#8353) (c872bd8b)
|
||||
* update dependency eslint to v7.5.0 (#8463) (b2be329c)
|
||||
* update dependency jsdom to v16.3.0 (#8483) (82ada1bd)
|
||||
* update dependency grunt to v1.2.1 (#8462) (b2dc6d60)
|
||||
* update dependency @apidevtools/swagger-parser to v10 (9e2c3ce0)
|
||||
* **writeapi:** cleanup (f6782471)
|
||||
|
||||
##### New Features
|
||||
|
||||
* add back error handling for a number of api calls (1afd2150)
|
||||
* #8823, remove hardcoded write concern (a338f527)
|
||||
* #8817, add login clientside hooks (715775a7)
|
||||
* use github actions for ci (#8811) (eddf4a4f)
|
||||
* allow mods/admins to see deleted posts on user profile (6e85920c)
|
||||
* rearrange buttons on manage/users (27016d22)
|
||||
* #8801, disable express compression by default (6ac73ccb)
|
||||
* allow passing subset of user settings on update route (ec03af7a)
|
||||
* wip, write api tests framework (b156b8b5)
|
||||
* add filter:category.getFields (88a07e69)
|
||||
* move postercount to topic hash (0db0231c)
|
||||
* add free and total mem usage to info (a7b6d0df)
|
||||
* new filter filter:teasers.configureStripTags (177a9610)
|
||||
* send 'Vary' header when ACAO header set (d68ffea8)
|
||||
* add filter.topics.getPostReplies (7a019494)
|
||||
* topic reply to use api lib (also + missing file) (21974a77)
|
||||
* send 401 for invalid-uid (ede9435f)
|
||||
* async/await admin/search (c913900e)
|
||||
* ignore test folder (2927509a)
|
||||
* send back 403 on no-privileges error (14f9d8b0)
|
||||
* refactor groups.delete (8ae1f81c)
|
||||
* move groups.join to api (d69e503d)
|
||||
* allow plugins to define api routes (9dd3cc04)
|
||||
* require https if nodebb is configured with https url (a4ba2389)
|
||||
* add nyc config (3326d80c)
|
||||
* change user search to use filters array (a2edb86d)
|
||||
* add filter (959314c9)
|
||||
* require csrf token if not using bearer token (1e07886f)
|
||||
* #8662, verified/unverified user groups (682e926c)
|
||||
* more fixes (700e1e43)
|
||||
* more work (40a05b70)
|
||||
* wip admin/users (b038ac07)
|
||||
* set unread false for guests (7beaf490)
|
||||
* add stack to deprecate message (01265d08)
|
||||
* add checkbox tests (d76229c0)
|
||||
* add test for serialize/deserialize form (e92d4719)
|
||||
* disable write api tests until fixed (ae5fb103)
|
||||
* #8734, add slugify module, deprecate utils.slugify (bddfcb58)
|
||||
* #8734, move bootstrap-tagsinput to package.json (f16c8268)
|
||||
* #8734, move deserialize/serialize to package.json (eab7489e)
|
||||
* #5964, #8734 remove colorpicker (948f2614)
|
||||
* #8734 remove unused files (c721625a)
|
||||
* #8734, move sortable to package.json (cc705e5e)
|
||||
* #8734, move bootbox to package.json (300a8755)
|
||||
* load jquery-form before using (3b231360)
|
||||
* #8734, jquery-ui, jquery-form, timeago (#8748) (fda2aedf)
|
||||
* remove unused textcomplete file (59311a63)
|
||||
* #8734, remove semver.browser (ae3a231f)
|
||||
* #8734, move slideout to package.json (2c1897b3)
|
||||
* #8734, move tinycon to package.json (9c157de0)
|
||||
* #8734, move visibilityjs to package.json (43589a74)
|
||||
* #8734, move nprogress to package.json (a46cbb62)
|
||||
* #8734 move r.js to package.json (aa08f882)
|
||||
* revoke user sessions above threshold (#8731) (b3ed26ac)
|
||||
* filter:settings.get plugin hook (c7d15dfa)
|
||||
* topic delete/restore/purge/(un)pin/(un)lock (da25ce4d)
|
||||
* add new api page to ACP menu (5fc7e7bf)
|
||||
* management of API tokens via ACP (49652e6f)
|
||||
* added DELETE /api/v1/categories/:cid route (3072de48)
|
||||
* added PUT /api/v1/categories/:cid route (e942ad81)
|
||||
* added POST /api/v1/categories route (dc666fd8)
|
||||
* added PUT/DELETE /api/v1/users/:uid/ban routes (a5af2dc8)
|
||||
* added POST and DELETE /api/v1/users/:uid/follow routes (b5bbcbae)
|
||||
* added PUT /api/v1/users/:uid/password route (7aed174e)
|
||||
* added DELETE /api/v1/users/:uid and DELETE /api/v1/users (a1ddc210)
|
||||
* added openapi.yaml file for BEST documentation (91b79f17)
|
||||
* added checkRequired middleware for API calls (7b6d43bc)
|
||||
* migrating write-api skeleton into core (ec5c48b1)
|
||||
* remove post/header selector (1542a5d7)
|
||||
* category filter on post queue (#8710) (5d9a8681)
|
||||
* #6594, add top/popular sections to digest email (#8709) (e60357d2)
|
||||
* dedicated sorting buttons for plugin ordering in ACP (1761e13d)
|
||||
* #8233, search sub categories (54737d30)
|
||||
* move service-worker.js into its own file (f4d76f1e)
|
||||
* analytics:maxCache setting in ACP (14ba1a6d)
|
||||
* #8695, allow sort for guests (ea0f3262)
|
||||
* up recommended size to 512x512 + ACP labels for PWA (9c5b6907)
|
||||
* upload maskable icon for PWA (6478b32d)
|
||||
* show top 5 trending plugins in new tab in Extend > Plugins (b12e8d63)
|
||||
* register service worker, #8126 (aa268d5e)
|
||||
* add theme-color meta tag for browser address bar (5172d731)
|
||||
* basic service worker, minimum requirement for for a2hs; see #8126 (f69697b3)
|
||||
* option in ACP to configure notification/email delay for chats (5b427a0c)
|
||||
* allow autocomplete to pass optional params to user.search (611f3c61)
|
||||
* upon plugin installation via ACP, check against nbbpm first (5ddf7022)
|
||||
* up benchpress (8e88ccd6)
|
||||
* add row highlighting for popular and unread (2cd5f959)
|
||||
* return to previous page and/or category after marking topic unread (48a8ec4a)
|
||||
* add missing lang key (bd9b6c99)
|
||||
* add number of posters to topic (83d4e7ef)
|
||||
* hightlight matches in quick search (f2f3ba49)
|
||||
* add loading indicator (d38c8722)
|
||||
* allow plugins to override tags and tag counts (81595095)
|
||||
* edit test (ccddbb15)
|
||||
* add x-posts/x-votes keys (23de5613)
|
||||
* allow adding nested replies to a target component (ddc0ac37)
|
||||
* hotkey "/" to open ACP search (43571bac)
|
||||
* ctr-s for save on privileges page too (763cec31)
|
||||
* ctrl-s now saves on settingsv1/v2 forms (80931423)
|
||||
* single href (6669b23d)
|
||||
* allow passing in container to threadTools (7148be2f)
|
||||
* expose calculateTopicPostCount and getChildrenTree (43742437)
|
||||
* allow custom req.query.filter on /unread /recent (de824007)
|
||||
* fullname search (#8641) (4be693f2)
|
||||
* sorted set lex test (9389749b)
|
||||
* add topicIndex to category page (c1c617b3)
|
||||
* up lavender/slick (34eb1bd2)
|
||||
* switch to using topic/select component for merge (f6d56466)
|
||||
* undo for posts move (762e9fe8)
|
||||
* #8626, new move posts modal (5a40d26b)
|
||||
* refactor app.js (5002e0f6)
|
||||
* remove global RELATIVE_PATH (19c44861)
|
||||
* remove app.template (3cd3b7a1)
|
||||
* remove global window.templates (630bac2a)
|
||||
* remove app.isConnected, use socket.connected (fddeb5c0)
|
||||
* use const/let (6fc31df0)
|
||||
* allow nbb to work with cloudflare rocket loader :rocket: (4d665955)
|
||||
* move code (53a5f151)
|
||||
* #8602, dont send emails to unconfirmed addresses (b6917b9d)
|
||||
* add partials/footer/js.tpl (94da9fe5)
|
||||
* add missing name to profile image upload (54b49725)
|
||||
* add action:user.removeCoverPicture (b0a75922)
|
||||
* add user data to action:user.removeUploadedPicture (962446a5)
|
||||
* add userData to action:user.delete (9542ef12)
|
||||
* force upgrade scripts for test (1b7ba2c8)
|
||||
* replace relative urls to absolute before sending email notifs (1e5981c0)
|
||||
* add client side action:flag.create (09de364e)
|
||||
* additional sorting options for flags (0c203517)
|
||||
* new filter hook prior to post queue addition (8cc36de2)
|
||||
* add replies to getPostSummaryByPids (a9dfc9a7)
|
||||
* add reply count to getPostSummaryByPids (de0f4aad)
|
||||
* theme work for #8580, closes #8580 (6e805c1b)
|
||||
* allow undo of topic move (abb5e81d)
|
||||
* added alert.timeoutfn (cd8e7963)
|
||||
* sort dependencies alphabetically (a4dbbc37)
|
||||
* up persona (af9f328c)
|
||||
* banning a user will resolve their post flags (354e6ccc)
|
||||
* theme changes for #8571 (5415c01c)
|
||||
* logic for bulk actions in flags list, #8571 (a3a22793)
|
||||
* expose global/admin privileges to all routes (4737f937)
|
||||
* additional tests for #8569 (e047b72c)
|
||||
* flags list sorting, closes #8569 (346db0d8)
|
||||
* up theme (bd557af2)
|
||||
* allow adding multiple users to group (35a538ec)
|
||||
* add filter:group.getOwnersAndMembers (f1e82b64)
|
||||
* pass uid into filter:flags.list (9c70b662)
|
||||
* added security policy for github (45c8de12)
|
||||
* up deps (b97b51a8)
|
||||
* one more test (a333cb6c)
|
||||
* tests for password change (ecda4ad8)
|
||||
* limit privileges column to superadmins only (0903eb4b)
|
||||
* use nodebb-scoped bootswatch (12edd18b)
|
||||
* use assetBaseUrl instead of hardcoding (6e918858)
|
||||
* load timeago strings client-side (558a2d73)
|
||||
* +assetBaseUrl, -l10BaseUrl, -requireBaseUrl (9adaccd0)
|
||||
* #8550, add upgrade script test (b61a4da5)
|
||||
* #8493, plugin helper for standardised link/button injection (0bbb813e)
|
||||
* show event/params on error (d6baf5c2)
|
||||
* introduce overridable l10nBaseUrl config value (def16f9e)
|
||||
* allow multiple empty lines (58933c4c)
|
||||
* remove administrator property from public routes (dfabd0a3)
|
||||
* focus username when modal is shown (4216c277)
|
||||
* add helmet middlewares (774e5d04)
|
||||
* more discrete commit-on-save instead of commit-on-change w/ confirm modals (#8541) (a716a552)
|
||||
* add ability to search groups in group details page (e7a502e0)
|
||||
* use category selector in category page (fb7bb8d4)
|
||||
* css fixes (560f3eb1)
|
||||
* add privileges shortcut to groups list (91411cc4)
|
||||
* allow passing groupName to user.search (f89ec205)
|
||||
* #8531, closes #8531 (292d4904)
|
||||
* allow direct link to flag from post tools, #8531 (c705e08a)
|
||||
* allow changing requirejs base url (c4829fd8)
|
||||
* ability to clear cache from acp (bbc7737e)
|
||||
* reduce amount of data loaded on acp admin page (8d8117ff)
|
||||
* remove require fallback for plugins (303bffdb)
|
||||
* remove /assets/stylesheet.css (762b0be4)
|
||||
* add node 14 (6250a2e2)
|
||||
* make category tools in acp a dropdown (24535a62)
|
||||
* series upload (37e56d94)
|
||||
* resolve flag on delete/purge/ban/delete account (8bd63f61)
|
||||
* 8502, don't change topics sitemaps on every reply (e045436c)
|
||||
* allow building custom languages during dev (0a9ea91f)
|
||||
* add link-plugins.sh (cc86f079)
|
||||
* remove deprecated utils.walk (609e37a6)
|
||||
* consolidation of flags to reduce flagspam, #8510 (55b0e902)
|
||||
* change invalid language codes to default lang (3761f05c)
|
||||
* add npx, fixes ghfw (a294e1cd)
|
||||
* remove topics.async.getTopicData usage (ce6b20c4)
|
||||
* remove deprecated checkGlobalPrivacySettings (0cea7136)
|
||||
* remove deprecated isAdmin method (a0da2ba7)
|
||||
* remove file.isFileTypeAllowed (2cdb935f)
|
||||
* remove deprecated hooks (4eae927d)
|
||||
* update readme (9869064e)
|
||||
* up node version to 10 (b39e0140)
|
||||
* highlight privs row if group is added / navigating from group page (10e4ae62)
|
||||
* prevent navigation away from groups page if changes are unsaved (53f6139b)
|
||||
* quick access dropdown on groups page to access privileges page (2c83278f)
|
||||
* #8524, allow editing category of queued topic (844f2b4e)
|
||||
* remove js-enabled (ff3c3435)
|
||||
* remove js-enabled.css (ec057835)
|
||||
* dont load all subscribers at once (2a5f8ab2)
|
||||
* short more info (23a9a334)
|
||||
* #8521, allow editing title before posting from queue (2485a550)
|
||||
* show language when key isn't found (764969ab)
|
||||
* allow searching categories in ACP (1e7397b1)
|
||||
* #8509, don't scroll chat to bottom if user scrolled up (320008cd)
|
||||
* added quick link to edit privileges on the category edit page (06143ca7)
|
||||
* hide some filters behind 'more filters' button (9fb9185f)
|
||||
* collapsible daily flags graph (d52d7bdb)
|
||||
* **acp:** autocomplete user search for welcome notifications (d40779a4)
|
||||
* **writeapi:**
|
||||
* user settings API (c26f2b65)
|
||||
* commented-out stub code for file upload (cfee431c)
|
||||
* file deletion route (f870721f)
|
||||
* admin settings update route (a55b3817)
|
||||
* token generation/delete routes, ACP updates (2ec838fc)
|
||||
* post bookmarking (0973feea)
|
||||
* post voting (9942c248)
|
||||
* post delete/restore/purge (414169fd)
|
||||
* post editing (f66c2fb6)
|
||||
* topic tags (1605e5e4)
|
||||
* topic follow/ignore (9be56294)
|
||||
* adding missing files (6096f74a)
|
||||
* topic posting and replying (4c833d0b)
|
||||
* added DELETE /groups/:slug/membership/:uid route (40dc1c38)
|
||||
* added group joining and deletion (952dc211)
|
||||
* abstracted ajax calls out to new api module (d044c322)
|
||||
* added POST /api/v1/groups (ba345e53)
|
||||
* **openapi:**
|
||||
* schema validation for write api definitions file (87e3f26f)
|
||||
* refactor into indiv. files to match API & tpl routing (ffbf2d6d)
|
||||
* refactor into indiv. files to match API & tpl routing (84f5e4cf)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
* **deps:**
|
||||
* update dependency nodebb-plugin-composer-default to v6.4.6 (b44c7e96)
|
||||
* update dependency nodebb-plugin-spam-be-gone to v0.7.3 (f06d4878)
|
||||
* update dependency nodebb-theme-vanilla to v11.3.0 (0d80190f)
|
||||
* update dependency textcomplete to ^0.18.0 (df5d66e5)
|
||||
* update dependency nodebb-theme-persona to v10.2.65 (0c7d5860)
|
||||
* update dependency jsesc to v3.0.2 (#8802) (c4431294)
|
||||
* update dependency nodebb-plugin-composer-default to v6.4.5 (7d0d0005)
|
||||
* update dependency nodebb-theme-persona to v10.2.63 (b3ca7de0)
|
||||
* update dependency nodebb-theme-persona to v10.2.62 (#8798) (12c590ad)
|
||||
* update dependency nodebb-plugin-mentions to v2.13.1 (#8790) (8353857b)
|
||||
* update dependency nodebb-theme-persona to v10.2.61 (#8794) (9de8497d)
|
||||
* update dependency benchpressjs to v2.0.8 (#8767) (3b88545b)
|
||||
* update dependency sharp to v0.26.2 (#8765) (42aed15b)
|
||||
* update dependency nodebb-rewards-essentials to v0.1.4 (#8764) (25c447df)
|
||||
* update dependency nodebb-theme-persona to v10.2.60 (dcf72354)
|
||||
* update dependency nodebb-plugin-mentions to v2.13.0 (#8758) (411fa8bc)
|
||||
* update dependency nodebb-theme-persona to v10.2.59 (#8755) (cd34bfb1)
|
||||
* update dependency nodebb-theme-persona to v10.2.58 (#8754) (a77ba71e)
|
||||
* update dependency nodebb-plugin-composer-default to v6.4.4 (#8752) (0399ffaf)
|
||||
* update dependency benchpressjs to v2.0.7 (#8733) (f8e2324c)
|
||||
* update dependency nodebb-plugin-composer-default to v6.4.3 (#8750) (666064bf)
|
||||
* update dependency nodebb-theme-persona to v10.2.57 (#8749) (1c94220b)
|
||||
* update dependency nodebb-theme-persona to v10.2.56 (414fe19c)
|
||||
* update dependency nodebb-theme-slick to v1.2.39 (1bc99411)
|
||||
* bump vanilla/persona (944a7e0e)
|
||||
* update dependency nodebb-theme-lavender to v5.0.14 (#8739) (43df4b8e)
|
||||
* update dependency socket.io-client to v2.3.1 (#8700) (ba62ebb6)
|
||||
* update dependency nodebb-theme-slick to v1.2.37 (#8741) (45aceb26)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.21 (#8740) (0c7af502)
|
||||
* update dependency nodebb-theme-persona to v10.2.54 (#8736) (4207dde4)
|
||||
* update dependency nodebb-theme-persona to v10.2.52 (#8735) (70c085ba)
|
||||
* update dependency nodebb-theme-persona to v10.2.51 (#8729) (bae2eada)
|
||||
* update dependency nodebb-theme-persona to v10.2.50 (#8727) (804729fc)
|
||||
* update dependency nodebb-theme-persona to v10.2.49 (#8722) (b01bc2ae)
|
||||
* update dependency nodebb-theme-persona to v10.2.48 (#8721) (01702613)
|
||||
* update dependency nodebb-theme-persona to v10.2.47 (#8720) (04b1daac)
|
||||
* update dependency nodebb-theme-persona to v10.2.46 (#8719) (ba906d7d)
|
||||
* update dependency nodebb-plugin-composer-default to v6.4.2 (#8718) (229421ed)
|
||||
* update dependency nodebb-plugin-composer-default to v6.4.0 (#8716) (b3a24f74)
|
||||
* update dependency nodebb-plugin-mentions to v2.11.0 (#8714) (c95a3898)
|
||||
* update dependency nodebb-theme-slick to v1.2.36 (#8713) (fc2795d3)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.20 (#8715) (2b0deeb7)
|
||||
* update dependency nodebb-theme-persona to v10.2.45 (#8711) (f14b4945)
|
||||
* update dependency nodebb-theme-persona to v10.2.43 (#8701) (1d0eaafb)
|
||||
* update dependency nodebb-theme-persona to v10.2.42 (2a1da61c)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.18 (#8697) (9bdef707)
|
||||
* update dependency nodebb-theme-slick to v1.2.34 (#8696) (3e2816ae)
|
||||
* bump persona (f17d42ed)
|
||||
* update dependency sanitize-html to v2 (1e5621c0)
|
||||
* update dependency nodebb-theme-persona to v10.2.39 (#8684) (d0010c40)
|
||||
* update dependency nodebb-theme-persona to v10.2.38 (#8683) (bb04f149)
|
||||
* update dependency json2csv to v5.0.3 (30aa7e83)
|
||||
* update dependency nodebb-theme-persona to v10.2.36 (#8680) (07172b6f)
|
||||
* update dependency nodebb-theme-persona to v10.2.35 (#8679) (68a5e7e3)
|
||||
* update dependency json2csv to v5.0.2 (5a2adb42)
|
||||
* update dependency nodebb-theme-persona to v10.2.33 (#8675) (abe83773)
|
||||
* update dependency nodebb-theme-persona to v10.2.31 (#8673) (80dbf97a)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.57 (#8672) (7ecac97a)
|
||||
* update dependency nodebb-theme-persona to v10.2.30 (#8671) (c8a75631)
|
||||
* update dependency nodebb-theme-persona to v10.2.24 (#8663) (72cd5f13)
|
||||
* update dependency postcss to v8.0.6 (#8657) (55921ccf)
|
||||
* update dependency validator to v13.1.17 (#8659) (01232090)
|
||||
* update dependency sharp to v0.26.1 (#8660) (b175d671)
|
||||
* update dependency nodebb-widget-essentials to v4.1.2 (#8658) (dc0a4a49)
|
||||
* postcss and autoprefixer version incompatibility (70d3ad02)
|
||||
* update dependency nodebb-plugin-mentions to v2.10.0 (5ea172f9)
|
||||
* update dependency autoprefixer to v10 (60679481)
|
||||
* bump theme versions (685633d0)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.56 (#8648) (8089387b)
|
||||
* update dependency nodebb-theme-persona to v10.2.22 (c5ca2609)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.16 (8acdf3f6)
|
||||
* update dependency nodebb-theme-persona to v10.2.21 (ed0469b5)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.15 (134ebba6)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.14 (31635e3e)
|
||||
* update dependency nodebb-theme-persona to v10.2.20 (2a13e583)
|
||||
* update dependency mongodb to v3.6.2 (#8634) (4969c869)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.13 (#8633) (8137cdc2)
|
||||
* update dependency nodebb-theme-persona to v10.2.19 (#8632) (37e37c86)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.12 (#8628) (7ab87072)
|
||||
* update dependency nodebb-theme-persona to v10.2.18 (#8627) (2740655d)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.11 (#8624) (fd6259c8)
|
||||
* update dependency nodebb-theme-persona to v10.2.17 (#8623) (a1d310bd)
|
||||
* update dependency nodebb-theme-slick to v1.2.30 (#8620) (251ea79b)
|
||||
* update dependency nodebb-theme-persona to v10.2.16 (#8618) (0d85dc48)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.10 (#8619) (b52301b1)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.9 (#8616) (69373fde)
|
||||
* update dependency nodebb-theme-persona to v10.2.15 (#8614) (3c0540c1)
|
||||
* update dependency socket.io-redis to v5.4.0 (#8600) (5ba23f24)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.8 (#8599) (97e3543e)
|
||||
* update dependency nodebb-theme-persona to v10.2.12 (#8598) (1bb0896e)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.55 (#8606) (dfeb65bb)
|
||||
* update dependency nodebb-plugin-markdown to v8.12.1 (27426c06)
|
||||
* update dependency nodebb-theme-vanilla to v11.2.5 (64f4179a)
|
||||
* update dependency nodebb-theme-persona to v10.2.10 (777419b2)
|
||||
* update dependency sharp to v0.26.0 (#8578) (7ca967ee)
|
||||
* update dependency ipaddr.js to v2 (49aeda01)
|
||||
* update dependency nodebb-theme-lavender to v5.1.0 (87674d68)
|
||||
* update dependency nodebb-theme-persona to v10.2.5 (8032c8bd)
|
||||
* update dependency helmet to v4 (#8543) (ad68a338)
|
||||
* update dependency mongodb to v3.6.0 (#8535) (4160e828)
|
||||
* update dependency nodebb-theme-persona to v10.2.4 (#8544) (b30ecffb)
|
||||
* update dependency nodebb-theme-persona to v10.2.1 (#8529) (7a59c2fc)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.53 (d24a4bd3)
|
||||
* bump themes (b714ed22)
|
||||
* update dependency commander to v6 (#8518) (75fb2a47)
|
||||
* update dependency archiver to v5 (#8523) (f1cc4e29)
|
||||
* update dependency lru-cache to v6 (#8490) (2941b9f9)
|
||||
* update dependency connect-redis to v5 (#8480) (9c17a677)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.52 (#8522) (ac257a65)
|
||||
* update dependency nodebb-theme-persona to v10.1.68 (#8520) (f06b1cec)
|
||||
* update dependency nodebb-plugin-mentions to v2.9.3 (#8516) (b5df5766)
|
||||
* update dependency nodebb-plugin-dbsearch to v4.1.2 (649c64e4)
|
||||
* update dependency nodebb-plugin-mentions to v2.9.2 (91bdc12a)
|
||||
* update dependency nodebb-plugin-composer-default to v6.3.51 (0e13fd0f)
|
||||
* check is banned in buildHeader (4b63f993)
|
||||
* undefined call (518d4fa1)
|
||||
* missing await (08ff4041)
|
||||
* client side crash when creating groups (5a2b14b7)
|
||||
* disallow registration attempts with password length > 4096 (c0f699e6)
|
||||
* missing await (4818ec37)
|
||||
* broken test (87bff6cd)
|
||||
* updated commitlint config to allow longer subjects, because nobody anywhere uses an email client that limits subject lines to 72 characters (a53d49a2)
|
||||
* restore old behaviour of empty json w/ 401 code in admin middleware (dda5d426)
|
||||
* deprecate middleware.isAdmin (15e0731d)
|
||||
* post editing not taking plugin hook results into account (4439864c)
|
||||
* #8805 define our own name for write API v3 (57ed6be7)
|
||||
* removed superfluous assignment (a08fb8e5)
|
||||
* createNewPosts to build tpl with ajaxify.data (0b6ef61e)
|
||||
* handle ACP category enable/disable states after call success (bff53de0)
|
||||
* remove setCategorySort and setTopicSort (a6a52430)
|
||||
* sort setting not using correct field name (9082062e)
|
||||
* update readme to include psql (2d29e603)
|
||||
* breaking test from 0db0231cff097a6e983683e61284a72d42bd594d (cc1c7220)
|
||||
* indentation (04185d94)
|
||||
* add back derpy 20 second sleep (8e7914ff)
|
||||
* missing method in test error output (3ebb3a34)
|
||||
* topic object in post editing data return (3c98cd3d)
|
||||
* bug where token generation route would fail on null case (618e0983)
|
||||
* typo (2e9f27d8)
|
||||
* return early for guests/spiders (203db47b)
|
||||
* #8789,cache meta.settings (156e1396)
|
||||
* spec (7a318352)
|
||||
* tests (63e07c94)
|
||||
* #8781 (db63f5e3)
|
||||
* reset button loading html (1a4c0dec)
|
||||
* #8779, fix move all (e6440c0d)
|
||||
* allow admins adding users to global moderators (1f43e98f)
|
||||
* incorrect logic for post history editable bool (a691be59)
|
||||
* [breaking] send configured config URL as origin if not custom (205a1030)
|
||||
* #8776 some users unable to restore old versions via history (7a8f7049)
|
||||
* #8595, dont save escaped data when renaming groups (b26e9b59)
|
||||
* keep sortBy while searching (3ee4936d)
|
||||
* autocomplete.user on search page (85cfe49d)
|
||||
* spec (cf474ab2)
|
||||
* sortby (7bddec93)
|
||||
* #8774 (b3619d3d)
|
||||
* #8732 (c107649b)
|
||||
* #8630, sort extra deps (e362c342)
|
||||
* missing doTopicAction, fix wrong api params (e78c498e)
|
||||
* test (8fd3c044)
|
||||
* appropriate 404 handling for write API calls (b6cce75d)
|
||||
* redis hget (b2ff1594)
|
||||
* reimplementing isPrivilegedOrSelfAndPasswordMatch (e98285db)
|
||||
* socket user bans (3f347baa)
|
||||
* broken tests from api change (222b4c95)
|
||||
* tests (7d86be2b)
|
||||
* handler for group.join (51a60d3d)
|
||||
* add missing file (d07f0081)
|
||||
* #8768 (4418ff07)
|
||||
* api bug where user profile editing continued even if not allowed (cc6e995e)
|
||||
* module build (bae0f343)
|
||||
* tests (b295d15e)
|
||||
* csrf token only on non-GET routes (20bb9c7e)
|
||||
* avatar selector (4b9444f1)
|
||||
* test (e6ea71c9)
|
||||
* timestamp (8c6a5591)
|
||||
* #8763 (331d236f)
|
||||
* lastonline again (a481024d)
|
||||
* caret (71d82ec8)
|
||||
* lastonline values (97628e2f)
|
||||
* upgrade script (1289c105)
|
||||
* cant join system groups (59bbede8)
|
||||
* tests (a411df13)
|
||||
* update server param to /api/v3 (0e0f1506)
|
||||
* typo (c68653d0)
|
||||
* testing openapi write tests (7aa4d104)
|
||||
* enable tests (7b2301ff)
|
||||
* test fix for write API (54e6003a)
|
||||
* password reset to invalidate all existing reset tokens for that uid (30b3fedc)
|
||||
* show more lines (ba2e1c4c)
|
||||
* #8756, pass missing req to mock (30d6a2b8)
|
||||
* #8757, allow all slashes in category route (1ee93848)
|
||||
* timeago test for dev/prod (7db224f6)
|
||||
* timeago test (cecdd291)
|
||||
* undefined api require, @julianlam (931d44b5)
|
||||
* watch tooltip (e2d407b7)
|
||||
* module name (aedd28e0)
|
||||
* pin sortablejs (8f436eb8)
|
||||
* admin jquerui requires (75c96686)
|
||||
* timeago locale switch (8c019a6a)
|
||||
* category RSS feed was displaying deleted topics (9a5b8a79)
|
||||
* #8734 make nprogress module (45e8a4d5)
|
||||
* regression caused by 754595172549ba39b406bd36fc3387d95782d84f (8af30a51)
|
||||
* dont allow adding duplicates to privileges page (12c8b1c2)
|
||||
* #8728, dont add admins to table (f259063f)
|
||||
* remove debug log (675a62da)
|
||||
* tests (adcadbb2)
|
||||
* bad merge w/ category ACP page (cb9369f1)
|
||||
* bad logic in group assertion middleware (8e89f34d)
|
||||
* errors thrown if no password sent in to profile edit route (7757f965)
|
||||
* bug where middlewares seemingly ran in parallel (549ca110)
|
||||
* follow route to match spec (db5c5b2c)
|
||||
* missing one property in openapi doc (af2e424f)
|
||||
* error handling with POST /api/v1/users (d8879d21)
|
||||
* use POST call for user creation in ACP (58043e07)
|
||||
* user creation POST route returns user data, updated openapi spec (bba2a463)
|
||||
* selector, so it doesnt effect suggested topics (7138d433)
|
||||
* use proper api url (264818e5)
|
||||
* tests, get latest release tag recursively (8eb62e22)
|
||||
* use app.parseAndTranslate instead of benchpress.parse (fc603a53)
|
||||
* sorted list delete button (20e0cc5c)
|
||||
* unable to register async method as response hook listener (dde5b6b8)
|
||||
* dont allow sorting pinned topics on recent (b955fd36)
|
||||
* use console.info instead of console.log for sw registration (3c7f79cb)
|
||||
* spec (7cd83b9a)
|
||||
* spec (6924eb6c)
|
||||
* test (cb2f6f7c)
|
||||
* dont let mods load postqueue for a cid they are not a mod of (7bf6d3b8)
|
||||
* show disabled categories in admin&mods (2ea9768e)
|
||||
* prevent mutiple highlighted rows on category/topic pages (60afb110)
|
||||
* spec (fbd85680)
|
||||
* do not show TOC if fewer than 2 headings (f1de084d)
|
||||
* params cached in autocomplete module (caa8c00f)
|
||||
* #8686, deprecate `plugin.json/library` (#8705) (017af63f)
|
||||
* updating minimum node version in readme (d3951ebe)
|
||||
* update "install plugins" link to go to the download tab (5441651e)
|
||||
* overflow on submitPluginUsage field (c56236f0)
|
||||
* #8699 tags route is case sensitive, though tags are not (38f88fc5)
|
||||
* early button/anchor clicks do nothing (8437130e)
|
||||
* early button/anchor clicks do nothing (966d3f76)
|
||||
* error on `reset -p` if plugin is not active (7f58e3ab)
|
||||
* manifest test + remove duplicate test (bf3c1c08)
|
||||
* typo in getCompatiblePlugins (07af6213)
|
||||
* typo (54705cc4)
|
||||
* manifest - use absolute URL for start_url (31528a52)
|
||||
* prefer webmanifest extension over json (46800b66)
|
||||
* update notification delay ACP help text (4c1e717b)
|
||||
* #8681 change owner modal's search should check if user is banned (b6f2f0e5)
|
||||
* add img-responsive to post queue post items (f8032cd0)
|
||||
* language key in reset password (2ad33058)
|
||||
* issue where the last flag filter could not be removed (0fffe289)
|
||||
* multiword match highlight (f8ef380b)
|
||||
* tooltip placement on navbar search (82ab6cd3)
|
||||
* rogue tooltip on navbar profile icon (683c01b0)
|
||||
* #8580, @julianlam (445a840b)
|
||||
* topic count on category page if filter is author (bbf6889e)
|
||||
* match api when modifying ajaxify.data.deleted (int, not bool) (703ac1b6)
|
||||
* lock/unlock toggle issue (9a7c3c68)
|
||||
* #8665, trim email before checking validity (ac43cd8b)
|
||||
* editing posts saving uncessary data (e72fe259)
|
||||
* api spec (654d5830)
|
||||
* #8640, add bookmarks to intFields (4f14dc7a)
|
||||
* change user tooltip container to content (02a48e1c)
|
||||
* auth tests (fe2dc310)
|
||||
* #8656, rename /api/me to /api/self (af43f0e4)
|
||||
* add user tooltips to body (047c4148)
|
||||
* tests (22cd2654)
|
||||
* use correct topic count for category (220297d5)
|
||||
* clear old value on focus (42298fe6)
|
||||
* skip elements if they dont have proper index (c9c9dd2f)
|
||||
* call to reskin (99f24c59)
|
||||
* move necro-post to be in-line with posts (44309ee6)
|
||||
* tests, because redis is TOO FAST (4fca7938)
|
||||
* remove old test (5e8c3761)
|
||||
* client side crash if there are no topics (a8e18fdb)
|
||||
* #8418 (38d3982b)
|
||||
* typo (08912361)
|
||||
* tests (65d049c6)
|
||||
* check if unread_tids are followed (2d5bd153)
|
||||
* openapi (e9094094)
|
||||
* dont use hardcoded fontawesome icons for lock pin (632793b0)
|
||||
* #8629 and change undo timeout to 10 seconds (65d94a3b)
|
||||
* alert_id selector (2bebdf01)
|
||||
* use text-right (a78e1df9)
|
||||
* remove lang keys, remove sounds menu (a34b685c)
|
||||
* lavender version (8a752364)
|
||||
* tests (e3a0b4b1)
|
||||
* wider widget area (4bace773)
|
||||
* bypass nbbpm for now (33c1bd5f)
|
||||
* #8432, add CSP frame-ancestors (46ab2711)
|
||||
* allow setting maximumAboutMeLength to 0 (4588e521)
|
||||
* additional commit for CF rocket loader (a38784f5)
|
||||
* stack trace (4031a8ca)
|
||||
* #8604 (a2638976)
|
||||
* don't toggle elements if there is no inputEl (57f67e2b)
|
||||
* don't crash on outdated redis instances (896fe9d6)
|
||||
* update post-queue hook names (0e58d2b8)
|
||||
* accept/reject in post-queue instead of accept/delete (694f4b2b)
|
||||
* new openapi def for replies addition (b5871275)
|
||||
* #8582 (9f9164a9)
|
||||
* debug logging :dog: (fb3b4a02)
|
||||
* ip-blacklist not working after #8580 (56101ae5)
|
||||
* ip-blacklist not working after #8580 (c681b4b2)
|
||||
* post-queue not working after #8580 (dc5bd760)
|
||||
* #8411 missing language sources for ip-blacklist/post-queue (a93e1955)
|
||||
* removed invalid options for the sendmail transport (#8576) (2b785628)
|
||||
* missing localisation for topic move error (bacee6b4)
|
||||
* select all checkbox does not re-enable bulk actions button (5d60dce3)
|
||||
* dupes in unread followed topics (55533b11)
|
||||
* wrong data passed to getCategories (39f4bbaa)
|
||||
* openapi spec (4f7cfd53)
|
||||
* api spec (c4ad14cb)
|
||||
* username, email history disappering if content was deleted (91d9333a)
|
||||
* up composer (9fd37753)
|
||||
* package-install clobbering scoped nodebb plugins (840cb510)
|
||||
* empty "manage" menu showing in ACP (4b0cb26b)
|
||||
* hide nodebb version in ACP for non-superadmins (cc268605)
|
||||
* change how admin middlewares are exported (f00595b3)
|
||||
* one less return, to appease codeclimate (ae68a254)
|
||||
* inability to access /admin if not superadmin (03bd76de)
|
||||
* #8560, fix old upgrade script (29e3ab24)
|
||||
* use promises in privilege save (9cbe9389)
|
||||
* overzealous click handler on flag list row (7a5daff4)
|
||||
* +comment, -debug log (9608b44f)
|
||||
* multiple alerts in the same millisecond overwrite each other (589216e7)
|
||||
* reintroduce 20s delay for api tests (56393795)
|
||||
* client-side error in flags/detail (b2271eb6)
|
||||
* #8570 (7daba7dd)
|
||||
* sorting the flags list by newest is not considered a filter (3efe2362)
|
||||
* flag list tests due to breaking change in API (360aa00d)
|
||||
* no-widgets messaging in ACP + copy (334be113)
|
||||
* #8568 perPage not acting like a filter (cabe62a0)
|
||||
* #8562 (31c2b7d9)
|
||||
* progress bar clobbering upgrade script name (2adae879)
|
||||
* tweak upgrade script progress bar to only update 100 times in total (ac75c9a0)
|
||||
* navigation title unescape upgrade script tweak (80a2a700)
|
||||
* new language key for error handling (7456a0e3)
|
||||
* upgrade scripts not run properly if schemaDate is present (de8eebbd)
|
||||
* #8556, catch errors from admin check (bfaf648e)
|
||||
* upgrade script for 1.15.0 (32682738)
|
||||
* improper targetUid check during password change (16cee1b0)
|
||||
* #8547, remove old deps during upgrade (#8557) (1d170e0c)
|
||||
* #8558, only navigate if user is in same topic (79e847d4)
|
||||
* upgrade script (231d34d0)
|
||||
* don't allow duplicate upgrade script names (8887f0ed)
|
||||
* tests (d6297b28)
|
||||
* send hard 404 instead of soft 404 for missing modules (9f3b7811)
|
||||
* #8549 send 308 Permanent Redirect on topic/category shortlinks (68f8d6e3)
|
||||
* remove default helmet (c39c5113)
|
||||
* map instead of forEach in privileges save (a7071bb8)
|
||||
* remove duplicate configuration for helmet-hsts (0f10e083)
|
||||
* don't process invalid topics, fallback to 0 score (335169f2)
|
||||
* tests (6924a222)
|
||||
* #8539, enforce content checks for post queue (bb224184)
|
||||
* bug; additional reports could be added by the same user repeatedly (0f2b6f1f)
|
||||
* #8538, go to first unread instead of last read (519e6659)
|
||||
* #8533, validate and retry password during setup (0d698a07)
|
||||
* #8534, dont show modal on search (9e80a9ef)
|
||||
* language string (9f346c53)
|
||||
* api test (8415d2f0)
|
||||
* tests (9df871be)
|
||||
* tests (69fb1527)
|
||||
* reverse uid checks (7331faed)
|
||||
* acp view category button if category is a link (2dfe9d49)
|
||||
* remove old test (52718ce0)
|
||||
* #8515, fix login redirect on subfolder (5e5815f0)
|
||||
* tests (f48d1556)
|
||||
* #4695, remove new notif alert (fd4c3cda)
|
||||
* too small sortable handle for ACP>Manage>Categories (8473e165)
|
||||
* less fixes for category dropdown (db07dd85)
|
||||
* move check inside lock (57135761)
|
||||
* #7351, display less errors with location and error message (d1cb405d)
|
||||
* use shorter git url, #8527 (345fd72b)
|
||||
* cursor for category select (4c90fac4)
|
||||
* api docs for admin/manage/groups/x (8769e28b)
|
||||
* edge case in test (b9cff577)
|
||||
* api tests (42af4b57)
|
||||
* #8500, allow regular users select topics on unread (7260646d)
|
||||
* don't crash if content is undefined (4658121a)
|
||||
* crash if csrfToken does not exist (a3c8d456)
|
||||
* try again (6f889c9c)
|
||||
* more tests (a46adb3f)
|
||||
* tests (65395ae5)
|
||||
* tests (72c60d19)
|
||||
* tests (67ca5e32)
|
||||
* #8508, dont allow moving topics if not moderator of target category (36531511)
|
||||
* composer textarea placeholder l10n /cc @pitaj (1e14af45)
|
||||
* **openapi:**
|
||||
* final fixes to schemas (14e5c24e)
|
||||
* users.yaml (16873800)
|
||||
* moved write-api to public/openapi (49994f3a)
|
||||
* test for new trending plugins in ACP (3fbddbe2)
|
||||
* tests (d935f036)
|
||||
* new api definition (8ff09630)
|
||||
* **writeapi:**
|
||||
* more tweaks to schema files (b2e9e3e0)
|
||||
* fix components, + tag object schema (9f9e3c15)
|
||||
* missing files for tests (a4f3270f)
|
||||
* normalizing data (1392d064)
|
||||
* tests (b092f65d)
|
||||
* added examples to all parameter objects in schema (93f65f89)
|
||||
* tests (ebcb664b)
|
||||
* tests (229eb2c2)
|
||||
* tests (b8703ba9)
|
||||
* tests (41f55b7a)
|
||||
* calls to profile editing routes 200 even if user DNE (8e7baac6)
|
||||
* client-side group join API call (68ecf41e)
|
||||
* authenticate middleware logic to work better with await (fd67355b)
|
||||
* **refactor:**
|
||||
* patching helpers.tryRoute for API routes, some re-org (d15d9e44)
|
||||
* merging write-api auth middlewares with core middlewares (f6433ef2)
|
||||
* **bug:** #8611, custom route logic corrected (#8612) (64a457a4)
|
||||
* **docs:** updating changelog (6e34b9ef)
|
||||
|
||||
##### Performance Improvements
|
||||
|
||||
* reorder async calls (93bdfe2f)
|
||||
|
||||
##### Refactors
|
||||
|
||||
* simpler check in user.blocks.filter (a02ae6f5)
|
||||
* remove usage of middlewares (266d7587)
|
||||
* remove /users/{uid}/settings/{setting} route (aa8faf58)
|
||||
* api test suite to accept methods other than GET (843aff58)
|
||||
* remove unnecessary wrapper (a512d994)
|
||||
* remove console.log, extra require (75024c35)
|
||||
* show more lines of stack trace (ea31f505)
|
||||
* posts api (d9a16855)
|
||||
* post restore/delete/purge (272e73da)
|
||||
* merge post.edit (9738e202)
|
||||
* deprecate socket.emit('users.search') use api route (2279e372)
|
||||
* api categories (083c74e0)
|
||||
* remove sockets.reqFromSocket (bc880ee0)
|
||||
* topic follow/ignore to use api lib (9ee3cb9b)
|
||||
* topic tools' actions to use api lib (68d6818b)
|
||||
* topic creation to use api lib (40598b36)
|
||||
* setupApiRoute signature (bf480ee5)
|
||||
* remove unused middleware (688d7a2c)
|
||||
* user bans to use api lib (2d252f2f)
|
||||
* move groups.leave, fix some tests (e367c540)
|
||||
* change password/user follow to use api lib (960e925e)
|
||||
* user deletion to use api lib (430e7f58)
|
||||
* socket profile update to use api lib (77481947)
|
||||
* socket profile update to use api lib (31ae8a83)
|
||||
* user create and profile update to use api lib (23086dae)
|
||||
* use single function for api code (5e2caf19)
|
||||
* async/await src/user/approval (43afe7ff)
|
||||
* async/await install/web.js (3881ac30)
|
||||
* async/await (1fd2eba6)
|
||||
* use app.render (d89477ca)
|
||||
* api module (3673accd)
|
||||
* api module returns promise, error-first cb if cb passed in (a784d10f)
|
||||
* remove unused search call (dd7424e5)
|
||||
* switch to using slugify module (dc29f4dc)
|
||||
* require style (c954db84)
|
||||
* middleware.assert.* (8ecef7b8)
|
||||
* rewrite modules/api.js in AMD style (a905d7f0)
|
||||
* remove posts.tools.purge (ed092bf6)
|
||||
* shared constants (#8707) (1aa336d8)
|
||||
* post edit (16039b11)
|
||||
* expose new method for appending moderation note (29b357bc)
|
||||
* socket posts delete/restore/purge so tid is not necessary (#8607) (f743f920)
|
||||
* ip-blacklist and post-queue language files (4dc6e64a)
|
||||
* moved ip-blacklist and post-queue styles/tpls to themes (b6b94a56)
|
||||
* changed way middleware was exported (cf2f1e95)
|
||||
* remove util.promisify calls (01899459)
|
||||
* change pwd change logic (846b7d24)
|
||||
* rewrite src/upgrade.js with async/await (33c5988c)
|
||||
* change incrementViewCount and markAsRead to async/await (2c35d0ba)
|
||||
* for codeclimate (2ee62483)
|
||||
* rewrite src/install with async/await (776e34a8)
|
||||
* removed rather redundant flag reporters zset (6c00ec84)
|
||||
* flags object in post tools (fcdbdf63)
|
||||
* pass only needed data (f1974fb9)
|
||||
* startup (c54b6b9c)
|
||||
* get rid of bind calls (af91c26a)
|
||||
* setting codeclimate to A (bc26883a)
|
||||
* make msg pretty (8ddc8dd1)
|
||||
* flag sanity checks, +feat: flag limits (e3e55f25)
|
||||
* **writeapi:**
|
||||
* update route prefix to api/v3, default error option (3ea1aa47)
|
||||
* post.tools.purge no longer a method (5e2a3ea6)
|
||||
|
||||
##### Code Style Changes
|
||||
|
||||
* **openapi:**
|
||||
* break write API routes into individual files (dbb4cfe9)
|
||||
* move schemas and responses out of write.yaml (ffac3c79)
|
||||
* updates to openapi files (2928b9b8)
|
||||
* allowing some es6 features client-side (e1c40b27)
|
||||
* linting (cdb79488)
|
||||
|
||||
##### Tests
|
||||
|
||||
* **openapi:** missing commonprops addition (0dc55bbc)
|
||||
|
||||
#### 1.14.3 (2020-07-08)
|
||||
|
||||
##### Bug Fixes
|
||||
|
||||
11
README.md
@@ -1,15 +1,16 @@
|
||||
# <img alt="NodeBB" src="http://i.imgur.com/mYxPPtB.png" />
|
||||
# 
|
||||
|
||||
[](https://travis-ci.org/NodeBB/NodeBB)
|
||||
[](https://coveralls.io/github/NodeBB/NodeBB?branch=master)
|
||||
[](https://david-dm.org/nodebb/nodebb?path=install)
|
||||
[](https://codeclimate.com/github/NodeBB/NodeBB)
|
||||
|
||||
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and built on either a Redis or MongoDB database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
|
||||
[**NodeBB Forum Software**](https://nodebb.org) is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. It utilizes web sockets for instant interactions and real-time notifications. NodeBB has many modern features out of the box such as social network integration and streaming discussions, while still making sure to be compatible with older browsers.
|
||||
|
||||
Additional functionality is enabled through the use of third-party plugins.
|
||||
|
||||
* [Demo & Meta Discussion](http://community.nodebb.org)
|
||||
* [Demo](https://try.nodebb.org)
|
||||
* [Developer Community](http://community.nodebb.org)
|
||||
* [Documentation & Installation Instructions](http://docs.nodebb.org)
|
||||
* [Help translate NodeBB](https://www.transifex.com/projects/p/nodebb/)
|
||||
* [NodeBB Blog](http://blog.nodebb.org)
|
||||
@@ -48,8 +49,8 @@ Our minimalist "Persona" theme gets you going right away, no coding experience r
|
||||
|
||||
NodeBB requires the following software to be installed:
|
||||
|
||||
* A version of Node.js at least 10 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* Redis, version 2.8.9 or greater **or** MongoDB, version 2.6 or greater
|
||||
* A version of Node.js at least 12 or greater ([installation/upgrade instructions](https://github.com/nodesource/distributions))
|
||||
* MongoDB, version 2.6 or greater **or** Redis, version 2.8.9 or greater
|
||||
* nginx, version 1.3.13 or greater (**only if** intending to use nginx to proxy requests to a NodeBB)
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = { extends: ['@commitlint/config-angular'] };
|
||||
module.exports = {
|
||||
extends: ['@commitlint/config-angular'],
|
||||
rules: {
|
||||
'header-max-length': [1, 'always', 72],
|
||||
'type-enum': [
|
||||
2,
|
||||
'always',
|
||||
[
|
||||
'breaking',
|
||||
'build',
|
||||
'chore',
|
||||
'ci',
|
||||
'docs',
|
||||
'feat',
|
||||
'fix',
|
||||
'perf',
|
||||
'refactor',
|
||||
'revert',
|
||||
'style',
|
||||
'test',
|
||||
],
|
||||
],
|
||||
},
|
||||
};
|
||||
|
||||
@@ -110,11 +110,12 @@
|
||||
"maximumInvites": 0,
|
||||
"username:disableEdit": 0,
|
||||
"email:disableEdit": 0,
|
||||
"email:sendmail:rateLimit": 2,
|
||||
"email:sendmail:rateDelta": 1000,
|
||||
"email:smtpTransport:pool": false,
|
||||
"hideFullname": 0,
|
||||
"hideEmail": 0,
|
||||
"allowGuestHandles": 0,
|
||||
"guestsIncrementTopicViews": 1,
|
||||
"incrementTopicViewsInterval": 60,
|
||||
"recentMaxTopics": 200,
|
||||
"disableRecentCategoryFilter": 0,
|
||||
"maximumRelatedTopics": 0,
|
||||
@@ -134,5 +135,7 @@
|
||||
"timeagoCutoff": 30,
|
||||
"necroThreshold": 7,
|
||||
"categoryWatchState": "watching",
|
||||
"submitPluginUsage": 1
|
||||
"submitPluginUsage": 1,
|
||||
"maxUserSessions": 10,
|
||||
"useCompression": 0
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "nodebb",
|
||||
"license": "GPL-3.0",
|
||||
"description": "NodeBB Forum",
|
||||
"version": "1.15.0-beta.0",
|
||||
"version": "1.15.1",
|
||||
"homepage": "http://www.nodebb.org",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -12,10 +12,16 @@
|
||||
"scripts": {
|
||||
"start": "node loader.js",
|
||||
"lint": "npx eslint --cache ./nodebb .",
|
||||
"pretest": "npm run lint",
|
||||
"test": "npx nyc --reporter=html --reporter=text-summary npx mocha",
|
||||
"coverage": "nyc report --reporter=text-lcov > ./coverage/lcov.info",
|
||||
"coveralls": "nyc report --reporter=text-lcov | coveralls && rm -r coverage"
|
||||
},
|
||||
"nyc": {
|
||||
"exclude": [
|
||||
"src/upgrades/*",
|
||||
"test/*"
|
||||
]
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "npx lint-staged",
|
||||
@@ -29,19 +35,22 @@
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"@adactive/bootstrap-tagsinput": "^0.8.2",
|
||||
"ace-builds": "^1.4.9",
|
||||
"archiver": "^5.0.0",
|
||||
"async": "^3.2.0",
|
||||
"autoprefixer": "^9.7.6",
|
||||
"autoprefixer": "^10.0.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"benchpressjs": "^2.0.2",
|
||||
"benchpressjs": "2.1.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"bootbox": "4.4.0",
|
||||
"bootstrap": "^3.4.1",
|
||||
"chart.js": "^2.9.3",
|
||||
"cli-graph": "^3.2.2",
|
||||
"clipboard": "^2.0.6",
|
||||
"colors": "^1.4.0",
|
||||
"commander": "^6.0.0",
|
||||
"compare-versions": "3.6.0",
|
||||
"compression": "^1.7.4",
|
||||
"connect-ensure-login": "^0.1.1",
|
||||
"connect-flash": "^0.1.1",
|
||||
@@ -54,7 +63,7 @@
|
||||
"cropperjs": "^1.5.6",
|
||||
"csurf": "^1.11.0",
|
||||
"daemon": "^1.1.0",
|
||||
"diff": "^4.0.2",
|
||||
"diff": "^5.0.0",
|
||||
"express": "^4.17.1",
|
||||
"express-session": "^1.17.0",
|
||||
"express-useragent": "^1.0.13",
|
||||
@@ -63,8 +72,12 @@
|
||||
"html-to-text": "^5.1.1",
|
||||
"ipaddr.js": "^2.0.0",
|
||||
"jquery": "3.5.1",
|
||||
"jsesc": "3.0.1",
|
||||
"json2csv": "5.0.1",
|
||||
"jquery-deserialize": "2.0.0-rc1",
|
||||
"jquery-form": "4.3.0",
|
||||
"jquery-serializeobject": "1.0.0",
|
||||
"jquery-ui": "1.12.1",
|
||||
"jsesc": "3.0.2",
|
||||
"json2csv": "5.0.4",
|
||||
"jsonwebtoken": "^8.5.1",
|
||||
"less": "^3.11.1",
|
||||
"lodash": "^4.17.15",
|
||||
@@ -73,78 +86,86 @@
|
||||
"material-design-lite": "^1.3.0",
|
||||
"mime": "^2.4.4",
|
||||
"mkdirp": "^1.0.4",
|
||||
"mongodb": "3.6.0",
|
||||
"mongodb": "3.6.3",
|
||||
"morgan": "^1.10.0",
|
||||
"mousetrap": "^1.6.5",
|
||||
"@nodebb/bootswatch": "3.4.2",
|
||||
"@nodebb/mubsub": "1.7.0",
|
||||
"@nodebb/socket.io-adapter-mongo": "3.1.0",
|
||||
"@nodebb/mubsub": "1.7.1",
|
||||
"@nodebb/socket.io-adapter-mongo": "3.1.1",
|
||||
"nconf": "^0.10.0",
|
||||
"nodebb-plugin-composer-default": "6.3.53",
|
||||
"nodebb-plugin-composer-default": "6.4.6",
|
||||
"nodebb-plugin-dbsearch": "4.1.2",
|
||||
"nodebb-plugin-emoji": "^3.3.0",
|
||||
"nodebb-plugin-emoji-android": "2.0.0",
|
||||
"nodebb-plugin-markdown": "8.11.2",
|
||||
"nodebb-plugin-mentions": "2.9.3",
|
||||
"nodebb-plugin-markdown": "8.12.1",
|
||||
"nodebb-plugin-mentions": "2.13.4",
|
||||
"nodebb-plugin-soundpack-default": "1.0.0",
|
||||
"nodebb-plugin-spam-be-gone": "0.7.2",
|
||||
"nodebb-rewards-essentials": "0.1.3",
|
||||
"nodebb-theme-lavender": "5.1.0",
|
||||
"nodebb-theme-persona": "10.2.6",
|
||||
"nodebb-theme-slick": "1.2.29",
|
||||
"nodebb-theme-vanilla": "11.2.2",
|
||||
"nodebb-widget-essentials": "4.1.1",
|
||||
"nodebb-plugin-spam-be-gone": "0.7.3",
|
||||
"nodebb-rewards-essentials": "0.1.4",
|
||||
"nodebb-theme-lavender": "5.0.14",
|
||||
"nodebb-theme-persona": "10.2.67",
|
||||
"nodebb-theme-slick": "1.2.40",
|
||||
"nodebb-theme-vanilla": "11.3.0",
|
||||
"nodebb-widget-essentials": "4.1.2",
|
||||
"nodemailer": "^6.4.6",
|
||||
"nprogress": "0.2.0",
|
||||
"passport": "^0.4.1",
|
||||
"passport-http-bearer": "^1.0.1",
|
||||
"passport-local": "1.0.0",
|
||||
"pg": "^8.0.2",
|
||||
"pg-cursor": "^2.1.9",
|
||||
"postcss": "7.0.32",
|
||||
"postcss": "8.1.7",
|
||||
"postcss-clean": "1.1.0",
|
||||
"promise-polyfill": "^8.1.3",
|
||||
"prompt": "^1.0.0",
|
||||
"redis": "3.0.2",
|
||||
"request": "2.88.2",
|
||||
"request-promise-native": "^1.0.8",
|
||||
"requirejs": "2.3.6",
|
||||
"rimraf": "3.0.2",
|
||||
"rss": "^1.2.2",
|
||||
"sanitize-html": "^1.23.0",
|
||||
"sanitize-html": "^2.0.0",
|
||||
"semver": "^7.2.1",
|
||||
"serve-favicon": "^2.5.0",
|
||||
"sharp": "0.25.4",
|
||||
"sharp": "0.26.2",
|
||||
"sitemap": "^6.1.0",
|
||||
"slideout": "1.0.1",
|
||||
"socket.io": "2.3.0",
|
||||
"socket.io-adapter-cluster": "^1.0.1",
|
||||
"socket.io-adapter-postgres": "^1.2.1",
|
||||
"socket.io-client": "2.3.0",
|
||||
"socket.io-redis": "5.3.0",
|
||||
"socket.io-client": "2.3.1",
|
||||
"socket.io-redis": "5.4.0",
|
||||
"socketio-wildcard": "2.0.0",
|
||||
"sortablejs": "1.10.2",
|
||||
"spdx-license-list": "^6.1.0",
|
||||
"spider-detector": "2.0.0",
|
||||
"textcomplete": "^0.17.1",
|
||||
"textcomplete.contenteditable": "^0.1.1",
|
||||
"timeago": "^1.6.7",
|
||||
"tinycon": "0.6.8",
|
||||
"toobusy-js": "^0.5.1",
|
||||
"uglify-es": "^3.3.9",
|
||||
"validator": "13.1.1",
|
||||
"validator": "13.1.17",
|
||||
"visibilityjs": "2.0.2",
|
||||
"winston": "3.3.3",
|
||||
"xml": "^1.0.1",
|
||||
"xregexp": "^4.3.0",
|
||||
"zxcvbn": "^4.4.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@apidevtools/swagger-parser": "10.0.1",
|
||||
"@commitlint/cli": "9.1.2",
|
||||
"@commitlint/config-angular": "9.1.2",
|
||||
"@apidevtools/swagger-parser": "10.0.2",
|
||||
"@commitlint/cli": "11.0.0",
|
||||
"@commitlint/config-angular": "11.0.0",
|
||||
"coveralls": "3.1.0",
|
||||
"eslint": "7.7.0",
|
||||
"eslint-config-airbnb-base": "14.2.0",
|
||||
"eslint-plugin-import": "2.22.0",
|
||||
"eslint": "7.13.0",
|
||||
"eslint-config-airbnb-base": "14.2.1",
|
||||
"eslint-plugin-import": "2.22.1",
|
||||
"grunt": "1.3.0",
|
||||
"grunt-contrib-watch": "1.1.0",
|
||||
"husky": "4.2.5",
|
||||
"husky": "4.3.0",
|
||||
"jsdom": "16.4.0",
|
||||
"lint-staged": "10.2.11",
|
||||
"mocha": "8.1.1",
|
||||
"lint-staged": "10.5.1",
|
||||
"mocha": "8.2.1",
|
||||
"mocha-lcov-reporter": "1.3.0",
|
||||
"nyc": "15.1.0",
|
||||
"smtp-server": "3.7.0"
|
||||
|
||||
298
install/web.js
@@ -1,21 +1,27 @@
|
||||
'use strict';
|
||||
|
||||
var winston = require('winston');
|
||||
var express = require('express');
|
||||
var bodyParser = require('body-parser');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var childProcess = require('child_process');
|
||||
var less = require('less');
|
||||
var async = require('async');
|
||||
var uglify = require('uglify-es');
|
||||
var nconf = require('nconf');
|
||||
var Benchpress = require('benchpressjs');
|
||||
const winston = require('winston');
|
||||
const express = require('express');
|
||||
const bodyParser = require('body-parser');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const childProcess = require('child_process');
|
||||
const less = require('less');
|
||||
const util = require('util');
|
||||
const lessRenderAsync = util.promisify(
|
||||
(style, opts, cb) => less.render(String(style), opts, cb)
|
||||
);
|
||||
const uglify = require('uglify-es');
|
||||
const nconf = require('nconf');
|
||||
|
||||
var app = express();
|
||||
var server;
|
||||
const Benchpress = require('benchpressjs');
|
||||
const mkdirp = require('mkdirp');
|
||||
const { paths } = require('../src/constants');
|
||||
|
||||
var formats = [
|
||||
const app = express();
|
||||
let server;
|
||||
|
||||
const formats = [
|
||||
winston.format.colorize(),
|
||||
];
|
||||
|
||||
@@ -42,50 +48,52 @@ winston.configure({
|
||||
],
|
||||
});
|
||||
|
||||
var web = module.exports;
|
||||
const web = module.exports;
|
||||
|
||||
var scripts = [
|
||||
const scripts = [
|
||||
'node_modules/jquery/dist/jquery.js',
|
||||
'public/vendor/xregexp/xregexp.js',
|
||||
'public/vendor/xregexp/unicode/unicode-base.js',
|
||||
'node_modules/xregexp/xregexp-all.js',
|
||||
'public/src/modules/slugify.js',
|
||||
'public/src/utils.js',
|
||||
'public/src/installer/install.js',
|
||||
'node_modules/zxcvbn/dist/zxcvbn.js',
|
||||
];
|
||||
|
||||
var installing = false;
|
||||
var success = false;
|
||||
var error = false;
|
||||
var launchUrl;
|
||||
let installing = false;
|
||||
let success = false;
|
||||
let error = false;
|
||||
let launchUrl;
|
||||
|
||||
web.install = function (port) {
|
||||
const viewsDir = path.join(paths.baseDir, 'build/public/templates');
|
||||
|
||||
web.install = async function (port) {
|
||||
port = port || 4567;
|
||||
winston.info('Launching web installer on port ' + port);
|
||||
|
||||
app.use(express.static('public', {}));
|
||||
app.engine('tpl', function (filepath, options, callback) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
fs.readFile(filepath, 'utf-8', next);
|
||||
},
|
||||
function (buffer, next) {
|
||||
Benchpress.compileParse(buffer.toString(), options, next);
|
||||
},
|
||||
], callback);
|
||||
filepath = filepath.replace(/\.tpl$/, '.js');
|
||||
|
||||
Benchpress.__express(filepath, options, callback);
|
||||
});
|
||||
app.set('view engine', 'tpl');
|
||||
app.set('views', path.join(__dirname, '../src/views'));
|
||||
app.set('views', viewsDir);
|
||||
app.use(bodyParser.urlencoded({
|
||||
extended: true,
|
||||
}));
|
||||
|
||||
async.parallel([compileLess, compileJS, copyCSS, loadDefaults], function (err) {
|
||||
if (err) {
|
||||
winston.error(err.stack);
|
||||
}
|
||||
try {
|
||||
await Promise.all([
|
||||
compileTemplate(),
|
||||
compileLess(),
|
||||
compileJS(),
|
||||
copyCSS(),
|
||||
loadDefaults(),
|
||||
]);
|
||||
setupRoutes();
|
||||
launchExpress(port);
|
||||
});
|
||||
} catch (err) {
|
||||
winston.error(err.stack);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -180,120 +188,116 @@ function install(req, res) {
|
||||
});
|
||||
}
|
||||
|
||||
function launch(req, res) {
|
||||
res.json({});
|
||||
server.close();
|
||||
req.setTimeout(0);
|
||||
var child;
|
||||
async function launch(req, res) {
|
||||
try {
|
||||
res.json({});
|
||||
server.close();
|
||||
req.setTimeout(0);
|
||||
var child;
|
||||
|
||||
if (!nconf.get('launchCmd')) {
|
||||
child = childProcess.spawn('node', ['loader.js'], {
|
||||
detached: true,
|
||||
stdio: ['ignore', 'ignore', 'ignore'],
|
||||
});
|
||||
if (!nconf.get('launchCmd')) {
|
||||
child = childProcess.spawn('node', ['loader.js'], {
|
||||
detached: true,
|
||||
stdio: ['ignore', 'ignore', 'ignore'],
|
||||
});
|
||||
|
||||
console.log('\nStarting NodeBB');
|
||||
console.log(' "./nodebb stop" to stop the NodeBB server');
|
||||
console.log(' "./nodebb log" to view server output');
|
||||
console.log(' "./nodebb restart" to restart NodeBB');
|
||||
} else {
|
||||
// Use launchCmd instead, if specified
|
||||
child = childProcess.exec(nconf.get('launchCmd'), {
|
||||
detached: true,
|
||||
stdio: ['ignore', 'ignore', 'ignore'],
|
||||
});
|
||||
}
|
||||
|
||||
var filesToDelete = [
|
||||
'installer.css',
|
||||
'installer.min.js',
|
||||
'bootstrap.min.css',
|
||||
];
|
||||
|
||||
async.each(filesToDelete, function (filename, next) {
|
||||
fs.unlink(path.join(__dirname, '../public', filename), next);
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
winston.warn('Unable to remove installer files');
|
||||
console.log('\nStarting NodeBB');
|
||||
console.log(' "./nodebb stop" to stop the NodeBB server');
|
||||
console.log(' "./nodebb log" to view server output');
|
||||
console.log(' "./nodebb restart" to restart NodeBB');
|
||||
} else {
|
||||
// Use launchCmd instead, if specified
|
||||
child = childProcess.exec(nconf.get('launchCmd'), {
|
||||
detached: true,
|
||||
stdio: ['ignore', 'ignore', 'ignore'],
|
||||
});
|
||||
}
|
||||
|
||||
const filesToDelete = [
|
||||
'installer.css',
|
||||
'installer.min.js',
|
||||
'bootstrap.min.css',
|
||||
];
|
||||
await Promise.all(
|
||||
filesToDelete.map(
|
||||
filename => fs.promises.unlink(path.join(__dirname, '../public', filename))
|
||||
)
|
||||
);
|
||||
child.unref();
|
||||
process.exit(0);
|
||||
});
|
||||
}
|
||||
|
||||
function compileLess(callback) {
|
||||
var installSrc = path.join(__dirname, '../public/less/install.less');
|
||||
fs.readFile(installSrc, function (err, style) {
|
||||
if (err) {
|
||||
return winston.error('Unable to read LESS install file: ', err.stack);
|
||||
}
|
||||
|
||||
less.render(style.toString(), {
|
||||
filename: path.resolve(installSrc),
|
||||
}, function (err, css) {
|
||||
if (err) {
|
||||
return winston.error('Unable to compile LESS: ', err.stack);
|
||||
}
|
||||
|
||||
fs.writeFile(path.join(__dirname, '../public/installer.css'), css.css, callback);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function compileJS(callback) {
|
||||
var code = '';
|
||||
async.eachSeries(scripts, function (srcPath, next) {
|
||||
fs.readFile(path.join(__dirname, '..', srcPath), function (err, buffer) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
code += buffer.toString();
|
||||
next();
|
||||
});
|
||||
}, function (err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
try {
|
||||
var minified = uglify.minify(code, {
|
||||
compress: false,
|
||||
});
|
||||
if (!minified.code) {
|
||||
return callback(new Error('[[error:failed-to-minify]]'));
|
||||
}
|
||||
fs.writeFile(path.join(__dirname, '../public/installer.min.js'), minified.code, callback);
|
||||
} catch (e) {
|
||||
callback(e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function copyCSS(next) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
fs.readFile(path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8', next);
|
||||
},
|
||||
function (src, next) {
|
||||
fs.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src, next);
|
||||
},
|
||||
], next);
|
||||
}
|
||||
|
||||
function loadDefaults(next) {
|
||||
var setupDefaultsPath = path.join(__dirname, '../setup.json');
|
||||
fs.access(setupDefaultsPath, fs.constants.F_OK | fs.constants.R_OK, function (err) {
|
||||
if (err) {
|
||||
// setup.json not found or inaccessible, proceed with no defaults
|
||||
return setImmediate(next);
|
||||
}
|
||||
|
||||
winston.info('[installer] Found setup.json, populating default values');
|
||||
nconf.file({
|
||||
file: setupDefaultsPath,
|
||||
});
|
||||
|
||||
next();
|
||||
} catch (err) {
|
||||
winston.error(err.stack);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
// this is necessary because otherwise the compiled templates won't be available on a clean install
|
||||
async function compileTemplate() {
|
||||
const sourceFile = path.join(__dirname, '../src/views/install/index.tpl');
|
||||
const destTpl = path.join(viewsDir, 'install/index.tpl');
|
||||
const destJs = path.join(viewsDir, 'install/index.js');
|
||||
|
||||
const source = await fs.promises.readFile(sourceFile, 'utf8');
|
||||
|
||||
const [compiled] = await Promise.all([
|
||||
Benchpress.precompile(source),
|
||||
mkdirp(path.dirname(destJs)),
|
||||
]);
|
||||
|
||||
await Promise.all([
|
||||
fs.promises.writeFile(destJs, compiled),
|
||||
fs.promises.writeFile(destTpl, source),
|
||||
]);
|
||||
}
|
||||
|
||||
async function compileLess() {
|
||||
try {
|
||||
const installSrc = path.join(__dirname, '../public/less/install.less');
|
||||
const style = await fs.promises.readFile(installSrc);
|
||||
const css = await lessRenderAsync(style, { filename: path.resolve(installSrc) });
|
||||
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
|
||||
} catch (err) {
|
||||
winston.error('Unable to compile LESS: \n' + err.stack);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
async function compileJS() {
|
||||
let code = '';
|
||||
|
||||
for (const srcPath of scripts) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
const buffer = await fs.promises.readFile(path.join(__dirname, '..', srcPath));
|
||||
code += buffer.toString();
|
||||
}
|
||||
const minified = uglify.minify(code, {
|
||||
compress: false,
|
||||
});
|
||||
if (!minified.code) {
|
||||
throw new Error('[[error:failed-to-minify]]');
|
||||
}
|
||||
await fs.promises.writeFile(path.join(__dirname, '../public/installer.min.js'), minified.code);
|
||||
}
|
||||
|
||||
async function copyCSS() {
|
||||
const src = await fs.promises.readFile(
|
||||
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8'
|
||||
);
|
||||
await fs.promises.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src);
|
||||
}
|
||||
|
||||
async function loadDefaults() {
|
||||
const setupDefaultsPath = path.join(__dirname, '../setup.json');
|
||||
try {
|
||||
await fs.promises.access(setupDefaultsPath, fs.constants.F_OK | fs.constants.R_OK);
|
||||
} catch (err) {
|
||||
// setup.json not found or inaccessible, proceed with no defaults
|
||||
if (err.code !== 'ENOENT') {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
winston.info('[installer] Found setup.json, populating default values');
|
||||
nconf.file({
|
||||
file: setupDefaultsPath,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
var nconf = require('nconf');
|
||||
var nconf = require('nconf');
|
||||
var fs = require('fs');
|
||||
var url = require('url');
|
||||
var path = require('path');
|
||||
@@ -18,7 +18,7 @@ nconf.argv().env().file({
|
||||
file: pathToConfig,
|
||||
});
|
||||
|
||||
var pidFilePath = path.join(__dirname, 'pidfile');
|
||||
var pidFilePath = path.join(__dirname, 'pidfile');
|
||||
|
||||
var outputLogFilePath = path.join(__dirname, nconf.get('logFile') || 'logs/output.log');
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
"socket": true,
|
||||
"ajaxify": true,
|
||||
"config": true,
|
||||
"RELATIVE_PATH": true,
|
||||
"utils": true,
|
||||
"overrides": true,
|
||||
"componentHandler": true,
|
||||
@@ -18,7 +17,7 @@
|
||||
"jquery": true,
|
||||
"amd": true,
|
||||
"browser": true,
|
||||
"es6": false
|
||||
"es6": true
|
||||
},
|
||||
"rules": {
|
||||
"block-scoped-var": "off",
|
||||
@@ -32,12 +31,10 @@
|
||||
"prefer-template": "off"
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 5,
|
||||
"ecmaVersion": 6,
|
||||
"ecmaFeatures": {
|
||||
"arrowFunctions": false,
|
||||
"classes": false,
|
||||
"defaultParams": false,
|
||||
"destructuring": false,
|
||||
"experimentalObjectRestSpread": false,
|
||||
"blockBindings": false,
|
||||
"forOf": false,
|
||||
@@ -51,9 +48,7 @@
|
||||
"objectLiteralShorthandProperties": false,
|
||||
"impliedStrict": false,
|
||||
"restParams": false,
|
||||
"spread": false,
|
||||
"superInFunctions": false,
|
||||
"templateStrings": false
|
||||
"superInFunctions": false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,6 @@
|
||||
"socket": true,
|
||||
"ajaxify": true,
|
||||
"config": true,
|
||||
"RELATIVE_PATH": true,
|
||||
"utils": true,
|
||||
"overrides": true,
|
||||
"componentHandler": true,
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 13 KiB |
16
public/images/logo.svg
Normal file
@@ -0,0 +1,16 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="321" height="75" viewBox="0 0 321 75">
|
||||
<defs>
|
||||
<radialGradient id="nodebb-a" cx="65.599%" cy="0%" r="169.036%" fx="65.599%" fy="0%" gradientTransform="matrix(-.5183 .5916 -.38031 -.80624 .996 -.388)">
|
||||
<stop offset="0%" stop-color="#2A6CBE"/>
|
||||
<stop offset="38.688%" stop-color="#2062BC"/>
|
||||
<stop offset="49.182%" stop-color="#1F5FBC"/>
|
||||
<stop offset="66.583%" stop-color="#1C5ABD"/>
|
||||
<stop offset="85.354%" stop-color="#1956BC"/>
|
||||
<stop offset="100%" stop-color="#1851BE"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
<g fill="none" transform="translate(1 1)">
|
||||
<path fill="#000306" stroke="#000306" stroke-width=".275" d="M195.810017,20 C210.691849,20 221.256813,28.7272272 221.484017,45.845679 C221.490864,46.3615394 221.461776,47.1194739 221.396754,48.1194827 C221.328352,49.1714504 220.455158,49.9897119 219.400969,49.9897119 L179.110557,49.9897119 C179.110557,56.6336943 182.723978,64.2757202 196.378026,64.2757202 C204.088827,64.2757202 211.625406,61.928339 218.987763,57.2335766 L219.553745,56.8677968 C220.246813,56.4139645 221.17656,56.6079034 221.630392,57.3009716 C221.757029,57.4943637 221.837254,57.7144077 221.864806,57.943925 C222.131013,60.1615294 222.004084,61.5832211 221.484017,62.2089999 C220.452051,63.4507301 210.901843,73 196.378026,73 C180.58738,73 169,61.8765432 169,46.3909465 C169,31.3415638 180.019372,20 195.810017,20 Z M162.92733,0 C164.031899,-4.2495073e-16 164.92733,0.8954305 164.92733,2 L164.928075,44.1266361 C164.975781,44.8118124 165,45.5058194 165,46.2079256 C165,61.5334332 153.460581,73 138,73 C122.427386,73 111,61.5334332 111,46.2079256 C111,30.882418 122.427386,19.4158511 138,19.4158511 C144.981278,19.4158511 151.163029,21.7538895 155.843826,25.7295173 L155.843557,4.54188628 C155.843557,2.03347175 157.877029,4.60788274e-16 160.385444,0 L162.92733,0 Z M81,20 C96.4605809,20 108,31.3415638 108,46.5 C108,61.6584362 96.4605809,73 81,73 C65.4273859,73 54,61.6584362 54,46.5 C54,31.3415638 65.4273859,20 81,20 Z M27.324263,20 C41.6099773,20 50,29.1649049 50,41.7801268 L50,67.5 C50,69.4329966 48.4329966,71 46.5,71 L42.2494331,71 C41.1448636,71 40.2494331,70.1045695 40.2494331,69 L40.2494331,42.5348837 C40.2494331,34.3403805 35.8276644,28.6257928 26.3038549,28.6257928 C10.0816327,28.6257928 9.75718821,35.7795705 9.75069932,44.6831843 L9.75056689,71 L2,71 C0.8954305,71 1.3527075e-16,70.1045695 0,69 L0,35.2932975 L0,35.2932975 C0,24.3935718 19.1609977,20 27.324263,20 Z M81,28.7242798 C70.8049793,28.7242798 63.6348548,36.4670782 63.6348548,46.5 C63.6348548,56.3148148 70.8049793,64.2757202 81,64.2757202 C91.1950207,64.2757202 98.3651452,56.3148148 98.3651452,46.5 C98.3651452,36.4670782 91.1950207,28.7242798 81,28.7242798 Z M138,28.2362872 C127.804979,28.2362872 120.634855,36.0644241 120.634855,46.2079256 C120.634855,56.1309161 127.804979,64.179564 138,64.179564 C148.195021,64.179564 155.365145,56.1309161 155.365145,46.2079256 C155.365145,36.0644241 148.195021,28.2362872 138,28.2362872 Z M195.810017,28.7242798 C186.721876,28.7242798 180.473779,33.9588477 179.224159,41.8106996 L211.259858,41.8106996 C210.010238,33.9588477 204.443752,28.7242798 195.810017,28.7242798 Z"/>
|
||||
<path fill="url(#nodebb-a)" d="M277,19 L276.999615,57.7303365 C276.99251,64.180962 276.88949,68.6242617 276.88949,73 L276.88949,73 L255.649055,73 C242.962262,73 236,67.06 236,57.7257143 C236,51.4771429 239.558488,46.9257143 245.1283,45.0742857 C240.564149,43.1457143 237.779243,38.8257143 237.779243,33.5028571 C237.779243,24.8628571 244.664149,19 256.732074,19 L256.732074,19 L277,19 Z M299.267926,19 C311.335851,19 318.220757,24.8628571 318.220757,33.5028571 C318.220757,38.8257143 315.435851,43.1457143 310.8717,45.0742857 C316.441512,46.9257143 320,51.4771429 320,57.7257143 C320,67.06 313.037738,73 300.350945,73 L279.11051,73 L279.11051,73 C279.11051,68.6242617 279.00749,64.180962 279.000385,57.7303365 L279,19 L299.267926,19 Z M266.092452,49.8571429 L256.499999,49.8571429 C250.156602,49.8571429 246.984904,52.2485714 246.984904,56.9542857 C246.984904,61.8914286 249.924527,64.36 255.726414,64.36 L255.726414,64.36 L260.754716,64.36 C264.777358,64.36 266.092452,62.4314286 266.092452,56.5685714 L266.092452,56.5685714 L266.092452,49.8571429 Z M299.500001,49.8571429 L289.907548,49.8571429 L289.907548,56.5685714 C289.907548,62.4314286 291.222642,64.36 295.245284,64.36 L300.273586,64.36 C306.075473,64.36 309.015096,61.8914286 309.015096,56.9542857 C309.015096,52.2485714 305.843398,49.8571429 299.500001,49.8571429 Z M266.169811,27.64 L257.350942,27.64 C251.703772,27.64 248.764149,30.1857143 248.764149,34.5057143 C248.764149,38.8257143 251.703772,41.3714286 257.350942,41.3714286 L257.350942,41.3714286 L266.169811,41.3714286 L266.169811,27.64 Z M298.649058,27.64 L289.830189,27.64 L289.830189,41.3714286 L298.649058,41.3714286 C304.296228,41.3714286 307.235851,38.8257143 307.235851,34.5057143 C307.235851,30.1857143 304.296228,27.64 298.649058,27.64 Z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
BIN
public/images/logo@3x.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/images/touch/144.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
public/images/touch/192.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
public/images/touch/36.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
public/images/touch/48.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
public/images/touch/512.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
public/images/touch/72.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
public/images/touch/96.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
public/images/ui-bg_flat_0_aaaaaa_40x100.png
Normal file
|
After Width: | Height: | Size: 86 B |
BIN
public/images/ui-icons_444444_256x240.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/images/ui-icons_555555_256x240.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/images/ui-icons_777620_256x240.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/images/ui-icons_777777_256x240.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/images/ui-icons_cc0000_256x240.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
public/images/ui-icons_ffffff_256x240.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
@@ -1,11 +1,6 @@
|
||||
{
|
||||
"post-cache": "التخزين المؤقت للمشاركات",
|
||||
"posts-in-cache": "المشاركات المخزنة مؤقتاً",
|
||||
"average-post-size": "متوسط حجم المشاركة",
|
||||
"length-to-max": "الطول / أقصى حد",
|
||||
"percent-full": "1% كاملة",
|
||||
"post-cache-size": "حجم التخزين المؤقت للمشاركات",
|
||||
"items-in-cache": "العناصر في التخزين المؤقت",
|
||||
"control-panel": "لوحة التحكم",
|
||||
"update-settings": "تحديث إعدادات التخزين المؤقت"
|
||||
"items-in-cache": "العناصر في التخزين المؤقت"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"trending": "Trending",
|
||||
"installed": "منصبة",
|
||||
"active": "مفعلة",
|
||||
"inactive": "معطلة",
|
||||
|
||||
@@ -48,5 +48,6 @@
|
||||
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
|
||||
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.no-undo": "<em>This action cannot be undone.</em>"
|
||||
"alert.no-undo": "<em>This action cannot be undone.</em>",
|
||||
"alert.admin-warning": "Administrators implicitly get all privileges"
|
||||
}
|
||||
@@ -20,16 +20,10 @@
|
||||
"add-group": "Add Group",
|
||||
"invite": "Invite",
|
||||
"new": "New User",
|
||||
|
||||
"pills.latest": "Latest Users",
|
||||
"filter-by": "Filter by",
|
||||
"pills.unvalidated": "Not Validated",
|
||||
"pills.no-posts": "No Posts",
|
||||
"pills.top-posters": "Top Posters",
|
||||
"pills.top-rep": "Most Reputation",
|
||||
"pills.inactive": "Inactive",
|
||||
"pills.flagged": "Most Flagged",
|
||||
"pills.validated": "Validated",
|
||||
"pills.banned": "Banned",
|
||||
"pills.search": "User Search",
|
||||
|
||||
"50-per-page": "50 per page",
|
||||
"100-per-page": "100 per page",
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
"logout": "Log out",
|
||||
"view-forum": "View Forum",
|
||||
|
||||
"search.placeholder": "Search for settings",
|
||||
"search.placeholder": "Press "/" to search for settings",
|
||||
"search.no-results": "No results...",
|
||||
"search.search-forum": "Search the forum for <strong></strong>",
|
||||
"search.keep-typing": "Type more to see results...",
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
"maintenance-mode.message": "Maintenance Message",
|
||||
"headers": "Headers",
|
||||
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
||||
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
|
||||
"headers.csp-frame-ancestors-help": "'none', 'self'(default) or list of URIs to allow.",
|
||||
"headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB",
|
||||
"headers.acao": "Access-Control-Allow-Origin",
|
||||
"headers.acao-regex": "Access-Control-Allow-Origin Regular Expression",
|
||||
@@ -30,5 +32,12 @@
|
||||
"sockets.settings": "WebSocket Settings",
|
||||
"sockets.max-attempts": "Max Reconnection Attempts",
|
||||
"sockets.default-placeholder": "Default: %1",
|
||||
"sockets.delay": "Reconnection Delay"
|
||||
"sockets.delay": "Reconnection Delay",
|
||||
|
||||
"analytics.settings": "Analytics Settings",
|
||||
"analytics.max-cache": "Analytics Cache Max Value",
|
||||
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)",
|
||||
"compression.settings": "Compression Settings",
|
||||
"compression.enable": "Enable Compression",
|
||||
"compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes."
|
||||
}
|
||||
12
public/language/ar/admin/settings/api.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"tokens": "Tokens",
|
||||
"lead-text": "From this page you can configure access to the Write API in NodeBB.",
|
||||
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
|
||||
"docs": "Click here to access the full API specification",
|
||||
|
||||
"uid": "User ID",
|
||||
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
|
||||
"description": "Description",
|
||||
"no-description": "No description specified.",
|
||||
"token-on-save": "Token will be generated once form is saved"
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
"max-length": "Maximum length of chat messages",
|
||||
"max-room-size": "Maximum number of users in chat rooms",
|
||||
"delay": "Time between chat messages in milliseconds",
|
||||
"notification-delay": "Notification delay for chat messages. (0 for no delay)",
|
||||
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
|
||||
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
|
||||
}
|
||||
@@ -8,5 +8,6 @@
|
||||
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
||||
"settings": "Settings",
|
||||
"cookie-domain": "Session cookie domain",
|
||||
"max-user-sessions": "Max active sessions per user",
|
||||
"blank-default": "Leave blank for default"
|
||||
}
|
||||
@@ -4,10 +4,7 @@
|
||||
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
||||
"from": "From Name",
|
||||
"from-help": "The from name to display in the email.",
|
||||
"sendmail-rate-limit": "Send <em>X</em> emails...",
|
||||
"sendmail-rate-delta": "... every <em>X</em> milliseconds",
|
||||
"sendmail-rate-help": "Instructs the NodeBB mailer to limit the number of messages sent at once in order to not overwhelm email receiving services. These options do not apply if SMTP Transport is enabled (below).",
|
||||
|
||||
|
||||
"smtp-transport": "SMTP Transport",
|
||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
@@ -25,6 +22,8 @@
|
||||
"smtp-transport.username": "Username",
|
||||
"smtp-transport.username-help": "<b>For the Gmail service,</b> enter the full email address here, especially if you are using a Google Apps managed domain.",
|
||||
"smtp-transport.password": "Password",
|
||||
"smtp-transport.pool": "Enable pooled connections",
|
||||
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
|
||||
|
||||
"template": "Edit Email Template",
|
||||
"template.select": "Select Email Template",
|
||||
|
||||
@@ -27,9 +27,12 @@
|
||||
"log.alt-text-placeholder": "Alternative text for accessibility",
|
||||
"favicon": "صورة المفضله",
|
||||
"favicon.upload": "رفع",
|
||||
"touch-icon": "Homescreen/Touch Icon",
|
||||
"pwa": "Progressive Web App",
|
||||
"touch-icon": "Touch Icon",
|
||||
"touch-icon.upload": "رفع",
|
||||
"touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
|
||||
"touch-icon.help": "Recommended size and format: 512x512, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
|
||||
"maskable-icon": "Maskable (Homescreen) Icon",
|
||||
"maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
|
||||
"outgoing-links": "Outgoing Links",
|
||||
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
|
||||
"search-default-sort-by": "الترتيب الافتراضي للبحث",
|
||||
@@ -38,4 +41,4 @@
|
||||
"theme-color": "لون الثيم",
|
||||
"background-color": "لون الخلفية",
|
||||
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"handles": "Guest Handles",
|
||||
"handles.enabled": "Allow guest handles",
|
||||
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\""
|
||||
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
|
||||
"topic-views": "Topic views",
|
||||
"topic-views.enabled": "Allow guests to increase topic view counts"
|
||||
}
|
||||
@@ -34,6 +34,8 @@
|
||||
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
||||
"timestamp.necro-threshold": "Necro Threshold (in days)",
|
||||
"timestamp.necro-threshold-help": "A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
|
||||
"timestamp.topic-views-interval": "Increment topic views interval (in minutes)",
|
||||
"timestamp.topic-views-interval-help": "Topic views will only increment once every X minutes as defined by this setting.",
|
||||
"teaser": "Teaser Post",
|
||||
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
||||
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
"reset.notify.text1": "نحيطك علما أن كلمة مرورك قد تم تغييرها في %1",
|
||||
"reset.notify.text2": "إن لم يكن لديك علم بهذا، المرجو إشعار مدبر النظام بأسرع مايمكن.",
|
||||
"digest.latest_topics": "آخر المستجدات من %1",
|
||||
"digest.top-topics": "Top topics from %1",
|
||||
"digest.popular-topics": "Popular topics from %1",
|
||||
"digest.cta": "انقر هنا لمشاهدة %1",
|
||||
"digest.unsub.info": "تم إرسال هذا الإشعار بآخر المستجدات وفقا لخيارات تسجيلكم.",
|
||||
"digest.day": "يوم",
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"invalid-pagination-value": "رقم الصفحة غير صحيح ، يجب أن يكون بين %1 و %2 .",
|
||||
"username-taken": "اسم المستخدم مأخوذ",
|
||||
"email-taken": "البريد الالكتروني مأخوذ",
|
||||
"email-invited": "Email was already invited",
|
||||
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
|
||||
"email-not-confirmed-chat": "لا يمكنك الدردشة حتى تقوم بتأكيد بريدك الإلكتروني، الرجاء إضغط هنا لتأكيد بريدك اﻹلكتروني.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
|
||||
@@ -162,10 +163,12 @@
|
||||
"invalid-session-text": "يبدو أن فترة التسجيل لم تعد قائمة او هي غير مطابقة مع الخادم. يرجى إعادة تحميل هذه الصفحة.",
|
||||
"no-topics-selected": "No topics selected!",
|
||||
"cant-move-to-same-topic": "Can't move post to same topic!",
|
||||
"cant-move-topic-to-same-category": "Can't move topic to the same category!",
|
||||
"cannot-block-self": "You cannot block yourself!",
|
||||
"cannot-block-privileged": "You cannot block administrators or global moderators",
|
||||
"cannot-block-guest": "Guest are not able to block other users",
|
||||
"already-blocked": "This user is already blocked",
|
||||
"already-unblocked": "This user is already unblocked",
|
||||
"no-connection": "There seems to be a problem with your internet connection"
|
||||
"no-connection": "There seems to be a problem with your internet connection",
|
||||
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP"
|
||||
}
|
||||
@@ -61,6 +61,11 @@
|
||||
"sort-newest": "Newest first",
|
||||
"sort-oldest": "Oldest first",
|
||||
"sort-reports": "Most reports",
|
||||
"sort-all": "All flag types...",
|
||||
"sort-posts-only": "Posts only...",
|
||||
"sort-downvotes": "Most downvotes",
|
||||
"sort-upvotes": "Most upvotes",
|
||||
"sort-replies": "Most replies",
|
||||
|
||||
"modal-title": "Report Inappropriate Content",
|
||||
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
|
||||
@@ -72,5 +77,9 @@
|
||||
"modal-submit-success": "Content has been flagged for moderation.",
|
||||
"modal-submit-confirm": "Confirm Submission",
|
||||
"modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
|
||||
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined."
|
||||
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined.",
|
||||
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated"
|
||||
}
|
||||
@@ -52,14 +52,17 @@
|
||||
"users": "الأعضاء",
|
||||
"topics": "المواضيع",
|
||||
"posts": "المشاركات",
|
||||
"x-posts": "%1 posts",
|
||||
"best": "الأفضل",
|
||||
"votes": "Votes",
|
||||
"x-votes": "%1 votes",
|
||||
"voters": "Voters",
|
||||
"upvoters": "الموافقين",
|
||||
"upvoted": "مصوت بالموجب",
|
||||
"downvoters": "مصوتين بالسالب",
|
||||
"downvoted": "مصوت بالسالب",
|
||||
"views": "المشاهدات",
|
||||
"posters": "Posters",
|
||||
"reputation": "السمعة",
|
||||
"lastpost": "Last post",
|
||||
"firstpost": "First post",
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"wrong_reset_code.message": "رمز إعادة التعين غير صحيح، يرجى المحاولة مرة أخرى أو <a href='/reset'>اطلب رمزا جديدا</a>",
|
||||
"new_password": "كلمة المرور الجديدة",
|
||||
"repeat_password": "تأكيد كلمة المرور",
|
||||
"changing_password": "Changing Password",
|
||||
"enter_email": "يرجى إدخال <strong>عنوان البريد الإلكتروني</strong> الخاص بك وسوف نرسل لك رسالة بالبريد الالكتروني مع تعليمات حول كيفية إستعادة حسابك.",
|
||||
"enter_email_address": "ادخل عنوان البريد الإلكتروني",
|
||||
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",
|
||||
|
||||
@@ -44,5 +44,6 @@
|
||||
"search-preferences-saved": "تم حفظ تفضيلات البحث",
|
||||
"search-preferences-cleared": "تم ازالة تفضيلات البحث",
|
||||
"show-results-as": "عرض النتائج كـ",
|
||||
"see-more-results": "See more results (%1)"
|
||||
"see-more-results": "See more results (%1)",
|
||||
"search-in-category": "Search in \"%1\""
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
{
|
||||
"topic": "موضوع",
|
||||
"topic_id": "معرف الموضوع",
|
||||
"topic_id_placeholder": "أدخل معرف الموضوع",
|
||||
"no_topics_found": "لا توجد مواضيع !",
|
||||
"no_posts_found": "لا توجد مشاركات!",
|
||||
"post_is_deleted": "هذه المشاركة محذوفة!",
|
||||
@@ -81,7 +79,12 @@
|
||||
"thread_tools.purge_confirm": "هل أنت متأكد أنك تريد تطهير هذا الموضوع؟",
|
||||
"thread_tools.merge_topics": "Merge Topics",
|
||||
"thread_tools.merge": "Merge",
|
||||
"topic_move_success": "تم نقل هذا الموضوع إلى %1 بنجاح",
|
||||
"topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
|
||||
"topic_move_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
|
||||
"topic_move_all_success": "All topics will be moved to \"%1\" shortly. Click here to undo.",
|
||||
"topic_move_undone": "Topic move undone",
|
||||
"topic_move_posts_success": "Posts will be moved shortly. Click here to undo.",
|
||||
"topic_move_posts_undone": "Post move undone",
|
||||
"post_delete_confirm": "هل أنت متأكد أنك تريد حذف هذه المشاركة؟",
|
||||
"post_restore_confirm": "هل أنت متأكد أنك تريد استعادة هذه المشاركة؟",
|
||||
"post_purge_confirm": "هل أنت متأكد أنك تريد تطهير هذه المشاركة؟",
|
||||
@@ -99,6 +102,9 @@
|
||||
"fork_topic": "فرع الموضوع",
|
||||
"fork_topic_instruction": "إضغط على المشاركات التي تريد تفريعها",
|
||||
"fork_no_pids": "لم تختر أي مشاركة",
|
||||
"no-posts-selected": "No posts selected!",
|
||||
"x-posts-selected": "%1 post(s) selected",
|
||||
"x-posts-will-be-moved-to-y": "%1 post(s) will be moved to \"%2\"",
|
||||
"fork_pid_count": "1% مشاركة محددة",
|
||||
"fork_success": "تم إنشاء فرع للموضوع بنجاح! إضغط هنا لمعاينة الفرع.",
|
||||
"delete_posts_instruction": "Click the posts you want to delete/purge",
|
||||
@@ -107,7 +113,7 @@
|
||||
"merge-options": "Merge options",
|
||||
"merge-select-main-topic": "Select the main topic",
|
||||
"merge-new-title-for-topic": "New title for topic",
|
||||
"move_posts_instruction": "Click the posts you want to move",
|
||||
"move_posts_instruction": "Click the posts you want to move then go to target topic and click move.",
|
||||
"change_owner_instruction": "Click the posts you want to assign to another user",
|
||||
"composer.title_placeholder": "أدخل عنوان موضوعك هنا...",
|
||||
"composer.handle_placeholder": "Enter your name/handle here",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"banned": "محظور",
|
||||
"offline": "غير متصل",
|
||||
"deleted": "Deleted",
|
||||
"deleted": "محذوف",
|
||||
"username": "إسم المستخدم",
|
||||
"joindate": "تاريخ الإنضمام",
|
||||
"postcount": "عدد المشاركات",
|
||||
@@ -111,12 +111,7 @@
|
||||
"posts_per_page": "الردود في كل صفحة",
|
||||
"max_items_per_page": "أقصى %1",
|
||||
"acp_language": "Admin Page Language",
|
||||
"notification_sounds": "تشغيل صوت عند تلقي تنبيه",
|
||||
"notifications_and_sounds": "التنبيهات والأصوات",
|
||||
"incoming-message-sound": "صوت الرسالة الواردة",
|
||||
"outgoing-message-sound": "صوت الرسائل الصادرة",
|
||||
"notification-sound": "صوت التنبيهات",
|
||||
"no-sound": "بدون صوت",
|
||||
"notifications": "Notifications",
|
||||
"upvote-notif-freq": "معدل تكرار تنبيهات التصويت للأعلى",
|
||||
"upvote-notif-freq.all": "كل التصويتات للأعلى",
|
||||
"upvote-notif-freq.first": "First Per Post",
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
{
|
||||
"post-cache": "Кеш за публикации",
|
||||
"posts-in-cache": "Публикации в кеша",
|
||||
"average-post-size": "Среден обем на публикация",
|
||||
"length-to-max": "Дължина / максимум",
|
||||
"percent-full": "Запълненост: %1%",
|
||||
"post-cache-size": "Размер на кеша за публикации",
|
||||
"items-in-cache": "Елементи в кеша",
|
||||
"control-panel": "Контролен панел",
|
||||
"update-settings": "Обновяване на настройките на кеша"
|
||||
"items-in-cache": "Елементи в кеша"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"trending": "Популярни",
|
||||
"installed": "Инсталирани",
|
||||
"active": "Включени",
|
||||
"inactive": "Изключени",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"available": "Налични джаджи",
|
||||
"explanation": "Изберете джаджа от падащото меню, а след това я завлачете и пуснете в областта за джаджи в някой от шаблоните вляво.",
|
||||
"none-installed": "No widgets found! Activate the widget essentials plugin in the <a href=\"%1\">plugins</a> control panel.",
|
||||
"none-installed": "Няма намерени джаджи! Включете добавката с основните джаджи в контролния панел за <a href=\"%1\">добавките</a>.",
|
||||
"clone-from": "Клониране на джаджите от",
|
||||
"containers.available": "Налични контейнери",
|
||||
"containers.explanation": "Завлачете и пуснете върху някоя активна джаджа",
|
||||
|
||||
@@ -48,5 +48,6 @@
|
||||
"alert.confirm-copyToAllGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички категории</strong>?",
|
||||
"alert.confirm-copyToChildren": "Наистина ли искате да приложите този набор от правомощия към <strong>всички по-долни (дъщерни) категории</strong>?",
|
||||
"alert.confirm-copyToChildrenGroup": "Наистина ли искате да приложите набора от правомощия на таи група към <strong>всички по-долни (дъщерни) категории</strong>?",
|
||||
"alert.no-undo": "<em>Това действие е необратимо.</em>"
|
||||
"alert.no-undo": "<em>Това действие е необратимо.</em>",
|
||||
"alert.admin-warning": "Администраторите имат всички правомощия по подразбиране"
|
||||
}
|
||||
@@ -20,16 +20,10 @@
|
||||
"add-group": "Добавяне на група",
|
||||
"invite": "Покана",
|
||||
"new": "Нов потребител",
|
||||
|
||||
"pills.latest": "Последни потребители",
|
||||
"filter-by": "Филтриране по",
|
||||
"pills.unvalidated": "Няма потвърдена е-поща",
|
||||
"pills.no-posts": "Няма публикации",
|
||||
"pills.top-posters": "С най-много публикации",
|
||||
"pills.top-rep": "С най-много репутация",
|
||||
"pills.inactive": "Недеен",
|
||||
"pills.flagged": "С най-много доклади",
|
||||
"pills.validated": "Потвърдена",
|
||||
"pills.banned": "Блокиран",
|
||||
"pills.search": "Търсене на потребители",
|
||||
|
||||
"50-per-page": "50 на страница",
|
||||
"100-per-page": "100 на страница",
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
"logout": "Изход",
|
||||
"view-forum": "Преглед на форума",
|
||||
|
||||
"search.placeholder": "Търсене на настройки",
|
||||
"search.placeholder": "Натиснете „/“ за търсене на настройки",
|
||||
"search.no-results": "Няма резултати…",
|
||||
"search.search-forum": "Търсене във форума за <strong></strong>",
|
||||
"search.keep-typing": "Продължете да пишете, за да видите още резултати…",
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
"maintenance-mode.message": "Съобщение за профилактиката",
|
||||
"headers": "Заглавни части",
|
||||
"headers.allow-from": "Задайте „ALLOW-FROM“, за да поставите NodeBB в „iFrame“",
|
||||
"headers.csp-frame-ancestors": "Задайте заглавката „Content-Security-Policy frame-ancestors“ за да поставите NodeBB „iFrame“",
|
||||
"headers.csp-frame-ancestors-help": "„none“ (нищо), „self“ (себе си – по подразбиране) или списък от позволени адреси.",
|
||||
"headers.powered-by": "Персонализиране на заглавната част „Захранван от“, която се изпраща от NodeBB",
|
||||
"headers.acao": "Произход за разрешаване на управлението на достъпа",
|
||||
"headers.acao-regex": "Регулярен израз за произхода за разрешаване на управлението на достъпа",
|
||||
@@ -30,5 +32,12 @@
|
||||
"sockets.settings": "Настройки за WebSocket",
|
||||
"sockets.max-attempts": "Максимален брой опити за повторно свързване",
|
||||
"sockets.default-placeholder": "По подразбиране: %1",
|
||||
"sockets.delay": "Забавяне при повторно свързване"
|
||||
"sockets.delay": "Забавяне при повторно свързване",
|
||||
|
||||
"analytics.settings": "Настройки за анализите",
|
||||
"analytics.max-cache": "Макс. стойност на кеша за анализите",
|
||||
"analytics.max-cache-help": "При инсталации с натоварен трафик, кешът може да бъде изразходен, ако има повече едновременни потребители, от колкото е максималната стойност на кеша. (Изисква рестартиране)",
|
||||
"compression.settings": "Настройки за компресирането",
|
||||
"compression.enable": "Включване на компресирането",
|
||||
"compression.help": "Тази настройка включва компресирането чрез „gzip“. За натоварени уеб сайтове най-добрият начин за използване на компресия е тя да се случва на нивото на обратния сървър-посредник (reverse proxy). Но с цел тестване, можете да го включите и тук."
|
||||
}
|
||||
12
public/language/bg/admin/settings/api.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"tokens": "Кодове",
|
||||
"lead-text": "На тази страница можете да настроите достъпа до ППИ за писане в NodeBB.",
|
||||
"intro": "По подразбиране ППИ за писане удостоверява потребителите чрез бисквитката им за сесията, но NodeBB поддържа и удостоверяване чрез метода „Bearer“, използвайки кодовете от тази страница.",
|
||||
"docs": "Щракнете тук за достъп до пълната документация на ППИ",
|
||||
|
||||
"uid": "Потребителски ИД",
|
||||
"uid-help-text": "Посочете потребителски ИД, който да бъде свързан с този код. Ако ИД е <code>0</code>, това ще се счита за <em>главен</em> код, който може да приема идентичността на всеки от другите потребители чрез параметъра <code>_uid</code>",
|
||||
"description": "Описание",
|
||||
"no-description": "Няма описание.",
|
||||
"token-on-save": "Кодът ще бъде създаден след като данните бъдат запазени"
|
||||
}
|
||||
@@ -5,7 +5,8 @@
|
||||
"disable-editing-help": "Това ограничение не засяга администраторите и глобалните модератори",
|
||||
"max-length": "Максимална дължина на съобщенията в разговорите",
|
||||
"max-room-size": "Максимален брой потребители в стая за разговор",
|
||||
"delay": "Време между съобщеният в разговорите (в милисекунди)",
|
||||
"delay": "Време между съобщенията в разговорите (в милисекунди)",
|
||||
"notification-delay": "Забавяне преди известяване за съобщения в разговорите. (0 – без забавяне)",
|
||||
"restrictions.seconds-edit-after": "Брой секунди, през които съобщенията в разговор могат да бъдат редактирани. (0 = изключено)",
|
||||
"restrictions.seconds-delete-after": "Брой секунди, през които съобщенията в разговор могат да бъдат изтривани. (0 = изключено)"
|
||||
}
|
||||
@@ -8,5 +8,6 @@
|
||||
"consent.blank-localised-default": "Оставете това празно, за да използвате данните по подразбиране на NodeBB, които са преведени",
|
||||
"settings": "Настройки",
|
||||
"cookie-domain": "Домейн на бисквитката за сесията",
|
||||
"max-user-sessions": "Максимален брой активни сесии за потребител",
|
||||
"blank-default": "Оставете празно, за да използвате стойността по подразбиране"
|
||||
}
|
||||
@@ -4,10 +4,7 @@
|
||||
"address-help": "Следният адрес на е-поща е този, който получателят ще види в полетата „От“ и “Отговор до“.",
|
||||
"from": "Име за полето „От“",
|
||||
"from-help": "Името на изпращача, което да бъде показано в е-писмото.",
|
||||
"sendmail-rate-limit": "Изпращане на <em>X</em> е-писма…",
|
||||
"sendmail-rate-delta": "…на всеки <em>X</em> милисекунди",
|
||||
"sendmail-rate-help": "Задава на програмата за изпращане на е-писма на NodeBB да ограничи броя едновременно изпращани съобщения, за да не се претоварват пощенските сървъри. Тези настройки не се вземат предвид, ако е включена настройката „Транспорт чрез SMTP“ (по-долу).",
|
||||
|
||||
|
||||
"smtp-transport": "Транспорт чрез SMTP",
|
||||
"smtp-transport.enabled": "Използване на външен сървър за е-поща за изпращане на е-писма",
|
||||
"smtp-transport-help": "Можете да изберете от списък от познати услуги, или да въведете такава ръчно.",
|
||||
@@ -25,6 +22,8 @@
|
||||
"smtp-transport.username": "Потребителско име",
|
||||
"smtp-transport.username-help": "<b>За услугата на Gmail</b>, въведете пълния адрес на е-пощата тук, особено ако използвате управляван домейн на „Google Apps“.",
|
||||
"smtp-transport.password": "Парола",
|
||||
"smtp-transport.pool": "Включване на групираните връзки",
|
||||
"smtp-transport.pool-help": "Групирането на връзките предотвратява създаването на нова връзка за всяко е-писмо. Тази настройка има ефект, само ако е включено „Транспорт чрез SMTP“.",
|
||||
|
||||
"template": "Редактирана не шаблона за е-писма",
|
||||
"template.select": "Изберете шаблон за е-писма",
|
||||
|
||||
@@ -27,9 +27,12 @@
|
||||
"log.alt-text-placeholder": "Алтернативен текст за достъпност",
|
||||
"favicon": "Иконка на уеб сайта",
|
||||
"favicon.upload": "Качване",
|
||||
"touch-icon": "Иконка за начален екран (мобилно устройство)",
|
||||
"pwa": "Прогресивно уеб-приложение",
|
||||
"touch-icon": "Иконка за сензорен екран",
|
||||
"touch-icon.upload": "Качване",
|
||||
"touch-icon.help": "Препоръчителен размер и формат: 192x192, само във формат „PNG“. Ако не е посочена иконка за начален екран на мобилно устройство, NodeBB ще използва иконката на уеб сайта.",
|
||||
"touch-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена иконка за сензорен екран, NodeBB ще използва иконката на уеб сайта.",
|
||||
"maskable-icon": "Маскируема иконка (за начален екран)",
|
||||
"maskable-icon.help": "Препоръчителен размер и формат: 512x512, само във формат „PNG“. Ако не е посочена маскируема иконка, NodeBB ще използва иконката за сензорен екран.",
|
||||
"outgoing-links": "Изходящи връзки",
|
||||
"outgoing-links.warning-page": "Показване на предупредителна страница при щракване върху външни връзки",
|
||||
"search-default-sort-by": "Подредба по подразбиране при търсене",
|
||||
@@ -38,4 +41,4 @@
|
||||
"theme-color": "Цвят на темата",
|
||||
"background-color": "Фонов цвят",
|
||||
"background-color-help": "Цвят, който да се използва като фон за началния екран, когато уеб сайтът е инсталиран като приложение"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"handles": "Имена за гостите",
|
||||
"handles.enabled": "Позволяване на имената за гостите",
|
||||
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“."
|
||||
"handles.enabled-help": "Тази възможност предоставя ново поле, което позволява на гостите да си изберат име, което да се използва за всяка публикация, която правят. Ако е изключено, всички те просто ще имат името „Гост“.",
|
||||
"topic-views": "Преглеждания на темите",
|
||||
"topic-views.enabled": "Гостите да допринасят за броя на преглеждания на темите"
|
||||
}
|
||||
@@ -34,6 +34,8 @@
|
||||
"timestamp.cut-off-help": "Датите и времената ще бъдат показвани относително (напр. „преди 3 часа“ или „преди 5 дни“), и преведени на множество\n\\t\\t\\t\\t\\tезици. След определено време, този текст ще започне да показва самите дата и час, според езика на потребителя\n\\t\\t\\t\\t\\t(напр. „5 ноември 2016 15:30“).<br /><em>(По подразбиране: <code>30</code>, тоест един месец). Ако зададете 0, винаги ще се изписват дати, а ако оставите полето празно, времето ще бъде винаги относително.</em>",
|
||||
"timestamp.necro-threshold": "Мъртва граница (в дни)",
|
||||
"timestamp.necro-threshold-help": "Между публикациите ще бъде показано съобщение, ако времето между тях е по-дълго от мъртвата граница. (По подразбиране: <code>7</code>, или една седмица). Задайте 0 за изключване.</em>",
|
||||
"timestamp.topic-views-interval": "Интервал за увеличаване на броя на преглеждания на темите (в минути)",
|
||||
"timestamp.topic-views-interval-help": "Броят на преглеждания на темите ще се увеличава веднъж на всеки Х минути, според тази настройка.",
|
||||
"teaser": "Представителна публикация",
|
||||
"teaser.last-post": "Последната – Показване на последната публикация, или първоначалната такава, ако няма отговори.",
|
||||
"teaser.last-reply": "Последната – Показване на последния отговор, или „Няма отговори“, ако все още няма такива.",
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
"reset.notify.text1": "Известяваме Ви, че на %1, Вашата парола беше променена успешно.",
|
||||
"reset.notify.text2": "Ако не сте поискали това, моля, свържете се незабавно с администратор.",
|
||||
"digest.latest_topics": "Последни теми от %1",
|
||||
"digest.top-topics": "Най-интересните теми от %1",
|
||||
"digest.popular-topics": "Популярни теми от %1",
|
||||
"digest.cta": "Натиснете тук, за да посетите %1",
|
||||
"digest.unsub.info": "Това резюме беше изпратено до Вас поради настройките Ви за абонаментите.",
|
||||
"digest.day": "ден",
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"invalid-pagination-value": "Грешен номер на странициране, трябва да бъде между %1 и %2",
|
||||
"username-taken": "Потребителското име е заето",
|
||||
"email-taken": "Е-пощата е заета",
|
||||
"email-invited": "На тази е-поща вече е била изпратена покана",
|
||||
"email-not-confirmed": "Няма да можете да публикувате съобщения, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-chat": "Няма да можете да пишете в разговори, докато е-пощата Ви не бъде потвърдена. Моля, натиснете тук, за да потвърдите е-пощата си.",
|
||||
"email-not-confirmed-email-sent": "Вашата е-поща все още не е потвърдена. Моля, проверете входящата си кутия за писмото за потвърждение. Няма да можете да публикувате съобщения или да пишете в разговори, докато е-пощата Ви не бъде потвърдена.",
|
||||
@@ -162,10 +163,12 @@
|
||||
"invalid-session-text": "Изглежда сесията Ви на вписване вече е изтекла или не съответства на сървъра. Моля, опреснете страницата.",
|
||||
"no-topics-selected": "Няма избрани теми!",
|
||||
"cant-move-to-same-topic": "Публикацията не може да бъде преместена в същата тема!",
|
||||
"cant-move-topic-to-same-category": "Темата не може да бъде преместена в същата категория!",
|
||||
"cannot-block-self": "Не можете да блокирате себе си!",
|
||||
"cannot-block-privileged": "Не можете да блокирате администратори и глобални модератори",
|
||||
"cannot-block-guest": "Гостите не могат да блокират други потребители",
|
||||
"already-blocked": "Този потребител вече е блокиран",
|
||||
"already-unblocked": "Този потребител вече е отблокиран",
|
||||
"no-connection": "Изглежда има проблем с връзката Ви с Интернет"
|
||||
"no-connection": "Изглежда има проблем с връзката Ви с Интернет",
|
||||
"plugin-not-whitelisted": "Добавката не може да бъде инсталирана – само добавки, одобрени от пакетния мениджър на NodeBB могат да бъдат инсталирани чрез ACP"
|
||||
}
|
||||
@@ -57,10 +57,15 @@
|
||||
"state-rejected": "Отхвърлен",
|
||||
"no-assignee": "Без назначение",
|
||||
|
||||
"sort": "Sort by",
|
||||
"sort-newest": "Newest first",
|
||||
"sort-oldest": "Oldest first",
|
||||
"sort-reports": "Most reports",
|
||||
"sort": "Подреждане по",
|
||||
"sort-newest": "Първо най-новите",
|
||||
"sort-oldest": "Първо най-старите",
|
||||
"sort-reports": "Първо тези с най-много доклади",
|
||||
"sort-all": "Всички видове доклади…",
|
||||
"sort-posts-only": "Само публикации…",
|
||||
"sort-downvotes": "Най-много отрицателни гласове",
|
||||
"sort-upvotes": "Най-много положителни гласове",
|
||||
"sort-replies": "Най-много отговори",
|
||||
|
||||
"modal-title": "Докладване на неуместно съдържание",
|
||||
"modal-body": "Моля, посочете причината за докладването на %1 %2 за преглед. Или използвайте някой от бутоните за бързо докладване, ако са приложими.",
|
||||
@@ -72,5 +77,9 @@
|
||||
"modal-submit-success": "Съдържанието беше докладвано на модераторите.",
|
||||
"modal-submit-confirm": "Потвърждаване на докладването",
|
||||
"modal-submit-confirm-text": "Вече сте описали специалната си причина. Наистина ли искате да изпратите доклада си по бързата процедура?",
|
||||
"modal-submit-confirm-text-help": "Изпращането на доклад по бързата процедура ще премахне описаната от Вас специалната причина."
|
||||
"modal-submit-confirm-text-help": "Изпращането на доклад по бързата процедура ще премахне описаната от Вас специалната причина.",
|
||||
|
||||
"bulk-actions": "Групови действия",
|
||||
"bulk-resolve": "Разрешаване на доклад(и)",
|
||||
"bulk-success": "%1 доклада са обновени"
|
||||
}
|
||||
@@ -52,14 +52,17 @@
|
||||
"users": "Потребители",
|
||||
"topics": "Теми",
|
||||
"posts": "Публ.",
|
||||
"x-posts": "%1 публикации",
|
||||
"best": "Най-добри",
|
||||
"votes": "Гласове",
|
||||
"x-votes": "%1 гласа",
|
||||
"voters": "Гласували",
|
||||
"upvoters": "Гласували положително",
|
||||
"upvoted": "С положителни гласове",
|
||||
"downvoters": "Гласували отрицателно",
|
||||
"downvoted": "С отрицателни гласове",
|
||||
"views": "Прегл.",
|
||||
"posters": "Участници",
|
||||
"reputation": "Репутация",
|
||||
"lastpost": "Последна публикация",
|
||||
"firstpost": "Първа публикация",
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"wrong_reset_code.message": "Полученият код за подновяване беше грешен. Моля, опитайте отново или <a href=\"/reset\">поискайте нов код за подновяване</a>.",
|
||||
"new_password": "Нова парола",
|
||||
"repeat_password": "Потвърдете паролата",
|
||||
"changing_password": "Промяна на паролата…",
|
||||
"enter_email": "Моля, въведете <strong>адреса на е-пощата си</strong> и ще Ви изпратим е-писмо с инструкции за това как да достъпите акаунта си.",
|
||||
"enter_email_address": "Въведете адрес на е-поща",
|
||||
"password_reset_sent": "Ако посоченият адрес съответства на съществуващ потребителски акаунт, то вече му е изпратено е-писмо за подновяване на паролата. Имайте предвид, че може да бъде изпращано само по едно е-писмо на минута.",
|
||||
|
||||
@@ -44,5 +44,6 @@
|
||||
"search-preferences-saved": "Предпочитанията за търсене бяха запазени",
|
||||
"search-preferences-cleared": "Предпочитанията за търсене бяха изчистени",
|
||||
"show-results-as": "Показване на резултатите като",
|
||||
"see-more-results": "Показване на още резултати (%1)"
|
||||
"see-more-results": "Показване на още резултати (%1)",
|
||||
"search-in-category": "Търсене в „%1“"
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
{
|
||||
"topic": "Тема",
|
||||
"topic_id": "Ид. на темата",
|
||||
"topic_id_placeholder": "Въведете ид. на тема",
|
||||
"no_topics_found": "Няма намерени теми!",
|
||||
"no_posts_found": "Няма намерени публикации!",
|
||||
"post_is_deleted": "Публикацията е изтрита!",
|
||||
@@ -81,7 +79,12 @@
|
||||
"thread_tools.purge_confirm": "Наистина ли искате да изчистите тази тема?",
|
||||
"thread_tools.merge_topics": "Сливане на темите",
|
||||
"thread_tools.merge": "Сливане",
|
||||
"topic_move_success": "Темата беше преместена успешно в %1",
|
||||
"topic_move_success": "Темата ще бъде преместена в „%1“ след малко. Натиснете тук, за да отмените преместването.",
|
||||
"topic_move_multiple_success": "Темите ще бъдат преместени в „%1“ след малко. Натиснете тук, за да отмените преместването.",
|
||||
"topic_move_all_success": "Всички теми ще бъдат преместени в „%1“ след малко. Натиснете тук, за да отмените преместването.",
|
||||
"topic_move_undone": "Преместването на темата беше отменено",
|
||||
"topic_move_posts_success": "Публикациите ще бъдат преместени след малко. Натиснете тук, за да отмените преместването.",
|
||||
"topic_move_posts_undone": "Преместването на публикациите беше отменено",
|
||||
"post_delete_confirm": "Наистина ли искате да изтриете тази публикация?",
|
||||
"post_restore_confirm": "Наистина ли искате да възстановите тази публикация?",
|
||||
"post_purge_confirm": "Наистина ли искате да изчистите тази публикация?",
|
||||
@@ -99,6 +102,9 @@
|
||||
"fork_topic": "Разделяне на темата",
|
||||
"fork_topic_instruction": "Натиснете публикациите, които искате да отделите",
|
||||
"fork_no_pids": "Няма избрани публикации!",
|
||||
"no-posts-selected": "Няма избрани публикации!",
|
||||
"x-posts-selected": "Избрани публикации: %1",
|
||||
"x-posts-will-be-moved-to-y": "%1 публикации ще бъдат преместени в „%2“",
|
||||
"fork_pid_count": "Избрани публикации: %1",
|
||||
"fork_success": "Темата е разделена успешно! Натиснете тук, за да преминете към отделената тема.",
|
||||
"delete_posts_instruction": "Натиснете публикациите, които искате да изтриете/изчистите",
|
||||
@@ -107,7 +113,7 @@
|
||||
"merge-options": "Настройки за сливането",
|
||||
"merge-select-main-topic": "Изберете основната тема",
|
||||
"merge-new-title-for-topic": "Ново заглавие за темата",
|
||||
"move_posts_instruction": "Натиснете публикациите, които искате да преместите",
|
||||
"move_posts_instruction": "Натиснете публикациите, които искате да преместите, а след това идете в желаната тема и натиснете „Преместване“.",
|
||||
"change_owner_instruction": "Натиснете публикациите, които искате да прехвърлите на друг потребител",
|
||||
"composer.title_placeholder": "Въведете заглавието на темата си тук...",
|
||||
"composer.handle_placeholder": "Въведете името тук",
|
||||
|
||||
@@ -111,12 +111,7 @@
|
||||
"posts_per_page": "Публикации на страница",
|
||||
"max_items_per_page": "Най-много %1",
|
||||
"acp_language": "Език на администраторската страница",
|
||||
"notification_sounds": "Изпълняване на звук, когато получите известие",
|
||||
"notifications_and_sounds": "Известия и звуци",
|
||||
"incoming-message-sound": "Звук за входящо съобщение",
|
||||
"outgoing-message-sound": "Звук за изходящо съобщение",
|
||||
"notification-sound": "Звук за известие",
|
||||
"no-sound": "Без звук",
|
||||
"notifications": "Известия",
|
||||
"upvote-notif-freq": "Честота на известията за положителни гласове",
|
||||
"upvote-notif-freq.all": "Всички положителни гласове",
|
||||
"upvote-notif-freq.first": "При първия за публикация",
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
{
|
||||
"post-cache": "Post Cache",
|
||||
"posts-in-cache": "Posts in Cache",
|
||||
"average-post-size": "Average Post Size",
|
||||
"length-to-max": "Length / Max",
|
||||
"percent-full": "%1% Full",
|
||||
"post-cache-size": "Post Cache Size",
|
||||
"items-in-cache": "Items in Cache",
|
||||
"control-panel": "Control Panel",
|
||||
"update-settings": "Update Cache Settings"
|
||||
"items-in-cache": "Items in Cache"
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"trending": "Trending",
|
||||
"installed": "Installed",
|
||||
"active": "Active",
|
||||
"inactive": "Inactive",
|
||||
|
||||
@@ -48,5 +48,6 @@
|
||||
"alert.confirm-copyToAllGroup": "Are you sure you wish to apply this group's privilege set to <strong>all categories</strong>?",
|
||||
"alert.confirm-copyToChildren": "Are you sure you wish to apply this privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.confirm-copyToChildrenGroup": "Are you sure you wish to apply this group's privilege set to <strong>all descendant (child) categories</strong>?",
|
||||
"alert.no-undo": "<em>This action cannot be undone.</em>"
|
||||
"alert.no-undo": "<em>This action cannot be undone.</em>",
|
||||
"alert.admin-warning": "Administrators implicitly get all privileges"
|
||||
}
|
||||
@@ -20,16 +20,10 @@
|
||||
"add-group": "Add Group",
|
||||
"invite": "Invite",
|
||||
"new": "New User",
|
||||
|
||||
"pills.latest": "Latest Users",
|
||||
"filter-by": "Filter by",
|
||||
"pills.unvalidated": "Not Validated",
|
||||
"pills.no-posts": "No Posts",
|
||||
"pills.top-posters": "Top Posters",
|
||||
"pills.top-rep": "Most Reputation",
|
||||
"pills.inactive": "Inactive",
|
||||
"pills.flagged": "Most Flagged",
|
||||
"pills.validated": "Validated",
|
||||
"pills.banned": "Banned",
|
||||
"pills.search": "User Search",
|
||||
|
||||
"50-per-page": "50 per page",
|
||||
"100-per-page": "100 per page",
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
"logout": "Log out",
|
||||
"view-forum": "View Forum",
|
||||
|
||||
"search.placeholder": "Search for settings",
|
||||
"search.placeholder": "Press "/" to search for settings",
|
||||
"search.no-results": "No results...",
|
||||
"search.search-forum": "Search the forum for <strong></strong>",
|
||||
"search.keep-typing": "Type more to see results...",
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
"maintenance-mode.message": "Maintenance Message",
|
||||
"headers": "Headers",
|
||||
"headers.allow-from": "Set ALLOW-FROM to Place NodeBB in an iFrame",
|
||||
"headers.csp-frame-ancestors": "Set Content-Security-Policy frame-ancestors header to Place NodeBB in an iFrame",
|
||||
"headers.csp-frame-ancestors-help": "'none', 'self'(default) or list of URIs to allow.",
|
||||
"headers.powered-by": "Customise the \"Powered By\" header sent by NodeBB",
|
||||
"headers.acao": "Access-Control-Allow-Origin",
|
||||
"headers.acao-regex": "Access-Control-Allow-Origin Regular Expression",
|
||||
@@ -30,5 +32,12 @@
|
||||
"sockets.settings": "WebSocket Settings",
|
||||
"sockets.max-attempts": "Max Reconnection Attempts",
|
||||
"sockets.default-placeholder": "Default: %1",
|
||||
"sockets.delay": "Reconnection Delay"
|
||||
"sockets.delay": "Reconnection Delay",
|
||||
|
||||
"analytics.settings": "Analytics Settings",
|
||||
"analytics.max-cache": "Analytics Cache Max Value",
|
||||
"analytics.max-cache-help": "On high-traffic installs, the cache could be exhausted continuously if there are more concurrent active users than the Max Cache value. (Restart required)",
|
||||
"compression.settings": "Compression Settings",
|
||||
"compression.enable": "Enable Compression",
|
||||
"compression.help": "This setting enables gzip compression. For a high-traffic website in production, the best way to put compression in place is to implement it at a reverse proxy level. You can enable it here for testing purposes."
|
||||
}
|
||||
12
public/language/bn/admin/settings/api.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"tokens": "Tokens",
|
||||
"lead-text": "From this page you can configure access to the Write API in NodeBB.",
|
||||
"intro": "By default, the Write API authenticates users based on their session cookie, but NodeBB also supports Bearer authentication via tokens generated via this page.",
|
||||
"docs": "Click here to access the full API specification",
|
||||
|
||||
"uid": "User ID",
|
||||
"uid-help-text": "Specify a User ID to associate with this token. If the user ID is <code>0</code>, it will be considered a <em>master</em> token, which can assume the identity of other users based on the <code>_uid</code> parameter",
|
||||
"description": "Description",
|
||||
"no-description": "No description specified.",
|
||||
"token-on-save": "Token will be generated once form is saved"
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
"max-length": "Maximum length of chat messages",
|
||||
"max-room-size": "Maximum number of users in chat rooms",
|
||||
"delay": "Time between chat messages in milliseconds",
|
||||
"notification-delay": "Notification delay for chat messages. (0 for no delay)",
|
||||
"restrictions.seconds-edit-after": "Number of seconds a chat message will remain editable. (0 disabled)",
|
||||
"restrictions.seconds-delete-after": "Number of seconds a chat message will remain deletable. (0 disabled)"
|
||||
}
|
||||
@@ -8,5 +8,6 @@
|
||||
"consent.blank-localised-default": "Leave blank to use NodeBB localised defaults",
|
||||
"settings": "Settings",
|
||||
"cookie-domain": "Session cookie domain",
|
||||
"max-user-sessions": "Max active sessions per user",
|
||||
"blank-default": "Leave blank for default"
|
||||
}
|
||||
@@ -4,10 +4,7 @@
|
||||
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
||||
"from": "From Name",
|
||||
"from-help": "The from name to display in the email.",
|
||||
"sendmail-rate-limit": "<em>X</em> ইমেইল পাঠাও... ",
|
||||
"sendmail-rate-delta": "... প্রতি<em>X</em> মিলিসেকেন্ডে",
|
||||
"sendmail-rate-help": "NodeBB মেইলার কে নির্দেশ দিন যে একবারে পাঠানো মেইলের সংখ্যা সিমিত রাখতে যাতে ইমেইল গ্রাহক সার্ভিস ওভারলোডেড না হয়ে যায়। এই অপশন কার্যকর হবে না যদি SMTP Transport চালু থাকে (নিচে দেখুন)। ",
|
||||
|
||||
|
||||
"smtp-transport": "SMTP Transport",
|
||||
"smtp-transport.enabled": "Use an external email server to send emails",
|
||||
"smtp-transport-help": "You can select from a list of well-known services or enter a custom one.",
|
||||
@@ -25,6 +22,8 @@
|
||||
"smtp-transport.username": "Username",
|
||||
"smtp-transport.username-help": "<b>For the Gmail service,</b> enter the full email address here, especially if you are using a Google Apps managed domain.",
|
||||
"smtp-transport.password": "Password",
|
||||
"smtp-transport.pool": "Enable pooled connections",
|
||||
"smtp-transport.pool-help": "Pooling connections prevents NodeBB from creating a new connection for every email. This option only applies if SMTP Transport is enabled.",
|
||||
|
||||
"template": "Edit Email Template",
|
||||
"template.select": "Select Email Template",
|
||||
|
||||
@@ -27,9 +27,12 @@
|
||||
"log.alt-text-placeholder": "Alternative text for accessibility",
|
||||
"favicon": "Favicon",
|
||||
"favicon.upload": "Upload",
|
||||
"touch-icon": "Homescreen/Touch Icon",
|
||||
"pwa": "Progressive Web App",
|
||||
"touch-icon": "Touch Icon",
|
||||
"touch-icon.upload": "Upload",
|
||||
"touch-icon.help": "Recommended size and format: 192x192, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
|
||||
"touch-icon.help": "Recommended size and format: 512x512, PNG format only. If no touch icon is specified, NodeBB will fall back to using the favicon.",
|
||||
"maskable-icon": "Maskable (Homescreen) Icon",
|
||||
"maskable-icon.help": "Recommended size and format: 512x512, PNG format only. If no maskable icon is specified, NodeBB will fall back to the Touch Icon.",
|
||||
"outgoing-links": "Outgoing Links",
|
||||
"outgoing-links.warning-page": "Use Outgoing Links Warning Page",
|
||||
"search-default-sort-by": "Search default sort by",
|
||||
@@ -38,4 +41,4 @@
|
||||
"theme-color": "Theme Color",
|
||||
"background-color": "Background Color",
|
||||
"background-color-help": "Color used for splash screen background when website is installed as a PWA"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
"handles": "Guest Handles",
|
||||
"handles.enabled": "Allow guest handles",
|
||||
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\""
|
||||
"handles.enabled-help": "This option exposes a new field that allows guests to pick a name to associate with each post they make. If disabled, they will simply be called \"Guest\"",
|
||||
"topic-views": "Topic views",
|
||||
"topic-views.enabled": "Allow guests to increase topic view counts"
|
||||
}
|
||||
@@ -34,6 +34,8 @@
|
||||
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
||||
"timestamp.necro-threshold": "Necro Threshold (in days)",
|
||||
"timestamp.necro-threshold-help": "A message will be shown between posts if the time between them is longer than the necro threshold. (Default: <code>7</code>, or one week). Set to 0 to disable.</em>",
|
||||
"timestamp.topic-views-interval": "Increment topic views interval (in minutes)",
|
||||
"timestamp.topic-views-interval-help": "Topic views will only increment once every X minutes as defined by this setting.",
|
||||
"teaser": "Teaser Post",
|
||||
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
||||
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
"reset.notify.text1": "আপনাকে জানাচ্ছি যে %1 এ আপনার পাসওয়ার্ড পরিবর্তন হয়েছে",
|
||||
"reset.notify.text2": "এটা আপনার অজান্তে হলে এখনই প্রশাসককে আবহিত করুন",
|
||||
"digest.latest_topics": "%1 এর সর্বশেষ টপিকসমূহ",
|
||||
"digest.top-topics": "Top topics from %1",
|
||||
"digest.popular-topics": "Popular topics from %1",
|
||||
"digest.cta": "%1 ভিজিট করতে এখানে ক্লিক করুন",
|
||||
"digest.unsub.info": "আপনার সাবস্ক্রীপশন সেটিংসের কারনে আপনাকে এই ডাইজেষ্টটি পাঠানো হয়েছে।",
|
||||
"digest.day": "দিন",
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"invalid-pagination-value": "Invalid pagination value, must be at least %1 and at most %2",
|
||||
"username-taken": "ইউজারনেম আগেই ব্যবহৃত",
|
||||
"email-taken": "ইমেইল আগেই ব্যবহৃত",
|
||||
"email-invited": "Email was already invited",
|
||||
"email-not-confirmed": "You are unable to post until your email is confirmed, please click here to confirm your email.",
|
||||
"email-not-confirmed-chat": "You are unable to chat until your email is confirmed, please click here to confirm your email.",
|
||||
"email-not-confirmed-email-sent": "Your email has not been confirmed yet, please check your inbox for the confirmation email. You won't be able to post or chat until your email is confirmed.",
|
||||
@@ -162,10 +163,12 @@
|
||||
"invalid-session-text": "It looks like your login session is no longer active, or no longer matches with the server. Please refresh this page.",
|
||||
"no-topics-selected": "No topics selected!",
|
||||
"cant-move-to-same-topic": "Can't move post to same topic!",
|
||||
"cant-move-topic-to-same-category": "Can't move topic to the same category!",
|
||||
"cannot-block-self": "You cannot block yourself!",
|
||||
"cannot-block-privileged": "You cannot block administrators or global moderators",
|
||||
"cannot-block-guest": "Guest are not able to block other users",
|
||||
"already-blocked": "This user is already blocked",
|
||||
"already-unblocked": "This user is already unblocked",
|
||||
"no-connection": "There seems to be a problem with your internet connection"
|
||||
"no-connection": "There seems to be a problem with your internet connection",
|
||||
"plugin-not-whitelisted": "Unable to install plugin – only plugins whitelisted by the NodeBB Package Manager can be installed via the ACP"
|
||||
}
|
||||
@@ -61,6 +61,11 @@
|
||||
"sort-newest": "Newest first",
|
||||
"sort-oldest": "Oldest first",
|
||||
"sort-reports": "Most reports",
|
||||
"sort-all": "All flag types...",
|
||||
"sort-posts-only": "Posts only...",
|
||||
"sort-downvotes": "Most downvotes",
|
||||
"sort-upvotes": "Most upvotes",
|
||||
"sort-replies": "Most replies",
|
||||
|
||||
"modal-title": "Report Inappropriate Content",
|
||||
"modal-body": "Please specify your reason for flagging %1 %2 for review. Alternatively, use one of the quick report buttons if applicable.",
|
||||
@@ -72,5 +77,9 @@
|
||||
"modal-submit-success": "Content has been flagged for moderation.",
|
||||
"modal-submit-confirm": "Confirm Submission",
|
||||
"modal-submit-confirm-text": "You have a custom reason specified already. Are you sure you wish to submit via quick-report?",
|
||||
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined."
|
||||
"modal-submit-confirm-text-help": "Submitting a quick report will overwrite any custom reasons defined.",
|
||||
|
||||
"bulk-actions": "Bulk Actions",
|
||||
"bulk-resolve": "Resolve Flag(s)",
|
||||
"bulk-success": "%1 flags updated"
|
||||
}
|
||||
@@ -52,14 +52,17 @@
|
||||
"users": "ব্যবহারকারীগণ",
|
||||
"topics": "টপিক",
|
||||
"posts": "পোস্টগুলি",
|
||||
"x-posts": "%1 posts",
|
||||
"best": "Best",
|
||||
"votes": "Votes",
|
||||
"x-votes": "%1 votes",
|
||||
"voters": "Voters",
|
||||
"upvoters": "Upvoters",
|
||||
"upvoted": "Upvoted",
|
||||
"downvoters": "Downvoters",
|
||||
"downvoted": "Downvoted",
|
||||
"views": "দেখেছেন",
|
||||
"posters": "Posters",
|
||||
"reputation": "সন্মাননা",
|
||||
"lastpost": "Last post",
|
||||
"firstpost": "First post",
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"wrong_reset_code.message": "প্রাপ্ত রিসেট কোডটি ভুল ছিল। আবার চেষ্টা করুন, অথবা <a href=\"/reset\">একটি নতুন রিসেট কোড</a> অনুরোধ করুন।",
|
||||
"new_password": "নতুন পাসওয়ার্ড",
|
||||
"repeat_password": "পাসওয়ার্ড নিশ্চিত করুন",
|
||||
"changing_password": "Changing Password",
|
||||
"enter_email": "অনুগ্রহপূর্বক আপনার ইমেইল এড্রেস প্রদান করুন, আমরা আপনাকে আপনার পাসওয়ার্ড রিসেট সম্পর্কিত তথ্যাবলী ইমেইলে পাঠিয়ে দিবো। ",
|
||||
"enter_email_address": "আপনার ইমেইল এড্রেস",
|
||||
"password_reset_sent": "If the specified address corresponds to an existing user account, a password reset email was sent. Please note that only one email will be sent per minute.",
|
||||
|
||||
@@ -44,5 +44,6 @@
|
||||
"search-preferences-saved": "Search preferences saved",
|
||||
"search-preferences-cleared": "Search preferences cleared",
|
||||
"show-results-as": "ফলাফল দেখানো হোক : ",
|
||||
"see-more-results": "See more results (%1)"
|
||||
"see-more-results": "See more results (%1)",
|
||||
"search-in-category": "Search in \"%1\""
|
||||
}
|
||||