1
0

Added illustration & mezssage when a page doe not contain any mod / projects (#133)

* Added new messages with illustration displaying that this page does not contain any elements
Fixed 404 error after deleting mod

* Fixed typo
This commit is contained in:
Redblueflame
2021-03-30 17:41:20 +02:00
committed by GitHub
parent 1e0d118930
commit e58963410e
8 changed files with 521 additions and 149 deletions

View File

@@ -0,0 +1,78 @@
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
id="b3c5850d-3d23-4aad-a12c-b5e8440d4fde"
width="432.34134"
height="448.72375"
viewBox="0 0 432.34134 448.72374"
version="1.1">
<path
d="m 367.46102,279.26375 -46.77977,46.17 -105.72023,104.32 -2.13965,2.11 -11.91992,11.76 -24.9902,-24.69 -2.20019,-2.17 -45.69,-45.13 h -0.01 l -14.64013,-14.47 -8.6499,-8.55 -25.760248,-25.44 -3.4795,-3.44 -41.06006,-40.56 a 117.65792,117.65792 0 0 1 -20.52,-27.63 c -0.5,-0.91 -0.97022,-1.83 -1.43018,-2.75 A 117.50682,117.50682 0 0 1 137.18125,80.263749 h 0.0102 c 0.37989,0.06 0.75,0.12 1.12989,0.2 a 113.60526,113.60526 0 0 1 11.91015,2.77 117.09292,117.09292 0 0 1 29.11961,12.93 q 1.4253,0.885 2.82031,1.8 a 118.17183,118.17183 0 0 1 18.46973,15.090001 l 0.3501,-0.35 0.3501,0.35 a 118.54248,118.54248 0 0 1 10.83007,-9.58 c 0.82959,-0.65 1.66993,-1.29 2.50977,-1.91 a 117.44922,117.44922 0 0 1 90.51025,-21.060001 111.92113,111.92113 0 0 1 11.91993,2.78 q 1.96507,0.55509 3.8999,1.2 c 1.04,0.34 2.08008,0.69 3.10986,1.07 a 116.42525,116.42525 0 0 1 24.39014,12.1 q 2.50488,1.63494 4.93994,3.420001 a 117.54672,117.54672 0 0 1 14.00977,178.19 z"
fill="#5da545"
id="path10" />
<path
d="m 320.68125,325.43375 -105.72023,104.32 -2.13965,2.11 -11.91992,11.76 -24.9902,-24.69 -2.20019,-2.17 -45.69,-45.13 c 7.34034,-1.71 18.62012,0.64 22.75,2.68 9.79,4.83 17.84034,12.76 27.78028,17.28 a 46.138,46.138 0 0 0 28.33009,3.13 c 17.81982,-3.74 31.60986,-17.52 43.77,-31.08 12.15966,-13.57 24.58984,-28.13 41.67968,-34.42 9.01028,-3.32 18.68996,-4.07 28.35014,-3.79 z"
opacity="0.15"
id="path12" />
<path
d="M 397.54109,114.98375 A 118.15747,118.15747 0 0 0 345.01131,84.433749 c -1.31983,-0.37 -2.62988,-0.7 -3.96,-1.01 a 116.83094,116.83094 0 0 0 -17.39006,-2.79 c -1.02,-0.1 -2.04,-0.17 -3.06982,-0.22 a 115.15486,115.15486 0 0 0 -15.43018,0.06 118.39675,118.39675 0 0 0 -74.83984,33.450001 l -0.36035,-0.36 -0.35987,0.36 a 118.61442,118.61442 0 0 0 -46.6997,-28.080001 c -0.99024,-0.32 -1.99024,-0.63 -2.99024,-0.92 a 119.67335,119.67335 0 0 0 -41.62012,-4.45 c -0.38964,0.02 -0.77978,0.05 -1.15966,0.09 A 118.30611,118.30611 0 0 0 67.731562,109.96375 c -1.82031,1.6 -3.61035,3.28 -5.35009,5.02 a 119.14261,119.14261 0 0 0 -26.64022,127.55 c 0.3501,0.94 0.73,1.87006 1.12988,2.8 a 118.153,118.153 0 0 0 25.51026,37.95 l 38.919918,38.42 3.06006,3.03 84.21972,83.13 2.16992,2.15 22.12012,21.84 17.08985,16.87 167.58011,-165.45 a 119.129,119.129 0 0 0 0,-168.29 z m -2.10984,166.16 -165.47023,163.36 -14.94971,-14.76 -21.6499,-21.37 -2.16993,-2.14 -82.58007,-81.53 -3.01026,-2.97 -41.100098,-40.58 a 115.19343,115.19343 0 0 1 -24.7598,-36.72 c -0.3999,-0.93 -0.78027,-1.86 -1.12988,-2.79 a 116.13377,116.13377 0 0 1 25.88968,-124.54 q 2.79054,-2.79 5.71,-5.34 h 0.0102 A 115.38082,115.38082 0 0 1 136.70125,83.603749 q 4.905,-0.42 9.81982,-0.42 c 1.23,0 2.4502,0.02 3.68018,0.06 a 116.0993,116.0993 0 0 1 29.6499,4.8 c 0.99024,0.29 1.98,0.6 2.96,0.93 a 114.15644,114.15644 0 0 1 29.33008,14.490001 115.61419,115.61419 0 0 1 16.41016,13.64 l 1.06006,1.06 0.34961,-0.35 0.35009,0.35 1.06006,-1.06 a 115.674,115.674 0 0 1 85.71,-33.860001 c 1.27,0.04 2.54,0.1 3.81006,0.19 1.02,0.06 2.04,0.13 3.05029,0.23 a 115.12349,115.12349 0 0 1 19.08985,3.35 c 1.33984,0.34 2.66992,0.71 3.98974,1.12 a 115.9591,115.9591 0 0 1 48.4101,193.010001 z"
fill="#ffffff"
id="path14" />
<path
d="m 163.08113,87.773749 c -6.41992,5.07 -13.31006,9.75 -17.48,16.680001 -3.06982,5.12 -4.3999,11.07 -5.39013,16.95 -1.91993,11.44 -2.73975,23.16 -6.5,34.12994 -3.75,10.97 -11.06983,21.45 -21.91993,25.54 -6.73,2.53 -14.149898,2.39 -21.319818,1.9 -17.68994,-1.2 -35.5,-4.37 -51.41992,-12.16 -8.8999,-4.36 -17.53028,-10.24 -27.41992,-10.89 a 25.39538,25.39538 0 0 0 -6.0200005,0.33 A 117.494,117.494 0 0 1 137.18125,80.263749 h 0.0102 c 0.37989,0.06 0.75,0.12 1.12989,0.2 a 113.60526,113.60526 0 0 1 11.91015,2.77 117.48205,117.48205 0 0 1 12.84959,4.54 z"
opacity="0.15"
id="path16" />
<circle
cx="94.291763"
cy="76.050789"
r="43.067329"
fill="#2f2e41"
id="circle18" />
<rect
x="74.666153"
y="109.85048"
width="13.08374"
height="23.44171"
fill="#2f2e41"
id="rect20" />
<rect
x="100.83363"
y="109.85048"
width="13.08374"
height="23.44171"
fill="#2f2e41"
id="rect22" />
<ellipse
cx="85.569229"
cy="133.56477"
rx="10.90314"
ry="4.0886798"
fill="#2f2e41"
id="ellipse24" />
<ellipse
cx="111.73677"
cy="133.01961"
rx="10.90314"
ry="4.0886798"
fill="#2f2e41"
id="ellipse26" />
<circle
cx="95.382095"
cy="65.147659"
r="14.71923"
fill="#ffffff"
id="circle28" />
<ellipse
cx="22.820126"
cy="119.16339"
rx="4.8859401"
ry="4.9205499"
transform="rotate(-44.98705)"
fill="#3f3d56"
id="ellipse30" />
<path
d="M 52.514972,35.999439 C 49.037492,20.425649 60.153622,4.6890094 77.343632,0.85062939 94.533642,-2.9877506 111.28784,6.5257394 114.76532,22.099539 c 3.47748,15.5738 -7.91492,21.31768 -25.104858,25.156 -17.18994,3.83832 -33.66795,4.31775 -37.14549,-11.2561 z"
fill="#e6e6e6"
id="path32" />
</svg>

After

Width:  |  Height:  |  Size: 5.2 KiB

View File

@@ -0,0 +1,109 @@
<svg id="f921693e-33a8-40f4-b606-3710578972cc" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="859.39917" height="767.78379" viewBox="0 0 859.39917 767.78379" version="1.1">
<defs>
<linearGradient id="b629f179-8ab2-4411-a7df-956765958247" x1="344.9209" y1="369.39721" x2="505.39917" y2="369.39721"
gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="gray" stop-opacity="0.25"/>
<stop offset="0.53514" stop-color="gray" stop-opacity="0.12"/>
<stop offset="1" stop-color="gray" stop-opacity="0.1"/>
</linearGradient>
</defs>
<title>Security on</title>
<path
d="M601.69959,76.85442,331.99753,242.82491s0,342.31415,269.70206,529.031c269.70205-186.7168,269.70205-529.031,269.70205-529.031Z"
transform="translate(-170.30041 -66.10811)" fill="#3f3d56"/>
<path
d="M603.30988,76.85442l-4.61029,2.83711V768.61826c1.531,1.08244,3.06152,2.16537,4.61029,3.2376,269.70205-186.7168,269.70205-529.031,269.70205-529.031Z"
transform="translate(-170.30041 -66.10811)" fill="#5da545" opacity="0.04"/>
<g opacity="0.7">
<polygon
points="366.106 347.068 416.949 393.674 479.977 302.75 505.399 323.935 416.949 436.044 344.921 355.542 366.106 347.068"
fill="url(#b629f179-8ab2-4411-a7df-956765958247)"/>
</g>
<polygon
points="378.106 349.868 419.349 387.674 477.777 301.75 498.399 318.935 419.349 422.044 360.921 356.742 378.106 349.868"
fill="#3ad29f"/>
<path
d="M335.59008,114.06442a3.67459,3.67459,0,0,1-2.04748-4.441,1.766,1.766,0,0,0,.0799-.40754h0a1.84257,1.84257,0,0,0-3.31045-1.22119h0a1.7661,1.7661,0,0,0-.2039.3618,3.67461,3.67461,0,0,1-4.441,2.04749,1.766,1.766,0,0,0-.40754-.07991h0a1.84257,1.84257,0,0,0-1.22119,3.31045h0a1.76564,1.76564,0,0,0,.3618.2039,3.67459,3.67459,0,0,1,2.04748,4.441,1.76611,1.76611,0,0,0-.0799.40755h0a1.84257,1.84257,0,0,0,3.31045,1.22119h0a1.76637,1.76637,0,0,0,.2039-.3618,3.67459,3.67459,0,0,1,4.441-2.04749,1.766,1.766,0,0,0,.40754.0799h0a1.84257,1.84257,0,0,0,1.22119-3.31044h0A1.7661,1.7661,0,0,0,335.59008,114.06442Z"
transform="translate(-170.30041 -66.10811)" fill="#4d8af0" opacity="0.5"/>
<path
d="M189.59008,439.06442a3.67459,3.67459,0,0,1-2.04748-4.441,1.766,1.766,0,0,0,.0799-.40754h0a1.84257,1.84257,0,0,0-3.31045-1.22119h0a1.7661,1.7661,0,0,0-.2039.3618,3.67461,3.67461,0,0,1-4.441,2.04749,1.766,1.766,0,0,0-.40754-.07991h0a1.84257,1.84257,0,0,0-1.22119,3.31045h0a1.76564,1.76564,0,0,0,.3618.2039,3.67459,3.67459,0,0,1,2.04748,4.441,1.76611,1.76611,0,0,0-.0799.40755h0a1.84257,1.84257,0,0,0,3.31045,1.22119h0a1.76637,1.76637,0,0,0,.2039-.3618,3.67459,3.67459,0,0,1,4.441-2.04749,1.766,1.766,0,0,0,.40754.0799h0a1.84257,1.84257,0,0,0,1.22119-3.31044h0A1.7661,1.7661,0,0,0,189.59008,439.06442Z"
transform="translate(-170.30041 -66.10811)" fill="#4d8af0" opacity="0.5"/>
<circle cx="748.39917" cy="254" r="6" fill="#f55f44" opacity="0.5"/>
<circle cx="121.39917" cy="683" r="6" fill="#f55f44" opacity="0.5"/>
<circle cx="850.39917" cy="485" r="6" fill="#f55f44" opacity="0.5"/>
<path
d="M874.59008,143.06442a3.67459,3.67459,0,0,1-2.04748-4.441,1.766,1.766,0,0,0,.0799-.40754h0a1.84257,1.84257,0,0,0-3.31045-1.22119h0a1.7661,1.7661,0,0,0-.2039.3618,3.67461,3.67461,0,0,1-4.441,2.04749,1.766,1.766,0,0,0-.40754-.07991h0a1.84257,1.84257,0,0,0-1.22119,3.31045h0a1.76564,1.76564,0,0,0,.3618.2039,3.67459,3.67459,0,0,1,2.04748,4.441,1.76611,1.76611,0,0,0-.0799.40755h0a1.84257,1.84257,0,0,0,3.31045,1.22119h0a1.76637,1.76637,0,0,0,.2039-.3618,3.67459,3.67459,0,0,1,4.441-2.04749,1.766,1.766,0,0,0,.40754.0799h0a1.84257,1.84257,0,0,0,1.22119-3.31044h0A1.7661,1.7661,0,0,0,874.59008,143.06442Z"
transform="translate(-170.30041 -66.10811)" fill="#4d8af0" opacity="0.5"/>
<path
d="M974.59008,771.06442a3.67459,3.67459,0,0,1-2.04748-4.441,1.766,1.766,0,0,0,.0799-.40754h0a1.84257,1.84257,0,0,0-3.31045-1.22119h0a1.7661,1.7661,0,0,0-.2039.3618,3.67461,3.67461,0,0,1-4.441,2.04749,1.766,1.766,0,0,0-.40754-.07991h0a1.84257,1.84257,0,0,0-1.22119,3.31045h0a1.76564,1.76564,0,0,0,.3618.2039,3.67459,3.67459,0,0,1,2.04748,4.441,1.76611,1.76611,0,0,0-.0799.40755h0a1.84257,1.84257,0,0,0,3.31045,1.22119h0a1.76637,1.76637,0,0,0,.2039-.3618,3.67459,3.67459,0,0,1,4.441-2.04749,1.766,1.766,0,0,0,.40754.0799h0a1.84257,1.84257,0,0,0,1.22119-3.31044h0A1.7661,1.7661,0,0,0,974.59008,771.06442Z"
transform="translate(-170.30041 -66.10811)" fill="#4d8af0" opacity="0.5"/>
<path
d="M182.59008,249.06442a3.67459,3.67459,0,0,1-2.04748-4.441,1.766,1.766,0,0,0,.0799-.40754h0a1.84257,1.84257,0,0,0-3.31045-1.22119h0a1.7661,1.7661,0,0,0-.2039.3618,3.67461,3.67461,0,0,1-4.441,2.04749,1.766,1.766,0,0,0-.40754-.07991h0a1.84257,1.84257,0,0,0-1.22119,3.31045h0a1.76564,1.76564,0,0,0,.3618.2039,3.67459,3.67459,0,0,1,2.04748,4.441,1.76611,1.76611,0,0,0-.0799.40755h0a1.84257,1.84257,0,0,0,3.31045,1.22119h0a1.76637,1.76637,0,0,0,.2039-.3618,3.67459,3.67459,0,0,1,4.441-2.04749,1.766,1.766,0,0,0,.40754.0799h0a1.84257,1.84257,0,0,0,1.22119-3.31044h0A1.7661,1.7661,0,0,0,182.59008,249.06442Z"
transform="translate(-170.30041 -66.10811)" fill="#4d8af0" opacity="0.5"/>
<circle cx="79.39917" cy="284" r="6" fill="#47e6b1" opacity="0.5"/>
<circle cx="853.39917" cy="332" r="6" fill="#47e6b1" opacity="0.5"/>
<g opacity="0.5">
<rect x="583.39917" width="3" height="17" fill="#47e6b1"/>
<rect x="753.69959" y="66.10811" width="3" height="17" transform="translate(659.50728 -746.69959) rotate(90)"
fill="#47e6b1"/>
</g>
<g opacity="0.5">
<rect x="594.39917" y="666" width="3" height="17" fill="#47e6b1"/>
<rect x="764.69959" y="732.10811" width="3" height="17" transform="translate(1336.50728 -91.69959) rotate(90)"
fill="#47e6b1"/>
</g>
<g opacity="0.5">
<rect x="26.39917" y="702" width="3" height="17" fill="#47e6b1"/>
<rect x="196.69959" y="768.10811" width="3" height="17" transform="translate(804.50728 512.30041) rotate(90)"
fill="#47e6b1"/>
</g>
<g opacity="0.5">
<rect x="709.39917" y="396" width="3" height="17" fill="#47e6b1"/>
<rect x="879.69959" y="462.10811" width="3" height="17" transform="translate(1181.50728 -476.69959) rotate(90)"
fill="#47e6b1"/>
</g>
<polygon
points="795.606 123.018 802.049 128.924 811.177 115.5 814.399 118.185 802.049 134.294 792.921 124.092 795.606 123.018"
fill="#47e6b1" opacity="0.5"/>
<rect x="760.28981" y="305.80003" width="22.24232" height="28.59727"
transform="translate(-182.12458 -35.97628) rotate(-2.22071)" fill="#5da545"/>
<path d="M681.71009,405.45856s-30.779-14.70576-30.28646-2.00541,31.02521,21.05594,31.02521,21.05594Z"
transform="translate(-170.30041 -66.10811)" fill="#ffb9b9"/>
<path
d="M698.59666,512.91906s-14.52107,35.54159-19.88626,61.18854-13.53608,60.94229-3.02582,85.97362,40.39191,98.59935,40.69972,106.53707-2.55946,15.99856,3.79071,15.75231,40.90677-11.12587,42.30963-15.95007-11.79-17.03205-11.79-17.03205L718.11733,647.30624,752.1068,580.801l24.51648,99.215,4.80184,123.82844s23.56691-7.27361,26.98824-1.04656c0,0,10.55875-14.71883,11.9-21.13057s-4.98653-128.59106-4.98653-128.59106,21.63236-139.16288,4.16937-138.4857S733.63268,473.40208,698.59666,512.91906Z"
transform="translate(-170.30041 -66.10811)" fill="#5da545"/>
<path
d="M719.92877,776.02043s-16.10862,35.60315-17.63461,37.25225-12.02317,17.95548-4.08545,17.64767,26.68044-8.98427,40.47584-22.23868,31.98406-36.21877,30.335-37.74475-12.9466-5.85768-12.9466-5.85768Z"
transform="translate(-170.30041 -66.10811)" fill="#575a89"/>
<path
d="M784.29239,795.78356s-.97192,15.937-3.90076,22.4103-2.55947,15.99857,5.37825,15.69076,28.45267-4.28321,28.45267-4.28321,1.21817-9.58682-.43093-11.11281-8.67647-18.74271-5.68607-23.62847S784.29239,795.78356,784.29239,795.78356Z"
transform="translate(-170.30041 -66.10811)" fill="#575a89"/>
<path
d="M796.03561,278.60052s16.922,26.37263,23.51842,32.47656-11.9616,19.543-11.9616,19.543l-33.2153,4.46789s.41786-30.22489-1.29281-33.33842S796.03561,278.60052,796.03561,278.60052Z"
transform="translate(-170.30041 -66.10811)" fill="#ffb9b9"/>
<path
d="M767.16508,313.10863s6.84267,12.4541,13.19285,12.20785,39.1961-14.2394,40.599-19.06359,10.87963,34.55659,10.87963,34.55659L751.465,482.25016,731.86045,468.701l9.49913-83.04479,7.80153-44.8206Z"
transform="translate(-170.30041 -66.10811)" fill="#5da545"/>
<path
d="M823.92139,439.69215c-3.206,6.70666-5.20835,13.70047-4.9307,20.86031.01231.31753.02462.635.05282.95187.76057,14.69329,6.17341,31.68646,8.11534,44.04443,1.40908,8.86485,1.00808,15.33551-4.1797,16.85636-12.57723,3.66758,1.83379,6.28861-46.826,22.48493s-57.15159,2.21623-57.27471-.95886,6.89116-27.29605,5.24206-28.822-23.07442,19.974-29.54772,17.04512-.73874-19.05053-.73874-19.05053,14.58264-33.954,14.27483-41.89176,22.08942-45.37466,22.08942-45.37466L745.432,326.67085s5.85768-12.9466,13.73384-14.842,14.411,2.621,14.411,2.621L760.397,343.57977l-13.90546,51.417,2.32629,18.989s16.17018-34.01561,26.7905-47.1469,33.26379-44.21805,33.26379-44.21805,5.28646-17.83738,1.2957-23.16791c-3.99136-5.34632,16.64671-6.14662,25.4463,15.77118,4.66382,11.61641,12.23581,28.93925,16.97922,45.068,4.22682,14.28851,6.22343,27.646,2.03588,35.2811C848.229,407.2371,832.1292,422.56828,823.92139,439.69215Z"
transform="translate(-170.30041 -66.10811)" fill="#575a89"/>
<path
d="M854.62926,395.57321c-6.40029,11.66389-22.50006,26.99507-30.70787,44.11894-2.14378-7.72348-4.75909-15.71476-4.75909-15.71476s-10.03082-53.66869,19.64-67.53872a19.85766,19.85766,0,0,1,13.79106,3.85344C856.8202,374.58062,858.81681,387.93813,854.62926,395.57321Z"
transform="translate(-170.30041 -66.10811)" opacity="0.1"/>
<path
d="M736.8432,392.19108l-25.15446,7.33517-34.926,1.35437-3.593,30.348,57.39783,4.13394S744.904,395.05836,736.8432,392.19108Z"
transform="translate(-170.30041 -66.10811)" fill="#575a89"/>
<path d="M777.861,494.23066s-33.65163,5.58313-25.971,15.70981,37.49194-.5198,37.49194-.5198Z"
transform="translate(-170.30041 -66.10811)" fill="#ffb9b9"/>
<path
d="M819.04351,461.50433c.76057,14.69329,6.17341,31.68646,8.11534,44.04443-10.72016,10.14608-20.91438,19.09523-24.75621,19.24421-7.93772.30781-20.69963-.78724-25.4007.985s-7.4583-28.32954-7.4583-28.32954S772.34936,487.8,784.865,482.5449C793.31283,478.9897,809.506,469.34688,819.04351,461.50433Z"
transform="translate(-170.30041 -66.10811)" opacity="0.1"/>
<path
d="M838.43294,346.91341s26.86513-4.22164,25.41378,40.35271,2.83185,73.027-7.97315,81.39568-45.90258,46.29809-53.8403,46.6059-20.69964-.78723-25.40071.985-7.45829-28.32955-7.45829-28.32955,2.80572-9.64839,15.32138-14.90351,42.00182-23.8878,41.75558-30.238-7.4583-28.32954-7.4583-28.32954S808.7621,360.78344,838.43294,346.91341Z"
transform="translate(-170.30041 -66.10811)" fill="#575a89"/>
<circle cx="602.04517" cy="216.59094" r="34.95222" fill="#ffb9b9"/>
<path
d="M748.81137,232.60234a6.749,6.749,0,0,1-2.93882,1.47479,2.09717,2.09717,0,0,1-2.43029-1.68345c-.79968,1.65841-1.70192,3.42592-3.33461,4.27688s-4.15732.13741-4.39266-1.68864a7.706,7.706,0,0,1-1.77364,3.74392c-1.013.96584-2.85,1.20961-3.73439.12482.715,3.90745.27369,7.92586.49823,11.89184s1.2821,8.1705,4.27847,10.7784c4.36987,3.80334,10.94108,2.86467,16.68929,2.1441a5.06575,5.06575,0,0,1,2.61539.14308c2.15231.917,2.05467,3.9131,2.08369,6.25242a17.37277,17.37277,0,0,0,15.21221,16.4975,8.70861,8.70861,0,0,0,6.47244-1.57965c1.63206-1.38335,2.46572-3.638,4.33585-4.67723,3.04207-1.6904,6.73153.77486,8.95568,3.45157s4.4162,5.96934,7.86172,6.45932c4.55691.648,8.02766-3.996,9.73047-8.27217a48.223,48.223,0,0,0-.95837-37.46977C798.46709,223.729,765.96382,220.44839,748.81137,232.60234Z"
transform="translate(-170.30041 -66.10811)" fill="#2f2e41"/>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,49 @@
<svg id="ad6b5295-7ebf-4dc3-a7a8-a4a4b8d35fca" xmlns="http://www.w3.org/2000/svg" width="790" height="512.20805"
viewBox="0 0 790 512.20805">
<path
d="M925.56335,704.58909,903,636.49819s24.81818,24.81818,24.81818,45.18181l-4.45454-47.09091s12.72727,17.18182,11.45454,43.27273S925.56335,704.58909,925.56335,704.58909Z"
transform="translate(-205 -193.89598)" fill="#e6e6e6"/>
<path
d="M441.02093,642.58909,419,576.13509s24.22155,24.22155,24.22155,44.09565l-4.34745-45.95885s12.42131,16.76877,11.17917,42.23245S441.02093,642.58909,441.02093,642.58909Z"
transform="translate(-205 -193.89598)" fill="#e6e6e6"/>
<path
d="M784.72555,673.25478c.03773,43.71478-86.66489,30.26818-192.8092,30.35979s-191.53562,13.68671-191.57335-30.028,86.63317-53.29714,192.77748-53.38876S784.68782,629.54,784.72555,673.25478Z"
transform="translate(-205 -193.89598)" fill="#e6e6e6"/>
<rect y="509.69312" width="790" height="2" fill="#3f3d56"/>
<polygon points="505.336 420.322 491.459 420.322 484.855 366.797 505.336 366.797 505.336 420.322" fill="#a0616a"/>
<path
d="M480.00587,416.35743H508.3101a0,0,0,0,1,0,0V433.208a0,0,0,0,1,0,0H464.69674a0,0,0,0,1,0,0v-1.54149A15.30912,15.30912,0,0,1,480.00587,416.35743Z"
fill="#2f2e41"/>
<polygon points="607.336 499.322 593.459 499.322 586.855 445.797 607.336 445.797 607.336 499.322" fill="#a0616a"/>
<path
d="M582.00587,495.35743H610.3101a0,0,0,0,1,0,0V512.208a0,0,0,0,1,0,0H566.69674a0,0,0,0,1,0,0v-1.54149A15.30912,15.30912,0,0,1,582.00587,495.35743Z"
fill="#2f2e41"/>
<path
d="M876.34486,534.205A10.31591,10.31591,0,0,0,873.449,518.654l-32.23009-131.2928L820.6113,396.2276l38.33533,126.949a10.37185,10.37185,0,0,0,17.39823,11.0284Z"
transform="translate(-205 -193.89598)" fill="#a0616a"/>
<path
d="M851.20767,268.85955a11.38227,11.38227,0,0,0-17.41522,1.15247l-49.88538,5.72709,7.58861,19.24141,45.36779-8.49083a11.44393,11.44393,0,0,0,14.3442-17.63014Z"
transform="translate(-205 -193.89598)" fill="#a0616a"/>
<path
d="M769,520.58909l21.76811,163.37417,27.09338-5.578s-3.98437-118.98157,9.56238-133.32513S810,505.58909,810,505.58909Z"
transform="translate(-205 -193.89598)" fill="#2f2e41"/>
<path
d="M778,475.58909l-10,15s-77-31.99929-77,19-4.40631,85.60944-6,88,18.43762,8.59375,28,7c0,0,11.79687-82.21884,11-87,0,0,75.53355,37.03335,89.87712,33.84591S831.60944,536.964,834,530.58909s-1-57-1-57l-47.81-14.59036Z"
transform="translate(-205 -193.89598)" fill="#2f2e41"/>
<path
d="M779.34915,385.52862l-2.85032-3.42039s-31.92361-71.82815-19.3822-91.21035,67.26762-22.23252,68.97783-21.0924-4.08488,15.9428-.09446,22.78361c0,0-42.394,9.19121-45.24435,10.33134s21.96615,43.2737,21.96615,43.2737l-2.85031,25.6529Z"
transform="translate(-205 -193.89598)" fill="#ccc"/>
<path
d="M835.21549,350.18459S805.57217,353.605,804.432,353.605s-1.71017-7.41084-1.71017-7.41084l-26.223,35.91406S763.57961,486.29929,767,484.58909s66.50531,8.11165,67.07539,3.55114-.57008-27.3631,1.14014-28.50324,29.64328-71.82811,29.64328-71.82811-2.85032-14.82168-12.54142-19.95227S835.21549,350.18459,835.21549,350.18459Z"
transform="translate(-205 -193.89598)" fill="#ccc"/>
<path d="M855.73783,378.11779l9.121,9.69109S878.41081,499.1687,871,502.58909s-22,3-22,3l-14.35458-52.79286Z"
transform="translate(-205 -193.89598)" fill="#ccc"/>
<circle cx="601.72966" cy="122.9976" r="26.2388" fill="#a0616a"/>
<path
d="M800.57267,320.98789c-.35442-5.44445-7.22306-5.631-12.67878-5.68255s-11.97836.14321-15.0654-4.35543c-2.0401-2.973-1.65042-7.10032.035-10.28779s4.45772-5.639,7.18508-7.99742c7.04139-6.08884,14.29842-12.12936,22.7522-16.02662s18.36045-5.472,27.12788-2.3435c10.77008,3.84307,25.32927,23.62588,26.5865,34.99176s-3.28507,22.95252-10.9419,31.44586-25.18188,5.0665-36.21069,8.088c6.7049-9.48964,2.28541-26.73258-8.45572-31.164Z"
transform="translate(-205 -193.89598)" fill="#2f2e41"/>
<circle cx="361.7217" cy="403.5046" r="62.98931" fill="#5da545"/>
<path
d="M524.65625,529.9355a45.15919,45.15919,0,0,1-41.25537-26.78614L383.44873,278.05757a59.83039,59.83039,0,1,1,111.87012-41.86426l72.37744,235.41211a45.07978,45.07978,0,0,1-43.04,58.33008Z"
transform="translate(-205 -193.89598)" fill="#5da545"/>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -3,34 +3,44 @@
<div class="section-header">
<h3 class="column-grow-1">Followed mods</h3>
</div>
<ModCard
v-for="(mod, index) in mods"
:id="mod.id"
:key="mod.id"
:author="mod.author"
:name="mod.title"
:description="mod.description"
:latest-version="mod.latest_version"
:created-at="mod.published"
:updated-at="mod.updated"
:downloads="mod.downloads.toString()"
:icon-url="mod.icon_url"
:author-url="mod.author_url"
:page-url="mod.page_url"
:categories="mod.categories"
:edit-mode="true"
:is-modrinth="true"
>
<div class="buttons">
<button
class="button column unfav-button iconified-button"
@click="unfavMod(index)"
>
<FollowIcon />
Unfollow
</button>
</div>
</ModCard>
<div v-if="mods.length !== 0">
<ModCard
v-for="(mod, index) in mods"
:id="mod.id"
:key="mod.id"
:author="mod.author"
:name="mod.title"
:description="mod.description"
:latest-version="mod.latest_version"
:created-at="mod.published"
:updated-at="mod.updated"
:downloads="mod.downloads.toString()"
:icon-url="mod.icon_url"
:author-url="mod.author_url"
:page-url="mod.page_url"
:categories="mod.categories"
:edit-mode="true"
:is-modrinth="true"
>
<div class="buttons">
<button
class="button column unfav-button iconified-button"
@click="unfavMod(index)"
>
<FollowIcon />
Unfollow
</button>
</div>
</ModCard>
</div>
<div v-else class="error">
<FollowIllustration class="icon"></FollowIllustration><br />
<span class="text"
>You don't have any followed mods. <br />
Why don't you <nuxt-link to="/mods" class="link">search</nuxt-link> for
new ones?</span
>
</div>
</DashboardPage>
</template>
@@ -40,12 +50,14 @@ import axios from 'axios'
import ModCard from '@/components/ProjectCard'
import DashboardPage from '@/components/DashboardPage'
import FollowIcon from '~/assets/images/utils/heart.svg?inline'
import FollowIllustration from '~/assets/images/illustrations/follow_illustration.svg?inline'
export default {
components: {
DashboardPage,
ModCard,
FollowIcon,
FollowIllustration,
},
async asyncData(data) {
const res = await axios.get(
@@ -58,7 +70,6 @@ export default {
`https://api.modrinth.com/api/v1/mods?ids=${JSON.stringify(res.data)}`
)
).data
return {
mods,
}
@@ -100,4 +111,27 @@ export default {
margin-left: auto;
padding: 0.5rem;
}
.error {
display: flex;
flex-direction: column;
width: 100%;
justify-content: center;
align-items: center;
.icon {
width: 8rem;
height: 8rem;
margin: 1.5rem 0;
}
.text {
margin-bottom: 2rem;
font-size: 1.25rem;
text-align: center;
}
.link {
text-decoration: underline;
}
}
</style>

View File

@@ -3,71 +3,84 @@
<div class="section-header">
<h3 class="column-grow-1">Mods</h3>
</div>
<ModCard
v-for="(mod, index) in mods"
:id="mod.id"
:key="mod.id"
:author="mod.author"
:name="mod.title"
:description="mod.description"
:latest-version="mod.latest_version"
:created-at="mod.published"
:updated-at="mod.updated"
:downloads="mod.downloads.toString()"
:icon-url="mod.icon_url"
:author-url="mod.author_url"
:page-url="mod.page_url"
:categories="mod.categories"
:edit-mode="true"
:status="mod.status"
:is-modrinth="true"
>
<div class="buttons">
<button
class="button column approve"
@click="changeModStatus(mod.id, 'approved', index)"
>
Approve
</button>
<button
class="button column reject"
@click="changeModStatus(mod.id, 'rejected', index)"
>
Reject
</button>
</div>
</ModCard>
<div v-if="mods.length !== 0">
<ModCard
v-for="(mod, index) in mods"
:id="mod.id"
:key="mod.id"
:author="mod.author"
:name="mod.title"
:description="mod.description"
:latest-version="mod.latest_version"
:created-at="mod.published"
:updated-at="mod.updated"
:downloads="mod.downloads.toString()"
:icon-url="mod.icon_url"
:author-url="mod.author_url"
:page-url="mod.page_url"
:categories="mod.categories"
:edit-mode="true"
:status="mod.status"
:is-modrinth="true"
>
<div class="buttons">
<button
class="button column approve"
@click="changeModStatus(mod.id, 'approved', index)"
>
Approve
</button>
<button
class="button column reject"
@click="changeModStatus(mod.id, 'rejected', index)"
>
Reject
</button>
</div>
</ModCard>
</div>
<div v-else class="error">
<Security class="icon"></Security>
<br />
<span class="text">You are up-to-date!</span>
</div>
<div class="section-header">
<h3 class="column-grow-1">Reports</h3>
</div>
<div v-for="(report, index) in reports" :key="report.id" class="report">
<div class="header">
<h5 class="title">
Report for {{ report.item_type }}
<nuxt-link
:to="report.item_type + '/' + report.item_id.replace(/\W/g, '')"
>{{ report.item_id }}</nuxt-link
<div v-if="reports.length !== 0">
<div v-for="(report, index) in reports" :key="report.id" class="report">
<div class="header">
<h5 class="title">
Report for {{ report.item_type }}
<nuxt-link
:to="report.item_type + '/' + report.item_id.replace(/\W/g, '')"
>{{ report.item_id }}
</nuxt-link>
</h5>
<p
v-tooltip="
$dayjs(report.created).format(
'[Created at] YYYY-MM-DD [at] HH:mm A'
)
"
class="date"
>
</h5>
<p
v-tooltip="
$dayjs(report.created).format(
'[Created at] YYYY-MM-DD [at] HH:mm A'
)
"
class="date"
>
Created {{ $dayjs(report.created).fromNow() }}
</p>
<button class="delete iconified-button" @click="deleteReport(index)">
Delete
</button>
Created {{ $dayjs(report.created).fromNow() }}
</p>
<button class="delete iconified-button" @click="deleteReport(index)">
Delete
</button>
</div>
<div
v-compiled-markdown="report.body"
v-highlightjs
class="markdown-body"
></div>
</div>
<div
v-compiled-markdown="report.body"
v-highlightjs
class="markdown-body"
></div>
</div>
<div v-else class="error">
<Security class="icon"></Security><br />
<span class="text">You are up-to-date!</span>
</div>
</DashboardPage>
</template>
@@ -77,11 +90,13 @@ import axios from 'axios'
import ModCard from '@/components/ProjectCard'
import DashboardPage from '@/components/DashboardPage'
import Security from '~/assets/images/illustrations/security.svg?inline'
export default {
components: {
DashboardPage,
ModCard,
Security,
},
async asyncData(data) {
const mods = (
@@ -159,4 +174,23 @@ export default {
}
}
}
.error {
display: flex;
flex-direction: column;
width: 100%;
justify-content: center;
align-items: center;
.icon {
width: 8rem;
height: 8rem;
margin: 1.5rem 0;
}
.text {
margin-bottom: 2rem;
font-size: 1.25rem;
}
}
</style>

View File

@@ -3,54 +3,62 @@
<div class="section-header columns">
<h3 class="column-grow-1">My notifications</h3>
</div>
<div
v-for="notification in notifications"
:key="notification.id"
class="notification columns"
>
<div class="text">
<nuxt-link :to="'/' + notification.link" class="top-wrapper">
<h3 class="title">
{{ notification.title }}
</h3>
<p
v-tooltip="
$dayjs(notification.created).format(
'[Created at] YYYY-MM-DD [at] HH:mm A'
)
"
class="date"
>
Notified {{ $dayjs(notification.created).fromNow() }}
<div v-if="notifications.length !== 0">
<div
v-for="notification in notifications"
:key="notification.id"
class="notification columns"
>
<div class="text">
<nuxt-link :to="'/' + notification.link" class="top-wrapper">
<h3 class="title">
{{ notification.title }}
</h3>
<p
v-tooltip="
$dayjs(notification.created).format(
'[Created at] YYYY-MM-DD [at] HH:mm A'
)
"
class="date"
>
Notified {{ $dayjs(notification.created).fromNow() }}
</p>
</nuxt-link>
<p class="description">
{{ notification.text }}
</p>
</nuxt-link>
<p class="description">
{{ notification.text }}
</p>
</div>
<div v-if="notification.actions.length > 0" class="actions">
<button
v-for="(action, index) in notification.actions"
:key="index"
@click="performAction(notification, index)"
>
{{ action.title }}
</button>
</div>
<div v-else class="actions">
<button @click="performAction(notification, null)">Dismiss</button>
</div>
<div v-if="notification.actions.length > 0" class="actions">
<button
v-for="(action, index) in notification.actions"
:key="index"
@click="performAction(notification, index)"
>
{{ action.title }}
</button>
</div>
<div v-else class="actions">
<button @click="performAction(notification, null)">Dismiss</button>
</div>
</div>
</div>
<div v-else class="error">
<UpToDate class="icon"></UpToDate><br />
<span class="text">You are up-to-date!</span>
</div>
</DashboardPage>
</template>
<script>
import axios from 'axios'
import DashboardPage from '@/components/DashboardPage'
import UpToDate from '~/assets/images/illustrations/up_to_date.svg?inline'
export default {
components: {
DashboardPage,
UpToDate,
},
async asyncData(data) {
const notifications = (
@@ -127,4 +135,26 @@ export default {
margin: 0;
}
}
.error {
display: flex;
flex-direction: column;
width: 100%;
justify-content: center;
align-items: center;
.icon {
width: 8rem;
height: 8rem;
margin: 1.5rem 0;
}
.text {
margin-bottom: 2rem;
font-size: 1.25rem;
}
.link {
text-decoration: underline;
}
}
</style>

View File

@@ -6,32 +6,42 @@
Create a mod
</nuxt-link>
</div>
<ModCard
v-for="mod in mods"
:id="mod.slug ? mod.slug : mod.id"
:key="mod.id"
:author="mod.author"
:name="mod.title"
:description="mod.description"
:latest-version="mod.latest_version"
:created-at="mod.published"
:updated-at="mod.updated"
:downloads="mod.downloads.toString()"
:icon-url="mod.icon_url"
:author-url="mod.author_url"
:page-url="mod.page_url"
:categories="mod.categories"
:edit-mode="true"
:status="mod.status"
:is-modrinth="true"
>
<nuxt-link
class="button column edit-button"
:to="'/mod/' + mod.id + '/settings'"
<div v-if="mods.length !== 0">
<ModCard
v-for="mod in mods"
:id="mod.slug ? mod.slug : mod.id"
:key="mod.id"
:author="mod.author"
:name="mod.title"
:description="mod.description"
:latest-version="mod.latest_version"
:created-at="mod.published"
:updated-at="mod.updated"
:downloads="mod.downloads.toString()"
:icon-url="mod.icon_url"
:author-url="mod.author_url"
:page-url="mod.page_url"
:categories="mod.categories"
:edit-mode="true"
:status="mod.status"
:is-modrinth="true"
>
Settings
</nuxt-link>
</ModCard>
<nuxt-link
class="button column edit-button"
:to="'/mod/' + mod.id + '/settings'"
>
Settings
</nuxt-link>
</ModCard>
</div>
<div v-else class="error">
<UpToDate class="icon"></UpToDate><br />
<span class="text"
>You don't have any mods.<br />
Would you like to
<nuxt-link class="link" to="/mod/create">create one</nuxt-link>?</span
>
</div>
</DashboardPage>
</template>
@@ -39,11 +49,13 @@
import axios from 'axios'
import ModCard from '@/components/ProjectCard'
import DashboardPage from '@/components/DashboardPage'
import UpToDate from '~/assets/images/illustrations/up_to_date.svg?inline'
export default {
components: {
DashboardPage,
ModCard,
UpToDate,
},
async asyncData(data) {
let res = await axios.get(
@@ -72,6 +84,31 @@ export default {
align-self: flex-end;
margin-right: 2rem;
}
.error {
display: flex;
flex-direction: column;
width: 100%;
justify-content: center;
align-items: center;
.icon {
width: 8rem;
height: 8rem;
margin: 1.5rem 0;
}
.text {
text-align: center;
margin-bottom: 2rem;
font-size: 1.25rem;
}
.link {
text-decoration: underline;
}
}
// .buttonse {
// margin-left: 4.5rem;
// padding: 0.5rem 2rem 0.5rem 2rem;

View File

@@ -406,6 +406,7 @@ export default {
`https://api.modrinth.com/api/v1/mod/${this.mod.id}`,
this.$auth.headers
)
await this.$router.push('/dashboard/projects')
},
},
}