Compare commits
1488 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 22b8222c3d | |||
| b3d1b14abd | |||
| f1cd0d3dd4 | |||
| 3d7815d65f | |||
| a3e7d1f981 | |||
| 2e79190977 | |||
| ee7debeef7 | |||
| 61f547733c | |||
| 5129e6d6ac | |||
| 0a9c14f8b1 | |||
| a1960489e1 | |||
| 66fe1a83c6 | |||
| a88d384ac7 | |||
| 2dc6b68974 | |||
| 0988ecc515 | |||
| 5ff100da27 | |||
| f218846f4a | |||
| fc0aba60b9 | |||
| 82e6a62c54 | |||
| fce8950cc5 | |||
| 54247e85e0 | |||
| cc3f9cd8a4 | |||
| 6dd79dc5d2 | |||
| 6eb53770c3 | |||
| 10faeca121 | |||
| 38252d9ffc | |||
| 86f62aeb99 | |||
| e3a6bb8781 | |||
| 8ed94ed12f | |||
| 95bcfc2ee0 | |||
| 313e4811a1 | |||
| 5bb9dfeaf8 | |||
| aabb316c7d | |||
| ae40e6f41b | |||
| e644d5d20d | |||
| ae9abd08ff | |||
| 965128c802 | |||
| 26324a63df | |||
| b9d9754818 | |||
| 0fb516a86c | |||
| 4b4c7d8927 | |||
| e3cae93bd3 | |||
| 324f87dc19 | |||
| 347b5c9411 | |||
| 7371f8a29d | |||
| fb381a30cf | |||
| 474e3dae65 | |||
| 738ac3f1c9 | |||
| 2fbe69afc5 | |||
| 693448cb42 | |||
| 17a416d905 | |||
| 09a6ede925 | |||
| 5fc04ae318 | |||
| 900ea0fb5c | |||
| 85a6a1d884 | |||
| 0572009456 | |||
| 9bcd98cb69 | |||
| aefce2a842 | |||
| ee4fe99b08 | |||
| 2cb85d47b8 | |||
| 0713b6b419 | |||
| 8f116fddab | |||
| 58838cd806 | |||
| 7d5918b320 | |||
| 7eb4ca0fb4 | |||
| d575bfa0fb | |||
| b60ea3f153 | |||
| 6e7bc6cfb4 | |||
| 9b85a0044c | |||
| b8708382b1 | |||
| e0601c7b38 | |||
| 0725714144 | |||
| ab501e1c6a | |||
| 7cd401327b | |||
| e886088dff | |||
| ebe7cc32af | |||
| 5e607c3b8e | |||
| 5ec809e3dd | |||
| 9d3b6e0556 | |||
| acd003814a | |||
| c4991d09f3 | |||
| ca9b2dada3 | |||
| 6a3004d75d | |||
| 9bd624f31a | |||
| acb264da20 | |||
| c23b0fbfe7 | |||
| 0e78b5e289 | |||
| 91ab895a1d | |||
| 5c37238114 | |||
| 3cf40ba504 | |||
| 9229961f72 | |||
| 0b35b11909 | |||
| 77a27d8716 | |||
| be32939029 | |||
| 4f046425aa | |||
| 89bf6b1fd9 | |||
| d81414cca6 | |||
| d8eb96a37a | |||
| d1b3b0ba34 | |||
| dca207347f | |||
| 5a7ebf8027 | |||
| f6d877715c | |||
| 754eb32db4 | |||
| 67c04c7f59 | |||
| daebb26ffa | |||
| 3e2993d048 | |||
| 2745cf4015 | |||
| 4e99e2960c | |||
| 649028307d | |||
| 24787c32dd | |||
| 625ddac65a | |||
| 78ff2e6d07 | |||
| 837426d3c5 | |||
| 65477a5b2b | |||
| a9fa8be5a2 | |||
| 0bb26150d6 | |||
| fd8f7ade51 | |||
| 3310bc2fed | |||
| 0cbb640054 | |||
| b4aa88ac33 | |||
| f2906e57f0 | |||
| 8d381b167e | |||
| d78e316349 | |||
| 82d00c6a4a | |||
| ba4fd7f1ef | |||
| 591d265167 | |||
| af9d973a91 | |||
| 15096a3118 | |||
| 7c78a9697c | |||
| 3f5051f697 | |||
| 044a66f2e8 | |||
| 6fb8775bb7 | |||
| f16d0300ba | |||
| 84e12f1eea | |||
| ba40b7ff15 | |||
| e733326056 | |||
| b3d987e933 | |||
| e919874e9e | |||
| a2f51f151a | |||
| ea288abb27 | |||
| b274900ae0 | |||
| 10d29d3a3f | |||
| a92e04343a | |||
| be31c18bfe | |||
| 9d0a5fd8f3 | |||
| 5ca577bc0a | |||
| 4d25d185c3 | |||
| ea289e02da | |||
| a3f16eb7e8 | |||
| ddd29abe99 | |||
| decd56f2d2 | |||
| 387401cb44 | |||
| 57c1a6b540 | |||
| 8dba0e8242 | |||
| ee715f6387 | |||
| b770b30334 | |||
| d61abac126 | |||
| ccf28b8012 | |||
| 3762cb06bb | |||
| 15400f2a3e | |||
| 20d1b1fe83 | |||
| 73844f8813 | |||
| 2187553625 | |||
| 984b2a5dea | |||
| 9098d9454f | |||
| 027dd93fb5 | |||
| a005adc89a | |||
| 866ef04fbf | |||
| 00b6f97e3a | |||
| a1d21b1a2a | |||
| 7358ea43d8 | |||
| 88c69311eb | |||
| c1e45e5d0d | |||
| fe78de2417 | |||
| 4c1fc201e6 | |||
| 3f5d270915 | |||
| a452fbeb07 | |||
| a6f02c245f | |||
| cb4f9129d6 | |||
| 9c5d64c211 | |||
| 41dc0ecc60 | |||
| 6b9409b889 | |||
| ea66eeed6c | |||
| a419d28ef1 | |||
| 481dfc24fd | |||
| ed686a7d52 | |||
| b4c5a07800 | |||
| 6ae16f7fef | |||
| 4aae2ed3b8 | |||
| 81d4137b20 | |||
| 77ecb02a17 | |||
| 4a375f92ed | |||
| 7caf91460a | |||
| 0e015c8b97 | |||
| 7b69ddb14d | |||
| 2271eb270e | |||
| 7e5b2e4e79 | |||
| 124b9d9ea5 | |||
| 36076068ec | |||
| c868354b5b | |||
| db91f0b2a0 | |||
| d7e83bb78e | |||
| feb2a39e05 | |||
| a6cf910d05 | |||
| b891b44ac6 | |||
| 026a3ebb81 | |||
| 71ba246011 | |||
| a391204fa6 | |||
| 9c773399a8 | |||
| 528b85352a | |||
| 249c369c14 | |||
| 9803fc1031 | |||
| 299fde1c98 | |||
| 7f55734fbb | |||
| efe230865a | |||
| 6e52e684c8 | |||
| 99d880297a | |||
| dec706ae72 | |||
| 2e60f0a0c2 | |||
| ef612f86e5 | |||
| 9c16e03ea7 | |||
| 7780c0310e | |||
| b0a23c0d1a | |||
| 05c85cea08 | |||
| 1ffae0a1de | |||
| 15cbccd15f | |||
| 266b2f2ac8 | |||
| 26f9fb4199 | |||
| 67887fb6ef | |||
| 3d102e39ff | |||
| ddd9089130 | |||
| d8ce88ab57 | |||
| 01794a47c6 | |||
| 17626dbbdb | |||
| e5bd86658d | |||
| e911dc1353 | |||
| 27e3e5aa6a | |||
| 5b65525bf1 | |||
| 277804f8b1 | |||
| 4c77802e3c | |||
| aacfea6ea5 | |||
| 6d55040e43 | |||
| 290f785a47 | |||
| 39ef187f6b | |||
| a7a475e763 | |||
| 6eb380ea38 | |||
| 4d150cb323 | |||
| 09d6d99b14 | |||
| 5e7fd8baff | |||
| 52c159e2e8 | |||
| 67e8feb879 | |||
| a5b61d5244 | |||
| decc3a16ed | |||
| 7f39e9f0cc | |||
| 95afa1a6ad | |||
| 0d0bb5f9e2 | |||
| 3dd5ce5035 | |||
| 549e56d551 | |||
| 50b6215d1e | |||
| ff69bfdce7 | |||
| c04cc8ec0f | |||
| f324de2254 | |||
| 40af4e6f34 | |||
| 5d9b66b5cb | |||
| d2a8277c13 | |||
| ada85fc0f3 | |||
| 505345eff7 | |||
| 2911ade880 | |||
| 8980dc8f9c | |||
| d94a1c47c0 | |||
| 99c3e5182d | |||
| 70e39fee40 | |||
| 26d6bec8a0 | |||
| c9ac1a1402 | |||
| 6949c1092c | |||
| aae8a54481 | |||
| e1d93bf670 | |||
| fea0533cb1 | |||
| 5cd991f02a | |||
| 50a8a605d5 | |||
| 9ce7d8f5d6 | |||
| eae2587e4c | |||
| 323097f201 | |||
| 014499888a | |||
| 5662de21ae | |||
| 17c2eba455 | |||
| 1f2c986e8f | |||
| 12040b5f6d | |||
| 20a985848f | |||
| c06c6169e5 | |||
| 917aeb79ef | |||
| c4f36a39fe | |||
| befedc30ad | |||
| d3bc67daa2 | |||
| 5d7e211367 | |||
| fa9daa01ec | |||
| 0ed9dc63b8 | |||
| 5dd6b33eb2 | |||
| 1210b823c7 | |||
| 04240b4b3d | |||
| 787f592a1a | |||
| e7363fbd40 | |||
| e2762825e5 | |||
| bbbca70c71 | |||
| 8dde423866 | |||
| fc4c1c2b7e | |||
| bf02e2de3f | |||
| a26ba4dc6e | |||
| f187cc9314 | |||
| c15c6374f9 | |||
| acec382dfe | |||
| fbc078c6b6 | |||
| 170b20185a | |||
| 3e8489c13b | |||
| 18dfc4c23e | |||
| e6bae3dc77 | |||
| 6f9f27c030 | |||
| 874bef74c7 | |||
| ad483e0916 | |||
| 5b4bbaec20 | |||
| b8ae0db0bd | |||
| f2c18fad52 | |||
| 9716655b94 | |||
| efb317191c | |||
| a47b5db40c | |||
| ec94796b9c | |||
| e3e0cd61a2 | |||
| a438473279 | |||
| 12b5b8b509 | |||
| 22442b47a8 | |||
| 30c8b7d64f | |||
| b643575c4f | |||
| 7dd7124fac | |||
| 4b1eebf5bb | |||
| 3257943926 | |||
| 24246c83e0 | |||
| a26787f478 | |||
| ec3b88f890 | |||
| 7f5f1dad92 | |||
| b6db128214 | |||
| 8831635db2 | |||
| e19198b720 | |||
| f618d9dc1a | |||
| 66a667a0a3 | |||
| 8a4c67f712 | |||
| fa6ef2e989 | |||
| 7450b99197 | |||
| 023fd272b1 | |||
| 84067cb027 | |||
| 3087ef70e7 | |||
| 387385bb1c | |||
| 6766d0d08c | |||
| 371d890793 | |||
| 57046c1b38 | |||
| 2a64144e94 | |||
| 9b0320ccf1 | |||
| 23f209131e | |||
| d71f1c7f9a | |||
| d21ea2c854 | |||
| cd7f3ba820 | |||
| e057d3ed9a | |||
| 5f04607a44 | |||
| 9440d13a08 | |||
| 85c4f1654e | |||
| eed339cc64 | |||
| 3d1a23576a | |||
| ed0e2e4bb5 | |||
| 954d0a0637 | |||
| f2c8788602 | |||
| 49c63da27c | |||
| 24496d1856 | |||
| 991ebe09a2 | |||
| 85da4f6d85 | |||
| 5f065db991 | |||
| ffb40586d7 | |||
| fcfd87fd50 | |||
| eb5b12aa7b | |||
| f6e2438744 | |||
| e3c7dc695d | |||
| 82d2025e6c | |||
| 91b82d78b8 | |||
| b97e792893 | |||
| 13ac5ec7dc | |||
| 199f880936 | |||
| ed86c207ba | |||
| b4cf290f4d | |||
| e526a6fd64 | |||
| 94cbbf169a | |||
| 2837ed16a7 | |||
| 68961deb6b | |||
| ec54bfee98 | |||
| 385e97b76a | |||
| cbd916877f | |||
| 38586034cd | |||
| 62b3ba2bff | |||
| dd470b61b5 | |||
| 4fa92d2327 | |||
| 6f6c2db66d | |||
| e6348cfa20 | |||
| a006d1000a | |||
| 4a575e642f | |||
| 93525bc577 | |||
| 2cf0e9a723 | |||
| c32164bfea | |||
| 714b0924e7 | |||
| 43079790a8 | |||
| d03e61b625 | |||
| 2d760112a3 | |||
| f46507ec72 | |||
| e9e10bdc93 | |||
| 0386967a32 | |||
| 4900fc8b88 | |||
| 99294b5643 | |||
| eb12bcb83c | |||
| 22a2e57642 | |||
| 5eaae06ceb | |||
| ce7fc35349 | |||
| 8d4b5c83ae | |||
| cbd3c56ca0 | |||
| be6dad1424 | |||
| 298452fa7b | |||
| 4abbd7c35c | |||
| c2f51c51ab | |||
| 255cff6664 | |||
| 8a9578bb0a | |||
| 8831f6cecc | |||
| f3daa7e48b | |||
| 6163597958 | |||
| f9e1222065 | |||
| 7d85de7c6c | |||
| cf452c2300 | |||
| 72bd1d548d | |||
| 4556f4dee6 | |||
| 3dfbd3165a | |||
| 02b8e02131 | |||
| 087ded9f9e | |||
| 21f122ee82 | |||
| d60a7e8c94 | |||
| b8981c249f | |||
| e71275a0dc | |||
| 4fb0db7a1e | |||
| 1e9beedc77 | |||
| 4a4a0653ef | |||
| c80a900277 | |||
| 6fb0394d96 | |||
| a6a7712039 | |||
| dd0687ba29 | |||
| 9cb87a5333 | |||
| 8ec93d84a0 | |||
| 1d38715db9 | |||
| 6225c4eb35 | |||
| e58ce2fbe6 | |||
| 8881d62e78 | |||
| effb2a1265 | |||
| ab387473b5 | |||
| 3cf6079b70 | |||
| 53c655bb53 | |||
| 87952463c2 | |||
| 3a8a63a49a | |||
| debe115044 | |||
| 554d2808fd | |||
| 12b2c89a25 | |||
| a66fc3a07e | |||
| 7b3705cab0 | |||
| 8e99e5f5e8 | |||
| c5ba5370bb | |||
| 464dec9810 | |||
| c2e2ec8803 | |||
| 37378e2360 | |||
| 678385d90c | |||
| 4c461f087f | |||
| 88a2b69980 | |||
| 1f57792da7 | |||
| 9bb4c45a23 | |||
| 75fd19f491 | |||
| 0ac16bdeb7 | |||
| 223ee41e10 | |||
| c126ded82e | |||
| 0edf78b7fd | |||
| 5af3580987 | |||
| 343cb6f97a | |||
| 023c8ac13e | |||
| c385eed795 | |||
| ee5fdd789f | |||
| df1e400f4e | |||
| 6c9c298478 | |||
| 7106ee150d | |||
| 03e2287f80 | |||
| 2edcd41e24 | |||
| 0fe043bd99 | |||
| 6686f5240d | |||
| 2936facf0f | |||
| cc208f2c43 | |||
| 9a0fc231e5 | |||
| bfc0ae62ec | |||
| 5e7d8d97f2 | |||
| 70ceb16ed6 | |||
| f162fa639f | |||
| f000c72546 | |||
| 32c01f931c | |||
| d0121e2b9d | |||
| 1caab8ce1d | |||
| 878be435a1 | |||
| 6a68ae989e | |||
| 00993da781 | |||
| e9ef67e402 | |||
| 83ebfececf | |||
| ec8bf6251f | |||
| 1b2874b3a5 | |||
| 0ac1053a71 | |||
| 224d270952 | |||
| c6137545cd | |||
| 335417f9f4 | |||
| cb797223ed | |||
| 3a2a0313ac | |||
| e221a5a73a | |||
| 2b7aaf095f | |||
| 6f01e7b8d8 | |||
| d594419200 | |||
| bf50e3f898 | |||
| d434f1781f | |||
| 3f311a45ef | |||
| 9293b7796e | |||
| b1e7883526 | |||
| 7fcf6a253d | |||
| be8d985d15 | |||
| 974c90dddc | |||
| 4811d395d2 | |||
| 132423d577 | |||
| 10829e2f00 | |||
| 47b908c964 | |||
| 0f8e471d5d | |||
| 2537119250 | |||
| 977066d114 | |||
| 46e956dc74 | |||
| 7afdd8d44f | |||
| 6daf204b4f | |||
| 2f4a550a4a | |||
| fe214f6b41 | |||
| ca7de81888 | |||
| 17ce20355a | |||
| 34981b4765 | |||
| 21151a2e09 | |||
| 1abb7f5b8c | |||
| 05998549a4 | |||
| 96283a3629 | |||
| 2bfc7abe9c | |||
| 4f389eca8d | |||
| 1789479955 | |||
| 212800155b | |||
| c241bf2104 | |||
| bda61f32f3 | |||
| 59316dbaf9 | |||
| b726073a5b | |||
| adf897c812 | |||
| 1fc4c2442c | |||
| 414643ee90 | |||
| 1a1cbd6ea1 | |||
| 9ae809a62f | |||
| eb9b1c905d | |||
| fe9a8f49c1 | |||
| f912c8fce3 | |||
| 1d1ca43c35 | |||
| bce45f44e4 | |||
| 07583fb563 | |||
| 775aa23992 | |||
| 05ed6b7e73 | |||
| d602694ea7 | |||
| 18d71bc0d4 | |||
| 3fa68643ba | |||
| 8904525c36 | |||
| 3ce09a98f3 | |||
| b833768e71 | |||
| b9a6afd993 | |||
| b5a81ea927 | |||
| 750e92cdde | |||
| da45f4c011 | |||
| 544bb5c11c | |||
| 1fc6f62f70 | |||
| 8751ad27ec | |||
| 159d3d5b87 | |||
| 34d6d99d8c | |||
| 6c46931b1a | |||
| 2c3e2d9d08 | |||
| 7be1562fa4 | |||
| 294389e7c7 | |||
| 2c8ce133f7 | |||
| 4f1d4d90d0 | |||
| 7b7484332b | |||
| 50e94b85aa | |||
| 9b820594ef | |||
| ddcd45d56d | |||
| c4a4c16516 | |||
| 5ae9ad0762 | |||
| 405f7d498e | |||
| bcd6a5b1e7 | |||
| e5e5ac994c | |||
| e1f8d6ec49 | |||
| 6f50242f5a | |||
| 036f7ece05 | |||
| 622a2ff072 | |||
| 60334ca04a | |||
| ade47b4e83 | |||
| d7e550dfea | |||
| c3cc0b9bf7 | |||
| 5ad89189c1 | |||
| f1bbd4eb13 | |||
| fba89dfacb | |||
| b93ed41215 | |||
| 13ff6a7304 | |||
| ad97405e55 | |||
| 376e231d7b | |||
| e16d76f6dd | |||
| ffd0fd92fc | |||
| 933613d730 | |||
| 9b0673bf92 | |||
| 7cba22aa28 | |||
| af05b614a9 | |||
| c0fa219a8b | |||
| 4e3a47b0f4 | |||
| 161276b58a | |||
| 47713019a5 | |||
| 010632a21d | |||
| e77fe550af | |||
| 0a4233da14 | |||
| 56fb70ab1e | |||
| 4a1f2bc01d | |||
| 20292fbf16 | |||
| 1290cf8991 | |||
| b8b8af7cf1 | |||
| 75f4f452d3 | |||
| 9de492384f | |||
| 14c4e161f2 | |||
| c55efbc0ba | |||
| f0610222d9 | |||
| 302ee4a50f | |||
| 2170819159 | |||
| 0d1fac321a | |||
| dbbc1756dd | |||
| d5b882d3f8 | |||
| 3025ea9a7b | |||
| 5dba4d1384 | |||
| e4f1e7b093 | |||
| d0a0597087 | |||
| c9ccf9a1b5 | |||
| 69107d4441 | |||
| e25afc1ef7 | |||
| 9babfd150e | |||
| 532dbbea4a | |||
| 0d284d05d9 | |||
| 28fccae3ac | |||
| 3a4a6da69c | |||
| 4ea07a95e7 | |||
| 80ceb49358 | |||
| 589337116a | |||
| cb50067223 | |||
| 4d63266d88 | |||
| 90dd33ce21 | |||
| 763b849ddf | |||
| 9c76c54283 | |||
| 5cb17b3a36 | |||
| 2f7b5d1cbb | |||
| 4fe14eb2e9 | |||
| eb089f2b58 | |||
| 4f0ac98eea | |||
| af19940fa1 | |||
| 5635d2a325 | |||
| 5e2de35693 | |||
| ef7180f23f | |||
| f939973d4f | |||
| 63f327733e | |||
| c1fb807fe4 | |||
| b7ddf44267 | |||
| 6d4c72ea5e | |||
| 3db11b9372 | |||
| b8714f4abe | |||
| 7ccbe74bbe | |||
| ea3ae3516b | |||
| d33af3ca52 | |||
| 291c3fa908 | |||
| a51fa58122 | |||
| 65a3967abd | |||
| e1e5c94a43 | |||
| f15127eceb | |||
| 071a238b71 | |||
| 050b052156 | |||
| 8f65cca776 | |||
| 66624a8c47 | |||
| c8b9a415e6 | |||
| a1dcb4c203 | |||
| d4edc3e622 | |||
| e2b8c3ee0e | |||
| c37816e90d | |||
| a35cfcdca7 | |||
| d381646226 | |||
| 285e7afec2 | |||
| df7d678c32 | |||
| f36f7e58de | |||
| 0e16c834d8 | |||
| 31a3256128 | |||
| aa8f70da28 | |||
| f375ffb8f8 | |||
| de240e40a5 | |||
| 7d30aea07f | |||
| 04a7361d0d | |||
| 7b19618eca | |||
| bd9600cc08 | |||
| 32172bc791 | |||
| c92f57fb07 | |||
| 8fbdea7f36 | |||
| df15da5145 | |||
| 846fe53c0f | |||
| 3bbdc828d9 | |||
| c454c3f0f2 | |||
| 77b1a546e8 | |||
| 7c7f063204 | |||
| 0a0fcb305c | |||
| da8028784d | |||
| 48edd888a6 | |||
| da4f134095 | |||
| 0a71620046 | |||
| 1b5a762578 | |||
| d9d031ed2b | |||
| 403e56b4ef | |||
| 499b06e300 | |||
| cb69540bdd | |||
| 1f27fa419a | |||
| a561b2bd91 | |||
| eeec85d1de | |||
| e01484f854 | |||
| fb996ded88 | |||
| a11bfca15a | |||
| 6262e1c9e6 | |||
| 4e318af7cc | |||
| d587b7867e | |||
| bd03ead9c3 | |||
| c1685b7128 | |||
| 7625e79574 | |||
| c5bf7875b9 | |||
| da026293bc | |||
| 86e5677574 | |||
| a48636604f | |||
| e6945ac076 | |||
| 9107d76522 | |||
| 52b925b306 | |||
| 49d3dc0aa0 | |||
| 0d41a1ae70 | |||
| 49e22d790a | |||
| 12e5eedd6b | |||
| 159b651871 | |||
| 080be7a885 | |||
| e526627eb9 | |||
| 67fc37c76c | |||
| b2b92aea31 | |||
| e0680d9612 | |||
| d54ac37403 | |||
| eedb3d3dd8 | |||
| 015aff9c4b | |||
| d286df649e | |||
| 567bfc41e0 | |||
| 90d77e9ffb | |||
| 2b33ba1984 | |||
| 1918f0c5d5 | |||
| 91d79de723 | |||
| 62b05f2377 | |||
| b628ec4c57 | |||
| 494394f084 | |||
| e99b4b183c | |||
| 9186353654 | |||
| bd2a7b9095 | |||
| 42b70e7a94 | |||
| 7f913203a1 | |||
| 9b94958840 | |||
| 2070e93379 | |||
| 772f4d938f | |||
| 531f3af203 | |||
| ed522341c1 | |||
| ee59c5068e | |||
| ebe3abd05b | |||
| 358dd4dddc | |||
| 3d924d3631 | |||
| 0bed316a40 | |||
| 24b5937793 | |||
| c5b5876700 | |||
| 0f969e952d | |||
| 43ba512fd5 | |||
| e0cbc247b2 | |||
| a2c8a82559 | |||
| 8aadbffe8c | |||
| be7e7bc6fd | |||
| 3a10d4bdc0 | |||
| fc03ecd1b3 | |||
| c7b10f0e83 | |||
| 6a94ce5e1c | |||
| 59859a8e2f | |||
| f51a8aae39 | |||
| bd5b8c5e0e | |||
| 67e7744566 | |||
| 65a6663c31 | |||
| 603e80fd26 | |||
| de4ee6bbe6 | |||
| a8aa242280 | |||
| 0d32c2a9d9 | |||
| 6d5a02e2a8 | |||
| 67f3cbaaa8 | |||
| f17504e1a0 | |||
| b1a9af5de8 | |||
| 913bf553ae | |||
| 356dcc42bf | |||
| 8c006f24ce | |||
| 6f2f0092f0 | |||
| 56afc4c614 | |||
| 0a3b9f8f9a | |||
| 9b0623f4a4 | |||
| c13ef17a86 | |||
| d5ac2f521f | |||
| 037af18114 | |||
| 92299458f5 | |||
| 3272f2a4cf | |||
| 6a6dfdd82c | |||
| fa27452983 | |||
| 8df5ec41d5 | |||
| 55aad3a742 | |||
| e46890d87e | |||
| 3a36e10fce | |||
| cc30c6d271 | |||
| 5e75ff7fb7 | |||
| 80681a1f8b | |||
| 5954e10155 | |||
| 78c43b7a10 | |||
| 8c6f8bf97b | |||
| f220438257 | |||
| bbd06752d3 | |||
| e34df2ce95 | |||
| b197c08716 | |||
| aeb6c0f433 | |||
| 8f32767267 | |||
| afd43b9a9a | |||
| 5893e02c48 | |||
| 66d3325e3c | |||
| e513993a0d | |||
| ddbdf42265 | |||
| badaa33ddb | |||
| befa3d7a6d | |||
| 513f1e8b86 | |||
| 4128f0fb73 | |||
| 3d81a63410 | |||
| c0ba44cacc | |||
| deba027457 | |||
| 47089d286e | |||
| 6c50292a66 | |||
| 1f23f06926 | |||
| 63319d32e8 | |||
| 66f28ef7a6 | |||
| 4e4eccd909 | |||
| c21fe99368 | |||
| 53ea91e945 | |||
| 7cde05b58a | |||
| 0fc9b35307 | |||
| 4a36826af0 | |||
| 26a278c5f4 | |||
| 66a4d79730 | |||
| 097d541391 | |||
| 788ef9b106 | |||
| a38e1163af | |||
| a633ff5174 | |||
| 6b412106de | |||
| 93b5cb6161 | |||
| 4b80fbe5eb | |||
| 52775aae60 | |||
| 0430178b3e | |||
| 470123c77a | |||
| 66d4798db3 | |||
| cc39395a12 | |||
| 3aeb9cf0b1 | |||
| f1b383f0b7 | |||
| e2896b7bf0 | |||
| 780dfb8966 | |||
| 8b91323705 | |||
| 89fdbf5660 | |||
| ac47ab3f8a | |||
| 7ed5dfdb8f | |||
| bfc1488860 | |||
| 726f733434 | |||
| 0c97e31101 | |||
| ec2b0718e6 | |||
| 720056268c | |||
| 345992eda4 | |||
| e3e6b35eb7 | |||
| 701ea950de | |||
| 4b78865823 | |||
| 5b2bdf4cf6 | |||
| a677b7fd3a | |||
| 9cbd3db022 | |||
| 5f52d2c2c7 | |||
| b8c403aa5d | |||
| 2c6863e18e | |||
| e7a462c685 | |||
| 0cf671ae3b | |||
| dfc6f5bfb4 | |||
| 64b9be7e42 | |||
| 7412a8761c | |||
| 65cdeabc77 | |||
| a507d4464d | |||
| 9143cc39d9 | |||
| e821755721 | |||
| d081688fc9 | |||
| cdc7ee698c | |||
| 0d0a9c872c | |||
| 30953cce66 | |||
| f6008cf46a | |||
| eb0587f726 | |||
| ba56ac87c5 | |||
| 5800ac67c4 | |||
| 73941a159a | |||
| d1fe8b203a | |||
| 8b8dbc1053 | |||
| 57e477b17c | |||
| 1a1924de3e | |||
| 3bea19c8ad | |||
| cd47b62765 | |||
| ffeaad324e | |||
| 4504dd810d | |||
| 60ad86f79c | |||
| f63294699a | |||
| 650594d9ea | |||
| 7c22d5c774 | |||
| 73a501908d | |||
| 31836e5c9e | |||
| 31adab94b3 | |||
| 824c65eb38 | |||
| 4e02044eb4 | |||
| f245cf2c5d | |||
| 1b49cc1408 | |||
| bd384a9b59 | |||
| 48eb2ff405 | |||
| dcacda984f | |||
| 8186e9e1d2 | |||
| b5b93917d1 | |||
| 1ffdadbde3 | |||
| 4506603ea1 | |||
| fdf8b85f88 | |||
| 340264ce41 | |||
| d6187b3d63 | |||
| b6577133a9 | |||
| 2d410eac37 | |||
| e63e71f2bf | |||
| ba743e0480 | |||
| 2f26b15524 | |||
| 5841ed0e70 | |||
| d217dff4b9 | |||
| 2746606db1 | |||
| 2d321780d0 | |||
| c26108586f | |||
| 7f30d9c3dc | |||
| 816b40bdc6 | |||
| 09688315cb | |||
| c709535442 | |||
| 08e2d804fa | |||
| b4fb07b435 | |||
| d119ae6409 | |||
| cf26fc4530 | |||
| f50a7704c9 | |||
| facec8393c | |||
| 172e8872ef | |||
| b7755b844a | |||
| 7e77d29edb | |||
| 3b84ef6968 | |||
| 2dd8192dcb | |||
| cafb499a79 | |||
| f952267396 | |||
| 6913b71c69 | |||
| c485b03b83 | |||
| e1f35c86db | |||
| cfbe60b731 | |||
| a21020e226 | |||
| 28d18102f0 | |||
| f5e78b7fdb | |||
| d420b2dae5 | |||
| 3cce9107d0 | |||
| a5248eb92b | |||
| 1acf734229 | |||
| cc170ecb20 | |||
| b7f40d16a4 | |||
| 7e6cb727bd | |||
| eeaa835bef | |||
| 04aff8d149 | |||
| e43eeeba4a | |||
| e88bdd818d | |||
| 1a5d8ce07e | |||
| 9e2c7cc145 | |||
| 8e405bc8eb | |||
| 23e2a153c9 | |||
| 85a0949488 | |||
| 57b6433dc0 | |||
| 1b43e1be44 | |||
| d6738b86c9 | |||
| a5325cef44 | |||
| cc917f3d83 | |||
| 492917ea40 | |||
| 78263185a1 | |||
| ee7aa9d58b | |||
| a7112937de | |||
| a8d4572aef | |||
| 45c530e53a | |||
| e0bcce5e6e | |||
| 8346ec8525 | |||
| 5d1673bad8 | |||
| a33328e11d | |||
| 3efa326684 | |||
| 196fead1e0 | |||
| b8ce04e9fe | |||
| 6369dfd65c | |||
| f4da56adf9 | |||
| 0987a91bfc | |||
| 9f23a56cf4 | |||
| 34a4754767 | |||
| b88de74552 | |||
| 45ac682c7f | |||
| b753d366bf | |||
| 06c598886e | |||
| 52b0b7f8dc | |||
| 656b3b2ebe | |||
| 6bdfbde23f | |||
| 1b9f5eebc0 | |||
| 1f37da08b4 | |||
| 5bc44e6fe5 | |||
| c70da08078 | |||
| 7600fb14e1 | |||
| e2fdf2042e | |||
| 8477d6b9ed | |||
| 241df63334 | |||
| 7131de8a2a | |||
| 473a799f58 | |||
| 6c9fe85170 | |||
| 2c5d2db340 | |||
| 6cd2e6e7fb | |||
| a6b094cff9 | |||
| 989598b9cd | |||
| b024a4546c | |||
| 519715f8ee | |||
| 522de390a7 | |||
| 2ffe19cea1 | |||
| 124dc10cc3 | |||
| a41338c3a2 | |||
| aa979b96f2 | |||
| f9b2471b32 | |||
| d594f3ac88 | |||
| e5190d4409 | |||
| 4f876c2bbc | |||
| 4d031ae55e | |||
| 89a348b154 | |||
| db62d40c50 | |||
| eff2ae8a73 | |||
| b23d29767f | |||
| 7d5a3c3421 | |||
| 1054623d9d | |||
| 4eba93f47b | |||
| 13bcc84e8f | |||
| c726ad3467 | |||
| 5e95ff963c | |||
| 1ef232e45b | |||
| 034654193f | |||
| bddaa26d5a | |||
| b42648fecb | |||
| aa800bf96b | |||
| 6575e139b5 | |||
| c5b3460006 | |||
| b1e490765b | |||
| c0f4a09e22 | |||
| 8fb5311844 | |||
| 12122f1eaf | |||
| e83312289b | |||
| d59f4113c1 | |||
| 8e3b70e7c8 | |||
| 6a41942de6 | |||
| c25d95b3b6 | |||
| edde95edeb | |||
| 066eaea45d | |||
| 7ae3cf5d95 | |||
| 2fa728d45c | |||
| 04cbd6a1d8 | |||
| c6e658e26b | |||
| 0692aceda4 | |||
| 072bef5847 | |||
| e94a689f83 | |||
| c71a980f78 | |||
| ef7d850dd4 | |||
| 1e6a71f36b | |||
| f5ae4120cd | |||
| 82331364b7 | |||
| ef3879e419 | |||
| 403dbf13e8 | |||
| c8193c0009 | |||
| 9c0c69a728 | |||
| 4606fc3e2a | |||
| c9bb3ab368 | |||
| 99e4b406a4 | |||
| 67b9424b9e | |||
| 5b60be5f51 | |||
| d88927a6fb | |||
| 6616ee3607 | |||
| 0dbd8de335 | |||
| 9b406e368b | |||
| 4449dc43a0 | |||
| 554093ab3e | |||
| ac3ed22ae9 | |||
| 2ca7b09d1e | |||
| f29c2da9ce | |||
| e23f6ae0fa | |||
| 51061273bc | |||
| 4a0812dfe9 | |||
| efb694a6e6 | |||
| 1dbe2f31d0 | |||
| be9525dbf2 | |||
| a24afad641 | |||
| abd14aa33c | |||
| 5b3c0685ac | |||
| d263072aca | |||
| 2a59d9ff04 | |||
| 619dc73bcb | |||
| 02edefc158 | |||
| 572f5ae585 | |||
| a326866cc9 | |||
| 17decf7b71 | |||
| b9784e22ff | |||
| 0f600c5b70 | |||
| a606e9c974 | |||
| 9e1938095c | |||
| 3491eb3881 | |||
| 6277340d6b | |||
| 0c12ee4452 | |||
| 4ec245a119 | |||
| 24fa6d17de | |||
| 2eedc1032c | |||
| 8c3b1b433f | |||
| ae3f0f9a4e | |||
| f4ae601f0d | |||
| 2104b86080 | |||
| 9724dceb73 | |||
| 4c07a4f35d | |||
| 6a15697957 | |||
| 47f880d8dc | |||
| d5814f5680 | |||
| 345a444d73 | |||
| 0053ce5602 | |||
| 9851757a4e | |||
| 55fe25b8cb | |||
| 714f8a17c3 | |||
| 732e9db9af | |||
| 6fbc448a52 | |||
| 76fc241778 | |||
| 51cbbfdc45 | |||
| 279f2f503e | |||
| 795d95b482 | |||
| 78c8467bf6 | |||
| 5b5b95c85c | |||
| 8490b07c90 | |||
| dee2c51c60 | |||
| 4149fa6ce4 | |||
| 7a69611f09 | |||
| 6692252df9 | |||
| 486ce1bdb0 | |||
| cceff77bc2 | |||
| 22a9169f87 | |||
| 47a30763a0 | |||
| 73379a1bd8 | |||
| 7cc46629b4 | |||
| 67304245ba | |||
| 8edd3a1a34 | |||
| e4bc7c8d78 | |||
| a8af78d400 | |||
| 0afe3de818 | |||
| 3c81aadec6 | |||
| 1dfcb035da | |||
| 77b24882a9 | |||
| 1fd0673257 | |||
| dbda76e0ce | |||
| a9d22521ce | |||
| 6da1d9629f | |||
| 37b61a7087 | |||
| 9b484e6ee9 | |||
| 5ef67ef21c | |||
| f902166643 | |||
| 8f91466b3d | |||
| fa1621c3d1 | |||
| 2acd45feae | |||
| f19e974b9d | |||
| 01598ac002 | |||
| 9b3906359b | |||
| 084908bd04 | |||
| 4224580d6f | |||
| 07d30647d8 | |||
| 263096fc77 | |||
| b510cbce7f | |||
| 0b84dc3266 | |||
| 7ee7b95eb5 | |||
| 83b8bdde45 | |||
| 1b5dd15b90 | |||
| 47c224fcad | |||
| 1c866f40eb | |||
| 1861aabaca | |||
| cd8fb6eb38 | |||
| 21d05d3731 | |||
| 7c953925f9 | |||
| 33a4bbbe47 | |||
| dfb82570ea | |||
| 039a775ce4 | |||
| e712d6ae42 | |||
| 6ffc953370 | |||
| 63bf6a5574 | |||
| 1e73fc5751 | |||
| 65604a0b88 | |||
| 5a1a39f5f5 | |||
| d22576c85c | |||
| b7e5332c38 | |||
| ed8570fb88 | |||
| ce69e6634d | |||
| 274db20c60 | |||
| 3d72072f1f | |||
| ed156c09d7 | |||
| fda3a1a468 | |||
| c261387635 | |||
| 7a2fa4dae8 | |||
| b0c41958d9 | |||
| 4f1dcbfb78 | |||
| dc9ed099d0 | |||
| 95255d44a9 | |||
| 5a94e8df75 | |||
| 015e3f8490 | |||
| 558601f02b | |||
| 461d96a079 | |||
| bacfaf4a71 | |||
| 0678def698 | |||
| 07b0a0af51 | |||
| f12f6cb720 | |||
| 4e6c1478f9 | |||
| f9fd36f77e | |||
| db4c7424b3 | |||
| 9311043190 | |||
| 03915ccfbd | |||
| c6d59216fd | |||
| dd9e80f067 | |||
| a8690e41e6 | |||
| cda42b9ec5 | |||
| 21a75fdd6d | |||
| a90a1e9855 | |||
| 2a046e2e8b | |||
| bb41656d81 | |||
| a88a107718 | |||
| 2d21469f91 | |||
| 960ebe4a79 | |||
| 46dba0c394 | |||
| ba27e8ca95 | |||
| 30574ea0fd | |||
| c3c985c4a1 | |||
| 7b3d2d8812 | |||
| d573a9f008 | |||
| 85a05f56b2 | |||
| 904adfb905 | |||
| b2201c29fd | |||
| fe01f68623 | |||
| 531c8ebe94 | |||
| 52dfb5a360 | |||
| 7e04e7e461 | |||
| bce47f606d | |||
| 4dc1fdfdd8 | |||
| 9a852b52bc | |||
| 71a57b1fc0 | |||
| d634598db1 | |||
| 6377d682a4 | |||
| 6e1acfdc24 | |||
| 30ec1dfd7c | |||
| 3d209024dd | |||
| 9ce64a037d | |||
| 43117bc035 | |||
| 2af704043e | |||
| fa14ffdcba | |||
| 492b715ea0 | |||
| d452e20b8a | |||
| 6b634c15d9 | |||
| eeaec3369f | |||
| ce1eece90d | |||
| 030bff6592 | |||
| 65de46a59e | |||
| 974f67aefe | |||
| e374ae3229 | |||
| 8b1058e577 | |||
| aaa2eea5e6 | |||
| 54047e3c2c | |||
| 50fe94e47b | |||
| 6999f6641a | |||
| c2b12aa65f | |||
| 1a731b6908 | |||
| 837d050628 | |||
| 8b00bec49c | |||
| a3a2af948e | |||
| 9ade643af0 | |||
| a29b92a886 | |||
| e2c28e211f | |||
| 65f5b6a0a4 | |||
| 905e240fb9 | |||
| 75cea1ab78 | |||
| dd3da3dd49 | |||
| 5ab9131629 | |||
| 8f1c9612b7 | |||
| 15a12d2518 | |||
| e83734e0e4 | |||
| f2a95af45c | |||
| 1bb61d0c1d | |||
| 51fb4f2296 | |||
| 5f0f625c0f | |||
| ea7b803905 | |||
| 76af3921dd | |||
| e2f999fc31 | |||
| f63d57c4a9 | |||
| ee73790127 | |||
| 1c3e84e9bb | |||
| 451a151ce0 | |||
| 1ac4f819ec | |||
| 526eba0129 | |||
| 8638e0a1f9 | |||
| 69c1093c93 | |||
| 74cd0a4d40 | |||
| e28fc3bee6 | |||
| 879dfac111 | |||
| b6cfcd797b | |||
| 2ea73888f0 | |||
| f43331967c | |||
| 9da1249e51 | |||
| 2342dfe452 | |||
| e24d22c348 | |||
| 533d9545de | |||
| 03c0c3c821 | |||
| 05be628afb | |||
| cb2dc3e645 | |||
| 25f3d2fb9f | |||
| db39a6416c | |||
| 48e0787344 | |||
| 838de2f692 | |||
| 1953d89e3c | |||
| d0898d4c75 | |||
| f01bb1aecb | |||
| bbdbda4942 | |||
| 7741696011 | |||
| 2d4567bfbd | |||
| 8f643dae27 | |||
| 81e287ffe5 | |||
| 5543aa5e02 | |||
| b5a7b4cd2c | |||
| 8857ce8146 | |||
| bfbc5f600f | |||
| a8fa42db00 | |||
| 4ee2bfcf32 | |||
| ab98884f77 | |||
| dbf443300b | |||
| dbf44a7a85 | |||
| 2818c95795 | |||
| 27a13a6151 | |||
| 9f974786f2 | |||
| 2f2f41ac3c | |||
| d5d30f683a | |||
| 56007aa4ba | |||
| d489e08718 | |||
| 16b9356944 | |||
| ba26826896 | |||
| 49631b6e56 | |||
| ae2bffc56d | |||
| 47e51c4787 | |||
| 06ef289427 | |||
| 4190f39993 | |||
| 26a22375c8 | |||
| 0c174caf86 | |||
| 661748adc1 | |||
| 73f24339e3 | |||
| 9775d7425c | |||
| 3ff6c96273 | |||
| f9706f10e1 | |||
| e9a20c61d5 | |||
| f3ee1a84dd | |||
| 381ca43c01 | |||
| 8cc16dc51b | |||
| 4337603e33 | |||
| 5c39acb745 | |||
| 1b584f0b88 | |||
| 68a28ef6d4 | |||
| 867df7f2c7 | |||
| c18e84bb8e | |||
| 3fc1fd9dbc | |||
| bc284c327c | |||
| 85961c76fb | |||
| 1c11a5964b | |||
| 4d1ba4ea3f | |||
| 6d3e24fce9 | |||
| de37ec5704 | |||
| 745592432c | |||
| cf47965e8c | |||
| 3d64872352 | |||
| b89ad4204c | |||
| 71e9ba849d | |||
| 1d412175c6 | |||
| b282a37a04 | |||
| 5f6d0bcf25 | |||
| 74c2d5eb06 | |||
| 4618d3b30e | |||
| 9e32e8f499 | |||
| f47e2e758b | |||
| 9e03e30bd8 | |||
| 6be0e6bfca | |||
| 7bbdedf5f4 | |||
| e942e6a2f5 | |||
| 6162df7013 | |||
| 0bedf3ea59 | |||
| a28227ad75 | |||
| ed8baf3327 | |||
| 1ac5de96f9 | |||
| 15dd4c4350 | |||
| c986089e77 | |||
| 17dc77f061 | |||
| 189f353de0 | |||
| 845e7174f0 | |||
| 8c6e4ad3ee | |||
| 5dfddc890c | |||
| 1ebabc23d3 | |||
| 1bf8c1c763 | |||
| c5a59b6370 | |||
| 4a5a777478 | |||
| 4fd7dcd5b2 | |||
| 55920d9e3f | |||
| 6d0c3c9cd8 | |||
| 7b20c3fe03 | |||
| efbe35c836 | |||
| e591cd74ab | |||
| 669b9c73be | |||
| 52e1dd6d33 | |||
| 828e195b81 | |||
| 145342bb72 | |||
| 58abfd004d | |||
| 9dc8322270 | |||
| 4f0a6a7d57 | |||
| 2fb8ae00b9 | |||
| 63da1e384d | |||
| 34685ebdb2 | |||
| 215ae941e1 | |||
| 9d1211e872 | |||
| cd4f2b1039 | |||
| 9881b7b498 | |||
| 28a687f6bf | |||
| bd43ed0e88 | |||
| 17b59ce4e5 | |||
| 7acc1864c8 | |||
| 5a6fdfcbc3 | |||
| 23d465d4a1 | |||
| 27ae014fcb | |||
| b4c7338b76 | |||
| 0d1464c5e9 | |||
| f4421d362c | |||
| 5c8378f2d4 | |||
| 1775ac4803 | |||
| 8401e86acb | |||
| ae1a615863 | |||
| a6ef1b8902 | |||
| 94d17b81d4 | |||
| 44a63d9cec | |||
| e2b4b5a57e | |||
| ec30aa323e | |||
| 95e9087c6e | |||
| db38099557 | |||
| 164d5cdec9 | |||
| c6b1076092 | |||
| 6aebe856da | |||
| 4737551918 | |||
| c2cb79f700 | |||
| d7c05984be | |||
| 55429e2f03 | |||
| 25ffe8b0e4 | |||
| 303a9d1110 | |||
| de8c907c51 | |||
| 0fd1cabd60 | |||
| 8dd480735c | |||
| 676f1a1f0e | |||
| ce75422126 | |||
| 3a097d6b15 | |||
| 9de1bf1020 | |||
| 93e5cf1c25 | |||
| 6e2376570b | |||
| b20c4bf197 | |||
| 6ae1d92033 |
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"env": {
|
||||
"browser": true,
|
||||
"node": true,
|
||||
"es2022": true
|
||||
},
|
||||
"parserOptions": {
|
||||
"sourceType": "module"
|
||||
},
|
||||
"extends": "eslint:recommended",
|
||||
"rules": {
|
||||
"indent": "off",
|
||||
"brace-style": "off",
|
||||
"no-mixed-spaces-and-tabs": "off",
|
||||
"no-useless-escape": "off",
|
||||
"space-unary-ops": ["error", { "words": true }],
|
||||
"linebreak-style": "off",
|
||||
"quotes": ["off"],
|
||||
"semi": "off",
|
||||
"camelcase": "off",
|
||||
"no-unused-vars": "off",
|
||||
"no-console": ["warn"],
|
||||
"no-extra-boolean-cast": ["off"],
|
||||
"no-control-regex": ["off"],
|
||||
},
|
||||
"root": true,
|
||||
"globals": {
|
||||
"frappe": true,
|
||||
"Vue": true,
|
||||
"SetVueGlobals": true,
|
||||
"__": true,
|
||||
"repl": true,
|
||||
"Class": true,
|
||||
"locals": true,
|
||||
"cint": true,
|
||||
"cstr": true,
|
||||
"cur_frm": true,
|
||||
"cur_dialog": true,
|
||||
"cur_page": true,
|
||||
"cur_list": true,
|
||||
"cur_tree": true,
|
||||
"msg_dialog": true,
|
||||
"is_null": true,
|
||||
"in_list": true,
|
||||
"has_common": true,
|
||||
"posthog": true,
|
||||
"has_words": true,
|
||||
"validate_email": true,
|
||||
"open_web_template_values_editor": true,
|
||||
"validate_name": true,
|
||||
"validate_phone": true,
|
||||
"validate_url": true,
|
||||
"get_number_format": true,
|
||||
"format_number": true,
|
||||
"format_currency": true,
|
||||
"comment_when": true,
|
||||
"open_url_post": true,
|
||||
"toTitle": true,
|
||||
"lstrip": true,
|
||||
"rstrip": true,
|
||||
"strip": true,
|
||||
"strip_html": true,
|
||||
"replace_all": true,
|
||||
"flt": true,
|
||||
"precision": true,
|
||||
"CREATE": true,
|
||||
"AMEND": true,
|
||||
"CANCEL": true,
|
||||
"copy_dict": true,
|
||||
"get_number_format_info": true,
|
||||
"strip_number_groups": true,
|
||||
"print_table": true,
|
||||
"Layout": true,
|
||||
"web_form_settings": true,
|
||||
"$c": true,
|
||||
"$a": true,
|
||||
"$i": true,
|
||||
"$bg": true,
|
||||
"$y": true,
|
||||
"$c_obj": true,
|
||||
"refresh_many": true,
|
||||
"refresh_field": true,
|
||||
"toggle_field": true,
|
||||
"get_field_obj": true,
|
||||
"get_query_params": true,
|
||||
"unhide_field": true,
|
||||
"hide_field": true,
|
||||
"set_field_options": true,
|
||||
"getCookie": true,
|
||||
"getCookies": true,
|
||||
"get_url_arg": true,
|
||||
"md5": true,
|
||||
"$": true,
|
||||
"jQuery": true,
|
||||
"moment": true,
|
||||
"hljs": true,
|
||||
"Awesomplete": true,
|
||||
"Sortable": true,
|
||||
"Showdown": true,
|
||||
"Taggle": true,
|
||||
"Gantt": true,
|
||||
"Slick": true,
|
||||
"Webcam": true,
|
||||
"PhotoSwipe": true,
|
||||
"PhotoSwipeUI_Default": true,
|
||||
"io": true,
|
||||
"JsBarcode": true,
|
||||
"L": true,
|
||||
"Chart": true,
|
||||
"DataTable": true,
|
||||
"Cypress": true,
|
||||
"cy": true,
|
||||
"it": true,
|
||||
"describe": true,
|
||||
"expect": true,
|
||||
"context": true,
|
||||
"before": true,
|
||||
"beforeEach": true,
|
||||
"after": true,
|
||||
"qz": true,
|
||||
"localforage": true,
|
||||
"extend_cscript": true
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@ echo "Setting Up System Dependencies..."
|
||||
|
||||
sudo apt update
|
||||
sudo apt remove mysql-server mysql-client
|
||||
sudo apt-get install libcups2-dev redis-server mariadb-client
|
||||
sudo apt-get install libcups2-dev redis-server mariadb-client libmariadb-dev
|
||||
|
||||
install_wkhtmltopdf() {
|
||||
wget -q https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
|
||||
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
node-version: '18'
|
||||
check-latest: true
|
||||
- name: setup cache for bench
|
||||
uses: actions/cache@v2
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/bench-cache
|
||||
key: ${{ runner.os }}
|
||||
|
||||
@@ -7,8 +7,27 @@ on:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
commit-lint:
|
||||
name: 'Semantic Commits'
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 200
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
check-latest: true
|
||||
|
||||
- name: Check commit titles
|
||||
run: |
|
||||
npm install @commitlint/cli @commitlint/config-conventional
|
||||
npx commitlint --verbose --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
linters:
|
||||
name: Semantic Commits
|
||||
name: Semgrep Rules
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
@@ -20,8 +39,17 @@ jobs:
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml', '**/setup.py') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-
|
||||
${{ runner.os }}-
|
||||
|
||||
- name: Install and Run Pre-commit
|
||||
uses: pre-commit/action@v2.0.3
|
||||
uses: pre-commit/action@v3.0.1
|
||||
|
||||
- name: Download Semgrep rules
|
||||
run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
name: Create weekly release
|
||||
on:
|
||||
schedule:
|
||||
# 13:00 UTC -> 7pm IST on every Wednesday
|
||||
- cron: '30 4 * * 3'
|
||||
- cron: '30 3 * * 3'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
echo "127.0.0.1 lms.test" | sudo tee -a /etc/hosts
|
||||
|
||||
- name: Cache pip
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml', '**/setup.py') }}
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
id: yarn-cache-dir-path
|
||||
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/cache@v3
|
||||
- uses: actions/cache@v4
|
||||
id: yarn-cache
|
||||
with:
|
||||
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
||||
@@ -79,7 +79,7 @@ jobs:
|
||||
${{ runner.os }}-yarn-ui-
|
||||
|
||||
- name: Cache cypress binary
|
||||
uses: actions/cache@v3
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.cache/Cypress
|
||||
key: ${{ runner.os }}-cypress
|
||||
@@ -100,11 +100,12 @@ jobs:
|
||||
bench --site lms.test execute frappe.utils.install.complete_setup_wizard
|
||||
bench --site lms.test execute frappe.tests.ui_test_helpers.create_test_user
|
||||
bench --site lms.test set-password frappe@example.com admin
|
||||
bench --site lms.test execute lms.lms.utils.persona_captured
|
||||
|
||||
- name: cypress pre-requisites
|
||||
run: |
|
||||
cd ~/frappe-bench/apps/lms
|
||||
yarn add cypress@^10 --no-lockfile
|
||||
yarn add cypress@^10 --no-lockfile -W
|
||||
|
||||
- name: UI Tests
|
||||
run: cd ~/frappe-bench/ && bench --site lms.test run-ui-tests lms --headless
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
exclude: 'node_modules|.git'
|
||||
default_stages: [commit]
|
||||
default_stages: [pre-commit]
|
||||
fail_fast: false
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.3.0
|
||||
rev: v5.0.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
files: "lms.*"
|
||||
@@ -16,17 +16,16 @@ repos:
|
||||
- id: check-toml
|
||||
- id: debug-statements
|
||||
|
||||
- repo: https://github.com/asottile/pyupgrade
|
||||
rev: v2.34.0
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.8.1
|
||||
hooks:
|
||||
- id: pyupgrade
|
||||
args: ['--py310-plus']
|
||||
|
||||
- repo: https://github.com/adityahase/black
|
||||
rev: 9cb0a69f4d0030cdf687eddf314468b39ed54119
|
||||
hooks:
|
||||
- id: black
|
||||
additional_dependencies: ['click==8.0.4']
|
||||
- id: ruff
|
||||
name: "Run ruff import sorter"
|
||||
args: ["--select=I", "--fix"]
|
||||
- id: ruff
|
||||
name: "Run ruff linter"
|
||||
- id: ruff-format
|
||||
name: "Run ruff formatter"
|
||||
|
||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||
rev: v2.7.1
|
||||
@@ -44,12 +43,22 @@ repos:
|
||||
lms/public/js/lib/.*
|
||||
)$
|
||||
|
||||
- repo: https://github.com/PyCQA/flake8
|
||||
rev: 5.0.4
|
||||
- repo: https://github.com/pre-commit/mirrors-eslint
|
||||
rev: v8.44.0
|
||||
hooks:
|
||||
- id: flake8
|
||||
additional_dependencies: ['flake8-bugbear',]
|
||||
args: ['--config', '.github/helper/flake8.conf']
|
||||
- id: eslint
|
||||
types_or: [javascript]
|
||||
args: ['--quiet']
|
||||
exclude: |
|
||||
(?x)^(
|
||||
lms/public/dist/.*|
|
||||
cypress/.*|
|
||||
.*node_modules.*|
|
||||
.*boilerplate.*|
|
||||
lms/www/website_script.js|
|
||||
lms/templates/includes/.*|
|
||||
lms/public/js/lib/.*
|
||||
)$
|
||||
|
||||
ci:
|
||||
autoupdate_schedule: weekly
|
||||
|
||||
@@ -118,6 +118,10 @@ Replace the following parameters with your values:
|
||||
|
||||
The script will set up a production-ready instance of Frappe Learning with all the necessary configurations in about 5 minutes.
|
||||
|
||||
**Note:** To avoid a `404 Page Not Found` error:
|
||||
- If hosting on a **public server**, make sure your DNS **A record** points to your server's IP.
|
||||
- If hosting **locally**, map your domain to `127.0.0.1` in your `/etc/hosts` file:
|
||||
|
||||
## Development Setup
|
||||
|
||||
### Docker
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
export default {
|
||||
parserPreset: "conventional-changelog-conventionalcommits",
|
||||
rules: {
|
||||
"subject-empty": [2, "never"],
|
||||
"type-case": [2, "always", "lower-case"],
|
||||
"type-empty": [2, "never"],
|
||||
"type-enum": [
|
||||
2,
|
||||
"always",
|
||||
[
|
||||
"build",
|
||||
"chore",
|
||||
"ci",
|
||||
"docs",
|
||||
"feat",
|
||||
"fix",
|
||||
"perf",
|
||||
"refactor",
|
||||
"revert",
|
||||
"style",
|
||||
"test",
|
||||
"deprecate", // deprecation decision
|
||||
],
|
||||
],
|
||||
},
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
const { defineConfig } = require("cypress");
|
||||
import { defineConfig } from "cypress";
|
||||
|
||||
module.exports = defineConfig({
|
||||
export default defineConfig({
|
||||
projectId: "vandxn",
|
||||
adminPassword: "admin",
|
||||
testUser: "frappe@example.com",
|
||||
@@ -13,6 +13,6 @@ module.exports = defineConfig({
|
||||
openMode: 0,
|
||||
},
|
||||
e2e: {
|
||||
baseUrl: "http://lms1:8000",
|
||||
baseUrl: "http://pertest:8000",
|
||||
},
|
||||
});
|
||||
|
||||
@@ -0,0 +1,172 @@
|
||||
describe("Batch Creation", () => {
|
||||
it("creates a new batch", () => {
|
||||
cy.login();
|
||||
cy.wait(500);
|
||||
cy.visit("/lms/batches");
|
||||
cy.closeOnboardingModal();
|
||||
|
||||
// Open Settings
|
||||
cy.get("span").contains("Learning").click();
|
||||
cy.get("span").contains("Settings").click();
|
||||
|
||||
// Add a new member
|
||||
cy.get('[id^="headlessui-dialog-panel-v-"]')
|
||||
.find("span")
|
||||
.contains(/^Members$/)
|
||||
.click();
|
||||
cy.get('[id^="headlessui-dialog-panel-v-"]')
|
||||
.find("button")
|
||||
.contains("New")
|
||||
.click();
|
||||
|
||||
const dateNow = Date.now();
|
||||
const randomEmail = `testuser_${dateNow}@example.com`;
|
||||
const randomName = `Test User ${dateNow}`;
|
||||
|
||||
cy.get("input[placeholder='jane@doe.com']").type(randomEmail);
|
||||
cy.get("input[placeholder='Jane']").type(randomName);
|
||||
cy.get("button").contains("Add").click();
|
||||
|
||||
// Add evaluator
|
||||
cy.get('[id^="headlessui-dialog-panel-v-"]')
|
||||
.find("span")
|
||||
.contains(/^Evaluators$/)
|
||||
.click();
|
||||
|
||||
cy.get('[id^="headlessui-dialog-panel-v-"]')
|
||||
.find("button")
|
||||
.contains("New")
|
||||
.click();
|
||||
const randomEvaluator = `evaluator${dateNow}@example.com`;
|
||||
|
||||
cy.get("input[placeholder='jane@doe.com']").type(randomEvaluator);
|
||||
cy.get("button").contains("Add").click();
|
||||
cy.get("div").contains(randomEvaluator).should("be.visible").click();
|
||||
|
||||
cy.visit("/lms/batches");
|
||||
cy.closeOnboardingModal();
|
||||
|
||||
// Create a batch
|
||||
cy.get("button").contains("Create").click();
|
||||
cy.wait(500);
|
||||
cy.url().should("include", "/batches/new/edit");
|
||||
cy.get("label").contains("Title").type("Test Batch");
|
||||
|
||||
cy.get("label").contains("Start Date").type("2030-10-01");
|
||||
cy.get("label").contains("End Date").type("2030-10-31");
|
||||
cy.get("label").contains("Start Time").type("10:00");
|
||||
cy.get("label").contains("End Time").type("11:00");
|
||||
cy.get("label").contains("Timezone").type("IST");
|
||||
cy.get("label").contains("Seat Count").type("10");
|
||||
cy.get("label").contains("Published").click();
|
||||
|
||||
cy.get("label")
|
||||
.contains("Short Description")
|
||||
.type("Test Batch Short Description to test the UI");
|
||||
cy.get("div[contenteditable=true").invoke(
|
||||
"text",
|
||||
"Test Batch Description. I need a very big description to test the UI. This is a very big description. It contains more than once sentence. Its meant to be this long as this is a UI test. Its unbearably long and I'm not sure why I'm typing this much. I'm just going to keep typing until I feel like its long enough. I think its long enough now. I'm going to stop typing now."
|
||||
);
|
||||
|
||||
/* Instructor */
|
||||
cy.get("label")
|
||||
.contains("Instructors")
|
||||
.parent()
|
||||
.within(() => {
|
||||
cy.get("input").click().type("evaluator");
|
||||
cy.get("input")
|
||||
.invoke("attr", "aria-controls")
|
||||
.as("instructor_list_id");
|
||||
});
|
||||
cy.get("@instructor_list_id").then((instructor_list_id) => {
|
||||
cy.get(`[id^=${instructor_list_id}`)
|
||||
.should("be.visible")
|
||||
.within(() => {
|
||||
cy.get("[id^=headlessui-combobox-option-").first().click();
|
||||
});
|
||||
});
|
||||
|
||||
cy.button("Save").click();
|
||||
cy.wait(1000);
|
||||
let batchName;
|
||||
cy.url().then((url) => {
|
||||
console.log(url);
|
||||
batchName = url.split("/").pop();
|
||||
cy.wrap(batchName).as("batchName");
|
||||
});
|
||||
cy.wait(500);
|
||||
|
||||
// View Batch
|
||||
cy.wait(1000);
|
||||
cy.visit("/lms/batches");
|
||||
cy.closeOnboardingModal();
|
||||
|
||||
cy.url().should("include", "/lms/batches");
|
||||
|
||||
cy.get('[id^="headlessui-radiogroup-v-"]')
|
||||
.find("span")
|
||||
.contains("Upcoming")
|
||||
.should("be.visible")
|
||||
.click();
|
||||
|
||||
cy.get("@batchName").then((batchName) => {
|
||||
cy.get(`a[href='/lms/batches/details/${batchName}'`).within(() => {
|
||||
cy.get("div").contains("Test Batch").should("be.visible");
|
||||
cy.get("div")
|
||||
.contains("Test Batch Short Description to test the UI")
|
||||
.should("be.visible");
|
||||
cy.get("span")
|
||||
.contains("01 Oct 2030 - 31 Oct 2030")
|
||||
.should("be.visible");
|
||||
cy.get("span")
|
||||
.contains("10:00 AM - 11:00 AM")
|
||||
.should("be.visible");
|
||||
cy.get("span").contains("IST").should("be.visible");
|
||||
cy.get("a").contains("Evaluator").should("be.visible");
|
||||
cy.get("div")
|
||||
.contains("10")
|
||||
.should("be.visible")
|
||||
.get("span")
|
||||
.contains("Seats Left")
|
||||
.should("be.visible");
|
||||
});
|
||||
cy.get(`a[href='/lms/batches/details/${batchName}'`).click();
|
||||
});
|
||||
|
||||
cy.get("div").contains("Test Batch").should("be.visible");
|
||||
cy.get("div")
|
||||
.contains("Test Batch Short Description to test the UI")
|
||||
.should("be.visible");
|
||||
cy.get("a").contains("Evaluator").should("be.visible");
|
||||
cy.get("span:visible")
|
||||
.contains("01 Oct 2030 - 31 Oct 2030")
|
||||
.should("be.visible");
|
||||
cy.get("span:visible")
|
||||
.contains("10:00 AM - 11:00 AM")
|
||||
.should("be.visible");
|
||||
cy.get("span:visible").contains("IST").should("be.visible");
|
||||
cy.contains("div:visible", "10 Seats Left").should("be.visible");
|
||||
|
||||
cy.get("p")
|
||||
.contains(
|
||||
"Test Batch Description. I need a very big description to test the UI. This is a very big description. It contains more than once sentence. Its meant to be this long as this is a UI test. Its unbearably long and I'm not sure why I'm typing this much. I'm just going to keep typing until I feel like its long enough. I think its long enough now. I'm going to stop typing now."
|
||||
)
|
||||
.should("be.visible");
|
||||
cy.get("button:visible").contains("Manage Batch").click();
|
||||
|
||||
/* Add student to batch */
|
||||
cy.get("button").contains("Add").click();
|
||||
cy.get('div[id^="headlessui-dialog-panel-v-"]')
|
||||
.first()
|
||||
.find("button")
|
||||
.eq(1)
|
||||
.click();
|
||||
cy.get("input[id^='headlessui-combobox-input-v-']").type(randomEmail);
|
||||
cy.get("div").contains(randomEmail).click();
|
||||
cy.get("button").contains("Submit").click();
|
||||
|
||||
// Verify Seat Count
|
||||
cy.get("span").contains("Details").click();
|
||||
cy.contains("div:visible", "9 Seats Left").should("be.visible");
|
||||
});
|
||||
});
|
||||
@@ -1,12 +1,15 @@
|
||||
describe("Course Creation", () => {
|
||||
it("creates a new course", () => {
|
||||
cy.login();
|
||||
cy.wait(1000);
|
||||
cy.wait(500);
|
||||
cy.visit("/lms/courses");
|
||||
|
||||
// Close onboarding modal
|
||||
cy.closeOnboardingModal();
|
||||
|
||||
// Create a course
|
||||
cy.get("header").children().last().children().last().click();
|
||||
cy.wait(1000);
|
||||
cy.get("button").contains("Create").click();
|
||||
cy.wait(500);
|
||||
cy.url().should("include", "/courses/new/edit");
|
||||
|
||||
cy.get("label").contains("Title").type("Test Course");
|
||||
@@ -19,12 +22,16 @@ describe("Course Creation", () => {
|
||||
);
|
||||
|
||||
cy.fixture("profile.png", "base64").then((fileContent) => {
|
||||
cy.get('input[type="file"]').attachFile({
|
||||
fileContent,
|
||||
fileName: "profile.png",
|
||||
mimeType: "image/png",
|
||||
encoding: "base64",
|
||||
});
|
||||
cy.get("div")
|
||||
.contains("Course Image")
|
||||
.siblings("div")
|
||||
.children('input[type="file"]')
|
||||
.attachFile({
|
||||
fileContent,
|
||||
fileName: "profile.png",
|
||||
mimeType: "image/png",
|
||||
encoding: "base64",
|
||||
});
|
||||
});
|
||||
|
||||
cy.get("label")
|
||||
@@ -84,23 +91,23 @@ describe("Course Creation", () => {
|
||||
cy.wait(1000);
|
||||
|
||||
cy.get("label").contains("Title").type("Test Lesson");
|
||||
|
||||
cy.get("#content .ce-block").type(
|
||||
"This is an extremely big paragraph that is meant to test the UI. This is a very long paragraph. It contains more than once sentence. Its meant to be this long as this is a UI test. Its unbearably long and I'm not sure why I'm typing this much. I'm just going to keep typing until I feel like its long enough. I think its long enough now. I'm going to stop typing now."
|
||||
"{enter}This is an extremely big paragraph that is meant to test the UI. This is a very long paragraph. It contains more than once sentence. Its meant to be this long as this is a UI test. Its unbearably long and I'm not sure why I'm typing this much. I'm just going to keep typing until I feel like its long enough. I think its long enough now. I'm going to stop typing now."
|
||||
);
|
||||
cy.button("Save").click();
|
||||
|
||||
// View Course
|
||||
cy.wait(1000);
|
||||
cy.visit("/lms");
|
||||
cy.wait(500);
|
||||
cy.visit("/lms/courses");
|
||||
cy.closeOnboardingModal();
|
||||
|
||||
cy.url().should("include", "/lms/courses");
|
||||
cy.get(".grid a:first").within(() => {
|
||||
cy.get("div").contains("Test Course");
|
||||
cy.get("div").contains(
|
||||
"Test Course Short Introduction to test the UI"
|
||||
);
|
||||
cy.get(".course-image")
|
||||
cy.get(".bg-cover")
|
||||
.invoke("css", "background-image")
|
||||
.should("include", "/files/profile");
|
||||
});
|
||||
@@ -133,6 +140,7 @@ describe("Course Creation", () => {
|
||||
);
|
||||
|
||||
// Add Discussion
|
||||
cy.get("span").contains("Community").click();
|
||||
cy.button("New Question").click();
|
||||
cy.wait(500);
|
||||
cy.get("[id^=headlessui-dialog-panel-").within(() => {
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
||||
|
||||
import "cypress-file-upload";
|
||||
import "cypress-real-events";
|
||||
|
||||
Cypress.Commands.add("login", (email, password) => {
|
||||
if (!email) {
|
||||
@@ -37,6 +38,9 @@ Cypress.Commands.add("login", (email, password) => {
|
||||
url: "/api/method/login",
|
||||
method: "POST",
|
||||
body: { usr: email, pwd: password },
|
||||
timeout: 60000,
|
||||
retryOnStatusCodeFailure: true,
|
||||
retryOnNetworkFailure: true,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -65,3 +69,18 @@ Cypress.Commands.add("paste", { prevSubject: true }, (subject, text) => {
|
||||
element.dispatchEvent(event);
|
||||
});
|
||||
});
|
||||
|
||||
Cypress.Commands.add("closeOnboardingModal", () => {
|
||||
cy.wait(500);
|
||||
cy.get("body").then(($body) => {
|
||||
// Check if any element with class including 'z-50' exists
|
||||
if ($body.find('[class*="z-50"]').length > 0) {
|
||||
cy.get('[class*="z-50"]')
|
||||
.find('button:has(svg[class*="feather-x"])')
|
||||
.realClick();
|
||||
cy.wait(1000);
|
||||
} else {
|
||||
cy.log("Onboarding modal not found, skipping close.");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -16,9 +16,9 @@ cd frappe-bench
|
||||
|
||||
# Use containers instead of localhost
|
||||
bench set-mariadb-host mariadb
|
||||
bench set-redis-cache-host redis:6379
|
||||
bench set-redis-queue-host redis:6379
|
||||
bench set-redis-socketio-host redis:6379
|
||||
bench set-redis-cache-host redis://redis:6379
|
||||
bench set-redis-queue-host redis://redis:6379
|
||||
bench set-redis-socketio-host redis://redis:6379
|
||||
|
||||
# Remove redis, watch from Procfile
|
||||
sed -i '/redis/d' ./Procfile
|
||||
|
||||
@@ -2,4 +2,5 @@ node_modules
|
||||
.DS_Store
|
||||
dist
|
||||
dist-ssr
|
||||
dev-dist
|
||||
*.local
|
||||
@@ -0,0 +1,10 @@
|
||||
/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
// @ts-nocheck
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
// Generated by unplugin-auto-import
|
||||
// biome-ignore lint: disable
|
||||
export {}
|
||||
declare global {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck
|
||||
// Generated by unplugin-vue-components
|
||||
// Read more: https://github.com/vuejs/core/pull/3399
|
||||
// biome-ignore lint: disable
|
||||
export {}
|
||||
|
||||
/* prettier-ignore */
|
||||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
Annoucements: typeof import('./src/components/Annoucements.vue')['default']
|
||||
AnnouncementModal: typeof import('./src/components/Modals/AnnouncementModal.vue')['default']
|
||||
Apps: typeof import('./src/components/Apps.vue')['default']
|
||||
AppSidebar: typeof import('./src/components/AppSidebar.vue')['default']
|
||||
AssessmentModal: typeof import('./src/components/Modals/AssessmentModal.vue')['default']
|
||||
AssessmentPlugin: typeof import('./src/components/AssessmentPlugin.vue')['default']
|
||||
Assessments: typeof import('./src/components/Assessments.vue')['default']
|
||||
Assignment: typeof import('./src/components/Assignment.vue')['default']
|
||||
AssignmentForm: typeof import('./src/components/Modals/AssignmentForm.vue')['default']
|
||||
AudioBlock: typeof import('./src/components/AudioBlock.vue')['default']
|
||||
Autocomplete: typeof import('./src/components/Controls/Autocomplete.vue')['default']
|
||||
BadgeAssignmentForm: typeof import('./src/components/Settings/BadgeAssignmentForm.vue')['default']
|
||||
BadgeAssignments: typeof import('./src/components/Settings/BadgeAssignments.vue')['default']
|
||||
BadgeForm: typeof import('./src/components/Settings/BadgeForm.vue')['default']
|
||||
Badges: typeof import('./src/components/Settings/Badges.vue')['default']
|
||||
BatchCard: typeof import('./src/components/BatchCard.vue')['default']
|
||||
BatchCourseModal: typeof import('./src/components/Modals/BatchCourseModal.vue')['default']
|
||||
BatchCourses: typeof import('./src/components/BatchCourses.vue')['default']
|
||||
BatchDashboard: typeof import('./src/components/BatchDashboard.vue')['default']
|
||||
BatchFeedback: typeof import('./src/components/BatchFeedback.vue')['default']
|
||||
BatchOverlay: typeof import('./src/components/BatchOverlay.vue')['default']
|
||||
BatchStudentProgress: typeof import('./src/components/Modals/BatchStudentProgress.vue')['default']
|
||||
BatchStudents: typeof import('./src/components/BatchStudents.vue')['default']
|
||||
BrandSettings: typeof import('./src/components/Settings/BrandSettings.vue')['default']
|
||||
BulkCertificates: typeof import('./src/components/Modals/BulkCertificates.vue')['default']
|
||||
Categories: typeof import('./src/components/Settings/Categories.vue')['default']
|
||||
CertificationLinks: typeof import('./src/components/CertificationLinks.vue')['default']
|
||||
ChapterModal: typeof import('./src/components/Modals/ChapterModal.vue')['default']
|
||||
ChildTable: typeof import('./src/components/Controls/ChildTable.vue')['default']
|
||||
Code: typeof import('./src/components/Controls/Code.vue')['default']
|
||||
CodeEditor: typeof import('./src/components/Controls/CodeEditor.vue')['default']
|
||||
CollapseSidebar: typeof import('./src/components/Icons/CollapseSidebar.vue')['default']
|
||||
ColorSwatches: typeof import('./src/components/Controls/ColorSwatches.vue')['default']
|
||||
CourseCard: typeof import('./src/components/CourseCard.vue')['default']
|
||||
CourseCardOverlay: typeof import('./src/components/CourseCardOverlay.vue')['default']
|
||||
CourseInstructors: typeof import('./src/components/CourseInstructors.vue')['default']
|
||||
CourseOutline: typeof import('./src/components/CourseOutline.vue')['default']
|
||||
CourseProgressSummary: typeof import('./src/components/Modals/CourseProgressSummary.vue')['default']
|
||||
CourseReviews: typeof import('./src/components/CourseReviews.vue')['default']
|
||||
CreateOutline: typeof import('./src/components/CreateOutline.vue')['default']
|
||||
DateRange: typeof import('./src/components/Common/DateRange.vue')['default']
|
||||
DesktopLayout: typeof import('./src/components/DesktopLayout.vue')['default']
|
||||
DiscussionModal: typeof import('./src/components/Modals/DiscussionModal.vue')['default']
|
||||
DiscussionReplies: typeof import('./src/components/DiscussionReplies.vue')['default']
|
||||
Discussions: typeof import('./src/components/Discussions.vue')['default']
|
||||
EditCoverImage: typeof import('./src/components/Modals/EditCoverImage.vue')['default']
|
||||
EditProfile: typeof import('./src/components/Modals/EditProfile.vue')['default']
|
||||
EmailTemplateModal: typeof import('./src/components/Modals/EmailTemplateModal.vue')['default']
|
||||
EmailTemplates: typeof import('./src/components/Settings/EmailTemplates.vue')['default']
|
||||
EmptyState: typeof import('./src/components/EmptyState.vue')['default']
|
||||
EvaluationModal: typeof import('./src/components/Modals/EvaluationModal.vue')['default']
|
||||
Evaluators: typeof import('./src/components/Settings/Evaluators.vue')['default']
|
||||
Event: typeof import('./src/components/Modals/Event.vue')['default']
|
||||
ExplanationVideos: typeof import('./src/components/Modals/ExplanationVideos.vue')['default']
|
||||
FeedbackModal: typeof import('./src/components/Modals/FeedbackModal.vue')['default']
|
||||
FrappeCloudIcon: typeof import('./src/components/Icons/FrappeCloudIcon.vue')['default']
|
||||
IconPicker: typeof import('./src/components/Controls/IconPicker.vue')['default']
|
||||
IndicatorIcon: typeof import('./src/components/Icons/IndicatorIcon.vue')['default']
|
||||
InlineLessonMenu: typeof import('./src/components/Notes/InlineLessonMenu.vue')['default']
|
||||
InstallPrompt: typeof import('./src/components/InstallPrompt.vue')['default']
|
||||
InviteIcon: typeof import('./src/components/Icons/InviteIcon.vue')['default']
|
||||
JobApplicationModal: typeof import('./src/components/Modals/JobApplicationModal.vue')['default']
|
||||
JobCard: typeof import('./src/components/JobCard.vue')['default']
|
||||
LessonContent: typeof import('./src/components/LessonContent.vue')['default']
|
||||
LessonHelp: typeof import('./src/components/LessonHelp.vue')['default']
|
||||
Link: typeof import('./src/components/Controls/Link.vue')['default']
|
||||
LiveClass: typeof import('./src/components/LiveClass.vue')['default']
|
||||
LiveClassAttendance: typeof import('./src/components/Modals/LiveClassAttendance.vue')['default']
|
||||
LiveClassModal: typeof import('./src/components/Modals/LiveClassModal.vue')['default']
|
||||
LMSLogo: typeof import('./src/components/Icons/LMSLogo.vue')['default']
|
||||
Members: typeof import('./src/components/Settings/Members.vue')['default']
|
||||
MobileLayout: typeof import('./src/components/MobileLayout.vue')['default']
|
||||
MultiSelect: typeof import('./src/components/Controls/MultiSelect.vue')['default']
|
||||
NoPermission: typeof import('./src/components/NoPermission.vue')['default']
|
||||
NoSidebarLayout: typeof import('./src/components/NoSidebarLayout.vue')['default']
|
||||
Notes: typeof import('./src/components/Notes/Notes.vue')['default']
|
||||
NotPermitted: typeof import('./src/components/NotPermitted.vue')['default']
|
||||
PageModal: typeof import('./src/components/Modals/PageModal.vue')['default']
|
||||
PaymentSettings: typeof import('./src/components/Settings/PaymentSettings.vue')['default']
|
||||
Play: typeof import('./src/components/Icons/Play.vue')['default']
|
||||
ProgressBar: typeof import('./src/components/ProgressBar.vue')['default']
|
||||
Question: typeof import('./src/components/Modals/Question.vue')['default']
|
||||
Quiz: typeof import('./src/components/Quiz.vue')['default']
|
||||
QuizBlock: typeof import('./src/components/QuizBlock.vue')['default']
|
||||
QuizInVideo: typeof import('./src/components/Modals/QuizInVideo.vue')['default']
|
||||
Rating: typeof import('./src/components/Controls/Rating.vue')['default']
|
||||
RelatedCourses: typeof import('./src/components/RelatedCourses.vue')['default']
|
||||
ReviewModal: typeof import('./src/components/Modals/ReviewModal.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
RouterView: typeof import('vue-router')['RouterView']
|
||||
SettingDetails: typeof import('./src/components/Settings/SettingDetails.vue')['default']
|
||||
SettingFields: typeof import('./src/components/Settings/SettingFields.vue')['default']
|
||||
Settings: typeof import('./src/components/Settings/Settings.vue')['default']
|
||||
SidebarLink: typeof import('./src/components/SidebarLink.vue')['default']
|
||||
StudentHeatmap: typeof import('./src/components/StudentHeatmap.vue')['default']
|
||||
StudentModal: typeof import('./src/components/Modals/StudentModal.vue')['default']
|
||||
Tags: typeof import('./src/components/Tags.vue')['default']
|
||||
UnsplashImageBrowser: typeof import('./src/components/UnsplashImageBrowser.vue')['default']
|
||||
UpcomingEvaluations: typeof import('./src/components/UpcomingEvaluations.vue')['default']
|
||||
Uploader: typeof import('./src/components/Controls/Uploader.vue')['default']
|
||||
UploadPlugin: typeof import('./src/components/UploadPlugin.vue')['default']
|
||||
UserAvatar: typeof import('./src/components/UserAvatar.vue')['default']
|
||||
UserDropdown: typeof import('./src/components/UserDropdown.vue')['default']
|
||||
VideoBlock: typeof import('./src/components/VideoBlock.vue')['default']
|
||||
VideoStatistics: typeof import('./src/components/Modals/VideoStatistics.vue')['default']
|
||||
ZoomAccountModal: typeof import('./src/components/Modals/ZoomAccountModal.vue')['default']
|
||||
ZoomSettings: typeof import('./src/components/Settings/ZoomSettings.vue')['default']
|
||||
}
|
||||
}
|
||||
@@ -2,9 +2,205 @@
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" href="/favicon.png" />
|
||||
<link rel="icon" href="{{ favicon }}" />
|
||||
<link rel="apple-touch-icon" href="public/manifest/apple-icon-180.png" />
|
||||
<meta name="mobile-web-app-capable" content="yes" />
|
||||
<meta name="theme-color" content="#FFFFFF" media="(prefers-color-scheme: light)" />
|
||||
<meta name="theme-color" content="#0F0F0F" media="(prefers-color-scheme: dark)" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
||||
<meta name="msapplication-navbutton-color" content="#ffffff" />
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2048-2732.jpg"
|
||||
media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2732-2048.jpg"
|
||||
media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1668-2388.jpg"
|
||||
media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2388-1668.jpg"
|
||||
media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1536-2048.jpg"
|
||||
media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2048-1536.jpg"
|
||||
media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1640-2360.jpg"
|
||||
media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2360-1640.jpg"
|
||||
media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1668-2224.jpg"
|
||||
media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2224-1668.jpg"
|
||||
media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1620-2160.jpg"
|
||||
media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2160-1620.jpg"
|
||||
media="(device-width: 810px) and (device-height: 1080px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1488-2266.jpg"
|
||||
media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2266-1488.jpg"
|
||||
media="(device-width: 744px) and (device-height: 1133px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1320-2868.jpg"
|
||||
media="(device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2868-1320.jpg"
|
||||
media="(device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1206-2622.jpg"
|
||||
media="(device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2622-1206.jpg"
|
||||
media="(device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1290-2796.jpg"
|
||||
media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2796-1290.jpg"
|
||||
media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1179-2556.jpg"
|
||||
media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2556-1179.jpg"
|
||||
media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1170-2532.jpg"
|
||||
media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2532-1170.jpg"
|
||||
media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1284-2778.jpg"
|
||||
media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2778-1284.jpg"
|
||||
media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1125-2436.jpg"
|
||||
media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2436-1125.jpg"
|
||||
media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1242-2688.jpg"
|
||||
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2688-1242.jpg"
|
||||
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-828-1792.jpg"
|
||||
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1792-828.jpg"
|
||||
media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1242-2208.jpg"
|
||||
media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-2208-1242.jpg"
|
||||
media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-750-1334.jpg"
|
||||
media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1334-750.jpg"
|
||||
media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-640-1136.jpg"
|
||||
media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)"
|
||||
/>
|
||||
<link
|
||||
rel="apple-touch-startup-image"
|
||||
href="public/manifest/apple-splash-1136-640.jpg"
|
||||
media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: landscape)"
|
||||
/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Frappe Learning</title>
|
||||
<title>{{ title }}</title>
|
||||
<meta name="title" content="{{ meta.title }}" />
|
||||
<meta name="image" content="{{ meta.image }}" />
|
||||
<meta name="description" content="{{ meta.description }}" />
|
||||
@@ -23,25 +219,10 @@
|
||||
<p>
|
||||
{{ meta.description }}
|
||||
</p>
|
||||
<p>
|
||||
The content here is just for seo purposes. The actual content will be loaded in a few seconds.
|
||||
</p>
|
||||
<p>
|
||||
Seo checks if a page has more than 300 words. So, here are some more words to make it more than 300 words.
|
||||
Page descriptions are the HTML meta tags that provide a brief summary of a web page.
|
||||
Search engines use meta descriptions to help identify the page's topic - they don't use them to rank the page, but they do use them to determine whether or not to display the page in search results.
|
||||
Meta descriptions are important because they're often the first thing people see when they're deciding which search result to click on.
|
||||
They're also important because they can help improve your click-through rate (CTR) from search results.
|
||||
A good meta description can entice people to click on your page instead of someone else's.
|
||||
</p>
|
||||
<a href="{{ meta.link }}">Know More</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="modals"></div>
|
||||
<div id="popovers"></div>
|
||||
|
||||
<script>
|
||||
window.csrf_token = '{{ csrf_token }}'
|
||||
document.getElementById('seo-content').style.display = 'none';
|
||||
</script>
|
||||
<script type="module" src="/src/main.js"></script>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"name": "frappe-ui-frontend",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"serve": "vite preview",
|
||||
@@ -9,6 +10,10 @@
|
||||
"copy-html-entry": "cp ../lms/public/frontend/index.html ../lms/www/lms.html"
|
||||
},
|
||||
"dependencies": {
|
||||
"@codemirror/lang-html": "^6.4.9",
|
||||
"@codemirror/lang-javascript": "^6.2.4",
|
||||
"@codemirror/lang-json": "^6.0.1",
|
||||
"@codemirror/lang-python": "^6.2.1",
|
||||
"@editorjs/checklist": "^1.6.0",
|
||||
"@editorjs/code": "^2.9.0",
|
||||
"@editorjs/editorjs": "^2.29.0",
|
||||
@@ -19,21 +24,26 @@
|
||||
"@editorjs/paragraph": "^2.11.3",
|
||||
"@editorjs/simple-image": "^1.6.0",
|
||||
"@editorjs/table": "^2.4.2",
|
||||
"@vueuse/router": "^12.7.0",
|
||||
"ace-builds": "^1.36.2",
|
||||
"apexcharts": "^4.3.0",
|
||||
"chart.js": "^4.4.1",
|
||||
"codemirror-editor-vue3": "^2.8.0",
|
||||
"codemirror": "^6.0.1",
|
||||
"dayjs": "^1.11.6",
|
||||
"feather-icons": "^4.28.0",
|
||||
"frappe-ui": "^0.1.89",
|
||||
"frappe-ui": "0.1.173",
|
||||
"highlight.js": "^11.11.1",
|
||||
"lucide-vue-next": "^0.383.0",
|
||||
"markdown-it": "^14.0.0",
|
||||
"pinia": "^2.0.33",
|
||||
"plyr": "^3.7.8",
|
||||
"socket.io-client": "^4.7.2",
|
||||
"tailwindcss": "^3.3.3",
|
||||
"tailwindcss": "3.4.15",
|
||||
"thememirror": "^2.0.1",
|
||||
"typescript": "^5.7.2",
|
||||
"vue": "^3.4.23",
|
||||
"vue-chartjs": "^5.3.0",
|
||||
"vue-codemirror": "^6.1.1",
|
||||
"vue-draggable-next": "^2.2.1",
|
||||
"vue-router": "^4.0.12",
|
||||
"vue3-apexcharts": "^1.8.0",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
module.exports = {
|
||||
export default {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<svg width="80" height="79" viewBox="0 0 80 79" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M57.1285 0.580383H22.8514C10.2309 0.580383 0 10.5649 0 22.8815V56.3332C0 68.6497 10.2309 78.6343 22.8514 78.6343H57.1285C69.749 78.6343 79.9799 68.6497 79.9799 56.3332V22.8815C79.9799 10.5649 69.749 0.580383 57.1285 0.580383Z" fill="#0E7159"/>
|
||||
<path d="M62.8434 23.6906L60.7869 23.1052C53.6744 21.0702 45.9048 22.4641 39.992 26.8128C35.8502 23.7742 30.7943 22.1854 25.7099 22.2133H17.1406V27.8163H25.7099C29.6232 27.8163 33.508 29.015 36.6787 31.3845L39.992 33.8377L43.3056 31.3845C47.2475 28.4575 52.3032 27.2588 57.1306 28.0393V50.647C51.1035 49.9223 44.9051 51.4834 39.992 55.0795C35.8502 52.0688 30.8515 50.4798 25.7671 50.4798C24.7959 50.4798 23.8247 50.5355 22.8535 50.647V35.0642H17.1406V57.0588H62.8434V23.7185V23.6906Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 856 B |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 12 KiB |
@@ -1,38 +1,58 @@
|
||||
<template>
|
||||
<Layout>
|
||||
<router-view />
|
||||
</Layout>
|
||||
<Dialogs />
|
||||
<Toasts />
|
||||
<FrappeUIProvider>
|
||||
<Layout>
|
||||
<div class="text-base">
|
||||
<router-view />
|
||||
</div>
|
||||
</Layout>
|
||||
<InstallPrompt v-if="isMobile" />
|
||||
<Dialogs />
|
||||
</FrappeUIProvider>
|
||||
</template>
|
||||
<script setup>
|
||||
import { Toasts } from 'frappe-ui'
|
||||
import { FrappeUIProvider } from 'frappe-ui'
|
||||
import { Dialogs } from '@/utils/dialogs'
|
||||
import { computed, onMounted, onUnmounted } from 'vue'
|
||||
import { computed, onUnmounted, ref, watch } from 'vue'
|
||||
import { useScreenSize } from './utils/composables'
|
||||
import { usersStore } from '@/stores/user'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { posthogSettings } from '@/telemetry'
|
||||
import DesktopLayout from './components/DesktopLayout.vue'
|
||||
import MobileLayout from './components/MobileLayout.vue'
|
||||
import { stopSession } from '@/telemetry'
|
||||
import { init as initTelemetry } from '@/telemetry'
|
||||
import { usersStore } from '@/stores/user'
|
||||
import NoSidebarLayout from './components/NoSidebarLayout.vue'
|
||||
import InstallPrompt from './components/InstallPrompt.vue'
|
||||
|
||||
const screenSize = useScreenSize()
|
||||
let { userResource } = usersStore()
|
||||
const { isMobile } = useScreenSize()
|
||||
const router = useRouter()
|
||||
const noSidebar = ref(false)
|
||||
const { userResource } = usersStore()
|
||||
|
||||
const Layout = computed(() => {
|
||||
if (screenSize.width < 640) {
|
||||
return MobileLayout
|
||||
router.beforeEach((to, from, next) => {
|
||||
if (to.query.fromLesson || to.path === '/persona') {
|
||||
noSidebar.value = true
|
||||
} else {
|
||||
return DesktopLayout
|
||||
noSidebar.value = false
|
||||
}
|
||||
next()
|
||||
})
|
||||
|
||||
onMounted(async () => {
|
||||
if (!userResource.data) return
|
||||
await initTelemetry()
|
||||
const Layout = computed(() => {
|
||||
if (noSidebar.value) {
|
||||
return NoSidebarLayout
|
||||
}
|
||||
if (isMobile.value) {
|
||||
return MobileLayout
|
||||
}
|
||||
return DesktopLayout
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
stopSession()
|
||||
noSidebar.value = false
|
||||
})
|
||||
|
||||
watch(userResource, () => {
|
||||
if (userResource.data) {
|
||||
posthogSettings.reload()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||