mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-12-16 21:40:23 +01:00
Compare commits
710 Commits
socket-not
...
v3.0.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7eeadbc6e3 | ||
|
|
9a0e1010d9 | ||
|
|
4b0bfd3ec1 | ||
|
|
0349169879 | ||
|
|
d6ed1e0f1e | ||
|
|
bc23ae80cc | ||
|
|
e4446ae14a | ||
|
|
54505e7a47 | ||
|
|
5f4f45c44e | ||
|
|
c90284626f | ||
|
|
737973cca9 | ||
|
|
11ae661176 | ||
|
|
27a15e1247 | ||
|
|
2d773d5ea6 | ||
|
|
b82a0c7657 | ||
|
|
317eee9e18 | ||
|
|
9bcd85c2c6 | ||
|
|
f2649f4eec | ||
|
|
dfbaa1ba5f | ||
|
|
3216c36b53 | ||
|
|
d2c52d0e09 | ||
|
|
db5333bd6c | ||
|
|
657ab45b47 | ||
|
|
6411bd659d | ||
|
|
edbdef6814 | ||
|
|
9c0d75023a | ||
|
|
b78e22b677 | ||
|
|
23593fb2c6 | ||
|
|
d0ad183012 | ||
|
|
4a95129bf5 | ||
|
|
7dcf7906ba | ||
|
|
fc260aeab3 | ||
|
|
65886c580f | ||
|
|
fa044a5fbf | ||
|
|
6c8f45a59b | ||
|
|
02359e4d8e | ||
|
|
52a56ede0a | ||
|
|
b72d185211 | ||
|
|
f11e72410c | ||
|
|
9f13ed5338 | ||
|
|
09e1904eef | ||
|
|
e907344efc | ||
|
|
9797c1427b | ||
|
|
efa87e22c8 | ||
|
|
62401552d2 | ||
|
|
651925d84d | ||
|
|
fe710fcbd5 | ||
|
|
e6c9bdd97c | ||
|
|
d9e245b6db | ||
|
|
22e92ccf1c | ||
|
|
2da0c46344 | ||
|
|
8a54418c08 | ||
|
|
1322faa3bf | ||
|
|
2fde4ae3f7 | ||
|
|
25c66eb37c | ||
|
|
cdbfbc905b | ||
|
|
3e48fb331e | ||
|
|
cc1d216d1e | ||
|
|
8a0afd8683 | ||
|
|
fb54c7e8c0 | ||
|
|
b79627a8ed | ||
|
|
f13c4ace70 | ||
|
|
4a15b4ee51 | ||
|
|
1da13f254d | ||
|
|
e6f5f2c169 | ||
|
|
c6d9cbb7d2 | ||
|
|
92e4a36b0f | ||
|
|
fc4751d7c7 | ||
|
|
d04cb6f220 | ||
|
|
cd50c037b0 | ||
|
|
aca1c87b86 | ||
|
|
055a767817 | ||
|
|
ae2e0a440a | ||
|
|
dfabe7b523 | ||
|
|
8361da723b | ||
|
|
16679a1eff | ||
|
|
df54a99832 | ||
|
|
a302d68d9d | ||
|
|
8c3818b86e | ||
|
|
fccbbe3a1c | ||
|
|
f971271ebe | ||
|
|
000a585544 | ||
|
|
f0c57a330d | ||
|
|
778cbeee57 | ||
|
|
69597d6333 | ||
|
|
ae048e1289 | ||
|
|
602beabf0e | ||
|
|
95b2fdaf47 | ||
|
|
f28c25a08c | ||
|
|
dd58e061b9 | ||
|
|
586f40b82c | ||
|
|
259e316031 | ||
|
|
0265243e0b | ||
|
|
9a479526cc | ||
|
|
ca6642d1b7 | ||
|
|
1dcb8c2f29 | ||
|
|
69bfabb917 | ||
|
|
1ceb4f10fd | ||
|
|
b9ca9421d2 | ||
|
|
625606e343 | ||
|
|
af579f9f8e | ||
|
|
bff1bb6d07 | ||
|
|
7919d1521f | ||
|
|
3df39d4dfc | ||
|
|
e53f3aeee9 | ||
|
|
f8812fd5ff | ||
|
|
683a7258df | ||
|
|
b28947c5bc | ||
|
|
75359839f7 | ||
|
|
2ae3f1e4ae | ||
|
|
2c0ecb05bd | ||
|
|
3db58f51ab | ||
|
|
bb5d8ea851 | ||
|
|
a2cbd5d3c4 | ||
|
|
77cf5661d7 | ||
|
|
768d8d3364 | ||
|
|
a949795c3b | ||
|
|
cef83f7938 | ||
|
|
0d2d205759 | ||
|
|
1dbe9f5866 | ||
|
|
4dd32bf183 | ||
|
|
1ea62018e0 | ||
|
|
8e1aab1236 | ||
|
|
90adf7d726 | ||
|
|
46b38e45a5 | ||
|
|
1f60f7a0c0 | ||
|
|
11e002cbb8 | ||
|
|
f9b1422247 | ||
|
|
93c41911c4 | ||
|
|
1e11484491 | ||
|
|
fa7f07dfce | ||
|
|
e37d99a990 | ||
|
|
434472a3bd | ||
|
|
aad300d38f | ||
|
|
ddda84b3d6 | ||
|
|
9b06d41564 | ||
|
|
898bc0e328 | ||
|
|
6ac7eda282 | ||
|
|
f4e533d944 | ||
|
|
f66505c903 | ||
|
|
4498c0d28f | ||
|
|
00a0ffd3f2 | ||
|
|
bad0eef089 | ||
|
|
b4fbb49eaf | ||
|
|
b159c52051 | ||
|
|
efd487e3ad | ||
|
|
0d7f829b9f | ||
|
|
de25455f8b | ||
|
|
0bacc21bea | ||
|
|
825e8fa28e | ||
|
|
c05083e501 | ||
|
|
801c34aadc | ||
|
|
d77e74d9ef | ||
|
|
524c403122 | ||
|
|
06a852a980 | ||
|
|
258a212cdb | ||
|
|
e84ab691c2 | ||
|
|
6496f50b26 | ||
|
|
947af68267 | ||
|
|
bd1846aab8 | ||
|
|
651aad8647 | ||
|
|
d6f13a4ded | ||
|
|
11add45b9d | ||
|
|
99426364bb | ||
|
|
f706de3bcf | ||
|
|
5d2a498cb2 | ||
|
|
baee17a8d6 | ||
|
|
4188d33e27 | ||
|
|
2b2a2c5bae | ||
|
|
296b8d4b2f | ||
|
|
4a17ce7de4 | ||
|
|
28771d5c88 | ||
|
|
bb35329dea | ||
|
|
9fa498fa4a | ||
|
|
72fb61d321 | ||
|
|
e3aed8245f | ||
|
|
96c00f005d | ||
|
|
b56a772ec2 | ||
|
|
c9b8e345e0 | ||
|
|
cc746e206a | ||
|
|
08ad2e127a | ||
|
|
2ee5b5bbf4 | ||
|
|
86c20e4d7c | ||
|
|
42144f0df2 | ||
|
|
3e430d8a46 | ||
|
|
3ff12a131c | ||
|
|
44ea9da022 | ||
|
|
839d05bc95 | ||
|
|
f8eef75daf | ||
|
|
c115d93156 | ||
|
|
dee3b0d4c5 | ||
|
|
f2ae45838e | ||
|
|
3d287c1e0c | ||
|
|
df66f71cfc | ||
|
|
ad2236d77c | ||
|
|
8a068f1a11 | ||
|
|
eede77c2e7 | ||
|
|
8f7e283db1 | ||
|
|
9288de34e0 | ||
|
|
ce868c953d | ||
|
|
a7562e92d5 | ||
|
|
f5499fa3d1 | ||
|
|
3e4bf255a0 | ||
|
|
7571139ee2 | ||
|
|
2bc3cf1aa9 | ||
|
|
5b8cf54b50 | ||
|
|
19ce616af9 | ||
|
|
edf065c59e | ||
|
|
18fde39f20 | ||
|
|
b79471147c | ||
|
|
c01627409c | ||
|
|
2373587ab1 | ||
|
|
9150528c71 | ||
|
|
5085e97e20 | ||
|
|
29a072c24c | ||
|
|
0f214b5078 | ||
|
|
43c4877a82 | ||
|
|
5235903bda | ||
|
|
9d8db9390a | ||
|
|
46f2c43824 | ||
|
|
6a086d90b4 | ||
|
|
1cab556f6c | ||
|
|
0c3b8904b8 | ||
|
|
96922aadc2 | ||
|
|
21ac35465d | ||
|
|
1004a4b460 | ||
|
|
7e89bb035f | ||
|
|
a6090735bc | ||
|
|
bc3637964c | ||
|
|
61bab38b2b | ||
|
|
cdf31b7472 | ||
|
|
e4980c8e1b | ||
|
|
e1a8941e79 | ||
|
|
6e85ef0b89 | ||
|
|
e324ba8bd7 | ||
|
|
38bf81baed | ||
|
|
2289f37a4b | ||
|
|
bd679499dc | ||
|
|
bd13561cf4 | ||
|
|
6d6c5fb1f8 | ||
|
|
68f66223e7 | ||
|
|
938496448e | ||
|
|
3a6deec626 | ||
|
|
bebba646a8 | ||
|
|
5fe84d95b1 | ||
|
|
bc6ca2f31f | ||
|
|
3d46d81b75 | ||
|
|
72f235a4db | ||
|
|
f9ded81ef4 | ||
|
|
87005c3e74 | ||
|
|
0a759b9ca9 | ||
|
|
d93ef486c6 | ||
|
|
f77f72f9a0 | ||
|
|
f3d8ff994b | ||
|
|
d1f165d520 | ||
|
|
a86e912997 | ||
|
|
0c9fdf581f | ||
|
|
b1fdc9547e | ||
|
|
2cbf2cc4ec | ||
|
|
bc92528061 | ||
|
|
52ead114be | ||
|
|
0e3f6edcc5 | ||
|
|
231e7a5fac | ||
|
|
d41406ddfe | ||
|
|
dea6ed6f00 | ||
|
|
845bc8148f | ||
|
|
9032383070 | ||
|
|
0a7382f6c8 | ||
|
|
d26031af6a | ||
|
|
e94789157b | ||
|
|
363e2e3efc | ||
|
|
1348850c3e | ||
|
|
cbb875c732 | ||
|
|
bd82ecf5ba | ||
|
|
bb64e7da66 | ||
|
|
30b2bf8d7b | ||
|
|
1d2f2f938e | ||
|
|
0143c4f178 | ||
|
|
42a748d5e3 | ||
|
|
804e111849 | ||
|
|
0362bff6ae | ||
|
|
f3e8f9b25f | ||
|
|
964d807de6 | ||
|
|
e02f421613 | ||
|
|
da26a297d7 | ||
|
|
e282d46322 | ||
|
|
bb45abac87 | ||
|
|
c0040ea7aa | ||
|
|
5c4d61af8f | ||
|
|
facdbbc7a3 | ||
|
|
d2dae19a54 | ||
|
|
2a89f3d597 | ||
|
|
b537ba587b | ||
|
|
4164d51e08 | ||
|
|
1d7baf1217 | ||
|
|
0cdc9d42cd | ||
|
|
388a8270c9 | ||
|
|
5aea76e330 | ||
|
|
6bb4426c94 | ||
|
|
d3d831e31b | ||
|
|
2658bcc821 | ||
|
|
423a44e18e | ||
|
|
e15642ef31 | ||
|
|
4931b1f636 | ||
|
|
5991727f42 | ||
|
|
32cad6dc82 | ||
|
|
8036baf86a | ||
|
|
3e7633e791 | ||
|
|
b62478bc56 | ||
|
|
8a8b51914d | ||
|
|
d6a8c1b71c | ||
|
|
1a0b784c55 | ||
|
|
b1590f28a2 | ||
|
|
53ea1867ab | ||
|
|
9d72f4509d | ||
|
|
58eccfcf79 | ||
|
|
60d5378c6f | ||
|
|
105d2d73ba | ||
|
|
f07d1cdd24 | ||
|
|
890bf73985 | ||
|
|
63bc8bfd57 | ||
|
|
15a162ce07 | ||
|
|
a4bfbd1c2a | ||
|
|
f35cbe8a71 | ||
|
|
cfbe242a0b | ||
|
|
c7c1ff6bea | ||
|
|
8deb1ba4b4 | ||
|
|
95ded24558 | ||
|
|
66e8937692 | ||
|
|
83ee650d96 | ||
|
|
3efad2e13b | ||
|
|
71743affc3 | ||
|
|
cf7aa19419 | ||
|
|
bb69f304c2 | ||
|
|
dd3e2c0d96 | ||
|
|
d190bf41e0 | ||
|
|
6e86b4afa2 | ||
|
|
8f5bb18ee5 | ||
|
|
69a285fa2c | ||
|
|
f5e609ae6a | ||
|
|
d1087106e4 | ||
|
|
2144650dd5 | ||
|
|
9b2567d517 | ||
|
|
57bfb37c55 | ||
|
|
88fc073485 | ||
|
|
81a4ee18c8 | ||
|
|
c4e2b4e87f | ||
|
|
0a9b1622cc | ||
|
|
00aef13dd3 | ||
|
|
35b5ae195f | ||
|
|
d814b3325e | ||
|
|
ac1f3c314b | ||
|
|
9b3616b103 | ||
|
|
b2a59900e3 | ||
|
|
bf05d3527b | ||
|
|
940770bb9b | ||
|
|
0f7c9a7919 | ||
|
|
038e7515fd | ||
|
|
b74bcd1a86 | ||
|
|
547f33a0a1 | ||
|
|
c007ebe326 | ||
|
|
50afbde62b | ||
|
|
9d50826821 | ||
|
|
574dd8eecb | ||
|
|
43561734cc | ||
|
|
81c8828bb1 | ||
|
|
06604571d4 | ||
|
|
a28981de7c | ||
|
|
fe76ee3ad7 | ||
|
|
4b3a5e03c2 | ||
|
|
831510e319 | ||
|
|
1c67d11b16 | ||
|
|
22031759dc | ||
|
|
12336c8764 | ||
|
|
901b2d7561 | ||
|
|
57724ef2fb | ||
|
|
c08fab5769 | ||
|
|
e0280136e4 | ||
|
|
e3dd1d62d9 | ||
|
|
8a83690596 | ||
|
|
54c6fbe287 | ||
|
|
c29876aed3 | ||
|
|
f997e7a3bc | ||
|
|
fc914a39a2 | ||
|
|
39ae02ade1 | ||
|
|
7f5a9f19dd | ||
|
|
db1d04931d | ||
|
|
60853bc20f | ||
|
|
0e117910ba | ||
|
|
55e0cbe76a | ||
|
|
848a57c314 | ||
|
|
12041d076b | ||
|
|
b422c8ce52 | ||
|
|
17a6621cd8 | ||
|
|
2fec6b007a | ||
|
|
0dfd22c12b | ||
|
|
9d599341d9 | ||
|
|
289eca08a3 | ||
|
|
e73cf1e280 | ||
|
|
b1aca51c48 | ||
|
|
aee8c38cfc | ||
|
|
064cf1abe7 | ||
|
|
efcb1c2618 | ||
|
|
4a113bf1c7 | ||
|
|
63b19301d6 | ||
|
|
c472fa2850 | ||
|
|
3c66301f03 | ||
|
|
7de2abd01c | ||
|
|
22255ac47b | ||
|
|
d9afabf0f2 | ||
|
|
3a500f2481 | ||
|
|
ff5d56bb8d | ||
|
|
9b7159264f | ||
|
|
ca27f37791 | ||
|
|
fb0c9174b5 | ||
|
|
c5562967c4 | ||
|
|
e583f84e08 | ||
|
|
378fff2714 | ||
|
|
4d88ddb20a | ||
|
|
e92fd00bca | ||
|
|
1099de7702 | ||
|
|
c0c8039c4e | ||
|
|
1f62593a21 | ||
|
|
72175a971b | ||
|
|
c519f06afa | ||
|
|
1c5e16ca3b | ||
|
|
3a6898bb4c | ||
|
|
7bd0ccabd3 | ||
|
|
435bb92c3f | ||
|
|
b355212c58 | ||
|
|
39434061a9 | ||
|
|
5c220d928b | ||
|
|
aaeb0be0d8 | ||
|
|
3c194500d2 | ||
|
|
515af200ee | ||
|
|
756e9f53a9 | ||
|
|
576f1dbe72 | ||
|
|
bd234a7216 | ||
|
|
1eee5e9114 | ||
|
|
12e6e757ea | ||
|
|
662a5e91db | ||
|
|
ab439e6ae8 | ||
|
|
c3af787bf8 | ||
|
|
375ff48a46 | ||
|
|
90df4e3f2d | ||
|
|
c9e0bbf0b7 | ||
|
|
9d290a4f6e | ||
|
|
299b53a3ee | ||
|
|
4de9f53296 | ||
|
|
e7ba890889 | ||
|
|
e63f8826b4 | ||
|
|
836993d137 | ||
|
|
556b06ac2d | ||
|
|
539e3cb5a8 | ||
|
|
9bbdccbae0 | ||
|
|
3e355be245 | ||
|
|
19c2be6b0b | ||
|
|
aed1ee0224 | ||
|
|
83f6f99354 | ||
|
|
2c3f330580 | ||
|
|
6da286c22b | ||
|
|
ddf7537301 | ||
|
|
f426e7efe6 | ||
|
|
635541026b | ||
|
|
1ba6e9c080 | ||
|
|
a9ebffd47a | ||
|
|
3b52624410 | ||
|
|
6a30c0afea | ||
|
|
3509a36b52 | ||
|
|
9ee8bf41d8 | ||
|
|
ef94cd0caa | ||
|
|
c0859188ce | ||
|
|
66f8c18f6a | ||
|
|
427db1adb8 | ||
|
|
1473f79390 | ||
|
|
79cc00b4ea | ||
|
|
5c7d544bcb | ||
|
|
5c9fe6c0fd | ||
|
|
5ba818ba7b | ||
|
|
c1b89f5bd0 | ||
|
|
8c6cc7bee8 | ||
|
|
37838095d8 | ||
|
|
ed7d629451 | ||
|
|
8c238a8a13 | ||
|
|
0bff957c20 | ||
|
|
591380531f | ||
|
|
b917ceaaf2 | ||
|
|
9e064a864e | ||
|
|
8ddbd10506 | ||
|
|
a600b7c1c6 | ||
|
|
e2a7af9c6f | ||
|
|
dac71c84cb | ||
|
|
c1081f7039 | ||
|
|
a2c824bf99 | ||
|
|
78935f7338 | ||
|
|
94fbc8ea17 | ||
|
|
e3110950ff | ||
|
|
6c8b8e057c | ||
|
|
7c5dbaf2c2 | ||
|
|
8f0f635f14 | ||
|
|
4e79c12c7b | ||
|
|
3bdee868c2 | ||
|
|
2f8834ee0a | ||
|
|
92e7653ebf | ||
|
|
08454f66c9 | ||
|
|
4f756be008 | ||
|
|
35a3ff7cb6 | ||
|
|
e4a3cf66ba | ||
|
|
4f55cfc494 | ||
|
|
3cdc136a9a | ||
|
|
9de2b3653f | ||
|
|
3ab800d49f | ||
|
|
f3ae22d2a8 | ||
|
|
34439c06de | ||
|
|
6f503c9512 | ||
|
|
bc772a8303 | ||
|
|
421860969f | ||
|
|
5e98ebb073 | ||
|
|
18184b936d | ||
|
|
c285f72e12 | ||
|
|
2533a2e074 | ||
|
|
7f5f4e8967 | ||
|
|
f7121fa529 | ||
|
|
a116639699 | ||
|
|
796bf240cc | ||
|
|
4505229661 | ||
|
|
e8da0557bb | ||
|
|
beb52df1d9 | ||
|
|
36b29d0266 | ||
|
|
5af262a4d0 | ||
|
|
5772e0bbfb | ||
|
|
9d0b1d5092 | ||
|
|
6837440942 | ||
|
|
0cb0a5c294 | ||
|
|
045ef8bad9 | ||
|
|
7f9b1cf0be | ||
|
|
308dae1a52 | ||
|
|
4f70d19e1e | ||
|
|
3ddf91fb75 | ||
|
|
9f0ecd6ea3 | ||
|
|
97d499ce97 | ||
|
|
1fac6f69ad | ||
|
|
cbc632da7d | ||
|
|
1d5cc19351 | ||
|
|
18cdb2575b | ||
|
|
78917e9117 | ||
|
|
4757affa65 | ||
|
|
ba52531a20 | ||
|
|
6a5a28abca | ||
|
|
661c0507a5 | ||
|
|
26bcb8b673 | ||
|
|
eeb39b42b9 | ||
|
|
b35e90a6ad | ||
|
|
389a2df9bf | ||
|
|
68ba7cf97e | ||
|
|
f3ee1097ed | ||
|
|
5f12d167ab | ||
|
|
adc248960b | ||
|
|
a4e0b589ae | ||
|
|
415f65cd79 | ||
|
|
dfe69400ac | ||
|
|
c81eb18623 | ||
|
|
4667dc8c88 | ||
|
|
7b18ea3e61 | ||
|
|
260ac5f427 | ||
|
|
e270474eed | ||
|
|
4d734714dd | ||
|
|
8ffc1c3e96 | ||
|
|
0f2bd3e6ec | ||
|
|
af190ac210 | ||
|
|
21236fdc37 | ||
|
|
dc0b3753d8 | ||
|
|
d68806db1b | ||
|
|
ab157136aa | ||
|
|
f58e1cda30 | ||
|
|
375dad8961 | ||
|
|
5dc74abcf1 | ||
|
|
9c97211d8d | ||
|
|
80c1ce8d85 | ||
|
|
4c86c767b1 | ||
|
|
b0a98e7f12 | ||
|
|
daaa93b6e4 | ||
|
|
a970c615fb | ||
|
|
58cecafb34 | ||
|
|
092bdd9f22 | ||
|
|
75eea53c4b | ||
|
|
d45a34fdb8 | ||
|
|
91849efde1 | ||
|
|
5a39fc2548 | ||
|
|
ee77ce0789 | ||
|
|
1d63fc469a | ||
|
|
a6f8ff440a | ||
|
|
7118cfa433 | ||
|
|
67b488aa7d | ||
|
|
e9bd46592b | ||
|
|
1a2ad81471 | ||
|
|
90b6d593fc | ||
|
|
f5d30d83c6 | ||
|
|
1aa916feb2 | ||
|
|
9e0f100d36 | ||
|
|
d1417609dd | ||
|
|
9510cc540a | ||
|
|
0930934200 | ||
|
|
21e38d9e45 | ||
|
|
a5d4e6b68a | ||
|
|
48021c0b0a | ||
|
|
9f72f84775 | ||
|
|
179faa2270 | ||
|
|
c3920ccb10 | ||
|
|
cc4d320111 | ||
|
|
6b4e00fd47 | ||
|
|
bfb63061c7 | ||
|
|
e607c622b3 | ||
|
|
ed9172d757 | ||
|
|
375cd3202a | ||
|
|
dcfcc5ea2c | ||
|
|
0997fc626c | ||
|
|
0e3c8a201a | ||
|
|
53d830d87e | ||
|
|
be33752ba6 | ||
|
|
b2c3fcaaf5 | ||
|
|
ce2d180a23 | ||
|
|
75dc78b738 | ||
|
|
25d1560dd1 | ||
|
|
f1c5adbf00 | ||
|
|
37027003b5 | ||
|
|
c7da128ecd | ||
|
|
11cf4fb144 | ||
|
|
916759b802 | ||
|
|
0bd96ab582 | ||
|
|
4cbfe33714 | ||
|
|
e8d8b65b80 | ||
|
|
65cfbef567 | ||
|
|
f1817efe5d | ||
|
|
bca239c476 | ||
|
|
5d332ea052 | ||
|
|
9932a0dd1a | ||
|
|
41b371c53c | ||
|
|
ba75be47ae | ||
|
|
f75838c906 | ||
|
|
6bffe519b3 | ||
|
|
541ab312d5 | ||
|
|
d23b9563c8 | ||
|
|
7c5690cc49 | ||
|
|
f865f00ecb | ||
|
|
775971d19b | ||
|
|
c61935bb96 | ||
|
|
b25a0769d5 | ||
|
|
d2e972cf6c | ||
|
|
401aaf1757 | ||
|
|
1df99a4727 | ||
|
|
5d7dbafb1d | ||
|
|
57ff967ab0 | ||
|
|
91d1cbb5dc | ||
|
|
a94cc877c4 | ||
|
|
0512992afc | ||
|
|
8dde53c7af | ||
|
|
ff7c57f7bf | ||
|
|
bdd02b72de | ||
|
|
9b30fc1680 | ||
|
|
9d7c1073d3 | ||
|
|
527834a555 | ||
|
|
825538d5a9 | ||
|
|
1510baa9a6 | ||
|
|
d3bd9f4697 | ||
|
|
2c1f920b6d | ||
|
|
89aa9fb212 | ||
|
|
9f9c9c6a66 | ||
|
|
48207bc2a2 | ||
|
|
ce9bcba16d | ||
|
|
b9de84e5bf | ||
|
|
22e478307d | ||
|
|
8cf64ff9ce | ||
|
|
75494011e1 | ||
|
|
75506250e1 | ||
|
|
d06938d877 | ||
|
|
4eb71b1284 | ||
|
|
3f4e5bb9a8 | ||
|
|
0ad61c53ae | ||
|
|
a45131ab0e | ||
|
|
cddc2c0b76 | ||
|
|
1930db6086 | ||
|
|
1cea5ab8c4 | ||
|
|
30b999c16f | ||
|
|
9260b4ef19 | ||
|
|
dc231bf3b3 | ||
|
|
1b539fd0ff | ||
|
|
635cc1ffdf | ||
|
|
18b9a7afe1 | ||
|
|
5ad7c89803 | ||
|
|
c4393af8c0 | ||
|
|
da75b07add | ||
|
|
bed8d97840 | ||
|
|
fecc4f948a | ||
|
|
d5d4c1b3ed | ||
|
|
f2bd8e22d7 | ||
|
|
d7a29a3df2 | ||
|
|
f7f7066286 | ||
|
|
c6436bc542 | ||
|
|
b50f662d45 | ||
|
|
62ec61e00c | ||
|
|
0fb0745613 | ||
|
|
eadeb42e57 | ||
|
|
c674422205 | ||
|
|
0042307234 | ||
|
|
288e6260ef | ||
|
|
11c7a02aaf | ||
|
|
196d22be16 | ||
|
|
2a8f1e4cba | ||
|
|
58141f603b |
@@ -18,12 +18,3 @@ logs/
|
|||||||
.eslintrc
|
.eslintrc
|
||||||
test/files
|
test/files
|
||||||
*.min.js
|
*.min.js
|
||||||
|
|
||||||
/public/src/app.js
|
|
||||||
/public/src/client.js
|
|
||||||
/public/src/admin/admin.js
|
|
||||||
/public/src/modules/translator.common.js
|
|
||||||
/public/src/modules/pictureCropper.js
|
|
||||||
/public/src/modules/ace-editor.js
|
|
||||||
/public/src/client/account/header.js
|
|
||||||
/public/src/client/test.js
|
|
||||||
36
Gruntfile.js
36
Gruntfile.js
@@ -54,14 +54,9 @@ module.exports = function (grunt) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.less`)
|
const styleUpdated_Client = pluginList.map(p => `node_modules/${p}/*.scss`)
|
||||||
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
|
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
|
||||||
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
|
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|scss)/**/*.scss`))
|
||||||
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
|
|
||||||
|
|
||||||
const styleUpdated_Admin = pluginList.map(p => `node_modules/${p}/*.less`)
|
|
||||||
.concat(pluginList.map(p => `node_modules/${p}/*.css`))
|
|
||||||
.concat(pluginList.map(p => `node_modules/${p}/+(public|static|less)/**/*.less`))
|
|
||||||
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
|
.concat(pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.css`));
|
||||||
|
|
||||||
const clientUpdated = pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
|
const clientUpdated = pluginList.map(p => `node_modules/${p}/+(public|static)/**/*.js`);
|
||||||
@@ -72,24 +67,15 @@ module.exports = function (grunt) {
|
|||||||
const langUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
|
const langUpdated = pluginList.map(p => `node_modules/${p}/+(public|static|languages)/**/*.json`);
|
||||||
|
|
||||||
grunt.config(['watch'], {
|
grunt.config(['watch'], {
|
||||||
styleUpdated_Client: {
|
styleUpdated: {
|
||||||
files: [
|
files: [
|
||||||
'public/less/**/*.less',
|
'public/scss/**/*.scss',
|
||||||
...styleUpdated_Client,
|
...styleUpdated_Client,
|
||||||
],
|
],
|
||||||
options: {
|
options: {
|
||||||
interval: 1000,
|
interval: 1000,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
styleUpdated_Admin: {
|
|
||||||
files: [
|
|
||||||
'public/less/**/*.less',
|
|
||||||
...styleUpdated_Admin,
|
|
||||||
],
|
|
||||||
options: {
|
|
||||||
interval: 1000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
clientUpdated: {
|
clientUpdated: {
|
||||||
files: [
|
files: [
|
||||||
'public/src/**/*.js',
|
'public/src/**/*.js',
|
||||||
@@ -167,16 +153,14 @@ module.exports = function (grunt) {
|
|||||||
grunt.event.removeAllListeners('watch');
|
grunt.event.removeAllListeners('watch');
|
||||||
grunt.event.on('watch', (action, filepath, target) => {
|
grunt.event.on('watch', (action, filepath, target) => {
|
||||||
let compiling;
|
let compiling;
|
||||||
if (target === 'styleUpdated_Client') {
|
if (target === 'styleUpdated') {
|
||||||
compiling = 'clientCSS';
|
compiling = ['clientCSS', 'acpCSS'];
|
||||||
} else if (target === 'styleUpdated_Admin') {
|
|
||||||
compiling = 'acpCSS';
|
|
||||||
} else if (target === 'clientUpdated') {
|
} else if (target === 'clientUpdated') {
|
||||||
compiling = 'js';
|
compiling = ['js'];
|
||||||
} else if (target === 'templatesUpdated') {
|
} else if (target === 'templatesUpdated') {
|
||||||
compiling = 'tpl';
|
compiling = ['tpl'];
|
||||||
} else if (target === 'langUpdated') {
|
} else if (target === 'langUpdated') {
|
||||||
compiling = 'lang';
|
compiling = ['lang'];
|
||||||
} else if (target === 'serverUpdated') {
|
} else if (target === 'serverUpdated') {
|
||||||
// empty require cache
|
// empty require cache
|
||||||
const paths = ['./src/meta/build.js', './src/meta/index.js'];
|
const paths = ['./src/meta/build.js', './src/meta/index.js'];
|
||||||
@@ -184,7 +168,7 @@ module.exports = function (grunt) {
|
|||||||
return run();
|
return run();
|
||||||
}
|
}
|
||||||
|
|
||||||
require('./src/meta/build').build([compiling], { webpack: false }, (err) => {
|
require('./src/meta/build').build(compiling, { webpack: false }, (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
winston.error(err.stack);
|
winston.error(err.stack);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,5 +182,6 @@
|
|||||||
"composer:showHelpTab": 1,
|
"composer:showHelpTab": 1,
|
||||||
"composer:allowPluginHelp": 1,
|
"composer:allowPluginHelp": 1,
|
||||||
"maxReconnectionAttempts": 5,
|
"maxReconnectionAttempts": 5,
|
||||||
"reconnectionDelay": 1500
|
"reconnectionDelay": 1500,
|
||||||
|
"disableCustomUserSkins": 0
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
{
|
{
|
||||||
"widget": "html",
|
"widget": "html",
|
||||||
"data" : {
|
"data" : {
|
||||||
"html": "<footer id=\"footer\" class=\"container footer\">\r\n\t<div>\r\n\t\tPowered by <a target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a> | <a target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\">Contributors</a>\r\n\t</div>\r\n</footer>",
|
"html": "<footer id=\"footer\" class=\"container footer d-flex flex-column align-items-center gap-1 mb-2\">\n\t<span>Powered by <a class=\"link-secondary text-decoration-underline\" target=\"_blank\" href=\"https://nodebb.org\">NodeBB</a></span>\n\t<span><a class=\"link-secondary\" target=\"_blank\" href=\"//github.com/NodeBB/NodeBB/graphs/contributors\"><i class=\"fa fa-users\"></i> <span class=\"text-decoration-underline\">Contributors<span></a></span>\n</footer>",
|
||||||
"title":"",
|
"title":"",
|
||||||
"container":""
|
"container":""
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"title": "[[global:header.categories]]",
|
"title": "[[global:header.categories]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-list",
|
"iconClass": "fa-list",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.categories]]"
|
"text": "[[global:header.categories]]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"title": "[[global:header.unread]]",
|
"title": "[[global:header.unread]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-inbox",
|
"iconClass": "fa-inbox",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.unread]]",
|
"text": "[[global:header.unread]]",
|
||||||
"groups": ["registered-users"]
|
"groups": ["registered-users"]
|
||||||
},
|
},
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
"title": "[[global:header.recent]]",
|
"title": "[[global:header.recent]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-clock-o",
|
"iconClass": "fa-clock-o",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.recent]]"
|
"text": "[[global:header.recent]]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
"title": "[[global:header.tags]]",
|
"title": "[[global:header.tags]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-tags",
|
"iconClass": "fa-tags",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.tags]]"
|
"text": "[[global:header.tags]]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
"title": "[[global:header.popular]]",
|
"title": "[[global:header.popular]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-fire",
|
"iconClass": "fa-fire",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.popular]]"
|
"text": "[[global:header.popular]]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
"title": "[[global:header.users]]",
|
"title": "[[global:header.users]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-user",
|
"iconClass": "fa-user",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.users]]"
|
"text": "[[global:header.users]]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
"title": "[[global:header.groups]]",
|
"title": "[[global:header.groups]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-group",
|
"iconClass": "fa-group",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.groups]]"
|
"text": "[[global:header.groups]]"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
"title": "[[global:header.admin]]",
|
"title": "[[global:header.admin]]",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"iconClass": "fa-cogs",
|
"iconClass": "fa-cogs",
|
||||||
"textClass": "visible-xs-inline",
|
"textClass": "d-lg-none",
|
||||||
"text": "[[global:header.admin]]",
|
"text": "[[global:header.admin]]",
|
||||||
"groups": ["administrators"]
|
"groups": ["administrators"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
"name": "nodebb",
|
"name": "nodebb",
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
"description": "NodeBB Forum",
|
"description": "NodeBB Forum",
|
||||||
"version": "2.8.6",
|
"version": "3.0.0-beta.2",
|
||||||
"homepage": "http://www.nodebb.org",
|
"homepage": "https://www.nodebb.org",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/NodeBB/NodeBB/"
|
"url": "https://github.com/NodeBB/NodeBB/"
|
||||||
@@ -30,6 +30,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@adactive/bootstrap-tagsinput": "0.8.2",
|
"@adactive/bootstrap-tagsinput": "0.8.2",
|
||||||
"@isaacs/ttlcache": "1.2.1",
|
"@isaacs/ttlcache": "1.2.1",
|
||||||
|
"@popperjs/core": "2.11.6",
|
||||||
"ace-builds": "1.15.0",
|
"ace-builds": "1.15.0",
|
||||||
"archiver": "5.3.1",
|
"archiver": "5.3.1",
|
||||||
"async": "3.2.4",
|
"async": "3.2.4",
|
||||||
@@ -37,8 +38,9 @@
|
|||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"benchpressjs": "2.5.1",
|
"benchpressjs": "2.5.1",
|
||||||
"body-parser": "1.20.1",
|
"body-parser": "1.20.1",
|
||||||
"bootbox": "5.5.3",
|
"bootbox": "6.0.0",
|
||||||
"bootstrap": "3.4.1",
|
"bootstrap": "5.2.3",
|
||||||
|
"bootswatch": "5.2.3",
|
||||||
"chalk": "4.1.2",
|
"chalk": "4.1.2",
|
||||||
"chart.js": "2.9.4",
|
"chart.js": "2.9.4",
|
||||||
"cli-graph": "3.2.2",
|
"cli-graph": "3.2.2",
|
||||||
@@ -87,22 +89,22 @@
|
|||||||
"morgan": "1.10.0",
|
"morgan": "1.10.0",
|
||||||
"mousetrap": "1.6.5",
|
"mousetrap": "1.6.5",
|
||||||
"multiparty": "4.2.3",
|
"multiparty": "4.2.3",
|
||||||
"@nodebb/bootswatch": "3.4.2",
|
|
||||||
"nconf": "0.12.0",
|
"nconf": "0.12.0",
|
||||||
"nodebb-plugin-2factor": "5.1.3",
|
"nodebb-plugin-2factor": "7.0.1",
|
||||||
"nodebb-plugin-composer-default": "9.2.4",
|
"nodebb-plugin-composer-default": "10.0.41",
|
||||||
"nodebb-plugin-dbsearch": "5.1.5",
|
"nodebb-plugin-dbsearch": "6.0.0",
|
||||||
"nodebb-plugin-emoji": "4.0.6",
|
"nodebb-plugin-emoji": "5.0.5",
|
||||||
"nodebb-plugin-emoji-android": "3.0.0",
|
"nodebb-plugin-emoji-android": "4.0.0",
|
||||||
"nodebb-plugin-markdown": "10.1.1",
|
"nodebb-plugin-markdown": "12.0.2",
|
||||||
"nodebb-plugin-mentions": "3.0.12",
|
"nodebb-plugin-mentions": "4.0.3",
|
||||||
"nodebb-plugin-spam-be-gone": "1.0.2",
|
"nodebb-plugin-ntfy": "1.0.15",
|
||||||
|
"nodebb-plugin-spam-be-gone": "2.0.5",
|
||||||
"nodebb-rewards-essentials": "0.2.2",
|
"nodebb-rewards-essentials": "0.2.2",
|
||||||
"nodebb-theme-lavender": "6.0.1",
|
"nodebb-theme-harmony": "1.0.0-beta.68",
|
||||||
"nodebb-theme-persona": "12.1.15",
|
"nodebb-theme-lavender": "7.0.8",
|
||||||
"nodebb-theme-slick": "2.0.4",
|
"nodebb-theme-peace": "2.0.18",
|
||||||
"nodebb-theme-vanilla": "12.1.19",
|
"nodebb-theme-persona": "13.0.49",
|
||||||
"nodebb-widget-essentials": "6.0.1",
|
"nodebb-widget-essentials": "7.0.6",
|
||||||
"nodemailer": "6.9.1",
|
"nodemailer": "6.9.1",
|
||||||
"nprogress": "0.2.0",
|
"nprogress": "0.2.0",
|
||||||
"passport": "0.6.0",
|
"passport": "0.6.0",
|
||||||
@@ -119,7 +121,9 @@
|
|||||||
"request-promise-native": "1.0.9",
|
"request-promise-native": "1.0.9",
|
||||||
"rimraf": "3.0.2",
|
"rimraf": "3.0.2",
|
||||||
"rss": "1.2.2",
|
"rss": "1.2.2",
|
||||||
|
"rtlcss": "4.0.0",
|
||||||
"sanitize-html": "2.9.0",
|
"sanitize-html": "2.9.0",
|
||||||
|
"sass": "1.54.9",
|
||||||
"semver": "7.3.8",
|
"semver": "7.3.8",
|
||||||
"serve-favicon": "2.5.0",
|
"serve-favicon": "2.5.0",
|
||||||
"sharp": "0.31.3",
|
"sharp": "0.31.3",
|
||||||
@@ -137,7 +141,6 @@
|
|||||||
"timeago": "1.6.7",
|
"timeago": "1.6.7",
|
||||||
"tinycon": "0.6.8",
|
"tinycon": "0.6.8",
|
||||||
"toobusy-js": "0.5.1",
|
"toobusy-js": "0.5.1",
|
||||||
"uglify-es": "3.3.9",
|
|
||||||
"validator": "13.9.0",
|
"validator": "13.9.0",
|
||||||
"webpack": "5.75.0",
|
"webpack": "5.75.0",
|
||||||
"webpack-merge": "5.8.0",
|
"webpack-merge": "5.8.0",
|
||||||
@@ -166,6 +169,9 @@
|
|||||||
"nyc": "15.1.0",
|
"nyc": "15.1.0",
|
||||||
"smtp-server": "3.11.0"
|
"smtp-server": "3.11.0"
|
||||||
},
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"sass-embedded": "1.55.0"
|
||||||
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"*/jquery": "3.6.3"
|
"*/jquery": "3.6.3"
|
||||||
},
|
},
|
||||||
@@ -176,11 +182,6 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
},
|
},
|
||||||
"maintainers": [
|
"maintainers": [
|
||||||
{
|
|
||||||
"name": "Andrew Rodrigues",
|
|
||||||
"email": "andrew@nodebb.org",
|
|
||||||
"url": "https://github.com/psychobunny"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Julian Lam",
|
"name": "Julian Lam",
|
||||||
"email": "julian@nodebb.org",
|
"email": "julian@nodebb.org",
|
||||||
@@ -192,4 +193,4 @@
|
|||||||
"url": "https://github.com/barisusakli"
|
"url": "https://github.com/barisusakli"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ const bodyParser = require('body-parser');
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const childProcess = require('child_process');
|
const childProcess = require('child_process');
|
||||||
const less = require('less');
|
|
||||||
|
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack');
|
||||||
const nconf = require('nconf');
|
const nconf = require('nconf');
|
||||||
@@ -14,6 +13,7 @@ const nconf = require('nconf');
|
|||||||
const Benchpress = require('benchpressjs');
|
const Benchpress = require('benchpressjs');
|
||||||
const mkdirp = require('mkdirp');
|
const mkdirp = require('mkdirp');
|
||||||
const { paths } = require('../src/constants');
|
const { paths } = require('../src/constants');
|
||||||
|
const sass = require('../src/utils').getSass();
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
let server;
|
let server;
|
||||||
@@ -73,7 +73,7 @@ web.install = async function (port) {
|
|||||||
try {
|
try {
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
compileTemplate(),
|
compileTemplate(),
|
||||||
compileLess(),
|
compileSass(),
|
||||||
runWebpack(),
|
runWebpack(),
|
||||||
copyCSS(),
|
copyCSS(),
|
||||||
loadDefaults(),
|
loadDefaults(),
|
||||||
@@ -247,23 +247,28 @@ async function compileTemplate() {
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function compileLess() {
|
async function compileSass() {
|
||||||
try {
|
try {
|
||||||
const installSrc = path.join(__dirname, '../public/less/install.less');
|
const installSrc = path.join(__dirname, '../public/scss/install.scss');
|
||||||
const style = await fs.promises.readFile(installSrc);
|
const style = await fs.promises.readFile(installSrc);
|
||||||
const css = await less.render(String(style), { filename: path.resolve(installSrc) });
|
const scssOutput = sass.compileString(String(style), {
|
||||||
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), css.css);
|
loadPaths: [
|
||||||
|
path.join(__dirname, '../public/scss'),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
await fs.promises.writeFile(path.join(__dirname, '../public/installer.css'), scssOutput.css.toString());
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
winston.error(`Unable to compile LESS: \n${err.stack}`);
|
winston.error(`Unable to compile SASS: \n${err.stack}`);
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function copyCSS() {
|
async function copyCSS() {
|
||||||
const src = await fs.promises.readFile(
|
await fs.promises.copyFile(
|
||||||
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'), 'utf8'
|
path.join(__dirname, '../node_modules/bootstrap/dist/css/bootstrap.min.css'),
|
||||||
|
path.join(__dirname, '../public/bootstrap.min.css'),
|
||||||
);
|
);
|
||||||
await fs.promises.writeFile(path.join(__dirname, '../public/bootstrap.min.css'), src);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadDefaults() {
|
async function loadDefaults() {
|
||||||
|
|||||||
@@ -4,8 +4,6 @@
|
|||||||
|
|
||||||
"acp-title": "%1 | NodeBB Admin Control Panel",
|
"acp-title": "%1 | NodeBB Admin Control Panel",
|
||||||
"settings-header-contents": "Contents",
|
"settings-header-contents": "Contents",
|
||||||
"changes-saved": "Changes Saved",
|
|
||||||
"changes-saved-message": "Your changes to the NodeBB configuration have been saved.",
|
|
||||||
"changes-not-saved": "Changes Not Saved",
|
"changes-not-saved": "Changes Not Saved",
|
||||||
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
|
"changes-not-saved-message": "NodeBB encountered a problem saving your changes. (%1)"
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"custom-css": "Custom CSS/LESS",
|
"custom-css": "Custom CSS/SASS",
|
||||||
"custom-css.description": "Enter your own CSS/LESS declarations here, which will be applied after all other styles.",
|
"custom-css.description": "Enter your own CSS/SASS declarations here, which will be applied after all other styles.",
|
||||||
"custom-css.enable": "Enable Custom CSS/LESS",
|
"custom-css.enable": "Enable Custom CSS/SASS",
|
||||||
|
|
||||||
"custom-js": "Custom Javascript",
|
"custom-js": "Custom Javascript",
|
||||||
"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
|
"custom-js.description": "Enter your own javascript here. It will be executed after the page is loaded completely.",
|
||||||
|
|||||||
@@ -8,9 +8,9 @@
|
|||||||
"containers.none": "None",
|
"containers.none": "None",
|
||||||
"container.well": "Well",
|
"container.well": "Well",
|
||||||
"container.jumbotron": "Jumbotron",
|
"container.jumbotron": "Jumbotron",
|
||||||
"container.panel": "Panel",
|
"container.card": "Card",
|
||||||
"container.panel-header": "Panel Header",
|
"container.card-header": "Card Header",
|
||||||
"container.panel-body": "Panel Body",
|
"container.card-body": "Card Body",
|
||||||
"container.alert": "Alert",
|
"container.alert": "Alert",
|
||||||
|
|
||||||
"alert.confirm-delete": "Are you sure you wish to delete this widget?",
|
"alert.confirm-delete": "Are you sure you wish to delete this widget?",
|
||||||
|
|||||||
@@ -39,6 +39,5 @@
|
|||||||
"revert": "Revert",
|
"revert": "Revert",
|
||||||
|
|
||||||
"edit.no-users-found": "No Users Found",
|
"edit.no-users-found": "No Users Found",
|
||||||
"edit.confirm-remove-user": "Are you sure you want to remove this user?",
|
"edit.confirm-remove-user": "Are you sure you want to remove this user?"
|
||||||
"edit.save-success": "Changes saved!"
|
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,6 @@
|
|||||||
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
|
"alert.confirm-moderate": "<strong>Are you sure you wish to grant the moderation privilege to this user group?</strong> This group is public, and any users can join at will.",
|
||||||
"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the "Admins & Mods" privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
|
"alert.confirm-admins-mods": "<strong>Are you sure you wish to grant the "Admins & Mods" privilege to this user/group?</strong> Users with this privilege are able to promote and demote other users into privileged positions, <em>including super administrator</em>",
|
||||||
"alert.confirm-save": "Please confirm your intention to save these privileges",
|
"alert.confirm-save": "Please confirm your intention to save these privileges",
|
||||||
"alert.saved": "Privilege changes saved and applied",
|
|
||||||
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
|
"alert.confirm-discard": "Are you sure you wish to discard your privilege changes?",
|
||||||
"alert.discarded": "Privilege changes discarded",
|
"alert.discarded": "Privilege changes discarded",
|
||||||
"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
|
"alert.confirm-copyToAll": "Are you sure you wish to apply this set of <strong>%1</strong> to <strong>all categories</strong>?",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"groups": "Groups:",
|
"groups": "Groups:",
|
||||||
"open-new-window": "Open in a new window",
|
"open-new-window": "Open in a new window",
|
||||||
"dropdown": "Dropdown",
|
"dropdown": "Dropdown",
|
||||||
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a href="https://myforum.com">Link 1</a></li>",
|
"dropdown-placeholder": "Place your dropdown menu items below, ie: <br/><li><a class="dropdown-item" href="https://myforum.com">Link 1</a></li>",
|
||||||
|
|
||||||
"btn.delete": "Delete",
|
"btn.delete": "Delete",
|
||||||
"btn.disable": "Disable",
|
"btn.disable": "Disable",
|
||||||
|
|||||||
@@ -263,5 +263,6 @@
|
|||||||
"api.429": "You have made too many requests, please try again later",
|
"api.429": "You have made too many requests, please try again later",
|
||||||
"api.500": "An unexpected error was encountered while attempting to service your request.",
|
"api.500": "An unexpected error was encountered while attempting to service your request.",
|
||||||
"api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
|
"api.501": "The route you are trying to call is not implemented yet, please try again tomorrow",
|
||||||
"api.503": "The route you are trying to call is not currently available due to a server configuration"
|
"api.503": "The route you are trying to call is not currently available due to a server configuration",
|
||||||
|
"api.reauth-required": "The resource you are trying to access requires (re-)authentication."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,25 +3,27 @@
|
|||||||
"reports": "Reports",
|
"reports": "Reports",
|
||||||
"first-reported": "First Reported",
|
"first-reported": "First Reported",
|
||||||
"no-flags": "Hooray! No flags found.",
|
"no-flags": "Hooray! No flags found.",
|
||||||
|
"x-flags-found": "%1 flag(s) found.",
|
||||||
"assignee": "Assignee",
|
"assignee": "Assignee",
|
||||||
"update": "Update",
|
"update": "Update",
|
||||||
"updated": "Updated",
|
"updated": "Updated",
|
||||||
"resolved": "Resolved",
|
"resolved": "Resolved",
|
||||||
"target-purged": "The content this flag referred to has been purged and is no longer available.",
|
"target-purged": "The content this flag referred to has been purged and is no longer available.",
|
||||||
|
"target-aboutme-empty": "This user has no "About Me" set.",
|
||||||
|
|
||||||
"graph-label": "Daily Flags",
|
"graph-label": "Daily Flags",
|
||||||
"quick-filters": "Quick Filters",
|
"quick-filters": "Quick Filters",
|
||||||
"filter-active": "There are one or more filters active in this list of flags",
|
"filter-active": "There are one or more filters active in this list of flags",
|
||||||
"filter-reset": "Remove Filters",
|
"filter-reset": "Remove Filters",
|
||||||
"filters": "Filter Options",
|
"filters": "Filter Options",
|
||||||
"filter-reporterId": "Reporter UID",
|
"filter-reporterId": "Reporter",
|
||||||
"filter-targetUid": "Flagged UID",
|
"filter-targetUid": "Reportee",
|
||||||
"filter-type": "Flag Type",
|
"filter-type": "Flag Type",
|
||||||
"filter-type-all": "All Content",
|
"filter-type-all": "All Content",
|
||||||
"filter-type-post": "Post",
|
"filter-type-post": "Post",
|
||||||
"filter-type-user": "User",
|
"filter-type-user": "User",
|
||||||
"filter-state": "State",
|
"filter-state": "State",
|
||||||
"filter-assignee": "Assignee UID",
|
"filter-assignee": "Assignee",
|
||||||
"filter-cid": "Category",
|
"filter-cid": "Category",
|
||||||
"filter-quick-mine": "Assigned to me",
|
"filter-quick-mine": "Assigned to me",
|
||||||
"filter-cid-all": "All categories",
|
"filter-cid-all": "All categories",
|
||||||
@@ -45,6 +47,7 @@
|
|||||||
|
|
||||||
"notes": "Flag Notes",
|
"notes": "Flag Notes",
|
||||||
"add-note": "Add Note",
|
"add-note": "Add Note",
|
||||||
|
"edit-note": "Edit Note",
|
||||||
"no-notes": "No shared notes.",
|
"no-notes": "No shared notes.",
|
||||||
"delete-note-confirm": "Are you sure you want to delete this flag note?",
|
"delete-note-confirm": "Are you sure you want to delete this flag note?",
|
||||||
"delete-flag-confirm": "Are you sure you want to delete this flag?",
|
"delete-flag-confirm": "Are you sure you want to delete this flag?",
|
||||||
|
|||||||
@@ -43,10 +43,14 @@
|
|||||||
"header.notifications": "Notifications",
|
"header.notifications": "Notifications",
|
||||||
"header.search": "Search",
|
"header.search": "Search",
|
||||||
"header.profile": "Profile",
|
"header.profile": "Profile",
|
||||||
|
"header.account": "Account",
|
||||||
"header.navigation": "Navigation",
|
"header.navigation": "Navigation",
|
||||||
|
"header.manage": "Manage",
|
||||||
|
"header.drafts": "Drafts",
|
||||||
|
|
||||||
"notifications.loading": "Loading Notifications",
|
"notifications.loading": "Loading Notifications",
|
||||||
"chats.loading": "Loading Chats",
|
"chats.loading": "Loading Chats",
|
||||||
|
"drafts.loading": "Loading Drafts",
|
||||||
|
|
||||||
"motd.welcome": "Welcome to NodeBB, the discussion platform of the future.",
|
"motd.welcome": "Welcome to NodeBB, the discussion platform of the future.",
|
||||||
|
|
||||||
@@ -68,7 +72,8 @@
|
|||||||
"users": "Users",
|
"users": "Users",
|
||||||
"topics": "Topics",
|
"topics": "Topics",
|
||||||
"posts": "Posts",
|
"posts": "Posts",
|
||||||
"x-posts": "%1 posts",
|
"x-posts": "<span class=\"formatted-number\">%1</span> posts",
|
||||||
|
"x-topics": "<span class=\"formatted-number\">%1</span> topics",
|
||||||
"best": "Best",
|
"best": "Best",
|
||||||
"controversial": "Controversial",
|
"controversial": "Controversial",
|
||||||
"votes": "Votes",
|
"votes": "Votes",
|
||||||
@@ -83,6 +88,7 @@
|
|||||||
"reputation": "Reputation",
|
"reputation": "Reputation",
|
||||||
"lastpost": "Last post",
|
"lastpost": "Last post",
|
||||||
"firstpost": "First post",
|
"firstpost": "First post",
|
||||||
|
"about": "About",
|
||||||
|
|
||||||
"read_more": "read more",
|
"read_more": "read more",
|
||||||
"more": "More",
|
"more": "More",
|
||||||
@@ -100,6 +106,7 @@
|
|||||||
"user_posted_ago": "%1 posted %2",
|
"user_posted_ago": "%1 posted %2",
|
||||||
"guest_posted_ago": "Guest posted %1",
|
"guest_posted_ago": "Guest posted %1",
|
||||||
"last_edited_by": "last edited by %1",
|
"last_edited_by": "last edited by %1",
|
||||||
|
"edited-timestamp": "Edited %1",
|
||||||
|
|
||||||
"norecentposts": "No Recent Posts",
|
"norecentposts": "No Recent Posts",
|
||||||
"norecenttopics": "No Recent Topics",
|
"norecenttopics": "No Recent Topics",
|
||||||
@@ -108,6 +115,7 @@
|
|||||||
|
|
||||||
"moderator_tools": "Moderator Tools",
|
"moderator_tools": "Moderator Tools",
|
||||||
|
|
||||||
|
"status": "Status",
|
||||||
"online": "Online",
|
"online": "Online",
|
||||||
"away": "Away",
|
"away": "Away",
|
||||||
"dnd": "Do not disturb",
|
"dnd": "Do not disturb",
|
||||||
@@ -151,5 +159,7 @@
|
|||||||
"disabled": "Disabled",
|
"disabled": "Disabled",
|
||||||
"select": "Select",
|
"select": "Select",
|
||||||
|
|
||||||
"user-search-prompt": "Type something here to find users..."
|
"user-search-prompt": "Type something here to find users...",
|
||||||
|
"hidden": "Hidden",
|
||||||
|
"sort": "Sort"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"groups": "Groups",
|
"groups": "Groups",
|
||||||
|
"members": "Members",
|
||||||
"view_group": "View Group",
|
"view_group": "View Group",
|
||||||
"owner": "Group Owner",
|
"owner": "Group Owner",
|
||||||
"new_group": "Create New Group",
|
"new_group": "Create New Group",
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
{
|
{
|
||||||
"chat.chatting_with": "Chat with",
|
"chat.chatting_with": "Chat with",
|
||||||
"chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
|
"chat.placeholder": "Type chat message here, drag & drop images, press enter to send",
|
||||||
|
"chat.placeholder.mobile": "Type chat message here",
|
||||||
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
|
"chat.scroll-up-alert": "You are looking at older messages, click here to go to most recent message.",
|
||||||
|
"chat.usernames-and-x-others": "%1 & %2 others",
|
||||||
|
"chat.chat-with-usernames": "Chat with %1",
|
||||||
|
"chat.chat-with-usernames-and-x-others": "Chat with %1 & %2 others",
|
||||||
"chat.send": "Send",
|
"chat.send": "Send",
|
||||||
"chat.no_active": "You have no active chats.",
|
"chat.no_active": "You have no active chats.",
|
||||||
"chat.user_typing": "%1 is typing ...",
|
"chat.user_typing": "%1 is typing ...",
|
||||||
@@ -44,6 +48,7 @@
|
|||||||
"composer.compose": "Compose",
|
"composer.compose": "Compose",
|
||||||
"composer.show_preview": "Show Preview",
|
"composer.show_preview": "Show Preview",
|
||||||
"composer.hide_preview": "Hide Preview",
|
"composer.hide_preview": "Hide Preview",
|
||||||
|
"composer.help": "Help",
|
||||||
"composer.user_said_in": "%1 said in %2:",
|
"composer.user_said_in": "%1 said in %2:",
|
||||||
"composer.user_said": "%1 said:",
|
"composer.user_said": "%1 said:",
|
||||||
"composer.discard": "Are you sure you wish to discard this post?",
|
"composer.discard": "Are you sure you wish to discard this post?",
|
||||||
@@ -67,7 +72,9 @@
|
|||||||
"composer.schedule-time": "Time",
|
"composer.schedule-time": "Time",
|
||||||
"composer.cancel-scheduling": "Cancel Scheduling",
|
"composer.cancel-scheduling": "Cancel Scheduling",
|
||||||
"composer.set-schedule-date": "Set Date",
|
"composer.set-schedule-date": "Set Date",
|
||||||
|
"composer.discard-all-drafts": "Discard all drafts",
|
||||||
|
"composer.no-drafts": "You have no drafts",
|
||||||
|
"composer.discard-draft-confirm": "Do you want to discard this draft?",
|
||||||
|
|
||||||
"bootbox.ok": "OK",
|
"bootbox.ok": "OK",
|
||||||
"bootbox.cancel": "Cancel",
|
"bootbox.cancel": "Cancel",
|
||||||
|
|||||||
@@ -55,6 +55,7 @@
|
|||||||
"account/watched_categories": "%1's Watched Categories",
|
"account/watched_categories": "%1's Watched Categories",
|
||||||
"account/bookmarks": "%1's Bookmarked Posts",
|
"account/bookmarks": "%1's Bookmarked Posts",
|
||||||
"account/settings": "User Settings",
|
"account/settings": "User Settings",
|
||||||
|
"account/settings-of": "Changing settings of %1",
|
||||||
"account/watched": "Topics watched by %1",
|
"account/watched": "Topics watched by %1",
|
||||||
"account/ignored": "Topics ignored by %1",
|
"account/ignored": "Topics ignored by %1",
|
||||||
"account/upvoted": "Posts upvoted by %1",
|
"account/upvoted": "Posts upvoted by %1",
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"notify": "Notify",
|
"notify": "Notify",
|
||||||
"notify-user": "Notify User",
|
"notify-user": "Notify User",
|
||||||
"confirm-reject": "Do you want to reject this post?",
|
"confirm-reject": "Do you want to reject this post?",
|
||||||
|
"confirm-remove": "Do you want to remove this post?",
|
||||||
"bulk-actions": "Bulk Actions",
|
"bulk-actions": "Bulk Actions",
|
||||||
"accept-all": "Accept All",
|
"accept-all": "Accept All",
|
||||||
"accept-selected": "Accept Selected",
|
"accept-selected": "Accept Selected",
|
||||||
@@ -29,6 +30,10 @@
|
|||||||
"reject-all-confirm": "Do you want to reject all posts?",
|
"reject-all-confirm": "Do you want to reject all posts?",
|
||||||
"reject-selected": "Reject Selected",
|
"reject-selected": "Reject Selected",
|
||||||
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
|
"reject-selected-confirm": "Do you want to reject %1 selected posts?",
|
||||||
|
"remove-all": "Remove all",
|
||||||
|
"remove-all-confirm": "Do you want to remove all posts?",
|
||||||
|
"remove-selected": "Remove Selected",
|
||||||
|
"remove-selected-confirm": "Do you want to remove %1 selected posts?",
|
||||||
"bulk-accept-success": "%1 posts accepted",
|
"bulk-accept-success": "%1 posts accepted",
|
||||||
"bulk-reject-success": "%1 posts rejected"
|
"bulk-reject-success": "%1 posts rejected"
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"register": "Register",
|
"register": "Register",
|
||||||
|
"already-have-account": "Already have an account?",
|
||||||
"cancel_registration": "Cancel Registration",
|
"cancel_registration": "Cancel Registration",
|
||||||
"help.email": "By default, your email will be hidden from the public.",
|
"help.email": "By default, your email will be hidden from the public.",
|
||||||
"help.username_restrictions": "A unique username between %1 and %2 characters. Others can mention you with @<span id='yourUsername'>username</span>.",
|
"help.username_restrictions": "A unique username between %1 and %2 characters. Others can mention you with @<span id='yourUsername'>username</span>.",
|
||||||
|
|||||||
@@ -1,21 +1,41 @@
|
|||||||
{
|
{
|
||||||
|
"type-to-search": "Type to search",
|
||||||
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
"results_matching": "%1 result(s) matching \"%2\", (%3 seconds)",
|
||||||
"no-matches": "No matches found",
|
"no-matches": "No matches found",
|
||||||
"advanced-search": "Advanced Search",
|
"advanced-search": "Advanced Search",
|
||||||
"in": "In",
|
"in": "In",
|
||||||
"titles": "Titles",
|
"in-titles": "In titles",
|
||||||
"titles-posts": "Titles and Posts",
|
"in-titles-posts": "In titles and posts",
|
||||||
|
"in-posts": "In post",
|
||||||
|
"in-categories": "In categories",
|
||||||
|
"in-users": "In users",
|
||||||
|
"in-tags": "In tags",
|
||||||
|
"categories": "Categories",
|
||||||
|
"all-categories": "All categories",
|
||||||
|
"categories-x": "Categories: %1",
|
||||||
|
"categories-watched-categories": "Categories: Watched categories",
|
||||||
|
"type-a-category": "Type a category",
|
||||||
|
"tags": "Tags",
|
||||||
|
"tags-x": "Tags: %1",
|
||||||
|
"type-a-tag": "Type a tag",
|
||||||
"match-words": "Match words",
|
"match-words": "Match words",
|
||||||
|
"match-all-words": "Match all words",
|
||||||
|
"match-any-word": "Match any word",
|
||||||
"all": "All",
|
"all": "All",
|
||||||
"any": "Any",
|
"any": "Any",
|
||||||
"posted-by": "Posted by",
|
"posted-by": "Posted by",
|
||||||
"in-categories": "In Categories",
|
"posted-by-usernames": "Posted by: %1",
|
||||||
|
"type-a-username": "Type a username",
|
||||||
"search-child-categories": "Search child categories",
|
"search-child-categories": "Search child categories",
|
||||||
"has-tags": "Has tags",
|
"has-tags": "Has tags",
|
||||||
"reply-count": "Reply Count",
|
"reply-count": "Reply Count",
|
||||||
|
"replies": "Replies",
|
||||||
|
"replies-atleast-count": "Replies: At least %1",
|
||||||
|
"replies-atmost-count": "Replies: At most %1",
|
||||||
"at-least": "At least",
|
"at-least": "At least",
|
||||||
"at-most": "At most",
|
"at-most": "At most",
|
||||||
"relevance": "Relevance",
|
"relevance": "Relevance",
|
||||||
|
"time": "Time",
|
||||||
"post-time": "Post time",
|
"post-time": "Post time",
|
||||||
"votes": "Votes",
|
"votes": "Votes",
|
||||||
"newer-than": "Newer than",
|
"newer-than": "Newer than",
|
||||||
@@ -28,7 +48,22 @@
|
|||||||
"three-months": "Three months",
|
"three-months": "Three months",
|
||||||
"six-months": "Six months",
|
"six-months": "Six months",
|
||||||
"one-year": "One year",
|
"one-year": "One year",
|
||||||
|
"time-newer-than-86400": "Time: Newer than yesterday",
|
||||||
|
"time-older-than-86400": "Time: Older than yesterday",
|
||||||
|
"time-newer-than-604800": "Time: Newer than one week",
|
||||||
|
"time-older-than-604800": "Time: Older than one week",
|
||||||
|
"time-newer-than-1209600": "Time: Newer than two weeks",
|
||||||
|
"time-older-than-1209600": "Time: Older than two weeks",
|
||||||
|
"time-newer-than-2592000": "Time: Newer than one month",
|
||||||
|
"time-older-than-2592000": "Time: Older than one month",
|
||||||
|
"time-newer-than-7776000": "Time: Newer than three months",
|
||||||
|
"time-older-than-7776000": "Time: Older than three months",
|
||||||
|
"time-newer-than-15552000": "Time: Newer than six months",
|
||||||
|
"time-older-than-15552000": "Time: Older than six months",
|
||||||
|
"time-newer-than-31104000": "Time: Newer than one year",
|
||||||
|
"time-older-than-31104000": "Time: Older than one year",
|
||||||
"sort-by": "Sort by",
|
"sort-by": "Sort by",
|
||||||
|
"sort": "Sort",
|
||||||
"last-reply-time": "Last reply time",
|
"last-reply-time": "Last reply time",
|
||||||
"topic-title": "Topic title",
|
"topic-title": "Topic title",
|
||||||
"topic-votes": "Topic votes",
|
"topic-votes": "Topic votes",
|
||||||
@@ -39,11 +74,36 @@
|
|||||||
"category": "Category",
|
"category": "Category",
|
||||||
"descending": "In descending order",
|
"descending": "In descending order",
|
||||||
"ascending": "In ascending order",
|
"ascending": "In ascending order",
|
||||||
|
"sort-by-relevance-desc": "Sort by: Relevance in descending order",
|
||||||
|
"sort-by-relevance-asc": "Sort by: Relevance in ascending order ",
|
||||||
|
"sort-by-timestamp-desc": "Sort by: Post time in descending order",
|
||||||
|
"sort-by-timestamp-asc": "Sort by: Post time in ascending order ",
|
||||||
|
"sort-by-votes-desc": "Sort by: Votes in descending order",
|
||||||
|
"sort-by-votes-asc": "Sort by: Votes in ascending order ",
|
||||||
|
"sort-by-topic.lastposttime-desc": "Sort by: Last reply time in descending order",
|
||||||
|
"sort-by-topic.lastposttime-asc": "Sort by: Last reply time in ascending order ",
|
||||||
|
"sort-by-topic.title-desc": "Sort by: Topic title in descending order",
|
||||||
|
"sort-by-topic.title-asc": "Sort by: Topic title in ascending order ",
|
||||||
|
"sort-by-topic.postcount-desc": "Sort by: Number of replies in descending order",
|
||||||
|
"sort-by-topic.postcount-asc": "Sort by: Number of replies in ascending order ",
|
||||||
|
"sort-by-topic.viewcount-desc": "Sort by: Number of views in descending order",
|
||||||
|
"sort-by-topic.viewcount-asc": "Sort by: Number of views in ascending order ",
|
||||||
|
"sort-by-topic.votes-desc": "Sort by: Topic votes in descending order",
|
||||||
|
"sort-by-topic.votes-asc": "Sort by: Topic votes in ascending order ",
|
||||||
|
"sort-by-topic.timestamp-desc": "Sort by: Topic start date in descending order",
|
||||||
|
"sort-by-topic.timestamp-asc": "Sort by: Topic start date in ascending order ",
|
||||||
|
"sort-by-user.username-desc": "Sort by: Username in descending order",
|
||||||
|
"sort-by-user.username-asc": "Sort by: Username in ascending order ",
|
||||||
|
"sort-by-category.name-desc": "Sort by: Category in descending order",
|
||||||
|
"sort-by-category.name-asc": "Sort by: Category in ascending order ",
|
||||||
|
"save": "Save",
|
||||||
"save-preferences": "Save preferences",
|
"save-preferences": "Save preferences",
|
||||||
"clear-preferences": "Clear preferences",
|
"clear-preferences": "Clear preferences",
|
||||||
"search-preferences-saved": "Search preferences saved",
|
"search-preferences-saved": "Search preferences saved",
|
||||||
"search-preferences-cleared": "Search preferences cleared",
|
"search-preferences-cleared": "Search preferences cleared",
|
||||||
"show-results-as": "Show results as",
|
"show-results-as": "Show results as",
|
||||||
|
"show-results-as-topics": "Show results as topics",
|
||||||
|
"show-results-as-posts": "Show results as posts",
|
||||||
"see-more-results": "See more results (%1)",
|
"see-more-results": "See more results (%1)",
|
||||||
"search-in-category": "Search in \"%1\""
|
"search-in-category": "Search in \"%1\""
|
||||||
}
|
}
|
||||||
|
|||||||
10
public/language/en-GB/social.json
Normal file
10
public/language/en-GB/social.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"sign-in-with-twitter": "Sign in with Twitter",
|
||||||
|
"sign-up-with-twitter": "Sign up with Twitter",
|
||||||
|
"sign-in-with-github": "Sign in with Github",
|
||||||
|
"sign-up-with-github": "Sign up with Github",
|
||||||
|
"sign-in-with-google": "Sign in with Google",
|
||||||
|
"sign-up-with-google": "Sign up with Google",
|
||||||
|
"log-in-with-facebook": "Log in with Facebook",
|
||||||
|
"continue-with-facebook": "Continue with Facebook"
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"no_tag_topics": "There are no topics with this tag.",
|
"no_tag_topics": "There are no topics with this tag.",
|
||||||
|
"no-tags-found": "No tags found",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
"enter_tags_here": "Enter tags here, between %1 and %2 characters each.",
|
||||||
"enter_tags_here_short": "Enter tags...",
|
"enter_tags_here_short": "Enter tags...",
|
||||||
|
|||||||
@@ -43,16 +43,31 @@
|
|||||||
"ban-ip": "Ban IP",
|
"ban-ip": "Ban IP",
|
||||||
"view-history": "Edit History",
|
"view-history": "Edit History",
|
||||||
|
|
||||||
"locked-by": "Locked by",
|
"wrote-ago": "wrote <span class=\"timeago\" title=\"%1\"></span>",
|
||||||
"unlocked-by": "Unlocked by",
|
"wrote-on": "wrote on <span class=\"timeago\" title=\"%1\"></span>",
|
||||||
"pinned-by": "Pinned by",
|
"replied-to-user-ago": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> <span class=\"timeago\" title=\"%4\"></span>",
|
||||||
"unpinned-by": "Unpinned by",
|
"replied-to-user-on": "replied to <a component=\"post/parent\" data-topid=\"%1\" href=\"%2\">%3</a> on <span class=\"timeago\" title=\"%4\"></span>",
|
||||||
"deleted-by": "Deleted by",
|
|
||||||
"restored-by": "Restored by",
|
"user-locked-topic-ago": "%1 locked this topic %2",
|
||||||
"moved-from-by": "Moved from %1 by",
|
"user-locked-topic-on": "%1 locked this topic on %2",
|
||||||
"queued-by": "Post queued for approval →",
|
"user-unlocked-topic-ago": "%1 unlocked this topic %2",
|
||||||
"backlink": "Referenced by",
|
"user-unlocked-topic-on": "%1 unlocked this topic on %2",
|
||||||
"forked-by": "Forked by",
|
"user-pinned-topic-ago": "%1 pinned this topic %2",
|
||||||
|
"user-pinned-topic-on": "%1 pinned this topic on %2",
|
||||||
|
"user-unpinned-topic-ago": "%1 unpinned this topic %2",
|
||||||
|
"user-unpinned-topic-on": "%1 unpinned this topic on %2",
|
||||||
|
"user-deleted-topic-ago": "%1 deleted this topic %2",
|
||||||
|
"user-deleted-topic-on": "%1 deleted this topic on %2",
|
||||||
|
"user-restored-topic-ago": "%1 restored this topic %2",
|
||||||
|
"user-restored-topic-on": "%1 restored this topic on %2",
|
||||||
|
"user-moved-topic-from-ago": "%1 moved this topic from %2 %3",
|
||||||
|
"user-moved-topic-from-on": "%1 moved this topic from %2 on %3",
|
||||||
|
"user-queued-post-ago": "%1 <a href=\"%2\">queued</a> post for approval %3",
|
||||||
|
"user-queued-post-on": "%1 <a href=\"%2\">queued</a> post for approval on %3",
|
||||||
|
"user-referenced-topic-ago": "%1 <a href=\"%2\">referenced</a> this topic %3",
|
||||||
|
"user-referenced-topic-on": "%1 <a href=\"%2\">referenced</a> this topic on %3",
|
||||||
|
"user-forked-topic-ago": "%1 <a href=\"%2\">forked</a> this topic %3",
|
||||||
|
"user-forked-topic-on": "%1 <a href=\"%2\">forked</a> this topic on %3",
|
||||||
|
|
||||||
"bookmark_instructions" : "Click here to return to the last read post in this thread.",
|
"bookmark_instructions" : "Click here to return to the last read post in this thread.",
|
||||||
|
|
||||||
@@ -107,7 +122,7 @@
|
|||||||
"thread_tools.purge": "Purge Topic",
|
"thread_tools.purge": "Purge Topic",
|
||||||
"thread_tools.purge_confirm" : "Are you sure you want to purge this topic?",
|
"thread_tools.purge_confirm" : "Are you sure you want to purge this topic?",
|
||||||
"thread_tools.merge_topics": "Merge Topics",
|
"thread_tools.merge_topics": "Merge Topics",
|
||||||
"thread_tools.merge": "Merge",
|
"thread_tools.merge": "Merge Topic",
|
||||||
|
|
||||||
"topic_move_success": "This topic will be moved to \"%1\" shortly. Click here to undo.",
|
"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_multiple_success": "These topics will be moved to \"%1\" shortly. Click here to undo.",
|
||||||
@@ -140,7 +155,7 @@
|
|||||||
"post_moved": "Post moved!",
|
"post_moved": "Post moved!",
|
||||||
"fork_topic": "Fork Topic",
|
"fork_topic": "Fork Topic",
|
||||||
"enter-new-topic-title": "Enter new topic title",
|
"enter-new-topic-title": "Enter new topic title",
|
||||||
"fork_topic_instruction": "Click the posts you want to fork",
|
"fork_topic_instruction": "Click the posts you want to fork, enter a title for the new topic and click fork topic",
|
||||||
"fork_no_pids": "No posts selected!",
|
"fork_no_pids": "No posts selected!",
|
||||||
"no-posts-selected": "No posts selected!",
|
"no-posts-selected": "No posts selected!",
|
||||||
"x-posts-selected": "%1 post(s) selected",
|
"x-posts-selected": "%1 post(s) selected",
|
||||||
@@ -155,10 +170,12 @@
|
|||||||
"merge-new-title-for-topic": "New title for topic",
|
"merge-new-title-for-topic": "New title for topic",
|
||||||
"topic-id": "Topic ID",
|
"topic-id": "Topic ID",
|
||||||
"move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
|
"move_posts_instruction": "Click the posts you want to move then enter a topic ID or go to the target topic",
|
||||||
|
"move_topic_instruction": "Select the target category and then click move",
|
||||||
"change_owner_instruction": "Click the posts you want to assign to another user",
|
"change_owner_instruction": "Click the posts you want to assign to another user",
|
||||||
|
|
||||||
"composer.title_placeholder": "Enter your topic title here...",
|
"composer.title_placeholder": "Enter your topic title here...",
|
||||||
"composer.handle_placeholder": "Enter your name/handle here",
|
"composer.handle_placeholder": "Enter your name/handle here",
|
||||||
|
"composer.hide": "Hide",
|
||||||
"composer.discard": "Discard",
|
"composer.discard": "Discard",
|
||||||
"composer.submit": "Submit",
|
"composer.submit": "Submit",
|
||||||
"composer.additional-options": "Additional Options",
|
"composer.additional-options": "Additional Options",
|
||||||
@@ -211,5 +228,8 @@
|
|||||||
"last-post": "Last post",
|
"last-post": "Last post",
|
||||||
"go-to-my-next-post": "Go to my next post",
|
"go-to-my-next-post": "Go to my next post",
|
||||||
"no-more-next-post": "You don't have more posts in this topic",
|
"no-more-next-post": "You don't have more posts in this topic",
|
||||||
"post-quick-reply": "Post quick reply"
|
"post-quick-reply": "Quick reply",
|
||||||
|
|
||||||
|
"navigator.index": "Post %1 of %2",
|
||||||
|
"navigator.unread": "%1 unread"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
"followers": "Followers",
|
"followers": "Followers",
|
||||||
"following": "Following",
|
"following": "Following",
|
||||||
"blocks": "Blocks",
|
"blocks": "Blocks",
|
||||||
|
"blocked-users": "Blocked users",
|
||||||
"block_toggle": "Toggle Block",
|
"block_toggle": "Toggle Block",
|
||||||
"block_user": "Block User",
|
"block_user": "Block User",
|
||||||
"unblock_user": "Unblock User",
|
"unblock_user": "Unblock User",
|
||||||
@@ -71,6 +72,7 @@
|
|||||||
"upload_new_picture": "Upload New Picture",
|
"upload_new_picture": "Upload New Picture",
|
||||||
"upload_new_picture_from_url": "Upload New Picture From URL",
|
"upload_new_picture_from_url": "Upload New Picture From URL",
|
||||||
"current_password": "Current Password",
|
"current_password": "Current Password",
|
||||||
|
"new_password": "New Password",
|
||||||
"change_password": "Change Password",
|
"change_password": "Change Password",
|
||||||
"change_password_error": "Invalid Password!",
|
"change_password_error": "Invalid Password!",
|
||||||
"change_password_error_wrong_current": "Your current password is not correct!",
|
"change_password_error_wrong_current": "Your current password is not correct!",
|
||||||
@@ -186,6 +188,8 @@
|
|||||||
"info.moderation-note.add": "Add note",
|
"info.moderation-note.add": "Add note",
|
||||||
|
|
||||||
"sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
|
"sessions.description": "This page allows you to view any active sessions on this forum and revoke them if necessary. You can revoke your own session by logging out of your account.",
|
||||||
|
"revoke-session": "Revoke Session",
|
||||||
|
"browser-version-on-platform": "%1 %2 on %3",
|
||||||
|
|
||||||
"consent.title": "Your Rights & Consent",
|
"consent.title": "Your Rights & Consent",
|
||||||
"consent.lead": "This community forum collects and processes your personal information.",
|
"consent.lead": "This community forum collects and processes your personal information.",
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
{
|
{
|
||||||
|
"all-users": "All Users",
|
||||||
"latest_users": "Latest Users",
|
"latest_users": "Latest Users",
|
||||||
"top_posters": "Top Posters",
|
"top_posters": "Top Posters",
|
||||||
"most_reputation": "Most Reputation",
|
"most_reputation": "Most Reputation",
|
||||||
"most_flags": "Most Flags",
|
"most_flags": "Most Flags",
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
"enter_username": "Enter a username to search",
|
"enter_username": "Enter a username to search",
|
||||||
"search-user-for-chat": "Search a user to start chat",
|
"search-user-for-chat": "Search for a user to start chat:",
|
||||||
"load_more": "Load More",
|
"load_more": "Load More",
|
||||||
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
|
"users-found-search-took": "%1 user(s) found! Search took %2 seconds.",
|
||||||
"filter-by": "Filter By",
|
"filter-by": "Filter By",
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
|
|
||||||
.page-advanced-errors {
|
|
||||||
.table {
|
|
||||||
table-layout: fixed;
|
|
||||||
|
|
||||||
th {
|
|
||||||
&:first-child {
|
|
||||||
width: 90%;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
td {
|
|
||||||
&:first-child {
|
|
||||||
word-wrap: break-word;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
.events-list {
|
|
||||||
.delete-event {
|
|
||||||
i {
|
|
||||||
cursor: pointer;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
.admin .hooks-list .panel.panel-default .panel-heading .panel-title a {
|
|
||||||
text-transform: none;
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
|
|
||||||
.logs {
|
|
||||||
.panel-body {
|
|
||||||
pre {
|
|
||||||
height: 600px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
.themes, .skins {
|
|
||||||
ul.directory {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
li {
|
|
||||||
padding: 10px 16px;
|
|
||||||
margin: 0.25em 1em;
|
|
||||||
list-style-type: none;
|
|
||||||
.pointer;
|
|
||||||
|
|
||||||
img {
|
|
||||||
max-width: 150px;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
h4, p {
|
|
||||||
margin-left: 170px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
font-size: 0.9em;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.no-themes {
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.theme-card {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
|
|
||||||
.mdl-card__title {
|
|
||||||
height: 223px;
|
|
||||||
background-size: contain;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mdl-card__supporting-text {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
margin: 0 auto;
|
|
||||||
|
|
||||||
.mdl-card__title-text {
|
|
||||||
display: inline-block;
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-theme].selected .mdl-button {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-type="bootswatch"] {
|
|
||||||
.mdl-card__title {
|
|
||||||
height: 198px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mdl-card__title-text {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-type="local"] {
|
|
||||||
.mdl-card__supporting-text {
|
|
||||||
height: 150px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea[data-field] {
|
|
||||||
min-height: 450px;
|
|
||||||
width: 100%;
|
|
||||||
resize: vertical;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
.page-admin-info #content {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
.admins-mods {
|
|
||||||
.user-card {
|
|
||||||
background: #eeeeee;
|
|
||||||
border-radius: 4px;
|
|
||||||
margin: 5px;
|
|
||||||
padding: 5px;
|
|
||||||
height: 35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.remove-user-icon {
|
|
||||||
margin-right: 5px;
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.category-depth-1 {
|
|
||||||
margin-left: 30px;
|
|
||||||
}
|
|
||||||
.category-depth-2 {
|
|
||||||
margin-left: 60px;
|
|
||||||
}
|
|
||||||
.category-depth-3 {
|
|
||||||
margin-left: 90px;
|
|
||||||
}
|
|
||||||
.category-depth-4 {
|
|
||||||
margin-left: 120px;
|
|
||||||
}
|
|
||||||
.category-depth-5 {
|
|
||||||
margin-left: 150px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
.page-admin-privileges {
|
|
||||||
@keyframes fadeOut {
|
|
||||||
0% {background-color: @brand-primary;}
|
|
||||||
100% {background-color: white;}
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-group-name].selected, [data-uid].selected {
|
|
||||||
animation-name: fadeOut;
|
|
||||||
animation-duration: 5s;
|
|
||||||
animation-fill-mode: both;
|
|
||||||
animation-timing-function: ease-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
.privilege-table {
|
|
||||||
td:first-child {
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
td[data-delta="true"] > input {
|
|
||||||
&:after {
|
|
||||||
border-color: @state-success-text;
|
|
||||||
background-color: @state-success-text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
td[data-delta="false"] > input {
|
|
||||||
&:after {
|
|
||||||
border-color: @state-danger-bg;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:indeterminate:after {
|
|
||||||
background-color: @state-danger-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
@media screen and (max-width: @screen-sm-max) {
|
|
||||||
.page-manage-registration {
|
|
||||||
.users-list {
|
|
||||||
font-size: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
.manage-users {
|
|
||||||
min-height: 500px;
|
|
||||||
.search {
|
|
||||||
.form-control {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-admin-users {
|
|
||||||
.group-card {
|
|
||||||
margin: 2px;
|
|
||||||
padding: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.remove-group-icon {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
.alert-window {
|
|
||||||
position: fixed;
|
|
||||||
width: 300px;
|
|
||||||
z-index: 10002;
|
|
||||||
|
|
||||||
right: 20px;
|
|
||||||
bottom: 0px;
|
|
||||||
|
|
||||||
.alert {
|
|
||||||
.close {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
position: relative;
|
|
||||||
top: -15px;
|
|
||||||
left: -15px;
|
|
||||||
display: block;
|
|
||||||
height: 2px;
|
|
||||||
width: 0;
|
|
||||||
transition: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-info::before {
|
|
||||||
background-color: @brand-info;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-warning::before {
|
|
||||||
background-color: @brand-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-success::before {
|
|
||||||
background-color: @brand-success;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-danger::before {
|
|
||||||
background-color: @brand-danger;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.animate {
|
|
||||||
&.alert-info::before {
|
|
||||||
background-color: lighten(@brand-info, 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-warning::before {
|
|
||||||
background-color: lighten(@brand-warning, 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-success::before {
|
|
||||||
background-color: lighten(@brand-success, 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-danger::before {
|
|
||||||
background-color: lighten(@brand-danger, 25%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&::before {
|
|
||||||
width: ~"calc(100% + 50px)";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
background-color: white;
|
|
||||||
border: 0;
|
|
||||||
border-left: 5px solid !important;
|
|
||||||
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.25), 0px 2px 10px 0px rgba(0, 0, 0, 0.25);
|
|
||||||
|
|
||||||
strong {
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
padding: 10px 0px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-info {
|
|
||||||
color: @brand-info;
|
|
||||||
border-color: @brand-info;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-warning {
|
|
||||||
color: @brand-warning;
|
|
||||||
border-color: @brand-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-success {
|
|
||||||
color: @brand-success;
|
|
||||||
border-color: @brand-success;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.alert-danger {
|
|
||||||
color: @brand-danger;
|
|
||||||
border-color: @brand-danger;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
#nprogress {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#nprogress .bar {
|
|
||||||
background: #29d;
|
|
||||||
|
|
||||||
position: fixed;
|
|
||||||
z-index: 1031;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
|
|
||||||
width: 100%;
|
|
||||||
height: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#nprogress .peg {
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
right: 0px;
|
|
||||||
width: 100px;
|
|
||||||
height: 100%;
|
|
||||||
box-shadow: 0 0 10px #29d, 0 0 5px #29d;
|
|
||||||
opacity: 1.0;
|
|
||||||
|
|
||||||
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
|
||||||
-ms-transform: rotate(3deg) translate(0px, -4px);
|
|
||||||
transform: rotate(3deg) translate(0px, -4px);
|
|
||||||
}
|
|
||||||
|
|
||||||
#nprogress .spinner {
|
|
||||||
display: block;
|
|
||||||
position: fixed;
|
|
||||||
z-index: 1031;
|
|
||||||
top: 165px;
|
|
||||||
right: 35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: @screen-xs-max) {
|
|
||||||
#nprogress .spinner {
|
|
||||||
bottom: 15px;
|
|
||||||
right: 15px;
|
|
||||||
top: initial;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#nprogress .spinner-icon {
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
border: solid 2px transparent;
|
|
||||||
border-top-color: #29d;
|
|
||||||
border-left-color: #29d;
|
|
||||||
border-radius: 50%;
|
|
||||||
|
|
||||||
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
|
||||||
animation: nprogress-spinner 400ms linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nprogress-custom-parent {
|
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nprogress-custom-parent #nprogress .spinner,
|
|
||||||
.nprogress-custom-parent #nprogress .bar {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes nprogress-spinner {
|
|
||||||
0% { -webkit-transform: rotate(0deg); }
|
|
||||||
100% { -webkit-transform: rotate(360deg); }
|
|
||||||
}
|
|
||||||
@keyframes nprogress-spinner {
|
|
||||||
0% { transform: rotate(0deg); }
|
|
||||||
100% { transform: rotate(360deg); }
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,621 +0,0 @@
|
|||||||
// Paper 3.3.5
|
|
||||||
// Bootswatch
|
|
||||||
// -----------------------------------------------------
|
|
||||||
|
|
||||||
// Navbar =====================================================================
|
|
||||||
|
|
||||||
.navbar {
|
|
||||||
border: none;
|
|
||||||
.box-shadow(0 1px 2px rgba(0,0,0,.3));
|
|
||||||
|
|
||||||
&-brand {
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-inverse {
|
|
||||||
.form-control {
|
|
||||||
color: #fff;
|
|
||||||
.placeholder(@navbar-inverse-link-color);
|
|
||||||
|
|
||||||
&[type=text],
|
|
||||||
&[type=password] {
|
|
||||||
.box-shadow(inset 0 -1px 0 @navbar-inverse-link-color);
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
.box-shadow(inset 0 -2px 0 #fff);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Buttons ====================================================================
|
|
||||||
|
|
||||||
#btn(@class,@bg) {
|
|
||||||
.btn-@{class} {
|
|
||||||
background-size: 200%;
|
|
||||||
background-position: 50%;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
background-color: @bg;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:active:hover {
|
|
||||||
background-color: darken(@bg, 6%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:active {
|
|
||||||
background-color: darken(@bg, 12%);
|
|
||||||
#gradient > .radial(darken(@bg, 12%) 10%, @bg 11%);
|
|
||||||
background-size: 1000%;
|
|
||||||
.box-shadow(2px 2px 4px rgba(0,0,0,.4));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#btn(default,@btn-default-bg);
|
|
||||||
#btn(primary,@btn-primary-bg);
|
|
||||||
#btn(success,@btn-success-bg);
|
|
||||||
#btn(info,@btn-info-bg);
|
|
||||||
#btn(warning,@btn-warning-bg);
|
|
||||||
#btn(danger,@btn-danger-bg);
|
|
||||||
#btn(link,#fff);
|
|
||||||
|
|
||||||
.btn {
|
|
||||||
text-transform: uppercase;
|
|
||||||
border: none;
|
|
||||||
.box-shadow(1px 1px 4px rgba(0,0,0,.4));
|
|
||||||
.transition(all 0.4s);
|
|
||||||
|
|
||||||
&-link {
|
|
||||||
border-radius: @btn-border-radius-base;
|
|
||||||
.box-shadow(none);
|
|
||||||
color: @btn-default-color;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
.box-shadow(none);
|
|
||||||
color: @btn-default-color;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-default {
|
|
||||||
|
|
||||||
&.disabled {
|
|
||||||
background-color: rgba(0, 0, 0, 0.1);
|
|
||||||
color: rgba(0, 0, 0, 0.4);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-group {
|
|
||||||
.btn + .btn,
|
|
||||||
.btn + .btn-group,
|
|
||||||
.btn-group + .btn,
|
|
||||||
.btn-group + .btn-group {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-vertical {
|
|
||||||
> .btn + .btn,
|
|
||||||
> .btn + .btn-group,
|
|
||||||
> .btn-group + .btn,
|
|
||||||
> .btn-group + .btn-group {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typography =================================================================
|
|
||||||
|
|
||||||
body {
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
letter-spacing: .1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
p {
|
|
||||||
margin: 0 0 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
input,
|
|
||||||
button {
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
letter-spacing: .1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
.transition(all 0.2s);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tables =====================================================================
|
|
||||||
|
|
||||||
.table-hover {
|
|
||||||
> tbody > tr,
|
|
||||||
> tbody > tr > th,
|
|
||||||
> tbody > tr > td {
|
|
||||||
.transition(all 0.2s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Forms ======================================================================
|
|
||||||
|
|
||||||
label {
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
textarea,
|
|
||||||
textarea.form-control,
|
|
||||||
input.form-control,
|
|
||||||
input[type=text],
|
|
||||||
input[type=password],
|
|
||||||
input[type=email],
|
|
||||||
input[type=number],
|
|
||||||
[type=text].form-control,
|
|
||||||
[type=password].form-control,
|
|
||||||
[type=email].form-control,
|
|
||||||
[type=tel].form-control,
|
|
||||||
[contenteditable].form-control {
|
|
||||||
padding: 0;
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
.box-shadow(inset 0 -1px 0 #ddd);
|
|
||||||
font-size: 16px;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-primary);
|
|
||||||
}
|
|
||||||
|
|
||||||
&[disabled],
|
|
||||||
&[readonly] {
|
|
||||||
.box-shadow(none);
|
|
||||||
border-bottom: 1px dotted #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.input {
|
|
||||||
&-sm {
|
|
||||||
font-size: @font-size-small;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-lg {
|
|
||||||
font-size: @font-size-large;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
select,
|
|
||||||
select.form-control {
|
|
||||||
border: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0\9; // remove padding for < ie9 since default arrow can't be removed
|
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);
|
|
||||||
background-size: 13px;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: right center;
|
|
||||||
.box-shadow(inset 0 -1px 0 #ddd);
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 1.5;
|
|
||||||
|
|
||||||
&::-ms-expand {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.input {
|
|
||||||
&-sm {
|
|
||||||
font-size: @font-size-small;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-lg {
|
|
||||||
font-size: @font-size-large;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-primary);
|
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);
|
|
||||||
}
|
|
||||||
|
|
||||||
&[multiple] {
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.radio,
|
|
||||||
.radio-inline,
|
|
||||||
.checkbox,
|
|
||||||
.checkbox-inline {
|
|
||||||
label {
|
|
||||||
padding-left: 25px;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"],
|
|
||||||
input[type="checkbox"] {
|
|
||||||
margin-left: -25px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"],
|
|
||||||
.radio input[type="radio"],
|
|
||||||
.radio-inline input[type="radio"] {
|
|
||||||
position: relative;
|
|
||||||
margin-top: 6px;
|
|
||||||
margin-right: 4px;
|
|
||||||
vertical-align: top;
|
|
||||||
border: none;
|
|
||||||
background-color: transparent;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:before,
|
|
||||||
&:after {
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
border-radius: 50%;
|
|
||||||
.transition(240ms);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:before {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: -3px;
|
|
||||||
background-color: @brand-primary;
|
|
||||||
.scale(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
position: relative;
|
|
||||||
top: -3px;
|
|
||||||
border: 2px solid @gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:checked:before {
|
|
||||||
.scale(0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:disabled:checked:before {
|
|
||||||
background-color: @gray-light;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:checked:after {
|
|
||||||
border-color: @brand-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:disabled:after,
|
|
||||||
&:disabled:checked:after {
|
|
||||||
border-color: @gray-light;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="checkbox"],
|
|
||||||
.checkbox input[type="checkbox"],
|
|
||||||
.checkbox-inline input[type="checkbox"] {
|
|
||||||
position: relative;
|
|
||||||
border: none;
|
|
||||||
margin-bottom: -4px;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
width: 18px;
|
|
||||||
height: 18px;
|
|
||||||
margin-top: -2px;
|
|
||||||
margin-right: 5px;
|
|
||||||
border: 2px solid @gray;
|
|
||||||
border-radius: 2px;
|
|
||||||
.transition(240ms);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:indeterminate:before {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 6px;
|
|
||||||
left: 6px;
|
|
||||||
display: table;
|
|
||||||
width: 6px;
|
|
||||||
height: 12px;
|
|
||||||
border-top: 2px solid #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:indeterminate:after {
|
|
||||||
background-color: @brand-primary;
|
|
||||||
border-color: @brand-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:checked:before {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 6px;
|
|
||||||
display: table;
|
|
||||||
width: 6px;
|
|
||||||
height: 12px;
|
|
||||||
border: 2px solid #fff;
|
|
||||||
border-top-width: 0;
|
|
||||||
border-left-width: 0;
|
|
||||||
.rotate(45deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:checked:after {
|
|
||||||
background-color: @brand-primary;
|
|
||||||
border-color: @brand-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:disabled:after {
|
|
||||||
border-color: @gray-light;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:disabled:checked:after {
|
|
||||||
background-color: @gray-light;
|
|
||||||
border-color: transparent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-warning {
|
|
||||||
input:not([type=checkbox]),
|
|
||||||
.form-control,
|
|
||||||
input.form-control[readonly],
|
|
||||||
input[type=text][readonly],
|
|
||||||
[type=text].form-control[readonly],
|
|
||||||
input:not([type=checkbox]):focus,
|
|
||||||
.form-control:focus {
|
|
||||||
border-bottom: none;
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-warning);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-error {
|
|
||||||
input:not([type=checkbox]),
|
|
||||||
.form-control,
|
|
||||||
input.form-control[readonly],
|
|
||||||
input[type=text][readonly],
|
|
||||||
[type=text].form-control[readonly],
|
|
||||||
input:not([type=checkbox]):focus,
|
|
||||||
.form-control:focus {
|
|
||||||
border-bottom: none;
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-danger);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.has-success {
|
|
||||||
input:not([type=checkbox]),
|
|
||||||
.form-control,
|
|
||||||
input.form-control[readonly],
|
|
||||||
input[type=text][readonly],
|
|
||||||
[type=text].form-control[readonly],
|
|
||||||
input:not([type=checkbox]):focus,
|
|
||||||
.form-control:focus {
|
|
||||||
border-bottom: none;
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-success);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove the Bootstrap feedback styles for input addons
|
|
||||||
.input-group-addon {
|
|
||||||
.has-warning &, .has-error &, .has-success & {
|
|
||||||
color: @input-color;
|
|
||||||
border-color: @input-group-addon-border-color;
|
|
||||||
background-color: @input-group-addon-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Navs =======================================================================
|
|
||||||
|
|
||||||
.nav-tabs {
|
|
||||||
> li > a,
|
|
||||||
> li > a:focus {
|
|
||||||
margin-right: 0;
|
|
||||||
background-color: transparent;
|
|
||||||
border: none;
|
|
||||||
color: @navbar-default-link-color;
|
|
||||||
.box-shadow(inset 0 -1px 0 #ddd);
|
|
||||||
.transition(all 0.2s);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: transparent;
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-primary);
|
|
||||||
color: @brand-primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
& > li.active > a,
|
|
||||||
& > li.active > a:focus {
|
|
||||||
border: none;
|
|
||||||
.box-shadow(inset 0 -2px 0 @brand-primary);
|
|
||||||
color: @brand-primary;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
border: none;
|
|
||||||
color: @brand-primary;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
& > li.disabled > a {
|
|
||||||
.box-shadow(inset 0 -1px 0 #ddd);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.nav-justified {
|
|
||||||
|
|
||||||
& > li > a,
|
|
||||||
& > li > a:hover,
|
|
||||||
& > li > a:focus,
|
|
||||||
& > .active > a,
|
|
||||||
& > .active > a:hover,
|
|
||||||
& > .active > a:focus {
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
margin-top: 0;
|
|
||||||
border: none;
|
|
||||||
.box-shadow(0 1px 4px rgba(0,0,0,.3));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Indicators =================================================================
|
|
||||||
|
|
||||||
.alert {
|
|
||||||
border: none;
|
|
||||||
color: #fff;
|
|
||||||
|
|
||||||
&-success {
|
|
||||||
background-color: @brand-success;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-info {
|
|
||||||
background-color: @brand-info;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-warning {
|
|
||||||
background-color: @brand-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-danger {
|
|
||||||
background-color: @brand-danger;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:not(.close),
|
|
||||||
.alert-link {
|
|
||||||
color: #fff;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.close {
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.badge {
|
|
||||||
padding: 3px 6px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.progress {
|
|
||||||
position: relative;
|
|
||||||
z-index: 1;
|
|
||||||
height: 6px;
|
|
||||||
border-radius: 0;
|
|
||||||
|
|
||||||
.box-shadow(none);
|
|
||||||
|
|
||||||
&-bar {
|
|
||||||
.box-shadow(none);
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
border-radius: 0 3px 3px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
&:before {
|
|
||||||
display: block;
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: -1;
|
|
||||||
background-color: lighten(@progress-bar-bg, 35%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-success:last-child.progress-bar:before {
|
|
||||||
background-color: lighten(@brand-success, 35%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&-info:last-child.progress-bar:before {
|
|
||||||
background-color: lighten(@brand-info, 45%);
|
|
||||||
}
|
|
||||||
&-warning:last-child.progress-bar:before {
|
|
||||||
background-color: lighten(@brand-warning, 35%);
|
|
||||||
}
|
|
||||||
|
|
||||||
&-danger:last-child.progress-bar:before {
|
|
||||||
background-color: lighten(@brand-danger, 25%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Progress bars ==============================================================
|
|
||||||
|
|
||||||
// Containers =================================================================
|
|
||||||
|
|
||||||
.close {
|
|
||||||
font-size: 34px;
|
|
||||||
font-weight: 300;
|
|
||||||
line-height: 24px;
|
|
||||||
opacity: 0.6;
|
|
||||||
.transition(all 0.2s);
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group {
|
|
||||||
|
|
||||||
&-item {
|
|
||||||
padding: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-item-text {
|
|
||||||
color: @gray-light;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.well {
|
|
||||||
border-radius: 0;
|
|
||||||
.box-shadow(none);
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel {
|
|
||||||
border: none;
|
|
||||||
border-radius: 2px;
|
|
||||||
.box-shadow(0 1px 4px rgba(0,0,0,.3));
|
|
||||||
|
|
||||||
&-heading {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-footer {
|
|
||||||
border-top: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.popover {
|
|
||||||
border: none;
|
|
||||||
.box-shadow(0 1px 4px rgba(0,0,0,.3));
|
|
||||||
}
|
|
||||||
|
|
||||||
.carousel {
|
|
||||||
&-caption {
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
color: inherit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,869 +0,0 @@
|
|||||||
// Paper 3.3.7
|
|
||||||
// Variables
|
|
||||||
// --------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
//== Colors
|
|
||||||
//
|
|
||||||
//## Gray and brand colors for use across Bootstrap.
|
|
||||||
|
|
||||||
@gray-base: #000;
|
|
||||||
@gray-darker: lighten(@gray-base, 13.5%); // #222
|
|
||||||
@gray-dark: #212121;
|
|
||||||
@gray: #666;
|
|
||||||
@gray-light: #bbb;
|
|
||||||
@gray-lighter: lighten(@gray-base, 93.5%); // #eee
|
|
||||||
|
|
||||||
@brand-primary: #2196F3;
|
|
||||||
@brand-success: #4CAF50;
|
|
||||||
@brand-info: #9C27B0;
|
|
||||||
@brand-warning: #ff9800;
|
|
||||||
@brand-danger: #e51c23;
|
|
||||||
|
|
||||||
|
|
||||||
//== Scaffolding
|
|
||||||
//
|
|
||||||
//## Settings for some of the most global styles.
|
|
||||||
|
|
||||||
//** Background color for `<body>`.
|
|
||||||
@body-bg: #fff;
|
|
||||||
//** Global text color on `<body>`.
|
|
||||||
@text-color: @gray;
|
|
||||||
|
|
||||||
//** Global textual link color.
|
|
||||||
@link-color: @brand-primary;
|
|
||||||
//** Link hover color set via `darken()` function.
|
|
||||||
@link-hover-color: darken(@link-color, 15%);
|
|
||||||
//** Link hover decoration.
|
|
||||||
@link-hover-decoration: underline;
|
|
||||||
|
|
||||||
|
|
||||||
//== Typography
|
|
||||||
//
|
|
||||||
//## Font, line-height, and color for body text, headings, and more.
|
|
||||||
|
|
||||||
@font-family-sans-serif: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
||||||
@font-family-serif: Georgia, "Times New Roman", Times, serif;
|
|
||||||
//** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`.
|
|
||||||
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
|
|
||||||
@font-family-base: @font-family-sans-serif;
|
|
||||||
|
|
||||||
@font-size-base: 13px;
|
|
||||||
@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
|
|
||||||
@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
|
|
||||||
|
|
||||||
@font-size-h1: 56px;
|
|
||||||
@font-size-h2: 45px;
|
|
||||||
@font-size-h3: 34px;
|
|
||||||
@font-size-h4: 24px;
|
|
||||||
@font-size-h5: 20px;
|
|
||||||
@font-size-h6: 14px;
|
|
||||||
|
|
||||||
//** Unit-less `line-height` for use in components like buttons.
|
|
||||||
@line-height-base: 1.846; // 20/14
|
|
||||||
//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
|
|
||||||
@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
|
|
||||||
|
|
||||||
//** By default, this inherits from the `<body>`.
|
|
||||||
@headings-font-family: inherit;
|
|
||||||
@headings-font-weight: 400;
|
|
||||||
@headings-line-height: 1.1;
|
|
||||||
@headings-color: #444;
|
|
||||||
|
|
||||||
|
|
||||||
//== Iconography
|
|
||||||
//
|
|
||||||
//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
|
|
||||||
|
|
||||||
//** Load fonts from this directory.
|
|
||||||
@icon-font-path: "../fonts/";
|
|
||||||
//** File name for all font files.
|
|
||||||
@icon-font-name: "glyphicons-halflings-regular";
|
|
||||||
//** Element ID within SVG icon file.
|
|
||||||
@icon-font-svg-id: "glyphicons_halflingsregular";
|
|
||||||
|
|
||||||
|
|
||||||
//== Components
|
|
||||||
//
|
|
||||||
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
|
||||||
|
|
||||||
@padding-base-vertical: 6px;
|
|
||||||
@padding-base-horizontal: 16px;
|
|
||||||
|
|
||||||
@padding-large-vertical: 10px;
|
|
||||||
@padding-large-horizontal: 16px;
|
|
||||||
|
|
||||||
@padding-small-vertical: 5px;
|
|
||||||
@padding-small-horizontal: 10px;
|
|
||||||
|
|
||||||
@padding-xs-vertical: 1px;
|
|
||||||
@padding-xs-horizontal: 5px;
|
|
||||||
|
|
||||||
@line-height-large: 1.3333333; // extra decimals for Win 8.1 Chrome
|
|
||||||
@line-height-small: 1.5;
|
|
||||||
|
|
||||||
@border-radius-base: 3px;
|
|
||||||
@border-radius-large: 3px;
|
|
||||||
@border-radius-small: 3px;
|
|
||||||
|
|
||||||
//** Global color for active items (e.g., navs or dropdowns).
|
|
||||||
@component-active-color: #fff;
|
|
||||||
//** Global background color for active items (e.g., navs or dropdowns).
|
|
||||||
@component-active-bg: @brand-primary;
|
|
||||||
|
|
||||||
//** Width of the `border` for generating carets that indicate dropdowns.
|
|
||||||
@caret-width-base: 4px;
|
|
||||||
//** Carets increase slightly in size for larger components.
|
|
||||||
@caret-width-large: 5px;
|
|
||||||
|
|
||||||
|
|
||||||
//== Tables
|
|
||||||
//
|
|
||||||
//## Customizes the `.table` component with basic values, each used across all table variations.
|
|
||||||
|
|
||||||
//** Padding for `<th>`s and `<td>`s.
|
|
||||||
@table-cell-padding: 8px;
|
|
||||||
//** Padding for cells in `.table-condensed`.
|
|
||||||
@table-condensed-cell-padding: 5px;
|
|
||||||
|
|
||||||
//** Default background color used for all tables.
|
|
||||||
@table-bg: transparent;
|
|
||||||
//** Background color used for `.table-striped`.
|
|
||||||
@table-bg-accent: #f9f9f9;
|
|
||||||
//** Background color used for `.table-hover`.
|
|
||||||
@table-bg-hover: #f5f5f5;
|
|
||||||
@table-bg-active: @table-bg-hover;
|
|
||||||
|
|
||||||
//** Border color for table and cell borders.
|
|
||||||
@table-border-color: #ddd;
|
|
||||||
|
|
||||||
|
|
||||||
//== Buttons
|
|
||||||
//
|
|
||||||
//## For each of Bootstrap's buttons, define text, background and border color.
|
|
||||||
|
|
||||||
@btn-font-weight: normal;
|
|
||||||
|
|
||||||
@btn-default-color: #444;
|
|
||||||
@btn-default-bg: #fff;
|
|
||||||
@btn-default-border: transparent;
|
|
||||||
|
|
||||||
@btn-primary-color: #fff;
|
|
||||||
@btn-primary-bg: @brand-primary;
|
|
||||||
@btn-primary-border: transparent;
|
|
||||||
|
|
||||||
@btn-success-color: #fff;
|
|
||||||
@btn-success-bg: @brand-success;
|
|
||||||
@btn-success-border: transparent;
|
|
||||||
|
|
||||||
@btn-info-color: #fff;
|
|
||||||
@btn-info-bg: @brand-info;
|
|
||||||
@btn-info-border: transparent;
|
|
||||||
|
|
||||||
@btn-warning-color: #fff;
|
|
||||||
@btn-warning-bg: @brand-warning;
|
|
||||||
@btn-warning-border: transparent;
|
|
||||||
|
|
||||||
@btn-danger-color: #fff;
|
|
||||||
@btn-danger-bg: @brand-danger;
|
|
||||||
@btn-danger-border: transparent;
|
|
||||||
|
|
||||||
@btn-link-disabled-color: @gray-light;
|
|
||||||
|
|
||||||
// Allows for customizing button radius independently from global border radius
|
|
||||||
@btn-border-radius-base: @border-radius-base;
|
|
||||||
@btn-border-radius-large: @border-radius-large;
|
|
||||||
@btn-border-radius-small: @border-radius-small;
|
|
||||||
|
|
||||||
|
|
||||||
//== Forms
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** `<input>` background color
|
|
||||||
@input-bg: transparent;
|
|
||||||
//** `<input disabled>` background color
|
|
||||||
@input-bg-disabled: transparent;
|
|
||||||
|
|
||||||
//** Text color for `<input>`s
|
|
||||||
@input-color: @gray;
|
|
||||||
//** `<input>` border color
|
|
||||||
@input-border: transparent;
|
|
||||||
|
|
||||||
// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
|
|
||||||
//** Default `.form-control` border radius
|
|
||||||
// This has no effect on `<select>`s in some browsers, due to the limited stylability of `<select>`s in CSS.
|
|
||||||
@input-border-radius: @border-radius-base;
|
|
||||||
//** Large `.form-control` border radius
|
|
||||||
@input-border-radius-large: @border-radius-large;
|
|
||||||
//** Small `.form-control` border radius
|
|
||||||
@input-border-radius-small: @border-radius-small;
|
|
||||||
|
|
||||||
//** Border color for inputs on focus
|
|
||||||
@input-border-focus: #66afe9;
|
|
||||||
|
|
||||||
//** Placeholder text color
|
|
||||||
@input-color-placeholder: @gray-light;
|
|
||||||
|
|
||||||
//** Default `.form-control` height
|
|
||||||
@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
|
|
||||||
//** Large `.form-control` height
|
|
||||||
@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
|
|
||||||
//** Small `.form-control` height
|
|
||||||
@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
|
|
||||||
|
|
||||||
//** `.form-group` margin
|
|
||||||
@form-group-margin-bottom: 15px;
|
|
||||||
|
|
||||||
@legend-color: @gray-dark;
|
|
||||||
@legend-border-color: #e5e5e5;
|
|
||||||
|
|
||||||
//** Background color for textual input addons
|
|
||||||
@input-group-addon-bg: transparent;
|
|
||||||
//** Border color for textual input addons
|
|
||||||
@input-group-addon-border-color: @input-border;
|
|
||||||
|
|
||||||
//** Disabled cursor for form controls and buttons.
|
|
||||||
@cursor-disabled: not-allowed;
|
|
||||||
|
|
||||||
|
|
||||||
//== Dropdowns
|
|
||||||
//
|
|
||||||
//## Dropdown menu container and contents.
|
|
||||||
|
|
||||||
//** Background for the dropdown menu.
|
|
||||||
@dropdown-bg: #fff;
|
|
||||||
//** Dropdown menu `border-color`.
|
|
||||||
@dropdown-border: rgba(0,0,0,.15);
|
|
||||||
//** Dropdown menu `border-color` **for IE8**.
|
|
||||||
@dropdown-fallback-border: #ccc;
|
|
||||||
//** Divider color for between dropdown items.
|
|
||||||
@dropdown-divider-bg: #e5e5e5;
|
|
||||||
|
|
||||||
//** Dropdown link text color.
|
|
||||||
@dropdown-link-color: @text-color;
|
|
||||||
//** Hover color for dropdown links.
|
|
||||||
@dropdown-link-hover-color: darken(@gray-dark, 5%);
|
|
||||||
//** Hover background for dropdown links.
|
|
||||||
@dropdown-link-hover-bg: @gray-lighter;
|
|
||||||
|
|
||||||
//** Active dropdown menu item text color.
|
|
||||||
@dropdown-link-active-color: @component-active-color;
|
|
||||||
//** Active dropdown menu item background color.
|
|
||||||
@dropdown-link-active-bg: @component-active-bg;
|
|
||||||
|
|
||||||
//** Disabled dropdown menu item background color.
|
|
||||||
@dropdown-link-disabled-color: @gray-light;
|
|
||||||
|
|
||||||
//** Text color for headers within dropdown menus.
|
|
||||||
@dropdown-header-color: @gray-light;
|
|
||||||
|
|
||||||
//** Deprecated `@dropdown-caret-color` as of v3.1.0
|
|
||||||
@dropdown-caret-color: @gray-light;
|
|
||||||
|
|
||||||
|
|
||||||
//-- Z-index master list
|
|
||||||
//
|
|
||||||
// Warning: Avoid customizing these values. They're used for a bird's eye view
|
|
||||||
// of components dependent on the z-axis and are designed to all work together.
|
|
||||||
//
|
|
||||||
// Note: These variables are not generated into the Customizer.
|
|
||||||
|
|
||||||
@zindex-navbar: 1000;
|
|
||||||
@zindex-dropdown: 1000;
|
|
||||||
@zindex-popover: 1060;
|
|
||||||
@zindex-tooltip: 1070;
|
|
||||||
@zindex-navbar-fixed: 1030;
|
|
||||||
@zindex-modal-background: 1040;
|
|
||||||
@zindex-modal: 1050;
|
|
||||||
|
|
||||||
|
|
||||||
//== Media queries breakpoints
|
|
||||||
//
|
|
||||||
//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
|
|
||||||
|
|
||||||
// Extra small screen / phone
|
|
||||||
//** Deprecated `@screen-xs` as of v3.0.1
|
|
||||||
@screen-xs: 480px;
|
|
||||||
//** Deprecated `@screen-xs-min` as of v3.2.0
|
|
||||||
@screen-xs-min: @screen-xs;
|
|
||||||
//** Deprecated `@screen-phone` as of v3.0.1
|
|
||||||
@screen-phone: @screen-xs-min;
|
|
||||||
|
|
||||||
// Small screen / tablet
|
|
||||||
//** Deprecated `@screen-sm` as of v3.0.1
|
|
||||||
@screen-sm: 768px;
|
|
||||||
@screen-sm-min: @screen-sm;
|
|
||||||
//** Deprecated `@screen-tablet` as of v3.0.1
|
|
||||||
@screen-tablet: @screen-sm-min;
|
|
||||||
|
|
||||||
// Medium screen / desktop
|
|
||||||
//** Deprecated `@screen-md` as of v3.0.1
|
|
||||||
@screen-md: 992px;
|
|
||||||
@screen-md-min: @screen-md;
|
|
||||||
//** Deprecated `@screen-desktop` as of v3.0.1
|
|
||||||
@screen-desktop: @screen-md-min;
|
|
||||||
|
|
||||||
// Large screen / wide desktop
|
|
||||||
//** Deprecated `@screen-lg` as of v3.0.1
|
|
||||||
@screen-lg: 1200px;
|
|
||||||
@screen-lg-min: @screen-lg;
|
|
||||||
//** Deprecated `@screen-lg-desktop` as of v3.0.1
|
|
||||||
@screen-lg-desktop: @screen-lg-min;
|
|
||||||
|
|
||||||
// So media queries don't overlap when required, provide a maximum
|
|
||||||
@screen-xs-max: (@screen-sm-min - 1);
|
|
||||||
@screen-sm-max: (@screen-md-min - 1);
|
|
||||||
@screen-md-max: (@screen-lg-min - 1);
|
|
||||||
|
|
||||||
|
|
||||||
//== Grid system
|
|
||||||
//
|
|
||||||
//## Define your custom responsive grid.
|
|
||||||
|
|
||||||
//** Number of columns in the grid.
|
|
||||||
@grid-columns: 12;
|
|
||||||
//** Padding between columns. Gets divided in half for the left and right.
|
|
||||||
@grid-gutter-width: 30px;
|
|
||||||
// Navbar collapse
|
|
||||||
//** Point at which the navbar becomes uncollapsed.
|
|
||||||
@grid-float-breakpoint: @screen-sm-min;
|
|
||||||
//** Point at which the navbar begins collapsing.
|
|
||||||
@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
|
|
||||||
|
|
||||||
|
|
||||||
//== Container sizes
|
|
||||||
//
|
|
||||||
//## Define the maximum width of `.container` for different screen sizes.
|
|
||||||
|
|
||||||
// Small screen / tablet
|
|
||||||
@container-tablet: (720px + @grid-gutter-width);
|
|
||||||
//** For `@screen-sm-min` and up.
|
|
||||||
@container-sm: @container-tablet;
|
|
||||||
|
|
||||||
// Medium screen / desktop
|
|
||||||
@container-desktop: (940px + @grid-gutter-width);
|
|
||||||
//** For `@screen-md-min` and up.
|
|
||||||
@container-md: @container-desktop;
|
|
||||||
|
|
||||||
// Large screen / wide desktop
|
|
||||||
@container-large-desktop: (1140px + @grid-gutter-width);
|
|
||||||
//** For `@screen-lg-min` and up.
|
|
||||||
@container-lg: @container-large-desktop;
|
|
||||||
|
|
||||||
|
|
||||||
//== Navbar
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
// Basics of a navbar
|
|
||||||
@navbar-height: 64px;
|
|
||||||
@navbar-margin-bottom: @line-height-computed;
|
|
||||||
@navbar-border-radius: @border-radius-base;
|
|
||||||
@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
|
|
||||||
@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
|
|
||||||
@navbar-collapse-max-height: 340px;
|
|
||||||
|
|
||||||
@navbar-default-color: @gray-light;
|
|
||||||
@navbar-default-bg: #fff;
|
|
||||||
@navbar-default-border: transparent;
|
|
||||||
|
|
||||||
// Navbar links
|
|
||||||
@navbar-default-link-color: @gray;
|
|
||||||
@navbar-default-link-hover-color: @gray-dark;
|
|
||||||
@navbar-default-link-hover-bg: transparent;
|
|
||||||
@navbar-default-link-active-color: @gray-dark;
|
|
||||||
@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);
|
|
||||||
@navbar-default-link-disabled-color: #ccc;
|
|
||||||
@navbar-default-link-disabled-bg: transparent;
|
|
||||||
|
|
||||||
// Navbar brand label
|
|
||||||
@navbar-default-brand-color: @navbar-default-link-color;
|
|
||||||
@navbar-default-brand-hover-color: @navbar-default-link-hover-color;
|
|
||||||
@navbar-default-brand-hover-bg: transparent;
|
|
||||||
|
|
||||||
// Navbar toggle
|
|
||||||
@navbar-default-toggle-hover-bg: transparent;
|
|
||||||
@navbar-default-toggle-icon-bar-bg: rgba(0,0,0,0.5);
|
|
||||||
@navbar-default-toggle-border-color: transparent;
|
|
||||||
|
|
||||||
|
|
||||||
//=== Inverted navbar
|
|
||||||
// Reset inverted navbar basics
|
|
||||||
@navbar-inverse-color: @gray-light;
|
|
||||||
@navbar-inverse-bg: @brand-primary;
|
|
||||||
@navbar-inverse-border: transparent;
|
|
||||||
|
|
||||||
// Inverted navbar links
|
|
||||||
@navbar-inverse-link-color: lighten(@brand-primary, 30%);
|
|
||||||
@navbar-inverse-link-hover-color: #fff;
|
|
||||||
@navbar-inverse-link-hover-bg: transparent;
|
|
||||||
@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
|
|
||||||
@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);
|
|
||||||
@navbar-inverse-link-disabled-color: #444;
|
|
||||||
@navbar-inverse-link-disabled-bg: transparent;
|
|
||||||
|
|
||||||
// Inverted navbar brand label
|
|
||||||
@navbar-inverse-brand-color: @navbar-inverse-link-color;
|
|
||||||
@navbar-inverse-brand-hover-color: #fff;
|
|
||||||
@navbar-inverse-brand-hover-bg: transparent;
|
|
||||||
|
|
||||||
// Inverted navbar toggle\
|
|
||||||
@navbar-inverse-toggle-hover-bg: transparent;
|
|
||||||
@navbar-inverse-toggle-icon-bar-bg: rgba(0,0,0,0.5);
|
|
||||||
@navbar-inverse-toggle-border-color: transparent;
|
|
||||||
|
|
||||||
|
|
||||||
//== Navs
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//=== Shared nav styles
|
|
||||||
@nav-link-padding: 10px 15px;
|
|
||||||
@nav-link-hover-bg: @gray-lighter;
|
|
||||||
|
|
||||||
@nav-disabled-link-color: @gray-light;
|
|
||||||
@nav-disabled-link-hover-color: @gray-light;
|
|
||||||
|
|
||||||
//== Tabs
|
|
||||||
@nav-tabs-border-color: transparent;
|
|
||||||
|
|
||||||
@nav-tabs-link-hover-border-color: @gray-lighter;
|
|
||||||
|
|
||||||
@nav-tabs-active-link-hover-bg: transparent;
|
|
||||||
@nav-tabs-active-link-hover-color: @gray;
|
|
||||||
@nav-tabs-active-link-hover-border-color: transparent;
|
|
||||||
|
|
||||||
@nav-tabs-justified-link-border-color: @nav-tabs-border-color;
|
|
||||||
@nav-tabs-justified-active-link-border-color: @body-bg;
|
|
||||||
|
|
||||||
//== Pills
|
|
||||||
@nav-pills-border-radius: @border-radius-base;
|
|
||||||
@nav-pills-active-link-hover-bg: @component-active-bg;
|
|
||||||
@nav-pills-active-link-hover-color: @component-active-color;
|
|
||||||
|
|
||||||
|
|
||||||
//== Pagination
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@pagination-color: @link-color;
|
|
||||||
@pagination-bg: #fff;
|
|
||||||
@pagination-border: #ddd;
|
|
||||||
|
|
||||||
@pagination-hover-color: @link-hover-color;
|
|
||||||
@pagination-hover-bg: @gray-lighter;
|
|
||||||
@pagination-hover-border: #ddd;
|
|
||||||
|
|
||||||
@pagination-active-color: #fff;
|
|
||||||
@pagination-active-bg: @brand-primary;
|
|
||||||
@pagination-active-border: @brand-primary;
|
|
||||||
|
|
||||||
@pagination-disabled-color: @gray-light;
|
|
||||||
@pagination-disabled-bg: #fff;
|
|
||||||
@pagination-disabled-border: #ddd;
|
|
||||||
|
|
||||||
|
|
||||||
//== Pager
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@pager-bg: @pagination-bg;
|
|
||||||
@pager-border: @pagination-border;
|
|
||||||
@pager-border-radius: 15px;
|
|
||||||
|
|
||||||
@pager-hover-bg: @pagination-hover-bg;
|
|
||||||
|
|
||||||
@pager-active-bg: @pagination-active-bg;
|
|
||||||
@pager-active-color: @pagination-active-color;
|
|
||||||
|
|
||||||
@pager-disabled-color: @pagination-disabled-color;
|
|
||||||
|
|
||||||
|
|
||||||
//== Jumbotron
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@jumbotron-padding: 30px;
|
|
||||||
@jumbotron-color: inherit;
|
|
||||||
@jumbotron-bg: #f5f5f5;
|
|
||||||
@jumbotron-heading-color: @headings-color;
|
|
||||||
@jumbotron-font-size: ceil((@font-size-base * 1.5));
|
|
||||||
@jumbotron-heading-font-size: ceil((@font-size-base * 4.5));
|
|
||||||
|
|
||||||
|
|
||||||
//== Form states and alerts
|
|
||||||
//
|
|
||||||
//## Define colors for form feedback states and, by default, alerts.
|
|
||||||
|
|
||||||
@state-success-text: @brand-success;
|
|
||||||
@state-success-bg: #dff0d8;
|
|
||||||
@state-success-border: darken(spin(@state-success-bg, -10), 5%);
|
|
||||||
|
|
||||||
@state-info-text: @brand-info;
|
|
||||||
@state-info-bg: #e1bee7;
|
|
||||||
@state-info-border: darken(spin(@state-info-bg, -10), 7%);
|
|
||||||
|
|
||||||
@state-warning-text: @brand-warning;
|
|
||||||
@state-warning-bg: #ffe0b2;
|
|
||||||
@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
|
|
||||||
|
|
||||||
@state-danger-text: @brand-danger;
|
|
||||||
@state-danger-bg: #f9bdbb;
|
|
||||||
@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
|
|
||||||
|
|
||||||
|
|
||||||
//== Tooltips
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Tooltip max width
|
|
||||||
@tooltip-max-width: 200px;
|
|
||||||
//** Tooltip text color
|
|
||||||
@tooltip-color: #fff;
|
|
||||||
//** Tooltip background color
|
|
||||||
@tooltip-bg: #727272;
|
|
||||||
@tooltip-opacity: .9;
|
|
||||||
|
|
||||||
//** Tooltip arrow width
|
|
||||||
@tooltip-arrow-width: 5px;
|
|
||||||
//** Tooltip arrow color
|
|
||||||
@tooltip-arrow-color: @tooltip-bg;
|
|
||||||
|
|
||||||
|
|
||||||
//== Popovers
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Popover body background color
|
|
||||||
@popover-bg: #fff;
|
|
||||||
//** Popover maximum width
|
|
||||||
@popover-max-width: 276px;
|
|
||||||
//** Popover border color
|
|
||||||
@popover-border-color: transparent;
|
|
||||||
//** Popover fallback border color
|
|
||||||
@popover-fallback-border-color: transparent;
|
|
||||||
|
|
||||||
//** Popover title background color
|
|
||||||
@popover-title-bg: darken(@popover-bg, 3%);
|
|
||||||
|
|
||||||
//** Popover arrow width
|
|
||||||
@popover-arrow-width: 10px;
|
|
||||||
//** Popover arrow color
|
|
||||||
@popover-arrow-color: @popover-bg;
|
|
||||||
|
|
||||||
//** Popover outer arrow width
|
|
||||||
@popover-arrow-outer-width: (@popover-arrow-width + 1);
|
|
||||||
//** Popover outer arrow color
|
|
||||||
@popover-arrow-outer-color: fadein(@popover-border-color, 12%);
|
|
||||||
//** Popover outer arrow fallback color
|
|
||||||
@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
|
|
||||||
|
|
||||||
|
|
||||||
//== Labels
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Default label background color
|
|
||||||
@label-default-bg: @gray-light;
|
|
||||||
//** Primary label background color
|
|
||||||
@label-primary-bg: @brand-primary;
|
|
||||||
//** Success label background color
|
|
||||||
@label-success-bg: @brand-success;
|
|
||||||
//** Info label background color
|
|
||||||
@label-info-bg: @brand-info;
|
|
||||||
//** Warning label background color
|
|
||||||
@label-warning-bg: @brand-warning;
|
|
||||||
//** Danger label background color
|
|
||||||
@label-danger-bg: @brand-danger;
|
|
||||||
|
|
||||||
//** Default label text color
|
|
||||||
@label-color: #fff;
|
|
||||||
//** Default text color of a linked label
|
|
||||||
@label-link-hover-color: #fff;
|
|
||||||
|
|
||||||
|
|
||||||
//== Modals
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Padding applied to the modal body
|
|
||||||
@modal-inner-padding: 15px;
|
|
||||||
|
|
||||||
//** Padding applied to the modal title
|
|
||||||
@modal-title-padding: 15px;
|
|
||||||
//** Modal title line-height
|
|
||||||
@modal-title-line-height: @line-height-base;
|
|
||||||
|
|
||||||
//** Background color of modal content area
|
|
||||||
@modal-content-bg: #fff;
|
|
||||||
//** Modal content border color
|
|
||||||
@modal-content-border-color: transparent;
|
|
||||||
//** Modal content border color **for IE8**
|
|
||||||
@modal-content-fallback-border-color: #999;
|
|
||||||
|
|
||||||
//** Modal backdrop background color
|
|
||||||
@modal-backdrop-bg: #000;
|
|
||||||
//** Modal backdrop opacity
|
|
||||||
@modal-backdrop-opacity: .5;
|
|
||||||
//** Modal header border color
|
|
||||||
@modal-header-border-color: transparent;
|
|
||||||
//** Modal footer border color
|
|
||||||
@modal-footer-border-color: @modal-header-border-color;
|
|
||||||
|
|
||||||
@modal-lg: 900px;
|
|
||||||
@modal-md: 600px;
|
|
||||||
@modal-sm: 300px;
|
|
||||||
|
|
||||||
|
|
||||||
//== Alerts
|
|
||||||
//
|
|
||||||
//## Define alert colors, border radius, and padding.
|
|
||||||
|
|
||||||
@alert-padding: 15px;
|
|
||||||
@alert-border-radius: @border-radius-base;
|
|
||||||
@alert-link-font-weight: bold;
|
|
||||||
|
|
||||||
@alert-success-bg: @state-success-bg;
|
|
||||||
@alert-success-text: @state-success-text;
|
|
||||||
@alert-success-border: @state-success-border;
|
|
||||||
|
|
||||||
@alert-info-bg: @state-info-bg;
|
|
||||||
@alert-info-text: @state-info-text;
|
|
||||||
@alert-info-border: @state-info-border;
|
|
||||||
|
|
||||||
@alert-warning-bg: @state-warning-bg;
|
|
||||||
@alert-warning-text: @state-warning-text;
|
|
||||||
@alert-warning-border: @state-warning-border;
|
|
||||||
|
|
||||||
@alert-danger-bg: @state-danger-bg;
|
|
||||||
@alert-danger-text: @state-danger-text;
|
|
||||||
@alert-danger-border: @state-danger-border;
|
|
||||||
|
|
||||||
|
|
||||||
//== Progress bars
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Background color of the whole progress component
|
|
||||||
@progress-bg: #f5f5f5;
|
|
||||||
//** Progress bar text color
|
|
||||||
@progress-bar-color: #fff;
|
|
||||||
//** Variable for setting rounded corners on progress bar.
|
|
||||||
@progress-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Default progress bar color
|
|
||||||
@progress-bar-bg: @brand-primary;
|
|
||||||
//** Success progress bar color
|
|
||||||
@progress-bar-success-bg: @brand-success;
|
|
||||||
//** Warning progress bar color
|
|
||||||
@progress-bar-warning-bg: @brand-warning;
|
|
||||||
//** Danger progress bar color
|
|
||||||
@progress-bar-danger-bg: @brand-danger;
|
|
||||||
//** Info progress bar color
|
|
||||||
@progress-bar-info-bg: @brand-info;
|
|
||||||
|
|
||||||
|
|
||||||
//== List group
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Background color on `.list-group-item`
|
|
||||||
@list-group-bg: #fff;
|
|
||||||
//** `.list-group-item` border color
|
|
||||||
@list-group-border: #ddd;
|
|
||||||
//** List group border radius
|
|
||||||
@list-group-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Background color of single list items on hover
|
|
||||||
@list-group-hover-bg: #f5f5f5;
|
|
||||||
//** Text color of active list items
|
|
||||||
@list-group-active-color: @component-active-color;
|
|
||||||
//** Background color of active list items
|
|
||||||
@list-group-active-bg: @component-active-bg;
|
|
||||||
//** Border color of active list elements
|
|
||||||
@list-group-active-border: @list-group-active-bg;
|
|
||||||
//** Text color for content within active list items
|
|
||||||
@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
|
|
||||||
|
|
||||||
//** Text color of disabled list items
|
|
||||||
@list-group-disabled-color: @gray-light;
|
|
||||||
//** Background color of disabled list items
|
|
||||||
@list-group-disabled-bg: @gray-lighter;
|
|
||||||
//** Text color for content within disabled list items
|
|
||||||
@list-group-disabled-text-color: @list-group-disabled-color;
|
|
||||||
|
|
||||||
@list-group-link-color: #555;
|
|
||||||
@list-group-link-hover-color: @list-group-link-color;
|
|
||||||
@list-group-link-heading-color: #333;
|
|
||||||
|
|
||||||
|
|
||||||
//== Panels
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@panel-bg: #fff;
|
|
||||||
@panel-body-padding: 15px;
|
|
||||||
@panel-heading-padding: 10px 15px;
|
|
||||||
@panel-footer-padding: @panel-heading-padding;
|
|
||||||
@panel-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Border color for elements within panels
|
|
||||||
@panel-inner-border: #ddd;
|
|
||||||
@panel-footer-bg: #f5f5f5;
|
|
||||||
|
|
||||||
@panel-default-text: @gray-dark;
|
|
||||||
@panel-default-border: #ddd;
|
|
||||||
@panel-default-heading-bg: #f5f5f5;
|
|
||||||
|
|
||||||
@panel-primary-text: #fff;
|
|
||||||
@panel-primary-border: @brand-primary;
|
|
||||||
@panel-primary-heading-bg: @brand-primary;
|
|
||||||
|
|
||||||
@panel-success-text: #fff;
|
|
||||||
@panel-success-border: @state-success-border;
|
|
||||||
@panel-success-heading-bg: @brand-success;
|
|
||||||
|
|
||||||
@panel-info-text: #fff;
|
|
||||||
@panel-info-border: @state-info-border;
|
|
||||||
@panel-info-heading-bg: @brand-info;
|
|
||||||
|
|
||||||
@panel-warning-text: #fff;
|
|
||||||
@panel-warning-border: @state-warning-border;
|
|
||||||
@panel-warning-heading-bg: @brand-warning;
|
|
||||||
|
|
||||||
@panel-danger-text: #fff;
|
|
||||||
@panel-danger-border: @state-danger-border;
|
|
||||||
@panel-danger-heading-bg: @brand-danger;
|
|
||||||
|
|
||||||
|
|
||||||
//== Thumbnails
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Padding around the thumbnail image
|
|
||||||
@thumbnail-padding: 4px;
|
|
||||||
//** Thumbnail background color
|
|
||||||
@thumbnail-bg: @body-bg;
|
|
||||||
//** Thumbnail border color
|
|
||||||
@thumbnail-border: #ddd;
|
|
||||||
//** Thumbnail border radius
|
|
||||||
@thumbnail-border-radius: @border-radius-base;
|
|
||||||
|
|
||||||
//** Custom text color for thumbnail captions
|
|
||||||
@thumbnail-caption-color: @text-color;
|
|
||||||
//** Padding around the thumbnail caption
|
|
||||||
@thumbnail-caption-padding: 9px;
|
|
||||||
|
|
||||||
|
|
||||||
//== Wells
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@well-bg: #f5f5f5;
|
|
||||||
@well-border: transparent;
|
|
||||||
|
|
||||||
|
|
||||||
//== Badges
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@badge-color: #fff;
|
|
||||||
//** Linked badge text color on hover
|
|
||||||
@badge-link-hover-color: #fff;
|
|
||||||
@badge-bg: @gray-light;
|
|
||||||
|
|
||||||
//** Badge text color in active nav link
|
|
||||||
@badge-active-color: @link-color;
|
|
||||||
//** Badge background color in active nav link
|
|
||||||
@badge-active-bg: #fff;
|
|
||||||
|
|
||||||
@badge-font-weight: normal;
|
|
||||||
@badge-line-height: 1;
|
|
||||||
@badge-border-radius: 10px;
|
|
||||||
|
|
||||||
|
|
||||||
//== Breadcrumbs
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@breadcrumb-padding-vertical: 8px;
|
|
||||||
@breadcrumb-padding-horizontal: 15px;
|
|
||||||
//** Breadcrumb background color
|
|
||||||
@breadcrumb-bg: #f5f5f5;
|
|
||||||
//** Breadcrumb text color
|
|
||||||
@breadcrumb-color: #ccc;
|
|
||||||
//** Text color of current page in the breadcrumb
|
|
||||||
@breadcrumb-active-color: @gray-light;
|
|
||||||
//** Textual separator for between breadcrumb elements
|
|
||||||
@breadcrumb-separator: "/";
|
|
||||||
|
|
||||||
|
|
||||||
//== Carousel
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
|
|
||||||
|
|
||||||
@carousel-control-color: #fff;
|
|
||||||
@carousel-control-width: 15%;
|
|
||||||
@carousel-control-opacity: .5;
|
|
||||||
@carousel-control-font-size: 20px;
|
|
||||||
|
|
||||||
@carousel-indicator-active-bg: #fff;
|
|
||||||
@carousel-indicator-border-color: #fff;
|
|
||||||
|
|
||||||
@carousel-caption-color: #fff;
|
|
||||||
|
|
||||||
|
|
||||||
//== Close
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@close-font-weight: normal;
|
|
||||||
@close-color: #000;
|
|
||||||
@close-text-shadow: none;
|
|
||||||
|
|
||||||
|
|
||||||
//== Code
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
@code-color: #c7254e;
|
|
||||||
@code-bg: #f9f2f4;
|
|
||||||
|
|
||||||
@kbd-color: #fff;
|
|
||||||
@kbd-bg: #333;
|
|
||||||
|
|
||||||
@pre-bg: #f5f5f5;
|
|
||||||
@pre-color: @gray-dark;
|
|
||||||
@pre-border-color: #ccc;
|
|
||||||
@pre-scrollable-max-height: 340px;
|
|
||||||
|
|
||||||
|
|
||||||
//== Type
|
|
||||||
//
|
|
||||||
//##
|
|
||||||
|
|
||||||
//** Horizontal offset for forms and lists.
|
|
||||||
@component-offset-horizontal: 180px;
|
|
||||||
//** Text muted color
|
|
||||||
@text-muted: @gray-light;
|
|
||||||
//** Abbreviations and acronyms border color
|
|
||||||
@abbr-border-color: @gray-light;
|
|
||||||
//** Headings small color
|
|
||||||
@headings-small-color: @gray-light;
|
|
||||||
//** Blockquote small color
|
|
||||||
@blockquote-small-color: @gray-light;
|
|
||||||
//** Blockquote font size
|
|
||||||
@blockquote-font-size: (@font-size-base * 1.25);
|
|
||||||
//** Blockquote border color
|
|
||||||
@blockquote-border-color: @gray-lighter;
|
|
||||||
//** Page header border color
|
|
||||||
@page-header-border-color: @gray-lighter;
|
|
||||||
//** Width of horizontal description list titles
|
|
||||||
@dl-horizontal-offset: @component-offset-horizontal;
|
|
||||||
//** Point at which .dl-horizontal becomes horizontal
|
|
||||||
@dl-horizontal-breakpoint: @grid-float-breakpoint;
|
|
||||||
//** Horizontal line color.
|
|
||||||
@hr-border: @gray-lighter;
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
.settings {
|
|
||||||
> .row {
|
|
||||||
margin-bottom: 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-content {
|
|
||||||
border-left: 3px solid @brand-primary;
|
|
||||||
|
|
||||||
ul {
|
|
||||||
list-style-type: none;
|
|
||||||
font-size: 16px;
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[data-action="upload"][type="text"] {
|
|
||||||
width: 95%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bootstrap-tagsinput {
|
|
||||||
width: 100%;
|
|
||||||
border: 0;
|
|
||||||
box-shadow: none;
|
|
||||||
padding-left: 0;
|
|
||||||
|
|
||||||
input {
|
|
||||||
width: 100%;
|
|
||||||
margin-left: 1px;
|
|
||||||
margin-top: 9px;
|
|
||||||
border-bottom: 1px dotted #ccc !important;
|
|
||||||
padding-bottom: 5px;
|
|
||||||
padding-left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,184 +0,0 @@
|
|||||||
.define-if-not-set() {
|
|
||||||
@gray-base: #000;
|
|
||||||
@gray-darker: lighten(@gray-base, 13.5%); // #222
|
|
||||||
@gray-dark: lighten(@gray-base, 20%); // #333
|
|
||||||
@gray: lighten(@gray-base, 33.5%); // #555
|
|
||||||
@gray-light: lighten(@gray-base, 46.7%); // #777
|
|
||||||
@gray-lighter: lighten(@gray-base, 93.5%); // #eee
|
|
||||||
|
|
||||||
@brand-primary: darken(#428bca, 6.5%); // #337ab7
|
|
||||||
@brand-success: #5cb85c;
|
|
||||||
@brand-info: #5bc0de;
|
|
||||||
@brand-warning: #f0ad4e;
|
|
||||||
@brand-danger: #d9534f;
|
|
||||||
}
|
|
||||||
|
|
||||||
.define-if-not-set();
|
|
||||||
|
|
||||||
#move_thread_modal .category-list {
|
|
||||||
height: 500px;
|
|
||||||
overflow-y: auto;
|
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.topic-watch-dropdown {
|
|
||||||
.help-text {
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.category-list {
|
|
||||||
padding: 0;
|
|
||||||
|
|
||||||
li {
|
|
||||||
.inline-block;
|
|
||||||
.pointer;
|
|
||||||
padding: 0.5em;
|
|
||||||
margin: 0.25em;
|
|
||||||
.border-radius(3px);
|
|
||||||
|
|
||||||
&.disabled {
|
|
||||||
background-color: #888!important;
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-list {
|
|
||||||
padding-left: 2rem;
|
|
||||||
padding-top: 1rem;
|
|
||||||
|
|
||||||
li {
|
|
||||||
.pointer;
|
|
||||||
display: inline-block;
|
|
||||||
list-style-type: none;
|
|
||||||
padding: 0.5rem 1rem;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background: #eee;
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar {
|
|
||||||
float: left;
|
|
||||||
margin-right: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
span {
|
|
||||||
vertical-align: middle;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-icon {
|
|
||||||
display: inline-block;
|
|
||||||
text-align: center;
|
|
||||||
color: @gray-lighter;
|
|
||||||
font-weight: normal;
|
|
||||||
vertical-align: middle;
|
|
||||||
overflow: hidden; /* stops alt text from overflowing past boundaries if image does not load */
|
|
||||||
white-space: nowrap;
|
|
||||||
|
|
||||||
&:before {
|
|
||||||
content: '';
|
|
||||||
display: inline-block;
|
|
||||||
height: 100%;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.avatar {
|
|
||||||
/* Contains the user icon class as a mixin, so there's no need to include that in the template */
|
|
||||||
.user-icon;
|
|
||||||
|
|
||||||
&.avatar-xs {
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
.user-icon-style(16px, 1rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.avatar-sm {
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
.user-icon-style(24px, 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.avatar-sm2x {
|
|
||||||
width: 48px;
|
|
||||||
height: 48px;
|
|
||||||
.user-icon-style(48px, 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.avatar-md {
|
|
||||||
width: 32px;
|
|
||||||
height: 32px;
|
|
||||||
.user-icon-style(32px, 1.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.avatar-lg {
|
|
||||||
width: 64px;
|
|
||||||
height: 64px;
|
|
||||||
.user-icon-style(64px, 4rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.avatar-xl {
|
|
||||||
width: 128px;
|
|
||||||
height: 128px;
|
|
||||||
.user-icon-style(128px, 7.5rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.avatar-rounded {
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.ban-modal {
|
|
||||||
.form-inline, .form-group {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.units {
|
|
||||||
line-height: 5rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.admin .ban-modal .units {
|
|
||||||
line-height: 1.846;
|
|
||||||
}
|
|
||||||
|
|
||||||
#crop-picture-modal {
|
|
||||||
#cropped-image {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cropper-container.cropper-bg {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.necro-post {
|
|
||||||
color: rgba(127,127,127,.5);
|
|
||||||
font-size: 1.5em;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
text-align: center;
|
|
||||||
text-transform: uppercase;
|
|
||||||
}
|
|
||||||
|
|
||||||
.timeline-event {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
|
|
||||||
.timeline-badge {
|
|
||||||
padding: 1rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.imagedrop {
|
|
||||||
position: absolute;
|
|
||||||
text-align: center;
|
|
||||||
font-size: 24px;
|
|
||||||
color: @gray-light;
|
|
||||||
width: 100%;
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
@import (inline) 'jquery-ui/themes/base/core.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/menu.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/button.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/datepicker.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/autocomplete.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/resizable.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/selectable.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/draggable.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/sortable.css';
|
|
||||||
@import (inline) 'jquery-ui/themes/base/theme.css';
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
.no-select {
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pointer {
|
|
||||||
cursor: pointer;
|
|
||||||
*cursor: hand;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inline-block {
|
|
||||||
display: inline-block;
|
|
||||||
*display: inline;
|
|
||||||
zoom: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.clear {
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
|
|
||||||
.zebra {
|
|
||||||
&:nth-child(even) {
|
|
||||||
background: rgba(191,191,191,0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
&:nth-child(odd) {
|
|
||||||
background: rgba(223,223,223,0.2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-radius (@radius: 5px) {
|
|
||||||
-webkit-border-radius: @radius;
|
|
||||||
-moz-border-radius: @radius;
|
|
||||||
-ms-border-radius: @radius;
|
|
||||||
-o-border-radius: @radius;
|
|
||||||
border-radius: @radius;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-ellipsis {
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fix-lists {
|
|
||||||
ul {
|
|
||||||
> li {
|
|
||||||
list-style-type: disc;
|
|
||||||
|
|
||||||
ul > li {
|
|
||||||
list-style-type: circle;
|
|
||||||
|
|
||||||
ul > li {
|
|
||||||
list-style-type: square;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> ul, > ol {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-icon-style(@size: 32px, @font-size: 1.5rem, @border-radius: inherit) {
|
|
||||||
border-radius: @border-radius;
|
|
||||||
width: @size;
|
|
||||||
height: @size;
|
|
||||||
line-height: @size;
|
|
||||||
font-size: @font-size;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box-shadow(@shadow) {
|
|
||||||
-webkit-box-shadow: @shadow;
|
|
||||||
box-shadow: @shadow;
|
|
||||||
}
|
|
||||||
@@ -65,6 +65,10 @@ CommonProps:
|
|||||||
type: string
|
type: string
|
||||||
as:
|
as:
|
||||||
type: string
|
type: string
|
||||||
|
crossorigin:
|
||||||
|
type: string
|
||||||
|
enum: ['', 'anonymous', 'use-credentials']
|
||||||
|
description: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/crossorigin
|
||||||
required:
|
required:
|
||||||
- rel
|
- rel
|
||||||
- href
|
- href
|
||||||
|
|||||||
@@ -165,8 +165,13 @@ FlagNotesObject:
|
|||||||
type: string
|
type: string
|
||||||
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
removed, etc.)
|
removed, etc.)
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
description: This is either username or fullname depending on forum and user settings
|
||||||
|
example: Dragon Fruit
|
||||||
picture:
|
picture:
|
||||||
type: string
|
type: string
|
||||||
|
nullable: true
|
||||||
uid:
|
uid:
|
||||||
type: number
|
type: number
|
||||||
description: A user identifier
|
description: A user identifier
|
||||||
|
|||||||
23
public/openapi/components/schemas/NotificationFilters.yaml
Normal file
23
public/openapi/components/schemas/NotificationFilters.yaml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
FiltersObject:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
filter:
|
||||||
|
type: string
|
||||||
|
selected:
|
||||||
|
type: boolean
|
||||||
|
count:
|
||||||
|
type: number
|
||||||
|
required:
|
||||||
|
- name
|
||||||
|
- filter
|
||||||
|
FiltersArray:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
anyOf:
|
||||||
|
- $ref: '#/FiltersObject'
|
||||||
|
- type: object
|
||||||
|
properties:
|
||||||
|
separator:
|
||||||
|
type: boolean
|
||||||
@@ -1,64 +1,77 @@
|
|||||||
|
PaginationProps:
|
||||||
|
allOf:
|
||||||
|
- type: object
|
||||||
|
description: Optional properties that may or may not be present (except for `page`, which is always present, and is only here as a hack to pass validation)
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
qs:
|
||||||
|
type: string
|
||||||
|
required:
|
||||||
|
- cid
|
||||||
Pagination:
|
Pagination:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
pagination:
|
pagination:
|
||||||
type: object
|
allOf:
|
||||||
properties:
|
- $ref: '#/PaginationProps'
|
||||||
prev:
|
- type: object
|
||||||
type: object
|
|
||||||
properties:
|
properties:
|
||||||
page:
|
prev:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
next:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
first:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
last:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
rel:
|
||||||
|
type: array
|
||||||
|
description: A collection of objects used to build the link tags pointing to adjacent pages, if any.
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
rel:
|
||||||
|
type: string
|
||||||
|
enum: [prev, next]
|
||||||
|
href:
|
||||||
|
type: string
|
||||||
|
description: A query string that points to the previous or next page
|
||||||
|
pages:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
page:
|
||||||
|
type: number
|
||||||
|
description: The current page
|
||||||
|
active:
|
||||||
|
type: boolean
|
||||||
|
description: If the page noted in this array is the current page
|
||||||
|
qs:
|
||||||
|
type: string
|
||||||
|
description: A query string that points to the page noted in this array
|
||||||
|
currentPage:
|
||||||
type: number
|
type: number
|
||||||
active:
|
pageCount:
|
||||||
type: boolean
|
type: number
|
||||||
next:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
page:
|
|
||||||
type: number
|
|
||||||
active:
|
|
||||||
type: boolean
|
|
||||||
first:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
page:
|
|
||||||
type: number
|
|
||||||
active:
|
|
||||||
type: boolean
|
|
||||||
last:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
page:
|
|
||||||
type: number
|
|
||||||
active:
|
|
||||||
type: boolean
|
|
||||||
rel:
|
|
||||||
type: array
|
|
||||||
description: A collection of objects used to build the link tags pointing to adjacent pages, if any.
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
rel:
|
|
||||||
type: string
|
|
||||||
enum: [prev, next]
|
|
||||||
href:
|
|
||||||
type: string
|
|
||||||
description: A query string that points to the previous or next page
|
|
||||||
pages:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
page:
|
|
||||||
type: number
|
|
||||||
description: The current page
|
|
||||||
active:
|
|
||||||
type: boolean
|
|
||||||
description: If the page noted in this array is the current page
|
|
||||||
qs:
|
|
||||||
type: string
|
|
||||||
description: A query string that points to the page noted in this array
|
|
||||||
currentPage:
|
|
||||||
type: number
|
|
||||||
pageCount:
|
|
||||||
type: number
|
|
||||||
@@ -133,6 +133,15 @@ UserObject:
|
|||||||
example:
|
example:
|
||||||
- administrators
|
- administrators
|
||||||
- Staff
|
- Staff
|
||||||
|
muted:
|
||||||
|
type: boolean
|
||||||
|
description: Whether or not the user has been muted.
|
||||||
|
mutedUntil:
|
||||||
|
type: number
|
||||||
|
description: A UNIX timestamp representing the moment a muted state will be lifted.
|
||||||
|
mutedReason:
|
||||||
|
type: string
|
||||||
|
description: The admin-provided reason for being muted.
|
||||||
'icon:text':
|
'icon:text':
|
||||||
type: string
|
type: string
|
||||||
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
|
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
|
||||||
@@ -322,6 +331,17 @@ UserObjectFull:
|
|||||||
example:
|
example:
|
||||||
- administrators
|
- administrators
|
||||||
- Staff
|
- Staff
|
||||||
|
muted:
|
||||||
|
type: boolean
|
||||||
|
description: Whether or not the user has been muted.
|
||||||
|
mutedUntil:
|
||||||
|
type: number
|
||||||
|
description: A UNIX timestamp representing the moment a muted state will be lifted.
|
||||||
|
nullable: true
|
||||||
|
mutedReason:
|
||||||
|
type: string
|
||||||
|
description: The admin-provided reason for being muted.
|
||||||
|
nullable: true
|
||||||
'icon:text':
|
'icon:text':
|
||||||
type: string
|
type: string
|
||||||
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
|
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
|
||||||
@@ -348,6 +368,8 @@ UserObjectFull:
|
|||||||
type: string
|
type: string
|
||||||
age:
|
age:
|
||||||
type: number
|
type: number
|
||||||
|
emailHidden:
|
||||||
|
type: boolean
|
||||||
emailClass:
|
emailClass:
|
||||||
type: string
|
type: string
|
||||||
ips:
|
ips:
|
||||||
@@ -361,6 +383,8 @@ UserObjectFull:
|
|||||||
properties:
|
properties:
|
||||||
best:
|
best:
|
||||||
type: number
|
type: number
|
||||||
|
controversial:
|
||||||
|
type: number
|
||||||
blocks:
|
blocks:
|
||||||
type: number
|
type: number
|
||||||
bookmarks:
|
bookmarks:
|
||||||
@@ -413,6 +437,8 @@ UserObjectFull:
|
|||||||
type: boolean
|
type: boolean
|
||||||
canBan:
|
canBan:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
canMute:
|
||||||
|
type: boolean
|
||||||
canFlag:
|
canFlag:
|
||||||
type: boolean
|
type: boolean
|
||||||
canChangePassword:
|
canChangePassword:
|
||||||
@@ -425,10 +451,22 @@ UserObjectFull:
|
|||||||
type: number
|
type: number
|
||||||
showHidden:
|
showHidden:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
allowProfilePicture:
|
||||||
|
type: boolean
|
||||||
|
allowCoverPicture:
|
||||||
|
type: boolean
|
||||||
|
allowProfileImageUploads:
|
||||||
|
type: number
|
||||||
|
allowedProfileImageExtensions:
|
||||||
|
type: string
|
||||||
groups:
|
groups:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: ./GroupObject.yaml#/GroupFullObject
|
$ref: ./GroupObject.yaml#/GroupFullObject
|
||||||
|
selectedGroup:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
$ref: ./GroupObject.yaml#/GroupFullObject
|
||||||
disableSignatures:
|
disableSignatures:
|
||||||
type: boolean
|
type: boolean
|
||||||
reputation:disabled:
|
reputation:disabled:
|
||||||
@@ -444,6 +482,9 @@ UserObjectFull:
|
|||||||
type: string
|
type: string
|
||||||
route:
|
route:
|
||||||
type: string
|
type: string
|
||||||
|
url:
|
||||||
|
type: string
|
||||||
|
description: The relative path to the profile link route from the root of the forum
|
||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
visibility:
|
visibility:
|
||||||
@@ -659,3 +700,53 @@ UserObjectACP:
|
|||||||
nullable: true
|
nullable: true
|
||||||
ips:
|
ips:
|
||||||
type: array
|
type: array
|
||||||
|
BanMuteArray:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
expire:
|
||||||
|
type: number
|
||||||
|
fromUid:
|
||||||
|
type: number
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
until:
|
||||||
|
type: number
|
||||||
|
untilReadable:
|
||||||
|
type: string
|
||||||
|
timestampReadable:
|
||||||
|
type: string
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
|
reason:
|
||||||
|
type: string
|
||||||
@@ -182,14 +182,6 @@ paths:
|
|||||||
$ref: 'read/user/username/username.yaml'
|
$ref: 'read/user/username/username.yaml'
|
||||||
"/api/user/email/{email}":
|
"/api/user/email/{email}":
|
||||||
$ref: 'read/user/email/email.yaml'
|
$ref: 'read/user/email/email.yaml'
|
||||||
"/api/user/{userslug}/export/posts":
|
|
||||||
$ref: 'read/user/userslug/export/posts.yaml'
|
|
||||||
"/api/user/{userslug}/export/uploads":
|
|
||||||
$ref: 'read/user/userslug/export/uploads.yaml'
|
|
||||||
"/api/user/{userslug}/export/profile":
|
|
||||||
$ref: 'read/user/userslug/export/profile.yaml'
|
|
||||||
"/api/user/uid/{userslug}/export/{type}":
|
|
||||||
$ref: 'read/user/uid/userslug/export/type.yaml'
|
|
||||||
/api/categories:
|
/api/categories:
|
||||||
$ref: 'read/categories.yaml'
|
$ref: 'read/categories.yaml'
|
||||||
"/api/categories/{cid}/moderators":
|
"/api/categories/{cid}/moderators":
|
||||||
|
|||||||
@@ -20,83 +20,105 @@ get:
|
|||||||
allOf:
|
allOf:
|
||||||
- type: object
|
- type: object
|
||||||
properties:
|
properties:
|
||||||
postCache:
|
caches:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
length:
|
postCache:
|
||||||
type: number
|
type: object
|
||||||
max:
|
properties:
|
||||||
type: number
|
length:
|
||||||
nullable: true
|
type: number
|
||||||
itemCount:
|
max:
|
||||||
type: number
|
type: number
|
||||||
percentFull:
|
nullable: true
|
||||||
type: number
|
maxSize:
|
||||||
hits:
|
type: number
|
||||||
type: string
|
itemCount:
|
||||||
misses:
|
type: number
|
||||||
type: string
|
percentFull:
|
||||||
hitRatio:
|
type: number
|
||||||
type: string
|
hits:
|
||||||
enabled:
|
type: string
|
||||||
type: boolean
|
misses:
|
||||||
groupCache:
|
type: string
|
||||||
type: object
|
hitRatio:
|
||||||
properties:
|
type: string
|
||||||
length:
|
enabled:
|
||||||
type: number
|
type: boolean
|
||||||
max:
|
ttl:
|
||||||
type: number
|
type: number
|
||||||
itemCount:
|
groupCache:
|
||||||
type: number
|
type: object
|
||||||
percentFull:
|
properties:
|
||||||
type: number
|
length:
|
||||||
hits:
|
type: number
|
||||||
type: string
|
max:
|
||||||
misses:
|
type: number
|
||||||
type: string
|
nullable: true
|
||||||
hitRatio:
|
maxSize:
|
||||||
type: string
|
type: number
|
||||||
enabled:
|
itemCount:
|
||||||
type: boolean
|
type: number
|
||||||
localCache:
|
percentFull:
|
||||||
type: object
|
type: number
|
||||||
properties:
|
hits:
|
||||||
length:
|
type: string
|
||||||
type: number
|
misses:
|
||||||
max:
|
type: string
|
||||||
type: number
|
hitRatio:
|
||||||
itemCount:
|
type: string
|
||||||
type: number
|
enabled:
|
||||||
percentFull:
|
type: boolean
|
||||||
type: number
|
ttl:
|
||||||
hits:
|
type: number
|
||||||
type: string
|
localCache:
|
||||||
misses:
|
type: object
|
||||||
type: string
|
properties:
|
||||||
hitRatio:
|
length:
|
||||||
type: string
|
type: number
|
||||||
enabled:
|
max:
|
||||||
type: boolean
|
type: number
|
||||||
objectCache:
|
nullable: true
|
||||||
type: object
|
maxSize:
|
||||||
properties:
|
type: number
|
||||||
length:
|
itemCount:
|
||||||
type: number
|
type: number
|
||||||
max:
|
percentFull:
|
||||||
type: number
|
type: number
|
||||||
itemCount:
|
hits:
|
||||||
type: number
|
type: string
|
||||||
percentFull:
|
misses:
|
||||||
type: number
|
type: string
|
||||||
hits:
|
hitRatio:
|
||||||
type: string
|
type: string
|
||||||
misses:
|
enabled:
|
||||||
type: string
|
type: boolean
|
||||||
hitRatio:
|
ttl:
|
||||||
type: string
|
type: number
|
||||||
enabled:
|
objectCache:
|
||||||
type: boolean
|
type: object
|
||||||
|
properties:
|
||||||
|
length:
|
||||||
|
type: number
|
||||||
|
max:
|
||||||
|
type: number
|
||||||
|
nullable: true
|
||||||
|
maxSize:
|
||||||
|
type: number
|
||||||
|
itemCount:
|
||||||
|
type: number
|
||||||
|
percentFull:
|
||||||
|
type: number
|
||||||
|
hits:
|
||||||
|
type: string
|
||||||
|
misses:
|
||||||
|
type: string
|
||||||
|
hitRatio:
|
||||||
|
type: string
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
ttl:
|
||||||
|
type: number
|
||||||
required:
|
required:
|
||||||
- postCache
|
- postCache
|
||||||
- groupCache
|
- groupCache
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
selected:
|
selected:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
count:
|
||||||
|
type: number
|
||||||
query:
|
query:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
description: An object containing the query string parameters, if any
|
description: An object containing the query string parameters, if any
|
||||||
|
|||||||
@@ -60,5 +60,16 @@ get:
|
|||||||
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
showSystemControls:
|
showSystemControls:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
popularSearches:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
description: The search term
|
||||||
|
score:
|
||||||
|
type: number
|
||||||
|
description: How many times it has been queried
|
||||||
- $ref: ../../components/schemas/admin/dashboard.yaml#/Stats
|
- $ref: ../../components/schemas/admin/dashboard.yaml#/Stats
|
||||||
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- admin
|
- admin
|
||||||
summary: Get detailed user registration analytics
|
summary: Get detailed search analytics
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: A JSON object containing popular searches.
|
description: A JSON object containing popular searches.
|
||||||
@@ -22,4 +22,12 @@ get:
|
|||||||
score:
|
score:
|
||||||
type: number
|
type: number
|
||||||
description: Number of times this string has been searched
|
description: Number of times this string has been searched
|
||||||
|
startDate:
|
||||||
|
type: string
|
||||||
|
description: A UNIX timestamp of the start date
|
||||||
|
nullable: true
|
||||||
|
endDate:
|
||||||
|
type: string
|
||||||
|
description: A UNIX timestamp of the end date
|
||||||
|
nullable: true
|
||||||
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
get:
|
get:
|
||||||
tags:
|
tags:
|
||||||
- admin
|
- admin
|
||||||
summary: Get detailed user registration analytics
|
summary: Get detailed topic creation analytics
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: A JSON object containing more detailed analytics related to user registrations.
|
description: A JSON object containing more detailed analytics related to topic creations.
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
|
|||||||
@@ -64,12 +64,7 @@ get:
|
|||||||
uptimeHumanReadable:
|
uptimeHumanReadable:
|
||||||
type: string
|
type: string
|
||||||
cpuUsage:
|
cpuUsage:
|
||||||
type: object
|
type: number
|
||||||
properties:
|
|
||||||
user:
|
|
||||||
type: string
|
|
||||||
system:
|
|
||||||
type: string
|
|
||||||
os:
|
os:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@@ -90,6 +85,8 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
totalmem:
|
totalmem:
|
||||||
type: string
|
type: string
|
||||||
|
usedmem:
|
||||||
|
type: string
|
||||||
nodebb:
|
nodebb:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ get:
|
|||||||
type: number
|
type: number
|
||||||
inactiveCount:
|
inactiveCount:
|
||||||
type: number
|
type: number
|
||||||
|
canChangeState:
|
||||||
|
type: boolean
|
||||||
upgradeCount:
|
upgradeCount:
|
||||||
type: number
|
type: number
|
||||||
download:
|
download:
|
||||||
|
|||||||
@@ -97,11 +97,11 @@ get:
|
|||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: ../../../components/schemas/UserObject.yaml#/UserObjectSlim
|
$ref: ../../../components/schemas/UserObject.yaml#/UserObjectSlim
|
||||||
|
subCategoryCount:
|
||||||
|
type: number
|
||||||
selectedCategory:
|
selectedCategory:
|
||||||
$ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject
|
nullable: true
|
||||||
allPrivileges:
|
anyOf:
|
||||||
type: array
|
- $ref: ../../../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
items:
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
type: string
|
|
||||||
description: A simple array containing user privilege names (used client-side when giving mod privilege)
|
|
||||||
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -49,5 +49,11 @@ get:
|
|||||||
children:
|
children:
|
||||||
type: array
|
type: array
|
||||||
description: Array of children categories
|
description: Array of children categories
|
||||||
|
subCategoriesLeft:
|
||||||
|
type: number
|
||||||
|
hasMoreSubCategories:
|
||||||
|
type: boolean
|
||||||
|
showMorePage:
|
||||||
|
type: number
|
||||||
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
- $ref: ../../../components/schemas/Pagination.yaml#/Pagination
|
||||||
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -119,4 +119,6 @@ get:
|
|||||||
description: A category identifier
|
description: A category identifier
|
||||||
group:
|
group:
|
||||||
type: string
|
type: string
|
||||||
|
isAdminPriv:
|
||||||
|
type: boolean
|
||||||
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -87,11 +87,18 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
displayName:
|
displayName:
|
||||||
type: string
|
type: string
|
||||||
properties:
|
targetBlank:
|
||||||
type: object
|
type: boolean
|
||||||
properties:
|
required:
|
||||||
targetBlank:
|
- id
|
||||||
type: boolean
|
- route
|
||||||
|
- title
|
||||||
|
- enabled
|
||||||
|
- iconClass
|
||||||
|
- textClass
|
||||||
|
- text
|
||||||
|
- core
|
||||||
|
- groups
|
||||||
groups:
|
groups:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|||||||
@@ -193,6 +193,9 @@ get:
|
|||||||
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
pid:
|
pid:
|
||||||
type: number
|
type: number
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
description: The index of the post
|
||||||
topic:
|
topic:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@@ -200,6 +203,32 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
example: 1
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
example: Dragon Fruit
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
example: dragon-fruit
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
|
||||||
|
nullable: true
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
description: This is either username or fullname depending on forum and user settings
|
||||||
|
example: Dragon Fruit
|
||||||
|
'icon:text':
|
||||||
|
type: string
|
||||||
|
example: D
|
||||||
|
'icon:bgColor':
|
||||||
|
type: string
|
||||||
|
example: '#9c27b0'
|
||||||
imageClass:
|
imageClass:
|
||||||
type: string
|
type: string
|
||||||
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
assetBaseUrl:
|
assetBaseUrl:
|
||||||
type: string
|
type: string
|
||||||
|
asset_base_url:
|
||||||
|
type: string
|
||||||
siteTitle:
|
siteTitle:
|
||||||
type: string
|
type: string
|
||||||
browserTitle:
|
browserTitle:
|
||||||
@@ -100,6 +102,10 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
searchEnabled:
|
searchEnabled:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
searchDefaultInQuick:
|
||||||
|
type: string
|
||||||
|
disableCustomUserSkins:
|
||||||
|
type: boolean
|
||||||
bootswatchSkin:
|
bootswatchSkin:
|
||||||
type: string
|
type: string
|
||||||
enablePostHistory:
|
enablePostHistory:
|
||||||
@@ -145,4 +151,123 @@ get:
|
|||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
description: A valid CSS colour code
|
description: A valid CSS colour code
|
||||||
example: '#fff'
|
example: '#fff'
|
||||||
|
emailPrompt:
|
||||||
|
type: number
|
||||||
|
useragent:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
isYaBrowser:
|
||||||
|
type: boolean
|
||||||
|
isAuthoritative:
|
||||||
|
type: boolean
|
||||||
|
isMobile:
|
||||||
|
type: boolean
|
||||||
|
isMobileNative:
|
||||||
|
type: boolean
|
||||||
|
isTablet:
|
||||||
|
type: boolean
|
||||||
|
isiPad:
|
||||||
|
type: boolean
|
||||||
|
isiPod:
|
||||||
|
type: boolean
|
||||||
|
isiPhone:
|
||||||
|
type: boolean
|
||||||
|
isiPhoneNative:
|
||||||
|
type: boolean
|
||||||
|
isAndroid:
|
||||||
|
type: boolean
|
||||||
|
isAndroidNative:
|
||||||
|
type: boolean
|
||||||
|
isBlackberry:
|
||||||
|
type: boolean
|
||||||
|
isOpera:
|
||||||
|
type: boolean
|
||||||
|
isIE:
|
||||||
|
type: boolean
|
||||||
|
isEdge:
|
||||||
|
type: boolean
|
||||||
|
isIECompatibilityMode:
|
||||||
|
type: boolean
|
||||||
|
isSafari:
|
||||||
|
type: boolean
|
||||||
|
isFirefox:
|
||||||
|
type: boolean
|
||||||
|
isWebkit:
|
||||||
|
type: boolean
|
||||||
|
isChrome:
|
||||||
|
type: boolean
|
||||||
|
isKonqueror:
|
||||||
|
type: boolean
|
||||||
|
isOmniWeb:
|
||||||
|
type: boolean
|
||||||
|
isSeaMonkey:
|
||||||
|
type: boolean
|
||||||
|
isFlock:
|
||||||
|
type: boolean
|
||||||
|
isAmaya:
|
||||||
|
type: boolean
|
||||||
|
isPhantomJS:
|
||||||
|
type: boolean
|
||||||
|
isEpiphany:
|
||||||
|
type: boolean
|
||||||
|
isDesktop:
|
||||||
|
type: boolean
|
||||||
|
isWindows:
|
||||||
|
type: boolean
|
||||||
|
isLinux:
|
||||||
|
type: boolean
|
||||||
|
isLinux64:
|
||||||
|
type: boolean
|
||||||
|
isMac:
|
||||||
|
type: boolean
|
||||||
|
isChromeOS:
|
||||||
|
type: boolean
|
||||||
|
isBada:
|
||||||
|
type: boolean
|
||||||
|
isSamsung:
|
||||||
|
type: boolean
|
||||||
|
isRaspberry:
|
||||||
|
type: boolean
|
||||||
|
isBot:
|
||||||
|
type: boolean
|
||||||
|
isCurl:
|
||||||
|
type: boolean
|
||||||
|
isAndroidTablet:
|
||||||
|
type: boolean
|
||||||
|
isWinJs:
|
||||||
|
type: boolean
|
||||||
|
isKindleFire:
|
||||||
|
type: boolean
|
||||||
|
isSilk:
|
||||||
|
type: boolean
|
||||||
|
isCaptive:
|
||||||
|
type: boolean
|
||||||
|
isSmartTV:
|
||||||
|
type: boolean
|
||||||
|
isUC:
|
||||||
|
type: boolean
|
||||||
|
isFacebook:
|
||||||
|
type: boolean
|
||||||
|
isAlamoFire:
|
||||||
|
type: boolean
|
||||||
|
isElectron:
|
||||||
|
type: boolean
|
||||||
|
silkAccelerated:
|
||||||
|
type: boolean
|
||||||
|
browser:
|
||||||
|
type: string
|
||||||
|
version:
|
||||||
|
type: string
|
||||||
|
os:
|
||||||
|
type: string
|
||||||
|
platform:
|
||||||
|
type: string
|
||||||
|
geoIp:
|
||||||
|
type: object
|
||||||
|
source:
|
||||||
|
type: string
|
||||||
|
isWechat:
|
||||||
|
type: boolean
|
||||||
|
composer-default:
|
||||||
|
type: object
|
||||||
|
|||||||
@@ -2,6 +2,14 @@ get:
|
|||||||
tags:
|
tags:
|
||||||
- authentication
|
- authentication
|
||||||
summary: Verify an email address
|
summary: Verify an email address
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: code
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
required: true
|
||||||
|
description: a valid confirmation code
|
||||||
|
example: f8c4a54a-47ae-40f5-a0a5-356d6a35c24e
|
||||||
responses:
|
responses:
|
||||||
"200":
|
"200":
|
||||||
description: Email address verified, or confirmation code was incorrect
|
description: Email address verified, or confirmation code was incorrect
|
||||||
|
|||||||
@@ -42,6 +42,9 @@ get:
|
|||||||
assignee:
|
assignee:
|
||||||
type: string
|
type: string
|
||||||
nullable: true
|
nullable: true
|
||||||
|
count:
|
||||||
|
type: number
|
||||||
|
description: The count of returned flags (irrespective of the page count or number of flags per page).
|
||||||
analytics:
|
analytics:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
@@ -71,6 +74,105 @@ get:
|
|||||||
bgColor:
|
bgColor:
|
||||||
type: string
|
type: string
|
||||||
nullable: true
|
nullable: true
|
||||||
|
selected:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
assignee:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
reporterId:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
|
targetUid:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
||||||
|
removed, etc.)
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
picture:
|
||||||
|
nullable: true
|
||||||
|
type: string
|
||||||
|
icon:text:
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the
|
||||||
|
auto-generated icon given to users without
|
||||||
|
an avatar
|
||||||
|
icon:bgColor:
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This
|
||||||
|
value is used in conjunction with
|
||||||
|
`icon:text` for the user's auto-generated
|
||||||
|
icon
|
||||||
|
example: "#f44336"
|
||||||
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
- $ref: ../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -42,5 +42,39 @@ get:
|
|||||||
additionalProperties:
|
additionalProperties:
|
||||||
description: "A list of global and admin privileges, and whether the calling user has (or has inherited) them"
|
description: "A list of global and admin privileges, and whether the calling user has (or has inherited) them"
|
||||||
type: boolean
|
type: boolean
|
||||||
|
states:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
open:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
wip:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
resolved:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
rejected:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
label:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
|
additionalProperties:
|
||||||
|
type: object
|
||||||
|
description: Plugins are able to add additional flag states, and so their values would also be present here if so.
|
||||||
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
- $ref: ../../components/schemas/Breadcrumbs.yaml#/Breadcrumbs
|
||||||
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -101,6 +101,8 @@ get:
|
|||||||
type: boolean
|
type: boolean
|
||||||
allowGroupCreation:
|
allowGroupCreation:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
sort:
|
||||||
|
type: string
|
||||||
nextStart:
|
nextStart:
|
||||||
type: number
|
type: number
|
||||||
title:
|
title:
|
||||||
|
|||||||
@@ -195,6 +195,9 @@ get:
|
|||||||
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
description: An ISO 8601 formatted date string (complementing `timestamp`)
|
||||||
pid:
|
pid:
|
||||||
type: number
|
type: number
|
||||||
|
index:
|
||||||
|
type: number
|
||||||
|
description: The index of the post
|
||||||
topic:
|
topic:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@@ -202,6 +205,32 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
|
user:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
example: 1
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
example: Dragon Fruit
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
example: dragon-fruit
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
|
||||||
|
nullable: true
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
description: This is either username or fullname depending on forum and user settings
|
||||||
|
example: Dragon Fruit
|
||||||
|
'icon:text':
|
||||||
|
type: string
|
||||||
|
example: D
|
||||||
|
'icon:bgColor':
|
||||||
|
type: string
|
||||||
|
example: '#9c27b0'
|
||||||
imageClass:
|
imageClass:
|
||||||
type: string
|
type: string
|
||||||
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
|||||||
@@ -69,42 +69,13 @@ get:
|
|||||||
readClass:
|
readClass:
|
||||||
type: string
|
type: string
|
||||||
filters:
|
filters:
|
||||||
type: array
|
$ref: ../components/schemas/NotificationFilters.yaml#/FiltersArray
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
additionalProperties: {}
|
|
||||||
regularFilters:
|
regularFilters:
|
||||||
type: array
|
$ref: ../components/schemas/NotificationFilters.yaml#/FiltersArray
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
filter:
|
|
||||||
type: string
|
|
||||||
selected:
|
|
||||||
type: boolean
|
|
||||||
required:
|
|
||||||
- name
|
|
||||||
- filter
|
|
||||||
moderatorFilters:
|
moderatorFilters:
|
||||||
type: array
|
$ref: ../components/schemas/NotificationFilters.yaml#/FiltersArray
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
filter:
|
|
||||||
type: string
|
|
||||||
selectedFilter:
|
selectedFilter:
|
||||||
type: object
|
$ref: ../components/schemas/NotificationFilters.yaml#/FiltersObject
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
filter:
|
|
||||||
type: string
|
|
||||||
selected:
|
|
||||||
type: boolean
|
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
- $ref: ../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
|||||||
@@ -162,6 +162,10 @@ get:
|
|||||||
titleRaw:
|
titleRaw:
|
||||||
type: string
|
type: string
|
||||||
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
- $ref: ../components/schemas/CategoryObject.yaml#/CategoryObject
|
||||||
|
isAdmin:
|
||||||
|
type: boolean
|
||||||
|
canAccept:
|
||||||
|
type: boolean
|
||||||
enabled:
|
enabled:
|
||||||
type: number
|
type: number
|
||||||
singlePost:
|
singlePost:
|
||||||
|
|||||||
@@ -23,31 +23,65 @@ get:
|
|||||||
type: boolean
|
type: boolean
|
||||||
search_query:
|
search_query:
|
||||||
type: string
|
type: string
|
||||||
term:
|
|
||||||
type: string
|
|
||||||
allCategories:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
value:
|
|
||||||
oneOf:
|
|
||||||
- type: string
|
|
||||||
- type: number
|
|
||||||
text:
|
|
||||||
type: string
|
|
||||||
allCategoriesCount:
|
|
||||||
type: number
|
|
||||||
expandSearch:
|
|
||||||
type: boolean
|
|
||||||
showAsPosts:
|
showAsPosts:
|
||||||
type: boolean
|
type: boolean
|
||||||
showAsTopics:
|
showAsTopics:
|
||||||
type: boolean
|
type: boolean
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
|
filters:
|
||||||
|
type: object
|
||||||
|
userFilterSelected:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uid:
|
||||||
|
type: number
|
||||||
|
description: A user identifier
|
||||||
|
example: 1
|
||||||
|
username:
|
||||||
|
type: string
|
||||||
|
description: A friendly name for a given user account
|
||||||
|
example: Dragon Fruit
|
||||||
|
displayname:
|
||||||
|
type: string
|
||||||
|
description: This is either username or fullname depending on forum and user settings
|
||||||
|
example: Dragon Fruit
|
||||||
|
userslug:
|
||||||
|
type: string
|
||||||
|
description: An URL-safe variant of the username (i.e. lower-cased, spaces removed, etc.)
|
||||||
|
example: dragon-fruit
|
||||||
|
picture:
|
||||||
|
type: string
|
||||||
|
description: A URL pointing to a picture to be used as the user's avatar
|
||||||
|
example: 'https://images.unsplash.com/photo-1560070094-e1f2ddec4337?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=256&h=256&q=80'
|
||||||
|
nullable: true
|
||||||
|
'icon:text':
|
||||||
|
type: string
|
||||||
|
description: A single-letter representation of a username. This is used in the auto-generated icon given to users without an avatar
|
||||||
|
example: D
|
||||||
|
'icon:bgColor':
|
||||||
|
type: string
|
||||||
|
description: A six-character hexadecimal colour code assigned to the user. This value is used in conjunction with `icon:text` for the user's auto-generated icon
|
||||||
|
example: '#9c27b0'
|
||||||
|
tagFilterSelected:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
valueEscaped:
|
||||||
|
type: string
|
||||||
|
valueEncoded:
|
||||||
|
type: string
|
||||||
|
class:
|
||||||
|
type: string
|
||||||
searchDefaultSortBy:
|
searchDefaultSortBy:
|
||||||
type: string
|
type: string
|
||||||
|
searchDefaultIn:
|
||||||
|
type: string
|
||||||
privileges:
|
privileges:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
|
|||||||
@@ -227,6 +227,8 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
title:
|
title:
|
||||||
type: string
|
type: string
|
||||||
|
canPost:
|
||||||
|
type: boolean
|
||||||
showSelect:
|
showSelect:
|
||||||
type: boolean
|
type: boolean
|
||||||
showTopicTools:
|
showTopicTools:
|
||||||
|
|||||||
@@ -126,6 +126,13 @@ get:
|
|||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: string
|
type: string
|
||||||
|
muted:
|
||||||
|
type: boolean
|
||||||
|
description: Whether or not the user has been muted.
|
||||||
|
mutedUntil:
|
||||||
|
type: number
|
||||||
|
description: A UNIX timestamp representing the moment a muted state will be lifted.
|
||||||
|
nullable: true
|
||||||
icon:text:
|
icon:text:
|
||||||
type: string
|
type: string
|
||||||
description: A single-letter representation of a username. This is used in the
|
description: A single-letter representation of a username. This is used in the
|
||||||
@@ -219,6 +226,19 @@ get:
|
|||||||
type: number
|
type: number
|
||||||
selfPost:
|
selfPost:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
events:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type:
|
||||||
|
type: string
|
||||||
|
id:
|
||||||
|
type: number
|
||||||
|
timestamp:
|
||||||
|
type: number
|
||||||
|
timestampISO:
|
||||||
|
type: string
|
||||||
topicOwnerPost:
|
topicOwnerPost:
|
||||||
type: boolean
|
type: boolean
|
||||||
display_edit_tools:
|
display_edit_tools:
|
||||||
@@ -311,6 +331,8 @@ get:
|
|||||||
type: boolean
|
type: boolean
|
||||||
topics:read:
|
topics:read:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
topics:schedule:
|
||||||
|
type: boolean
|
||||||
topics:tag:
|
topics:tag:
|
||||||
type: boolean
|
type: boolean
|
||||||
topics:delete:
|
topics:delete:
|
||||||
@@ -354,6 +376,8 @@ get:
|
|||||||
type: number
|
type: number
|
||||||
feeds:disableRSS:
|
feeds:disableRSS:
|
||||||
type: number
|
type: number
|
||||||
|
signatures:hideDuplicates:
|
||||||
|
type: number
|
||||||
bookmarkThreshold:
|
bookmarkThreshold:
|
||||||
type: number
|
type: number
|
||||||
necroThreshold:
|
necroThreshold:
|
||||||
@@ -370,12 +394,12 @@ get:
|
|||||||
type: boolean
|
type: boolean
|
||||||
privateUploads:
|
privateUploads:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
showPostPreviewsOnHover:
|
||||||
|
type: boolean
|
||||||
rssFeedUrl:
|
rssFeedUrl:
|
||||||
type: string
|
type: string
|
||||||
postIndex:
|
postIndex:
|
||||||
type: number
|
type: number
|
||||||
loggedInUser:
|
|
||||||
$ref: ../../components/schemas/UserObject.yaml#/UserObject
|
|
||||||
- type: object
|
- type: object
|
||||||
description: Optional properties that may or may not be present (except for `tid`, which is always present, and is only here as a hack to pass validation)
|
description: Optional properties that may or may not be present (except for `tid`, which is always present, and is only here as a hack to pass validation)
|
||||||
properties:
|
properties:
|
||||||
@@ -385,6 +409,8 @@ get:
|
|||||||
thumb:
|
thumb:
|
||||||
type: string
|
type: string
|
||||||
description: An uploaded topic thumbnail
|
description: An uploaded topic thumbnail
|
||||||
|
loggedInUser:
|
||||||
|
$ref: ../../components/schemas/UserObject.yaml#/UserObject
|
||||||
required:
|
required:
|
||||||
- tid
|
- tid
|
||||||
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
- $ref: ../../components/schemas/Pagination.yaml#/Pagination
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ get:
|
|||||||
allOf:
|
allOf:
|
||||||
- type: object
|
- type: object
|
||||||
properties:
|
properties:
|
||||||
|
canPost:
|
||||||
|
type: boolean
|
||||||
showSelect:
|
showSelect:
|
||||||
type: boolean
|
type: boolean
|
||||||
showTopicTools:
|
showTopicTools:
|
||||||
@@ -206,6 +208,10 @@ get:
|
|||||||
nullable: true
|
nullable: true
|
||||||
selectCategoryLabel:
|
selectCategoryLabel:
|
||||||
type: string
|
type: string
|
||||||
|
selectCategoryIcon:
|
||||||
|
type: string
|
||||||
|
showCategorySelectLabel:
|
||||||
|
type: boolean
|
||||||
selectedCids:
|
selectedCids:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|||||||
@@ -298,6 +298,8 @@ get:
|
|||||||
type: string
|
type: string
|
||||||
usernames:
|
usernames:
|
||||||
type: string
|
type: string
|
||||||
|
chatWithMessage:
|
||||||
|
type: string
|
||||||
nextStart:
|
nextStart:
|
||||||
type: number
|
type: number
|
||||||
title:
|
title:
|
||||||
@@ -311,4 +313,6 @@ get:
|
|||||||
removed, etc.)
|
removed, etc.)
|
||||||
canViewInfo:
|
canViewInfo:
|
||||||
type: boolean
|
type: boolean
|
||||||
|
chatWithMessage:
|
||||||
|
type: string
|
||||||
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
- $ref: ../../../../components/schemas/CommonProps.yaml#/CommonProps
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
get:
|
|
||||||
tags:
|
|
||||||
- users
|
|
||||||
summary: Export a user's posts (.csv)
|
|
||||||
description: This route retrieves an existing export of user's posts. To create one go to `/user/{userslug}/consent`
|
|
||||||
parameters:
|
|
||||||
- name: userslug
|
|
||||||
in: path
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
example: admin
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: "A CSV file containing a user's posts"
|
|
||||||
content:
|
|
||||||
text/csv:
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
format: binary
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
get:
|
|
||||||
tags:
|
|
||||||
- users
|
|
||||||
summary: Export a user's profile data (.json)
|
|
||||||
description: This route retrieves an existing export of user's profile data. To create one go to `/user/{userslug}/consent`
|
|
||||||
parameters:
|
|
||||||
- name: userslug
|
|
||||||
in: path
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
example: admin
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: "A JSON file containing the user profile"
|
|
||||||
content:
|
|
||||||
text/json:
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
format: binary
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
get:
|
|
||||||
tags:
|
|
||||||
- users
|
|
||||||
summary: Export a user's uploads (.zip)
|
|
||||||
description: This route retrieves an existing export of user's profile data. To create one go to `/user/{userslug}/consent`
|
|
||||||
parameters:
|
|
||||||
- name: userslug
|
|
||||||
in: path
|
|
||||||
required: true
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
example: admin
|
|
||||||
responses:
|
|
||||||
"200":
|
|
||||||
description: Successful export of user uploads
|
|
||||||
content:
|
|
||||||
application/zip:
|
|
||||||
schema:
|
|
||||||
type: string
|
|
||||||
format: binary
|
|
||||||
@@ -40,55 +40,9 @@ get:
|
|||||||
additionalProperties:
|
additionalProperties:
|
||||||
description: Contextual data is added to this object (such as topic data, etc.)
|
description: Contextual data is added to this object (such as topic data, etc.)
|
||||||
bans:
|
bans:
|
||||||
type: array
|
$ref: ../../../components/schemas/UserObject.yaml#/BanMuteArray
|
||||||
items:
|
mutes:
|
||||||
type: object
|
$ref: ../../../components/schemas/UserObject.yaml#/BanMuteArray
|
||||||
properties:
|
|
||||||
uid:
|
|
||||||
type: number
|
|
||||||
timestamp:
|
|
||||||
type: number
|
|
||||||
expire:
|
|
||||||
type: number
|
|
||||||
fromUid:
|
|
||||||
type: number
|
|
||||||
user:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
username:
|
|
||||||
type: string
|
|
||||||
description: A friendly name for a given user account
|
|
||||||
userslug:
|
|
||||||
type: string
|
|
||||||
description: An URL-safe variant of the username (i.e. lower-cased, spaces
|
|
||||||
removed, etc.)
|
|
||||||
picture:
|
|
||||||
type: string
|
|
||||||
uid:
|
|
||||||
type: number
|
|
||||||
description: A user identifier
|
|
||||||
icon:text:
|
|
||||||
type: string
|
|
||||||
description: A single-letter representation of a username. This is used in the
|
|
||||||
auto-generated icon given to users without
|
|
||||||
an avatar
|
|
||||||
icon:bgColor:
|
|
||||||
type: string
|
|
||||||
description: A six-character hexadecimal colour code assigned to the user. This
|
|
||||||
value is used in conjunction with
|
|
||||||
`icon:text` for the user's auto-generated
|
|
||||||
icon
|
|
||||||
example: "#f44336"
|
|
||||||
until:
|
|
||||||
type: number
|
|
||||||
untilReadable:
|
|
||||||
type: string
|
|
||||||
timestampReadable:
|
|
||||||
type: string
|
|
||||||
timestampISO:
|
|
||||||
type: string
|
|
||||||
reason:
|
|
||||||
type: string
|
|
||||||
sessions:
|
sessions:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
|
|||||||
@@ -150,6 +150,8 @@ paths:
|
|||||||
$ref: 'write/chats.yaml'
|
$ref: 'write/chats.yaml'
|
||||||
/chats/{roomId}:
|
/chats/{roomId}:
|
||||||
$ref: 'write/chats/roomId.yaml'
|
$ref: 'write/chats/roomId.yaml'
|
||||||
|
/chats/{roomId}/state:
|
||||||
|
$ref: 'write/chats/roomId/state.yaml'
|
||||||
/chats/{roomId}/users:
|
/chats/{roomId}/users:
|
||||||
$ref: 'write/chats/roomId/users.yaml'
|
$ref: 'write/chats/roomId/users.yaml'
|
||||||
/chats/{roomId}/users/{uid}:
|
/chats/{roomId}/users/{uid}:
|
||||||
|
|||||||
50
public/openapi/write/chats/roomId/state.yaml
Normal file
50
public/openapi/write/chats/roomId/state.yaml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
put:
|
||||||
|
tags:
|
||||||
|
- chats
|
||||||
|
summary: mark chat room as unread
|
||||||
|
description: This operation marks a chat room as unread.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: roomId
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
required: true
|
||||||
|
description: a valid room id
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Chat room marked
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
$ref: ../../../components/schemas/Status.yaml#/Status
|
||||||
|
response:
|
||||||
|
$ref: ../../../components/schemas/Chats.yaml#/RoomObjectFull
|
||||||
|
delete:
|
||||||
|
tags:
|
||||||
|
- chats
|
||||||
|
summary: mark chat room as read
|
||||||
|
description: This operation marks a chat room as read.
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: roomId
|
||||||
|
schema:
|
||||||
|
type: number
|
||||||
|
required: true
|
||||||
|
description: a valid room id
|
||||||
|
example: 1
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Chat room marked
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
$ref: ../../../components/schemas/Status.yaml#/Status
|
||||||
|
response:
|
||||||
|
$ref: ../../../components/schemas/Chats.yaml#/RoomObjectFull
|
||||||
@@ -1,8 +1,4 @@
|
|||||||
@import "bootstrap/less/bootstrap";
|
|
||||||
@import "./paper/variables";
|
|
||||||
@import "./paper/bootswatch";
|
|
||||||
@import "./mixins";
|
@import "./mixins";
|
||||||
@import "./vars";
|
|
||||||
|
|
||||||
@import "./header";
|
@import "./header";
|
||||||
@import "./mobile";
|
@import "./mobile";
|
||||||
@@ -13,24 +9,13 @@
|
|||||||
@import "./manage/privileges";
|
@import "./manage/privileges";
|
||||||
@import "./manage/tags";
|
@import "./manage/tags";
|
||||||
@import "./manage/groups";
|
@import "./manage/groups";
|
||||||
@import "./manage/registration";
|
|
||||||
@import "./manage/users";
|
|
||||||
@import "./manage/admins-mods";
|
|
||||||
@import "./appearance/customise";
|
@import "./appearance/customise";
|
||||||
@import "./appearance/themes";
|
|
||||||
@import "./extend/plugins";
|
@import "./extend/plugins";
|
||||||
@import "./extend/rewards";
|
@import "./extend/rewards";
|
||||||
@import "./extend/widgets";
|
@import "./extend/widgets";
|
||||||
@import "./advanced/database";
|
@import "./advanced/database";
|
||||||
@import "./advanced/events";
|
|
||||||
@import "./advanced/logs";
|
|
||||||
@import "./advanced/errors";
|
|
||||||
@import "./advanced/hooks";
|
|
||||||
@import "./development/info";
|
|
||||||
@import "./settings";
|
@import "./settings";
|
||||||
|
|
||||||
@import "../flags";
|
|
||||||
|
|
||||||
@import "./modules/alerts";
|
@import "./modules/alerts";
|
||||||
@import "./modules/selectable";
|
@import "./modules/selectable";
|
||||||
@import "./modules/nprogress";
|
@import "./modules/nprogress";
|
||||||
@@ -46,21 +31,19 @@ body {
|
|||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 35px;
|
font-size: 35px;
|
||||||
margin-bottom: 50px;
|
|
||||||
}
|
}
|
||||||
|
.form-label, .form-check-label {
|
||||||
label {
|
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
height: auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
|
.btn-outline-secondary {
|
||||||
.btn-link {
|
color: $gray-700;
|
||||||
color: @link-color;
|
box-shadow: 0 1px 4px rgba(0, 0, 0, .4) !important;
|
||||||
|
&:hover {
|
||||||
|
background-color: $gray-200 !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// .floating-button can either be a container or the button itself
|
// .floating-button can either be a container or the button itself
|
||||||
@@ -68,16 +51,16 @@ body {
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
right: 30px;
|
right: 30px;
|
||||||
bottom: 30px;
|
bottom: 30px;
|
||||||
z-index: 1;
|
z-index: 2;
|
||||||
max-width: 56px;
|
max-width: 56px;
|
||||||
|
|
||||||
button {
|
button {
|
||||||
&.primary {
|
&.primary {
|
||||||
background: @brand-primary !important;
|
background: $primary !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.success {
|
&.success {
|
||||||
background: @brand-success !important;
|
background: $success !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
@@ -86,12 +69,7 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
button.floating-button {
|
button.floating-button {
|
||||||
background: @brand-primary !important;
|
background: $primary !important;
|
||||||
}
|
|
||||||
|
|
||||||
.user-img {
|
|
||||||
width:24px;
|
|
||||||
height:24px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.nodebb-logo {
|
.nodebb-logo {
|
||||||
@@ -102,7 +80,7 @@ body {
|
|||||||
vertical-align: -43%;
|
vertical-align: -43%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.box-header-font;
|
@include box-header-font;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,48 +88,52 @@ body {
|
|||||||
cursor: default;
|
cursor: default;
|
||||||
}
|
}
|
||||||
|
|
||||||
.acp-panel-heading {
|
@mixin acp-panel-heading() {
|
||||||
padding: 7px 14px;
|
padding: 7px 14px;
|
||||||
border: 0;
|
border: 0;
|
||||||
.box-header-font;
|
@include box-header-font;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel:not([data-container-html]) {
|
.card:not([data-container-html]) {
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
border-width: 0px;
|
||||||
box-shadow: 0px 1px 3px 0px rgba(165, 165, 165, 0.75);
|
box-shadow: 0px 1px 3px 0px rgba(165, 165, 165, 0.75);
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
|
||||||
&.panel-default >.panel-heading {
|
>.card-header {
|
||||||
.acp-panel-heading;
|
@include acp-panel-heading;
|
||||||
background: #fefefe;
|
background: #fefefe;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.panel-danger >.panel-heading {
|
&.card-danger >.card-header {
|
||||||
.acp-panel-heading;
|
@include acp-panel-heading;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-header {
|
.nav-header {
|
||||||
.box-header-font
|
@include box-header-font;
|
||||||
}
|
}
|
||||||
|
|
||||||
.icon-container {
|
.icon-container {
|
||||||
.row {
|
.fa-nbb-none {
|
||||||
|
border: 1px dotted black;
|
||||||
|
}
|
||||||
|
.nbb-fa-icons {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
i {
|
i {
|
||||||
width:20px;
|
width: 36px;
|
||||||
height:20px;
|
height: 36px;
|
||||||
margin: 1px;
|
cursor: pointer;
|
||||||
.pointer;
|
line-height: 36px;
|
||||||
line-height: 20px;
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: @gray-dark;
|
color: $gray-800;
|
||||||
|
margin: 4px;
|
||||||
|
|
||||||
&:hover, &.selected {
|
&:hover, &.selected {
|
||||||
background: @brand-primary;
|
background: $primary;
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -167,26 +149,13 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.navbar-nav {
|
.navbar-nav {
|
||||||
margin-top: 0;
|
>li {
|
||||||
margin-bottom: 0;
|
|
||||||
|
|
||||||
>li {
|
|
||||||
>a {
|
|
||||||
padding-top: 15px;
|
|
||||||
padding-bottom: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
>a:hover, >a:focus {
|
|
||||||
color: @gray-dark;
|
|
||||||
background-color: @gray-light;
|
|
||||||
}
|
|
||||||
|
|
||||||
>#reconnect {
|
>#reconnect {
|
||||||
color: @gray-light;
|
color: $gray-700;
|
||||||
}
|
}
|
||||||
|
|
||||||
>#reconnect:focus, >#reconnect:hover {
|
>#reconnect:focus, >#reconnect:hover {
|
||||||
color: @gray-light;
|
color: $gray-700;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -198,7 +167,23 @@ body {
|
|||||||
|
|
||||||
/* Allows the autocomplete dropbox to appear on top of a modal's backdrop */
|
/* Allows the autocomplete dropbox to appear on top of a modal's backdrop */
|
||||||
.ui-autocomplete {
|
.ui-autocomplete {
|
||||||
z-index: @zindex-popover;
|
z-index: $zindex-popover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-tagsinput {
|
||||||
|
width: 100%;
|
||||||
|
border: 0;
|
||||||
|
box-shadow: none;
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
|
input {
|
||||||
|
width: 100%;
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-top: 9px;
|
||||||
|
border-bottom: 1px dotted #ccc !important;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,16 +196,16 @@ body {
|
|||||||
.category-settings-form {
|
.category-settings-form {
|
||||||
h3 {
|
h3 {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
.pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
h4 {
|
h4 {
|
||||||
.pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-preview {
|
.category-preview {
|
||||||
.pointer;
|
cursor: pointer;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
@@ -235,13 +220,16 @@ body {
|
|||||||
margin: 35px 5px 0 5px;
|
margin: 35px 5px 0 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.category-dropdown-container.right .category-dropdown-menu {
|
||||||
|
--bs-position: end;
|
||||||
|
}
|
||||||
|
|
||||||
[component="category-selector"] {
|
[component="category-selector"] {
|
||||||
.fa-stack {
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
.category-dropdown-menu {
|
.category-dropdown-menu {
|
||||||
max-height: 400px;
|
max-height: 500px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -262,32 +250,38 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mdl-switch.is-checked .mdl-switch__ripple-container {
|
|
||||||
cursor: pointer !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mdl-switch.is-checked .mdl-switch__thumb {
|
|
||||||
background: @brand-primary !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mdl-switch.is-checked .mdl-switch__track {
|
|
||||||
background: lighten(@brand-primary, 20%) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
* > .checkbox:first-child {
|
* > .checkbox:first-child {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
[class^="col-"] .mdl-switch__label {
|
|
||||||
padding-right: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ui-selectable-helper {
|
.ui-selectable-helper {
|
||||||
border: 1px dashed @brand-success;
|
border: 1px dashed $success;
|
||||||
background: lighten(@brand-success, 10%);
|
background: lighten($success, 10%);
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
form small {
|
form small {
|
||||||
color: @gray-light;
|
color: $gray-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caret {
|
||||||
|
display: inline-block;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
vertical-align: middle;
|
||||||
|
border-top: 4px dashed;
|
||||||
|
border-right: 4px solid transparent;
|
||||||
|
border-left: 4px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#save {
|
||||||
|
transition: background-color 500ms linear;
|
||||||
|
|
||||||
|
&.saved {
|
||||||
|
background-color: $success;
|
||||||
|
|
||||||
|
i {
|
||||||
|
@include fa-icon-solid($fa-var-check);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,20 +4,3 @@
|
|||||||
width:220px;
|
width:220px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -6,4 +6,4 @@
|
|||||||
// ACP text colour when searching through custom CSS or JS.
|
// ACP text colour when searching through custom CSS or JS.
|
||||||
.ace_search_field {
|
.ace_search_field {
|
||||||
color: #000 !important;
|
color: #000 !important;
|
||||||
}
|
}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
.plugin-list.ui-sortable {
|
.plugin-list.ui-sortable {
|
||||||
li {
|
li {
|
||||||
.pointer;
|
cursor: pointer;
|
||||||
|
|
||||||
.fa-chevron-up {
|
.fa-chevron-up {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
@@ -37,22 +37,14 @@
|
|||||||
|
|
||||||
&:first-child .fa-chevron-up, &:last-child .fa-chevron-down {
|
&:first-child .fa-chevron-up, &:last-child .fa-chevron-down {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
color: @gray-light;
|
color: $gray-300;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.controls .btn {
|
.controls .btn {
|
||||||
display: list-item;
|
display: list-item;
|
||||||
width: 120px;
|
width: 150px;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.acp-sidebar {
|
|
||||||
.mdl-switch__label {
|
|
||||||
margin-left: 24px;
|
|
||||||
display: block;
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,4 @@
|
|||||||
#rewards {
|
#rewards {
|
||||||
.well, .panel-body {
|
|
||||||
vertical-align: top;
|
|
||||||
min-height: 100px;
|
|
||||||
|
|
||||||
&.pull-right {
|
|
||||||
min-height: 0px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
@@ -24,26 +15,26 @@
|
|||||||
|
|
||||||
.rewards { width: 100%; }
|
.rewards { width: 100%; }
|
||||||
|
|
||||||
.well {
|
.card {
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
color: #333;
|
color: #333;
|
||||||
|
|
||||||
&.if-block {
|
&.if-block {
|
||||||
border-color: @brand-primary;
|
border-color: $primary;
|
||||||
max-width: 33%;
|
max-width: 33%;
|
||||||
}
|
}
|
||||||
&.this-block {
|
&.this-block {
|
||||||
border-color: @brand-warning;
|
border-color: $warning;
|
||||||
max-width: 33%;
|
max-width: 33%;
|
||||||
}
|
}
|
||||||
&.then-block {
|
&.then-block {
|
||||||
border-color: @brand-success;
|
border-color: $success;
|
||||||
max-width: 33%;
|
max-width: 33%;
|
||||||
}
|
}
|
||||||
&.reward-block {
|
&.reward-block {
|
||||||
border-color: @brand-success;
|
border-color: $success;
|
||||||
background-color: lighten(@brand-success, 15%);
|
background-color: lighten($success, 15%);
|
||||||
color: #fff;
|
color: #fff;
|
||||||
a, select, input { color: #fff; }
|
a, select, input { color: #fff; }
|
||||||
select > option { color: #333; }
|
select > option { color: #333; }
|
||||||
@@ -51,4 +42,11 @@
|
|||||||
min-height: 110px;
|
min-height: 110px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-admin-rewards {
|
||||||
|
#new {
|
||||||
|
bottom: calc(64px + $spacer);
|
||||||
|
background-color: $success;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
.page-extend-widgets {
|
.page-admin-extend.page-admin-widgets {
|
||||||
[component="clone"] {
|
[component="clone"] {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
@@ -16,4 +16,13 @@
|
|||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
.container-hover {
|
||||||
|
.container-html {
|
||||||
|
// border: 1px solid red!important;
|
||||||
|
@extend .border;
|
||||||
|
@extend .border-2;
|
||||||
|
@extend .border-primary;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,25 +1,25 @@
|
|||||||
.dashboard {
|
.dashboard {
|
||||||
max-width: 1680px;
|
max-width: 1680px;
|
||||||
|
|
||||||
.panel {
|
.card {
|
||||||
max-width: 100% !important;
|
max-width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#analytics-panel .panel-heading > div {
|
#analytics-panel .card-header > div {
|
||||||
&.fa-expand {
|
&.fa-expand {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
font-family: @font-family-sans-serif;
|
font-family: $font-family-sans-serif;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: @gray-dark;
|
color: $gray-300;
|
||||||
padding-left: .5em;
|
padding-left: .5em;
|
||||||
|
|
||||||
padding: .75em;
|
padding: .75em;
|
||||||
background-color: @gray-lighter;
|
background-color: $gray-200;
|
||||||
color: @gray-base;
|
color: $black;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
.transition(all .4s);
|
transition: all .4s;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
display: inline;
|
display: inline;
|
||||||
@@ -29,12 +29,12 @@
|
|||||||
.graph-container {
|
.graph-container {
|
||||||
padding-right: 50px;
|
padding-right: 50px;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: @body-bg;
|
background: $body-bg;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
.fa-expand {
|
.fa-expand {
|
||||||
color: @gray-lighter;
|
color: $gray-800;
|
||||||
background-color: @gray-base;
|
background-color: $black;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.graph-legend {
|
.graph-legend {
|
||||||
.box-header-font;
|
@include box-header-font;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -24,6 +24,10 @@
|
|||||||
|
|
||||||
li {
|
li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
>a:hover, >a:focus {
|
||||||
|
color: $gray-300;
|
||||||
|
background-color: $gray-700;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
.header {
|
.header {
|
||||||
.no-select;
|
user-select: none;
|
||||||
position: relative;
|
position: relative;
|
||||||
background: #333;
|
background: #333;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
#main-page-title {
|
#main-page-title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 48px;
|
left: 48px;
|
||||||
bottom: 17px;
|
bottom: 50px;
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
font-size: 47px;
|
font-size: 47px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
@@ -23,10 +23,6 @@
|
|||||||
flex-direction: row-reverse;
|
flex-direction: row-reverse;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
li {
|
|
||||||
align-self: end;
|
|
||||||
}
|
|
||||||
|
|
||||||
> * {
|
> * {
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
@@ -38,7 +34,7 @@
|
|||||||
|
|
||||||
.alert {
|
.alert {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 0px;
|
||||||
|
|
||||||
&.alert-info {
|
&.alert-info {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
@@ -75,10 +71,10 @@
|
|||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
height: 44px;
|
height: 44px;
|
||||||
background-color: rgba(0, 0, 0, 0.2);
|
background-color: rgba(0,0,0,.2);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
.transition(.4s ease background-color);
|
transition: .4s ease background-color;
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
@@ -89,7 +85,7 @@
|
|||||||
.dropdown:not(.open) {
|
.dropdown:not(.open) {
|
||||||
&:before {
|
&:before {
|
||||||
content: '/';
|
content: '/';
|
||||||
border: 1px solid @gray;
|
border: 1px solid $gray-500;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 0px 6px;
|
padding: 0px 6px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
@@ -97,14 +93,14 @@
|
|||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 10px;
|
top: 13px;
|
||||||
left: 1em;
|
left: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&:after {
|
||||||
content: attr(data-text);
|
content: attr(data-text);
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 10px;
|
top: 13px;
|
||||||
left: 3em;
|
left: 3em;
|
||||||
font-size: small;
|
font-size: small;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@@ -130,7 +126,7 @@
|
|||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: -11px;
|
bottom: -16px;
|
||||||
left: 50px;
|
left: 50px;
|
||||||
|
|
||||||
> li {
|
> li {
|
||||||
@@ -140,11 +136,11 @@
|
|||||||
transition: border-color 150ms linear;
|
transition: border-color 150ms linear;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
border-color: darken(@brand-primary, 20%);
|
border-color: darken($primary, 20%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
border-color: @brand-primary;
|
border-color: $primary;
|
||||||
}
|
}
|
||||||
|
|
||||||
> a {
|
> a {
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
div.categories {
|
div.categories {
|
||||||
ul[data-cid] {
|
ul[data-cid] {
|
||||||
.no-select;
|
user-select: none;
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -73,22 +73,6 @@ div.categories {
|
|||||||
.information {
|
.information {
|
||||||
cursor: move;
|
cursor: move;
|
||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
|
|
||||||
.icon {
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
border-radius: 50%;
|
|
||||||
line-height: 24px;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: bottom;
|
|
||||||
background-size: cover;
|
|
||||||
float: left;
|
|
||||||
margin-right: 1rem;
|
|
||||||
|
|
||||||
.fa {
|
|
||||||
font-size: 85%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.category-header {
|
.category-header {
|
||||||
@@ -111,25 +95,5 @@ div.categories {
|
|||||||
tr > th:first-child {
|
tr > th:first-child {
|
||||||
min-width: 150px;
|
min-width: 150px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.privilege-table-header {
|
|
||||||
background: white;
|
|
||||||
|
|
||||||
th {
|
|
||||||
text-align: center;
|
|
||||||
border-top: 0;
|
|
||||||
text-transform: uppercase;
|
|
||||||
font-size: 9px;
|
|
||||||
vertical-align: bottom;
|
|
||||||
}
|
|
||||||
|
|
||||||
.arrowed:after {
|
|
||||||
border-bottom: 1px dashed #ccc;
|
|
||||||
content: "";
|
|
||||||
width: 100%;
|
|
||||||
display: block;
|
|
||||||
padding-top: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -35,16 +35,6 @@
|
|||||||
[component="category/list"] li {
|
[component="category/list"] li {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.fa-nbb-none {
|
|
||||||
border: 1px dotted black;
|
|
||||||
height: 35px;
|
|
||||||
width: 35px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fa-icons .fa-nbb-none {
|
|
||||||
vertical-align: -6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#group-icon-preview.fa-nbb-none {
|
#group-icon-preview.fa-nbb-none {
|
||||||
display: none;
|
display: none;
|
||||||
19
public/scss/admin/manage/privileges.scss
Normal file
19
public/scss/admin/manage/privileges.scss
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
.page-admin-privileges {
|
||||||
|
@keyframes fadeOut {
|
||||||
|
0% {background-color: $primary;}
|
||||||
|
100% {background-color: white;}
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-group-name].selected, [data-uid].selected {
|
||||||
|
animation-name: fadeOut;
|
||||||
|
animation-duration: 5s;
|
||||||
|
animation-fill-mode: both;
|
||||||
|
animation-timing-function: ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.privilege-table {
|
||||||
|
td:first-child {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,11 +16,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&.ui-selected {
|
&.ui-selected {
|
||||||
background: lighten(@brand-success, 25%);
|
background: lighten($success, 25%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.ui-selecting {
|
&.ui-selecting {
|
||||||
background: lighten(@brand-success, 40%);
|
background: lighten($success, 40%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
@import "../mixins";
|
@import "../mixins";
|
||||||
|
|
||||||
.box-header-font {
|
@mixin box-header-font() {
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
body {
|
body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#panel {
|
#panel {
|
||||||
background-color: inherit;
|
background-color: inherit;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
@@ -31,11 +31,6 @@
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
#user_label {
|
|
||||||
right: 0px;
|
|
||||||
bottom: 7px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-menu {
|
#main-menu {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
@@ -93,7 +88,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.alert {
|
.alert {
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
|
|
||||||
@@ -152,7 +147,6 @@
|
|||||||
|
|
||||||
.slideout-panel {
|
.slideout-panel {
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.slideout-open,
|
.slideout-open,
|
||||||
@@ -170,7 +164,7 @@
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slideout-open {
|
.slideout-open {
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
124
public/scss/admin/modules/alerts.scss
Normal file
124
public/scss/admin/modules/alerts.scss
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
.alert-window {
|
||||||
|
position: fixed;
|
||||||
|
width: 300px;
|
||||||
|
z-index: 10002;
|
||||||
|
|
||||||
|
right: 20px;
|
||||||
|
bottom: 0px;
|
||||||
|
|
||||||
|
.alert {
|
||||||
|
.close {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
position: relative;
|
||||||
|
top: -15px;
|
||||||
|
left: -15px;
|
||||||
|
display: block;
|
||||||
|
height: 2px;
|
||||||
|
width: 0;
|
||||||
|
transition: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-info {
|
||||||
|
.btn-close {
|
||||||
|
$btn-close-color: $info;
|
||||||
|
background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
background-color: $info;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-warning {
|
||||||
|
.btn-close {
|
||||||
|
$btn-close-color: $warning;
|
||||||
|
background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
|
||||||
|
}
|
||||||
|
|
||||||
|
::before {
|
||||||
|
background-color: $warning;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-success {
|
||||||
|
.btn-close {
|
||||||
|
$btn-close-color: $success;
|
||||||
|
background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
|
||||||
|
}
|
||||||
|
|
||||||
|
::before {
|
||||||
|
background-color: $success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-danger {
|
||||||
|
.btn-close {
|
||||||
|
$btn-close-color: $danger;
|
||||||
|
background-image: escape-svg(url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/></svg>"));
|
||||||
|
}
|
||||||
|
|
||||||
|
::before {
|
||||||
|
background-color: $danger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.animate {
|
||||||
|
&.alert-info::before {
|
||||||
|
background-color: lighten($info, 25%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-warning::before {
|
||||||
|
background-color: lighten($warning, 25%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-success::before {
|
||||||
|
background-color: lighten($success, 25%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-danger::before {
|
||||||
|
background-color: lighten($danger, 25%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
width: calc(100% + 50px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
background-color: white;
|
||||||
|
padding-right: 16px;
|
||||||
|
border: 0;
|
||||||
|
border-left: 5px solid !important;
|
||||||
|
box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.25), 0px 2px 10px 0px rgba(0, 0, 0, 0.25);
|
||||||
|
|
||||||
|
strong {
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
padding: 10px 0px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-info {
|
||||||
|
color: $info;
|
||||||
|
border-color: $info;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-warning {
|
||||||
|
color: $warning;
|
||||||
|
border-color: $warning;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-success {
|
||||||
|
color: $success;
|
||||||
|
border-color: $success;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.alert-danger {
|
||||||
|
color: $danger;
|
||||||
|
border-color: $danger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
80
public/scss/admin/modules/nprogress.scss
Normal file
80
public/scss/admin/modules/nprogress.scss
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
#nprogress {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nprogress .bar {
|
||||||
|
background: #29d;
|
||||||
|
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1031;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
width: 100%;
|
||||||
|
height: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#nprogress .peg {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
width: 100px;
|
||||||
|
height: 100%;
|
||||||
|
box-shadow: 0 0 10px #29d, 0 0 5px #29d;
|
||||||
|
opacity: 1.0;
|
||||||
|
|
||||||
|
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
||||||
|
-ms-transform: rotate(3deg) translate(0px, -4px);
|
||||||
|
transform: rotate(3deg) translate(0px, -4px);
|
||||||
|
}
|
||||||
|
|
||||||
|
#nprogress .spinner {
|
||||||
|
display: block;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1031;
|
||||||
|
top: 165px;
|
||||||
|
right: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(sm) {
|
||||||
|
#nprogress .spinner {
|
||||||
|
bottom: 15px;
|
||||||
|
right: 15px;
|
||||||
|
top: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#nprogress .spinner-icon {
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
border: solid 2px transparent;
|
||||||
|
border-top-color: #29d;
|
||||||
|
border-left-color: #29d;
|
||||||
|
border-radius: 50%;
|
||||||
|
|
||||||
|
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
||||||
|
animation: nprogress-spinner 400ms linear infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nprogress-custom-parent {
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nprogress-custom-parent #nprogress .spinner,
|
||||||
|
.nprogress-custom-parent #nprogress .bar {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes nprogress-spinner {
|
||||||
|
0% { -webkit-transform: rotate(0deg); }
|
||||||
|
100% { -webkit-transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
@keyframes nprogress-spinner {
|
||||||
|
0% { transform: rotate(0deg); }
|
||||||
|
100% { transform: rotate(360deg); }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -4,9 +4,9 @@
|
|||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
> li > a {
|
> li > a {
|
||||||
&.focus {
|
// &.focus {
|
||||||
&:extend(.dropdown-menu>li>a:focus);
|
// &:extend(.dropdown-menu>li>a:focus);
|
||||||
}
|
// }
|
||||||
&:focus {
|
&:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user