Compare commits

...

326 Commits

Author SHA1 Message Date
blizzz
1eea64f2c3 Merge pull request #28606 from nextcloud/release/22.1.1-final
22.1.1
2021-08-26 15:21:22 +02:00
Louis
cfe553e28a Merge pull request #28596 from nextcloud/backport/28262/stable22
[stable22] Fix setting up 2FA providers when 2FA is enforced and bc are generated
2021-08-26 14:20:09 +02:00
Arthur Schiwon
2f880f5bcf 22.1.1
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-08-26 13:05:47 +02:00
Christoph Wurst
0629b58382 Fix setting up 2FA providers when 2FA is enforced and bc are generated
When a user has backup codes generated and got their 2FA enforced then
they should be able to set up TOTP and similar providers during the
login.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-08-25 12:39:11 +00:00
Lukas Reschke
34b5d979ff Merge pull request #28583 from nextcloud/backport/28566/stable22
[stable22] use getGetUnjailedRoot to determine if jailed search needs the path filter
2021-08-25 13:21:41 +02:00
Vincent Petry
2a928d46d4 Merge pull request #28573 from nextcloud/backport/28476/stable22
[stable22] use case insensitive like when limiting search to jail
2021-08-25 09:31:58 +02:00
Pytal
c7b6e73fe4 Merge pull request #28576 from nextcloud/backport/28574/stable22
[stable22] Log exception message during failed ownership transfer share restore
2021-08-24 17:57:40 -07:00
blizzz
211e14859a Merge pull request #28590 from nextcloud/release/22.1.1-rc2
22.1.1-rc2
2021-08-24 23:34:29 +02:00
Arthur Schiwon
39c73581c1 22.1.1-rc2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-08-24 23:15:05 +02:00
Robin Appelman
9e5440abc3 use getGetUnjailedRoot to determine if jailed search needs the path filter
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-24 12:52:27 +00:00
Christoph Wurst
7f897606e4 Log exception message during failed ownership transfer share restore
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-08-24 09:58:36 +00:00
Robin Appelman
5444db1ebf use case insensitive like when limiting search to jail
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-24 07:02:22 +00:00
Nextcloud bot
09921e94f4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-24 02:26:21 +00:00
Julius Härtl
f94ec1f80c Merge pull request #28568 from nextcloud/fix/stable22-failing-user-controller-tests
[stable22] fix UserController tests
2021-08-23 22:16:23 +02:00
Julien Veyssier
6d2430701c fix UserController tests failing because of max_quota app value not provided by mocks
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-08-23 19:00:59 +02:00
Pytal
d84eed7fb0 Merge pull request #28256 from nextcloud/enh/21045/stable22-quota-restrictions
[stable22] Add quota restrictions options
2021-08-23 09:29:20 -07:00
Louis
2ce0a190b4 Merge pull request #28553 from nextcloud/dependabot/npm_and_yarn/stable22/webdav-4.6.1
Bump webdav from 4.6.0 to 4.6.1
2021-08-23 10:02:49 +02:00
dependabot[bot]
687d0abfc5 Bump webdav from 4.6.0 to 4.6.1
Bumps [webdav](https://github.com/perry-mitchell/webdav-client) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/perry-mitchell/webdav-client/releases)
- [Changelog](https://github.com/perry-mitchell/webdav-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/perry-mitchell/webdav-client/compare/v4.6.0...v4.6.1)

---
updated-dependencies:
- dependency-name: webdav
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-23 09:17:14 +02:00
Nextcloud bot
025e057f9d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-22 02:26:01 +00:00
MichaIng
664a95eb75 Merge pull request #28534 from nextcloud/backport/28185/stable22
[stable22]   Fix folder size contained in S3 buckets
2021-08-21 02:13:30 +02:00
Pytal
648ae408e9 Merge pull request #28545 from nextcloud/backport/28532/stable22
[stable22] Do not load versions tab view if the files app is not available
2021-08-20 13:56:49 -07:00
Julius Härtl
1d7e8ca0c3 Do not load versions tab view if the files app is not available
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-20 17:10:01 +00:00
kesselb
cd9ee1653b Merge pull request #28536 from nextcloud/backport/28452/stable22
[stable22] Set alias for result of cast column function
2021-08-20 18:28:17 +02:00
Daniel Kesselberg
bd30d97857 Set alias for result of cast column function
On OCI an expression like to_char(events) end up as $row['to_char(events)'] in the query result.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-08-20 13:40:43 +00:00
Louis Chemineau
951aa784b0 Fix folder size contained in S3 buckets
If 'filesystem_check_changes' was set to never, the cached size was alway set to -1 (Pending) on every access

Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-08-20 13:35:22 +00:00
Louis
8be50456e5 Merge pull request #28518 from nextcloud/backport/28512/sable22
[stable22] Output exception in cron
2021-08-20 09:53:07 +02:00
Nextcloud bot
e0d632c342 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-20 02:26:29 +00:00
Christopher Ng
e3be5d49d3 refs #21045 add app config to disable unlimited quota and to set max quota
avoid unlimited quota as default_quota fallback value if unlimited quota is not allowed
avoid getting/setting/displaying unlimited default quota if not allowed
implement tests for unlimited quota restrictions

Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: Christopher Ng <chrng8@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-08-20 00:52:42 +00:00
John Molakvoæ
d73de679a8 Merge pull request #28522 from nextcloud/backport/28504/stable22 2021-08-19 23:27:33 +02:00
kesselb
3a6145becf Merge pull request #28231 from nextcloud/backport/28210/stable22
[stable22] Allow to disable group membership change notification
2021-08-19 22:03:21 +02:00
blizzz
5d4ad75e53 Merge pull request #28514 from nextcloud/release/22.1.1-rc1
22.1.1 RC1
2021-08-19 20:23:26 +02:00
John Molakvoæ (skjnldsv)
945b9288c6 Properly log errors in Movie previews generation
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-08-19 18:02:27 +00:00
Louis Chemineau
2dc669c2ae Output exception in cron
Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-08-19 15:31:52 +02:00
John Molakvoæ (skjnldsv)
10c3974ff7 22.1.1 RC1
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-08-19 15:22:23 +02:00
Marco Ambrosini
1829b5d9c4 Allow to disable group change notification
Signed-off-by: Marco Ambrosini <marcoambrosini@pm.me>
2021-08-19 12:48:47 +00:00
John Molakvoæ
f7d5bb5cb1 Merge pull request #28499 from nextcloud/backport/28485/stable22 2021-08-19 14:48:01 +02:00
John Molakvoæ
cae51a0a25 Merge pull request #28454 from nextcloud/backport/28303/stable22 2021-08-19 14:47:36 +02:00
John Molakvoæ
e2a4dc818c Merge pull request #28209 from nextcloud/backport/27751/stable22 2021-08-19 14:46:01 +02:00
John Molakvoæ
2663b10e49 Merge pull request #27993 from goyome/goyome-stable22-group-shares-limit 2021-08-19 14:44:56 +02:00
Nextcloud bot
c485aad988 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-19 02:25:59 +00:00
Pytal
f3f1c826be Merge pull request #28494 from nextcloud/backport/28481/stable22
[stable22] Hash cache key
2021-08-18 12:48:24 -07:00
Simon Spannagel
cb49f19385 Fix #20913: Check image resource before attempting to preserve alpha
Signed-off-by: Simon Spannagel <simonspa@kth.se>
2021-08-18 15:42:52 +00:00
Julius Härtl
e1d9a45c6d Merge pull request #28479 from nextcloud/backport/28461/stable22 2021-08-18 17:35:18 +02:00
Julius Härtl
67cbb0318d Merge pull request #28489 from nextcloud/backport/28413/stable22
[stable22] Emit an error log when the app token login name does not match
2021-08-18 16:35:34 +02:00
Christopher Ng
79b5421425 Hash cache key
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-08-18 13:21:22 +00:00
Christoph Wurst
461e9079b9 Emit an error log when the app token login name does not match
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-08-18 12:11:12 +00:00
Nextcloud bot
7879484950 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-18 02:26:09 +00:00
nextcloud-command
d89b462351 Compile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-08-17 13:41:44 +00:00
Louis
94e5dcd90e Merge pull request #28470 from nextcloud/backport/28464/stable22
[stable22] Only trap E_ERROR in session handling
2021-08-17 15:29:48 +02:00
Christopher Ng
26d1ac1f1f Autofocus only additional email inputs
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit f7dee7152a)
2021-08-17 13:27:52 +00:00
Julius Härtl
34ba91e141 Only trap E_ERROR in session handling
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-17 10:12:56 +00:00
Nextcloud bot
f605e1dabf [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-17 02:27:19 +00:00
Jonas Meurer
55fcffd11a Use IURLGenerator function to get value of \OC::$WEBROOT global
Signed-off-by: Jonas Meurer <jonas@freesources.org>
2021-08-16 13:12:00 +00:00
Jonas Meurer
57e20ed566 UnifiedSearchController: strip webroot from URL before finding a route
This should fix route matching in UnifiedSearchController on setups with
Nextcloud in a subfolder (webroot).

Fixes: #24144
Signed-off-by: Jonas Meurer <jonas@freesources.org>
2021-08-16 13:11:59 +00:00
Louis
e9fc8e1dcb Merge pull request #28446 from nextcloud/backport/28211/stable22
[stable22] Improve auto expiration hint for trashbin and file versions
2021-08-16 13:19:27 +02:00
blizzz
f97915101e Merge pull request #28441 from nextcloud/fix/composer-2-missing-files-stable22
[stable22] Add missing files for Composer v2
2021-08-16 12:23:30 +02:00
szaimen
73a52b2565 Improve auto expiration hint
Signed-off-by: szaimen <szaimen@e.mail.de>
Co-Authored-By: Pytal <24800714+Pytal@users.noreply.github.com>
2021-08-16 10:18:59 +00:00
Julius Härtl
7fb8b50cf9 Merge pull request #28416 from nextcloud/backport/28062/stable22
[stable22] Gracefully handle smb acls for users without a domain
2021-08-16 11:57:14 +02:00
Christoph Wurst
4566423e85 Add missing files for Composer v2
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-08-16 08:25:35 +02:00
Nextcloud bot
fb5ee6087b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-16 02:26:29 +00:00
Nextcloud bot
51bfaf9faa [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-15 02:26:14 +00:00
Nextcloud bot
1415a7ee92 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-14 02:26:51 +00:00
Christoph Wurst
54192ed459 Merge pull request #28384 from nextcloud/backport/28318/stable22
[stable22] Make "name" column nullable for workflows
2021-08-13 13:59:39 +02:00
Richard Steinmetz
fdd5bc8560 Gracefully handle smb acls for users without a domain
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2021-08-13 08:45:50 +00:00
Nextcloud bot
a822e88d24 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-13 02:26:45 +00:00
Vincent Petry
0a184a3201 Make "name" column nullable in workflow operations
The "name" column is now unused and the code is always inserting an
empty string. While this works with most databases, Oracle complains
because an empty string is equivalent to null.

To fix this, the column definition is changed to allow null values now.

Also added some logging in case of database exceptions, because without
this nothing would be logged to detect the above problem.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-12 13:56:26 +02:00
Nextcloud bot
5ce9276230 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-12 02:27:30 +00:00
Julius Härtl
0b44a82ace Merge pull request #28359 from nextcloud/backport/28220/stable22
[stable22] fix Folder->getById() when a single storage is mounted multiple times
2021-08-11 08:59:19 +02:00
Nextcloud bot
02d3de6aef [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-11 02:26:52 +00:00
Vincent Petry
f60ea8a260 Fix remote share deletion when deleting user
When deleting a user, we should only delete the direct remote user
shares or the remote group based subshares.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:37:37 +02:00
Vincent Petry
a22ea02bea Fix route path for pending remote shares
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:37:31 +02:00
Vincent Petry
33b01187cd Replace ILogger with LoggerInterface in remote share manager
Signed-off-by: Vincent Petry <vincent@nextcloud.com>

Co-authored-by: Carl Schwan <carl@carlschwan.eu>
2021-08-10 13:27:59 +02:00
Vincent Petry
2e76d98e13 Fix remote group share decline+accept code path
When declining a remote group share through the dialog that appears when
notifications are off, the mount point is now correctly saved when
re-accepting.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:59 +02:00
Vincent Petry
5b111961ae Use mimetype instead of type when defaulting in remote shares
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:59 +02:00
Vincent Petry
df0ca2f1db Fix external share manager with multiple user groups
Use query builder with proper matching for finding the group names.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:59 +02:00
Vincent Petry
701de23857 Fix remote group share API interactions
Accepting and declining can now be done repeatedly on both the parent
group share and sub-share with the same effects.

Added unit tests to cover these cases, and also when the same operation
is repeated.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:58 +02:00
Vincent Petry
dde4c9d9df Disable default actions in pending file list
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:58 +02:00
Vincent Petry
9c0e1d8252 Pending remote group share fixes
Only remove reject share for remote group shares
Also fix share indicator to appear for remote group shares as well.
Fix pending remote share icon to be the one of a share.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:58 +02:00
Vincent Petry
37a65237ea Fix re-accepting or re-rejecting remote group shares
When accepting a group share, a sub-share entry is created which also
has a different id.

When accepting or rejecting the sub-share, simply update the "accepted"
flag instead of trying to re-insert the entry.

Adjust getShare to also properly validate group share membership
when called on a sub-share id.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:58 +02:00
Vincent Petry
4d0f0095ea Add logging to external shares manager
Instead of just returning false, also log the exception to make
debugging database issues easier.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:58 +02:00
Vincent Petry
13781b0425 Remove "Reject share" for pending remote shares
In the list of pending shares, the option for rejecting the share has
been removed.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:57 +02:00
Vincent Petry
08ab5d97da Fix received federated group shares
Fix pending shares endpoint to consider user-specific sub-entries
for group shares whenever a share was accepted or declined.

Added unit test for adding remote group shares.

Fixed "removeUserShares" to not send a remote request as we never send
remote requests for group shares.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:57 +02:00
Vincent Petry
df835ed350 Extend pending shares list to include remote shares
And adjust the accept/decline actions to use the right endpoint for
remote shares.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-08-10 13:27:53 +02:00
Nextcloud bot
5bd4ed19d4 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-10 02:31:55 +00:00
Robin Appelman
8a6e3e6aca fix Folder->getById() when a single storage is mounted multiple times
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-09 17:29:40 +00:00
szaimen
876545502c Merge pull request #28353 from nextcloud/backport/28352/stable22
[stable22] Change the concurrent upload limit to less than 10
2021-08-09 18:02:09 +02:00
szaimen
6acf1a5493 Change the concurrent upload limit to less than 10
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-08-09 08:33:53 +00:00
Nextcloud bot
faef6db11a [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-09 02:26:58 +00:00
dependabot[bot]
eceee99081 Merge pull request #28342 from nextcloud/dependabot/npm_and_yarn/stable22/vue-loader-15.9.8 2021-08-08 08:39:58 +00:00
dependabot[bot]
59e6c25660 Bump vue-loader from 15.9.7 to 15.9.8
Bumps [vue-loader](https://github.com/vuejs/vue-loader) from 15.9.7 to 15.9.8.
- [Release notes](https://github.com/vuejs/vue-loader/releases)
- [Changelog](https://github.com/vuejs/vue-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-loader/compare/v15.9.7...v15.9.8)

---
updated-dependencies:
- dependency-name: vue-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-08 08:07:04 +00:00
Nextcloud bot
1f4886d891 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-08 02:21:52 +00:00
dependabot[bot]
6f57b3bc79 Merge pull request #28340 from nextcloud/dependabot/npm_and_yarn/stable22/dompurify-2.2.9 2021-08-08 00:26:12 +00:00
dependabot[bot]
164d5a296b Bump dompurify from 2.2.8 to 2.2.9
Bumps [dompurify](https://github.com/cure53/DOMPurify) from 2.2.8 to 2.2.9.
- [Release notes](https://github.com/cure53/DOMPurify/releases)
- [Commits](https://github.com/cure53/DOMPurify/compare/2.2.8...2.2.9)

---
updated-dependencies:
- dependency-name: dompurify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2021-08-07 23:51:24 +00:00
dependabot[bot]
a58eafb53f Merge pull request #28341 from nextcloud/dependabot/npm_and_yarn/stable22/babel/preset-env-7.14.9 2021-08-07 04:41:51 +00:00
dependabot[bot]
0af0874442 Bump @babel/preset-env from 7.14.8 to 7.14.9
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.8 to 7.14.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.9/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-07 02:53:06 +00:00
Nextcloud bot
9da252811c [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-07 02:27:36 +00:00
Nextcloud bot
9a95bb4f89 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-06 02:27:07 +00:00
John Molakvoæ
f9dfb535ef Merge pull request #28271 from nextcloud/dependabot/npm_and_yarn/stable22/marked-2.0.7 2021-08-05 14:30:00 +02:00
dependabot[bot]
ae3c49d375 Bump marked from 2.0.6 to 2.0.7
Bumps [marked](https://github.com/markedjs/marked) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v2.0.6...v2.0.7)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-08-05 10:16:08 +00:00
Julius Härtl
127d8e65a4 Merge pull request #28288 from nextcloud/backport/28259/stable22
[stable22] Check that php was compiled with argon2 support or that the php-sodium extensions is installed
2021-08-05 10:25:10 +02:00
Nextcloud bot
f030a16333 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-05 02:27:20 +00:00
John Molakvoæ
3290c53d6a Merge pull request #28252 from nextcloud/backport/28240/stable22
[stable22] Add h2 to personal info page, fixing accessibility issue
2021-08-04 09:53:51 +02:00
John Molakvoæ
aec771763c Merge pull request #28274 from nextcloud/backport/28202/stable22 2021-08-04 08:12:15 +02:00
John Molakvoæ
525ff78aab Merge pull request #28304 from nextcloud/bugfix/22.1-upgrade 2021-08-04 07:40:58 +02:00
Nextcloud bot
2a4b5752de [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-04 02:26:47 +00:00
Christopher Ng
6da7f78ec2 Build
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-08-04 00:22:57 +00:00
Christopher Ng
fc9066efb2 Remove chunkhash
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 63c3b9a4cc)
2021-08-04 00:10:18 +00:00
Julius Härtl
e0ab00e5f1 Allow upgrade from 22.1
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-08-03 22:03:51 +02:00
John Molakvoæ
a45d94af7b Merge pull request #28298 from nextcloud/version/22.1.0/Final
22.1.0
2021-08-03 16:36:07 +02:00
John Molakvoæ (skjnldsv)
192858a79b 22.1.0
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-08-03 08:44:58 +02:00
Nextcloud bot
3f3206149e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-03 02:26:24 +00:00
Louis
972f678316 Merge pull request #28215 from nextcloud/backport/28174/stable22
[stable22] Set openfile params when following internal links
2021-08-02 18:37:58 +02:00
Louis
8c13c5a5be Fix typo
Co-authored-by: Pytal <24800714+Pytal@users.noreply.github.com>
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-08-02 18:05:13 +02:00
Louis Chemineau
7f044655ed Set openfile params when following internal links
Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-08-02 18:05:13 +02:00
Carl Schwan
94466918e3 Check that php was compiled with argon2 support or that the php-sodium
extensions is installed

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-08-02 09:19:09 +00:00
Nextcloud bot
e02dde323d [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-02 07:56:43 +00:00
Nextcloud bot
7c7dc50ceb [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-08-02 07:35:34 +00:00
dependabot[bot]
4932396052 Merge pull request #28269 from nextcloud/dependabot/composer/build/integration/stable22/guzzlehttp/guzzle-6.5.5 2021-08-01 18:32:48 +00:00
dependabot[bot]
3c494c4031 Update guzzlehttp/guzzle requirement in /build/integration
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/6.5.5/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.2...6.5.5)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-01 18:00:23 +00:00
dependabot[bot]
b285f18595 Merge pull request #28270 from nextcloud/dependabot/npm_and_yarn/stable22/css-loader-5.2.7 2021-08-01 16:31:48 +00:00
dependabot[bot]
78a5ece3d9 Bump css-loader from 5.2.6 to 5.2.7
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 5.2.6 to 5.2.7.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v5.2.6...v5.2.7)

---
updated-dependencies:
- dependency-name: css-loader
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-08-01 17:58:01 +02:00
dependabot[bot]
f3e7212bea Merge pull request #28272 from nextcloud/dependabot/npm_and_yarn/stable22/css-vars-ponyfill-2.4.6 2021-08-01 08:45:05 +00:00
dependabot[bot]
b81db1aa1c Bump css-vars-ponyfill from 2.4.5 to 2.4.6
Bumps [css-vars-ponyfill](https://github.com/jhildenbiddle/css-vars-ponyfill) from 2.4.5 to 2.4.6.
- [Release notes](https://github.com/jhildenbiddle/css-vars-ponyfill/releases)
- [Changelog](https://github.com/jhildenbiddle/css-vars-ponyfill/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jhildenbiddle/css-vars-ponyfill/compare/v2.4.5...v2.4.6)

---
updated-dependencies:
- dependency-name: css-vars-ponyfill
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-08-01 08:13:22 +00:00
dependabot[bot]
d6641f639d Merge pull request #28273 from nextcloud/dependabot/npm_and_yarn/stable22/regenerator-runtime-0.13.9 2021-07-31 15:18:35 +00:00
dependabot[bot]
c3670c9d86 Bump regenerator-runtime from 0.13.7 to 0.13.9
Bumps [regenerator-runtime](https://github.com/facebook/regenerator) from 0.13.7 to 0.13.9.
- [Release notes](https://github.com/facebook/regenerator/releases)
- [Commits](https://github.com/facebook/regenerator/compare/regenerator-runtime@0.13.7...regenerator-runtime@0.13.9)

---
updated-dependencies:
- dependency-name: regenerator-runtime
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-31 16:44:15 +02:00
marco
6282aca622 Merge pull request #28244 from nextcloud/backport/28238/stable22
[stable22] Fix missing label of Search function
2021-07-30 12:13:09 +02:00
Julien Veyssier
f0ca1f7173 Merge pull request #28247 from nextcloud/backport/28242/stable22
[stable22] Add missing order attribute to tag multiselect action
2021-07-30 10:44:36 +02:00
Jan C. Borchardt
afbcdb4fa0 Add h2 to personal info page, fixing accessibility issue
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
2021-07-30 06:13:37 +00:00
Jan C. Borchardt
cba61e955c Fix missing label and accessibility of Search function
Signed-off-by: Jan C. Borchardt <hey@jancborchardt.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-30 06:04:38 +00:00
Julien Veyssier
e3cf80aba4 add missing order attribute to tag multiselect action
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-07-29 19:41:59 +00:00
Vincent Petry
b7da9efbd3 Merge pull request #28228 from nextcloud/backport/28175/stable22
[stable22] dont apply jail search filter is on the root
2021-07-29 14:15:23 +02:00
Louis
9452553842 Merge pull request #28193 from nextcloud/backport/28173/stable22
[stable22] Fix variable override in file view
2021-07-29 11:55:42 +02:00
Louis Chemineau
79526af7a5 Fix variabable override in file view
Signed-off-by: Louis Chemineau <louis@chmn.me>
2021-07-29 08:08:52 +00:00
Robin Appelman
69e650d4b0 add test for searching within a "root jail"
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-07-29 07:30:22 +00:00
Robin Appelman
1534b24e38 dont apply jail search filter is on the root
the extra '/' breaks things and the filter wouldn't do anything anyway except making the databases job harder

Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-07-29 07:30:21 +00:00
John Molakvoæ
0feea35823 Merge pull request #28161 from nextcloud/version/22.1.0/RC1
22.1.0 RC1
2021-07-29 08:42:58 +02:00
dependabot[bot]
98b14028b5 Merge pull request #27659 from nextcloud/dependabot/npm_and_yarn/stable22/vue-router-3.5.2 2021-07-28 20:33:42 +00:00
dependabot[bot]
dc0dbcf437 Bump vue-router from 3.5.1 to 3.5.2
Bumps [vue-router](https://github.com/vuejs/vue-router) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/compare/v3.5.1...v3.5.2)

---
updated-dependencies:
- dependency-name: vue-router
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-28 19:43:55 +00:00
MichaIng
918c75c84b Merge pull request #28222 from nextcloud/backport/27920/stable22
[stable22] Fix Files breadcrumbs being hidden even if there is enough space
2021-07-28 21:08:52 +02:00
Julien Veyssier
bd1217ff58 refs #21263 round numbers when checking if breadcrumbs should be hidden
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-07-28 16:48:17 +00:00
John Molakvoæ (skjnldsv)
68905056dc 22.1.0 RC1
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-07-27 19:18:47 +00:00
John Molakvoæ
2585ae80cf Merge pull request #28181 from nextcloud/dependabot/npm_and_yarn/stable22/autosize-4.0.4 2021-07-27 21:11:42 +02:00
Christopher Ng
2e9d5ce5c6 Build
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-07-27 18:36:14 +00:00
Pytal
3be3a3ec87 Merge pull request #28197 from nextcloud/backport/27893/stable22
[stable22] Fix comments file action sidebar opening
2021-07-27 09:41:26 -07:00
Julien Veyssier
8550418872 fix jsunit tests for comments
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-27 15:22:16 +00:00
Julien Veyssier
6fe61cc8b3 fix comments file action sidebar opening
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-27 15:07:44 +00:00
John Molakvoæ
837c08892b Add files via upload 2021-07-27 12:00:30 +02:00
dependabot[bot]
46135e018a Bump autosize from 4.0.2 to 4.0.4
Bumps [autosize](https://github.com/jackmoore/autosize) from 4.0.2 to 4.0.4.
- [Release notes](https://github.com/jackmoore/autosize/releases)
- [Changelog](https://github.com/jackmoore/autosize/blob/master/changelog.md)
- [Commits](https://github.com/jackmoore/autosize/compare/4.0.2...4.0.4)

---
updated-dependencies:
- dependency-name: autosize
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-27 06:22:18 +00:00
John Molakvoæ
ff10807f37 Merge pull request #27658 from nextcloud/dependabot/npm_and_yarn/stable22/vue-and-vue-template-compiler-2.6.14 2021-07-27 07:33:53 +02:00
Pytal
b91ea46fce Merge pull request #28179 from nextcloud/dependabot/npm_and_yarn/stable22/sass-1.35.2
Bump sass from 1.35.1 to 1.35.2
2021-07-26 15:21:58 -07:00
Pytal
5681de67fc Merge pull request #28149 from nextcloud/dependabot/npm_and_yarn/stable22/css-vars-ponyfill-2.4.5
Bump css-vars-ponyfill from 2.4.3 to 2.4.5
2021-07-26 15:15:06 -07:00
npmbuildbot-nextcloud[bot]
83e84f3aa3 Compile assets
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-26 21:18:23 +00:00
npmbuildbot-nextcloud[bot]
6628c2c6ca Compile assets
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-26 22:58:52 +02:00
dependabot[bot]
3879860177 Bump css-vars-ponyfill from 2.4.3 to 2.4.5
Bumps [css-vars-ponyfill](https://github.com/jhildenbiddle/css-vars-ponyfill) from 2.4.3 to 2.4.5.
- [Release notes](https://github.com/jhildenbiddle/css-vars-ponyfill/releases)
- [Changelog](https://github.com/jhildenbiddle/css-vars-ponyfill/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jhildenbiddle/css-vars-ponyfill/compare/v2.4.3...v2.4.5)

---
updated-dependencies:
- dependency-name: css-vars-ponyfill
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 20:12:52 +00:00
dependabot[bot]
4eae0f7a0a Bump sass from 1.35.1 to 1.35.2
Bumps [sass](https://github.com/sass/dart-sass) from 1.35.1 to 1.35.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.35.1...1.35.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 20:11:48 +00:00
dependabot[bot]
269e436857 Bump vue and vue-template-compiler
Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.6.12 to 2.6.14
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.12...v2.6.14)

Updates `vue-template-compiler` from 2.6.12 to 2.6.14
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.12...v2.6.14)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: vue-template-compiler
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-26 20:10:07 +00:00
John Molakvoæ
dc8b42eec4 Merge pull request #28177 from nextcloud/dependabot/npm_and_yarn/stable22/babel/preset-env-7.14.8 2021-07-26 21:58:46 +02:00
szaimen
68015b6680 Merge pull request #28170 from nextcloud/backport/28166/stable22
[stable22] User management - Add icon to user groups
2021-07-26 21:39:05 +02:00
szaimen
0ce687fd33 User management - Add icon to user groups
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-26 20:53:31 +02:00
John Molakvoæ
185812ed48 Merge pull request #28167 from nextcloud/backport/28075/stable22
[stable22] Admin Audit - Sharing: createShare - report the full path
2021-07-26 20:38:58 +02:00
dependabot[bot]
7e96f06c59 Bump @babel/preset-env from 7.14.7 to 7.14.8
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.14.7 to 7.14.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/preset-env"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-26 18:10:06 +00:00
Julien Veyssier
76e0481bd5 Merge pull request #28168 from nextcloud/backport/28164/stable22
[stable22] Fix sort function of files multiple selection actions
2021-07-26 16:56:08 +02:00
Julien Veyssier
ed3f47b049 fix sort sort function of files multiple selection actions
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-07-26 13:10:25 +00:00
szaimen
4721a82f92 Admin Audit - Sharing: createShare - report the full path
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-26 11:29:41 +00:00
John Molakvoæ
11a252814e Merge pull request #28135 from nextcloud/backport/28133/stable22
[stable22] add an option to the multiple files selected actions to add and remov…
2021-07-26 07:59:09 +02:00
MichaIng
c0f3fcd9a1 Merge pull request #28152 from nextcloud/backport/28084/stable22
[stable22] Make sure that the dav propfind plugins always use the proper user id
2021-07-25 17:37:32 +02:00
MichaIng
4c47cef75f Merge pull request #28126 from nextcloud/dependabot/npm_and_yarn/stable22/nextcloud/babel-config-1.0.0
Bump @nextcloud/babel-config from 1.0.0-beta.1 to 1.0.0
2021-07-25 17:29:25 +02:00
Julius Härtl
eae6ab29ec Make sure that the dav propfind plugins always use the proper user id
For old android versions it could happen that the requests are performed
with a login name instead of the actual user id, so before this change
the property methods used the wrong value for fetching their information

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-24 09:47:41 +00:00
Roland Scheidel
377942d5ef add an option to the multiple files selected actions to add and remove tags from multiple files at once
Signed-off-by: Roland Scheidel <kontakt@scheidel.at>
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-07-23 16:28:23 +00:00
John Molakvoæ
add5919175 Merge pull request #28131 from nextcloud/backport/28129/stable22
[stable22] Allow empty Redis config
2021-07-23 18:26:07 +02:00
Vincent Petry
d5b38ed5f8 Allow empty Redis config
When Redis config is empty, use defaults.
However when a Redis cluster config is specified, the "seeds" attribute
is mandatory.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-07-23 12:30:41 +00:00
dependabot[bot]
59f56244c6 Bump @nextcloud/babel-config from 1.0.0-beta.1 to 1.0.0
Bumps [@nextcloud/babel-config](https://github.com/nextcloud/babel-config) from 1.0.0-beta.1 to 1.0.0.
- [Release notes](https://github.com/nextcloud/babel-config/releases)
- [Commits](https://github.com/nextcloud/babel-config/commits)

---
updated-dependencies:
- dependency-name: "@nextcloud/babel-config"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-23 06:33:49 +00:00
John Molakvoæ
f19f9e1927 Merge pull request #28121 from nextcloud/dependabot/npm_and_yarn/stable22/babel/core-7.14.8 2021-07-23 08:31:59 +02:00
Christopher Ng
a6d8b3bbc3 Build
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-07-22 22:40:24 +00:00
Julius Härtl
1343e0ce9a Merge pull request #28123 from nextcloud/backport/28122/stable22
[stable22] Let memory limit set in tests fit the used amount
2021-07-22 22:50:03 +02:00
Julius Härtl
16bc5a39da Let memory limit set in tests fit the used amount
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-22 16:41:44 +00:00
dependabot[bot]
24714324b8 Bump @babel/core from 7.14.3 to 7.14.8
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.14.3 to 7.14.8.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.14.8/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-22 15:02:47 +00:00
Julius Härtl
a715b8da19 Merge pull request #28112 from nextcloud/backport/27888/stable22 2021-07-22 17:02:26 +02:00
Louis
622bb56f44 Merge pull request #28109 from nextcloud/backport/28101/stable22
[stable22] Fix dark theme in file exists dialog
2021-07-22 13:36:06 +02:00
szaimen
bce33f231d Merge pull request #28016 from nextcloud/backport/27997/stable22
[stable22] Update CRL due to revoked twofactor_nextcloud_notification.crt
2021-07-22 13:03:47 +02:00
John Molakvoæ (skjnldsv)
8b17f317ee Properly support RedisCluster
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-07-22 10:52:13 +00:00
John Molakvoæ (skjnldsv)
cc34255303 Move integration-php7.3 to latest
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-07-22 10:52:12 +00:00
John Molakvoæ (skjnldsv)
9d2cf57776 Support redis user password auth and tls encryption
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2021-07-22 10:52:12 +00:00
szaimen
cf62f62e80 Fix dark theme in file exists dialog
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-22 10:39:51 +00:00
John Molakvoæ
67675c80d6 Merge pull request #28089 from nextcloud/backport/28082/stable22
[stable22] Sanitize more functions from the encryption app
2021-07-22 08:44:25 +02:00
Lukas Reschke
b1c3dacd51 Sanitize more functions from the encryption app
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-07-21 21:58:48 +02:00
Lukas Reschke
9305eaac55 Merge pull request #28085 from nextcloud/backport/28078/stable22
[stable22] Improve provider check
2021-07-21 21:45:43 +02:00
szaimen
79c10ff847 Merge pull request #28093 from nextcloud/backport/27674/stable22
[stable22] hide download button for public preview of audio files
2021-07-21 19:21:04 +02:00
Florian Storz
c44e168c77 Remove trailing whitespace from comment
Signed-off-by: Florian Storz <florian.storz@devlix.de>
2021-07-21 15:57:33 +00:00
Florian Storz
9bb06118ab Add comment linking to PR
PR contains discussion about the implementation with pros and cons

Signed-off-by: Florian Storz <florian.storz@devlix.de>
2021-07-21 15:57:33 +00:00
Florian Storz
1cdf2a268b hide download button for public preview of audio files
When the option to hide downloads was selected at public link creation, the download button can be hidden by the audio html attribute controlsList="nodownload"

Signed-off-by: Florian Storz <florian.storz@devlix.de>
2021-07-21 15:57:33 +00:00
Lukas Reschke
9877075c47 Improve provider check
Check if there is a provider missing.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-07-21 13:25:35 +00:00
Lukas Reschke
81e9495c51 Merge pull request #28079 from nextcloud/backport/28077/stable22
[stable22] Disable HEIC image preview provider for performance concerns
2021-07-21 12:30:11 +02:00
tobiasKaminsky
718cb09dc9 Disable HEIC image preview provider for performance concerns
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
2021-07-21 08:31:31 +00:00
John Molakvoæ
359a33f91a Merge pull request #28071 from nextcloud/backport/28057/stable22 2021-07-21 10:08:07 +02:00
Pytal
df9abad225 Merge pull request #28073 from nextcloud/backport/28015/stable22
[stable22] fix overlapping of elements in certain views
2021-07-20 21:24:26 -07:00
szaimen
89dd07f051 fix overlapping of elements in certain views
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-20 21:08:23 +00:00
kesselb
3bd8bff7db Merge pull request #28053 from nextcloud/backport/28051/stable22
[stable22] Mask password for Redis and RedisCluster on connection failure
2021-07-20 22:57:08 +02:00
Christopher Ng
82017ff311 Build
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-07-20 19:49:03 +00:00
Christopher Ng
44fd0d15a7 Improve UX
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 07c6ed3df2)
2021-07-20 19:47:08 +00:00
Carl Schwan
9c13098d65 Merge pull request #28061 from nextcloud/backport/27950/stable22
[stable22] Fix missing theming for login button
2021-07-20 17:12:19 +02:00
Julius Härtl
da157ea242 Merge pull request #28011 from nextcloud/backport/27995/stable22
[stable22] some multiselect design fixes
2021-07-20 13:14:58 +02:00
Carl Schwan
4de6ab39ea Fix missing theming for login button
Close #27495

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-07-20 10:32:43 +00:00
Daniel Kesselberg
bdcf22eee7 Mask password for Redis and RedisCluster on connection failure
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-07-19 22:00:30 +00:00
szaimen
e915d98fc6 Merge pull request #28047 from nextcloud/backport/28046/stable22
[stable22] Add titleTooltip to sidebar
2021-07-19 14:40:20 +02:00
szaimen
5a9a02ad1d Add titleTooltip to sidebar
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-19 10:40:52 +00:00
Louis
424027b67f Merge pull request #28043 from nextcloud/backport/27994/stable22
[stable22] Increase footer height for longer menus
2021-07-19 11:37:59 +02:00
szaimen
45617f7b04 Increase footer padding for longer menus
Signed-off-by: szaimen <szaimen@e.mail.de>
Co-Authored-By: Julius Härtl <jus@bitgrid.net>
2021-07-19 08:46:51 +00:00
Julius Härtl
05d49b9a67 Merge pull request #28014 from nextcloud/backport/28004/stable22 2021-07-19 08:26:54 +02:00
Nextcloud bot
5aaad8db1b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-19 02:25:29 +00:00
Nextcloud bot
0bbc64960e [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-18 02:25:41 +00:00
Nextcloud bot
9970740f6b [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-17 02:44:29 +00:00
Arthur Schiwon
f8448323d7 Update CRL due to revoked twofactor_nextcloud_notification.crt
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-07-16 21:41:40 +00:00
Christopher Ng
c8c2870191 Build
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-07-16 15:53:48 +00:00
Christopher Ng
0ff49820c8 Refine unsupported federation scope checks
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 74aa115125)
2021-07-16 15:50:55 +00:00
szaimen
33f231c5ae some multiselect design fixes
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-16 16:32:42 +02:00
szaimen
be1444576d Merge pull request #28008 from nextcloud/backport/27980/stable22
[stable22] Improve notcreatable permissions hint
2021-07-16 12:31:44 +02:00
John Molakvoæ
0263eea033 Merge pull request #28001 from nextcloud/backport/27379/stable22 2021-07-16 11:45:08 +02:00
szaimen
ac3ffa7d7a Improve notcreatable permissions hint
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-16 09:02:45 +00:00
John Molakvoæ
d878c68495 Merge pull request #27974 from nextcloud/backport/27973/stable22
[stable22] Fix regression in file sidebar
2021-07-16 09:14:09 +02:00
Nextcloud bot
a2c02455d0 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-16 02:26:40 +00:00
Christopher Ng
66f07cf203 Build
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2021-07-16 00:13:21 +00:00
Christopher Ng
efefffa4cd Refine UX for primary email deletion
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit d8ede941a3aeff8198b695238c8751f92fcd4afd)
2021-07-16 00:11:18 +00:00
Christopher Ng
f0c78d45a9 Make emails Vuetiful
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit e01d63d626cd26cf43eb58d9d55a33df12e3e682)
2021-07-16 00:11:13 +00:00
Christopher Ng
84d1398298 Create personal info service
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 5d5ed6ec8eb0003991e8e65dc0280a36867d6f6b)
2021-07-16 00:11:08 +00:00
Christopher Ng
a130d113c8 Provide initial state
Signed-off-by: Christopher Ng <chrng8@gmail.com>
(cherry picked from commit 94e469f6caa58ea6ec24d2f8350116dd35002abb)
2021-07-16 00:10:27 +00:00
Julius Härtl
8d31b1a57d Merge pull request #27966 from nextcloud/enh/stable22-breadcrumb-detail-view-in-menu
[stable22] Show registered breadcrumb detail views in breadcrumb menu
2021-07-15 16:27:04 +02:00
Guillaume COLSON
69f2b691cd No limit in the number of group shares
Signed-off-by: Guillaume COLSON <guillaume.colson@univ-lorraine.fr>
2021-07-15 15:24:05 +02:00
Nextcloud bot
6bd2efe549 [tx-robot] updated from transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2021-07-15 10:37:38 +00:00
Louis
d23b723d38 Merge pull request #27979 from nextcloud/backport/27884/stable22
[stable22] Allow to get a local cloud id without going through the contacts manager
2021-07-15 11:09:21 +02:00
Julius Härtl
41ca0af614 Directly return cloud id from user
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-14 21:53:12 +00:00
Julius Härtl
4798a29442 Merge pull request #27944 from nextcloud/backport/27912/stable22
[stable22] Do not escape display name in dashboard welcome text
2021-07-14 21:43:40 +02:00
Carl Schwan
295d599b8f Fix regression in file sidebar
See https://github.com/nextcloud/server/pull/27936

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-07-14 18:29:59 +00:00
Joas Schilling
c04797dca0 Merge pull request #27964 from nextcloud/backport/27761/stable22
[stable22] Also hide group from direct matches
2021-07-14 19:52:19 +02:00
Julien Veyssier
1fbe3cd596 show breadcrumb detail view in breadcrumb menu
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
2021-07-14 14:56:52 +02:00
MichaIng
a5fa6c9250 Merge pull request #27957 from nextcloud/backport/27936/stable22
[stable22] Fix svg icons disapearing in app navigation when text overflows
2021-07-14 14:33:31 +02:00
blizzz
f16a806819 Merge pull request #27938 from yan12125/backport/27631/stable22
[stable22] Correctly skip suppressed errors in PHP 8.0
2021-07-14 13:26:28 +02:00
Joas Schilling
af2a862857 Also hide group from direct matches
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-07-14 11:09:53 +00:00
Carl Schwan
6505312817 Fix svg icons disapearing in app navigation when text overflows
The issue is caused by the icon being positionned with negative margins
and the `overflow: hidden` rule when hide the icon when the text
overflows. Remove positioning with negative margins. This was only
happening in Firefox.

This fix #23849

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-07-14 12:56:46 +02:00
Chih-Hsuan Yen
120fc8dd6a Correctly skip suppressed errors in PHP 8.0
Applies the suggested transformation mentioned in
https://www.php.net/manual/en/migration80.incompatible.php,

> The @ operator will no longer silence fatal errors (E_ERROR,
> E_CORE_ERROR, E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR,
> E_PARSE). Error handlers that expect error_reporting to be 0 when
> @ is used, should be adjusted to use a mask check instead

The new code still works on PHP 7, as error_reporting() already
returns 0 when diagnostics are suppressed.

This fixes https://github.com/nextcloud/server/issues/25807 in PHP 8.0.
For PHP 7.x, https://github.com/nextcloud/server/pull/22243 suppresses
the E_NOTICE message from the second session_start() call with the error
suppression operator @, and thus those E_NOTICE messages are still
logged in PHP 8.0.

See also https://github.com/nextcloud/server/issues/25806

Signed-off-by: Chih-Hsuan Yen <yan12125@gmail.com>
2021-07-14 17:07:58 +08:00
Julius Härtl
ca96a03c6b Merge pull request #27959 from nextcloud/revert-27654-dependabot/composer/build/integration/stable22/guzzlehttp/guzzle-7.3.0
Revert "Update guzzlehttp/guzzle requirement from 6.5.2 to 7.3.0 in /build/integration"
2021-07-14 10:47:36 +02:00
Julius Härtl
54e249bb0f Revert "Update guzzlehttp/guzzle requirement from 6.5.2 to 7.3.0 in /build/integration" 2021-07-14 08:52:47 +02:00
szaimen
49d7a7b896 Merge pull request #27942 from nextcloud/backport/27867/stable22
[stable22] fix newfileMenu on public page
2021-07-13 14:54:18 +02:00
Julien Veyssier
ecab457ae0 refs #26113 do not escape display name in dashboard welcome text
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-13 12:07:54 +00:00
szaimen
65e9c67bbd fix newfileMenu on public page
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-13 11:56:33 +00:00
Christoph Wurst
f9e2799855 Merge pull request #27654 from nextcloud/dependabot/composer/build/integration/stable22/guzzlehttp/guzzle-7.3.0
Update guzzlehttp/guzzle requirement from 6.5.2 to 7.3.0 in /build/integration
2021-07-13 10:44:36 +02:00
Julius Härtl
b5d6189ca2 Merge pull request #27898 from nextcloud/backport/27887/stable22
[stable22] make user status usable on mobile
2021-07-13 08:55:57 +02:00
Julius Härtl
fb018b7435 Merge pull request #27889 from nextcloud/backport/27854/stable22 2021-07-13 08:51:21 +02:00
kesselb
25ad68e6f5 Merge pull request #27925 from nextcloud/backport/27922/stable22
[stable22] Check if dns_get_record returns non-false
2021-07-12 17:55:24 +02:00
Lukas Reschke
5dcc18af46 Check for !== false instead
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-07-12 14:46:43 +00:00
Lukas Reschke
525dfd2f4d Check if dns_get_record returns non-false
`dns_get_record` can return false which results in exceptions such as
the ones shown in https://github.com/nextcloud/server/issues/27870.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2021-07-12 14:46:42 +00:00
Lukas Reschke
32f0d85957 Merge pull request #27861 from nextcloud/backport/27835/stable22
[stable22] Cache images on browser
2021-07-12 11:45:02 +02:00
MichaIng
cd0343e6b9 Merge pull request #27825 from nextcloud/backport/27801/stable22
[stable22] Ignore subdomain for soa queries
2021-07-09 15:44:14 +02:00
szaimen
b01c3351f8 make user status usable on mobile
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-09 11:48:24 +00:00
Joas Schilling
2b122fbcf0 Fix accessibility theme for guests
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-07-09 09:03:09 +00:00
szaimen
0e90199f1d fix filepicker bug in dark mode
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-09 09:03:08 +00:00
Pytal
1826107f56 Merge pull request #27878 from nextcloud/backport/22/bug/27435/add-group-button
[stable22] Fix add group button
2021-07-08 13:54:29 -07:00
Daniel Kesselberg
9f65367112 Fix add group button
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-07-08 17:46:37 +02:00
John Molakvoæ
3dd1b95f90 Merge pull request #27856 from nextcloud/backport/27844/stable22
[stable22] Make search popup usable on mobile, too
2021-07-08 16:27:03 +02:00
acsfer
8c6ca5d835 Cache images on browser
Fix #26851
2021-07-07 17:12:04 +00:00
szaimen
c5d518c4c5 Make search popup usable on mobile, too
Signed-off-by: szaimen <szaimen@e.mail.de>
Signed-off-by: npmbuildbot-nextcloud[bot] <npmbuildbot-nextcloud[bot]@users.noreply.github.com>
2021-07-07 15:18:31 +00:00
kesselb
2054614358 Merge pull request #27848 from sanpii/fix-dns-pinning-max-recursion
Fixes recursion count incrementation
2021-07-07 13:54:34 +02:00
Sanpi
2ed3574ea0 Fixes recursion count incrementation
Signed-off-by: Sanpi <sanpi@homecomputing.fr>
2021-07-07 12:59:22 +02:00
Joas Schilling
a0d6002297 Merge pull request #27826 from nextcloud/backport/27818/stable22
[stable22] Fix in locking cache check
2021-07-07 12:24:31 +02:00
MichaIng
e5fe200076 Fix in locking cache check
The intention obviously was to check whether $lockingCacheClass is defined, and existing class, and available. It was however checked whether the $distributedCacheClass is an existing class, which would have caused an exception already in the previous distributed cache check.

Signed-off-by: MichaIng <micha@dietpi.com>
2021-07-06 17:02:52 +00:00
Daniel Kesselberg
a626792e15 Ignore subdomain for soa queries
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-07-06 16:58:15 +00:00
John Molakvoæ
c67e1420c8 Merge pull request #27813 from nextcloud/version/22/final
22.0.0
2021-07-05 22:20:57 +02:00
Lukas Reschke
3f212b8857 Merge pull request #27814 from nextcloud/backport/27758/stable22
[stable22] Fix DnsPinMiddleware resolve pinning bug
2021-07-05 18:38:55 +02:00
Aaron Ball
f8db7ce8f5 Fix DnsPinMiddleware resolve pinning bug
Libcurl expects the value of the CURLOPT_RESOLVE configurations to be an
array of strings, those strings containing a comma delimited list of
resolved IPs for each host:port combination.

The original code here does create that array with the host:port:ip
combination, but multiple ips for a single host:port result in
additional array entries, rather than adding them to the end of the
string with a comma. Per the libcurl docs, the `CURLOPT_RESOLVE` array
entries should match the syntax `host:port:address[,address]`.

This creates a function-scoped associative array which uses `host:port`
as the key (which are supposed to be unique and this ensures that), and
the value is an array containing IP strings (ipv4 or ipv6). Once the
associative array is populated, it is then set to the CURLOPT_RESOLVE
array, imploding the ip arrays using a comma delimiter so the array
syntax matches the expected by libcurl.

Note that this reorders the "foreach ip" and "foreach port" loops.
Rather than looping over ips then ports, we now loop over ports then
ips, since ports are part of the unique host:port map, and multiple ips
can exist therein.

Signed-off-by: Aaron Ball <nullspoon@oper.io>
2021-07-05 15:40:06 +00:00
John Molakvoæ
c73070c19d Merge pull request #27752 from nextcloud/backport/27586/stable22
[stable22] Reset checksum when writing files to object store
2021-07-05 17:27:07 +02:00
Lukas Reschke
fb8e681161 Merge pull request #27812 from nextcloud/backport/27810/stable22
[stable22] Add a text string to l10n
2021-07-05 17:21:20 +02:00
Arthur Schiwon
0ab8f2f15a 22.0.0
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-07-05 17:09:36 +02:00
Valdnet
f6f85478a0 Add a text string to l10n 2021-07-05 14:38:12 +00:00
Valdnet
5e93d571e0 Add a text string to l10n 2021-07-05 14:38:12 +00:00
Lukas Reschke
afb7126022 Merge pull request #27802 from nextcloud/backport/27198/stable22
[stable22] Run s3 tests again
2021-07-05 15:05:04 +02:00
Julius Härtl
6a4a5d888e Use minio for s3 tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-05 09:56:23 +00:00
Julius Härtl
cb57285870 Run s3 tests again
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-05 09:56:23 +00:00
John Molakvoæ
268e6af00e Merge pull request #27775 from nextcloud/backport/27750/stable22 2021-07-05 08:45:24 +02:00
Robin Appelman
cb0e76105e dont include folder being search in in the results
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-07-02 15:52:17 +00:00
blizzz
6c24e13d4b Merge pull request #27749 from nextcloud/backport/27737/stable22
[stable22] make contactsmenu icon bigger
2021-07-01 18:44:29 +02:00
Julius Härtl
226e0c4107 Reset checksum when writing files to object store
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2021-07-01 15:33:47 +00:00
szaimen
b5b58faec0 make contactsmenu icon bigger
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-01 13:26:26 +00:00
John Molakvoæ
863686c283 Merge pull request #27706 from nextcloud/version/22.0.0/rc2
22.0.0 RC2
2021-07-01 11:30:42 +02:00
John Molakvoæ
e2c96aebd1 Merge pull request #27743 from nextcloud/backport/27739/stable22 2021-07-01 11:30:25 +02:00
szaimen
b25e8e7030 design fixes to app-settings button
Signed-off-by: szaimen <szaimen@e.mail.de>
2021-07-01 08:46:48 +00:00
John Molakvoæ
858da2ed1d Merge pull request #27719 from nextcloud/backport/27474/stable22 2021-07-01 08:31:25 +02:00
blizzz
9882ae8986 Merge pull request #27736 from nextcloud/backport/27732/stable22
[stable22] Fix LDAPProviderFactory not found
2021-06-30 20:41:23 +02:00
Arthur Schiwon
87d8e8f6d3 unset ldap provider when disabling user_ldap
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 16:52:09 +00:00
Arthur Schiwon
1220e48301 ensure that factoryClass exisits before instantiation
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 16:52:09 +00:00
Vincent Petry
28a21048ac Merge pull request #27726 from nextcloud/backport/27638/stable22
[stable22] Downstream encryption:fix-encrypted-version for repairing "bad signature" errors
2021-06-30 16:56:26 +02:00
Vincent Petry
3ca664dda1 Prevent running FixEncryptedVersion without master key
Return an error when running occ encryption:fix-encrypted-version
when master key encryption is not enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:21:06 +00:00
Vincent Petry
48be209e92 Fix FixEncryptedVersionTest test
Fixed setup to use EncryptionTrait like other existing tests.
Fix expectations to not rely on side effects from previous test cases.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:21:06 +00:00
Vincent Petry
bf279980ac Fix warnings in FixEncryptedVersion command
Fixed code warnings

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:21:06 +00:00
Vincent Petry
5bde3d1836 Detect disabled signature check when reparing
When running occ encryption:fix-encrypted-version, detect whether the
setting 'encryption_skip_signature_check' is set and abort if it is,
because the repair cannot detect version mismatch errors with it
enabled.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:21:06 +00:00
Vincent Petry
6b83de79c6 Downstream FixEncryptedVersionTest
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:21:06 +00:00
Vincent Petry
727d2300b6 Downstream encryption:fix-encrypted-version
For fixing "Bad signature" errors.

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-30 12:21:06 +00:00
Arthur Schiwon
1f6f863d86 fix incredible off-by-one-typo-error
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 11:04:46 +02:00
Arthur Schiwon
1754c3d979 cleanup
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:50 +00:00
Arthur Schiwon
29b36c56f3 fix small issues in UsersController handling
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:50 +00:00
Arthur Schiwon
cc1d24a008 adjust access permissions of new controller method
- fixes wrong veriable usage also

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:50 +00:00
Arthur Schiwon
3550b12e3e fix regex
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:50 +00:00
Arthur Schiwon
4565f5d3b4 fix provisioning test check
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:50 +00:00
Arthur Schiwon
9d6c11f7da adjust internal data handling logic to fix store and load
- format as stored previously in oc_accounts table is kept

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:50 +00:00
Arthur Schiwon
87efcd06ca create a property on editUser when it was not set before
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
b30ce04e15 adjust email verification checker
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
bcedd4031d fix code style
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
63d2aad5d3 adjust verification state updater method
- also fixes scope of internal methods

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
19d2367340 make AccountManager actually write multi value properties
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
51cae9ba98 accounts event handler to use eventdispatcher, DI and Accounts API
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
148a62939f prov api to be able to edit multivalue properties
- adding as usual
- deleting and scope setting via additional endpoint

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
eb5e445af4 prov api reports multiple mail as editable field
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:49 +00:00
Arthur Schiwon
4398cf85c1 prov api reports additional emails on getUser
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-30 05:15:48 +00:00
Julius Härtl
e74f5aeec2 Merge pull request #27716 from nextcloud/backport/27715/stable22
[stable22] Revert "First attempt to check against core routes before loading all app routes"
2021-06-29 21:47:03 +02:00
Vincent Petry
98005fc331 Revert "First attempt to check against core routes before loading all app routes"
Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2021-06-29 18:52:21 +00:00
Julius Härtl
7e506bab4c Merge pull request #27682 from nextcloud/backport/27668/stable22
[stable22] Harden bootstrap context registrations when apps are missing
2021-06-29 18:05:29 +02:00
Julius Härtl
a614537edb Merge pull request #27678 from nextcloud/backport/27675/stable22
[stable22] Validate the theming color also on CLI
2021-06-29 15:16:54 +02:00
Arthur Schiwon
f6e544119a 22.0.0 RC2
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-29 12:55:30 +02:00
John Molakvoæ
8ee15f9984 Merge pull request #27702 from nextcloud/backport/27698/stable22
[stable22] LDAP: determine shares of offline users only when needed
2021-06-29 08:27:58 +02:00
Arthur Schiwon
b299369c15 LDAP: determine shares of offline users only when needed
- determine shares may via Sharing code result in user exists checks
- this may result in an infinite loop when user exists was called before
- the info is really only required at one occ command

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2021-06-28 17:15:51 +00:00
Joas Schilling
61a3132c76 Merge pull request #27649 from nextcloud/techdebt/noid/stable22-version-fixing
Fix branch selection in stable22
2021-06-28 14:42:25 +02:00
Christoph Wurst
3b5b2af215 Harden bootstrap context registrations when apps are missing
It's not expected that an app would be unavailable when the app
container is created but when services are registered, but Sentry tells
me on Nextcloud 21 there is an edge case where this can happen.
Therefore this patch hardens the code a bit to log a meaningful error
message and skipping the next code instead of logging a php notice for
the undefined index and an exception for calling a method on null.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-06-25 16:46:57 +00:00
Joas Schilling
dfc096737d Validate the theming color also on CLI
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-25 16:18:22 +00:00
Christoph Wurst
57a4ef9da8 Merge pull request #27669 from nextcloud/backport/27663/stable22
[stable22] Unshift crash reports when they are loaded, to break the recusion
2021-06-25 13:57:48 +02:00
Christoph Wurst
3d7e3185fc Unshift crash reports when they are loaded, to break the recusion
If, for whatever reason, during the loading of a crash reporter a new
log entry is generated, then the lazy loading mechanism will be invoked
*again* while it's already executed. This doesn't result in an endless
recursion, but means that the crash reporters will be built and
registered many times. This then means any further log entry will be
logged x times instead of once.

Unshift makes sure to take the class off the registration list right
away, so another invokation of the same method won't try to do the same
job.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-06-25 06:34:13 +00:00
dependabot[bot]
3d20ca684c Update guzzlehttp/guzzle requirement in /build/integration
Updates the requirements on [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) to permit the latest version.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/master/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/6.5.2...7.3.0)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-24 13:16:40 +00:00
Joas Schilling
99b7b82d72 Fix branch selection in stable22
Signed-off-by: Joas Schilling <coding@schilljs.com>
2021-06-24 13:12:52 +02:00
1468 changed files with 27390 additions and 13219 deletions

View File

@@ -1,5 +1,5 @@
codecov:
branch: master
branch: stable22
ci:
- drone.nextcloud.com
- !scrutinizer-ci.com

View File

@@ -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:

View File

@@ -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 }}

View File

@@ -39,7 +39,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>

View File

@@ -1,6 +1,6 @@
# Nextcloud Server ☁
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/master/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=stable22)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=stable22)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/stable22/graph/badge.svg)](https://codecov.io/gh/nextcloud/server)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209)
**A safe home for all your data.**

View File

@@ -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"
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
{
"packages": [],
"dev": false,
"dev-package-names": []
}

View File

@@ -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

View File

@@ -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, dont 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);");

View File

@@ -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, dont 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);"
}

View File

@@ -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, dont 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);");

View File

@@ -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, dont 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);"
}

View File

@@ -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.",

View File

@@ -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.",

View File

@@ -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, dont 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);");

View File

@@ -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, dont 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);"
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -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, dont 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);");

View File

@@ -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, dont 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);"
}

View File

@@ -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, dont 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, dont 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;");

View File

@@ -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, dont 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, dont 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;"
}

View File

@@ -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');
}
}
}

View File

@@ -60,6 +60,7 @@ class JSDataService extends InitialStateProvider {
}
return [
'checkMedia' => $user === null,
'theme' => $theme,
'highcontrast' => $highcontrast,
];

View File

@@ -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 {

18
apps/admin_audit/composer/composer.lock generated Normal file
View File

@@ -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"
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
{
"packages": [],
"dev": false,
"dev-package-names": []
}

View File

@@ -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,
),
),
);

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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',

View File

@@ -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"
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
{
"packages": [],
"dev": false,
"dev-package-names": []
}

View File

@@ -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,
),
),
);

View File

@@ -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);");

View File

@@ -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);"
}

View File

@@ -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);");

View File

@@ -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);"
}

18
apps/comments/composer/composer.lock generated Normal file
View File

@@ -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"
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
{
"packages": [],
"dev": false,
"dev-package-names": []
}

View File

@@ -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

View File

@@ -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=708)}({708: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

View File

@@ -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

View File

@@ -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" : "التعليق حُذف",

View File

@@ -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" : "التعليق حُذف",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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;");

View File

@@ -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;"
}

View File

@@ -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)
},
})

View File

@@ -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() {

View File

@@ -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"
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
{
"packages": [],
"dev": false,
"dev-package-names": []
}

View File

@@ -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,
),
),
);

View File

@@ -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);");

View File

@@ -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);"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -6,6 +6,7 @@ OC.L10N.register(
"Show something" : "Montre quelque chose",
"Customize" : "Personnaliser",
"Edit widgets" : "Modifier les widgets",
"Get more widgets from the App Store" : "Obtenez plus de widgets depuis l'App Store",
"Change background image" : "Modifier limage d'arrière-plan",
"Weather service" : "Service météo",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pour votre vie privée, les données météorologiques sont demandées par votre serveur Nextcloud en votre nom afin que le service météo ne reçoive aucune information personnelle.",

View File

@@ -4,6 +4,7 @@
"Show something" : "Montre quelque chose",
"Customize" : "Personnaliser",
"Edit widgets" : "Modifier les widgets",
"Get more widgets from the App Store" : "Obtenez plus de widgets depuis l'App Store",
"Change background image" : "Modifier limage d'arrière-plan",
"Weather service" : "Service météo",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pour votre vie privée, les données météorologiques sont demandées par votre serveur Nextcloud en votre nom afin que le service météo ne reçoive aucune information personnelle.",

View File

@@ -6,6 +6,7 @@ OC.L10N.register(
"Show something" : "Prikaži nešto",
"Customize" : "Uredi",
"Edit widgets" : "Uredi widgete",
"Get more widgets from the App Store" : "Nabavite više widgeta iz trgovine aplikacijama",
"Change background image" : "Promijenite sliku pozadinu",
"Weather service" : "Davatelj vremenske prognoze",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Radi zaštite vaše privatnosti, podatke o vremenskoj prognozi zahtijeva vaš Nextcloud poslužitelj u vaše ime kako davatelj vremenske prognoze ne bi primio vaše osobne podatke.",

View File

@@ -4,6 +4,7 @@
"Show something" : "Prikaži nešto",
"Customize" : "Uredi",
"Edit widgets" : "Uredi widgete",
"Get more widgets from the App Store" : "Nabavite više widgeta iz trgovine aplikacijama",
"Change background image" : "Promijenite sliku pozadinu",
"Weather service" : "Davatelj vremenske prognoze",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Radi zaštite vaše privatnosti, podatke o vremenskoj prognozi zahtijeva vaš Nextcloud poslužitelj u vaše ime kako davatelj vremenske prognoze ne bi primio vaše osobne podatke.",

35
apps/dashboard/l10n/id.js Normal file
View File

@@ -0,0 +1,35 @@
OC.L10N.register(
"dashboard",
{
"Dashboard" : "Dasbor",
"Dashboard app" : "Aplikasi dasbor",
"Show something" : "Tunjukkan sesuatu",
"Customize" : "Sesuaikan",
"Edit widgets" : "Edit widget",
"Get more widgets from the App Store" : "Dapatkan lebih banyak widget dari App Store",
"Change background image" : "Ubah gambar latar belakang",
"Weather service" : "Layanan cuaca",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Untuk privasi Anda, data cuaca diminta oleh server Nextcloud Anda atas nama Anda sehingga layanan cuaca tidak menerima informasi pribadi.",
"Weather data from Met.no" : "Data cuaca dari Met.no",
"geocoding with Nominatim" : "Secara khusus, dengan geocoding",
"elevation data from OpenTopoData" : "data ketinggian dari OpenTopoData",
"Weather" : "Cuaca",
"Status" : "Status",
"Good morning" : "Selamat pagi",
"Good morning, {name}" : "Selamat pagi, {name}",
"Good afternoon" : "Selamat siang",
"Good afternoon, {name}" : "Selamat siang, {name}",
"Good evening" : "Selamat malam",
"Good evening, {name}" : "Selamat malam, {name}",
"Hello" : "Halo",
"Hello, {name}" : "Halo, {name}",
"Pick from Files" : "Pilih dari File",
"Default images" : "Gambar bawaan",
"Plain background" : "Latar belakang polos",
"Insert from {productName}" : "Sisipkan dari {productName}",
"Get more widgets from the app store" : "Dapatkan lebih banyak widget dari app store",
"Good night, {name}" : "Selamat malam, {name}",
"Good night" : "Selamat malam",
"Pick from files" : "Pilih dari file"
},
"nplurals=1; plural=0;");

View File

@@ -0,0 +1,33 @@
{ "translations": {
"Dashboard" : "Dasbor",
"Dashboard app" : "Aplikasi dasbor",
"Show something" : "Tunjukkan sesuatu",
"Customize" : "Sesuaikan",
"Edit widgets" : "Edit widget",
"Get more widgets from the App Store" : "Dapatkan lebih banyak widget dari App Store",
"Change background image" : "Ubah gambar latar belakang",
"Weather service" : "Layanan cuaca",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Untuk privasi Anda, data cuaca diminta oleh server Nextcloud Anda atas nama Anda sehingga layanan cuaca tidak menerima informasi pribadi.",
"Weather data from Met.no" : "Data cuaca dari Met.no",
"geocoding with Nominatim" : "Secara khusus, dengan geocoding",
"elevation data from OpenTopoData" : "data ketinggian dari OpenTopoData",
"Weather" : "Cuaca",
"Status" : "Status",
"Good morning" : "Selamat pagi",
"Good morning, {name}" : "Selamat pagi, {name}",
"Good afternoon" : "Selamat siang",
"Good afternoon, {name}" : "Selamat siang, {name}",
"Good evening" : "Selamat malam",
"Good evening, {name}" : "Selamat malam, {name}",
"Hello" : "Halo",
"Hello, {name}" : "Halo, {name}",
"Pick from Files" : "Pilih dari File",
"Default images" : "Gambar bawaan",
"Plain background" : "Latar belakang polos",
"Insert from {productName}" : "Sisipkan dari {productName}",
"Get more widgets from the app store" : "Dapatkan lebih banyak widget dari app store",
"Good night, {name}" : "Selamat malam, {name}",
"Good night" : "Selamat malam",
"Pick from files" : "Pilih dari file"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@@ -6,6 +6,7 @@ OC.L10N.register(
"Show something" : "Прикажи нешто",
"Customize" : "Прилагоди",
"Edit widgets" : "Уреди графички контроли",
"Get more widgets from the 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." : "За ваша приватност, податоците за времето ги бара вашиот сервер во ваше име, така што метеоролошката служба не добива лични информации.",

View File

@@ -4,6 +4,7 @@
"Show something" : "Прикажи нешто",
"Customize" : "Прилагоди",
"Edit widgets" : "Уреди графички контроли",
"Get more widgets from the 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." : "За ваша приватност, податоците за времето ги бара вашиот сервер во ваше име, така што метеоролошката служба не добива лични информации.",

View File

@@ -6,6 +6,7 @@ OC.L10N.register(
"Show something" : "Arata ceva",
"Customize" : "Personalizeaza",
"Edit widgets" : "Editeaza widget",
"Get more widgets from the App Store" : "Obține mai multe widget-uri din App Store",
"Change background image" : "Schimba imaginea de fundal",
"Weather service" : "Serviciu de vreme",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pentru securitatea ta, datele despre vreme sunt cerute de catre serverul Nextcloud din partea ta pentru ca serviciul de vreme sa nu primeasca date confidentiale.",

View File

@@ -4,6 +4,7 @@
"Show something" : "Arata ceva",
"Customize" : "Personalizeaza",
"Edit widgets" : "Editeaza widget",
"Get more widgets from the App Store" : "Obține mai multe widget-uri din App Store",
"Change background image" : "Schimba imaginea de fundal",
"Weather service" : "Serviciu de vreme",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pentru securitatea ta, datele despre vreme sunt cerute de catre serverul Nextcloud din partea ta pentru ca serviciul de vreme sa nu primeasca date confidentiale.",

View File

@@ -6,6 +6,7 @@ OC.L10N.register(
"Show something" : "Mustra calicuna cosa",
"Customize" : "Personaliza",
"Edit widgets" : "Modìfica ordìngios",
"Get more widgets from the App Store" : "Otene àteros trastos dae sa butega de is aplicatziones",
"Change background image" : "Càmbia immàgine de isfundu",
"Weather service" : "Servìtziu de su tempus",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pro sa riservadesa tua, su serbidore Nextcloud rechedet is datos de su tempus pro tene, duncas su servìtziu de su tempus no retzit informatziones personales.",
@@ -16,13 +17,17 @@ OC.L10N.register(
"Status" : "Istadu",
"Good morning" : "Bona die",
"Good morning, {name}" : "Bona die, {name}",
"Good afternoon" : "Salude",
"Good afternoon, {name}" : "Salude, {name}",
"Good evening" : "Salude",
"Good evening, {name}" : "Salude, {name}",
"Hello" : "Salude",
"Hello, {name}" : "Salude, {name}",
"Pick from Files" : "Sèbera dae archìvios",
"Default images" : "Immàgines predefinidas",
"Default images" : "Imàgines predefinidas",
"Plain background" : "Isfundu simpre",
"Insert from {productName}" : "Inserta dae {productName}",
"Get more widgets from the app store" : "Otene àteros ordìngios dae sa butega de is aplicatziones",
"Get more widgets from the app store" : "Otene àteros trastos dae sa butega de is aplicatziones",
"Good night, {name}" : "Bonu note, {name}",
"Good night" : "Bonu note",
"Pick from files" : "Sèbera dae archìvios"

View File

@@ -4,6 +4,7 @@
"Show something" : "Mustra calicuna cosa",
"Customize" : "Personaliza",
"Edit widgets" : "Modìfica ordìngios",
"Get more widgets from the App Store" : "Otene àteros trastos dae sa butega de is aplicatziones",
"Change background image" : "Càmbia immàgine de isfundu",
"Weather service" : "Servìtziu de su tempus",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pro sa riservadesa tua, su serbidore Nextcloud rechedet is datos de su tempus pro tene, duncas su servìtziu de su tempus no retzit informatziones personales.",
@@ -14,13 +15,17 @@
"Status" : "Istadu",
"Good morning" : "Bona die",
"Good morning, {name}" : "Bona die, {name}",
"Good afternoon" : "Salude",
"Good afternoon, {name}" : "Salude, {name}",
"Good evening" : "Salude",
"Good evening, {name}" : "Salude, {name}",
"Hello" : "Salude",
"Hello, {name}" : "Salude, {name}",
"Pick from Files" : "Sèbera dae archìvios",
"Default images" : "Immàgines predefinidas",
"Default images" : "Imàgines predefinidas",
"Plain background" : "Isfundu simpre",
"Insert from {productName}" : "Inserta dae {productName}",
"Get more widgets from the app store" : "Otene àteros ordìngios dae sa butega de is aplicatziones",
"Get more widgets from the app store" : "Otene àteros trastos dae sa butega de is aplicatziones",
"Good night, {name}" : "Bonu note, {name}",
"Good night" : "Bonu note",
"Pick from files" : "Sèbera dae archìvios"

View File

@@ -2,18 +2,32 @@ OC.L10N.register(
"dashboard",
{
"Dashboard" : "Informačný panel",
"Dashboard app" : "Applikácia Informačný panel",
"Show something" : "Ukáž niečo",
"Customize" : "Prispôsobiť",
"Edit widgets" : "Upraviť miniaplikácie",
"Get more widgets from the App Store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
"Change background image" : "Zmeniť obrázok pozadia",
"Weather service" : "Služba počasie",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "V záujme vášho súkromia údaje o počasí vyžaduje váš server Nextcloud vo vašom mene, aby meteorologická služba nedostávala žiadne osobné informácie.",
"Weather data from Met.no" : "Dáta počasia z Met.no",
"geocoding with Nominatim" : "geokódovanie pomocou Nominatim",
"elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData",
"Weather" : "Počasie",
"Status" : "Stav",
"Good morning" : "Dobré ráno",
"Good morning, {name}" : "Dobré ráno, {name}",
"Good afternoon" : "Dobrý večer",
"Good afternoon, {name}" : "Dobrý večer, {name}",
"Good evening" : "Dobrý večer",
"Good evening, {name}" : "Dobrý večer, {name}",
"Hello" : "Ahoj",
"Hello, {name}" : "Ahoj, {name}",
"Pick from Files" : "Vybrať zo súborov",
"Default images" : "Predvolené obrázky",
"Plain background" : "Obyčajné pozadie",
"Insert from {productName}" : "Vložiť z {productName}",
"Get more widgets from the app store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
"Good night, {name}" : "Dobrý večer, {name}",
"Good night" : "Dobrý večer",
"Pick from files" : "Vybrať zo súborov"

View File

@@ -1,17 +1,31 @@
{ "translations": {
"Dashboard" : "Informačný panel",
"Dashboard app" : "Applikácia Informačný panel",
"Show something" : "Ukáž niečo",
"Customize" : "Prispôsobiť",
"Edit widgets" : "Upraviť miniaplikácie",
"Get more widgets from the App Store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
"Change background image" : "Zmeniť obrázok pozadia",
"Weather service" : "Služba počasie",
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "V záujme vášho súkromia údaje o počasí vyžaduje váš server Nextcloud vo vašom mene, aby meteorologická služba nedostávala žiadne osobné informácie.",
"Weather data from Met.no" : "Dáta počasia z Met.no",
"geocoding with Nominatim" : "geokódovanie pomocou Nominatim",
"elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData",
"Weather" : "Počasie",
"Status" : "Stav",
"Good morning" : "Dobré ráno",
"Good morning, {name}" : "Dobré ráno, {name}",
"Good afternoon" : "Dobrý večer",
"Good afternoon, {name}" : "Dobrý večer, {name}",
"Good evening" : "Dobrý večer",
"Good evening, {name}" : "Dobrý večer, {name}",
"Hello" : "Ahoj",
"Hello, {name}" : "Ahoj, {name}",
"Pick from Files" : "Vybrať zo súborov",
"Default images" : "Predvolené obrázky",
"Plain background" : "Obyčajné pozadie",
"Insert from {productName}" : "Vložiť z {productName}",
"Get more widgets from the app store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
"Good night, {name}" : "Dobrý večer, {name}",
"Good night" : "Dobrý večer",
"Pick from files" : "Vybrať zo súborov"

View File

@@ -5,25 +5,29 @@ OC.L10N.register(
"Dashboard app" : "แอปแดชบอร์ด",
"Show something" : "แสดงบางอย่าง",
"Customize" : "ปรับแต่ง",
"Edit widgets" : "แก้ไข วิดเจ็ต",
"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 เซิร์ฟเวอร์ ของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับ หรือจัดเก็บ ข้อมูลส่วนบุคคล",
"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 ในนามของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับข้อมูลส่วนบุคคลใด ๆ",
"Weather data from Met.no" : "ข้อมูลสภาพอากาศจาก Met.no",
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์ จาก Nominatim",
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์จาก Nominatim",
"elevation data from OpenTopoData" : "ข้อมูลความสูงจาก OpenTopoData",
"Weather" : "สภาพอากาศ",
"Status" : "สถานะ",
"Good morning" : "อรุณสวัสดิ์",
"Good morning, {name}" : "อรุณสวัสดิ์ {name}",
"Good afternoon" : "ทิวาสวัสดิ์",
"Good afternoon, {name}" : "ทิวาสวัสดิ์ {name}",
"Good evening" : "สายัณห์สวัสดิ์",
"Good evening, {name}" : "สายัณห์สวัสดิ์ {name}",
"Good morning" : "สวัสดีตอนเช้า",
"Good morning, {name}" : "สวัสดีตอนเช้า {name}",
"Good afternoon" : "สวัสดีตอนบ่าย",
"Good afternoon, {name}" : "สวัสดีตอนบ่าย {name}",
"Good evening" : "สวัสดีตอนเย็น",
"Good evening, {name}" : "สวัสดีตอนเย็น {name}",
"Hello" : "สวัสดี",
"Hello, {name}" : "สวัสดี {name}",
"Pick from Files" : "เลือกจากไฟล์",
"Default images" : "รูปภาพเริ่มต้น",
"Plain background" : "พื้นหลังธรรมดา",
"Plain background" : "พื้นหลังเปล่า",
"Insert from {productName}" : "แทรกจาก {productName}",
"Get more widgets from the app store" : "เพิ่ม วิดเจ็ต จาก แอปสโตร์",
"Get more widgets from the app store" : "เพิ่มวิดเจ็ตจาก App Store",
"Good night, {name}" : "ราตรีสวัสดิ์ {name}",
"Good night" : "ราตรีสวัสดิ์",
"Pick from files" : "เลือกจากไฟล์"

View File

@@ -3,25 +3,29 @@
"Dashboard app" : "แอปแดชบอร์ด",
"Show something" : "แสดงบางอย่าง",
"Customize" : "ปรับแต่ง",
"Edit widgets" : "แก้ไข วิดเจ็ต",
"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 เซิร์ฟเวอร์ ของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับ หรือจัดเก็บ ข้อมูลส่วนบุคคล",
"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 ในนามของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับข้อมูลส่วนบุคคลใด ๆ",
"Weather data from Met.no" : "ข้อมูลสภาพอากาศจาก Met.no",
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์ จาก Nominatim",
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์จาก Nominatim",
"elevation data from OpenTopoData" : "ข้อมูลความสูงจาก OpenTopoData",
"Weather" : "สภาพอากาศ",
"Status" : "สถานะ",
"Good morning" : "อรุณสวัสดิ์",
"Good morning, {name}" : "อรุณสวัสดิ์ {name}",
"Good afternoon" : "ทิวาสวัสดิ์",
"Good afternoon, {name}" : "ทิวาสวัสดิ์ {name}",
"Good evening" : "สายัณห์สวัสดิ์",
"Good evening, {name}" : "สายัณห์สวัสดิ์ {name}",
"Good morning" : "สวัสดีตอนเช้า",
"Good morning, {name}" : "สวัสดีตอนเช้า {name}",
"Good afternoon" : "สวัสดีตอนบ่าย",
"Good afternoon, {name}" : "สวัสดีตอนบ่าย {name}",
"Good evening" : "สวัสดีตอนเย็น",
"Good evening, {name}" : "สวัสดีตอนเย็น {name}",
"Hello" : "สวัสดี",
"Hello, {name}" : "สวัสดี {name}",
"Pick from Files" : "เลือกจากไฟล์",
"Default images" : "รูปภาพเริ่มต้น",
"Plain background" : "พื้นหลังธรรมดา",
"Plain background" : "พื้นหลังเปล่า",
"Insert from {productName}" : "แทรกจาก {productName}",
"Get more widgets from the app store" : "เพิ่ม วิดเจ็ต จาก แอปสโตร์",
"Get more widgets from the app store" : "เพิ่มวิดเจ็ตจาก App Store",
"Good night, {name}" : "ราตรีสวัสดิ์ {name}",
"Good night" : "ราตรีสวัสดิ์",
"Pick from files" : "เลือกจากไฟล์"

View File

@@ -10,7 +10,7 @@ OC.L10N.register(
"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 會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。",
"Weather data from Met.no" : "氣象資訊來自 Metno",
"Weather data from Met.no" : "氣象資訊來自 Met.no",
"geocoding with Nominatim" : "使用 Nominatim 來進行地理編碼",
"elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料",
"Weather" : "天氣",

View File

@@ -8,7 +8,7 @@
"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 會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。",
"Weather data from Met.no" : "氣象資訊來自 Metno",
"Weather data from Met.no" : "氣象資訊來自 Met.no",
"geocoding with Nominatim" : "使用 Nominatim 來進行地理編碼",
"elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料",
"Weather" : "天氣",

View File

@@ -180,20 +180,20 @@ export default {
const good = {
morning: {
generic: t('dashboard', 'Good morning'),
withName: t('dashboard', 'Good morning, {name}', { name: this.displayName }),
withName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),
},
afternoon: {
generic: t('dashboard', 'Good afternoon'),
withName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }),
withName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),
},
evening: {
generic: t('dashboard', 'Good evening'),
withName: t('dashboard', 'Good evening, {name}', { name: this.displayName }),
withName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),
},
night: {
// Don't use "Good night" as it's not a greeting
generic: t('dashboard', 'Hello'),
withName: t('dashboard', 'Hello, {name}', { name: this.displayName }),
withName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),
},
}

18
apps/dav/composer/composer.lock generated Normal file
View File

@@ -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"
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,5 @@
{
"packages": [],
"dev": false,
"dev-package-names": []
}

View File

@@ -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,
),
),
);

Some files were not shown because too many files have changed in this diff Show More