Compare commits
841 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4b317c02c7 | |||
| d0046b6e29 | |||
| 490023ba4e | |||
| 61752fa8d1 | |||
| f95da8ba59 | |||
| e71c7ee635 | |||
| eca060bf0e | |||
| d6fd22802d | |||
| 342be99149 | |||
| 174f5000d6 | |||
| cbaf93ff92 | |||
| f63c9a24eb | |||
| a8d7f1feae | |||
| 40c6927b59 | |||
| 1751340164 | |||
| a551bfc9ff | |||
| 9f8d3595b5 | |||
| aa6aef485e | |||
| e8ac55a884 | |||
| d3498153c3 | |||
| d6c3b9488e | |||
| 46cdb7b406 | |||
| 9c9597e582 | |||
| a6466b1c7c | |||
| 10944464c1 | |||
| 3451bb4ebf | |||
| a321be15df | |||
| b7c8691d80 | |||
| 30c56d2572 | |||
| 12bef4124b | |||
| d525369cd3 | |||
| 6dd8a1d2c6 | |||
| 2fde0d0944 | |||
| 23bfe083a1 | |||
| d5cbfa4f44 | |||
| 9ff9082c13 | |||
| 479ad26a98 | |||
| 1a26b20538 | |||
| 9490e792e6 | |||
| 86eab2ee6c | |||
| 0a90454729 | |||
| 4fd16c5411 | |||
| 38258fe246 | |||
| 51b53abf9f | |||
| 1a8636eb9c | |||
| 507a0450db | |||
| 750e4c4f8f | |||
| b127ad449d | |||
| 36cd58c4f5 | |||
| eecc31aa61 | |||
| 33ba6b0b34 | |||
| 0907b4119a | |||
| 1d2f444128 | |||
| 13f3fb94e8 | |||
| d33678b0cb | |||
| 9083833b37 | |||
| ce382aec63 | |||
| 7e0f855caf | |||
| 0e97712ad3 | |||
| 2d1d8465e8 | |||
| 6cb839b6e9 | |||
| 73e4b55ff3 | |||
| 44b71248b6 | |||
| 6678d69dc8 | |||
| c0f1a6be4a | |||
| 4e54e8b36d | |||
| cd6443a19f | |||
| 692c8abfd7 | |||
| f9eea901fe | |||
| 2c937e06d7 | |||
| 7665297472 | |||
| e1d6e63083 | |||
| 23a3e4f2cb | |||
| 76453f9cf0 | |||
| 6415a547a1 | |||
| 30173ec329 | |||
| f53ffe98cf | |||
| 90e5d5f84e | |||
| 0423090771 | |||
| 1445a12e9e | |||
| 90ae95c73a | |||
| 0956363410 | |||
| da504295fe | |||
| fa7189c40d | |||
| ee1d996c65 | |||
| 616bc08431 | |||
| 4d0823eefc | |||
| b8010ce35d | |||
| 31d60bced3 | |||
| 19bab68d89 | |||
| 7d6069f972 | |||
| b658cc6c07 | |||
| 81827e7570 | |||
| 636ee554b6 | |||
| b2d676dda5 | |||
| 17dfdcc645 | |||
| e6f01380f7 | |||
| 43ac018f88 | |||
| 630c3cb682 | |||
| dd213f4627 | |||
| f52d722ff2 | |||
| c8554cc514 | |||
| da299e0a7a | |||
| f42b69d72f | |||
| 02e9483c86 | |||
| bf933c77a1 | |||
| 8e67854fc9 | |||
| 76e4fe79d2 | |||
| 2613eb6b5d | |||
| 26e0aadf9c | |||
| 108bb4101f | |||
| 34afce769c | |||
| b8550d77d1 | |||
| a1f0dd2c69 | |||
| 75ceeed38b | |||
| 02f40f2150 | |||
| 79b6f39e3d | |||
| 01e2e914bd | |||
| 656daff629 | |||
| 1c24936ae2 | |||
| 2a7c9ee9d2 | |||
| 2db617bf17 | |||
| 333900d5aa | |||
| 7d06d67661 | |||
| 3c4e64710a | |||
| 5e7963dfb1 | |||
| 7d8ab0a6c1 | |||
| 2fbcbe9b83 | |||
| 660a109221 | |||
| 6251b3491c | |||
| c6e62f5e4c | |||
| 6325cf6ecb | |||
| 20f9f43de7 | |||
| 168881df44 | |||
| 3569bbe637 | |||
| a6b8c5231c | |||
| d446eecd5e | |||
| d63cd30797 | |||
| db964d32cf | |||
| 0049f6f91f | |||
| 57a1b9038e | |||
| 96e0b81fcb | |||
| d9d0a6e7d6 | |||
| 604ba1d0f7 | |||
| cc03251c8f | |||
| 201557cf13 | |||
| 248e7a0692 | |||
| 49ecd7764b | |||
| 29d0b2cd41 | |||
| 38d2124340 | |||
| fb35010c15 | |||
| 3b59d5737a | |||
| 797c2a9c76 | |||
| 6c8a0b2c8d | |||
| d8b14ed47a | |||
| f8ce76c423 | |||
| 2188a756e8 | |||
| 7b3de12a74 | |||
| 03f242a3b0 | |||
| 58ee51fc42 | |||
| f4e94a46cb | |||
| 99a0581140 | |||
| 3ad4531a4f | |||
| 34fd7e3df4 | |||
| 3b5d5a2b32 | |||
| c262430639 | |||
| 4e2200a1e1 | |||
| 88e8eeb6c0 | |||
| e8037e41b8 | |||
| 5c22a635b7 | |||
| a1c44d6fea | |||
| 1c3fc3ac76 | |||
| 37800413f6 | |||
| 3398e193db | |||
| bbf440d969 | |||
| e4289cf629 | |||
| 491acebc80 | |||
| cac44b2eac | |||
| d0ab685744 | |||
| c9b7820e31 | |||
| 9fc995498f | |||
| 8c2575aae2 | |||
| 502a479eb6 | |||
| bff951375a | |||
| 1c91daa8ab | |||
| 8fb52b2de4 | |||
| ecc6c8d491 | |||
| 78ea86c583 | |||
| b27180a613 | |||
| 6e2b9896de | |||
| 45f5c9ceb2 | |||
| 8930725a87 | |||
| 399c1f9a2c | |||
| e75dcf51c7 | |||
| 4369dfe43f | |||
| af219650ac | |||
| 86335c6188 | |||
| e91062b179 | |||
| 8ca8a587bc | |||
| c62f1ab0ac | |||
| 17f821219a | |||
| 05207d3714 | |||
| 3b30bb23d7 | |||
| c34f4c8298 | |||
| cbb23154e8 | |||
| fea2a4a200 | |||
| 381fe4d7ef | |||
| fdffb3462e | |||
| 8e0fcd4454 | |||
| cb3c3770d8 | |||
| c76be96314 | |||
| 73ab147f25 | |||
| 9159662fa9 | |||
| 7deebc926b | |||
| d09e887945 | |||
| 495f0d4b3c | |||
| 429f07d142 | |||
| fefc476462 | |||
| 8c48881c4e | |||
| 99113a78f0 | |||
| c239ca0d25 | |||
| 4d46567dc0 | |||
| 6c1e68acd8 | |||
| 2ae4675c49 | |||
| efd3308711 | |||
| f3c58fa794 | |||
| dd29c71644 | |||
| bc10e8a63e | |||
| 67e23bced6 | |||
| ca1bfbeb2a | |||
| 9169116cfa | |||
| 30c9a711e2 | |||
| 37b52e33ab | |||
| 46b9ce5389 | |||
| dcd5f71b7a | |||
| 5859bf0ec0 | |||
| 200ed0c469 | |||
| db8e19dba2 | |||
| 254b29fc21 | |||
| 4b203280d2 | |||
| 88dc61c200 | |||
| 14daec98be | |||
| 57d94580e9 | |||
| 6fbdf74c3e | |||
| 6b0c35b20b | |||
| a0dc41c0ab | |||
| c2f3bcbaf0 | |||
| 6e4bb45809 | |||
| 8e3bd98264 | |||
| 2ad4af1651 | |||
| 2d291f621f | |||
| 87547f8e0d | |||
| 5b18f2fc0e | |||
| 2fe849df9a | |||
| 67ee9ae797 | |||
| 6a4221732d | |||
| 810e718eb8 | |||
| 3b95440e92 | |||
| 38eeddfc92 | |||
| 528f870e09 | |||
| 2309432310 | |||
| 9728192dc8 | |||
| c767ac3f16 | |||
| bd7d04cb44 | |||
| a9470181d5 | |||
| b37e25a9da | |||
| 267f1d1654 | |||
| 52a6a3dc5d | |||
| 9f507ed642 | |||
| 17a4cca5b7 | |||
| cdb9b9b0f9 | |||
| d939619db3 | |||
| 6ae1324673 | |||
| c89f231787 | |||
| 2b2004b1a2 | |||
| 5e29f7d324 | |||
| 7d7b7e6e63 | |||
| 97d1b07445 | |||
| 0916bff81d | |||
| f773b91365 | |||
| f8ba6c77c8 | |||
| 36491371c8 | |||
| 2a41ff9204 | |||
| 52226e6a71 | |||
| c14206e3f8 | |||
| 54a1239680 | |||
| eb017b2666 | |||
| 3244d23bcf | |||
| 918b1b77a2 | |||
| 16a3502cf1 | |||
| b2cfa01e57 | |||
| 79558c26a0 | |||
| 2634eb33f1 | |||
| 9d2495c63f | |||
| ba11ab92c7 | |||
| 133279714b | |||
| 2fa95cdebc | |||
| 0cc1f6e70a | |||
| db51ffc553 | |||
| 5c5a8a0eba | |||
| 7bc153a87a | |||
| f535b57896 | |||
| cbe97b5df2 | |||
| c818115a4f | |||
| ec1c769da3 | |||
| 2177001152 | |||
| a46a1eed6e | |||
| 3a2603e1fe | |||
| 126ab4ee11 | |||
| b585e960e7 | |||
| c60c76d03b | |||
| 6d1e2dc8c0 | |||
| 4bf8a93fbd | |||
| fc9e3c63f6 | |||
| 87e0a1f85c | |||
| 6d70b64fab | |||
| 9d33ed376d | |||
| 07377ed431 | |||
| 24fa167898 | |||
| 804eee87c9 | |||
| d01854fd75 | |||
| 2dedc3aa57 | |||
| b722f8bba3 | |||
| 4a67257c42 | |||
| 8dd61163bc | |||
| 0d36205083 | |||
| f13ce01499 | |||
| d4c58027e0 | |||
| dbb2457d81 | |||
| 1ed103f650 | |||
| b46c7fe872 | |||
| 0fb1d3421f | |||
| 42b0fa0c9f | |||
| dc748f3ced | |||
| a902e5048a | |||
| 72e6d915d4 | |||
| 93430ec17e | |||
| 6857e87a82 | |||
| c20653cedc | |||
| 7bc3edae0a | |||
| f155826dc2 | |||
| d6f2fe6a6b | |||
| 9532859e4d | |||
| 61c569c76a | |||
| 919c0b6248 | |||
| 9a4f2f1318 | |||
| c459a5cec2 | |||
| a7b01ae74d | |||
| 102a0415d4 | |||
| 3a2f662a0f | |||
| 73ac5c68a6 | |||
| 511a806f4e | |||
| bcb85ea79b | |||
| 4dfc560419 | |||
| 66773ac96b | |||
| f7b64993b8 | |||
| fb83481936 | |||
| a987f9f4cf | |||
| 9e5983c569 | |||
| 2a0a4ad0df | |||
| a3862c43da | |||
| b9abc8002b | |||
| 0c10c4a15d | |||
| f60a74e75f | |||
| b94272b8a3 | |||
| 8f846006d3 | |||
| 5cabb73337 | |||
| c32b267a36 | |||
| ef51a42522 | |||
| c421103ed5 | |||
| 1eae41e033 | |||
| 60173be25e | |||
| 87ef930587 | |||
| 65de4a0522 | |||
| 4df9a9aa65 | |||
| d80b2cdc42 | |||
| 8e3eff5549 | |||
| ee1a3ea0d8 | |||
| 6d3349c85e | |||
| 6ae9af16f9 | |||
| 6a7efa3a47 | |||
| 49e86ed779 | |||
| f8374faa08 | |||
| 31d565131c | |||
| 5ce718f0b1 | |||
| 84ad37ac9a | |||
| 498bb50597 | |||
| 26cb6ba08c | |||
| 3e3ed0784a | |||
| e51a569e03 | |||
| ae89676af4 | |||
| 07a5914dc4 | |||
| 2f4cf6a585 | |||
| 38d702e3f8 | |||
| a1e1456bdb | |||
| b52d765dbf | |||
| 4f75a9cf1c | |||
| 4797f9d7db | |||
| 62f01a1239 | |||
| 96e42ebff1 | |||
| fee313e256 | |||
| 437a79e2f9 | |||
| 2a26336080 | |||
| 761c7e9a51 | |||
| ba7797e6a1 | |||
| 7992953f1c | |||
| 4f99dcf699 | |||
| 850cde6ed4 | |||
| 8e5bc02e92 | |||
| 433cb9f01d | |||
| 41fa7ec791 | |||
| 908c8fdc71 | |||
| fa894beb5c | |||
| b06432fef0 | |||
| a498876aa6 | |||
| 90acda6c06 | |||
| 663c30ede0 | |||
| 5e06b068ce | |||
| c72e3ca442 | |||
| 9700b84a62 | |||
| 87f70d643e | |||
| f01e568046 | |||
| 96983c2ad0 | |||
| cf51be0fa8 | |||
| 07b1e677a6 | |||
| 592656c699 | |||
| 1fead354b2 | |||
| 52d1797b30 | |||
| 1171a5a2e0 | |||
| 112f9f055b | |||
| b6e664c445 | |||
| f5b1f598ea | |||
| 1099960e55 | |||
| d6878f5551 | |||
| be534fecf4 | |||
| 61c89874cd | |||
| fb33c01a8f | |||
| 715648e79d | |||
| 2d876c2bf5 | |||
| 3903977166 | |||
| fe2ef4bcc4 | |||
| 28d8ed9726 | |||
| d7528a9b9f | |||
| 1d956b1faf | |||
| 5efbf25c2a | |||
| d8a55da9b6 | |||
| ca7699c8bd | |||
| 5572e1dc11 | |||
| 43146a68cf | |||
| 89191a9c1f | |||
| 68229009ac | |||
| 22394d5855 | |||
| ae2615e74d | |||
| 939bc3e71c | |||
| 7e556475f8 | |||
| a74ece336d | |||
| aa16518f66 | |||
| 56a0b7a71a | |||
| af23fa9863 | |||
| ac77c2f98c | |||
| fef186e7dc | |||
| c062322d0f | |||
| 03907da05b | |||
| bea81bcc69 | |||
| 76db8c0506 | |||
| f637118008 | |||
| e65ff413e2 | |||
| 4e2ff14cda | |||
| 5d7aa761bc | |||
| 86a1a7ea53 | |||
| 380a402699 | |||
| 7a5c4fd092 | |||
| fe9a9c3264 | |||
| 30b00f4bc1 | |||
| 1d38e244fd | |||
| b3d87def99 | |||
| 1914353c49 | |||
| d45bddc035 | |||
| d33b215b21 | |||
| 64cb67c6d7 | |||
| 9620f0df98 | |||
| a7017167bc | |||
| 1fb9a5126f | |||
| 514e47f57e | |||
| 49b4d8e3f0 | |||
| 07fb6a0d57 | |||
| 301b0f1b77 | |||
| 8c07eddc65 | |||
| 1d5c9d84fd | |||
| 76bb5a4ba7 | |||
| 7252d09dd2 | |||
| 33afa9a253 | |||
| 2d5f97ef2e | |||
| 4b50145617 | |||
| 1fa76e53dc | |||
| 243b7d82d4 | |||
| ec80dd5e3a | |||
| d3a663469a | |||
| 1b39f46cc2 | |||
| 07c3f08e66 | |||
| e35303f702 | |||
| 68960db77e | |||
| 03e5982026 | |||
| 9046c65af5 | |||
| f3620b7c03 | |||
| 7b95d031a1 | |||
| 78520cdfc7 | |||
| 1ef101c439 | |||
| a1401f686a | |||
| 5eded27fa3 | |||
| 7c9b34a416 | |||
| 6e3acd3111 | |||
| aed15ef72b | |||
| 5353bcc246 | |||
| 2e5fcf4d56 | |||
| 4dac837046 | |||
| 512571c54f | |||
| 0fa0e92883 | |||
| 8e80aa3630 | |||
| 15e0fc6b7f | |||
| 6d667c02fc | |||
| 8e512bdfdf | |||
| a5b75d348f | |||
| ae2ab015d9 | |||
| a8c3d51a49 | |||
| f9c9cceb30 | |||
| acff4fc4fa | |||
| deeb1cfd50 | |||
| 955eff8d87 | |||
| 1b4d2e851d | |||
| 1c49784f7f | |||
| 9a25f7b849 | |||
| 71cdd17df4 | |||
| 3891a4cef9 | |||
| 0017753ec5 | |||
| a4ef49c2be | |||
| 621d18f77d | |||
| 0c5bd4e578 | |||
| 54768402b6 | |||
| 7316d6f850 | |||
| daf5d47821 | |||
| c872042616 | |||
| 0cf6e5693a | |||
| 9ac29cd122 | |||
| 55e4e054d6 | |||
| 3cbe6b2d8b | |||
| 087b21c913 | |||
| 09765ea27c | |||
| 189d251c6a | |||
| 07fb230cbe | |||
| faad2d0d69 | |||
| c7d8cd9679 | |||
| 6c53253ad6 | |||
| 2018e94b41 | |||
| e044260bc1 | |||
| 12f5b5ce61 | |||
| 210ae9e5f7 | |||
| f164f43590 | |||
| 9a25c39c36 | |||
| 397dc3dcde | |||
| 8c235de826 | |||
| e7734d0c46 | |||
| 1a638cd3a8 | |||
| 890b7702ef | |||
| a4018ad4d7 | |||
| c6dc7993b6 | |||
| 7b8f64d20f | |||
| cb12cf8324 | |||
| 3bd0141e6d | |||
| 89546bf90c | |||
| c960cfcd55 | |||
| a99676a73e | |||
| 8fa5f35e4f | |||
| c4b40af602 | |||
| 1c3ced26c1 | |||
| 33520c2985 | |||
| 365c77c52c | |||
| 0eb32bfc93 | |||
| ae98c50b16 | |||
| c528fbb9bb | |||
| 0e4d45a56d | |||
| a55a92752a | |||
| df39e681b5 | |||
| 2ed0d6e1dc | |||
| 34fda272d6 | |||
| 412f0962e7 | |||
| 74e475cf2d | |||
| 1291f36709 | |||
| 1284179589 | |||
| 75fd96878a | |||
| f6dac667fd | |||
| 197914480e | |||
| 3a6181620a | |||
| 41aef94c24 | |||
| 0e3e3d15a1 | |||
| 6573fdc717 | |||
| 0e2c3dc89e | |||
| 34c8fd5149 | |||
| 55332fe1bb | |||
| 57339b725e | |||
| c8d63e3c79 | |||
| 7a1992a170 | |||
| 752a316a52 | |||
| 408aed3175 | |||
| 1282c33db4 | |||
| 256e53ba68 | |||
| 2020f35c6a | |||
| cc495ed6d8 | |||
| f2911e76bc | |||
| 726350ea97 | |||
| 9a53d50e16 | |||
| bc767f1899 | |||
| 35b1f40ba4 | |||
| a23e8833c3 | |||
| 8875bae0c3 | |||
| 144977352d | |||
| 35da6f25b1 | |||
| c43ec33ecb | |||
| 08561da5b6 | |||
| d6fe8f213d | |||
| dd8c1f7759 | |||
| 7ff26af107 | |||
| 44fedae69f | |||
| ffb91cdd66 | |||
| 1dfb757593 | |||
| c0047b9079 | |||
| 0d5c82cd2a | |||
| e3c7386be4 | |||
| 5db33b47c2 | |||
| 6c26143516 | |||
| 9c605c3fd1 | |||
| 0639634782 | |||
| 7d5b8e85ac | |||
| c99b667021 | |||
| c08c22aa54 | |||
| cbd216414a | |||
| 5428086204 | |||
| b38a1adf2d | |||
| a5978ad544 | |||
| b24e6f11ba | |||
| d642480c55 | |||
| 556ea61f8e | |||
| 3bcd10a97c | |||
| 54a3038dc0 | |||
| a6ece109ba | |||
| 4c008a8f92 | |||
| 2030037301 | |||
| 794ed99927 | |||
| 65c7746504 | |||
| faa51bd002 | |||
| d9f10e2c26 | |||
| 8d92aaf3b7 | |||
| 9894145f8d | |||
| deba972093 | |||
| 41dc1fee68 | |||
| 72ea678c0e | |||
| ff49824312 | |||
| bb3d39f728 | |||
| a7f1269f92 | |||
| 7ae0e38c4f | |||
| b626e514f7 | |||
| 3e8beddfe3 | |||
| 18d515450a | |||
| 969bcb3ced | |||
| 1d255ebf70 | |||
| 9aae21db79 | |||
| 536117da2a | |||
| 29054c27c9 | |||
| 207bf4bffe | |||
| 4e11814a0c | |||
| 32667f8c38 | |||
| 1c06bec262 | |||
| a82965edf2 | |||
| 76f12567be | |||
| d7cbf45d15 | |||
| 05a2f31352 | |||
| 811d649262 | |||
| 6e32fc1db7 | |||
| e718a728c4 | |||
| a065ae5db2 | |||
| 623db8549e | |||
| 16ef7c62dc | |||
| 0978ebd195 | |||
| 1ddfefed3f | |||
| 16b62c697f | |||
| f70b1c1b0d | |||
| b400c29944 | |||
| 86d8b831f2 | |||
| 5fbb8b374d | |||
| 0a3e87c890 | |||
| 2220802cdd | |||
| 0ff7aa4436 | |||
| 5e817584db | |||
| fbcb4b2673 | |||
| edae196f34 | |||
| 11dcc29c0c | |||
| d068325bdb | |||
| 6dc66e14fb | |||
| 30d5c70180 | |||
| e9c3caeb9b | |||
| 9a0344f1d5 | |||
| 33b27362ff | |||
| 15c50017cc | |||
| c43e33cdf5 | |||
| ef1481c7bb | |||
| 892d85556b | |||
| 5fb891e20a | |||
| c241985f04 | |||
| 9a4fe09979 | |||
| e26cdc4cdd | |||
| 317b00988a | |||
| 9159d55639 | |||
| 06ab314c15 | |||
| f26a4e0b80 | |||
| 2c3d66c776 | |||
| aef66e06b3 | |||
| 67a84ad487 | |||
| 440148aa1f | |||
| b35148bbb6 | |||
| 5ef8762886 | |||
| b52666567a | |||
| 1e580bf04b | |||
| 2a5599b3e0 | |||
| f82799cf7d | |||
| e6d286b449 | |||
| dc3a7e09af | |||
| 5add001373 | |||
| 5317e7071e | |||
| f5592cc88e | |||
| 09f11c2679 | |||
| db48f5302a | |||
| 4cd4bbd489 | |||
| 7b42c20180 | |||
| 835df6c177 | |||
| 5268aadb62 | |||
| d7dccfb648 | |||
| cc204a608a | |||
| 22c8194cc8 | |||
| 8231f657d9 | |||
| 4f9f5a41b1 | |||
| 5944ee6ebe | |||
| e1b6574ce7 | |||
| c16860e648 | |||
| d4a492d321 | |||
| a004266b7c | |||
| da96d1adb0 | |||
| ed39e47c9d | |||
| b9213cf451 | |||
| f308b0e321 | |||
| eeebf21fce | |||
| 75d944f96a | |||
| 9bfdfdf071 | |||
| 2bb22d3aab | |||
| 4742d0eb94 | |||
| c901709d53 | |||
| 84bc4c175a | |||
| 4d50a21eb4 | |||
| 37971133f1 | |||
| c962f9db47 | |||
| 6333036a1a | |||
| 73758c1f78 | |||
| 7e9e94d8d7 | |||
| 07d0245336 | |||
| 0bbac66ec5 | |||
| 4411de0dbf | |||
| 871bbbba8a | |||
| 4384cf70da | |||
| e0cf61dfc8 | |||
| 2387fbd9dd | |||
| 0b6b5e807c | |||
| b2b78228d6 | |||
| 2e5829445f | |||
| e63a12a481 | |||
| 56302ff9cf | |||
| 707de3e644 | |||
| 19a65f6c3f | |||
| 011ab3a11c | |||
| ad62d89f2b | |||
| 9b84c50f15 | |||
| 01ffa519d5 | |||
| fe73b5919d | |||
| 5ad7eb080e | |||
| 2ce8329503 | |||
| 83e5383912 | |||
| 660d204cbf | |||
| d091db4bc7 | |||
| d61e820285 | |||
| 85613cc66c | |||
| 0fb9cc3c25 | |||
| 76e5ffaa92 | |||
| 9a26b1e0a6 | |||
| bfd69dc8e0 | |||
| 0d075df15e | |||
| c82f43ee55 | |||
| 0eaf141528 | |||
| ee0dab1b13 | |||
| 98ee292c93 | |||
| 4ff5658475 | |||
| 7de540b8ee | |||
| 9a41453254 | |||
| 707b319157 | |||
| f7911412e0 | |||
| 1cb3872df0 | |||
| 432fb55d91 | |||
| 98c5d10bb5 | |||
| 84a2be1aad | |||
| 9e383db75b | |||
| c12b30f7a2 | |||
| 5bf111e75f | |||
| f42d98edab | |||
| d392aa81c7 | |||
| 532e5463db | |||
| cfea3ce2d7 | |||
| 2c76ee1c8b | |||
| 9a2c1cbcc3 | |||
| e6616ed758 | |||
| b51b41468d | |||
| 6f86802a48 | |||
| 0c6c175d62 | |||
| 885b81ba23 | |||
| fc86815a2c | |||
| 6ca2abc108 | |||
| 0fe2f81a0c | |||
| 2cd52e52c8 | |||
| d06fec658c | |||
| 049329588f | |||
| 09d3b9ef26 | |||
| 92ce2bf89b | |||
| ca93f6e1de | |||
| d166471a46 | |||
| 896c56996e | |||
| 6017ca5ddd | |||
| eedc1e76db | |||
| 510cbc4ff9 | |||
| 9b9497bedf | |||
| 8846edd919 | |||
| 253f7ec932 | |||
| 8bafcd1414 | |||
| 40bb805b83 | |||
| 00030a6c24 | |||
| 2afece459a |
@@ -1,11 +0,0 @@
|
||||
codecov:
|
||||
branch: master
|
||||
|
||||
coverage:
|
||||
precision: 2
|
||||
round: down
|
||||
range: "70...100"
|
||||
|
||||
comment:
|
||||
layout: "header, diff, changes, uncovered, tree"
|
||||
behavior: default
|
||||
-518
@@ -1,518 +0,0 @@
|
||||
clone:
|
||||
git:
|
||||
image: plugins/git
|
||||
depth: 1
|
||||
|
||||
pipeline:
|
||||
jsunit:
|
||||
image: nextcloudci/jsunit:jsunit-5
|
||||
commands:
|
||||
- ./autotest-js.sh
|
||||
- curl -o codecov.sh https://codecov.io/bash
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5; fi"
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5; fi"
|
||||
when:
|
||||
matrix:
|
||||
TESTS: jsunit
|
||||
check-autoloader:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- bash ./build/autoloaderchecker.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: check-autoloader
|
||||
app-check-code:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- ./occ app:check-code admin_audit
|
||||
- ./occ app:check-code comments
|
||||
- ./occ app:check-code federation
|
||||
- ./occ app:check-code sharebymail
|
||||
- ./occ app:check-code systemtags
|
||||
- ./occ app:check-code theming
|
||||
- ./occ app:check-code workflowengine
|
||||
when:
|
||||
matrix:
|
||||
TESTS: app-check-code
|
||||
signed-off-check:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- php ./build/signed-off-checker.php
|
||||
when:
|
||||
matrix:
|
||||
TESTS: signed-off-check
|
||||
htaccess-checker:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- php ./build/htaccess-checker.php
|
||||
when:
|
||||
matrix:
|
||||
TESTS: htaccess-checker
|
||||
files-check:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- php ./build/files-checker.php
|
||||
when:
|
||||
matrix:
|
||||
TESTS: files-check
|
||||
syntax-php5.6:
|
||||
image: nextcloudci/php5.6:php5.6-7
|
||||
commands:
|
||||
- composer install
|
||||
- ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
|
||||
when:
|
||||
matrix:
|
||||
TESTS: syntax-php5.6
|
||||
syntax-php7.0:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- composer install
|
||||
- ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
|
||||
when:
|
||||
matrix:
|
||||
TESTS: syntax-php7.0
|
||||
syntax-php7.1:
|
||||
image: nextcloudci/php7.1:php7.1-11
|
||||
commands:
|
||||
- composer install
|
||||
- ./lib/composer/bin/parallel-lint --exclude lib/composer/jakub-onderka/ --exclude 3rdparty/symfony/polyfill-php70/Resources/stubs/ --exclude 3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/ --exclude 3rdparty/paragonie/random_compat/lib/ --exclude lib/composer/composer/autoload_static.php --exclude 3rdparty/composer/autoload_static.php .
|
||||
when:
|
||||
matrix:
|
||||
TESTS: syntax-php7.1
|
||||
litmus-v1:
|
||||
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/litmus-v1/script.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: litmus-v1
|
||||
litmus-v2:
|
||||
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/litmus-v2/script.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: litmus-v2
|
||||
caldavtester-new-endpoint:
|
||||
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/caldav/install.sh
|
||||
- bash apps/dav/tests/travis/caldav/script-new-endpoint.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: caldavtester-new-endpoint
|
||||
caldavtester-old-endpoint:
|
||||
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/caldav/install.sh
|
||||
- bash apps/dav/tests/travis/caldav/script-old-endpoint.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: caldavtester-old-endpoint
|
||||
carddavtester-new-endpoint:
|
||||
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/carddav/install.sh
|
||||
- bash apps/dav/tests/travis/carddav/script-new-endpoint.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: carddavtester-new-endpoint
|
||||
carddavtester-old-endpoint:
|
||||
image: nextcloudci/litmus-php7.0:litmus-php7.0-4
|
||||
commands:
|
||||
- bash tests/travis/install.sh sqlite
|
||||
- bash apps/dav/tests/travis/carddav/install.sh
|
||||
- bash apps/dav/tests/travis/carddav/script-old-endpoint.sh
|
||||
when:
|
||||
matrix:
|
||||
TESTS: carddavtester-old-endpoint
|
||||
nodb-php5.6:
|
||||
image: nextcloudci/php5.6:php5.6-7
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
|
||||
when:
|
||||
matrix:
|
||||
DB: NODB
|
||||
PHP: 5.6
|
||||
nodb-php7.0:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
|
||||
when:
|
||||
matrix:
|
||||
DB: NODB
|
||||
PHP: "7.0"
|
||||
nodb-php7.1:
|
||||
image: nextcloudci/php7.1:php7.1-11
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=NODB ./autotest.sh sqlite
|
||||
when:
|
||||
matrix:
|
||||
DB: NODB
|
||||
PHP: 7.1
|
||||
sqlite-php5.6:
|
||||
image: nextcloudci/php5.6:php5.6-7
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
|
||||
when:
|
||||
matrix:
|
||||
DB: sqlite
|
||||
PHP: 5.6
|
||||
sqlite-php7.0:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
|
||||
when:
|
||||
matrix:
|
||||
DB: sqlite
|
||||
PHP: "7.0"
|
||||
sqlite-php7.1:
|
||||
image: nextcloudci/php7.1:php7.1-11
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh sqlite
|
||||
when:
|
||||
matrix:
|
||||
DB: sqlite
|
||||
PHP: 7.1
|
||||
mysql-php5.6:
|
||||
image: nextcloudci/php5.6:php5.6-7
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysql
|
||||
when:
|
||||
matrix:
|
||||
DB: mysql
|
||||
PHP: 5.6
|
||||
postgres-php5.6:
|
||||
image: nextcloudci/php5.6:php5.6-7
|
||||
commands:
|
||||
- sleep 10 # gives the database enough time to initialize
|
||||
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh pgsql
|
||||
when:
|
||||
matrix:
|
||||
DB: postgres
|
||||
PHP: 5.6
|
||||
mysqlmb4-php5.6:
|
||||
image: nextcloudci/php5.6:php5.6-7
|
||||
commands:
|
||||
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mysqlmb4
|
||||
when:
|
||||
matrix:
|
||||
DB: mysqlmb4
|
||||
PHP: 5.6
|
||||
integration-capabilities_features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh capabilities_features/capabilities.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-capabilities_features
|
||||
integration-federation_features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh federation_features/federated.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-federation_features
|
||||
integration-auth:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/auth.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-auth
|
||||
integration-carddav:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/carddav.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-carddav
|
||||
integration-dav-v2:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/dav-v2.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-dav-v2
|
||||
integration-ocs-v1:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/ocs-v1.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-ocs-v1
|
||||
integration-sharing-v1:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/sharing-v1.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-sharing-v1
|
||||
integration-checksums-v1:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/checksums.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-checksums
|
||||
integration-external-storage:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/external-storage.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-external-storage
|
||||
integration-provisioning-v1:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/provisioning-v1.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-provisioning-v1
|
||||
integration-tags:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/tags.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-tags
|
||||
integration-caldav:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/caldav.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-caldav
|
||||
integration-comments:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/comments.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-comments
|
||||
integration-favorites:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/favorites.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-favorites
|
||||
integration-provisioning-v2:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/provisioning-v2.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-provisioning-v2
|
||||
integration-webdav-related:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh features/webdav-related.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-webdav-related
|
||||
integration-sharees-features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh sharees_features/sharees.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-sharees-features
|
||||
integration-setup-features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- cd build/integration
|
||||
- ./run.sh setup_features/setup.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-setup-features
|
||||
integration-filesdrop-features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- cd build/integration
|
||||
- ./run.sh filesdrop_features/filesdrop.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-filesdrop-features
|
||||
integration-ldap-features:
|
||||
image: nextcloudci/integration-php7.0:integration-php7.0-3
|
||||
commands:
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
- ./occ app:enable user_ldap
|
||||
- cd build/integration
|
||||
- ./run.sh ldap_features/ldap-ocs.feature
|
||||
when:
|
||||
matrix:
|
||||
TESTS: integration-ldap-features
|
||||
nodb-codecov:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- TEST_SELECTION=NODB ./autotest.sh sqlite
|
||||
- wget https://codecov.io/bash -O codecov.sh
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
|
||||
when:
|
||||
matrix:
|
||||
TESTS: nodb-codecov
|
||||
db-codecov:
|
||||
image: nextcloudci/php7.0:php7.0-7
|
||||
commands:
|
||||
- TEST_SELECTION=QUICKDB ./autotest.sh sqlite
|
||||
- wget https://codecov.io/bash -O codecov.sh
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
|
||||
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 117641e2-a9e8-4b7b-984b-ae872d9b05f5 -f tests/autotest-clover-sqlite.xml; fi"
|
||||
when:
|
||||
matrix:
|
||||
TESTS: db-codecov
|
||||
matrix:
|
||||
include:
|
||||
- TESTS: signed-off-check
|
||||
- TESTS: files-check
|
||||
- TESTS: htaccess-checker
|
||||
- TESTS: nodb-codecov
|
||||
ENABLE_REDIS: true
|
||||
- TESTS: db-codecov
|
||||
ENABLE_REDIS: true
|
||||
- TESTS: integration-capabilities_features
|
||||
- TESTS: integration-federation_features
|
||||
- TESTS: integration-auth
|
||||
- TESTS: integration-carddav
|
||||
- TESTS: integration-dav-v2
|
||||
- TESTS: integration-ocs-v1
|
||||
- TESTS: integration-sharing-v1
|
||||
- TESTS: integration-checksums
|
||||
- TESTS: integration-external-storage
|
||||
- TESTS: integration-provisioning-v1
|
||||
- TESTS: integration-tags
|
||||
- TESTS: integration-caldav
|
||||
- TESTS: integration-comments
|
||||
- TESTS: integration-favorites
|
||||
- TESTS: integration-provisioning-v2
|
||||
- TESTS: integration-webdav-related
|
||||
- TESTS: integration-sharees-features
|
||||
- TESTS: integration-setup-features
|
||||
- TESTS: integration-filesdrop-features
|
||||
- TESTS: integration-ldap-features
|
||||
- TESTS: jsunit
|
||||
- TESTS: check-autoloader
|
||||
- TESTS: app-check-code
|
||||
- TESTS: syntax-php5.6
|
||||
- TESTS: syntax-php7.0
|
||||
- TESTS: syntax-php7.1
|
||||
- TESTS: litmus-v1
|
||||
- TESTS: litmus-v2
|
||||
- TESTS: caldavtester-old-endpoint
|
||||
- TESTS: caldavtester-new-endpoint
|
||||
- TESTS: carddavtester-new-endpoint
|
||||
- TESTS: carddavtester-old-endpoint
|
||||
- DB: NODB
|
||||
PHP: 5.6
|
||||
ENABLE_REDIS: true
|
||||
- DB: NODB
|
||||
PHP: 7.0
|
||||
ENABLE_REDIS: true
|
||||
- DB: NODB
|
||||
PHP: 7.1
|
||||
ENABLE_REDIS: true
|
||||
- DB: sqlite
|
||||
PHP: 5.6
|
||||
ENABLE_REDIS: true
|
||||
- DB: sqlite
|
||||
PHP: 7.0
|
||||
ENABLE_REDIS: true
|
||||
- DB: sqlite
|
||||
PHP: 7.1
|
||||
ENABLE_REDIS: true
|
||||
- DB: mysql
|
||||
PHP: 5.6
|
||||
ENABLE_REDIS: true
|
||||
- DB: postgres
|
||||
PHP: 5.6
|
||||
ENABLE_REDIS: true
|
||||
- DB: mysqlmb4
|
||||
PHP: 5.6
|
||||
ENABLE_REDIS: true
|
||||
|
||||
services:
|
||||
cache:
|
||||
image: redis
|
||||
when:
|
||||
matrix:
|
||||
ENABLE_REDIS: true
|
||||
postgres:
|
||||
image: postgres:9
|
||||
environment:
|
||||
- POSTGRES_USER=oc_autotest
|
||||
- POSTGRES_PASSWORD=owncloud
|
||||
tmpfs:
|
||||
- /var/lib/postgresql/data
|
||||
when:
|
||||
matrix:
|
||||
DB: postgres
|
||||
mysql:
|
||||
image: mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=owncloud
|
||||
- MYSQL_USER=oc_autotest
|
||||
- MYSQL_PASSWORD=owncloud
|
||||
- MYSQL_DATABASE=oc_autotest
|
||||
tmpfs:
|
||||
- /var/lib/mysql
|
||||
when:
|
||||
matrix:
|
||||
DB: mysql
|
||||
mysqlmb4:
|
||||
image: mysql
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=owncloud
|
||||
- MYSQL_USER=oc_autotest
|
||||
- MYSQL_PASSWORD=owncloud
|
||||
- MYSQL_DATABASE=oc_autotest
|
||||
command: [ "--innodb_large_prefix=true", "--innodb_file_format=barracuda", "--innodb_file_per_table=true" ]
|
||||
tmpfs:
|
||||
- /var/lib/mysql
|
||||
when:
|
||||
matrix:
|
||||
DB: mysqlmb4
|
||||
|
||||
branches: [ master, stable* ]
|
||||
+15
-64
@@ -1,49 +1,30 @@
|
||||
# the default generated dir + db file
|
||||
/data
|
||||
/owncloud
|
||||
/config/config.php
|
||||
/config/*.config.php
|
||||
/config/mimetype*.json
|
||||
/config/mount.php
|
||||
/apps/inc.php
|
||||
/assets
|
||||
/.htaccess
|
||||
data
|
||||
owncloud
|
||||
config/config.php
|
||||
config/mount.php
|
||||
apps/inc.php
|
||||
3rdparty
|
||||
|
||||
# ignore all apps except core ones
|
||||
/apps*/*
|
||||
!/apps/comments
|
||||
!/apps/dav
|
||||
/apps*
|
||||
!/apps/files
|
||||
!/apps/federation
|
||||
!/apps/federatedfilesharing
|
||||
!/apps/sharebymail
|
||||
!/apps/encryption
|
||||
!/apps/files_encryption
|
||||
!/apps/files_external
|
||||
!/apps/files_sharing
|
||||
!/apps/files_trashbin
|
||||
!/apps/files_versions
|
||||
!/apps/lookup_server_connector
|
||||
!/apps/user_ldap
|
||||
!/apps/provisioning_api
|
||||
!/apps/systemtags
|
||||
!/apps/testing
|
||||
!/apps/admin_audit
|
||||
!/apps/updatenotification
|
||||
!/apps/theming
|
||||
!/apps/twofactor_backupcodes
|
||||
!/apps/workflowengine
|
||||
!/apps/user_webdavauth
|
||||
/apps/files_external/3rdparty/irodsphp/PHPUnitTest
|
||||
/apps/files_external/3rdparty/irodsphp/web
|
||||
/apps/files_external/3rdparty/irodsphp/prods/test
|
||||
/apps/files_external/3rdparty/irodsphp/prods/tutorials
|
||||
/apps/files_external/3rdparty/irodsphp/prods/test*
|
||||
/apps/files_external/tests/config.*.php
|
||||
|
||||
|
||||
|
||||
# ignore themes except the example and the README
|
||||
# ignore themes except the README
|
||||
/themes/*
|
||||
!/themes/example
|
||||
!/themes/README
|
||||
|
||||
# just sane ignores
|
||||
@@ -74,12 +55,11 @@ RCS/*
|
||||
.project
|
||||
.settings
|
||||
|
||||
# netbeans
|
||||
# netbeans
|
||||
nbproject
|
||||
|
||||
# phpStorm
|
||||
.idea
|
||||
*.iml
|
||||
|
||||
# geany
|
||||
*.geany
|
||||
@@ -90,10 +70,7 @@ nbproject
|
||||
|
||||
# vim ex mode
|
||||
.vimrc
|
||||
|
||||
# ack(-grep)
|
||||
.ackrc
|
||||
|
||||
|
||||
# Mac OS
|
||||
.DS_Store
|
||||
|
||||
@@ -101,35 +78,9 @@ nbproject
|
||||
.well-known
|
||||
/.buildpath
|
||||
|
||||
# Tests
|
||||
/tests/phpunit.xml
|
||||
|
||||
# Node Modules
|
||||
/build/node_modules/
|
||||
|
||||
# nodejs
|
||||
/build/bin
|
||||
/build/lib/
|
||||
/build/jsdocs/
|
||||
/npm-debug.log
|
||||
/PhantomJS_*
|
||||
|
||||
# puphpet
|
||||
puphpet
|
||||
|
||||
# vagrant
|
||||
.vagrant
|
||||
Vagrantfile
|
||||
|
||||
# Tests - auto-generated files
|
||||
/data-autotest
|
||||
#tests - autogenerated filed
|
||||
data-autotest
|
||||
/tests/coverage*
|
||||
/tests/css
|
||||
/tests/karma-coverage
|
||||
/tests/autoconfig*
|
||||
/tests/autotest*
|
||||
/tests/data/lorem-copy.txt
|
||||
/tests/data/testimage-copy.png
|
||||
/config/config-autotest-backup.php
|
||||
/config/autoconfig.php
|
||||
clover.xml
|
||||
/l10n/.tx/
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
[submodule "3rdparty"]
|
||||
path = 3rdparty
|
||||
url = https://github.com/nextcloud/3rdparty.git
|
||||
@@ -1,79 +1,39 @@
|
||||
<IfModule mod_fcgid.c>
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_headers.c>
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_fcgid.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
</IfModule>
|
||||
<IfModule mod_proxy_fcgi.c>
|
||||
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_env.c>
|
||||
# Add security and privacy related headers
|
||||
Header set X-Content-Type-Options "nosniff"
|
||||
Header set X-XSS-Protection "1; mode=block"
|
||||
Header set X-Robots-Tag "none"
|
||||
Header set X-Frame-Options "SAMEORIGIN"
|
||||
Header set X-Download-Options "noopen"
|
||||
Header set X-Permitted-Cross-Domain-Policies "none"
|
||||
SetEnv modHeadersAvailable true
|
||||
</IfModule>
|
||||
|
||||
# Add cache control for static resources
|
||||
<FilesMatch "\.(css|js|svg|gif)$">
|
||||
Header set Cache-Control "max-age=15778463"
|
||||
</FilesMatch>
|
||||
|
||||
# Let browsers cache WOFF files for a week
|
||||
<FilesMatch "\.woff$">
|
||||
Header set Cache-Control "max-age=604800"
|
||||
</FilesMatch>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
ErrorDocument 403 /core/templates/403.php
|
||||
ErrorDocument 404 /core/templates/404.php
|
||||
<IfModule mod_php5.c>
|
||||
php_value upload_max_filesize 511M
|
||||
php_value post_max_size 511M
|
||||
php_value memory_limit 512M
|
||||
php_value mbstring.func_overload 0
|
||||
php_value always_populate_raw_post_data -1
|
||||
php_value default_charset 'UTF-8'
|
||||
php_value output_buffering 0
|
||||
<IfModule mod_env.c>
|
||||
SetEnv htaccessWorking true
|
||||
</IfModule>
|
||||
php_value upload_max_filesize 513M
|
||||
php_value post_max_size 513M
|
||||
php_value memory_limit 512M
|
||||
<IfModule env_module>
|
||||
SetEnv htaccessWorking true
|
||||
</IfModule>
|
||||
<IfModule mod_php7.c>
|
||||
php_value upload_max_filesize 511M
|
||||
php_value post_max_size 511M
|
||||
php_value memory_limit 512M
|
||||
php_value mbstring.func_overload 0
|
||||
php_value default_charset 'UTF-8'
|
||||
php_value output_buffering 0
|
||||
<IfModule mod_env.c>
|
||||
SetEnv htaccessWorking true
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
|
||||
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
|
||||
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
|
||||
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
|
||||
RewriteRule ^remote/(.*) remote.php [QSA,L]
|
||||
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
|
||||
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.*
|
||||
RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
|
||||
RewriteEngine on
|
||||
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
RewriteRule ^.well-known/host-meta /public.php?service=host-meta [QSA,L]
|
||||
RewriteRule ^.well-known/host-meta.json /public.php?service=host-meta-json [QSA,L]
|
||||
RewriteRule ^.well-known/carddav /remote.php/carddav/ [R]
|
||||
RewriteRule ^.well-known/caldav /remote.php/caldav/ [R]
|
||||
RewriteRule ^apps/calendar/caldav.php remote.php/caldav/ [QSA,L]
|
||||
RewriteRule ^apps/contacts/carddav.php remote.php/carddav/ [QSA,L]
|
||||
RewriteRule ^apps/([^/]*)/(.*\.(css|php))$ index.php?app=$1&getfile=$2 [QSA,L]
|
||||
RewriteRule ^remote/(.*) remote.php [QSA,L]
|
||||
</IfModule>
|
||||
<IfModule mod_mime.c>
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
</IfModule>
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php index.html
|
||||
<IfModule dir_module>
|
||||
DirectoryIndex index.php index.html
|
||||
</IfModule>
|
||||
AddDefaultCharset utf-8
|
||||
Options -Indexes
|
||||
<IfModule pagespeed_module>
|
||||
ModPagespeed Off
|
||||
</IfModule>
|
||||
|
||||
Generated
-52
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectCodeStyleSettingsManager">
|
||||
<option name="PER_PROJECT_SETTINGS">
|
||||
<value>
|
||||
<option name="RIGHT_MARGIN" value="80" />
|
||||
<PHPCodeStyleSettings>
|
||||
<option name="PHPDOC_BLANK_LINE_BEFORE_TAGS" value="true" />
|
||||
<option name="LOWER_CASE_BOOLEAN_CONST" value="true" />
|
||||
<option name="LOWER_CASE_NULL_CONST" value="true" />
|
||||
</PHPCodeStyleSettings>
|
||||
<XML>
|
||||
<option name="XML_KEEP_BLANK_LINES" value="1" />
|
||||
<option name="XML_LEGACY_SETTINGS_IMPORTED" value="true" />
|
||||
</XML>
|
||||
<codeStyleSettings language="CSS">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="HTML">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="JavaScript">
|
||||
<option name="SPACE_BEFORE_METHOD_PARENTHESES" value="true" />
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="PHP">
|
||||
<option name="CLASS_BRACE_STYLE" value="1" />
|
||||
<option name="METHOD_BRACE_STYLE" value="1" />
|
||||
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
||||
<option name="WHILE_BRACE_FORCE" value="3" />
|
||||
<option name="FOR_BRACE_FORCE" value="3" />
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="XML">
|
||||
<indentOptions>
|
||||
<option name="USE_TAB_CHARACTER" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
</value>
|
||||
</option>
|
||||
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
|
||||
</component>
|
||||
</project>
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
{
|
||||
"camelcase": true,
|
||||
"eqeqeq": true,
|
||||
"immed": true,
|
||||
"latedef": false,
|
||||
"noarg": true,
|
||||
"nonbsp": true,
|
||||
"undef": true,
|
||||
"unused": true,
|
||||
"trailing": true,
|
||||
"maxparams": 5,
|
||||
"curly": true,
|
||||
"jquery": true,
|
||||
"maxlen": 120,
|
||||
"indent": 4,
|
||||
"browser": true,
|
||||
"laxbreak": true,
|
||||
"globals": {
|
||||
"console": true,
|
||||
"it": true,
|
||||
"xit": true,
|
||||
"expect": true,
|
||||
"describe": true,
|
||||
"beforeEach": true,
|
||||
"afterEach": true,
|
||||
"sinon": true,
|
||||
"fakeServer": true,
|
||||
"_": true,
|
||||
"OC": true,
|
||||
"OCA": true,
|
||||
"t": true,
|
||||
"n": true
|
||||
}
|
||||
}
|
||||
@@ -1,418 +0,0 @@
|
||||
Aamir Khan <ak4u2009@gmail.com>
|
||||
Aaron Reichman <areichman.kde@gmail.com>
|
||||
Adam Williamson <awilliam@redhat.com>
|
||||
Aditya Patawari <adimania@gmail.com>
|
||||
Administrator <Administrator@WINDOWS-2012>
|
||||
adrien <adrien.waksberg@believedigital.com>
|
||||
Aldo "xoen" Giambelluca <xoen@xoen.org>
|
||||
Alessandro Cosentino <cosenal@gmail.com>
|
||||
Alexander Bergolth <leo@strike.wu.ac.at> root <leo@strike.wu.ac.at>
|
||||
Alexander Bogdanov <syn@li.ru>
|
||||
Alexander Wigen <alex@wigen.net>
|
||||
Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
|
||||
Anders Nor Berle <anders@berle.cc>
|
||||
Andreas Fischer <bantu@owncloud.com>
|
||||
Andreas Schönebeck <aschoenebeck@web.de>
|
||||
Andreas Ergenzinger <andreas.ergenzinger@gmx.de> AndreasErgenzinger <andreas.ergenzinger@gmx.de>
|
||||
Andrew Brown <andrew@casabrown.com>
|
||||
André Gaul <gaul@web-yard.de>
|
||||
Arthur Schiwon <blizzz@arthur-schiwon.de> Arthur Schiwon <blizzz@owncloud.com>
|
||||
Arthur Schiwon <blizzz@arthur-schiwon.de> blizzz <blizzz@owncloud.com>
|
||||
Artur Duque de Souza <asouza@kde.org>
|
||||
Axel Roenn <axel@mpim-bonn.mpg.de>
|
||||
Bagera <victor@baquero-wihlborg.se>
|
||||
Bart Visscher <bartv@thisnet.nl> Bart Visscher <bart@thisnet.nl>
|
||||
Bart Visscher <bartv@thisnet.nl> Bart Visscher <github@thisnet.nl>
|
||||
Bartek Przybylski <bart.p.pl@gmail.com>
|
||||
Bastien Ho <bastienho@urbancube.fr>
|
||||
ben-denham <bend@catalyst.net.nz>
|
||||
Benjamin Diele <benjamin@diele.be>
|
||||
Benjamin Liles <benliles@arch.tamu.edu>
|
||||
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <nukeawhale@gmail.com>
|
||||
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <Raydiation@users.noreply.github.com>
|
||||
Bernhard Posselt <dev@bernhard-posselt.com> Bernhard Posselt <BernhardPosselt@users.noreply.github.com>
|
||||
Bernhard Reiter <ockham@raz.or.at>
|
||||
Birk Borkason <daniel.niccoli@gmail.com>
|
||||
Björn Schießle <bjoern@schiessle.org> Bjoern Schiessle <schiesbn@woody.(none)>
|
||||
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiessle@owncloud.com>
|
||||
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiesbn@potato.(none)>
|
||||
Björn Schießle <bjoern@schiessle.org> Björn Schiessle <schiessle@owncloud.com>
|
||||
Björn Schießle <bjoern@schiessle.org> Bjoern Schießle <schiessle@owncloud.com>
|
||||
Björn Schießle <bjoern@schiessle.org> Bjoern Schiessle <schiessle@owncloud.com>
|
||||
Björn Schießle <bjoern@schiessle.org> Björn Schießle <schiessle@owncloud.com>
|
||||
BlackEagle <ike.devolder@gmail.com>
|
||||
Boris Rybalkin <ribalkin@gmail.com>
|
||||
Borjan Tchakaloff <borjan@tchakaloff.fr>
|
||||
Brice Maron <brice@bmaron.net>
|
||||
brumsel <brumsel@losecatcher.de> brumsoel <brumsel@losecatcher.de>
|
||||
Byron Marohn <combustible@live.com> eMerzh <brice@bmaron.net>
|
||||
Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
|
||||
Carla Schroder <carla@owncloud.com>
|
||||
Carlos Cerrillo <ccerrillo@gmail.com>
|
||||
cbhp <cbhp@users.noreply.github.com>
|
||||
cbojar <chris@cbojar.net>
|
||||
Ceri Davies <ceri@submonkey.net>
|
||||
cetra3 <peter@parashift.com.au>
|
||||
Charles-Edouard Coste <contact@ccoste.fr>
|
||||
CharlyCoste <contact@ccoste.fr>
|
||||
chli1 <chli1@users.noreply.github.com>
|
||||
Chris Kankiewicz <Chris@ChrisKankiewicz.com>
|
||||
Chris LeBlanc <chris@leblaaanc.com>
|
||||
Chris Wilson <chris+github@qwirx.com>
|
||||
Christian Berendt <berendt@b1-systems.de>
|
||||
Christian Kampka <christian@kampka.net>
|
||||
Christian Koch <koch.chris@gmail.com>
|
||||
Christian Reiner <github@christian-reiner.info> Christian Reiner <arkascha@balder.site>
|
||||
Christoph Wurst <christoph@owncloud.com> Christoph Wurst <ChristophWurst@users.noreply.github.com>
|
||||
Christoph Wurst <christoph@owncloud.com> Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||
Christopher Bunn <b11.chris@gmail.com>
|
||||
Christopher Schäpers <kondou@ts.unde.re> Christopher <kondou@ts.unde.re>
|
||||
Christopher Schäpers <kondou@ts.unde.re> kondou <kondou@ts.unde.re>
|
||||
Christopher Schäpers <kondou@ts.unde.re> root <kondou@ts.unde.re>
|
||||
Christopher T. Johnson <ctjctj@gmail.com>
|
||||
Clark Tomlinson <fallen013@gmail.com>
|
||||
Cloud Dumper <clouddumper@gmail.com>
|
||||
cmeh <cmeh@users.noreply.github.com>
|
||||
Cornelius Schumacher <schumacher@kde.org>
|
||||
Craig Morrissey <craig@owncloud.com>
|
||||
Côme BERNIGAUD <come.bernigaud@laposte.net>
|
||||
dampfklon <me@dampfklon.de>
|
||||
Dan Bartram <daneybartram@gmail.com>
|
||||
Dan Callahan <dan.callahan@gmail.com>
|
||||
Dan Jones <dan@danneh.org>
|
||||
Daniel <daniel@mars.(none)>
|
||||
Daniel Hansson <enoch85@gmail.com>
|
||||
Daniel Köb <daniel.koeb@peony.at>
|
||||
Daniel Molkentin <daniel@molkentin.de>
|
||||
Daniele E. Domenichelli <daniele.domenichelli@gmail.com>
|
||||
David <davidventura>
|
||||
David Iwanowitsch <david+git@unclouded.de> David Iwanowitsch <diw@gmx.de>
|
||||
David Prévot <taffit@debian.org>
|
||||
David Reagan <reagand@lanecc.edu>
|
||||
davidak <davidak@gmx.de>
|
||||
davidgumberg <davidnoizgumberg@gmail.com>
|
||||
Dawid Opis <ncore@ncore.com.pl>
|
||||
Deepak Mittal <dpac.mittal2@gmail.com>
|
||||
DeLtAfOx <edo@ravers.it>
|
||||
denis-b <denis.bonnenfant@diderot.org>
|
||||
Der-Jan <de@r-jan.de>
|
||||
derkostka <sebastian.kostka@gmail.com>
|
||||
Diederik de Haas <diederik@cknow.org>
|
||||
Dominik Schmidt <dev@dominik-schmidt.de>
|
||||
Donald Buczek <buczek@molgen.mpg.de>
|
||||
Doug Neiner <doug@pixelgraphics.us>
|
||||
drarko <drarko@users.noreply.github.com>
|
||||
dratini0 <dratini0@gmail.com>
|
||||
Duane Johnson <duane.johnson@gmail.com>
|
||||
eduardo <eduardo@vnexu.net>
|
||||
elchi <niklas1b@yahoo.de>
|
||||
Elias Probst <mail@eliasprobst.eu>
|
||||
Florian <ente@baer.rwth-aachen.de> ente <ente@baer.rwth-aachen.de>
|
||||
Erik Sargent <esthepiking@gmail.com>
|
||||
Evgeni Golov <evgeni@golov.de>
|
||||
fabian <fabian@web2.0-apps.de>
|
||||
Fabian Henze <flyser42@gmx.de>
|
||||
Felix Böhm <felixboehm@gmx.de> felixboehm <felixboehm@gmx.de>
|
||||
Felix Eckhofer <felix@eckhofer.com>
|
||||
Felix Moeller <mail@felixmoeller.de>
|
||||
Felix Niklas <mrflix@gmail.com>
|
||||
Fernando Rodriguez Sela <frsela@tid.es>
|
||||
fibsifan <fi@volans.uberspace.de>
|
||||
Florian Hülsmann <fh@cbix.de>
|
||||
Florian Jacob <fjacob@lavabit.com>
|
||||
Florian Preinstorfer <nblock@archlinux.us>
|
||||
Florian Pritz <bluewind@xinu.at>
|
||||
Florian Scholz <FlorianScholz@bgstyle.de> Florian Scholz <work@bgstyle.de>
|
||||
Florian Vichot <florian.vichot@gmail.com>
|
||||
Florin Peter <github@florin-peter.de> Florin Peter <fp@datawerk.de>
|
||||
Florin Peter <github@florin-peter.de> FlorinPeter <github@florin-peter.de>
|
||||
Francesco Piraneo G. <fpiraneo@iface.ch>
|
||||
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@dev.(none)>
|
||||
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@devel.(none)>
|
||||
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@oc.(none)>
|
||||
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <frank@owncloud.org>
|
||||
Frank Karlitschek <frank@karlitschek.de> Frank Karlitschek <karlitschek@kde.org>
|
||||
François Kubler <francois@kubler.org>
|
||||
Frédéric Fortier <frederic.fortier@oronospolytechnique.com> Frédéric Fortier <frederic.fortier@polymtl.ca>
|
||||
Frederik Gladhorn <gladhorn@kde.org>
|
||||
Gadzy <dev@gadzy.fr>
|
||||
ganomi <ganomi@gmail.com>
|
||||
Gaël Beaudoin <gaboo@home.gaboo.org>
|
||||
geez0x1 <geez0x1@users.noreply.github.com>
|
||||
gekmihesg <markus@gekmihesg.de>
|
||||
Georg Ehrke <georg@owncloud.com> Georg Ehrke <dev@georgswebsite.de>
|
||||
Georg Ehrke <georg@owncloud.com> Georg Ehrke <developer@georgehrke.com>
|
||||
Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg.stefan.germany@googlemail.com>
|
||||
Georg Ehrke <georg@owncloud.com> Georg Ehrke <ownclouddev@georgswebsite.de>
|
||||
Georg Ehrke <georg@owncloud.com> Georg Ehrke <devgeorg@ownCloud.com>
|
||||
Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg@ownCloud.com>
|
||||
Golnaz Nilieh <g382nilieh@gmail.com>
|
||||
Grundik <grundik@ololo.cc>
|
||||
Guillaume AMAT <guillaume.amat@informatique-libre.com>
|
||||
Hans Bakker <hansmbakker@gmail.com>
|
||||
helix84 <helix84@centrum.sk>
|
||||
Hendrik Langer <hendrik.langer@gmx.de>
|
||||
Henning Becker <h.becker@oedenstockach.de>
|
||||
Henning Oschwald <h.oschwald@gmx.de>
|
||||
Henrik Kjölhede <hkjolhede@gmail.com>
|
||||
herbrechtsmeier <stefan@herbrechtsmeier.net>
|
||||
hkjolhede <hkjolhede@gmail.com>
|
||||
IchEben <andreas@reichster.de>
|
||||
ideaship <ideaship@users.noreply.github.com>
|
||||
Ignacio Daniel Rostagno <ignaciorostagno@vijona.com.ar>
|
||||
infoneo <infoneo@yahoo.pl>
|
||||
Insanemal <insanemal@gmail.com>
|
||||
Tobias Ramforth <tobias@ramforth.com> Tobias Ramforth <tobias.ramforth@udo.edu>
|
||||
Tobias Ramforth <tobias@ramforth.com> irgsmirx <tobias.ramforth@udo.edu>
|
||||
Isaac Rosenberg <irosenb7@gmail.com>
|
||||
itheiss <ingo.theiss@i-matrixx.de>
|
||||
j-ed <juergen@eisfair.org>
|
||||
Jake Wilson <jakew@huebnerpetersen.com>
|
||||
Jakob Sack <mail@jakobsack.de> Jakob Sack <kde@jakobsack.de>
|
||||
jamesryanbell <james@james-bell.co.uk>
|
||||
Jamie McClelland <jm@mayfirst.org>
|
||||
Jan-Christoph Borchardt <hey@jancborchardt.net> Jan-Christoph Borchardt <jan@unhosted.org>
|
||||
Jan-Christoph Borchardt <hey@jancborchardt.net> Jan-Christoph Borchardt <JanCBorchardt@fsfe.org>
|
||||
jbtbnl <jbtbnl@users.noreply.github.com>
|
||||
Jean-Louis Dupond <jean-louis@dupond.be>
|
||||
Jenkins for ownCloud <owncloud-bot@tmit.eu> Jenkins for ownCloud <thomas.mueller@tmit.eu>
|
||||
Jens-Christian Fischer <jens-christian.fischer@switch.ch>
|
||||
Jernej Virag <jernej.virag@gmail.com>
|
||||
Jesus Macias Portela <jesus.macias.portela@gmail.com>
|
||||
Jesús Macias <jmacias@solidgear.es> Jesus Macias <jmacias@full-on-net.com>
|
||||
jknockaert <jasper@knockaert.nl>
|
||||
Joan <aseques@gmail.com>
|
||||
Joar Wandborg <git@wandborg.com>
|
||||
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@gmx.de>
|
||||
Joas Schilling <coding@schilljs.com> Joas Schilling <nickvergessen@owncloud.com>
|
||||
joel hansson <joel.hansson@gmail.com>
|
||||
Johan Björk <johanimon@gmail.com>
|
||||
Johannes Twittmann <github.com@deryo.de>
|
||||
Johannes Willnecker <johannes@willnecker.com>
|
||||
John Kristensen <John.Kristensen@dpipwe.tas.gov.au>
|
||||
Jonathan Riddell <jriddell@ubuntu.com>
|
||||
Jonny007-MKD <1-23-4-5@web.de>
|
||||
josh4trunks <joshruehlig@gmail.com>
|
||||
Joshua Medeiros <Jammerx2@gmail.com>
|
||||
Juan Carlos Cornejo <jc2@paintblack.com>
|
||||
Julian Müller <julian.mueller.ffb@kabelmail.de>
|
||||
Jörn Friedrich Dreyer <jfd@butonic.de> jfd <jfd@lance>
|
||||
Jörn Friedrich Dreyer <jfd@butonic.de> jfd <jfd@underverse>
|
||||
Kamil Domanski <kdomanski@kdemail.net>
|
||||
Kees Huiberts <snowy@derideal.com>
|
||||
Klaas Freitag <freitag@owncloud.com> Klaas Freitag <freitag@suse.de>
|
||||
Konstantin Popov <konstantin.popov@globalpointagency.comv> Konstantin.Popov <konstantin.popov@globalpointagency.comv>
|
||||
krzaczek <pawel@freshmind.pl>
|
||||
Kshitij Parajuli <kshitijparajuli@gmail.com>
|
||||
Kunal Ghosh <kunal.t2@gmail.com>
|
||||
Tobia De Koninck <tobia@ledfan.be> LEDfan <tobia@ledfan.be>
|
||||
Lennart Rosam <lennart.rosam@medien-systempartner.de>
|
||||
Sebastian Döll <sebastian.doell@libasys.de> libasys <sebastian.doell@libasys.de>
|
||||
Lode Hoste <zillode@zillode.be>
|
||||
lolozere <laurent@chedanne.pro>
|
||||
Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
|
||||
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.com>
|
||||
Lukas Reschke <lukas@statuscode.ch> Lukas Reschke <lukas@owncloud.org>
|
||||
Luke Policinski <lpolicinski@gmail.com>
|
||||
Lyonel Vincent <lyonel@ezix.org>
|
||||
macjohnny <estebanmarin@gmx.ch>
|
||||
maelzx <maelzx@gmail.com>
|
||||
marc0s <marcos@tenak.net>
|
||||
Marco B <beinbrech@solutica.de>
|
||||
Marco Michelino <michelinux@gmail.com>
|
||||
Markus Goetz <markus@woboq.com>
|
||||
Markus Kalkbrenner <markus.kalkbrenner@bio.logis.de>
|
||||
Martial Saunois <saunois.martial@gmail.com>
|
||||
Martin Mattel <martin.mattel@diemattels.at> Martin <martin.mattel@diemattels.at>
|
||||
Martin Mattel <martin.mattel@diemattels.at> root <martin.mattel@diemattels.at>
|
||||
Martin Grohmann <martin@medi-inf.org>
|
||||
# TODO: the same person
|
||||
Martin Konrad <info@martin-konrad.net>
|
||||
Martin Konrad <konrad@frib.msu.edu>
|
||||
Martin Sandsmark <martin.sandsmark@kde.org> Martin T. H. Sandsmark <sandsmark@samfundet.no>
|
||||
Marvin Thomas Rabe <mrabe@marvinrabe.de> Marvin Thomas Rabe <m.rabe@echtzeitraum.de>
|
||||
Masaki Kawabata Neto <masaki.kawabata@gmail.com> Masaki <masaki.kawabata@gmail.com>
|
||||
Mat Lipe <mat@lipeimagination.info>
|
||||
Matthew Caron <matt@mattcaron.net>
|
||||
Matthew Dawson <matthew@mjdsystems.ca>
|
||||
Matthias Rieber <matthias@zu-con.org>
|
||||
Maximilian Ruta <mr@xtain.net>
|
||||
mh <mh@immerda.ch>
|
||||
Michael Gapczynski <GapczynskiM@gmail.com> Michael Gapczynski <mtgap@owncloud.com>
|
||||
Michael Göhler <somebody.here@gmx.de>
|
||||
Michael Kent <mike@draftx.net>
|
||||
Michael Kuhn <suraia@ikkoku.de>
|
||||
Michael Monreal <michael.monreal@gmail.com>
|
||||
Michael Roitzsch <reactorcontrol@icloud.com>
|
||||
michag86 <micha_g@arcor.de>
|
||||
Michiel de Jong <michiel@unhosted.org> Michiel@unhosted <michiel@unhosted.org>
|
||||
Miguel Prokop <miguel.prokop@vtu.com>
|
||||
miicha <pfitzner@physik.hu-berlin.de>
|
||||
Miquel Rodríguez Telep / Michael Rodríguez-Torrent <miquel@designunbound.co.uk>
|
||||
Morris Jobke <hey@morrisjobke.de> Morris Jobke <morris.jobke@gmail.com>
|
||||
MTRichards <matt@owncloud.com>
|
||||
mvn23 <schopdiedwaas@gmail.com>
|
||||
Myles McNamara <myles@hostt.net> Myles McNamara <myles@smyl.es>
|
||||
NARUKAWA Hiroki <nhirokinet@nhiroki.net>
|
||||
Nathan Dauber <nathan@radialogica.com>
|
||||
Nazar Mokrynskyi <nazar@mokrynskyi.com>
|
||||
nhirokinet <nhirokinet@nhiroki.net>
|
||||
Nico Kaiser <nico.kaiser@boerse-go.de>
|
||||
Nicolai Ehemann <en@enlightened.de>
|
||||
Nicolas Stamm <nicolas.stamm@gmail.com>
|
||||
NIEK Antoine <antoineniek@gmail.com>
|
||||
Niklas Sombert <niklas1b@yahoo.de>
|
||||
Nils Jansen <nilsjansen@gmail.com>
|
||||
nishiki <nishiki@yaegashi.fr>
|
||||
Nmz <nemesiz@nmz.lt>
|
||||
Normal Ra <normalraw@gmail.com> Normal Ra <NormalRa@users.noreply.github.com>
|
||||
Oliver Gasser <oliver.gasser@gmail.com> Oliver Gasser <oliver@flowriver.net>
|
||||
Oliver Kohl D.Sc. <oliver@kohl.bz>
|
||||
Olivier Paroz <github@oparoz.com> Olivier Paroz <oparoz@users.noreply.github.com>
|
||||
Olivier Tétard <olivier.tetard@miskin.fr>
|
||||
Aaron Larisch <aaron.larisch@gmx.de> OpenLarry <aaron.larisch@gmx.de>
|
||||
opensaucesystems <ashley@opensaucesystems.com>
|
||||
Oskar Hollmann <oskarhollmann@gmail.com>
|
||||
Otto Sabart <ottosabart@seberm.com>
|
||||
Owen Winkler <a_github@midnightcircus.com> Owen Winkler <epithet@gmail.com>
|
||||
Owen Winkler <a_github@midnightcircus.com> ringmaster <epithet@gmail.com>
|
||||
Pascal de Bruijn <pmjdebruijn@pcode.nl>
|
||||
Patrick Paysant <ppaysant@linagora.com>
|
||||
Patrick Stricker <stricker@hera.dev.iks-hagen.de>
|
||||
Paul Brown <paul90brown@gmail.com>
|
||||
pdessauw <pdessauw@gmail.com>
|
||||
Pellaeon Lin <nfsmwlin@gmail.com>
|
||||
Pete McFarlane <peterjohnmcfarlane@gmail.com> petemcfarlane <peterjohnmcfarlane@gmail.com>
|
||||
Philipp Kapfer <philipp.kapfer@gmx.at>
|
||||
Philipp Knechtges <philipp-dev@knechtges.com>
|
||||
Philipp Roggan <philipp.roggan@newsletter4free.de>
|
||||
Philipp Schmitt <philipp@schmitt.co>
|
||||
Philippe Jung <phil.jung@free.fr>
|
||||
Philippe Kueck <pk@plusline.de>
|
||||
prcrst <prcrst@hush.com>
|
||||
pzy <pzy@d1sturbed.org>
|
||||
Qingping Hou <dave2008713@gmail.com>
|
||||
Raghu Nayyar <me@iraghu.com> Raghu Nayyar <raghu.nayyar.007@gmail.com>
|
||||
Raghu Nayyar <me@iraghu.com> raghunayyar <me@iraghu.com>
|
||||
Raimund Schlüßler <raimund.schluessler@googlemail.com>
|
||||
Ramiro Aparicio <rapariciog@gmail.com>
|
||||
Randolph Carter <RandolphCarter@fantasymail.de>
|
||||
RealRancor <Fisch.666@gmx.de>
|
||||
Remco Brenninkmeijer <requist1@starmail.nl>
|
||||
Riccardo Iaconelli <riccardo@kde.org>
|
||||
Richard Clarkson <robert@trash-mail.com>
|
||||
rnveach <rveach02@gmail.com>
|
||||
Robert Jäckel <rjaeckel@users.noreply.github.com>
|
||||
Robin Appelman <robin@icewind.nl> icewind1991 <icewind1991@gmail.com>
|
||||
Robin Appelman <robin@icewind.nl> icewind1991 <robin@icewind.nl>
|
||||
Robin Appelman <robin@icewind.nl> Robin <Robin Appelman icewind1991@gmail.com>
|
||||
Robin Appelman <robin@icewind.nl> Robin <robin@Amaya.(none)>
|
||||
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind1991@gmail.com>
|
||||
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind1991@gmail>
|
||||
Robin Appelman <robin@icewind.nl> Robin Appelman <icewind@owncloud.com>
|
||||
Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@karoshi.org.uk>
|
||||
Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@owncloud.com>
|
||||
Rodrigo Hjort <rodrigo.hjort@gmail.com>
|
||||
Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@owncloud.com>
|
||||
Roeland Jago Douma <roeland@famdouma.nl> Roeland Douma <rullzer@users.noreply.github.com>
|
||||
rok <brejktru@gmail.com>
|
||||
Roland Hager <roland.hager@tu-berlin.de>
|
||||
Roland van Laar <roland@micite.net>
|
||||
rolandgeider <roland@geider.net>
|
||||
Roman Geber <rgeber@owncloudapps.com>
|
||||
root <root@asterisk03.ceschia.de>
|
||||
root <root@dev.(none)>
|
||||
root <root@oc.(none)>
|
||||
root <root@plug.(none)>
|
||||
Ross Nicoll <jrn@jrn.me.uk>
|
||||
runky <philipp.boersteken@googlemail.com>
|
||||
Sam Tuke <mail@samtuke.com> Sam Tuke <sam@donttravelempty.com>
|
||||
Sam Tuke <mail@samtuke.com> Sam Tuke <samtuke@jack-laptop.(none)>
|
||||
Sam Tuke <mail@samtuke.com> Sam Tuke <samtuke@owncloud.com>
|
||||
Sander <brantje@gmail.com>
|
||||
Sandro Knauß <bugs@sandroknauss.de> Sandro <hefee@taurin.(none)>
|
||||
Sascha Schmidt <realriot@realriot.de>
|
||||
Sascha Schneider <development@suntsu.org>
|
||||
scambra <sergio@entrecables.com>
|
||||
scolebrook <scolebrook@mac.com>
|
||||
Scott Arciszewski <scott@arciszewski.me>
|
||||
Scott Barnett <scott.n.barnett@gmail.com>
|
||||
Scott Shambarger <gitorious@shambarger.net>
|
||||
Scrutinizer Auto-Fixer <auto-fixer@scrutinizer-ci.com>
|
||||
Sean Comeau <sean@ftlnetworks.ca>
|
||||
Sean Leonard <meanderingcode@silverleafstudios.net>
|
||||
Sebastian Bolt <sebastian.bolt@gmx.de>
|
||||
Serge Martin <edb@sigluy.net>
|
||||
Sergei Shuykov <n1nj4p0w3r@gmail.com>
|
||||
Sergi Almacellas Abellana <sergi@koolpi.com>
|
||||
sherbrecher <oss@herbrecher.de>
|
||||
shkdee <louis.traynard@m4x.org>
|
||||
Simon Birnbach <simon@simon-birnbach.de>
|
||||
Simon Könnecke <simonkoennecke@gmail.com>
|
||||
Simon Whittaker <simon@swbh.net>
|
||||
Sjors van der Pluijm <sjors@desjors.nl> Sjors van der Pluijm <sjors@youngguns.nl>
|
||||
st3so <st3so@server.fake>
|
||||
Stefan <mu.stefan@googlemail.com>
|
||||
Stefan Göckeritz <admin@s-goecker.de>
|
||||
Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
|
||||
Stefan Rado <owncloud@sradonia.net>
|
||||
Stefan Seidel <android@stefanseidel.info>
|
||||
Steffen Lindner <mail@steffen-lindner.de> Steffen Lindner <gomez@flexiabel.de>
|
||||
Stephan Arts <stephan@xfce.org>
|
||||
Stephan Bergemann <st.bergemann@htw-berlin.de>
|
||||
Stephan Peijnik <speijnik@anexia-it.com>
|
||||
Stephane Martin <stef.martin@gmail.com> Stephane Martin <stephane.martin@vesperal.eu>
|
||||
Stephane V <stephane@vergeylen.eu>
|
||||
Stephen Rees-Carter <stephen@rees-carter.net>
|
||||
Steven <wokste@gmail.com>
|
||||
Steven <wokste@Komkommer.(none)>
|
||||
Steven <wwjd2@web.de>
|
||||
Sugaroverdose <n1nj4p0w3r@gmail.com>
|
||||
Susinthiran Sithamparanathan <chesusin@gmail.com>
|
||||
tbelau666 <thomas.belau@gmx.de>
|
||||
TheSFReader <TheSFReader@gmail.com>
|
||||
Thibaut GRIDEL <tgridel@free.fr>
|
||||
thomas <thomas@thomas-VirtualBox.(none)>
|
||||
Thomas Müller <thomas.mueller@tmit.eu> Thomas Mueller <thomas.mueller@tmit.eu>
|
||||
Thomas Müller <thomas.mueller@tmit.eu> Thomas Müller <DeepDiver1975@users.noreply.github.com>
|
||||
Thomas Olsen <tol@tanghus>
|
||||
Thomas Schmidt <tschmidt@suse.de>
|
||||
Thomas Tanghus <thomas@tanghus.net>
|
||||
Thomas Zander <zander@kde.org>
|
||||
tiezdne <oswald.84@t-online.de>
|
||||
Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
|
||||
Tobias Kaminsky <tobias@kaminsky.me> tobiasKaminsky <tobias@kaminsky.me>
|
||||
Tom Needham <tom@owncloud.com> Tom Needham <needham.thomas@gmail.com>
|
||||
Tom Needham <tom@owncloud.com> Tom Needham <tom@tre.tomneedham.com>
|
||||
Tom Needham <tom@owncloud.com> tomneedham <needham.thomas@gmail.com>
|
||||
Tom Needham <tom@owncloud.com> tomneedham <tom@owncloud.com>
|
||||
Tony Zelenoff <antonz@parallels.com>
|
||||
tsumi <mail@tsumi.it>
|
||||
twood8 <ted.wood@gtri.gatech.edu>
|
||||
Türker Sezer <turkersezer@tsdesign.info>
|
||||
unclejamal3000 <andreas.pramhaas@posteo.de>
|
||||
unknown <Alain@Alain-PC.(none)>
|
||||
unknown <pnd@.nist.gov>
|
||||
Valerio Ponte <valerio.ponte@gmail.com>
|
||||
Victor Dubiniuk <dubiniuk@owncloud.com> Victor Dubiniuk <victor.dubiniuk@gmail.com>
|
||||
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <dubiniuk@owncloud.com>
|
||||
Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <victor.dubiniuk@gmail.com>
|
||||
Vincent Cloutier <vincent1cloutier@gmail.com>
|
||||
Vincent Petry <pvince81@owncloud.com> Vincent Petry <PVince81@yahoo.fr>
|
||||
Vincent Petry <pvince81@owncloud.com> Vincent Petry <vincent@vvortex.site>
|
||||
Vitaly Kuznetsov <vitty@altlinux.ru>
|
||||
Vladimir Sapronov <vladimir.sapronov@gmail.com>
|
||||
Volkan Gezer <volkangezer@gmail.com> Volkan Gezer <wakeup@users.noreply.github.com>
|
||||
Volker E. <open@temporaer.net>
|
||||
voxsim <Simon Vocella>
|
||||
vsapronov <vladimir.sapronov@gmail.com>
|
||||
Vsevolod Kukol <v.kukol@rubologic.de>
|
||||
Weng Xuetian <wengxt@gmail.com>
|
||||
Wikinaut <mail@tgries.de>
|
||||
Willi Ballenthin <willi.ballenthin@gmail.com>
|
||||
windaishi <manuel.strider@web.de>
|
||||
Witali Rott <info@hlop.eu>
|
||||
Yann VERRY <yann@verry.org>
|
||||
yannickoo <github@yannickoo.de>
|
||||
zafi <zafirakis.daniel@gmail.com>
|
||||
zombiehugs <gerdsen@gmail.com>
|
||||
@@ -1,30 +0,0 @@
|
||||
{
|
||||
"maxReviewers": 3,
|
||||
"numFilesToCheck": 5,
|
||||
"alwaysNotifyForPaths": [
|
||||
{
|
||||
"name": "nickvergessen",
|
||||
"files": [
|
||||
"lib/private/Activity/**",
|
||||
"lib/private/Notification/**",
|
||||
"lib/public/Activity/**",
|
||||
"lib/public/Notification/**"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Xenopathic",
|
||||
"files": [
|
||||
"apps/files_external/**"
|
||||
]
|
||||
}
|
||||
],
|
||||
"userBlacklist": [
|
||||
"DeepDiver1975",
|
||||
"nextcloud-bot",
|
||||
"owncloud-bot",
|
||||
"PVince81",
|
||||
"scrutinizer-auto-fixer",
|
||||
"th3fallen",
|
||||
"zander"
|
||||
]
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
before_commands:
|
||||
- 'git submodule update --init --recursive'
|
||||
|
||||
filter:
|
||||
excluded_paths:
|
||||
- '3rdparty/*'
|
||||
- 'apps/*/3rdparty/*'
|
||||
- 'apps/*/vendor/*'
|
||||
- 'l10n/*'
|
||||
- 'core/l10n/*'
|
||||
- 'apps/*/l10n/*'
|
||||
- 'apps/*/tests/*'
|
||||
- 'lib/l10n/*'
|
||||
- 'core/vendor/*'
|
||||
- 'core/js/tests/lib/*.js'
|
||||
- 'core/js/tests/specs/*.js'
|
||||
- 'core/js/jquery-showpassword.js'
|
||||
- 'core/js/jquery-tipsy.js'
|
||||
- 'core/js/placeholders.js'
|
||||
- 'settings/l10n/*'
|
||||
- 'tests/*'
|
||||
- 'build/*'
|
||||
- 'lib/composer/*'
|
||||
|
||||
imports:
|
||||
- javascript
|
||||
- php
|
||||
@@ -1,7 +0,0 @@
|
||||
upload_max_filesize=511M
|
||||
post_max_size=511M
|
||||
memory_limit=512M
|
||||
mbstring.func_overload=0
|
||||
always_populate_raw_post_data=-1
|
||||
default_charset='UTF-8'
|
||||
output_buffering=0
|
||||
-1
Submodule 3rdparty deleted from 9dc2d1d484
@@ -1,222 +1,31 @@
|
||||
Nextcloud is written by:
|
||||
- AW-UC <git@a-wesemann.de>
|
||||
- Aaron Wood <aaronjwood@gmail.com>
|
||||
- Achim Königs <garfonso@tratschtante.de>
|
||||
- Adam Williamson <awilliam@redhat.com>
|
||||
- Administrator <Administrator@WINDOWS-2012>
|
||||
- Aldo "xoen" Giambelluca <xoen@xoen.org>
|
||||
- Alex Weirig <alex.weirig@technolink.lu>
|
||||
- Alexander Bergolth <leo@strike.wu.ac.at>
|
||||
- Andreas Fischer <bantu@owncloud.com>
|
||||
- Andrew Brown <andrew@casabrown.com>
|
||||
- André Gaul <gaul@web-yard.de>
|
||||
- Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
- Bart Visscher <bartv@thisnet.nl>
|
||||
- Bartek Przybylski <bart.p.pl@gmail.com>
|
||||
- Bastien Ho <bastienho@urbancube.fr>
|
||||
- Benjamin Diele <benjamin@diele.be>
|
||||
- Benjamin Liles <benliles@arch.tamu.edu>
|
||||
- Bernhard Posselt <dev@bernhard-posselt.com>
|
||||
- Bernhard Reiter <ockham@raz.or.at>
|
||||
- Birk Borkason <daniel.niccoli@gmail.com>
|
||||
- Bjoern Schiessle <bjoern@schiessle.org>
|
||||
- Björn Schießle <bjoern@schiessle.org>
|
||||
- Borjan Tchakaloff <borjan@tchakaloff.fr>
|
||||
- Brice Maron <brice@bmaron.net>
|
||||
- Byron Marohn <combustible@live.com>
|
||||
- Carla Schroder <carla@owncloud.com>
|
||||
- Carlos Cerrillo <ccerrillo@gmail.com>
|
||||
- Carlos Damken <carlos@damken.com>
|
||||
- Christian Berendt <berendt@b1-systems.de>
|
||||
- Christian Jürges <christian@eqipe.ch>
|
||||
- Christian Kampka <christian@kampka.net>
|
||||
- Christian Weiske <cweiske@cweiske.de>
|
||||
- Christoph Schaefer <christophł@wolkesicher.de>
|
||||
- Christoph Wurst <christoph@owncloud.com>
|
||||
- Christopher Schäpers <kondou@ts.unde.re>
|
||||
- Christopher T. Johnson <ctjctj@gmail.com>
|
||||
- Clark Tomlinson <fallen013@gmail.com>
|
||||
- Craig Morrissey <craig@owncloud.com>
|
||||
- Dan Bartram <daneybartram@gmail.com>
|
||||
- Daniel Hansson <enoch85@gmail.com>
|
||||
- Daniel Jagszent <daniel@jagszent.de>
|
||||
- Daniel Molkentin <daniel@molkentin.de>
|
||||
- Daniel Tosello <tosello.daniel@gmail.com>
|
||||
- David Prévot <taffit@debian.org>
|
||||
- David Toledo <dtoledo@solidgear.es>
|
||||
- Dominik Schmidt <dev@dominik-schmidt.de>
|
||||
- Fabian Henze <flyser42@gmx.de>
|
||||
- Faruk Uzun <farukuzun@collabora.com>
|
||||
- Felix Böhm <felixboehm@gmx.de>
|
||||
- Felix Moeller <mail@felixmoeller.de>
|
||||
- Florian Preinstorfer <nblock@archlinux.us>
|
||||
- Florian Pritz <bluewind@xinu.at>
|
||||
- Florin Peter <github@florin-peter.de>
|
||||
- Francesco Rovelli <francesco.rovelli@gmail.com>
|
||||
- Frank Karlitschek <frank@karlitschek.de>
|
||||
- François Kubler <francois@kubler.org>
|
||||
- Frédéric Fortier <frederic.fortier@oronospolytechnique.com>
|
||||
- Gadzy <dev@gadzy.fr>
|
||||
- Georg Ehrke <georg@owncloud.com>
|
||||
- Guillaume AMAT <guillaume.amat@informatique-libre.com>
|
||||
- Hasso Tepper <hasso@zone.ee>
|
||||
- Hendrik Leppelsack <hendrik@leppelsack.de>
|
||||
- Hugo Gonzalez Labrador <hglavra@gmail.com>
|
||||
- Individual IT Services <info@individual-it.net>
|
||||
- Jakob Sack <mail@jakobsack.de>
|
||||
- Jan-Christoph Borchardt <hey@jancborchardt.net>
|
||||
- Jarrett <JetUni@users.noreply.github.com>
|
||||
- Jean-Louis Dupond <jean-louis@dupond.be>
|
||||
- Jens-Christian Fischer <jens-christian.fischer@switch.ch>
|
||||
- Jesús Macias <jmacias@solidgear.es>
|
||||
- Joachim Bauch <bauch@struktur.de>
|
||||
- Joachim Sokolowski <github@sokolowski.org>
|
||||
- Joas Schilling <coding@schilljs.com>
|
||||
- Johan Björk <johanimon@gmail.com>
|
||||
- Johannes Ernst <jernst@indiecomputing.com>
|
||||
- Johannes Willnecker <johannes@willnecker.com>
|
||||
- Jonny007-MKD <1-23-4-5@web.de>
|
||||
- Juan Pablo Villafáñez <jvillafanez@solidgear.es>
|
||||
- Julius Haertl <jus@bitgrid.net>
|
||||
- Jörn Friedrich Dreyer <jfd@butonic.de>
|
||||
- Kamil Domanski <kdomanski@kdemail.net>
|
||||
- Klaas Freitag <freitag@owncloud.com>
|
||||
- Lars <winnetou+github@catolic.de>
|
||||
- Laurens Post <Crote@users.noreply.github.com>
|
||||
- Laurens Post <lkpost@scept.re>
|
||||
- Lennart Rosam <hello@takuto.de>
|
||||
- Lennart Rosam <lennart.rosam@medien-systempartner.de>
|
||||
- Leonardo Diez <leio10@users.noreply.github.com>
|
||||
- Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it>
|
||||
- Lukas Reschke <lukas@statuscode.ch>
|
||||
- Luke Policinski <lpolicinski@gmail.com>
|
||||
- Lyonel Vincent <lyonel@ezix.org>
|
||||
- Manish Bisht <manish.bisht490@gmail.com>
|
||||
- Mario Kolling <mario.kolling@serpro.gov.br>
|
||||
- Markus Goetz <markus@woboq.com>
|
||||
- Martin Konrad <info@martin-konrad.net>
|
||||
- Martin Konrad <konrad@frib.msu.edu>
|
||||
- Martin Mattel <martin.mattel@diemattels.at>
|
||||
- Marvin Thomas Rabe <mrabe@marvinrabe.de>
|
||||
- Masaki Kawabata Neto <masaki.kawabata@gmail.com>
|
||||
- Michael Gapczynski <GapczynskiM@gmail.com>
|
||||
- Michael Göhler <somebody.here@gmx.de>
|
||||
- Michael Kuhn <suraia@ikkoku.de>
|
||||
- Michael Roitzsch <reactorcontrol@icloud.com>
|
||||
- Michael Roth <michael.roth@rz.uni-augsburg.de>
|
||||
- Michael U <mdusher@users.noreply.github.com>
|
||||
- Miguel Prokop <miguel.prokop@vtu.com>
|
||||
- Mitar <mitar.git@tnode.com>
|
||||
- Morris Jobke <hey@morrisjobke.de>
|
||||
- Nicolai Ehemann <en@enlightened.de>
|
||||
- Nicolas Grekas <nicolas.grekas@gmail.com>
|
||||
- Nmz <nemesiz@nmz.lt>
|
||||
- Normal Ra <normalraw@gmail.com>
|
||||
- Oliver Gasser <oliver.gasser@gmail.com>
|
||||
- Oliver Kohl D.Sc. <oliver@kohl.bz>
|
||||
- Olivier Paroz <github@oparoz.com>
|
||||
- Otto Sabart <ottosabart@seberm.com>
|
||||
- Owen Winkler <a_github@midnightcircus.com>
|
||||
- Pascal de Bruijn <pmjdebruijn@pcode.nl>
|
||||
- Patrick Paysant <ppaysant@linagora.com>
|
||||
- Pellaeon Lin <nfsmwlin@gmail.com>
|
||||
- Petr Svoboda <weits666@gmail.com>
|
||||
- Phiber2000 <phiber2000@gmx.de>
|
||||
- Phil Davis <phil.davis@inf.org>
|
||||
- Philipp Kapfer <philipp.kapfer@gmx.at>
|
||||
- Philippe Jung <phil.jung@free.fr>
|
||||
- Pierre Jochem <pierrejochem@msn.com>
|
||||
- Pierre Ozoux <pierre@ozoux.net>
|
||||
- Piotr Filiciak <piotr@filiciak.pl>
|
||||
- Qingping Hou <dave2008713@gmail.com>
|
||||
- Raghu Nayyar <hey@raghunayyar.com>
|
||||
- Raghu Nayyar <me@iraghu.com>
|
||||
- Ralph Krimmel <rkrimme1@gwdg.de>
|
||||
- Ramiro Aparicio <rapariciog@gmail.com>
|
||||
- Randolph Carter <RandolphCarter@fantasymail.de>
|
||||
- RealRancor <Fisch.666@gmx.de>
|
||||
- Remco Brenninkmeijer <requist1@starmail.nl>
|
||||
- Renaud Fortier <Renaud.Fortier@fsaa.ulaval.ca>
|
||||
- Robin Appelman <robin@icewind.nl>
|
||||
- Robin McCorkell <robin@mccorkell.me.uk>
|
||||
- Roeland Jago Douma <roeland@famdouma.nl>
|
||||
- Roman Geber <rgeber@owncloudapps.com>
|
||||
- Roman Kreisel <mail@romankreisel.de>
|
||||
- Ross Nicoll <jrn@jrn.me.uk>
|
||||
- SA <stephen@mthosting.net>
|
||||
- Sam Tuke <mail@samtuke.com>
|
||||
- Sander <brantje@gmail.com>
|
||||
- Sean Comeau <sean@ftlnetworks.ca>
|
||||
- Sebastian Döll <sebastian.doell@libasys.de>
|
||||
- Senorsen <senorsen.zhang@gmail.com>
|
||||
- Serge Martin <edb@sigluy.net>
|
||||
- Sergio Bertolin <sbertolin@solidgear.es>
|
||||
- Sergio Bertolín <sbertolin@solidgear.es>
|
||||
- Simon Könnecke <simonkoennecke@gmail.com>
|
||||
- Sjors van der Pluijm <sjors@desjors.nl>
|
||||
- Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
|
||||
- Stefan Rado <owncloud@sradonia.net>
|
||||
- Stefan Weil <sw@weilnetz.de>
|
||||
- Steffen Lindner <mail@steffen-lindner.de>
|
||||
- Stephan Peijnik <speijnik@anexia-it.com>
|
||||
- TheSFReader <TheSFReader@gmail.com>
|
||||
- Thibaut GRIDEL <tgridel@free.fr>
|
||||
- Thomas Citharel <tcit@tcit.fr>
|
||||
- Thomas Müller <thomas.mueller@tmit.eu>
|
||||
- Thomas Pulzer <t.pulzer@kniel.de>
|
||||
- Thomas Tanghus <thomas@tanghus.net>
|
||||
- Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
|
||||
- Tim Dettrick <t.dettrick@uq.edu.au>
|
||||
- Tobia De Koninck <tobia@ledfan.be>
|
||||
- Tobias Kaminsky <tobias@kaminsky.me>
|
||||
- Tom Needham <tom@owncloud.com>
|
||||
- Torben Dannhauer <torben@dannhauer.de>
|
||||
- Victor Dubiniuk <dubiniuk@owncloud.com>
|
||||
- Viktor Szépe <viktor@szepe.net>
|
||||
- Vincent Chan <plus.vincchan@gmail.com>
|
||||
- Vincent Cloutier <vincent1cloutier@gmail.com>
|
||||
- Vincent Petry <pvince81@owncloud.com>
|
||||
- Volkan Gezer <volkangezer@gmail.com>
|
||||
- adrien <adrien.waksberg@believedigital.com>
|
||||
- alexweirig <alex.weirig@technolink.lu>
|
||||
- brumsel <brumsel@losecatcher.de>
|
||||
- cetra3 <peter@parashift.com.au>
|
||||
- cmeh <cmeh@users.noreply.github.com>
|
||||
- dampfklon <me@dampfklon.de>
|
||||
- davidgumberg <davidnoizgumberg@gmail.com>
|
||||
- davitol <dtoledo@solidgear.es>
|
||||
- derkostka <sebastian.kostka@gmail.com>
|
||||
- eduardo <eduardo@vnexu.net>
|
||||
- fabian <fabian@web2.0-apps.de>
|
||||
- felixboehm <felix@webhippie.de>
|
||||
- goodkiller <markopraakli@gmail.com>
|
||||
- helix84 <helix84@centrum.sk>
|
||||
- hkjolhede <hkjolhede@gmail.com>
|
||||
- ideaship <ideaship@users.noreply.github.com>
|
||||
- j-ed <juergen@eisfair.org>
|
||||
- jknockaert <jasper@knockaert.nl>
|
||||
- josh4trunks <joshruehlig@gmail.com>
|
||||
- karakayasemi <karakayasemi@itu.edu.tr>
|
||||
- macjohnny <estebanmarin@gmx.ch>
|
||||
- martin-rueegg <martin.rueegg@metaworx.ch>
|
||||
- martin.mattel@diemattels.at <martin.mattel@diemattels.at>
|
||||
- michag86 <micha_g@arcor.de>
|
||||
- mmccarn <mmccarn-github@mmsionline.us>
|
||||
- nishiki <nishiki@yaegashi.fr>
|
||||
- oparoz <owncloud@interfasys.ch>
|
||||
- root <root@oc.(none)>
|
||||
- scambra <sergio@entrecables.com>
|
||||
- scolebrook <scolebrook@mac.com>
|
||||
- shkdee <louis.traynard@m4x.org>
|
||||
- sualko <klaus@jsxc.org>
|
||||
- tbartenstein <tbartenstein@users.noreply.github.com>
|
||||
- tbelau666 <thomas.belau@gmx.de>
|
||||
- unclejamal3000 <andreas.pramhaas@posteo.de>
|
||||
- v1r0x <vinzenz.rosenkranz@gmail.com>
|
||||
- voxsim <Simon Vocella>
|
||||
ownCloud is written by:
|
||||
Frank Karlitschek
|
||||
Robin Appelman
|
||||
Jakob Sack
|
||||
Jan-Christoph Borchardt
|
||||
Michael Gapczynski
|
||||
Arthur Schiwon
|
||||
Bart Visscher
|
||||
Georg Ehrke
|
||||
Brice Maron
|
||||
Tom Needham
|
||||
Marvin Thomas Rabe
|
||||
Florian Pritz
|
||||
Bartek Przybylski
|
||||
Thomas Müller
|
||||
Klaas Freitag
|
||||
Sam Tuke
|
||||
Simon Birnbach
|
||||
Lukas Reschke
|
||||
Christian Reiner
|
||||
Daniel Molkentin
|
||||
…
|
||||
|
||||
With help from many libraries and frameworks including:
|
||||
Open Collaboration Services
|
||||
SabreDAV
|
||||
jQuery
|
||||
…
|
||||
|
||||
"Lock” symbol from thenounproject.com collection
|
||||
"Clock” symbol by Brandon Hopkins, from thenounproject.com collection
|
||||
@@ -1,20 +0,0 @@
|
||||
ChangeLog
|
||||
=========
|
||||
|
||||
NC 11 (????-??-??)
|
||||
------------------
|
||||
* PHP 5.4 and 5.5 no longer supported
|
||||
* PHP 7.1 support
|
||||
* OC_L10N removed use \OCP\IL10N (#1948)
|
||||
* Preview handling is improved by sharing previews:
|
||||
* Preview sharing (shared files/external storages)
|
||||
* Previews are stored in the AppData
|
||||
* Previews are served faster by not first converting them to image objects
|
||||
* Core preview route changed:
|
||||
* Route for the urlgenerator changed from 'core_ajax_preview' to 'core.Preview.getPreview'
|
||||
* $urlGenerator->linkToRoute('core_ajax_preview', ...) => $urlGenerator->linkToRoute('core.Preview.getPreview', ...)
|
||||
* Avatars are cached
|
||||
* Avatars are moved to AppData
|
||||
* For existing avatars this happens automatically in a background job which means that on upgrade you might
|
||||
not see your avatar right away. However after the job has run it should show up again automatically.
|
||||
|
||||
+19
-50
@@ -1,68 +1,37 @@
|
||||
## Submitting issues
|
||||
|
||||
If you have questions about how to install or use Nextcloud, please direct these to our [forum][forum]. We are also available on [IRC][irc].
|
||||
|
||||
### Short version
|
||||
|
||||
* The [**issue template can be found here**][template] but be aware of the different repositories! See list below. Please always use the issue template when reporting issues.
|
||||
If you have questions about how to use ownCloud, please direct these to the [mailing list][mailinglist] or our [forum][forum]. We are also available on [IRC][irc].
|
||||
|
||||
### Guidelines
|
||||
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
|
||||
- Go to one of the repositories, click "issues" and type any word in the top search/command bar.
|
||||
- You can also filter by appending e. g. "state:open" to the search string.
|
||||
- More info on [search syntax within github](https://help.github.com/articles/searching-issues)
|
||||
* This repository ([server](https://github.com/nextcloud/server/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
|
||||
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/nextcloud) or security@nextcloud.com following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
|
||||
* The issues in other components should be reported in their respective repositories: You will find them in our [GitHub Organization](https://github.com/nextcloud/)
|
||||
* Report the issue using our [template][template], it includes all the informations we need to track down the issue.
|
||||
* This repository is *only* for issues within the ownCloud core code. Issues in other compontents should be reported in their own repositores:
|
||||
- [Android client](https://github.com/owncloud/android/issues)
|
||||
- [iOS client](https://github.com/owncloud/ios-issues/issues)
|
||||
- [Desktop client](https://github.com/owncloud/mirall/issues)
|
||||
- [ownCloud apps](https://github.com/owncloud/apps/issues) (e.g. Calendar, Contacts...)
|
||||
* Search the existing issues first, it's likely that your issue was already reported.
|
||||
|
||||
* Report the issue using our [template][template], it includes all the information we need to track down the issue.
|
||||
If your issue appears to be a bug, and hasn't been reported, open a new issue.
|
||||
|
||||
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
|
||||
|
||||
[template]: https://raw.githubusercontent.com/nextcloud/server/master/issue_template.md
|
||||
[forum]: https://help.nextcloud.com/
|
||||
[irc]: https://webchat.freenode.net/?channels=nextcloud
|
||||
[template]: https://raw.github.com/owncloud/core/master/issue_template.md
|
||||
[mailinglist]: https://mail.kde.org/mailman/listinfo/owncloud
|
||||
[forum]: http://forum.owncloud.org/
|
||||
[irc]: http://webchat.freenode.net/?channels=owncloud&uio=d4
|
||||
|
||||
## Contributing to Source Code
|
||||
|
||||
Thanks for wanting to contribute source code to Nextcloud. That's great!
|
||||
Thanks for wanting to contribute source code to ownCloud. That's great!
|
||||
|
||||
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
|
||||
Before we're able to merge your code into the ownCloud core, you need to sign our [Contributor Agreement][agreement].
|
||||
|
||||
### Tests
|
||||
Please read the [Developer Manuals][devmanual] to get useful infos like how to create your first application or how to test the ownCloud code with phpunit.
|
||||
|
||||
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
|
||||
It is a must have that changed and added code segments are unit tested.
|
||||
In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing.
|
||||
|
||||
### Sign your work
|
||||
|
||||
We use the Developer Certificate of Origin (DCO) as a additional safeguard
|
||||
for the Nextcloud project. This is a well established and widely used
|
||||
mechanism to assure contributors have confirmed their right to license
|
||||
their contribution under the project's license.
|
||||
Please read [contribute/developer-certificate-of-origin][dcofile].
|
||||
If you can certify it, then just add a line to every git commit message:
|
||||
|
||||
````
|
||||
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||
````
|
||||
|
||||
Use your real name (sorry, no pseudonyms or anonymous contributions).
|
||||
If you set your `user.name` and `user.email` git configs, you can sign your
|
||||
commit automatically with `git commit -s`. You can also use git [aliases](https://git-scm.com/book/tr/v2/Git-Basics-Git-Aliases)
|
||||
like `git config --global alias.ci 'commit -s'`. Now you can commit with
|
||||
`git ci` and the commit will be signed.
|
||||
|
||||
### Apply a license
|
||||
|
||||
In case you are not sure how to add or update the license header correctly please have a look at [contribute/HowToApplyALicense.md][applyalicense]
|
||||
|
||||
[devmanual]: https://docs.nextcloud.org/server/11/developer_manual/
|
||||
[dcofile]: https://github.com/nextcloud/server/blob/master/contribute/developer-certificate-of-origin
|
||||
[applyalicense]: https://github.com/nextcloud/server/blob/master/contribute/HowToApplyALicense.md
|
||||
[agreement]: http://owncloud.org/about/contributor-agreement/
|
||||
[devmanual]: http://owncloud.org/dev/
|
||||
|
||||
## Translations
|
||||
Please submit translations via [Transifex][transifex].
|
||||
|
||||
[transifex]: https://www.transifex.com/nextcloud
|
||||
[transifex]: https://www.transifex.com/projects/p/owncloud/
|
||||
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
Files in Nextcloud are licensed under the Affero General Public License version 3,
|
||||
the text of which can be found in COPYING, or any later version of the AGPL,
|
||||
Files in ownCloud are licensed under the Affero General Public License version 3,
|
||||
the text of which can be found in COPYING-AGPL, or any later version of the AGPL,
|
||||
unless otherwise noted.
|
||||
|
||||
Licensing of components:
|
||||
@@ -8,8 +8,8 @@ Licensing of components:
|
||||
* MDB2: BSD style custom
|
||||
* User: AGPL
|
||||
* XML/RPC: MIT / PHP
|
||||
* Elementary filetype icons: GPL v3+
|
||||
* Silk icons: Creative Commons Attribution
|
||||
All unmodified files from these and other sources retain their original copyright
|
||||
and license notices: see the relevant individual files.
|
||||
|
||||
Attribution information for Nextcloud is contained in the AUTHORS file.
|
||||
Attribution information for ownCloud is contained in the AUTHORS file.
|
||||
@@ -0,0 +1,20 @@
|
||||
ownCloud gives you freedom and control over your own data.
|
||||
A personal cloud which runs on your own server.
|
||||
|
||||
http://ownCloud.org
|
||||
|
||||
Installation instructions: http://doc.owncloud.org/server/5.0/developer_manual/app/gettingstarted.html
|
||||
Contribution Guidelines: http://owncloud.org/dev/contribute/
|
||||
|
||||
Source code: https://github.com/owncloud
|
||||
Mailing list: https://mail.kde.org/mailman/listinfo/owncloud
|
||||
IRC channel: https://webchat.freenode.net/?channels=owncloud
|
||||
Diaspora: https://joindiaspora.com/u/owncloud
|
||||
Identi.ca: https://identi.ca/owncloud
|
||||
|
||||
Important notice on translations:
|
||||
Please submit translations via Transifex:
|
||||
https://www.transifex.com/projects/p/owncloud/
|
||||
|
||||
For more detailed information about translations:
|
||||
http://owncloud.org/dev/translation/
|
||||
@@ -1,66 +0,0 @@
|
||||
# Nextcloud Server
|
||||
[](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
|
||||
[](https://codecov.io/gh/nextcloud/server)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/209)
|
||||
[](https://webchat.freenode.net/?channels=nextcloud)
|
||||
[](https://webchat.freenode.net/?channels=nextcloud-dev)
|
||||
|
||||
**A safe home for all your data.**
|
||||
|
||||

|
||||
|
||||
## Why is this so awesome?
|
||||
|
||||
* :file_folder: **Access your Data** You can store your files, contacts, calendars and more on a server of your choosing.
|
||||
* :package: **Sync your Data** You keep your files, contacts, calendars and more synchronized amongst your devices.
|
||||
* :arrows_counterclockwise: **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with.
|
||||
* :rocket: **Expandable with dozens of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail) and all those you can discover in our [App Store](https://apps.nextcloud.com)
|
||||
* :lock: **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentification.
|
||||
|
||||
*You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your Enterprise?* [**Learn about all our Features**](https://nextcloud.com/features).
|
||||
|
||||
## Get your Nextcloud
|
||||
|
||||
- [**Install** a server by yourself on your own hardware or by using one of our ready to use **Appliances**](https://nextcloud.com/install/#instructions-server)
|
||||
- [Buy one of the awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/)
|
||||
- [Find a service **provider** who is hosting Nextcloud for you or your company](https://nextcloud.com/providers/)
|
||||
|
||||
*Enterprise? Public Sector or Education user? You may want to have a look into the [**Enterprise Support Subscription**](https://nextcloud.com/enterprise/) provided by the Nextcloud GmbH*
|
||||
|
||||
## Get in touch
|
||||
|
||||
* :clipboard: [Forum](https://help.nextcloud.com)
|
||||
* :busts_in_silhouette: [Facebook](https://facebook.com/nextclouders)
|
||||
* :hatching_chick: [Twitter](https://twitter.com/Nextclouders)
|
||||
|
||||
[…learn more about how to get support for Nextcloud here!](https://nextcloud.com/support)
|
||||
|
||||
## Contribution Guidelines
|
||||
|
||||
All contributions to this repository from June, 16 2016 on are considered to be
|
||||
licensed under the AGPLv3 or any later version.
|
||||
|
||||
Nextcloud doesn't require a CLA (Contributor License Agreement).
|
||||
The copyright belongs to all the individual contributors. Therefore we recommend
|
||||
that every contributor adds following line to the header of a file, if they
|
||||
changed it substantially:
|
||||
|
||||
```
|
||||
@copyright Copyright (c) <year>, <your name> (<your email address>)
|
||||
```
|
||||
|
||||
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
|
||||
|
||||
Please review the [guidelines for contributing](https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md) to this repository.
|
||||
|
||||
More information how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/)
|
||||
|
||||
## Running master checkouts
|
||||
|
||||
Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking `git submodule update --init` or a similar command is needed, for details see Git documentation.
|
||||
|
||||
Several apps by default included in regular releases like [firstrunwizard](https://github.com/nextcloud/firstrunwizard) or [gallery](https://github.com/nextcloud/gallery) are missing in `master` and have to be installed manually as required.
|
||||
|
||||
That aside Git checkouts can be handled the same as release archives.
|
||||
|
||||
Note they should never be used on production systems.
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
|
||||
*
|
||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
$logger = \OC::$server->getLogger();
|
||||
$userSession = \OC::$server->getUserSession();
|
||||
$groupManager = \OC::$server->getGroupManager();
|
||||
|
||||
$auditLogger = new \OCA\Admin_Audit\AuditLogger($logger, $userSession, $groupManager);
|
||||
$auditLogger->registerHooks();
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<info>
|
||||
<id>admin_audit</id>
|
||||
<name>Auditing / Logging</name>
|
||||
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
|
||||
<licence>AGPL</licence>
|
||||
<author>Nextcloud</author>
|
||||
<version>1.1.0</version>
|
||||
<dependencies>
|
||||
<nextcloud min-version="11" max-version="11" />
|
||||
</dependencies>
|
||||
<types>
|
||||
<logging/>
|
||||
</types>
|
||||
</info>
|
||||
@@ -1,88 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
|
||||
use OCP\ILogger;
|
||||
|
||||
class Action {
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
|
||||
/**
|
||||
* @param ILogger $logger
|
||||
*/
|
||||
public function __construct(ILogger $logger) {
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Log a single action with a log level of info
|
||||
*
|
||||
* @param string $text
|
||||
* @param array $params
|
||||
* @param array $elements
|
||||
* @param bool $obfuscateParameters
|
||||
*/
|
||||
public function log($text,
|
||||
array $params,
|
||||
array $elements,
|
||||
$obfuscateParameters = false) {
|
||||
foreach($elements as $element) {
|
||||
if(!isset($params[$element])) {
|
||||
if ($obfuscateParameters) {
|
||||
$this->logger->critical(
|
||||
'$params["'.$element.'"] was missing.',
|
||||
['app' => 'admin_audit']
|
||||
);
|
||||
} else {
|
||||
$this->logger->critical(
|
||||
sprintf(
|
||||
'$params["'.$element.'"] was missing. Transferred value: %s',
|
||||
print_r($params, true)
|
||||
),
|
||||
['app' => 'admin_audit']
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$replaceArray = [];
|
||||
foreach($elements as $element) {
|
||||
if($params[$element] instanceof \DateTime) {
|
||||
$params[$element] = $params[$element]->format('Y-m-d H:i:s');
|
||||
}
|
||||
$replaceArray[] = $params[$element];
|
||||
}
|
||||
|
||||
$this->logger->info(
|
||||
vsprintf(
|
||||
$text,
|
||||
$replaceArray
|
||||
),
|
||||
[
|
||||
'app' => 'admin_audit'
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,60 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
|
||||
/**
|
||||
* Class Auth logs all auth related actions
|
||||
*
|
||||
* @package OCA\Admin_Audit\Actions
|
||||
*/
|
||||
class Auth extends Action {
|
||||
public function loginAttempt(array $params) {
|
||||
$this->log(
|
||||
'Login attempt: "%s"',
|
||||
$params,
|
||||
[
|
||||
'uid',
|
||||
],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
public function loginSuccessful(array $params) {
|
||||
$this->log(
|
||||
'Login successful: "%s"',
|
||||
$params,
|
||||
[
|
||||
'uid',
|
||||
],
|
||||
true
|
||||
);
|
||||
}
|
||||
|
||||
public function logout(array $params) {
|
||||
$this->log(
|
||||
'Logout occurred',
|
||||
[],
|
||||
[]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
|
||||
/**
|
||||
* Class Files logs the actions to files
|
||||
*
|
||||
* @package OCA\Admin_Audit\Actions
|
||||
*/
|
||||
class Files extends Action {
|
||||
/**
|
||||
* Logs file read actions
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function read(array $params) {
|
||||
$this->log(
|
||||
'File accessed: "%s"',
|
||||
$params,
|
||||
[
|
||||
'path',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs rename actions of files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function rename(array $params) {
|
||||
$this->log(
|
||||
'File renamed: "%s" to "%s"',
|
||||
$params,
|
||||
[
|
||||
'oldpath',
|
||||
'newpath',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs creation of files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function create(array $params) {
|
||||
$this->log(
|
||||
'File created: "%s"',
|
||||
$params,
|
||||
[
|
||||
'path',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs copying of files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function copy(array $params) {
|
||||
$this->log(
|
||||
'File copied: "%s" to "%s"',
|
||||
$params,
|
||||
[
|
||||
'oldpath',
|
||||
'newpath',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs writing of files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function write(array $params) {
|
||||
$this->log(
|
||||
'File written to: "%s"',
|
||||
$params,
|
||||
[
|
||||
'path',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs update of files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function update(array $params) {
|
||||
$this->log(
|
||||
'File updated: "%s"',
|
||||
$params,
|
||||
[
|
||||
'path',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs deletions of files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function delete(array $params) {
|
||||
$this->log(
|
||||
'File deleted: "%s"',
|
||||
$params,
|
||||
[
|
||||
'path',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
|
||||
|
||||
use OCA\Admin_Audit\Actions\Action;
|
||||
use OCP\IGroup;
|
||||
use OCP\IUser;
|
||||
|
||||
/**
|
||||
* Class GroupManagement logs all group manager related events
|
||||
*
|
||||
* @package OCA\Admin_Audit
|
||||
*/
|
||||
class GroupManagement extends Action {
|
||||
|
||||
/**
|
||||
* log add user to group event
|
||||
*
|
||||
* @param IGroup $group
|
||||
* @param IUser $user
|
||||
*/
|
||||
public function addUser(IGroup $group, IUser $user) {
|
||||
$this->log('User "%s" added to group "%s"',
|
||||
[
|
||||
'group' => $group->getGID(),
|
||||
'user' => $user->getUID()
|
||||
],
|
||||
[
|
||||
'user', 'group'
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* log remove user from group event
|
||||
*
|
||||
* @param IGroup $group
|
||||
* @param IUser $user
|
||||
*/
|
||||
public function removeUser(IGroup $group, IUser $user) {
|
||||
$this->log('User "%s" removed from group "%s"',
|
||||
[
|
||||
'group' => $group->getGID(),
|
||||
'user' => $user->getUID()
|
||||
],
|
||||
[
|
||||
'user', 'group'
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,191 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
use OCP\Share;
|
||||
|
||||
/**
|
||||
* Class Sharing logs the sharing actions
|
||||
*
|
||||
* @package OCA\Admin_Audit\Actions
|
||||
*/
|
||||
class Sharing extends Action {
|
||||
/**
|
||||
* Logs sharing of data
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function shared(array $params) {
|
||||
if($params['shareType'] === Share::SHARE_TYPE_LINK) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been shared via link with permissions "%s" (Share ID: %s)',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'itemSource',
|
||||
'permissions',
|
||||
'id',
|
||||
]
|
||||
);
|
||||
} elseif($params['shareType'] === Share::SHARE_TYPE_USER) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been shared to the user "%s" with permissions "%s" (Share ID: %s)',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
'id',
|
||||
]
|
||||
);
|
||||
} elseif($params['shareType'] === Share::SHARE_TYPE_GROUP) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been shared to the group "%s" with permissions "%s" (Share ID: %s)',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
'id',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs unsharing of data
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function unshare(array $params) {
|
||||
if($params['shareType'] === Share::SHARE_TYPE_LINK) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been unshared (Share ID: %s)',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'fileTarget',
|
||||
'itemSource',
|
||||
'id',
|
||||
]
|
||||
);
|
||||
} elseif($params['shareType'] === Share::SHARE_TYPE_USER) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been unshared from the user "%s" (Share ID: %s)',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'fileTarget',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'id',
|
||||
]
|
||||
);
|
||||
} elseif($params['shareType'] === Share::SHARE_TYPE_GROUP) {
|
||||
$this->log(
|
||||
'The %s "%s" with ID "%s" has been unshared from the group "%s" (Share ID: %s)',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'fileTarget',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'id',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs the updating of permission changes for shares
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function updatePermissions(array $params) {
|
||||
$this->log(
|
||||
'The permissions of the shared %s "%s" with ID "%s" have been changed to "%s"',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'path',
|
||||
'itemSource',
|
||||
'permissions',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs the password changes for a share
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function updatePassword(array $params) {
|
||||
$this->log(
|
||||
'The password of the publicly shared %s "%s" with ID "%s" has been changed',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'token',
|
||||
'itemSource',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs the expiration date changes for a share
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function updateExpirationDate(array $params) {
|
||||
$this->log(
|
||||
'The expiration date of the publicly shared %s with ID "%s" has been changed to "%s"',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemSource',
|
||||
'date',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs access of shared files
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function shareAccessed(array $params) {
|
||||
$this->log(
|
||||
'The shared %s with the token "%s" by "%s" has been accessed.',
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'token',
|
||||
'uidOwner',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
|
||||
|
||||
class Trashbin extends Action {
|
||||
|
||||
public function delete($params) {
|
||||
$this->log('File "%s" deleted from trash bin.',
|
||||
['path' => $params['path']], ['path']
|
||||
);
|
||||
}
|
||||
|
||||
public function restore($params) {
|
||||
$this->log('File "%s" restored from trash bin.',
|
||||
['path' => $params['filePath']], ['path']
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,81 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
||||
* @author Lukas Reschke <lukas@statuscode.ch>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
use OCP\IUser;
|
||||
|
||||
/**
|
||||
* Class UserManagement logs all user management related actions.
|
||||
*
|
||||
* @package OCA\Admin_Audit\Actions
|
||||
*/
|
||||
class UserManagement extends Action {
|
||||
/**
|
||||
* Log creation of users
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function create(array $params) {
|
||||
$this->log(
|
||||
'User created: "%s"',
|
||||
$params,
|
||||
[
|
||||
'uid',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Log deletion of users
|
||||
*
|
||||
* @param array $params
|
||||
*/
|
||||
public function delete(array $params) {
|
||||
$this->log(
|
||||
'User deleted: "%s"',
|
||||
$params,
|
||||
[
|
||||
'uid',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Logs changing of the user scope
|
||||
*
|
||||
* @param IUser $user
|
||||
*/
|
||||
public function setPassword(IUser $user) {
|
||||
if($user->getBackendClassName() === 'Database') {
|
||||
$this->log(
|
||||
'Password of user "%s" has been changed',
|
||||
[
|
||||
'user' => $user->getUID(),
|
||||
],
|
||||
[
|
||||
'user',
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
namespace OCA\Admin_Audit\Actions;
|
||||
|
||||
|
||||
class Versions extends Action {
|
||||
|
||||
public function rollback($params) {
|
||||
$this->log('Version "%s" of "%s" was restored.',
|
||||
[
|
||||
'version' => $params['revision'],
|
||||
'path' => $params['path']
|
||||
],
|
||||
['version', 'path']
|
||||
);
|
||||
}
|
||||
|
||||
public function delete($params) {
|
||||
$this->log('Version "%s" was deleted.',
|
||||
['path' => $params['path']],
|
||||
['path']
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,188 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @author Bjoern Schiessle <bjoern@schiessle.org>
|
||||
*
|
||||
* @license GNU AGPL version 3 or any later version
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
namespace OCA\Admin_Audit;
|
||||
|
||||
|
||||
use OC\Files\Filesystem;
|
||||
use OCA\Admin_Audit\Actions\Auth;
|
||||
use OCA\Admin_Audit\Actions\Files;
|
||||
use OCA\Admin_Audit\Actions\GroupManagement;
|
||||
use OCA\Admin_Audit\Actions\Sharing;
|
||||
use OCA\Admin_Audit\Actions\Trashbin;
|
||||
use OCA\Admin_Audit\Actions\UserManagement;
|
||||
use OCA\Admin_Audit\Actions\Versions;
|
||||
use OCP\IGroupManager;
|
||||
use OCP\ILogger;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Util;
|
||||
|
||||
class AuditLogger {
|
||||
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
|
||||
/** @var IUserSession */
|
||||
private $userSession;
|
||||
|
||||
/** @var IGroupManager */
|
||||
private $groupManager;
|
||||
|
||||
/**
|
||||
* AuditLogger constructor.
|
||||
*
|
||||
* @param ILogger $logger
|
||||
* @param IUserSession $userSession
|
||||
* @param IGroupManager $groupManager
|
||||
*/
|
||||
public function __construct(ILogger $logger,
|
||||
IUserSession $userSession,
|
||||
IGroupManager $groupManager) {
|
||||
$this->logger = $logger;
|
||||
$this->userSession = $userSession;
|
||||
$this->groupManager = $groupManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* register hooks in order to log them
|
||||
*/
|
||||
public function registerHooks() {
|
||||
$this->userManagementHooks();
|
||||
$this->groupHooks();
|
||||
$this->sharingHooks();
|
||||
$this->authHooks();
|
||||
$this->fileHooks();
|
||||
$this->trashbinHooks();
|
||||
$this->versionsHooks();
|
||||
}
|
||||
|
||||
/**
|
||||
* connect to user management hooks
|
||||
*/
|
||||
private function userManagementHooks() {
|
||||
$userActions = new UserManagement($this->logger);
|
||||
|
||||
Util::connectHook('OC_User', 'post_createUser', $userActions, 'create');
|
||||
Util::connectHook('OC_User', 'post_deleteUser', $userActions, 'delete');
|
||||
$this->userSession->listen('\OC\User', 'postSetPassword', [$userActions, 'setPassword']);
|
||||
}
|
||||
|
||||
private function groupHooks() {
|
||||
$groupActions = new GroupManagement($this->logger);
|
||||
$this->groupManager->listen('\OC\Group', 'postRemoveUser', [$groupActions, 'removeUser']);
|
||||
$this->groupManager->listen('\OC\Group', 'postAddUser', [$groupActions, 'addUser']);
|
||||
}
|
||||
|
||||
/**
|
||||
* connect to sharing events
|
||||
*/
|
||||
private function sharingHooks() {
|
||||
$shareActions = new Sharing($this->logger);
|
||||
|
||||
Util::connectHook('OCP\Share', 'post_shared', $shareActions, 'shared');
|
||||
Util::connectHook('OCP\Share', 'post_unshare', $shareActions, 'unshare');
|
||||
Util::connectHook('OCP\Share', 'post_update_permissions', $shareActions, 'updatePermissions');
|
||||
Util::connectHook('OCP\Share', 'post_update_password', $shareActions, 'updatePassword');
|
||||
Util::connectHook('OCP\Share', 'post_set_expiration_date', $shareActions, 'updateExpirationDate');
|
||||
Util::connectHook('OCP\Share', 'share_link_access', $shareActions, 'shareAccessed');
|
||||
}
|
||||
|
||||
/**
|
||||
* connect to authentication event and related actions
|
||||
*/
|
||||
private function authHooks() {
|
||||
$authActions = new Auth($this->logger);
|
||||
|
||||
Util::connectHook('OC_User', 'pre_login', $authActions, 'loginAttempt');
|
||||
Util::connectHook('OC_User', 'post_login', $authActions, 'loginSuccessful');
|
||||
Util::connectHook('OC_User', 'logout', $authActions, 'logout');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* connect to file hooks
|
||||
*/
|
||||
private function fileHooks() {
|
||||
$fileActions = new Files($this->logger);
|
||||
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_rename,
|
||||
$fileActions,
|
||||
'rename'
|
||||
);
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_create,
|
||||
$fileActions,
|
||||
'create'
|
||||
);
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_copy,
|
||||
$fileActions,
|
||||
'copy'
|
||||
);
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_write,
|
||||
$fileActions,
|
||||
'write'
|
||||
);
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_post_update,
|
||||
$fileActions,
|
||||
'update'
|
||||
);
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_read,
|
||||
$fileActions,
|
||||
'read'
|
||||
);
|
||||
Util::connectHook(
|
||||
Filesystem::CLASSNAME,
|
||||
Filesystem::signal_delete,
|
||||
$fileActions,
|
||||
'delete'
|
||||
);
|
||||
}
|
||||
|
||||
public function versionsHooks() {
|
||||
$versionsActions = new Versions($this->logger);
|
||||
Util::connectHook('\OCP\Versions', 'rollback', $versionsActions, 'rollback');
|
||||
Util::connectHook('\OCP\Versions', 'delete',$versionsActions, 'delete');
|
||||
}
|
||||
|
||||
/**
|
||||
* connect to trash bin hooks
|
||||
*/
|
||||
private function trashbinHooks() {
|
||||
$trashActions = new Trashbin($this->logger);
|
||||
Util::connectHook('\OCP\Trashbin', 'preDelete', $trashActions, 'delete');
|
||||
Util::connectHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', $trashActions, 'restore');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* @copyright Copyright (c) 2016, ownCloud, Inc.
|
||||
*
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* @author Vincent Petry <pvince81@owncloud.com>
|
||||
*
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
* This code is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License, version 3,
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
*/
|
||||
|
||||
$eventDispatcher = \OC::$server->getEventDispatcher();
|
||||
$eventDispatcher->addListener(
|
||||
'OCA\Files::loadAdditionalScripts',
|
||||
function() {
|
||||
\OCP\Util::addScript('oc-backbone-webdav');
|
||||
\OCP\Util::addScript('comments', 'app');
|
||||
\OCP\Util::addScript('comments', 'commentmodel');
|
||||
\OCP\Util::addScript('comments', 'commentcollection');
|
||||
\OCP\Util::addScript('comments', 'commentsummarymodel');
|
||||
\OCP\Util::addScript('comments', 'commentstabview');
|
||||
\OCP\Util::addScript('comments', 'filesplugin');
|
||||
\OCP\Util::addScript('comments', 'activitytabviewplugin');
|
||||
\OCP\Util::addStyle('comments', 'comments');
|
||||
}
|
||||
);
|
||||
|
||||
$eventDispatcher->addListener(\OCP\Comments\CommentsEntityEvent::EVENT_ENTITY, function(\OCP\Comments\CommentsEntityEvent $event) {
|
||||
$event->addEntityCollection('files', function($name) {
|
||||
$nodes = \OC::$server->getUserFolder()->getById(intval($name));
|
||||
return !empty($nodes);
|
||||
});
|
||||
});
|
||||
|
||||
$notificationManager = \OC::$server->getNotificationManager();
|
||||
$notificationManager->registerNotifier(
|
||||
function() {
|
||||
$application = new \OCP\AppFramework\App('comments');
|
||||
return $application->getContainer()->query(\OCA\Comments\Notification\Notifier::class);
|
||||
},
|
||||
function () {
|
||||
$l = \OC::$server->getL10N('comments');
|
||||
return ['id' => 'comments', 'name' => $l->t('Comments')];
|
||||
}
|
||||
);
|
||||
|
||||
$commentsManager = \OC::$server->getCommentsManager();
|
||||
$commentsManager->registerEventHandler(function () {
|
||||
$application = new \OCP\AppFramework\App('comments');
|
||||
/** @var \OCA\Comments\EventHandler $handler */
|
||||
$handler = $application->getContainer()->query(\OCA\Comments\EventHandler::class);
|
||||
return $handler;
|
||||
});
|
||||
$commentsManager->registerDisplayNameResolver('user', function($id) {
|
||||
$manager = \OC::$server->getUserManager();
|
||||
$user = $manager->get($id);
|
||||
if(is_null($user)) {
|
||||
$l = \OC::$server->getL10N('comments');
|
||||
$displayName = $l->t('Unknown user');
|
||||
} else {
|
||||
$displayName = $user->getDisplayName();
|
||||
}
|
||||
return $displayName;
|
||||
});
|
||||
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<info>
|
||||
<id>comments</id>
|
||||
<name>Comments</name>
|
||||
<description>Files app plugin to add comments to files</description>
|
||||
<licence>AGPL</licence>
|
||||
<author>Arthur Schiwon, Vincent Petry</author>
|
||||
<default_enable/>
|
||||
<version>1.1.0</version>
|
||||
<dependencies>
|
||||
<nextcloud min-version="11" max-version="11" />
|
||||
</dependencies>
|
||||
<types>
|
||||
<logging/>
|
||||
</types>
|
||||
|
||||
<activity>
|
||||
<settings>
|
||||
<setting>OCA\Comments\Activity\Setting</setting>
|
||||
</settings>
|
||||
|
||||
<filters>
|
||||
<filter>OCA\Comments\Activity\Filter</filter>
|
||||
</filters>
|
||||
|
||||
<providers>
|
||||
<provider>OCA\Comments\Activity\Provider</provider>
|
||||
</providers>
|
||||
</activity>
|
||||
</info>
|
||||
@@ -1,28 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @author Arthur Schiwon <blizzz@arthur-schiwon.de>
|
||||
*
|
||||
* @copyright Copyright (c) 2016, ownCloud, Inc.
|
||||
* @license AGPL-3.0
|
||||
*
|
||||
* This code is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License, version 3,
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Affero General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License, version 3,
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
*
|
||||
*/
|
||||
|
||||
use \OCA\Comments\AppInfo\Application;
|
||||
|
||||
$application = new Application();
|
||||
$application->registerRoutes($this, ['routes' => [
|
||||
['name' => 'Notifications#view', 'url' => '/notifications/view/{id}', 'verb' => 'GET'],
|
||||
]]);
|
||||
@@ -1,169 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
#commentsTabView .emptycontent {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#commentsTabView .newCommentForm {
|
||||
position: relative;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
#commentsTabView .newCommentForm .message {
|
||||
width: calc(100% - 81px); /* 36 (left margin) + 30 (right padding) + 15 (right padding of surrounding box) */
|
||||
margin-left: 36px;
|
||||
padding-right: 30px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
#commentsTabView .newCommentForm .submit {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
right: 8px;
|
||||
width: 30px;
|
||||
margin: 0;
|
||||
padding: 7px 9px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
opacity: .3;
|
||||
}
|
||||
#commentsTabView .newCommentForm .submit:hover,
|
||||
#commentsTabView .newCommentForm .submit:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#commentsTabView .newCommentForm .submitLoading {
|
||||
background-position: left;
|
||||
}
|
||||
|
||||
#commentsTabView .newCommentForm .cancel {
|
||||
margin-right: 6px;
|
||||
}
|
||||
|
||||
#commentsTabView .newCommentForm textarea {
|
||||
resize: none;
|
||||
}
|
||||
|
||||
#commentsTabView .comment {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .avatar {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .message .avatar {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#activityTabView li.comment.collapsed .activitymessage,
|
||||
#commentsTabView .comment.collapsed .message {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
#activityTabView li.comment.collapsed .activitymessage,
|
||||
#commentsTabView .comment.collapsed .message {
|
||||
max-height: 70px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#activityTabView li.comment .message-overlay,
|
||||
#commentsTabView .comment .message-overlay {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#activityTabView li.comment.collapsed .message-overlay,
|
||||
#commentsTabView .comment.collapsed .message-overlay {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
height: 50px;
|
||||
pointer-events: none;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: -moz-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
|
||||
background: -webkit-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
|
||||
background: -o-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
|
||||
background: -ms-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
|
||||
background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,1));
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00FFFFFF', endColorstr='#FFFFFFFF');
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
#commentsTabView .authorRow>div {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .authorRow {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .author,
|
||||
#commentsTabView .comment .date {
|
||||
opacity: .5;
|
||||
}
|
||||
#commentsTabView .comment .author {
|
||||
margin-left: 5px;
|
||||
}
|
||||
#commentsTabView .comment .date {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 5px;
|
||||
}
|
||||
|
||||
#commentsTabView .comments li .message {
|
||||
padding-left: 40px;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .action {
|
||||
opacity: 0;
|
||||
vertical-align: middle;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#commentsTabView .comment:hover .action {
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .action:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#commentsTabView .comment .action.delete {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
#commentsTabView .comment.disabled {
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
#commentsTabView .comment.disabled .action {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
#commentsTabView .message.error {
|
||||
color: #e9322d;
|
||||
border-color: #e9322d;
|
||||
-webkit-box-shadow: 0 0 6px #f8b9b7;
|
||||
-moz-box-shadow: 0 0 6px #f8b9b7;
|
||||
box-shadow: 0 0 6px #f8b9b7;
|
||||
}
|
||||
|
||||
.app-files .action-comment {
|
||||
padding: 16px 14px;
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 32 32"><path fill="#fff" d="M16 3C7.163 3 0 7.925 0 14s7.163 11 16 11c.5 0 .98-.032 1.47-.063L26 32v-9.406c3.658-2.017 6-5.12 6-8.595 0-6.076-7.164-11-16-11z"/></svg>
|
||||
|
Before Width: | Height: | Size: 242 B |
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* @author Joas Schilling <coding@schilljs.com>
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
(function() {
|
||||
OCA.Comments.ActivityTabViewPlugin = {
|
||||
|
||||
/**
|
||||
* Prepare activity for display
|
||||
*
|
||||
* @param {OCA.Activity.ActivityModel} model for this activity
|
||||
* @param {jQuery} $el jQuery handle for this activity
|
||||
* @param {string} view The view that displayes this activity
|
||||
*/
|
||||
prepareModelForDisplay: function (model, $el, view) {
|
||||
if (model.get('app') !== 'comments' || model.get('type') !== 'comments') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (view === 'ActivityTabView') {
|
||||
$el.addClass('comment');
|
||||
if (model.get('message') && this._isLong(model.get('message'))) {
|
||||
$el.addClass('collapsed');
|
||||
var $overlay = $('<div>').addClass('message-overlay');
|
||||
$el.find('.activitymessage').after($overlay);
|
||||
$el.on('click', this._onClickCollapsedComment);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/*
|
||||
* Copy of CommentsTabView._onClickComment()
|
||||
*/
|
||||
_onClickCollapsedComment: function(ev) {
|
||||
var $row = $(ev.target);
|
||||
if (!$row.is('.comment')) {
|
||||
$row = $row.closest('.comment');
|
||||
}
|
||||
$row.removeClass('collapsed');
|
||||
},
|
||||
|
||||
/*
|
||||
* Copy of CommentsTabView._isLong()
|
||||
*/
|
||||
_isLong: function(message) {
|
||||
return message.length > 250 || (message.match(/\n/g) || []).length > 1;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
})();
|
||||
|
||||
OC.Plugins.register('OCA.Activity.RenderingPlugins', OCA.Comments.ActivityTabViewPlugin);
|
||||
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
(function() {
|
||||
if (!OCA.Comments) {
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
OCA.Comments = {};
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
(function(OC, OCA) {
|
||||
|
||||
/**
|
||||
* @class OCA.Comments.CommentCollection
|
||||
* @classdesc
|
||||
*
|
||||
* Collection of comments assigned to a file
|
||||
*
|
||||
*/
|
||||
var CommentCollection = OC.Backbone.Collection.extend(
|
||||
/** @lends OCA.Comments.CommentCollection.prototype */ {
|
||||
|
||||
sync: OC.Backbone.davSync,
|
||||
|
||||
model: OCA.Comments.CommentModel,
|
||||
|
||||
/**
|
||||
* Object type
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
_objectType: 'files',
|
||||
|
||||
/**
|
||||
* Object id
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
_objectId: null,
|
||||
|
||||
/**
|
||||
* True if there are no more page results left to fetch
|
||||
*
|
||||
* @type bool
|
||||
*/
|
||||
_endReached: false,
|
||||
|
||||
/**
|
||||
* Number of comments to fetch per page
|
||||
*
|
||||
* @type int
|
||||
*/
|
||||
_limit : 20,
|
||||
|
||||
/**
|
||||
* Initializes the collection
|
||||
*
|
||||
* @param {string} [options.objectType] object type
|
||||
* @param {string} [options.objectId] object id
|
||||
*/
|
||||
initialize: function(models, options) {
|
||||
options = options || {};
|
||||
if (options.objectType) {
|
||||
this._objectType = options.objectType;
|
||||
}
|
||||
if (options.objectId) {
|
||||
this._objectId = options.objectId;
|
||||
}
|
||||
},
|
||||
|
||||
url: function() {
|
||||
return OC.linkToRemote('dav') + '/comments/' +
|
||||
encodeURIComponent(this._objectType) + '/' +
|
||||
encodeURIComponent(this._objectId) + '/';
|
||||
},
|
||||
|
||||
setObjectId: function(objectId) {
|
||||
this._objectId = objectId;
|
||||
},
|
||||
|
||||
hasMoreResults: function() {
|
||||
return !this._endReached;
|
||||
},
|
||||
|
||||
reset: function() {
|
||||
this._endReached = false;
|
||||
this._summaryModel = null;
|
||||
return OC.Backbone.Collection.prototype.reset.apply(this, arguments);
|
||||
},
|
||||
|
||||
/**
|
||||
* Fetch the next set of results
|
||||
*/
|
||||
fetchNext: function(options) {
|
||||
var self = this;
|
||||
if (!this.hasMoreResults()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
var body = '<?xml version="1.0" encoding="utf-8" ?>\n' +
|
||||
'<oc:filter-comments xmlns:D="DAV:" xmlns:oc="http://owncloud.org/ns">\n' +
|
||||
// load one more so we know there is more
|
||||
' <oc:limit>' + (this._limit + 1) + '</oc:limit>\n' +
|
||||
' <oc:offset>' + this.length + '</oc:offset>\n' +
|
||||
'</oc:filter-comments>\n';
|
||||
|
||||
options = options || {};
|
||||
var success = options.success;
|
||||
options = _.extend({
|
||||
remove: false,
|
||||
parse: true,
|
||||
data: body,
|
||||
davProperties: CommentCollection.prototype.model.prototype.davProperties,
|
||||
success: function(resp) {
|
||||
if (resp.length <= self._limit) {
|
||||
// no new entries, end reached
|
||||
self._endReached = true;
|
||||
} else {
|
||||
// remove last entry, for next page load
|
||||
resp = _.initial(resp);
|
||||
}
|
||||
if (!self.set(resp, options)) {
|
||||
return false;
|
||||
}
|
||||
if (success) {
|
||||
success.apply(null, arguments);
|
||||
}
|
||||
self.trigger('sync', 'REPORT', self, options);
|
||||
}
|
||||
}, options);
|
||||
|
||||
return this.sync('REPORT', this, options);
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns the matching summary model
|
||||
*
|
||||
* @return {OCA.Comments.CommentSummaryModel} summary model
|
||||
*/
|
||||
getSummaryModel: function() {
|
||||
if (!this._summaryModel) {
|
||||
this._summaryModel = new OCA.Comments.CommentSummaryModel({
|
||||
id: this._objectId,
|
||||
objectType: this._objectType
|
||||
});
|
||||
}
|
||||
return this._summaryModel;
|
||||
},
|
||||
|
||||
/**
|
||||
* Updates the read marker for this comment thread
|
||||
*
|
||||
* @param {Date} [date] optional date, defaults to now
|
||||
* @param {Object} [options] backbone options
|
||||
*/
|
||||
updateReadMarker: function(date, options) {
|
||||
options = options || {};
|
||||
|
||||
return this.getSummaryModel().save({
|
||||
readMarker: (date || new Date()).toUTCString()
|
||||
}, options);
|
||||
}
|
||||
});
|
||||
|
||||
OCA.Comments.CommentCollection = CommentCollection;
|
||||
})(OC, OCA);
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
(function(OC, OCA) {
|
||||
var NS_OWNCLOUD = 'http://owncloud.org/ns';
|
||||
/**
|
||||
* @class OCA.Comments.CommentModel
|
||||
* @classdesc
|
||||
*
|
||||
* Comment
|
||||
*
|
||||
*/
|
||||
var CommentModel = OC.Backbone.Model.extend(
|
||||
/** @lends OCA.Comments.CommentModel.prototype */ {
|
||||
sync: OC.Backbone.davSync,
|
||||
|
||||
defaults: {
|
||||
actorType: 'users',
|
||||
objectType: 'files'
|
||||
},
|
||||
|
||||
davProperties: {
|
||||
'id': '{' + NS_OWNCLOUD + '}id',
|
||||
'message': '{' + NS_OWNCLOUD + '}message',
|
||||
'actorType': '{' + NS_OWNCLOUD + '}actorType',
|
||||
'actorId': '{' + NS_OWNCLOUD + '}actorId',
|
||||
'actorDisplayName': '{' + NS_OWNCLOUD + '}actorDisplayName',
|
||||
'creationDateTime': '{' + NS_OWNCLOUD + '}creationDateTime',
|
||||
'objectType': '{' + NS_OWNCLOUD + '}objectType',
|
||||
'objectId': '{' + NS_OWNCLOUD + '}objectId',
|
||||
'isUnread': '{' + NS_OWNCLOUD + '}isUnread',
|
||||
'mentions': '{' + NS_OWNCLOUD + '}mentions'
|
||||
},
|
||||
|
||||
parse: function(data) {
|
||||
return {
|
||||
id: data.id,
|
||||
message: data.message,
|
||||
actorType: data.actorType,
|
||||
actorId: data.actorId,
|
||||
actorDisplayName: data.actorDisplayName,
|
||||
creationDateTime: data.creationDateTime,
|
||||
objectType: data.objectType,
|
||||
objectId: data.objectId,
|
||||
isUnread: (data.isUnread === 'true'),
|
||||
mentions: this._parseMentions(data.mentions)
|
||||
};
|
||||
},
|
||||
|
||||
_parseMentions: function(mentions) {
|
||||
if(_.isUndefined(mentions)) {
|
||||
return {};
|
||||
}
|
||||
var result = {};
|
||||
for(var i in mentions) {
|
||||
var mention = mentions[i];
|
||||
if(_.isUndefined(mention.localName) || mention.localName !== 'mention') {
|
||||
continue;
|
||||
}
|
||||
result[i] = {};
|
||||
for (var child = mention.firstChild; child; child = child.nextSibling) {
|
||||
if(_.isUndefined(child.localName) || !child.localName.startsWith('mention')) {
|
||||
continue;
|
||||
}
|
||||
result[i][child.localName] = child.textContent;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
});
|
||||
|
||||
OCA.Comments.CommentModel = CommentModel;
|
||||
})(OC, OCA);
|
||||
|
||||
@@ -1,517 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
/* global Handlebars, escapeHTML */
|
||||
|
||||
(function(OC, OCA) {
|
||||
var TEMPLATE =
|
||||
'<ul class="comments">' +
|
||||
'</ul>' +
|
||||
'<div class="emptycontent hidden"><div class="icon-comment"></div>' +
|
||||
'<p>{{emptyResultLabel}}</p></div>' +
|
||||
'<input type="button" class="showMore hidden" value="{{moreLabel}}"' +
|
||||
' name="show-more" id="show-more" />' +
|
||||
'<div class="loading hidden" style="height: 50px"></div>';
|
||||
|
||||
var EDIT_COMMENT_TEMPLATE =
|
||||
'<div class="newCommentRow comment" data-id="{{id}}">' +
|
||||
' <div class="authorRow">' +
|
||||
' {{#if avatarEnabled}}' +
|
||||
' <div class="avatar" data-username="{{actorId}}"></div>' +
|
||||
' {{/if}}' +
|
||||
' <div class="author">{{actorDisplayName}}</div>' +
|
||||
'{{#if isEditMode}}' +
|
||||
' <a href="#" class="action delete icon icon-delete has-tooltip" title="{{deleteTooltip}}"></a>' +
|
||||
'{{/if}}' +
|
||||
' </div>' +
|
||||
' <form class="newCommentForm">' +
|
||||
' <textarea rows="1" class="message" placeholder="{{newMessagePlaceholder}}">{{message}}</textarea>' +
|
||||
' <input class="submit icon-confirm" type="submit" value="" />' +
|
||||
'{{#if isEditMode}}' +
|
||||
' <input class="cancel pull-right" type="button" value="{{cancelText}}" />' +
|
||||
'{{/if}}' +
|
||||
' <div class="submitLoading icon-loading-small hidden"></div>'+
|
||||
' </form>' +
|
||||
'</div>';
|
||||
|
||||
var COMMENT_TEMPLATE =
|
||||
'<li class="comment{{#if isUnread}} unread{{/if}}{{#if isLong}} collapsed{{/if}}" data-id="{{id}}">' +
|
||||
' <div class="authorRow">' +
|
||||
' {{#if avatarEnabled}}' +
|
||||
' <div class="avatar" {{#if actorId}}data-username="{{actorId}}"{{/if}}> </div>' +
|
||||
' {{/if}}' +
|
||||
' <div class="author">{{actorDisplayName}}</div>' +
|
||||
'{{#if isUserAuthor}}' +
|
||||
' <a href="#" class="action edit icon icon-rename has-tooltip" title="{{editTooltip}}"></a>' +
|
||||
'{{/if}}' +
|
||||
' <div class="date has-tooltip live-relative-timestamp" data-timestamp="{{timestamp}}" title="{{altDate}}">{{date}}</div>' +
|
||||
' </div>' +
|
||||
' <div class="message">{{{formattedMessage}}}</div>' +
|
||||
'{{#if isLong}}' +
|
||||
' <div class="message-overlay"></div>' +
|
||||
'{{/if}}' +
|
||||
'</li>';
|
||||
|
||||
/**
|
||||
* @memberof OCA.Comments
|
||||
*/
|
||||
var CommentsTabView = OCA.Files.DetailTabView.extend(
|
||||
/** @lends OCA.Comments.CommentsTabView.prototype */ {
|
||||
id: 'commentsTabView',
|
||||
className: 'tab commentsTabView',
|
||||
|
||||
events: {
|
||||
'submit .newCommentForm': '_onSubmitComment',
|
||||
'click .showMore': '_onClickShowMore',
|
||||
'click .action.edit': '_onClickEditComment',
|
||||
'click .action.delete': '_onClickDeleteComment',
|
||||
'click .cancel': '_onClickCloseComment',
|
||||
'click .comment': '_onClickComment'
|
||||
},
|
||||
|
||||
_commentMaxLength: 1000,
|
||||
|
||||
initialize: function() {
|
||||
OCA.Files.DetailTabView.prototype.initialize.apply(this, arguments);
|
||||
this.collection = new OCA.Comments.CommentCollection();
|
||||
this.collection.on('request', this._onRequest, this);
|
||||
this.collection.on('sync', this._onEndRequest, this);
|
||||
this.collection.on('add', this._onAddModel, this);
|
||||
|
||||
this._avatarsEnabled = !!OC.config.enable_avatars;
|
||||
|
||||
this._commentMaxThreshold = this._commentMaxLength * 0.9;
|
||||
|
||||
// TODO: error handling
|
||||
_.bindAll(this, '_onTypeComment');
|
||||
},
|
||||
|
||||
template: function(params) {
|
||||
if (!this._template) {
|
||||
this._template = Handlebars.compile(TEMPLATE);
|
||||
}
|
||||
var currentUser = OC.getCurrentUser();
|
||||
return this._template(_.extend({
|
||||
avatarEnabled: this._avatarsEnabled,
|
||||
actorId: currentUser.uid,
|
||||
actorDisplayName: currentUser.displayName
|
||||
}, params));
|
||||
},
|
||||
|
||||
editCommentTemplate: function(params) {
|
||||
if (!this._editCommentTemplate) {
|
||||
this._editCommentTemplate = Handlebars.compile(EDIT_COMMENT_TEMPLATE);
|
||||
}
|
||||
var currentUser = OC.getCurrentUser();
|
||||
return this._editCommentTemplate(_.extend({
|
||||
avatarEnabled: this._avatarsEnabled,
|
||||
actorId: currentUser.uid,
|
||||
actorDisplayName: currentUser.displayName,
|
||||
newMessagePlaceholder: t('comments', 'New comment …'),
|
||||
deleteTooltip: t('comments', 'Delete comment'),
|
||||
submitText: t('comments', 'Post'),
|
||||
cancelText: t('comments', 'Cancel')
|
||||
}, params));
|
||||
},
|
||||
|
||||
commentTemplate: function(params) {
|
||||
if (!this._commentTemplate) {
|
||||
this._commentTemplate = Handlebars.compile(COMMENT_TEMPLATE);
|
||||
}
|
||||
|
||||
params = _.extend({
|
||||
avatarEnabled: this._avatarsEnabled,
|
||||
editTooltip: t('comments', 'Edit comment'),
|
||||
isUserAuthor: OC.getCurrentUser().uid === params.actorId,
|
||||
isLong: this._isLong(params.message)
|
||||
}, params);
|
||||
|
||||
if (params.actorType === 'deleted_users') {
|
||||
// makes the avatar a X
|
||||
params.actorId = null;
|
||||
params.actorDisplayName = t('comments', '[Deleted user]');
|
||||
}
|
||||
|
||||
return this._commentTemplate(params);
|
||||
},
|
||||
|
||||
getLabel: function() {
|
||||
return t('comments', 'Comments');
|
||||
},
|
||||
|
||||
setFileInfo: function(fileInfo) {
|
||||
if (fileInfo) {
|
||||
this.model = fileInfo;
|
||||
this.render();
|
||||
this.collection.setObjectId(fileInfo.id);
|
||||
// reset to first page
|
||||
this.collection.reset([], {silent: true});
|
||||
this.nextPage();
|
||||
} else {
|
||||
this.model = null;
|
||||
this.render();
|
||||
this.collection.reset();
|
||||
}
|
||||
},
|
||||
|
||||
render: function() {
|
||||
this.$el.html(this.template({
|
||||
emptyResultLabel: t('comments', 'No comments yet, start the conversation!'),
|
||||
moreLabel: t('comments', 'More comments …')
|
||||
}));
|
||||
this.$el.find('.comments').before(this.editCommentTemplate({}));
|
||||
this.$el.find('.has-tooltip').tooltip();
|
||||
this.$container = this.$el.find('ul.comments');
|
||||
if (this._avatarsEnabled) {
|
||||
this.$el.find('.avatar').avatar(OC.getCurrentUser().uid, 32);
|
||||
}
|
||||
this.delegateEvents();
|
||||
this.$el.find('.message').on('keydown input change', this._onTypeComment);
|
||||
|
||||
autosize(this.$el.find('.newCommentRow textarea'))
|
||||
},
|
||||
|
||||
_formatItem: function(commentModel) {
|
||||
var timestamp = new Date(commentModel.get('creationDateTime')).getTime();
|
||||
var data = _.extend({
|
||||
timestamp: timestamp,
|
||||
date: OC.Util.relativeModifiedDate(timestamp),
|
||||
altDate: OC.Util.formatDate(timestamp),
|
||||
formattedMessage: this._formatMessage(commentModel.get('message'), commentModel.get('mentions'))
|
||||
}, commentModel.attributes);
|
||||
return data;
|
||||
},
|
||||
|
||||
_toggleLoading: function(state) {
|
||||
this._loading = state;
|
||||
this.$el.find('.loading').toggleClass('hidden', !state);
|
||||
},
|
||||
|
||||
_onRequest: function(type) {
|
||||
if (type === 'REPORT') {
|
||||
this._toggleLoading(true);
|
||||
this.$el.find('.showMore').addClass('hidden');
|
||||
}
|
||||
},
|
||||
|
||||
_onEndRequest: function(type) {
|
||||
var fileInfoModel = this.model;
|
||||
this._toggleLoading(false);
|
||||
this.$el.find('.emptycontent').toggleClass('hidden', !!this.collection.length);
|
||||
this.$el.find('.showMore').toggleClass('hidden', !this.collection.hasMoreResults());
|
||||
|
||||
if (type !== 'REPORT') {
|
||||
return;
|
||||
}
|
||||
|
||||
// find first unread comment
|
||||
var firstUnreadComment = this.collection.findWhere({isUnread: true});
|
||||
if (firstUnreadComment) {
|
||||
// update read marker
|
||||
this.collection.updateReadMarker(
|
||||
null,
|
||||
{
|
||||
success: function() {
|
||||
fileInfoModel.set('commentsUnread', 0);
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
_onAddModel: function(model, collection, options) {
|
||||
var $el = $(this.commentTemplate(this._formatItem(model)));
|
||||
if (!_.isUndefined(options.at) && collection.length > 1) {
|
||||
this.$container.find('li').eq(options.at).before($el);
|
||||
} else {
|
||||
this.$container.append($el);
|
||||
}
|
||||
|
||||
this._postRenderItem($el);
|
||||
},
|
||||
|
||||
_postRenderItem: function($el) {
|
||||
$el.find('.has-tooltip').tooltip();
|
||||
if(this._avatarsEnabled) {
|
||||
$el.find('.avatar').each(function() {
|
||||
var $this = $(this);
|
||||
$this.avatar($this.attr('data-username'), 32);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Convert a message to be displayed in HTML,
|
||||
* converts newlines to <br> tags.
|
||||
*/
|
||||
_formatMessage: function(message, mentions) {
|
||||
message = escapeHTML(message).replace(/\n/g, '<br/>');
|
||||
|
||||
for(var i in mentions) {
|
||||
var mention = '@' + mentions[i].mentionId;
|
||||
|
||||
var avatar = '';
|
||||
if(this._avatarsEnabled) {
|
||||
avatar = '<div class="avatar" '
|
||||
+ 'data-user="' + _.escape(mentions[i].mentionId) + '"'
|
||||
+' data-user-display-name="'
|
||||
+ _.escape(mentions[i].mentionDisplayName) + '"></div>';
|
||||
}
|
||||
|
||||
// escape possible regex characters in the name
|
||||
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
||||
var displayName = avatar + ' <strong>'+ _.escape(mentions[i].mentionDisplayName)+'</strong>';
|
||||
|
||||
// replace every mention either at the start of the input or after a whitespace
|
||||
// followed by a non-word character.
|
||||
message = message.replace(new RegExp("(^|\\s)(" + mention + ")\\b", 'g'),
|
||||
function(match, p1) {
|
||||
// to get number of whitespaces (0 vs 1) right
|
||||
return p1+displayName;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
return message;
|
||||
},
|
||||
|
||||
nextPage: function() {
|
||||
if (this._loading || !this.collection.hasMoreResults()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.collection.fetchNext();
|
||||
},
|
||||
|
||||
_onClickEditComment: function(ev) {
|
||||
ev.preventDefault();
|
||||
var $comment = $(ev.target).closest('.comment');
|
||||
var commentId = $comment.data('id');
|
||||
var commentToEdit = this.collection.get(commentId);
|
||||
var $formRow = $(this.editCommentTemplate(_.extend({
|
||||
isEditMode: true,
|
||||
submitText: t('comments', 'Save')
|
||||
}, commentToEdit.attributes)));
|
||||
|
||||
$comment.addClass('hidden').removeClass('collapsed');
|
||||
// spawn form
|
||||
$comment.after($formRow);
|
||||
$formRow.data('commentEl', $comment);
|
||||
$formRow.find('textarea').on('keydown input change', this._onTypeComment);
|
||||
|
||||
// copy avatar element from original to avoid flickering
|
||||
$formRow.find('.avatar:first').replaceWith($comment.find('.avatar:first').clone());
|
||||
$formRow.find('.has-tooltip').tooltip();
|
||||
|
||||
// Enable autosize
|
||||
autosize($formRow.find('textarea'));
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
_onTypeComment: function(ev) {
|
||||
var $field = $(ev.target);
|
||||
var len = $field.val().length;
|
||||
var $submitButton = $field.data('submitButtonEl');
|
||||
if (!$submitButton) {
|
||||
$submitButton = $field.closest('form').find('.submit');
|
||||
$field.data('submitButtonEl', $submitButton);
|
||||
}
|
||||
$field.tooltip('hide');
|
||||
if (len > this._commentMaxThreshold) {
|
||||
$field.attr('data-original-title', t('comments', 'Allowed characters {count} of {max}', {count: len, max: this._commentMaxLength}));
|
||||
$field.tooltip({trigger: 'manual'});
|
||||
$field.tooltip('show');
|
||||
$field.addClass('error');
|
||||
}
|
||||
|
||||
var limitExceeded = (len > this._commentMaxLength);
|
||||
$field.toggleClass('error', limitExceeded);
|
||||
$submitButton.prop('disabled', limitExceeded);
|
||||
|
||||
//submits form on ctrl+Enter or cmd+Enter
|
||||
if (ev.keyCode === 13 && (ev.ctrlKey || ev.metaKey)) {
|
||||
$submitButton.click();
|
||||
}
|
||||
},
|
||||
|
||||
_onClickComment: function(ev) {
|
||||
var $row = $(ev.target);
|
||||
if (!$row.is('.comment')) {
|
||||
$row = $row.closest('.comment');
|
||||
}
|
||||
$row.removeClass('collapsed');
|
||||
},
|
||||
|
||||
_onClickCloseComment: function(ev) {
|
||||
ev.preventDefault();
|
||||
var $row = $(ev.target).closest('.comment');
|
||||
$row.data('commentEl').removeClass('hidden');
|
||||
$row.remove();
|
||||
return false;
|
||||
},
|
||||
|
||||
_onClickDeleteComment: function(ev) {
|
||||
ev.preventDefault();
|
||||
var $comment = $(ev.target).closest('.comment');
|
||||
var commentId = $comment.data('id');
|
||||
var $loading = $comment.find('.submitLoading');
|
||||
|
||||
$comment.addClass('disabled');
|
||||
$loading.removeClass('hidden');
|
||||
this.collection.get(commentId).destroy({
|
||||
success: function() {
|
||||
$comment.data('commentEl').remove();
|
||||
$comment.remove();
|
||||
},
|
||||
error: function() {
|
||||
$loading.addClass('hidden');
|
||||
$comment.removeClass('disabled');
|
||||
OC.Notification.showTemporary(t('comments', 'Error occurred while retrieving comment with id {id}', {id: commentId}));
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
_onClickShowMore: function(ev) {
|
||||
ev.preventDefault();
|
||||
this.nextPage();
|
||||
},
|
||||
|
||||
/**
|
||||
* takes care of updating comment elements after submit (either new
|
||||
* comment or edit).
|
||||
*
|
||||
* @param {OC.Backbone.Model} model
|
||||
* @param {jQuery} $form
|
||||
* @param {string|undefined} commentId
|
||||
* @private
|
||||
*/
|
||||
_onSubmitSuccess: function(model, $form, commentId) {
|
||||
var self = this;
|
||||
var $submit = $form.find('.submit');
|
||||
var $loading = $form.find('.submitLoading');
|
||||
var $textArea = $form.find('.message');
|
||||
|
||||
model.fetch({
|
||||
success: function(model) {
|
||||
$submit.removeClass('hidden');
|
||||
$loading.addClass('hidden');
|
||||
var $target;
|
||||
|
||||
if(!_.isUndefined(commentId)) {
|
||||
var $row = $form.closest('.comment');
|
||||
$target = $row.data('commentEl');
|
||||
$target.removeClass('hidden');
|
||||
$row.remove();
|
||||
} else {
|
||||
$target = $('.commentsTabView .comments').find('li:first');
|
||||
$textArea.val('').prop('disabled', false);
|
||||
}
|
||||
|
||||
$target.find('.message')
|
||||
.html(self._formatMessage(model.get('message'), model.get('mentions')))
|
||||
.find('.avatar')
|
||||
.each(function () { $(this).avatar(); });
|
||||
},
|
||||
error: function () {
|
||||
self._onSubmitError($form, commentId);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_onSubmitComment: function(e) {
|
||||
var self = this;
|
||||
var $form = $(e.target);
|
||||
var commentId = $form.closest('.comment').data('id');
|
||||
var currentUser = OC.getCurrentUser();
|
||||
var $submit = $form.find('.submit');
|
||||
var $loading = $form.find('.submitLoading');
|
||||
var $textArea = $form.find('.message');
|
||||
var message = $textArea.val().trim();
|
||||
e.preventDefault();
|
||||
|
||||
if (!message.length || message.length > this._commentMaxLength) {
|
||||
return;
|
||||
}
|
||||
|
||||
$textArea.prop('disabled', true);
|
||||
$submit.addClass('hidden');
|
||||
$loading.removeClass('hidden');
|
||||
|
||||
if (commentId) {
|
||||
// edit mode
|
||||
var comment = this.collection.get(commentId);
|
||||
comment.save({
|
||||
message: $textArea.val()
|
||||
}, {
|
||||
success: function(model) {
|
||||
self._onSubmitSuccess(model, $form, commentId);
|
||||
},
|
||||
error: function() {
|
||||
self._onSubmitError($form, commentId);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.collection.create({
|
||||
actorId: currentUser.uid,
|
||||
actorDisplayName: currentUser.displayName,
|
||||
actorType: 'users',
|
||||
verb: 'comment',
|
||||
message: $textArea.val(),
|
||||
creationDateTime: (new Date()).toUTCString()
|
||||
}, {
|
||||
at: 0,
|
||||
// wait for real creation before adding
|
||||
wait: true,
|
||||
success: function(model) {
|
||||
self._onSubmitSuccess(model, $form);
|
||||
},
|
||||
error: function() {
|
||||
self._onSubmitError($form);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
/**
|
||||
* takes care of updating the UI after an error on submit (either new
|
||||
* comment or edit).
|
||||
*
|
||||
* @param {jQuery} $form
|
||||
* @param {string|undefined} commentId
|
||||
* @private
|
||||
*/
|
||||
_onSubmitError: function($form, commentId) {
|
||||
$form.find('.submit').removeClass('hidden');
|
||||
$form.find('.submitLoading').addClass('hidden');
|
||||
$form.find('.message').prop('disabled', false);
|
||||
|
||||
if(!_.isUndefined(commentId)) {
|
||||
OC.Notification.showTemporary(t('comments', 'Error occurred while updating comment with id {id}', {id: commentId}));
|
||||
} else {
|
||||
OC.Notification.showTemporary(t('comments', 'Error occurred while posting comment'));
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Returns whether the given message is long and needs
|
||||
* collapsing
|
||||
*/
|
||||
_isLong: function(message) {
|
||||
return message.length > 250 || (message.match(/\n/g) || []).length > 1;
|
||||
}
|
||||
});
|
||||
|
||||
OCA.Comments.CommentsTabView = CommentsTabView;
|
||||
})(OC, OCA);
|
||||
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
(function(OC, OCA) {
|
||||
var NS_OWNCLOUD = 'http://owncloud.org/ns';
|
||||
/**
|
||||
* @class OCA.Comments.CommentSummaryModel
|
||||
* @classdesc
|
||||
*
|
||||
* Model containing summary information related to comments
|
||||
* like the read marker.
|
||||
*
|
||||
*/
|
||||
var CommentSummaryModel = OC.Backbone.Model.extend(
|
||||
/** @lends OCA.Comments.CommentSummaryModel.prototype */ {
|
||||
sync: OC.Backbone.davSync,
|
||||
|
||||
/**
|
||||
* Object type
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
_objectType: 'files',
|
||||
|
||||
/**
|
||||
* Object id
|
||||
*
|
||||
* @type string
|
||||
*/
|
||||
_objectId: null,
|
||||
|
||||
davProperties: {
|
||||
'readMarker': '{' + NS_OWNCLOUD + '}readMarker'
|
||||
},
|
||||
|
||||
/**
|
||||
* Initializes the summary model
|
||||
*
|
||||
* @param {string} [options.objectType] object type
|
||||
* @param {string} [options.objectId] object id
|
||||
*/
|
||||
initialize: function(attrs, options) {
|
||||
options = options || {};
|
||||
if (options.objectType) {
|
||||
this._objectType = options.objectType;
|
||||
}
|
||||
},
|
||||
|
||||
url: function() {
|
||||
return OC.linkToRemote('dav') + '/comments/' +
|
||||
encodeURIComponent(this._objectType) + '/' +
|
||||
encodeURIComponent(this.id) + '/';
|
||||
}
|
||||
});
|
||||
|
||||
OCA.Comments.CommentSummaryModel = CommentSummaryModel;
|
||||
})(OC, OCA);
|
||||
|
||||
@@ -1,123 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>
|
||||
*
|
||||
* This file is licensed under the Affero General Public License version 3
|
||||
* or later.
|
||||
*
|
||||
* See the COPYING-README file.
|
||||
*
|
||||
*/
|
||||
|
||||
/* global Handlebars */
|
||||
|
||||
(function() {
|
||||
var TEMPLATE_COMMENTS_UNREAD =
|
||||
'<a class="action action-comment permanent" title="{{countMessage}}" href="#">' +
|
||||
'<img class="svg" src="{{iconUrl}}"/>' +
|
||||
'</a>';
|
||||
|
||||
OCA.Comments = _.extend({}, OCA.Comments);
|
||||
if (!OCA.Comments) {
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
OCA.Comments = {};
|
||||
}
|
||||
|
||||
/**
|
||||
* @namespace
|
||||
*/
|
||||
OCA.Comments.FilesPlugin = {
|
||||
ignoreLists: [
|
||||
'files_trashbin',
|
||||
'files.public'
|
||||
],
|
||||
|
||||
_formatCommentCount: function(count) {
|
||||
if (!this._commentsUnreadTemplate) {
|
||||
this._commentsUnreadTemplate = Handlebars.compile(TEMPLATE_COMMENTS_UNREAD);
|
||||
}
|
||||
return this._commentsUnreadTemplate({
|
||||
count: count,
|
||||
countMessage: n('comments', '%n unread comment', '%n unread comments', count),
|
||||
iconUrl: OC.imagePath('core', 'actions/comment')
|
||||
});
|
||||
},
|
||||
|
||||
attach: function(fileList) {
|
||||
var self = this;
|
||||
if (this.ignoreLists.indexOf(fileList.id) >= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
fileList.registerTabView(new OCA.Comments.CommentsTabView('commentsTabView'));
|
||||
|
||||
var NS_OC = 'http://owncloud.org/ns';
|
||||
|
||||
var oldGetWebdavProperties = fileList._getWebdavProperties;
|
||||
fileList._getWebdavProperties = function() {
|
||||
var props = oldGetWebdavProperties.apply(this, arguments);
|
||||
props.push('{' + NS_OC + '}comments-unread');
|
||||
return props;
|
||||
};
|
||||
|
||||
fileList.filesClient.addFileInfoParser(function(response) {
|
||||
var data = {};
|
||||
var props = response.propStat[0].properties;
|
||||
var commentsUnread = props['{' + NS_OC + '}comments-unread'];
|
||||
if (!_.isUndefined(commentsUnread) && commentsUnread !== '') {
|
||||
data.commentsUnread = parseInt(commentsUnread, 10);
|
||||
}
|
||||
return data;
|
||||
});
|
||||
|
||||
fileList.$el.addClass('has-comments');
|
||||
var oldCreateRow = fileList._createRow;
|
||||
fileList._createRow = function(fileData) {
|
||||
var $tr = oldCreateRow.apply(this, arguments);
|
||||
if (fileData.commentsUnread) {
|
||||
$tr.attr('data-comments-unread', fileData.commentsUnread);
|
||||
}
|
||||
return $tr;
|
||||
};
|
||||
|
||||
// register "comment" action for reading comments
|
||||
fileList.fileActions.registerAction({
|
||||
name: 'Comment',
|
||||
displayName: t('comments', 'Comment'),
|
||||
mime: 'all',
|
||||
permissions: OC.PERMISSION_READ,
|
||||
type: OCA.Files.FileActions.TYPE_INLINE,
|
||||
render: function(actionSpec, isDefault, context) {
|
||||
var $file = context.$file;
|
||||
var unreadComments = $file.data('comments-unread');
|
||||
if (unreadComments) {
|
||||
var $actionLink = $(self._formatCommentCount(unreadComments));
|
||||
context.$file.find('a.name>span.fileactions').append($actionLink);
|
||||
return $actionLink;
|
||||
}
|
||||
return '';
|
||||
},
|
||||
actionHandler: function(fileName, context) {
|
||||
context.$file.find('.action-comment').tooltip('hide');
|
||||
// open sidebar in comments section
|
||||
context.fileList.showDetailsView(fileName, 'commentsTabView');
|
||||
}
|
||||
});
|
||||
|
||||
// add attribute to "elementToFile"
|
||||
var oldElementToFile = fileList.elementToFile;
|
||||
fileList.elementToFile = function($el) {
|
||||
var fileInfo = oldElementToFile.apply(this, arguments);
|
||||
var commentsUnread = $el.data('comments-unread');
|
||||
if (commentsUnread) {
|
||||
fileInfo.commentsUnread = commentsUnread;
|
||||
}
|
||||
return fileInfo;
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
OC.Plugins.register('OCA.Files.FileList', OCA.Comments.FilesPlugin);
|
||||
@@ -1,34 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Kommentare",
|
||||
"New comment …" : "Nuwe kommentaar…",
|
||||
"Delete comment" : "Skrap kommentaar",
|
||||
"Post" : "Plaas",
|
||||
"Cancel" : "Kanselleer",
|
||||
"Edit comment" : "Wysig kommentaar",
|
||||
"[Deleted user]" : "[Geskrapte gebruiker]",
|
||||
"No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
|
||||
"More comments …" : "Nog kommentare …",
|
||||
"Save" : "Bewaar",
|
||||
"Allowed characters {count} of {max}" : "Toegelate karakters {telling} van {maks}",
|
||||
"Error occurred while retrieving comment with id {id}" : "’n Fout het voorgekom toe kommentaar met id {id} opgehaal is",
|
||||
"Error occurred while updating comment with id {id}" : "’n Fout het voorgekom toe kommentaar met id {id} bygewerk is",
|
||||
"Error occurred while posting comment" : "’n Fout het voorgekom toe kommentaar geplaas is",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ongeleesde kommentaar","%n ongeleeste kommentare"],
|
||||
"Comment" : "Kommentaar",
|
||||
"You commented" : "U het kommentaar gelewer",
|
||||
"%1$s commented" : "%1$s het kommentaar gelewer",
|
||||
"{author} commented" : "{outeur} het kommentaar gelewer",
|
||||
"You commented on %1$s" : "U het op %1$s kommentaar gelewer",
|
||||
"You commented on {file}" : "U het op {lêer} kommentaar gelewer",
|
||||
"%1$s commented on %2$s" : "%1$s het op %2$s kommentaar gelewer",
|
||||
"{author} commented on {file}" : "{outeur} het op {lêer} kommentaar gelewer",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> vir lêers",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s het u in ’n kommentaar op “%2$s” genoem",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{gebruiker} het u in ’n kommentaar oor “{lêer}” genoem",
|
||||
"Unknown user" : "Onbekende gebruiker",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "’n (Nou) geskrapte gebruiker het u in ’n kommentaar op “%s” genoem",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "’n (Nou) geskrapte gebruiker het u in ’n kommentaar op “{lêer}” genoem"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,32 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Kommentare",
|
||||
"New comment …" : "Nuwe kommentaar…",
|
||||
"Delete comment" : "Skrap kommentaar",
|
||||
"Post" : "Plaas",
|
||||
"Cancel" : "Kanselleer",
|
||||
"Edit comment" : "Wysig kommentaar",
|
||||
"[Deleted user]" : "[Geskrapte gebruiker]",
|
||||
"No comments yet, start the conversation!" : "Nog geen kommentaar, begin die gesprek!",
|
||||
"More comments …" : "Nog kommentare …",
|
||||
"Save" : "Bewaar",
|
||||
"Allowed characters {count} of {max}" : "Toegelate karakters {telling} van {maks}",
|
||||
"Error occurred while retrieving comment with id {id}" : "’n Fout het voorgekom toe kommentaar met id {id} opgehaal is",
|
||||
"Error occurred while updating comment with id {id}" : "’n Fout het voorgekom toe kommentaar met id {id} bygewerk is",
|
||||
"Error occurred while posting comment" : "’n Fout het voorgekom toe kommentaar geplaas is",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ongeleesde kommentaar","%n ongeleeste kommentare"],
|
||||
"Comment" : "Kommentaar",
|
||||
"You commented" : "U het kommentaar gelewer",
|
||||
"%1$s commented" : "%1$s het kommentaar gelewer",
|
||||
"{author} commented" : "{outeur} het kommentaar gelewer",
|
||||
"You commented on %1$s" : "U het op %1$s kommentaar gelewer",
|
||||
"You commented on {file}" : "U het op {lêer} kommentaar gelewer",
|
||||
"%1$s commented on %2$s" : "%1$s het op %2$s kommentaar gelewer",
|
||||
"{author} commented on {file}" : "{outeur} het op {lêer} kommentaar gelewer",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> vir lêers",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s het u in ’n kommentaar op “%2$s” genoem",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{gebruiker} het u in ’n kommentaar oor “{lêer}” genoem",
|
||||
"Unknown user" : "Onbekende gebruiker",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "’n (Nou) geskrapte gebruiker het u in ’n kommentaar op “%s” genoem",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "’n (Nou) geskrapte gebruiker het u in ’n kommentaar op “{lêer}” genoem"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "Kanselleer"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,4 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "Kanselleer"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "تعليقات",
|
||||
"Unknown user" : "مستخدم غير معروف",
|
||||
"New comment …" : "تعليق جديد",
|
||||
"Delete comment" : "حذف التعليق",
|
||||
"Post" : "ارسال",
|
||||
"Cancel" : "إلغاء",
|
||||
"Edit comment" : "تعديل التعليق",
|
||||
"[Deleted user]" : "[مستخدم محذوف]",
|
||||
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
|
||||
"More comments …" : "مزيد من التعليقات...",
|
||||
"Save" : "حفظ",
|
||||
"Allowed characters {count} of {max}" : "عدد الأحرف المسموح بها {count} من {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "حصل خطأ أثناء عرض التعليق رقم {id}",
|
||||
"Error occurred while updating comment with id {id}" : "حصل خطأ أثناء تعديل التعليق رقم {id}",
|
||||
"Error occurred while posting comment" : "حصل خطأ أثناء إرسال التعليق",
|
||||
"Comment" : "تعليق",
|
||||
"You commented" : "قمت بكتابة تعليق",
|
||||
"%1$s commented" : "%1$s كتب تعليق",
|
||||
"You commented on {file}" : "علقت على {file}",
|
||||
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
|
||||
"{author} commented on {file}" : "{author} علّق على {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات"
|
||||
},
|
||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||
@@ -1,25 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "تعليقات",
|
||||
"Unknown user" : "مستخدم غير معروف",
|
||||
"New comment …" : "تعليق جديد",
|
||||
"Delete comment" : "حذف التعليق",
|
||||
"Post" : "ارسال",
|
||||
"Cancel" : "إلغاء",
|
||||
"Edit comment" : "تعديل التعليق",
|
||||
"[Deleted user]" : "[مستخدم محذوف]",
|
||||
"No comments yet, start the conversation!" : "لا يوجد تعليقات, ابدأ النقاش الآن!",
|
||||
"More comments …" : "مزيد من التعليقات...",
|
||||
"Save" : "حفظ",
|
||||
"Allowed characters {count} of {max}" : "عدد الأحرف المسموح بها {count} من {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "حصل خطأ أثناء عرض التعليق رقم {id}",
|
||||
"Error occurred while updating comment with id {id}" : "حصل خطأ أثناء تعديل التعليق رقم {id}",
|
||||
"Error occurred while posting comment" : "حصل خطأ أثناء إرسال التعليق",
|
||||
"Comment" : "تعليق",
|
||||
"You commented" : "قمت بكتابة تعليق",
|
||||
"%1$s commented" : "%1$s كتب تعليق",
|
||||
"You commented on {file}" : "علقت على {file}",
|
||||
"%1$s commented on %2$s" : "%1$s كتب تعليق على %2$s",
|
||||
"{author} commented on {file}" : "{author} علّق على {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>تعليقات</strong> على الملفات"
|
||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentariu nuevu...",
|
||||
"Delete comment" : "Desaniciar comentariu",
|
||||
"Post" : "Espublizar",
|
||||
"Cancel" : "Encaboxar",
|
||||
"Edit comment" : "Editar comentariu",
|
||||
"[Deleted user]" : "[Usuariu desaniciáu]",
|
||||
"No comments yet, start the conversation!" : "Entá nun hai comentarios. ¡Entama una conversación!",
|
||||
"More comments …" : "Más comentarios...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "{count} caráuteres almitíos de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Asocedió un fallu entrín se recibía'l comentariu cola ID {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Asocedió un fallu entrín s'anovaba'l comentariu cola ID {id}",
|
||||
"Error occurred while posting comment" : "Asocedieron fallos entrín s'espublizaba'l comentariu",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"],
|
||||
"Comment" : "Comentariu",
|
||||
"You commented" : "Comentesti",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Comentesti en %1$s",
|
||||
"You commented on {file}" : "Comentesti en {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{autor} comentó en {ficheru}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentóte nun comentariu de «%2$s»",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} mentóte nun comentariu de «{file}»",
|
||||
"Unknown user" : "Usuariu desconocíu",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «%s»",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «{file}»"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,32 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentariu nuevu...",
|
||||
"Delete comment" : "Desaniciar comentariu",
|
||||
"Post" : "Espublizar",
|
||||
"Cancel" : "Encaboxar",
|
||||
"Edit comment" : "Editar comentariu",
|
||||
"[Deleted user]" : "[Usuariu desaniciáu]",
|
||||
"No comments yet, start the conversation!" : "Entá nun hai comentarios. ¡Entama una conversación!",
|
||||
"More comments …" : "Más comentarios...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "{count} caráuteres almitíos de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Asocedió un fallu entrín se recibía'l comentariu cola ID {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Asocedió un fallu entrín s'anovaba'l comentariu cola ID {id}",
|
||||
"Error occurred while posting comment" : "Asocedieron fallos entrín s'espublizaba'l comentariu",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentariu ensin lleer","%n comentarios ensin lleer"],
|
||||
"Comment" : "Comentariu",
|
||||
"You commented" : "Comentesti",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Comentesti en %1$s",
|
||||
"You commented on {file}" : "Comentesti en {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{autor} comentó en {ficheru}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> pa ficheros",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentóte nun comentariu de «%2$s»",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} mentóte nun comentariu de «{file}»",
|
||||
"Unknown user" : "Usuariu desconocíu",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «%s»",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuariu (agora) desaniciáu mentóte nun comentariu de «{file}»"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "Dayandır",
|
||||
"Save" : "Saxla",
|
||||
"Comment" : "Komentariya"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "Dayandır",
|
||||
"Save" : "Saxla",
|
||||
"Comment" : "Komentariya"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Коментари",
|
||||
"New comment …" : "Нов коментар...",
|
||||
"Delete comment" : "Изтрий коментар",
|
||||
"Post" : "Публикация",
|
||||
"Cancel" : "Отказ",
|
||||
"Edit comment" : "Редактирай коментра",
|
||||
"[Deleted user]" : "[Изтрит потребител]",
|
||||
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
|
||||
"More comments …" : "Още коментари...",
|
||||
"Save" : "Запазване",
|
||||
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Възникна грешка по време на извличане на коментар с код {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
|
||||
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
|
||||
"Comment" : "Коментар",
|
||||
"You commented" : "Вие коментирахте",
|
||||
"%1$s commented" : "%1$s коментира",
|
||||
"{author} commented" : "{author} коментира",
|
||||
"You commented on %1$s" : "Ти коментира за %1$s",
|
||||
"You commented on {file}" : "Ти коментира за {file}",
|
||||
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
|
||||
"{author} commented on {file}" : "{author} коментира за {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
|
||||
"Unknown user" : "Непознат потребител",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,32 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Коментари",
|
||||
"New comment …" : "Нов коментар...",
|
||||
"Delete comment" : "Изтрий коментар",
|
||||
"Post" : "Публикация",
|
||||
"Cancel" : "Отказ",
|
||||
"Edit comment" : "Редактирай коментра",
|
||||
"[Deleted user]" : "[Изтрит потребител]",
|
||||
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
|
||||
"More comments …" : "Още коментари...",
|
||||
"Save" : "Запазване",
|
||||
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Възникна грешка по време на извличане на коментар с код {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
|
||||
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
|
||||
"Comment" : "Коментар",
|
||||
"You commented" : "Вие коментирахте",
|
||||
"%1$s commented" : "%1$s коментира",
|
||||
"{author} commented" : "{author} коментира",
|
||||
"You commented on %1$s" : "Ти коментира за %1$s",
|
||||
"You commented on {file}" : "Ти коментира за {file}",
|
||||
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
|
||||
"{author} commented on {file}" : "{author} коментира за {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
|
||||
"Unknown user" : "Непознат потребител",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Коментари",
|
||||
"Unknown user" : "Непознат потребител",
|
||||
"New comment …" : "Нов коментар...",
|
||||
"Delete comment" : "Изтрий коментар",
|
||||
"Post" : "Публикация",
|
||||
"Cancel" : "Отказ",
|
||||
"Edit comment" : "Редактирай коментра",
|
||||
"[Deleted user]" : "[Изтрит потребител]",
|
||||
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
|
||||
"More comments …" : "Още коментари...",
|
||||
"Save" : "Запазване",
|
||||
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Възникна грешка по време на извличане на коментар с код {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
|
||||
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
|
||||
"Comment" : "Коментар",
|
||||
"You commented" : "Вие коментирахте",
|
||||
"%1$s commented" : "%1$s коментира",
|
||||
"{author} commented" : "{author} коментира",
|
||||
"You commented on %1$s" : "Ти коментира за %1$s",
|
||||
"You commented on {file}" : "Ти коментира за {file}",
|
||||
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
|
||||
"{author} commented on {file}" : "{author} коментира за {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
|
||||
"Type in a new comment..." : "Напиши нов коментар...",
|
||||
"No other comments available" : "Няма други коментари",
|
||||
"More comments..." : "Още коментари...",
|
||||
"{count} unread comments" : "{count} непрочетени коментари",
|
||||
"You commented on %2$s" : "Ти коментира за %2$s"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,37 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Коментари",
|
||||
"Unknown user" : "Непознат потребител",
|
||||
"New comment …" : "Нов коментар...",
|
||||
"Delete comment" : "Изтрий коментар",
|
||||
"Post" : "Публикация",
|
||||
"Cancel" : "Отказ",
|
||||
"Edit comment" : "Редактирай коментра",
|
||||
"[Deleted user]" : "[Изтрит потребител]",
|
||||
"No comments yet, start the conversation!" : "Все-още няма коментари, започни разговор!",
|
||||
"More comments …" : "Още коментари...",
|
||||
"Save" : "Запазване",
|
||||
"Allowed characters {count} of {max}" : "Позволени символи {count} от {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Възникна грешка по време на извличане на коментар с код {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Възникна грешка по време на обновяване на коментар с код {id}",
|
||||
"Error occurred while posting comment" : "Възникна грешка по време на изпращане на коментар",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n непрочетен коментар","%n непрочетени коментари"],
|
||||
"Comment" : "Коментар",
|
||||
"You commented" : "Вие коментирахте",
|
||||
"%1$s commented" : "%1$s коментира",
|
||||
"{author} commented" : "{author} коментира",
|
||||
"You commented on %1$s" : "Ти коментира за %1$s",
|
||||
"You commented on {file}" : "Ти коментира за {file}",
|
||||
"%1$s commented on %2$s" : "%1$s коментиран за %2$s",
|
||||
"{author} commented on {file}" : "{author} коментира за {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Коментари</strong> за файлове",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "(Токущо) изтрит потребител те коментира в “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "(Токущо) изтрит потребител те спомена в коментар за “{file}”",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s те спомена в коментар за “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} те спомена в коментар за “{file}”",
|
||||
"Type in a new comment..." : "Напиши нов коментар...",
|
||||
"No other comments available" : "Няма други коментари",
|
||||
"More comments..." : "Още коментари...",
|
||||
"{count} unread comments" : "{count} непрочетени коментари",
|
||||
"You commented on %2$s" : "Ти коментира за %2$s"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "বাতিল",
|
||||
"Save" : "সংরক্ষণ",
|
||||
"Comment" : "মন্তব্য"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "বাতিল",
|
||||
"Save" : "সংরক্ষণ",
|
||||
"Comment" : "মন্তব্য"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "বাতিল করা",
|
||||
"Save" : "সেভ"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,5 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "বাতিল করা",
|
||||
"Save" : "সেভ"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "Odustani",
|
||||
"Save" : "Spremi",
|
||||
"Comment" : "Komentar"
|
||||
},
|
||||
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "Odustani",
|
||||
"Save" : "Spremi",
|
||||
"Comment" : "Komentar"
|
||||
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentaris",
|
||||
"New comment …" : "Nou comentari...",
|
||||
"Delete comment" : "Esborrar comentari",
|
||||
"Post" : "Publica",
|
||||
"Cancel" : "Cancel·la",
|
||||
"Edit comment" : "Editar comentari",
|
||||
"[Deleted user]" : "[usuari Esborrat]",
|
||||
"No comments yet, start the conversation!" : "Encara no hi ha comentaris. Comenceu la conversa!",
|
||||
"More comments …" : "Més comentaris...",
|
||||
"Save" : "Desa",
|
||||
"Allowed characters {count} of {max}" : "{count} caràcters permesos de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Hi ha hagut un error en extraure el comentari amb id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Hi ha hagut un error en actualitzar el comentari amb id {id}",
|
||||
"Error occurred while posting comment" : "Hi ha hagut un error en publicar el comentari",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentari no llegit","%n comentaris no llegits"],
|
||||
"Comment" : "Comentari",
|
||||
"You commented" : "Heu comentat",
|
||||
"%1$s commented" : "%1$s ha comentat",
|
||||
"{author} commented" : "{author} ha comentat",
|
||||
"You commented on %1$s" : "Heu comentat a %1$s",
|
||||
"You commented on {file}" : "Heu comentat a {file}",
|
||||
"%1$s commented on %2$s" : "%1$s ha comentat a %2$s",
|
||||
"{author} commented on {file}" : "{author} ha comentat a {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per arxius",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s us ha nomenat en un comentari a “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} us ha nomenat en un comentari de “{file}”",
|
||||
"Unknown user" : "Usuari desconegut",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuari (ara) esborrat us ha nomenat en un comentari a “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuari (ara) esborrat us ha nomenat en un comentari de “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,32 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentaris",
|
||||
"New comment …" : "Nou comentari...",
|
||||
"Delete comment" : "Esborrar comentari",
|
||||
"Post" : "Publica",
|
||||
"Cancel" : "Cancel·la",
|
||||
"Edit comment" : "Editar comentari",
|
||||
"[Deleted user]" : "[usuari Esborrat]",
|
||||
"No comments yet, start the conversation!" : "Encara no hi ha comentaris. Comenceu la conversa!",
|
||||
"More comments …" : "Més comentaris...",
|
||||
"Save" : "Desa",
|
||||
"Allowed characters {count} of {max}" : "{count} caràcters permesos de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Hi ha hagut un error en extraure el comentari amb id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Hi ha hagut un error en actualitzar el comentari amb id {id}",
|
||||
"Error occurred while posting comment" : "Hi ha hagut un error en publicar el comentari",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentari no llegit","%n comentaris no llegits"],
|
||||
"Comment" : "Comentari",
|
||||
"You commented" : "Heu comentat",
|
||||
"%1$s commented" : "%1$s ha comentat",
|
||||
"{author} commented" : "{author} ha comentat",
|
||||
"You commented on %1$s" : "Heu comentat a %1$s",
|
||||
"You commented on {file}" : "Heu comentat a {file}",
|
||||
"%1$s commented on %2$s" : "%1$s ha comentat a %2$s",
|
||||
"{author} commented on {file}" : "{author} ha comentat a {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentaris</strong> per arxius",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s us ha nomenat en un comentari a “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} us ha nomenat en un comentari de “{file}”",
|
||||
"Unknown user" : "Usuari desconegut",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuari (ara) esborrat us ha nomenat en un comentari a “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuari (ara) esborrat us ha nomenat en un comentari de “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Komentáře",
|
||||
"New comment …" : "Nový komentář ...",
|
||||
"Delete comment" : "Smazat komentář",
|
||||
"Post" : "Zveřejnit",
|
||||
"Cancel" : "Zrušit",
|
||||
"Edit comment" : "Upravit komentář",
|
||||
"[Deleted user]" : "[Smazaný uživatel]",
|
||||
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
|
||||
"More comments …" : "Více komentářů ...",
|
||||
"Save" : "Uložit",
|
||||
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Došlo k chybě při načítání komentáře s id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
|
||||
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
|
||||
"Comment" : "Komentář",
|
||||
"You commented" : "Okomentoval(a) jsi",
|
||||
"%1$s commented" : "%1$s okomentován",
|
||||
"{author} commented" : "{author} okomentoval(a)",
|
||||
"You commented on %1$s" : "Okomentoval(a) jste %1$s",
|
||||
"You commented on {file}" : "Okomentoval(a) jste {file}",
|
||||
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
|
||||
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v “%s”, v komentáři od uživatele, který byl později smazán",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”",
|
||||
"Unknown user" : "Neznámý uživatel",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\""
|
||||
},
|
||||
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Komentáře",
|
||||
"New comment …" : "Nový komentář ...",
|
||||
"Delete comment" : "Smazat komentář",
|
||||
"Post" : "Zveřejnit",
|
||||
"Cancel" : "Zrušit",
|
||||
"Edit comment" : "Upravit komentář",
|
||||
"[Deleted user]" : "[Smazaný uživatel]",
|
||||
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
|
||||
"More comments …" : "Více komentářů ...",
|
||||
"Save" : "Uložit",
|
||||
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Došlo k chybě při načítání komentáře s id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
|
||||
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
|
||||
"Comment" : "Komentář",
|
||||
"You commented" : "Okomentoval(a) jsi",
|
||||
"%1$s commented" : "%1$s okomentován",
|
||||
"{author} commented" : "{author} okomentoval(a)",
|
||||
"You commented on %1$s" : "Okomentoval(a) jste %1$s",
|
||||
"You commented on {file}" : "Okomentoval(a) jste {file}",
|
||||
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
|
||||
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v “%s”, v komentáři od uživatele, který byl později smazán",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”",
|
||||
"Unknown user" : "Neznámý uživatel",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\""
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Komentáře",
|
||||
"Unknown user" : "Neznámý uživatel",
|
||||
"New comment …" : "Nový komentář ...",
|
||||
"Delete comment" : "Smazat komentář",
|
||||
"Post" : "Zveřejnit",
|
||||
"Cancel" : "Zrušit",
|
||||
"Edit comment" : "Upravit komentář",
|
||||
"[Deleted user]" : "[Smazaný uživatel]",
|
||||
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
|
||||
"More comments …" : "Více komentářů ...",
|
||||
"Save" : "Uložit",
|
||||
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Došlo k chybě při načítání komentáře s id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
|
||||
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
|
||||
"Comment" : "Komentář",
|
||||
"You commented" : "Okomentoval(a) jsi",
|
||||
"%1$s commented" : "%1$s okomentován",
|
||||
"{author} commented" : "{author} okomentoval(a)",
|
||||
"You commented on %1$s" : "Okomentoval(a) jste %1$s",
|
||||
"You commented on {file}" : "Okomentoval(a) jste {file}",
|
||||
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
|
||||
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\"",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”",
|
||||
"Type in a new comment..." : "Zadat nový komentář...",
|
||||
"No other comments available" : "Nejsou dostupné žádné další komentáře",
|
||||
"More comments..." : "Více komentářů...",
|
||||
"{count} unread comments" : "{count} nepřečtených komentářů",
|
||||
"You commented on %2$s" : "Okomentoval(a) jsi %2$s"
|
||||
},
|
||||
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
|
||||
@@ -1,37 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Komentáře",
|
||||
"Unknown user" : "Neznámý uživatel",
|
||||
"New comment …" : "Nový komentář ...",
|
||||
"Delete comment" : "Smazat komentář",
|
||||
"Post" : "Zveřejnit",
|
||||
"Cancel" : "Zrušit",
|
||||
"Edit comment" : "Upravit komentář",
|
||||
"[Deleted user]" : "[Smazaný uživatel]",
|
||||
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
|
||||
"More comments …" : "Více komentářů ...",
|
||||
"Save" : "Uložit",
|
||||
"Allowed characters {count} of {max}" : "Povolených znaků {count} z {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Došlo k chybě při načítání komentáře s id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Došlo k chybě při aktualizování komentáře s id {id}",
|
||||
"Error occurred while posting comment" : "Došlo k chybě při zveřejňování komentáře",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nepřečtený komentář","%n nepřečtené komentáře","%n nepřečtených komentářů"],
|
||||
"Comment" : "Komentář",
|
||||
"You commented" : "Okomentoval(a) jsi",
|
||||
"%1$s commented" : "%1$s okomentován",
|
||||
"{author} commented" : "{author} okomentoval(a)",
|
||||
"You commented on %1$s" : "Okomentoval(a) jste %1$s",
|
||||
"You commented on {file}" : "Okomentoval(a) jste {file}",
|
||||
"%1$s commented on %2$s" : "%1$s okomentoval %2$s",
|
||||
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> souborů",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\"",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”",
|
||||
"Type in a new comment..." : "Zadat nový komentář...",
|
||||
"No other comments available" : "Nejsou dostupné žádné další komentáře",
|
||||
"More comments..." : "Více komentářů...",
|
||||
"{count} unread comments" : "{count} nepřečtených komentářů",
|
||||
"You commented on %2$s" : "Okomentoval(a) jsi %2$s"
|
||||
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "Diddymu",
|
||||
"Save" : "Cadw"
|
||||
},
|
||||
"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;");
|
||||
@@ -1,5 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "Diddymu",
|
||||
"Save" : "Cadw"
|
||||
},"pluralForm" :"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Kommentarer",
|
||||
"New comment …" : "Ny kommentar ...",
|
||||
"Delete comment" : "Slet kommentar",
|
||||
"Post" : "Indlæg",
|
||||
"Cancel" : "Annullér",
|
||||
"Edit comment" : "Rediger kommentar",
|
||||
"[Deleted user]" : "[Slettet user]",
|
||||
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
|
||||
"More comments …" : "Flere kommentarer...",
|
||||
"Save" : "Gem",
|
||||
"Allowed characters {count} of {max}" : "Tilladte tegn {count} af {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Der opstod fejl under hentning af kommentar med id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Der opstod fejl under opdatering af kommentar med id {id}",
|
||||
"Error occurred while posting comment" : "Der opstod fejl under indsendelse af kommentar",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"],
|
||||
"Comment" : "Kommentér",
|
||||
"You commented" : "Du kommenterede",
|
||||
"%1$s commented" : "%1$s kommenterede",
|
||||
"{author} commented" : "{author} kommenterede",
|
||||
"You commented on %1$s" : "Du kommenterede %1$s",
|
||||
"You commented on {file}" : "Du kommenterede {file}",
|
||||
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
|
||||
"{author} commented on {file}" : "{author} kommenterede {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"%s”, I en kommentar af en bruger der siden er blevet slettet",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nævnte dig i en kommentarer på “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} nævnte dig i en kommentarer på \"{file}\"",
|
||||
"Unknown user" : "Ukendt bruger",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "En (nu) slettet bruger nævnte dig i en kommentarer på “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "En (nu) slettet bruger nævnte dig i en kommentarer på \"{file}\""
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Kommentarer",
|
||||
"New comment …" : "Ny kommentar ...",
|
||||
"Delete comment" : "Slet kommentar",
|
||||
"Post" : "Indlæg",
|
||||
"Cancel" : "Annullér",
|
||||
"Edit comment" : "Rediger kommentar",
|
||||
"[Deleted user]" : "[Slettet user]",
|
||||
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
|
||||
"More comments …" : "Flere kommentarer...",
|
||||
"Save" : "Gem",
|
||||
"Allowed characters {count} of {max}" : "Tilladte tegn {count} af {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Der opstod fejl under hentning af kommentar med id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Der opstod fejl under opdatering af kommentar med id {id}",
|
||||
"Error occurred while posting comment" : "Der opstod fejl under indsendelse af kommentar",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ulæst kommentar","%n ulæste kommentarer"],
|
||||
"Comment" : "Kommentér",
|
||||
"You commented" : "Du kommenterede",
|
||||
"%1$s commented" : "%1$s kommenterede",
|
||||
"{author} commented" : "{author} kommenterede",
|
||||
"You commented on %1$s" : "Du kommenterede %1$s",
|
||||
"You commented on {file}" : "Du kommenterede {file}",
|
||||
"%1$s commented on %2$s" : "%1$s kommenterede %2$s",
|
||||
"{author} commented on {file}" : "{author} kommenterede {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentarer</strong> for filer",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"%s”, I en kommentar af en bruger der siden er blevet slettet",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s nævnte dig i en kommentarer på “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} nævnte dig i en kommentarer på \"{file}\"",
|
||||
"Unknown user" : "Ukendt bruger",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "En (nu) slettet bruger nævnte dig i en kommentarer på “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "En (nu) slettet bruger nævnte dig i en kommentarer på \"{file}\""
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Kommentare",
|
||||
"New comment …" : "Neuer Kommentar …",
|
||||
"Delete comment" : "Kommentar löschen",
|
||||
"Post" : "Speichern",
|
||||
"Cancel" : "Abbrechen",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
"[Deleted user]" : "[Gelöschter Benutzer]",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
|
||||
"More comments …" : "Weitere Kommentare…",
|
||||
"Save" : "Speichern",
|
||||
"Allowed characters {count} of {max}" : "Erlaubte Zeichen {count} von {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
|
||||
"Comment" : "Kommentar",
|
||||
"You commented" : "Von Dir kommentiert",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"{author} commented" : "{author} kommentierte",
|
||||
"You commented on %1$s" : "Du hast %1$s kommentiert",
|
||||
"You commented on {file}" : "Du hast {file} kommentiert",
|
||||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt ",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt ",
|
||||
"Unknown user" : "Unbekannter Benutzer",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu “{file}” erwähnt"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Kommentare",
|
||||
"New comment …" : "Neuer Kommentar …",
|
||||
"Delete comment" : "Kommentar löschen",
|
||||
"Post" : "Speichern",
|
||||
"Cancel" : "Abbrechen",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
"[Deleted user]" : "[Gelöschter Benutzer]",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
|
||||
"More comments …" : "Weitere Kommentare…",
|
||||
"Save" : "Speichern",
|
||||
"Allowed characters {count} of {max}" : "Erlaubte Zeichen {count} von {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
|
||||
"Comment" : "Kommentar",
|
||||
"You commented" : "Von Dir kommentiert",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"{author} commented" : "{author} kommentierte",
|
||||
"You commented on %1$s" : "Du hast %1$s kommentiert",
|
||||
"You commented on {file}" : "Du hast {file} kommentiert",
|
||||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt ",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt ",
|
||||
"Unknown user" : "Unbekannter Benutzer",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu “{file}” erwähnt"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Cancel" : "Abbrechen",
|
||||
"Save" : "Speichern"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,5 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cancel" : "Abbrechen",
|
||||
"Save" : "Speichern"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Kommentare",
|
||||
"New comment …" : "Neuer Kommentar …",
|
||||
"Delete comment" : "Kommentar löschen",
|
||||
"Post" : "Speichern",
|
||||
"Cancel" : "Abbrechen",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
"[Deleted user]" : "[gelöschter Benutzer]",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
|
||||
"More comments …" : "Weitere Kommentare …",
|
||||
"Save" : "Speichern",
|
||||
"Allowed characters {count} of {max}" : "{count} von {max} Zeichen benutzt",
|
||||
"Error occurred while retrieving comment with id {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
|
||||
"Comment" : "Kommentar",
|
||||
"You commented" : "Sie haben kommentiert",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"{author} commented" : "{author} kommentierte",
|
||||
"You commented on %1$s" : "Sie haben %1$s kommentiert",
|
||||
"You commented on {file}" : "Sie haben {file} kommentiert",
|
||||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} hat Sie in einem Kommentar zu “{file}” erwähnt",
|
||||
"Unknown user" : "Unbekannter Benutzer",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu “{file}” erwähnt"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Kommentare",
|
||||
"New comment …" : "Neuer Kommentar …",
|
||||
"Delete comment" : "Kommentar löschen",
|
||||
"Post" : "Speichern",
|
||||
"Cancel" : "Abbrechen",
|
||||
"Edit comment" : "Kommentar bearbeiten",
|
||||
"[Deleted user]" : "[gelöschter Benutzer]",
|
||||
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
|
||||
"More comments …" : "Weitere Kommentare …",
|
||||
"Save" : "Speichern",
|
||||
"Allowed characters {count} of {max}" : "{count} von {max} Zeichen benutzt",
|
||||
"Error occurred while retrieving comment with id {id}" : "Es ist ein Fehler beim Empfangen des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while updating comment with id {id}" : "Es ist ein Fehler beim Aktualisieren des Kommentars mit der ID {id} aufgetreten",
|
||||
"Error occurred while posting comment" : "Es ist ein Fehler beim Veröffentlichen des Kommentars aufgetreten",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n ungelesener Kommentar","%n ungelesene Kommentare"],
|
||||
"Comment" : "Kommentar",
|
||||
"You commented" : "Sie haben kommentiert",
|
||||
"%1$s commented" : "%1$s kommentierte",
|
||||
"{author} commented" : "{author} kommentierte",
|
||||
"You commented on %1$s" : "Sie haben %1$s kommentiert",
|
||||
"You commented on {file}" : "Sie haben {file} kommentiert",
|
||||
"%1$s commented on %2$s" : "%1$s kommentierte %2$s",
|
||||
"{author} commented on {file}" : "{author} hat {file} kommentiert",
|
||||
"<strong>Comments</strong> for files" : "<strong>Kommentare</strong> für Dateien",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} hat Sie in einem Kommentar zu “{file}” erwähnt",
|
||||
"Unknown user" : "Unbekannter Benutzer",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu “{file}” erwähnt"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Σχόλια",
|
||||
"New comment …" : "Νέο σχόλιο ...",
|
||||
"Delete comment" : "Διαγραφή σχολίου",
|
||||
"Post" : "Δημοσίευση",
|
||||
"Cancel" : "Ακύρωση",
|
||||
"Edit comment" : "Επεξεργασία σχολίου",
|
||||
"[Deleted user]" : "[Διαγραμμένος χρήστης]",
|
||||
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
|
||||
"More comments …" : "Περισσότερα σχόλια ...",
|
||||
"Save" : "Αποθήκευση",
|
||||
"Allowed characters {count} of {max}" : "Επιτρεπόμενοι χαρακτήρες {count} από {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Ένα σφάλμα προέκυψε κατά την λήψη σχολίου με αναγνωριστικό {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Ένα σφάλμα προέκυψε κατά την ενημέρωση του σχολίου με το αναγνωριστικό {id}",
|
||||
"Error occurred while posting comment" : "Ένα σφάλμα προέκυψε κατά την δημοσίευση σχολίου",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"],
|
||||
"Comment" : "Σχόλιο",
|
||||
"You commented" : "Σχολιάσατε",
|
||||
"%1$s commented" : "%1$s σχολίασε",
|
||||
"{author} commented" : "Ο {author} σχολίασε",
|
||||
"You commented on %1$s" : "Σχολιάσατε στο %1$s",
|
||||
"You commented on {file}" : "Σχολιάσατε στο {file}",
|
||||
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
|
||||
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s σας ανέφερε σε σχόλιο στο “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "Ο {user} σας ανέφερε σε σχόλιο στο “{file}”",
|
||||
"Unknown user" : "Άγνωστος χρήστης",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,32 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Σχόλια",
|
||||
"New comment …" : "Νέο σχόλιο ...",
|
||||
"Delete comment" : "Διαγραφή σχολίου",
|
||||
"Post" : "Δημοσίευση",
|
||||
"Cancel" : "Ακύρωση",
|
||||
"Edit comment" : "Επεξεργασία σχολίου",
|
||||
"[Deleted user]" : "[Διαγραμμένος χρήστης]",
|
||||
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
|
||||
"More comments …" : "Περισσότερα σχόλια ...",
|
||||
"Save" : "Αποθήκευση",
|
||||
"Allowed characters {count} of {max}" : "Επιτρεπόμενοι χαρακτήρες {count} από {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Ένα σφάλμα προέκυψε κατά την λήψη σχολίου με αναγνωριστικό {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Ένα σφάλμα προέκυψε κατά την ενημέρωση του σχολίου με το αναγνωριστικό {id}",
|
||||
"Error occurred while posting comment" : "Ένα σφάλμα προέκυψε κατά την δημοσίευση σχολίου",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n αδιάβαστο σχόλιο","%n αδιάβαστα σχόλια"],
|
||||
"Comment" : "Σχόλιο",
|
||||
"You commented" : "Σχολιάσατε",
|
||||
"%1$s commented" : "%1$s σχολίασε",
|
||||
"{author} commented" : "Ο {author} σχολίασε",
|
||||
"You commented on %1$s" : "Σχολιάσατε στο %1$s",
|
||||
"You commented on {file}" : "Σχολιάσατε στο {file}",
|
||||
"%1$s commented on %2$s" : "%1$s σχολίασε στο %2$s",
|
||||
"{author} commented on {file}" : "Ο {author} σχολίασε στο {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Σχόλια</strong> για αρχεία",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s σας ανέφερε σε σχόλιο στο “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "Ο {user} σας ανέφερε σε σχόλιο στο “{file}”",
|
||||
"Unknown user" : "Άγνωστος χρήστης",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Ο (πρόσφατα) διεγραμμένος χρήστης σας ανέφερε σε σχόλιο στο “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comments",
|
||||
"New comment …" : "New comment …",
|
||||
"Delete comment" : "Delete comment",
|
||||
"Post" : "Post",
|
||||
"Cancel" : "Cancel",
|
||||
"Edit comment" : "Edit comment",
|
||||
"[Deleted user]" : "[Deleted user]",
|
||||
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
|
||||
"More comments …" : "More comments …",
|
||||
"Save" : "Save",
|
||||
"Allowed characters {count} of {max}" : "Allowed characters: {count} of {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Error occurred while retrieving comment with id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Error occurred while updating comment with id {id}",
|
||||
"Error occurred while posting comment" : "Error occurred while posting comment",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"],
|
||||
"Comment" : "Comment",
|
||||
"You commented" : "You commented",
|
||||
"%1$s commented" : "%1$s commented",
|
||||
"{author} commented" : "{author} commented",
|
||||
"You commented on %1$s" : "You commented on %1$s",
|
||||
"You commented on {file}" : "You commented on {file}",
|
||||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "You were mentioned on “%s”, in a comment by a user that has since been deleted",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "You were mentioned on “{file}”, in a comment by a user that has since been deleted",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentioned you in a comment on “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} mentioned you in a comment on “{file}”",
|
||||
"Unknown user" : "Unknown user",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) deleted user mentioned you in a comment on “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comments",
|
||||
"New comment …" : "New comment …",
|
||||
"Delete comment" : "Delete comment",
|
||||
"Post" : "Post",
|
||||
"Cancel" : "Cancel",
|
||||
"Edit comment" : "Edit comment",
|
||||
"[Deleted user]" : "[Deleted user]",
|
||||
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
|
||||
"More comments …" : "More comments …",
|
||||
"Save" : "Save",
|
||||
"Allowed characters {count} of {max}" : "Allowed characters: {count} of {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Error occurred while retrieving comment with id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Error occurred while updating comment with id {id}",
|
||||
"Error occurred while posting comment" : "Error occurred while posting comment",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n unread comment","%n unread comments"],
|
||||
"Comment" : "Comment",
|
||||
"You commented" : "You commented",
|
||||
"%1$s commented" : "%1$s commented",
|
||||
"{author} commented" : "{author} commented",
|
||||
"You commented on %1$s" : "You commented on %1$s",
|
||||
"You commented on {file}" : "You commented on {file}",
|
||||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "You were mentioned on “%s”, in a comment by a user that has since been deleted",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "You were mentioned on “{file}”, in a comment by a user that has since been deleted",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s mentioned you in a comment on “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} mentioned you in a comment on “{file}”",
|
||||
"Unknown user" : "Unknown user",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "A (now) deleted user mentioned you in a comment on “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Type in a new comment..." : "Tajpu novan komenton...",
|
||||
"Delete comment" : "Forigi komenton",
|
||||
"Post" : "Afiŝi",
|
||||
"Cancel" : "Nuligi",
|
||||
"Edit comment" : "Redakti komenton",
|
||||
"[Deleted user]" : "[Forigita uzanto]",
|
||||
"Comments" : "Komentoj",
|
||||
"No other comments available" : "Neniu alia komento disponeblas",
|
||||
"More comments..." : "Pli da komentoj...",
|
||||
"Save" : "Konservi",
|
||||
"Allowed characters {count} of {max}" : "Permesataj karakteroj: {count} el {max}",
|
||||
"{count} unread comments" : "{count} nelegitaj komentoj",
|
||||
"Comment" : "Komento",
|
||||
"%1$s commented" : "%1$s komentis",
|
||||
"%1$s commented on %2$s" : "%1$s komentis %2$s"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,18 +0,0 @@
|
||||
{ "translations": {
|
||||
"Type in a new comment..." : "Tajpu novan komenton...",
|
||||
"Delete comment" : "Forigi komenton",
|
||||
"Post" : "Afiŝi",
|
||||
"Cancel" : "Nuligi",
|
||||
"Edit comment" : "Redakti komenton",
|
||||
"[Deleted user]" : "[Forigita uzanto]",
|
||||
"Comments" : "Komentoj",
|
||||
"No other comments available" : "Neniu alia komento disponeblas",
|
||||
"More comments..." : "Pli da komentoj...",
|
||||
"Save" : "Konservi",
|
||||
"Allowed characters {count} of {max}" : "Permesataj karakteroj: {count} el {max}",
|
||||
"{count} unread comments" : "{count} nelegitaj komentoj",
|
||||
"Comment" : "Komento",
|
||||
"%1$s commented" : "%1$s komentis",
|
||||
"%1$s commented on %2$s" : "%1$s komentis %2$s"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Nuevo comentario",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario eliminado]",
|
||||
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se ha producido un error al recuperar el comentario con ID {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con ID {id}",
|
||||
"Error occurred while posting comment" : "Se ha producido un error al enviar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%nComentarios no leídos"],
|
||||
"Comment" : "Comentar",
|
||||
"You commented" : "Has comentado",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Has comentado en %1$s",
|
||||
"You commented on {file}" : "Has comentado en {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te han mencionado en \"%s\", en un comentario por un usuario que después ha sido eliminado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Nuevo comentario",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario eliminado]",
|
||||
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se ha producido un error al recuperar el comentario con ID {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con ID {id}",
|
||||
"Error occurred while posting comment" : "Se ha producido un error al enviar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentario sin leer","%nComentarios no leídos"],
|
||||
"Comment" : "Comentar",
|
||||
"You commented" : "Has comentado",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Has comentado en %1$s",
|
||||
"You commented on {file}" : "Has comentado en {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentados en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> para archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te han mencionado en \"%s\", en un comentario por un usuario que después ha sido eliminado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) eliminado, te mencionó en un comentario en “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Post",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} of {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se ha producido un error al recuperar el comentario con id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con id {id}",
|
||||
"Error occurred while posting comment" : "Se ha producido un error al publicar un comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentar",
|
||||
"You commented" : "Ud. ha comentado",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Ud. ah comentado en %1$s",
|
||||
"You commented on {file}" : "Ud. ha comentado en {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te ha mencionado en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te ha mencionado en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un (now) usuario borrado te ha mencionado en un comentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un (now) usuario borrado the ha mencionado en un comentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,32 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Nuevo comentario ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Post",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "No hay comentarios aún, iniciar la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} of {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se ha producido un error al recuperar el comentario con id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se ha producido un error al actualizar el comentario con id {id}",
|
||||
"Error occurred while posting comment" : "Se ha producido un error al publicar un comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentar",
|
||||
"You commented" : "Ud. ha comentado",
|
||||
"%1$s commented" : "%1$s comentados",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Ud. ah comentado en %1$s",
|
||||
"You commented on {file}" : "Ud. ha comentado en {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> en archivos",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te ha mencionado en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te ha mencionado en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un (now) usuario borrado te ha mencionado en un comentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un (now) usuario borrado the ha mencionado en un comentario en “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,34 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comentarios",
|
||||
"New comment …" : "Comentario nuevo ...",
|
||||
"Delete comment" : "Borrar comentario",
|
||||
"Post" : "Publicar",
|
||||
"Cancel" : "Cancelar",
|
||||
"Edit comment" : "Editar comentario",
|
||||
"[Deleted user]" : "[Usuario borrado]",
|
||||
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
|
||||
"More comments …" : "Más comentarios ...",
|
||||
"Save" : "Guardar",
|
||||
"Allowed characters {count} of {max}" : "Caracteres permitidos {count} de {max}",
|
||||
"Error occurred while retrieving comment with id {id}" : "Se presentó un error al recuperar el comentario con Id {id}",
|
||||
"Error occurred while updating comment with id {id}" : "Se presentó un error al actualizar el comentario con Id {id}",
|
||||
"Error occurred while posting comment" : "Se presentó un error al publicar el comentario",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n comentarios sin leer","%n comentarios sin leer"],
|
||||
"Comment" : "Comentario",
|
||||
"You commented" : "Comentaste",
|
||||
"%1$s commented" : "%1$s comentó",
|
||||
"{author} commented" : "{author} comentó",
|
||||
"You commented on %1$s" : "Usted comentó en %1$s",
|
||||
"You commented on {file}" : "Hiciste un comentario de {file}",
|
||||
"%1$s commented on %2$s" : "%1$s comentó en %2$s",
|
||||
"{author} commented on {file}" : "{author} comentó en {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comentarios</strong> de los archivos",
|
||||
"You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
|
||||
"%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”",
|
||||
"Unknown user" : "Usuario desconocido",
|
||||
"A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
|
||||
"A (now) deleted user mentioned you in a comment on “{file}”" : "Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user