Compare commits
492 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 07e359b7de | |||
| 115ae98142 | |||
| 33685c58de | |||
| dd9b0ea3d3 | |||
| 610bc603c8 | |||
| a8415ea7d7 | |||
| e7afd64436 | |||
| 9be73bfeeb | |||
| 113965df8c | |||
| b5366997a5 | |||
| fbc9133861 | |||
| 53a18945d4 | |||
| f71919c967 | |||
| 729c0b89ed | |||
| f74e5c4cd5 | |||
| 30d81a981e | |||
| 0927ff1edb | |||
| 7c9167e9b4 | |||
| e4817972d8 | |||
| 068e977b07 | |||
| 14fa79f37a | |||
| 106144edc5 | |||
| 10c60b9179 | |||
| c78148c57a | |||
| e47f7690c4 | |||
| e6d7cdcfd7 | |||
| 9410141747 | |||
| f5ed8073b8 | |||
| 815ec82cd0 | |||
| 3985791360 | |||
| b1ed97bdca | |||
| db539b58ad | |||
| 3558d87ec4 | |||
| 72ac7c11d6 | |||
| 0931599ae0 | |||
| fe89d00fd5 | |||
| cb170bacf3 | |||
| 0e77b0f496 | |||
| 5042fda90d | |||
| 11695164c6 | |||
| 772e8a11e7 | |||
| e38832ab30 | |||
| e442ce53be | |||
| 389c7dcd6a | |||
| c128e0a787 | |||
| eb3d06c53a | |||
| 7793e88616 | |||
| 4ac4c0a94c | |||
| 81cd110526 | |||
| 7da323aace | |||
| 64d7080575 | |||
| 9f827142cf | |||
| 1cc0e4b394 | |||
| 265aedc6e5 | |||
| c406a14fdb | |||
| 74ba52641d | |||
| 8eb6dd8ed5 | |||
| 74b009eac3 | |||
| 4ea2060099 | |||
| 934a7618a9 | |||
| f82529a74c | |||
| 1d5c820354 | |||
| 1434a75c73 | |||
| 8625d516b6 | |||
| 9888b05970 | |||
| 733f22536d | |||
| c77dc0a31c | |||
| 68bfaa1da3 | |||
| fa7b964ada | |||
| 4732aea350 | |||
| 8549325752 | |||
| f22209dc37 | |||
| f2cdd8af99 | |||
| 3bd1194526 | |||
| 4d5ee24eed | |||
| 59d5937b06 | |||
| 42239fc02c | |||
| 249582a811 | |||
| 5250bb0509 | |||
| 9741fd466c | |||
| 7c870faf17 | |||
| 151fafcd45 | |||
| 609494fd4d | |||
| 438386c96a | |||
| 5ef25870e5 | |||
| 3f1e4a0b15 | |||
| 3f71dd2b8d | |||
| 08673d29ab | |||
| 7eb702ec53 | |||
| f8c6c267d5 | |||
| 7c812482cf | |||
| b4a4250537 | |||
| b343bd5381 | |||
| 4be2e55af1 | |||
| 1bcd3c633f | |||
| 8eb921c60e | |||
| 317e04dd26 | |||
| c57a621deb | |||
| cc9758e12a | |||
| 0571d41df5 | |||
| 88fc177e26 | |||
| 4146764686 | |||
| b699e8f487 | |||
| 5c4c162d0d | |||
| c9c671a466 | |||
| 7c48177830 | |||
| c7159f9322 | |||
| 3586cf8e04 | |||
| ccf9cc964c | |||
| 2389b035f3 | |||
| f353dd98f4 | |||
| 5a8034c753 | |||
| 0d8a36aebf | |||
| 001611ca97 | |||
| a05396b26a | |||
| d86877b867 | |||
| 3e3ce19bfc | |||
| 9c468e115d | |||
| 1258776f6e | |||
| b5e6ed48ea | |||
| 0bd57da8f0 | |||
| 7d13ce00e2 | |||
| d720b987da | |||
| 2e1f7a8161 | |||
| 4b00f5d6e9 | |||
| 1d5bcdfd84 | |||
| b87649beeb | |||
| 3061f8a529 | |||
| 22a9470195 | |||
| 0fa0d2cce1 | |||
| 23975c9ce4 | |||
| 37c1a05db0 | |||
| 78b43482fc | |||
| 42f0a46b12 | |||
| 21e8370b43 | |||
| 6880498324 | |||
| eda2be4972 | |||
| 3255b22630 | |||
| d2c6fa02be | |||
| d45a42595b | |||
| 9165f0c2ff | |||
| b1190a03f7 | |||
| 119010d234 | |||
| 03b14f0ffa | |||
| 469f18568b | |||
| 792950268a | |||
| e1aa27c265 | |||
| e66a96c3dd | |||
| a5c1bb06e4 | |||
| 429d8082dd | |||
| d99a72b801 | |||
| 956bccc1c0 | |||
| 4c9e7e2d39 | |||
| a022cf8f5d | |||
| 320a9478fe | |||
| 7b5c9edd06 | |||
| 10ff8e39a5 | |||
| 1edc24ef26 | |||
| a28b68bc9f | |||
| 389123ac3c | |||
| 35d0d36bad | |||
| 5a022f797f | |||
| 1eea64f2c3 | |||
| cfe553e28a | |||
| eada9eaace | |||
| e019b0d329 | |||
| 2f880f5bcf | |||
| 0629b58382 | |||
| 34b5d979ff | |||
| caa9a9dbb5 | |||
| 2a928d46d4 | |||
| c7b6e73fe4 | |||
| 211e14859a | |||
| 39c73581c1 | |||
| 9e5440abc3 | |||
| 7f897606e4 | |||
| 5444db1ebf | |||
| 09921e94f4 | |||
| f94ec1f80c | |||
| 6d2430701c | |||
| d84eed7fb0 | |||
| 2ce0a190b4 | |||
| 687d0abfc5 | |||
| 025e057f9d | |||
| 664a95eb75 | |||
| 648ae408e9 | |||
| 1d7e8ca0c3 | |||
| cd9ee1653b | |||
| bd30d97857 | |||
| 951aa784b0 | |||
| df269272cf | |||
| 8be50456e5 | |||
| e0d632c342 | |||
| e3be5d49d3 | |||
| d73de679a8 | |||
| 3a6145becf | |||
| 5d4ad75e53 | |||
| 945b9288c6 | |||
| 2dc669c2ae | |||
| 10c3974ff7 | |||
| 1829b5d9c4 | |||
| f7d5bb5cb1 | |||
| cae51a0a25 | |||
| e2a4dc818c | |||
| 2663b10e49 | |||
| c485aad988 | |||
| f3f1c826be | |||
| cb49f19385 | |||
| e1d9a45c6d | |||
| 67cbb0318d | |||
| 79b5421425 | |||
| 461e9079b9 | |||
| 7879484950 | |||
| d89b462351 | |||
| 94e5dcd90e | |||
| 26d1ac1f1f | |||
| 34ba91e141 | |||
| f605e1dabf | |||
| 55fcffd11a | |||
| 57e20ed566 | |||
| e9fc8e1dcb | |||
| f97915101e | |||
| 73a52b2565 | |||
| 7fb8b50cf9 | |||
| 4566423e85 | |||
| fb5ee6087b | |||
| 51bfaf9faa | |||
| 1415a7ee92 | |||
| 54192ed459 | |||
| fdd5bc8560 | |||
| a822e88d24 | |||
| 0a184a3201 | |||
| 5ce9276230 | |||
| 0b44a82ace | |||
| 02d3de6aef | |||
| f60ea8a260 | |||
| a22ea02bea | |||
| 33b01187cd | |||
| 2e76d98e13 | |||
| 5b111961ae | |||
| df0ca2f1db | |||
| 701de23857 | |||
| dde4c9d9df | |||
| 9c0e1d8252 | |||
| 37a65237ea | |||
| 4d0f0095ea | |||
| 13781b0425 | |||
| 08ab5d97da | |||
| df835ed350 | |||
| 5bd4ed19d4 | |||
| 8a6e3e6aca | |||
| 876545502c | |||
| 6acf1a5493 | |||
| faef6db11a | |||
| eceee99081 | |||
| 59e6c25660 | |||
| 1f4886d891 | |||
| 6f57b3bc79 | |||
| 164d5a296b | |||
| a58eafb53f | |||
| 0af0874442 | |||
| 9da252811c | |||
| 9a95bb4f89 | |||
| f9dfb535ef | |||
| ae3c49d375 | |||
| 127d8e65a4 | |||
| f030a16333 | |||
| 3290c53d6a | |||
| aec771763c | |||
| 525ff78aab | |||
| 2a4b5752de | |||
| 6da7f78ec2 | |||
| fc9066efb2 | |||
| e0ab00e5f1 | |||
| a45d94af7b | |||
| 192858a79b | |||
| 3f3206149e | |||
| 972f678316 | |||
| 8c13c5a5be | |||
| 7f044655ed | |||
| 94466918e3 | |||
| e02dde323d | |||
| 7c7dc50ceb | |||
| 4932396052 | |||
| 3c494c4031 | |||
| b285f18595 | |||
| 78a5ece3d9 | |||
| f3e7212bea | |||
| b81db1aa1c | |||
| d6641f639d | |||
| c3670c9d86 | |||
| 6282aca622 | |||
| f0ca1f7173 | |||
| afbcdb4fa0 | |||
| cba61e955c | |||
| e3cf80aba4 | |||
| b7da9efbd3 | |||
| 9452553842 | |||
| 79526af7a5 | |||
| 69e650d4b0 | |||
| 1534b24e38 | |||
| 0feea35823 | |||
| 98b14028b5 | |||
| dc0dbcf437 | |||
| 918c75c84b | |||
| bd1217ff58 | |||
| 68905056dc | |||
| 2585ae80cf | |||
| 2e9d5ce5c6 | |||
| 3be3a3ec87 | |||
| 8550418872 | |||
| 6fe61cc8b3 | |||
| 837c08892b | |||
| 46135e018a | |||
| ff10807f37 | |||
| b91ea46fce | |||
| 5681de67fc | |||
| 83e84f3aa3 | |||
| 6628c2c6ca | |||
| 3879860177 | |||
| 4eae0f7a0a | |||
| 269e436857 | |||
| dc8b42eec4 | |||
| 68015b6680 | |||
| 0ce687fd33 | |||
| 185812ed48 | |||
| 7e96f06c59 | |||
| 76e0481bd5 | |||
| ed3f47b049 | |||
| 4721a82f92 | |||
| 11a252814e | |||
| c0f3fcd9a1 | |||
| 4c47cef75f | |||
| eae6ab29ec | |||
| 377942d5ef | |||
| add5919175 | |||
| d5b38ed5f8 | |||
| 59f56244c6 | |||
| f19f9e1927 | |||
| a6d8b3bbc3 | |||
| 1343e0ce9a | |||
| 16bc5a39da | |||
| 24714324b8 | |||
| a715b8da19 | |||
| 622bb56f44 | |||
| bce33f231d | |||
| 8b17f317ee | |||
| cc34255303 | |||
| 9d2cf57776 | |||
| cf62f62e80 | |||
| 67675c80d6 | |||
| b1c3dacd51 | |||
| 9305eaac55 | |||
| 79c10ff847 | |||
| c44e168c77 | |||
| 9bb06118ab | |||
| 1cdf2a268b | |||
| 9877075c47 | |||
| 81e9495c51 | |||
| 718cb09dc9 | |||
| 359a33f91a | |||
| df9abad225 | |||
| 89dd07f051 | |||
| 3bd8bff7db | |||
| 82017ff311 | |||
| 44fd0d15a7 | |||
| 9c13098d65 | |||
| da157ea242 | |||
| 4de6ab39ea | |||
| bdcf22eee7 | |||
| e915d98fc6 | |||
| 5a9a02ad1d | |||
| 424027b67f | |||
| 45617f7b04 | |||
| 05d49b9a67 | |||
| 5aaad8db1b | |||
| 0bbc64960e | |||
| 9970740f6b | |||
| f8448323d7 | |||
| c8c2870191 | |||
| 0ff49820c8 | |||
| 33f231c5ae | |||
| be1444576d | |||
| 0263eea033 | |||
| ac3ffa7d7a | |||
| d878c68495 | |||
| a2c02455d0 | |||
| 66f07cf203 | |||
| efefffa4cd | |||
| f0c78d45a9 | |||
| 84d1398298 | |||
| a130d113c8 | |||
| 8d31b1a57d | |||
| 69f2b691cd | |||
| 6bd2efe549 | |||
| d23b723d38 | |||
| 41ca0af614 | |||
| 4798a29442 | |||
| 295d599b8f | |||
| c04797dca0 | |||
| 1fbe3cd596 | |||
| a5fa6c9250 | |||
| f16a806819 | |||
| af2a862857 | |||
| 6505312817 | |||
| 120fc8dd6a | |||
| ca96a03c6b | |||
| 54e249bb0f | |||
| 49d7a7b896 | |||
| ecab457ae0 | |||
| 65e9c67bbd | |||
| f9e2799855 | |||
| b5d6189ca2 | |||
| fb018b7435 | |||
| 25ad68e6f5 | |||
| 5dcc18af46 | |||
| 525dfd2f4d | |||
| 32f0d85957 | |||
| cd0343e6b9 | |||
| b01c3351f8 | |||
| 2b122fbcf0 | |||
| 0e90199f1d | |||
| 1826107f56 | |||
| 9f65367112 | |||
| 3dd1b95f90 | |||
| 8c6ca5d835 | |||
| c5d518c4c5 | |||
| 2054614358 | |||
| 2ed3574ea0 | |||
| a0d6002297 | |||
| e5fe200076 | |||
| a626792e15 | |||
| c67e1420c8 | |||
| 3f212b8857 | |||
| f8db7ce8f5 | |||
| c73070c19d | |||
| fb8e681161 | |||
| 0ab8f2f15a | |||
| f6f85478a0 | |||
| 5e93d571e0 | |||
| afb7126022 | |||
| 6a4a5d888e | |||
| cb57285870 | |||
| 268e6af00e | |||
| cb0e76105e | |||
| 6c24e13d4b | |||
| 226e0c4107 | |||
| b5b58faec0 | |||
| 863686c283 | |||
| e2c96aebd1 | |||
| b25e8e7030 | |||
| 858da2ed1d | |||
| 9882ae8986 | |||
| 87d8e8f6d3 | |||
| 1220e48301 | |||
| 28a21048ac | |||
| 3ca664dda1 | |||
| 48be209e92 | |||
| bf279980ac | |||
| 5bde3d1836 | |||
| 6b83de79c6 | |||
| 727d2300b6 | |||
| 1f6f863d86 | |||
| 1754c3d979 | |||
| 29b36c56f3 | |||
| cc1d24a008 | |||
| 3550b12e3e | |||
| 4565f5d3b4 | |||
| 9d6c11f7da | |||
| 87efcd06ca | |||
| b30ce04e15 | |||
| bcedd4031d | |||
| 63d2aad5d3 | |||
| 19d2367340 | |||
| 51cae9ba98 | |||
| 148a62939f | |||
| eb5e445af4 | |||
| 4398cf85c1 | |||
| e74f5aeec2 | |||
| 98005fc331 | |||
| 7e506bab4c | |||
| a614537edb | |||
| f6e544119a | |||
| 8ee15f9984 | |||
| b299369c15 | |||
| 61a3132c76 | |||
| 3b5b2af215 | |||
| dfc096737d | |||
| 57a4ef9da8 | |||
| 3d7e3185fc | |||
| 3d20ca684c | |||
| 99b7b82d72 |
+1
-1
@@ -1,5 +1,5 @@
|
||||
codecov:
|
||||
branch: master
|
||||
branch: stable22
|
||||
ci:
|
||||
- drone.nextcloud.com
|
||||
- !scrutinizer-ci.com
|
||||
|
||||
+49
-42
@@ -739,7 +739,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-capabilities_features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -764,7 +764,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-collaboration_features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -789,7 +789,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-federation_features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
@@ -814,7 +814,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-auth
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -839,7 +839,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-avatar
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -864,7 +864,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-maintenance-mode
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -889,7 +889,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ratelimiting
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -924,7 +924,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-carddav
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -949,7 +949,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-dav-v2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -974,7 +974,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ocs-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -999,7 +999,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-checksums-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1024,7 +1024,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-external-storage
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1049,7 +1049,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-provisioning-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1074,7 +1074,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-tags
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1099,7 +1099,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-caldav
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1124,7 +1124,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-comments
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1149,7 +1149,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-comments-search
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1174,7 +1174,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-contacts-menu
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1199,7 +1199,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-favorites
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1224,7 +1224,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-provisioning-v2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1249,7 +1249,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-webdav-related
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1274,7 +1274,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharees-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1299,7 +1299,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharees-v2-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1324,7 +1324,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharing-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1349,7 +1349,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharing-v1-part2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1374,7 +1374,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharing-v1-part3
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1403,9 +1403,9 @@ steps:
|
||||
commands:
|
||||
# JavaScript files are not used in integration tests so it is not needed to
|
||||
# build them.
|
||||
- git clone --depth 1 https://github.com/nextcloud/spreed apps/spreed
|
||||
- git clone --depth 1 --branch stable22 https://github.com/nextcloud/spreed apps/spreed
|
||||
- name: integration-sharing-v1-video-verification
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1430,7 +1430,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-setup-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- cd build/integration
|
||||
@@ -1454,7 +1454,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-filesdrop-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1479,7 +1479,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-transfer-ownership-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1504,7 +1504,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1529,7 +1529,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-openldap-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1570,7 +1570,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-openldap-uid-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1612,7 +1612,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-openldap-numerical-id-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1653,7 +1653,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-trashbin
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1678,7 +1678,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-remote-api
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1703,7 +1703,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-download
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -2117,6 +2117,15 @@ kind: pipeline
|
||||
name: object-store-s3
|
||||
|
||||
steps:
|
||||
- name: minio
|
||||
image: ghcr.io/nextcloud/continuous-integration-minio:latest
|
||||
detach: true
|
||||
commands:
|
||||
- mkdir /s3data
|
||||
- minio server /s3data
|
||||
environment:
|
||||
MINIO_ROOT_USER: nextcloud
|
||||
MINIO_ROOT_PASSWORD: nextcloud
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
@@ -2124,6 +2133,7 @@ steps:
|
||||
- name: object-store
|
||||
image: ghcr.io/nextcloud/continuous-integration-php7.4:php7.4-3
|
||||
environment:
|
||||
OBJECT_STORE: s3
|
||||
CODECOV_TOKEN:
|
||||
from_secret: CODECOV_TOKEN
|
||||
commands:
|
||||
@@ -2133,10 +2143,6 @@ steps:
|
||||
- wget https://codecov.io/bash -O codecov.sh
|
||||
- bash codecov.sh -C $DRONE_COMMIT -f tests/autotest-clover-sqlite.xml
|
||||
|
||||
services:
|
||||
- name: fake-s3
|
||||
image: ghcr.io/nextcloud/continuous-integration-fake-s3:latest
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
@@ -2157,6 +2163,7 @@ steps:
|
||||
- name: object-store
|
||||
image: ghcr.io/nextcloud/continuous-integration-php7.4:php7.4-3
|
||||
environment:
|
||||
OBJECT_STORE: azure
|
||||
CODECOV_TOKEN:
|
||||
from_secret: CODECOV_TOKEN
|
||||
commands:
|
||||
|
||||
@@ -1,21 +1,29 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
|
||||
name: Dependabot
|
||||
on: pull_request_target
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
jobs:
|
||||
auto-merge:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Default github action approve
|
||||
- uses: hmarr/auto-approve-action@v2.0.0
|
||||
if: github.ref == 'refs/heads/master' &&
|
||||
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
||||
- uses: hmarr/auto-approve-action@v2
|
||||
if: github.actor == 'dependabot[bot]'
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Nextcloud bot approve and merge request
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@v2
|
||||
if: github.ref == 'refs/heads/master' &&
|
||||
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
||||
if: github.actor == 'dependabot[bot]'
|
||||
with:
|
||||
target: minor
|
||||
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Psalm
|
||||
uses: docker://vimeo/psalm-github-actions
|
||||
uses: docker://vimeo/psalm-github-actions:4.9.3
|
||||
continue-on-error: true
|
||||
with:
|
||||
composer_ignore_platform_reqs: false
|
||||
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Psalm
|
||||
uses: docker://vimeo/psalm-github-actions
|
||||
uses: docker://vimeo/psalm-github-actions:4.9.3
|
||||
with:
|
||||
security_analysis: true
|
||||
composer_ignore_platform_reqs: false
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
<IfModule mod_proxy_fcgi.c>
|
||||
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
|
||||
</IfModule>
|
||||
<IfModule mod_lsapi.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_env.c>
|
||||
@@ -39,7 +43,7 @@
|
||||
</IfModule>
|
||||
|
||||
# Add cache control for static resources
|
||||
<FilesMatch "\.(css|js|svg|gif)$">
|
||||
<FilesMatch "\.(css|js|svg|gif|png|jpg|ico)$">
|
||||
Header set Cache-Control "max-age=15778463"
|
||||
</FilesMatch>
|
||||
|
||||
@@ -48,6 +52,8 @@
|
||||
Header set Cache-Control "max-age=604800"
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
# PHP 7.x
|
||||
<IfModule mod_php7.c>
|
||||
php_value mbstring.func_overload 0
|
||||
php_value default_charset 'UTF-8'
|
||||
@@ -56,6 +62,30 @@
|
||||
SetEnv htaccessWorking true
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
# PHP 8+
|
||||
<IfModule mod_php.c>
|
||||
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_mime.c>
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php index.html
|
||||
</IfModule>
|
||||
|
||||
<IfModule pagespeed_module>
|
||||
ModPagespeed Off
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTP_USER_AGENT} DavClnt
|
||||
@@ -68,15 +98,6 @@
|
||||
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
|
||||
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
|
||||
</IfModule>
|
||||
<IfModule mod_mime.c>
|
||||
AddType image/svg+xml svg svgz
|
||||
AddEncoding gzip svgz
|
||||
</IfModule>
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php index.html
|
||||
</IfModule>
|
||||
|
||||
AddDefaultCharset utf-8
|
||||
Options -Indexes
|
||||
<IfModule pagespeed_module>
|
||||
ModPagespeed Off
|
||||
</IfModule>
|
||||
|
||||
+1
-1
Submodule 3rdparty updated: 9719b46b7c...40760a4a1a
@@ -1,6 +1,6 @@
|
||||
# Nextcloud Server ☁
|
||||
[](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
|
||||
[](https://codecov.io/gh/nextcloud/server)
|
||||
[](https://scrutinizer-ci.com/g/nextcloud/server/?branch=stable22)
|
||||
[](https://codecov.io/gh/nextcloud/server)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/209)
|
||||
|
||||
**A safe home for all your data.**
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Accessibility</name>
|
||||
<summary>Accessibility options for nextcloud</summary>
|
||||
<description><![CDATA[Provides multiple accessibilities options to ease your use of Nextcloud]]></description>
|
||||
<version>1.7.0</version>
|
||||
<version>1.8.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>John Molakvoæ</author>
|
||||
<namespace>Accessibility</namespace>
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@ OC.L10N.register(
|
||||
{
|
||||
"Dark theme" : "Tema oscuro",
|
||||
"Enable dark theme" : "Activar tema oscuro",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema oscuro para facilitar la navegación reduciendo el brillo y la luminosidad. Aún se encuentra en desarrollo, así que por favor, comunique cualquier problema que encuentre.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema oscuro para facilitar la navegación, reduciendo el brillo y la luminosidad. Aún se encuentra en desarrollo, así que, por favor, comunique cualquier problema que encuentre.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Activar modo de alto contraste",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste para facilitar la navegación. Se reducirá la calidad visual pero se aumentará la claridad.",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Tema oscuro",
|
||||
"Enable dark theme" : "Activar tema oscuro",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema oscuro para facilitar la navegación reduciendo el brillo y la luminosidad. Aún se encuentra en desarrollo, así que por favor, comunique cualquier problema que encuentre.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Tema oscuro para facilitar la navegación, reduciendo el brillo y la luminosidad. Aún se encuentra en desarrollo, así que, por favor, comunique cualquier problema que encuentre.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Activar modo de alto contraste",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un modo de alto contraste para facilitar la navegación. Se reducirá la calidad visual pero se aumentará la claridad.",
|
||||
|
||||
@@ -9,8 +9,11 @@ OC.L10N.register(
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste para facilitar tu navegación. La calidad visual puede ser menor pero incrementa la claridad.",
|
||||
"Dyslexia font" : "Fuente para dislexia",
|
||||
"Enable dyslexia font" : "Habilitar fuente para dislexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es una tipografía/fuente diseñada para mitigar algunos de los errores comunes de lectura causados por dislexia.",
|
||||
"Accessibility" : "Accesibilidad",
|
||||
"Accessibility options for nextcloud" : "Opciones de accesibilidad para nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar su uso de Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar tu uso de Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si encuentras cualquier problema, no dudes en reportarlo en {issuetracker}nuestra lista de errores{linkend}. Y si deseas involucrarte, ¡únete a {designteam}nuestro equipo de diseño{linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -7,8 +7,11 @@
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste para facilitar tu navegación. La calidad visual puede ser menor pero incrementa la claridad.",
|
||||
"Dyslexia font" : "Fuente para dislexia",
|
||||
"Enable dyslexia font" : "Habilitar fuente para dislexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es una tipografía/fuente diseñada para mitigar algunos de los errores comunes de lectura causados por dislexia.",
|
||||
"Accessibility" : "Accesibilidad",
|
||||
"Accessibility options for nextcloud" : "Opciones de accesibilidad para nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar su uso de Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar tu uso de Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si encuentras cualquier problema, no dudes en reportarlo en {issuetracker}nuestra lista de errores{linkend}. Y si deseas involucrarte, ¡únete a {designteam}nuestro equipo de diseño{linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -3,17 +3,17 @@ OC.L10N.register(
|
||||
{
|
||||
"Dark theme" : "Gai iluna",
|
||||
"Enable dark theme" : "Gaitu gai iluna",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz aurkitu zenezakeen edozein arazoren berri eman.",
|
||||
"High contrast mode" : "Kontraste altuko modua",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz, eman aurkitu zenezakeen edozein arazoren berri mesedez.",
|
||||
"High contrast mode" : "Kontraste handiko modua",
|
||||
"Enable high contrast mode" : "Gaitu kontraste handiko modua",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste altuko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste handiko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"Dyslexia font" : "Dislexia letra-tipoa",
|
||||
"Enable dyslexia font" : "Gaitu dislexia letra-tipoa",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da, dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"Accessibility" : "Erabilerraztasuna",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextcloud-en erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta sagu gabeko erabiltasuna egiaztatzen ditugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino lortuz.",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak Nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextclouden erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Arazorik aurkitzen baduzu, bidali ezazu lasai {issuetracker}gure arazo-kontrolatzailera{linkend}. Eta parte hartu nahi baduzu, elkartu zaitez gurekin {designteam}gure diseinu taldera{linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Gai iluna",
|
||||
"Enable dark theme" : "Gaitu gai iluna",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz aurkitu zenezakeen edozein arazoren berri eman.",
|
||||
"High contrast mode" : "Kontraste altuko modua",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz, eman aurkitu zenezakeen edozein arazoren berri mesedez.",
|
||||
"High contrast mode" : "Kontraste handiko modua",
|
||||
"Enable high contrast mode" : "Gaitu kontraste handiko modua",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste altuko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste handiko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"Dyslexia font" : "Dislexia letra-tipoa",
|
||||
"Enable dyslexia font" : "Gaitu dislexia letra-tipoa",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da, dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"Accessibility" : "Erabilerraztasuna",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextcloud-en erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta sagu gabeko erabiltasuna egiaztatzen ditugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino lortuz.",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak Nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextclouden erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Arazorik aurkitzen baduzu, bidali ezazu lasai {issuetracker}gure arazo-kontrolatzailera{linkend}. Eta parte hartu nahi baduzu, elkartu zaitez gurekin {designteam}gure diseinu taldera{linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -3,7 +3,7 @@ OC.L10N.register(
|
||||
{
|
||||
"Dark theme" : "Thème sombre",
|
||||
"Enable dark theme" : "Activer le thème sombre",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité et l’éclat général. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité générale. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"High contrast mode" : "Thème à contraste élevé",
|
||||
"Enable high contrast mode" : "Activer le thème à contraste élevé",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un thème au contraste élevé pour faciliter votre navigation. La qualité visuelle sera réduite, mais la clarté sera améliorée.",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Thème sombre",
|
||||
"Enable dark theme" : "Activer le thème sombre",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité et l’éclat général. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité générale. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"High contrast mode" : "Thème à contraste élevé",
|
||||
"Enable high contrast mode" : "Activer le thème à contraste élevé",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un thème au contraste élevé pour faciliter votre navigation. La qualité visuelle sera réduite, mais la clarté sera améliorée.",
|
||||
|
||||
@@ -10,7 +10,7 @@ OC.L10N.register(
|
||||
"Dyslexia font" : "Font disleksia",
|
||||
"Enable dyslexia font" : "Aktifkan fon disleksia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic adalah typeface/font gratis yang didesain untuk mengurangi kesalahan membaca oleh penderita disleksia",
|
||||
"Accessibility" : "aksesbilitas",
|
||||
"Accessibility" : "Aksesbilitas",
|
||||
"Accessibility options for nextcloud" : "Opsi aksesibilitas untuk nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Menyediakan beberapa opsi aksesibilitas untuk memudahkan Anda menggunakan Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Akses universal sangat penting bagi kami. Kami mengikuti standar web dan memeriksa agar semua dapat digunakan, bahkan saat tanpa menggunakan tetikus, dan lainnya seperti perangkat lunak pembantu pembaca layar. Kami bertujuan untuk mematuhi {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 pada tingkat AA, dengan tema kontras tinggi bahkan pada tingkat AAA.",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"Dyslexia font" : "Font disleksia",
|
||||
"Enable dyslexia font" : "Aktifkan fon disleksia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic adalah typeface/font gratis yang didesain untuk mengurangi kesalahan membaca oleh penderita disleksia",
|
||||
"Accessibility" : "aksesbilitas",
|
||||
"Accessibility" : "Aksesbilitas",
|
||||
"Accessibility options for nextcloud" : "Opsi aksesibilitas untuk nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Menyediakan beberapa opsi aksesibilitas untuk memudahkan Anda menggunakan Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Akses universal sangat penting bagi kami. Kami mengikuti standar web dan memeriksa agar semua dapat digunakan, bahkan saat tanpa menggunakan tetikus, dan lainnya seperti perangkat lunak pembantu pembaca layar. Kami bertujuan untuk mematuhi {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 pada tingkat AA, dengan tema kontras tinggi bahkan pada tingkat AAA.",
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Mørkt tema",
|
||||
"Enable dark theme" : "Mogleggjere mørkt tema",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ei mørk drakt som er mildare mot augo ved å redusera utstråling og lysstyrke. Drakta vert framleis utvikla, så sei gjerne ifrå dersom du får vanskar.",
|
||||
"High contrast mode" : "Høg kontrast modus",
|
||||
"Enable high contrast mode" : "Mogleggjere høg kontrast modus",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Høg kontrast modus gjer det enklare å navigere. Visuell kvalitet vil bli redusert, mens innhaldet vert klårare.",
|
||||
"Dyslexia font" : "Dysleksi-skrifttype",
|
||||
"Enable dyslexia font" : "Mogleggjere skrifttype for dysleksikarar ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic er ein gratis skrifttype som er laga for å redusera nokre vanlege lesefeil som kjem av dysleksi.",
|
||||
"Accessibility" : "Tilgjenge",
|
||||
"Accessibility options for nextcloud" : "Brukarval for tilgjenge i Nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Ulike innstillingar for å gjera Nextcloud lettare å bruka for funksjonshemma",
|
||||
"High contrast theme" : "Høgkontrast-drakt",
|
||||
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Ei drakt med høg kontrast som gjer det lettare å navigera. Den visuelle kvaliteten er redusert, men innhaldet er klårare.",
|
||||
"Web Content Accessibility Guidelines" : "Retningsliner for tilgjenge i vev-innhald",
|
||||
"our issue tracker" : "feilsporings-systemet vårt",
|
||||
"our design team" : "utformingsgruppa vår",
|
||||
"Enable" : "Slå på"
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Universell tilgang er veldig viktig for oss. Vi følg vev standardar og undersøkjer at alt er mogleg å gjennomføre utan mus, og saman med hjelpeprogramvare som skjermlesar. Vi har som mål å vere i samsvar med {retningslinjene} Retningslinjer for tilgjengeleg nett innhald {lenkje} 2.1 for A-nivå, til og med for tema med høy kontrast på AAA-nivå. ",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "I tilfele du finn nokre problem, ikkje vent med å rapportere dei på {problemsøkjar} vår problemsøkjar {lenkje}. Og ønskjer du å engasjere deg, ta del i {designergruppa} designergruppa vår {lenkje}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Mørkt tema",
|
||||
"Enable dark theme" : "Mogleggjere mørkt tema",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ei mørk drakt som er mildare mot augo ved å redusera utstråling og lysstyrke. Drakta vert framleis utvikla, så sei gjerne ifrå dersom du får vanskar.",
|
||||
"High contrast mode" : "Høg kontrast modus",
|
||||
"Enable high contrast mode" : "Mogleggjere høg kontrast modus",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Høg kontrast modus gjer det enklare å navigere. Visuell kvalitet vil bli redusert, mens innhaldet vert klårare.",
|
||||
"Dyslexia font" : "Dysleksi-skrifttype",
|
||||
"Enable dyslexia font" : "Mogleggjere skrifttype for dysleksikarar ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic er ein gratis skrifttype som er laga for å redusera nokre vanlege lesefeil som kjem av dysleksi.",
|
||||
"Accessibility" : "Tilgjenge",
|
||||
"Accessibility options for nextcloud" : "Brukarval for tilgjenge i Nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Ulike innstillingar for å gjera Nextcloud lettare å bruka for funksjonshemma",
|
||||
"High contrast theme" : "Høgkontrast-drakt",
|
||||
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Ei drakt med høg kontrast som gjer det lettare å navigera. Den visuelle kvaliteten er redusert, men innhaldet er klårare.",
|
||||
"Web Content Accessibility Guidelines" : "Retningsliner for tilgjenge i vev-innhald",
|
||||
"our issue tracker" : "feilsporings-systemet vårt",
|
||||
"our design team" : "utformingsgruppa vår",
|
||||
"Enable" : "Slå på"
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Universell tilgang er veldig viktig for oss. Vi følg vev standardar og undersøkjer at alt er mogleg å gjennomføre utan mus, og saman med hjelpeprogramvare som skjermlesar. Vi har som mål å vere i samsvar med {retningslinjene} Retningslinjer for tilgjengeleg nett innhald {lenkje} 2.1 for A-nivå, til og med for tema med høy kontrast på AAA-nivå. ",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "I tilfele du finn nokre problem, ikkje vent med å rapportere dei på {problemsøkjar} vår problemsøkjar {lenkje}. Og ønskjer du å engasjere deg, ta del i {designergruppa} designergruppa vår {lenkje}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -2,7 +2,7 @@ OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Tema escuro",
|
||||
"Enable dark theme" : "Ativar tema escuro",
|
||||
"Enable dark theme" : "Enable dark theme",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para aliviar os olhos, reduzindo a luminosidade e brilho geral. Ainda está em desenvolvimento, por isso, informe qualquer problema encontrado.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Ativar modo de alto contraste",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Tema escuro",
|
||||
"Enable dark theme" : "Ativar tema escuro",
|
||||
"Enable dark theme" : "Enable dark theme",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para aliviar os olhos, reduzindo a luminosidade e brilho geral. Ainda está em desenvolvimento, por isso, informe qualquer problema encontrado.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Ativar modo de alto contraste",
|
||||
|
||||
@@ -2,13 +2,18 @@ OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Temë e errët",
|
||||
"Enable dark theme" : "Aktivizo temën e errët",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Një temë e errët për të lehtësuar sytë duke ulur shkëlqimin dhe ndritshmërinë e përgjithshme. Është ende në zhvillim, prandaj ju lutemi raportoni çdo çështje që mund të gjeni.",
|
||||
"High contrast mode" : "Modalitet me kontrast të lartë",
|
||||
"Enable high contrast mode" : "Aktivizoni modalitetin me kontrast të lartë",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Një modalitet me kontrast të lartë për të lehtësuar lundrimin. Cilësia vizuale do të reduktohet por qartësia do të rritet",
|
||||
"Dyslexia font" : "Fonti Dyslexia",
|
||||
"Enable dyslexia font" : "Aktivizo fontin e disleksisë",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic është një font / karakter tipografik i lirë i dizajnuar për të zbutur disa nga gabimet e zakonshme të leximit të shkaktuara nga disleksija.",
|
||||
"Accessibility" : "Aksesueshmëria",
|
||||
"Accessibility options for nextcloud" : "Opsionet e aksesueshmërisë për nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Qasja universale është shumë e rëndësishme për ne. Ne ndjekim standardet e uebit dhe kontrollojmë që çdo gjë të jetë e përdorshme edhe pa miun, dhe softuerë ndihmës siç janë lexuesit e ekranit. Ne synojmë të jemi në përputhje me {udhëzimet}Udhëzimet mbi Aksesueshmërinë për Përmbajtjen në Internet{linkend} 2.1 në nivelin AA, me temën e kontrastit të lartë edhe në nivelin AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nëse gjeni ndonjë problem, mos hezitoni t'i raportoni ato në {issuetracker}gjurmuesi ynë i çështjeve{linkend}. Dhe nëse doni të përfshiheni, ejani bashkohuni me {designteam}ekipin tonë të dizajnit{linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Temë e errët",
|
||||
"Enable dark theme" : "Aktivizo temën e errët",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Një temë e errët për të lehtësuar sytë duke ulur shkëlqimin dhe ndritshmërinë e përgjithshme. Është ende në zhvillim, prandaj ju lutemi raportoni çdo çështje që mund të gjeni.",
|
||||
"High contrast mode" : "Modalitet me kontrast të lartë",
|
||||
"Enable high contrast mode" : "Aktivizoni modalitetin me kontrast të lartë",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Një modalitet me kontrast të lartë për të lehtësuar lundrimin. Cilësia vizuale do të reduktohet por qartësia do të rritet",
|
||||
"Dyslexia font" : "Fonti Dyslexia",
|
||||
"Enable dyslexia font" : "Aktivizo fontin e disleksisë",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic është një font / karakter tipografik i lirë i dizajnuar për të zbutur disa nga gabimet e zakonshme të leximit të shkaktuara nga disleksija.",
|
||||
"Accessibility" : "Aksesueshmëria",
|
||||
"Accessibility options for nextcloud" : "Opsionet e aksesueshmërisë për nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Qasja universale është shumë e rëndësishme për ne. Ne ndjekim standardet e uebit dhe kontrollojmë që çdo gjë të jetë e përdorshme edhe pa miun, dhe softuerë ndihmës siç janë lexuesit e ekranit. Ne synojmë të jemi në përputhje me {udhëzimet}Udhëzimet mbi Aksesueshmërinë për Përmbajtjen në Internet{linkend} 2.1 në nivelin AA, me temën e kontrastit të lartë edhe në nivelin AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nëse gjeni ndonjë problem, mos hezitoni t'i raportoni ato në {issuetracker}gjurmuesi ynë i çështjeve{linkend}. Dhe nëse doni të përfshiheni, ejani bashkohuni me {designteam}ekipin tonë të dizajnit{linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "รูปแบบ สีเข้ม",
|
||||
"Enable dark theme" : "เปิด รูปแบบ สีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "รูปแบบสีเข้ม ทำให้ดวงตาของคุณสบายขึ้นโดยลดแสงส่องสว่าง และความสว่าง มันยังอยู่ระหว่างการพัฒนา, ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจจะพบ",
|
||||
"Dark theme" : "ธีมสีเข้ม",
|
||||
"Enable dark theme" : "เปิดใช้ธีมสีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "ธีมสีเข้มทำให้ดวงตาของคุณสบายขึ้น โดยลดแสงส่องสว่าง และความสว่างโดยรวม ซึ่งยังอยู่ระหว่างการพัฒนา ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจพบ",
|
||||
"High contrast mode" : "โหมดความคมชัดสูง",
|
||||
"Enable high contrast mode" : "เปิด โหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง เพื่อความสะดวกในการเดินทางของคุณ คุณภาพของภาพจะลดลง แต่จะเพิ่มความคมชัด",
|
||||
"Dyslexia font" : "ฟอนต์ Dyslexia ",
|
||||
"Enable dyslexia font" : "เปิด ฟอนต์ Dyslexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร / แบบอักษรฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดในการอ่านทั่วไป โดย dyslexia",
|
||||
"Accessibility" : "การเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีตัวเลือกในการเข้าถึงหลายตัว เพื่อให้ง่ายต่อการใช้งาน บน Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บ และตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่นโปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม {แนวทาง} แนวทางการเข้าถึงเนื้อหาเว็บ {linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน {issuetracker} เครื่องมือติดตามปัญหาของเรา {linkend} และหากคุณต้องการมีส่วนร่วมเข้าร่วม {designteam} ทีมออกแบบของเรา {linkend}"
|
||||
"Enable high contrast mode" : "เปิดโหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง ช่วยเพิ่มความสะดวกในการใช้งานของคุณ คุณภาพของภาพจะลดลง แต่ความคมชัดจะเพิ่มขึ้น",
|
||||
"Dyslexia font" : "ฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"Enable dyslexia font" : "เปิดฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร/ฟอนต์ฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดทั่วไปในการอ่านที่เกิดจากภาวะเสียการอ่านเข้าใจ",
|
||||
"Accessibility" : "การช่วยการเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการช่วยการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีหลายตัวเลือกในการช่วยการเข้าถึงเพื่อช่วยให้การใช้งาน Nextcloud ของคุณง่ายขึ้น",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บและตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่น โปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม{guidelines}แนวทางการเข้าถึงเนื้อหาเว็บ{linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน{issuetracker}เครื่องมือติดตามปัญหาของเรา{linkend} และหากคุณต้องการมีส่วนร่วม เข้าร่วม{designteam}ทีมออกแบบของเรา{linkend}ได้เลย!"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "รูปแบบ สีเข้ม",
|
||||
"Enable dark theme" : "เปิด รูปแบบ สีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "รูปแบบสีเข้ม ทำให้ดวงตาของคุณสบายขึ้นโดยลดแสงส่องสว่าง และความสว่าง มันยังอยู่ระหว่างการพัฒนา, ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจจะพบ",
|
||||
"Dark theme" : "ธีมสีเข้ม",
|
||||
"Enable dark theme" : "เปิดใช้ธีมสีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "ธีมสีเข้มทำให้ดวงตาของคุณสบายขึ้น โดยลดแสงส่องสว่าง และความสว่างโดยรวม ซึ่งยังอยู่ระหว่างการพัฒนา ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจพบ",
|
||||
"High contrast mode" : "โหมดความคมชัดสูง",
|
||||
"Enable high contrast mode" : "เปิด โหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง เพื่อความสะดวกในการเดินทางของคุณ คุณภาพของภาพจะลดลง แต่จะเพิ่มความคมชัด",
|
||||
"Dyslexia font" : "ฟอนต์ Dyslexia ",
|
||||
"Enable dyslexia font" : "เปิด ฟอนต์ Dyslexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร / แบบอักษรฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดในการอ่านทั่วไป โดย dyslexia",
|
||||
"Accessibility" : "การเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีตัวเลือกในการเข้าถึงหลายตัว เพื่อให้ง่ายต่อการใช้งาน บน Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บ และตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่นโปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม {แนวทาง} แนวทางการเข้าถึงเนื้อหาเว็บ {linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน {issuetracker} เครื่องมือติดตามปัญหาของเรา {linkend} และหากคุณต้องการมีส่วนร่วมเข้าร่วม {designteam} ทีมออกแบบของเรา {linkend}"
|
||||
"Enable high contrast mode" : "เปิดโหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง ช่วยเพิ่มความสะดวกในการใช้งานของคุณ คุณภาพของภาพจะลดลง แต่ความคมชัดจะเพิ่มขึ้น",
|
||||
"Dyslexia font" : "ฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"Enable dyslexia font" : "เปิดฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร/ฟอนต์ฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดทั่วไปในการอ่านที่เกิดจากภาวะเสียการอ่านเข้าใจ",
|
||||
"Accessibility" : "การช่วยการเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการช่วยการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีหลายตัวเลือกในการช่วยการเข้าถึงเพื่อช่วยให้การใช้งาน Nextcloud ของคุณง่ายขึ้น",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บและตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่น โปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม{guidelines}แนวทางการเข้าถึงเนื้อหาเว็บ{linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน{issuetracker}เครื่องมือติดตามปัญหาของเรา{linkend} และหากคุณต้องการมีส่วนร่วม เข้าร่วม{designteam}ทีมออกแบบของเรา{linkend}ได้เลย!"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -78,6 +78,7 @@ class Application extends App implements IBootstrap {
|
||||
$hash = md5(implode('-', $userValues));
|
||||
$linkToCSS = $urlGenerator->linkToRoute(self::APP_ID . '.accessibility.getCss', ['md5' => $hash]);
|
||||
\OCP\Util::addHeader('link', ['rel' => 'stylesheet', 'media' => '(prefers-color-scheme: dark)', 'href' => $linkToCSS]);
|
||||
\OCP\Util::addScript('accessibility', 'accessibilityoca');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ class JSDataService extends InitialStateProvider {
|
||||
}
|
||||
|
||||
return [
|
||||
'checkMedia' => $user === null,
|
||||
'theme' => $theme,
|
||||
'highcontrast' => $highcontrast,
|
||||
];
|
||||
|
||||
@@ -24,6 +24,11 @@
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
|
||||
OCA.Accessibility = loadState('accessibility', 'data')
|
||||
if (OCA.Accessibility.checkMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
// Overwrite the theme for Guests based on the prefers-color-scheme
|
||||
OCA.Accessibility.theme = 'dark'
|
||||
}
|
||||
|
||||
if (OCA.Accessibility.theme !== false) {
|
||||
document.body.classList.add(`theme--${OCA.Accessibility.theme}`)
|
||||
} else {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Auditing / Logging</name>
|
||||
<summary>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</summary>
|
||||
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
|
||||
<version>1.11.0</version>
|
||||
<version>1.12.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Nextcloud</author>
|
||||
<namespace>AdminAudit</namespace>
|
||||
|
||||
Generated
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Auditoría / Registros",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Habilita las opciones de bitácora de Nextcloud tales como registro de acceso a archivos o de acciones delicadas."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"Auditing / Logging" : "Auditoría / Registros",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Habilita las opciones de bitácora de Nextcloud tales como registro de acceso a archivos o de acciones delicadas."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Revisjon / Logging",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Tilbyr logg eigenskapar for Nextcloud, til dømes tilgang til loggfil eller andre følsame handlingar."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"Auditing / Logging" : "Revisjon / Logging",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Tilbyr logg eigenskapar for Nextcloud, til dømes tilgang til loggfil eller andre følsame handlingar."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -50,7 +50,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'permissions',
|
||||
'id',
|
||||
@@ -62,7 +62,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -75,7 +75,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -88,7 +88,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -101,7 +101,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -114,7 +114,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -127,7 +127,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -140,7 +140,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -153,7 +153,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Cloud Federation API</name>
|
||||
<summary>Enable clouds to communicate with each other and exchange data</summary>
|
||||
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
|
||||
<version>1.4.0</version>
|
||||
<version>1.5.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Bjoern Schiessle</author>
|
||||
<namespace>CloudFederationAPI</namespace>
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -1,8 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Cloud Federation API",
|
||||
"Cloud Federation API" : "Cloud-Federation-API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Erlaubt es, dass Server miteinander kommunizieren und Daten austauschen",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud Federation API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud-Federation-API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Cloud Federation API" : "Cloud Federation API",
|
||||
"Cloud Federation API" : "Cloud-Federation-API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Erlaubt es, dass Server miteinander kommunizieren und Daten austauschen",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud Federation API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud-Federation-API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Felhő együttműködési alkalmazás fejlesztői felület",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Kommunikáció és adatcsere engedélyezése a felhőszolgáltatások között",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő együttműködési alkalmazás fejlesztői felület segítségével a különféle Nextcloud példányok képesek egymás között kommunikálni és adatokat cserélni."
|
||||
"Cloud Federation API" : "Felhő föderációs API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "A felhőszolgáltatások egymás közti kommunikációjának és adatcseréjének lehetővé tétele",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő föderációs API segítségével a különféle Nextcloud példányok képesek lesznek egymás között kommunikálni és adatokat cserélni."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Cloud Federation API" : "Felhő együttműködési alkalmazás fejlesztői felület",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Kommunikáció és adatcsere engedélyezése a felhőszolgáltatások között",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő együttműködési alkalmazás fejlesztői felület segítségével a különféle Nextcloud példányok képesek egymás között kommunikálni és adatokat cserélni."
|
||||
"Cloud Federation API" : "Felhő föderációs API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "A felhőszolgáltatások egymás közti kommunikációjának és adatcseréjének lehetővé tétele",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő föderációs API segítségével a különféle Nextcloud példányok képesek lesznek egymás között kommunikálni és adatokat cserélni."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Comments</name>
|
||||
<summary>Files app plugin to add comments to files</summary>
|
||||
<description>Files app plugin to add comments to files</description>
|
||||
<version>1.11.0</version>
|
||||
<version>1.12.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Arthur Schiwon</author>
|
||||
<author>Vincent Petry</author>
|
||||
|
||||
Generated
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=708)}({708:function(e,n){
|
||||
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=707)}({707:function(e,n){function r(e,n,t,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){return void t(e)}c.done?n(a):Promise.resolve(a).then(r,o)}
|
||||
/**
|
||||
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
@@ -20,5 +20,5 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
let o=null;const r=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",async mount(e,t,n){o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:n}),await o.update(t.id),o.$mount(e)},update(e){o.update(e.id)},destroy(){o.$destroy(),o=null},scrollBottomReached(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(r)}))}});
|
||||
var o=null,i=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",mount:function(e,n,t){return(i=regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:t}),r.next=4,o.update(n.id);case 4:o.$mount(e);case 5:case"end":return r.stop()}}),r)})),function(){var e=this,n=arguments;return new Promise((function(t,o){var u=i.apply(e,n);function c(e){r(u,t,o,c,a,"next",e)}function a(e){r(u,t,o,c,a,"throw",e)}c(void 0)}))})();var i},update:function(e){o.update(e.id)},destroy:function(){o.$destroy(),o=null},scrollBottomReached:function(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(i)}))}});
|
||||
//# sourceMappingURL=comments-tab.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -44,5 +44,5 @@ window.OCA.Comments=OCA.Comments},432:function(e,n){
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
OCA.Comments||(OCA.Comments={})},433:function(e,n){var t;t=Handlebars.template,(OCA.Comments.Templates=OCA.Comments.Templates||{}).filesplugin=t({compiler:[8,">= 4.3.0"],main:function(e,n,t,o,i){var s,r=null!=n?n:e.nullContext||{},a=e.hooks.helperMissing,l=e.escapeExpression,m=e.lookupProperty||function(e,n){if(Object.prototype.hasOwnProperty.call(e,n))return e[n]};return'<a class="action action-comment permanent" title="'+l("function"==typeof(s=null!=(s=m(t,"countMessage")||(null!=n?m(n,"countMessage"):n))?s:a)?s.call(r,{name:"countMessage",hash:{},data:i,loc:{start:{line:1,column:50},end:{line:1,column:66}}}):s)+'" href="#">\n\t<img class="svg" src="'+l("function"==typeof(s=null!=(s=m(t,"iconUrl")||(null!=n?m(n,"iconUrl"):n))?s:a)?s.call(r,{name:"iconUrl",hash:{},data:i,loc:{start:{line:2,column:23},end:{line:2,column:34}}}):s)+'"/>\n</a>\n'},useData:!0})},434:function(e,o){_.extend(OC.Files.Client,{PROPERTY_COMMENTS_UNREAD:"{"+OC.Files.Client.NS_OWNCLOUD+"}comments-unread"}),OCA.Comments=_.extend({},OCA.Comments),OCA.Comments||(OCA.Comments={}),OCA.Comments.FilesPlugin={ignoreLists:["trashbin","files.public"],_formatCommentCount:e=>OCA.Comments.Templates.filesplugin({count:e,countMessage:n("comments","%n unread comment","%n unread comments",e),iconUrl:OC.imagePath("core","actions/comment")}),attach(e){const o=this;if(this.ignoreLists.indexOf(e.id)>=0)return;const i=e._getWebdavProperties;e._getWebdavProperties=function(){const e=i.apply(this,arguments);return e.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD),e},e.filesClient.addFileInfoParser((function(e){const n={},t=e.propStat[0].properties[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];return _.isUndefined(t)||""===t||(n.commentsUnread=parseInt(t,10)),n})),e.$el.addClass("has-comments");const s=e._createRow;e._createRow=function(e){const n=s.apply(this,arguments);return e.commentsUnread&&n.attr("data-comments-unread",e.commentsUnread),n},e.fileActions.registerAction({name:"Comment",displayName(e){if(e&&e.$file){const t=parseInt(e.$file.data("comments-unread"),10);if(t>=0)return n("comments","1 new comment","{unread} new comments",t,{unread:t})}return t("comments","Comment")},mime:"all",order:-140,iconClass:"icon-comment",permissions:OC.PERMISSION_READ,type:OCA.Files.FileActions.TYPE_INLINE,render(e,n,t){const i=t.$file.data("comments-unread");if(i){const e=$(o._formatCommentCount(i));return t.$file.find("a.name>span.fileactions").append(e),e}return""},actionHandler(e,n){n.$file.find(".action-comment").tooltip("hide"),OCA.Files.Sidebar.setActiveTab("comments"),OCA.Files.Sidebar.open("/"+e)}});const r=e.elementToFile;e.elementToFile=function(e){const n=r.apply(this,arguments),t=e.data("comments-unread");return t&&(n.commentsUnread=t),n}}},OC.Plugins.register("OCA.Files.FileList",OCA.Comments.FilesPlugin)},435:function(e,n){OCA.Comments.ActivityTabViewPlugin={prepareModelForDisplay(e,n,t){if("comments"===e.get("app")&&"comments"===e.get("type")&&"ActivityTabView"===t&&(n.addClass("comment"),e.get("message")&&this._isLong(e.get("message")))){n.addClass("collapsed");const e=$("<div>").addClass("message-overlay");n.find(".activitymessage").after(e),n.on("click",this._onClickCollapsedComment)}},_onClickCollapsedComment(e){let n=$(e.target);n.is(".comment")||(n=n.closest(".comment")),n.removeClass("collapsed")},_isLong:e=>e.length>250||(e.match(/\n/g)||[]).length>1},OC.Plugins.register("OCA.Activity.RenderingPlugins",OCA.Comments.ActivityTabViewPlugin)}});
|
||||
OCA.Comments||(OCA.Comments={})},433:function(e,n){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o;o=Handlebars.template,(OCA.Comments.Templates=OCA.Comments.Templates||{}).filesplugin=o({compiler:[8,">= 4.3.0"],main:function(e,n,o,i,r){var s,a=null!=n?n:e.nullContext||{},l=e.hooks.helperMissing,m=e.escapeExpression,c=e.lookupProperty||function(e,n){if(Object.prototype.hasOwnProperty.call(e,n))return e[n]};return'<a class="action action-comment permanent" title="'+m("function"===t(s=null!=(s=c(o,"countMessage")||(null!=n?c(n,"countMessage"):n))?s:l)?s.call(a,{name:"countMessage",hash:{},data:r,loc:{start:{line:1,column:50},end:{line:1,column:66}}}):s)+'" href="#">\n\t<img class="svg" src="'+m("function"===t(s=null!=(s=c(o,"iconUrl")||(null!=n?c(n,"iconUrl"):n))?s:l)?s.call(a,{name:"iconUrl",hash:{},data:r,loc:{start:{line:2,column:23},end:{line:2,column:34}}}):s)+'"/>\n</a>\n'},useData:!0})},434:function(e,o){_.extend(OC.Files.Client,{PROPERTY_COMMENTS_UNREAD:"{"+OC.Files.Client.NS_OWNCLOUD+"}comments-unread"}),OCA.Comments=_.extend({},OCA.Comments),OCA.Comments||(OCA.Comments={}),OCA.Comments.FilesPlugin={ignoreLists:["trashbin","files.public"],_formatCommentCount:function(e){return OCA.Comments.Templates.filesplugin({count:e,countMessage:n("comments","%n unread comment","%n unread comments",e),iconUrl:OC.imagePath("core","actions/comment")})},attach:function(e){var o=this;if(!(this.ignoreLists.indexOf(e.id)>=0)){var i=e._getWebdavProperties;e._getWebdavProperties=function(){var e=i.apply(this,arguments);return e.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD),e},e.filesClient.addFileInfoParser((function(e){var n={},t=e.propStat[0].properties[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];return _.isUndefined(t)||""===t||(n.commentsUnread=parseInt(t,10)),n})),e.$el.addClass("has-comments");var r=e._createRow;e._createRow=function(e){var n=r.apply(this,arguments);return e.commentsUnread&&n.attr("data-comments-unread",e.commentsUnread),n},e.fileActions.registerAction({name:"Comment",displayName:function(e){if(e&&e.$file){var o=parseInt(e.$file.data("comments-unread"),10);if(o>=0)return n("comments","1 new comment","{unread} new comments",o,{unread:o})}return t("comments","Comment")},mime:"all",order:-140,iconClass:"icon-comment",permissions:OC.PERMISSION_READ,type:OCA.Files.FileActions.TYPE_INLINE,render:function(e,n,t){var i=t.$file.data("comments-unread");if(i){var r=$(o._formatCommentCount(i));return t.$file.find("a.name>span.fileactions").append(r),r}return""},actionHandler:function(e,n){n.$file.find(".action-comment").tooltip("hide"),OCA.Files.Sidebar.setActiveTab("comments"),OCA.Files.Sidebar.open(n.dir+"/"+e)}});var s=e.elementToFile;e.elementToFile=function(e){var n=s.apply(this,arguments),t=e.data("comments-unread");return t&&(n.commentsUnread=t),n}}}},OC.Plugins.register("OCA.Files.FileList",OCA.Comments.FilesPlugin)},435:function(e,n){OCA.Comments.ActivityTabViewPlugin={prepareModelForDisplay:function(e,n,t){if("comments"===e.get("app")&&"comments"===e.get("type")&&"ActivityTabView"===t&&(n.addClass("comment"),e.get("message")&&this._isLong(e.get("message")))){n.addClass("collapsed");var o=$("<div>").addClass("message-overlay");n.find(".activitymessage").after(o),n.on("click",this._onClickCollapsedComment)}},_onClickCollapsedComment:function(e){var n=$(e.target);n.is(".comment")||(n=n.closest(".comment")),n.removeClass("collapsed")},_isLong:function(e){return e.length>250||(e.match(/\n/g)||[]).length>1}},OC.Plugins.register("OCA.Activity.RenderingPlugins",OCA.Comments.ActivityTabViewPlugin)}});
|
||||
//# sourceMappingURL=comments.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -21,8 +21,8 @@ OC.L10N.register(
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"Comment" : "تعليق",
|
||||
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
|
||||
"Comment deleted" : "التعليق حُذف",
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"Comment" : "تعليق",
|
||||
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
|
||||
"Comment deleted" : "التعليق حُذف",
|
||||
|
||||
@@ -14,12 +14,18 @@ OC.L10N.register(
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} mainitsi sinut tiedoston \"{file}\" kommentissa",
|
||||
"Edit comment" : "Muokkaa kommenttia",
|
||||
"Delete comment" : "Poista kommentti",
|
||||
"Cancel edit" : "Peruuta muokkaus",
|
||||
"Post comment" : "Lähetä viesti",
|
||||
"No comments yet, start the conversation!" : "Ei kommentteja vielä. Aloita keskustelu!",
|
||||
"No more messages" : "Ei enempää viestejä",
|
||||
"Retry" : "Yritä uudelleen",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lukematon kommentti","%n lukematonta kommenttia"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 uusi kommentti","{unread} uutta kommenttia"],
|
||||
"Comment" : "Kommentti",
|
||||
"An error occurred while trying to edit the comment" : "Kommenttia muokatessa tapahtui virhe",
|
||||
"Comment deleted" : "Kommentti poistettu",
|
||||
"An error occurred while trying to delete the comment" : "Kommenttia poistaessa tapahtui virhe",
|
||||
"An error occurred while trying to create the comment" : "Kommenttia luodessa tapahtui virhe",
|
||||
"New comment …" : "Uusi kommentti…",
|
||||
"Post" : "Lähetä",
|
||||
"Cancel" : "Peruuta",
|
||||
|
||||
@@ -12,12 +12,18 @@
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} mainitsi sinut tiedoston \"{file}\" kommentissa",
|
||||
"Edit comment" : "Muokkaa kommenttia",
|
||||
"Delete comment" : "Poista kommentti",
|
||||
"Cancel edit" : "Peruuta muokkaus",
|
||||
"Post comment" : "Lähetä viesti",
|
||||
"No comments yet, start the conversation!" : "Ei kommentteja vielä. Aloita keskustelu!",
|
||||
"No more messages" : "Ei enempää viestejä",
|
||||
"Retry" : "Yritä uudelleen",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n lukematon kommentti","%n lukematonta kommenttia"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 uusi kommentti","{unread} uutta kommenttia"],
|
||||
"Comment" : "Kommentti",
|
||||
"An error occurred while trying to edit the comment" : "Kommenttia muokatessa tapahtui virhe",
|
||||
"Comment deleted" : "Kommentti poistettu",
|
||||
"An error occurred while trying to delete the comment" : "Kommenttia poistaessa tapahtui virhe",
|
||||
"An error occurred while trying to create the comment" : "Kommenttia luodessa tapahtui virhe",
|
||||
"New comment …" : "Uusi kommentti…",
|
||||
"Post" : "Lähetä",
|
||||
"Cancel" : "Peruuta",
|
||||
|
||||
@@ -20,7 +20,7 @@ OC.L10N.register(
|
||||
"No comments yet, start the conversation!" : "Még nincsenek hozzászólások, kezdje el a beszélgetést!",
|
||||
"No more messages" : "Nincs több üzenet",
|
||||
"Retry" : "Újra",
|
||||
"Unable to load the comments list" : "A megjegyzések listájának betöltése sikertelen",
|
||||
"Unable to load the comments list" : "A hozzászólások betöltése sikertelen",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n olvasatlan hozzászólás","%n olvasatlan hozzászólás"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 új hozzászólás","{unread} új hozzászólás"],
|
||||
"Comment" : "Hozzászólás",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"No comments yet, start the conversation!" : "Még nincsenek hozzászólások, kezdje el a beszélgetést!",
|
||||
"No more messages" : "Nincs több üzenet",
|
||||
"Retry" : "Újra",
|
||||
"Unable to load the comments list" : "A megjegyzések listájának betöltése sikertelen",
|
||||
"Unable to load the comments list" : "A hozzászólások betöltése sikertelen",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n olvasatlan hozzászólás","%n olvasatlan hozzászólás"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 új hozzászólás","{unread} új hozzászólás"],
|
||||
"Comment" : "Hozzászólás",
|
||||
|
||||
@@ -15,7 +15,7 @@ OC.L10N.register(
|
||||
"Delete comment" : "Dzēst komentāru",
|
||||
"No comments yet, start the conversation!" : "Vēl nav komentāru, uzsāciet sarunu!",
|
||||
"Retry" : "Mēģināt vēlreiz",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"Comment" : "Komentārs",
|
||||
"New comment …" : "Jauns komentārs...",
|
||||
"Post" : "Pievienot",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"Delete comment" : "Dzēst komentāru",
|
||||
"No comments yet, start the conversation!" : "Vēl nav komentāru, uzsāciet sarunu!",
|
||||
"Retry" : "Mēģināt vēlreiz",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"Comment" : "Komentārs",
|
||||
"New comment …" : "Jauns komentārs...",
|
||||
"Post" : "Pievienot",
|
||||
|
||||
@@ -31,7 +31,7 @@ OC.L10N.register(
|
||||
"New comment …" : "Novo comentário",
|
||||
"Post" : "Postar",
|
||||
"Cancel" : "Cancelar",
|
||||
"[Deleted user]" : "[Usuário excluído]",
|
||||
"[Deleted user]" : "[Usuário removido]",
|
||||
"More comments …" : "Mais comentários...",
|
||||
"Save" : "Salvar",
|
||||
"Allowed characters {count} of {max}" : "{count} de {max} caracteres permitidos",
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"New comment …" : "Novo comentário",
|
||||
"Post" : "Postar",
|
||||
"Cancel" : "Cancelar",
|
||||
"[Deleted user]" : "[Usuário excluído]",
|
||||
"[Deleted user]" : "[Usuário removido]",
|
||||
"More comments …" : "Mais comentários...",
|
||||
"Save" : "Salvar",
|
||||
"Allowed characters {count} of {max}" : "{count} de {max} caracteres permitidos",
|
||||
|
||||
@@ -12,7 +12,7 @@ OC.L10N.register(
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáre</strong> pre súbory",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Boli ste spomenutý v \"{file}\", v komentári používateľom ktorý bol už vymazaný",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás spomenul v komentári k “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin súborovej aplikácie ktorý umožňuje pridávať komentáre k súborom",
|
||||
"Files app plugin to add comments to files" : "Zásuvný modul aplikácie súborov, ktorý umožňuje súborom pridávať komentáre",
|
||||
"Edit comment" : "Upraviť komentár",
|
||||
"Delete comment" : "Zmazať komentár",
|
||||
"Cancel edit" : "Zrušiť upravovanie",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáre</strong> pre súbory",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Boli ste spomenutý v \"{file}\", v komentári používateľom ktorý bol už vymazaný",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás spomenul v komentári k “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin súborovej aplikácie ktorý umožňuje pridávať komentáre k súborom",
|
||||
"Files app plugin to add comments to files" : "Zásuvný modul aplikácie súborov, ktorý umožňuje súborom pridávať komentáre",
|
||||
"Edit comment" : "Upraviť komentár",
|
||||
"Delete comment" : "Zmazať komentár",
|
||||
"Cancel edit" : "Zrušiť upravovanie",
|
||||
|
||||
@@ -2,23 +2,24 @@ OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "ความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็นแล้ว",
|
||||
"%1$s commented" : "%1$s ได้ถูกแสดงความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็น",
|
||||
"%1$s commented" : "%1$s ได้แสดงความคิดเห็น",
|
||||
"You commented on %1$s" : "คุณได้แสดงความคิดเห็นบน %1$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้ถูกแสดงความคิดเห็นบน %2$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้แสดงความคิดเห็นบน %2$s",
|
||||
"Edit comment" : "แก้ไขความคิดเห็น",
|
||||
"Delete comment" : "ลบความคิดเห็น",
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความเห็นเลย",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความเห็นยังไม่อ่าน"],
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความคิดเห็นเลย!",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความคิดเห็นที่ยังไม่ได้อ่าน"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} ความคิดเห็นใหม่"],
|
||||
"Comment" : "แสดงความคิดเห็น",
|
||||
"New comment …" : "ความคิดเห็นใหม่ ...",
|
||||
"Post" : "โพสต์",
|
||||
"Cancel" : "ยกเลิก",
|
||||
"[Deleted user]" : "[ผู้ใช้ถูกลบไปแล้ว]",
|
||||
"[Deleted user]" : "[ผู้ใช้ที่ถูกลบ]",
|
||||
"More comments …" : "ความคิดเห็นอื่นๆ ...",
|
||||
"Save" : "บันทึก",
|
||||
"Allowed characters {count} of {max}" : "อนุญาตให้ใช้ {count} จากทั้งหมด {max} ตัวอักษร",
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะปรับปรุงความเห็น {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะส่งความเห็น {id}"
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะอัปเดตความคิดเห็นด้วย id {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะโพสต์ความคิดเห็น"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
{ "translations": {
|
||||
"Comments" : "ความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็นแล้ว",
|
||||
"%1$s commented" : "%1$s ได้ถูกแสดงความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็น",
|
||||
"%1$s commented" : "%1$s ได้แสดงความคิดเห็น",
|
||||
"You commented on %1$s" : "คุณได้แสดงความคิดเห็นบน %1$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้ถูกแสดงความคิดเห็นบน %2$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้แสดงความคิดเห็นบน %2$s",
|
||||
"Edit comment" : "แก้ไขความคิดเห็น",
|
||||
"Delete comment" : "ลบความคิดเห็น",
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความเห็นเลย",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความเห็นยังไม่อ่าน"],
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความคิดเห็นเลย!",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความคิดเห็นที่ยังไม่ได้อ่าน"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} ความคิดเห็นใหม่"],
|
||||
"Comment" : "แสดงความคิดเห็น",
|
||||
"New comment …" : "ความคิดเห็นใหม่ ...",
|
||||
"Post" : "โพสต์",
|
||||
"Cancel" : "ยกเลิก",
|
||||
"[Deleted user]" : "[ผู้ใช้ถูกลบไปแล้ว]",
|
||||
"[Deleted user]" : "[ผู้ใช้ที่ถูกลบ]",
|
||||
"More comments …" : "ความคิดเห็นอื่นๆ ...",
|
||||
"Save" : "บันทึก",
|
||||
"Allowed characters {count} of {max}" : "อนุญาตให้ใช้ {count} จากทั้งหมด {max} ตัวอักษร",
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะปรับปรุงความเห็น {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะส่งความเห็น {id}"
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะอัปเดตความคิดเห็นด้วย id {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะโพสต์ความคิดเห็น"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -10,12 +10,24 @@ OC.L10N.register(
|
||||
"%1$s commented on %2$s" : "%1$s đã bình luận về%2$s",
|
||||
"{author} commented on {file}" : "{author} đã bình luận về tệp tin {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>bình luận</strong> đối với các tệp tin",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Bạn đã được nhắc đến ở “{file}”, trong một bình luận bởi một người dùng mà họ đã bị xóa từ đó trở đi",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} đề cập tới bạn trong một bình luận về “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin ứng dụng Tệp để thêm bình luận vào tệp",
|
||||
"Edit comment" : "Sửa bình luận",
|
||||
"Delete comment" : "Xóa bình luận",
|
||||
"Cancel edit" : "Hủy chỉnh sửa",
|
||||
"Post comment" : "Đăng bình luận",
|
||||
"No comments yet, start the conversation!" : "Không có bình luận nào, bắt đầu cuộc hội thoại!",
|
||||
"No more messages" : "Không có thêm tin nhắn",
|
||||
"Retry" : "Thử lại",
|
||||
"Unable to load the comments list" : "Không thể tải danh sách bình luận",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n bình luận chưa đọc"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} bình luận mới"],
|
||||
"Comment" : "Bình luận",
|
||||
"An error occurred while trying to edit the comment" : "Đã xảy ra lỗi khi cố gắng chỉnh sửa bình luận",
|
||||
"Comment deleted" : "Đã xóa bình luận",
|
||||
"An error occurred while trying to delete the comment" : "Đã xảy ra lỗi khi cố gắng xóa bình luận",
|
||||
"An error occurred while trying to create the comment" : "Đã xảy ra lỗi khi cố gắng tạo bình luận",
|
||||
"New comment …" : "Tạo bình luận mới",
|
||||
"Post" : "Đăng",
|
||||
"Cancel" : "Hủy",
|
||||
|
||||
@@ -8,12 +8,24 @@
|
||||
"%1$s commented on %2$s" : "%1$s đã bình luận về%2$s",
|
||||
"{author} commented on {file}" : "{author} đã bình luận về tệp tin {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>bình luận</strong> đối với các tệp tin",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Bạn đã được nhắc đến ở “{file}”, trong một bình luận bởi một người dùng mà họ đã bị xóa từ đó trở đi",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} đề cập tới bạn trong một bình luận về “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin ứng dụng Tệp để thêm bình luận vào tệp",
|
||||
"Edit comment" : "Sửa bình luận",
|
||||
"Delete comment" : "Xóa bình luận",
|
||||
"Cancel edit" : "Hủy chỉnh sửa",
|
||||
"Post comment" : "Đăng bình luận",
|
||||
"No comments yet, start the conversation!" : "Không có bình luận nào, bắt đầu cuộc hội thoại!",
|
||||
"No more messages" : "Không có thêm tin nhắn",
|
||||
"Retry" : "Thử lại",
|
||||
"Unable to load the comments list" : "Không thể tải danh sách bình luận",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n bình luận chưa đọc"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} bình luận mới"],
|
||||
"Comment" : "Bình luận",
|
||||
"An error occurred while trying to edit the comment" : "Đã xảy ra lỗi khi cố gắng chỉnh sửa bình luận",
|
||||
"Comment deleted" : "Đã xóa bình luận",
|
||||
"An error occurred while trying to delete the comment" : "Đã xảy ra lỗi khi cố gắng xóa bình luận",
|
||||
"An error occurred while trying to create the comment" : "Đã xảy ra lỗi khi cố gắng tạo bình luận",
|
||||
"New comment …" : "Tạo bình luận mới",
|
||||
"Post" : "Đăng",
|
||||
"Cancel" : "Hủy",
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
context.$file.find('.action-comment').tooltip('hide')
|
||||
// open sidebar in comments section
|
||||
OCA.Files.Sidebar.setActiveTab('comments')
|
||||
OCA.Files.Sidebar.open('/' + fileName)
|
||||
OCA.Files.Sidebar.open(context.dir + '/' + fileName)
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ describe('OCA.Comments.FilesPlugin tests', function() {
|
||||
expect(sidebarTabStub.calledOnce).toEqual(true);
|
||||
expect(sidebarTabStub.lastCall.args[0]).toEqual('comments');
|
||||
expect(sidebarStub.calledOnce).toEqual(true);
|
||||
expect(sidebarStub.lastCall.args[0]).toEqual('/One.txt');
|
||||
expect(sidebarStub.lastCall.args[0]).toEqual('/subdir/One.txt');
|
||||
});
|
||||
});
|
||||
describe('elementToFile', function() {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Contacts Interaction</name>
|
||||
<summary>Manages interaction between users and contacts</summary>
|
||||
<description>Collect data about user and contacts interactions and provide an address book for the data</description>
|
||||
<version>1.2.0</version>
|
||||
<version>1.3.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Christoph Wurst</author>
|
||||
<namespace>ContactsInteraction</namespace>
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -4,6 +4,6 @@ OC.L10N.register(
|
||||
"Recently contacted" : "Legutóbbi kapcsolatfelvételek",
|
||||
"Contacts Interaction" : "Kapcsolatfelvételek",
|
||||
"Manages interaction between users and contacts" : "A felhasználók és a kapcsolataik közötti interakciót kezeli",
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik között interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik közötti interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
"Recently contacted" : "Legutóbbi kapcsolatfelvételek",
|
||||
"Contacts Interaction" : "Kapcsolatfelvételek",
|
||||
"Manages interaction between users and contacts" : "A felhasználók és a kapcsolataik közötti interakciót kezeli",
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik között interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik közötti interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
<name>Dashboard</name>
|
||||
<summary>Dashboard app</summary>
|
||||
<description><![CDATA[Show something]]></description>
|
||||
<version>7.1.0</version>
|
||||
<version>7.2.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<namespace>Dashboard</namespace>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -6,6 +6,7 @@ OC.L10N.register(
|
||||
"Show something" : "Δείξε οτιδήποτε",
|
||||
"Customize" : "Προσαρμογή",
|
||||
"Edit widgets" : "Επεξεργασία μικροεφαρμογών",
|
||||
"Get more widgets from the App Store" : "Λάβετε περισσότερες μικροεφαρμογές από το App Store",
|
||||
"Change background image" : "Αλλαγή φωτογραφίας παρασκηνίου",
|
||||
"Weather service" : "Υπηρεσία καιρού",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Για το απόρρητό σας, τα δεδομένα καιρού ζητούνται από τον διακομιστή Nextcloud για λογαριασμό σας, ώστε η υπηρεσία καιρού να μην λαμβάνει προσωπικά στοιχεία.",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"Show something" : "Δείξε οτιδήποτε",
|
||||
"Customize" : "Προσαρμογή",
|
||||
"Edit widgets" : "Επεξεργασία μικροεφαρμογών",
|
||||
"Get more widgets from the App Store" : "Λάβετε περισσότερες μικροεφαρμογές από το App Store",
|
||||
"Change background image" : "Αλλαγή φωτογραφίας παρασκηνίου",
|
||||
"Weather service" : "Υπηρεσία καιρού",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Για το απόρρητό σας, τα δεδομένα καιρού ζητούνται από τον διακομιστή Nextcloud για λογαριασμό σας, ώστε η υπηρεσία καιρού να μην λαμβάνει προσωπικά στοιχεία.",
|
||||
|
||||
@@ -3,6 +3,7 @@ OC.L10N.register(
|
||||
{
|
||||
"Dashboard" : "Konsoli",
|
||||
"Dashboard app" : "Konsolisovellus",
|
||||
"Show something" : "Näytä jotain",
|
||||
"Customize" : "Mukauta",
|
||||
"Edit widgets" : "Muokkaa pienoissovelluksia",
|
||||
"Change background image" : "Vaihda taustakuva",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Konsoli",
|
||||
"Dashboard app" : "Konsolisovellus",
|
||||
"Show something" : "Näytä jotain",
|
||||
"Customize" : "Mukauta",
|
||||
"Edit widgets" : "Muokkaa pienoissovelluksia",
|
||||
"Change background image" : "Vaihda taustakuva",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user