Compare commits

..

213 Commits

Author SHA1 Message Date
Thomas Citharel d46271b65f feat(contactsinteraction): allow users to disable contacts interaction addressbook
This allows simple users to opt-out of the contacts interaction
addressbook even if admins have the app installed.

Similar to how the birthday calendar works, the functionnality can be
toggled in the user's settings or by doing a DELETE on the addressbook.

A new contacts personal section has been added to contain this new
setting.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-08-27 10:54:18 +02:00
Joas Schilling ead3f66379 Merge pull request #47510 from nextcloud/fix/db/slow-transactions-higher-log-level
fix(db): Increase log level for very slow transactions
2024-08-27 10:30:52 +02:00
Christoph Wurst bdcfe5b8a9 fix(db): Increase log level for very slow transactions
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-08-27 10:12:14 +02:00
Joas Schilling b8ab7b7e55 Merge pull request #47448 from nextcloud/fix/47187/user-status-absence
fix(user_status): add link to Availability page if user set predefined 'Vacationing'
2024-08-27 07:37:52 +02:00
Nextcloud bot f35e33f2d8 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-27 00:20:54 +00:00
Ferdinand Thiessen 21b997f845 Merge pull request #47490 from nextcloud/chore/adjust-translations
chore(files): Adjust wording for file type filter
2024-08-26 21:40:27 +02:00
Ferdinand Thiessen 2665151105 Merge pull request #47465 from nextcloud/fix/files-drop-notice
fix(files): Reset drop notice on firefox
2024-08-26 21:00:05 +02:00
nextcloud-command 290610b630 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-26 20:44:06 +02:00
Ferdinand Thiessen 3ffdf56c8f chore(files): Adjust wording for file type filter
* Resolves: https://github.com/nextcloud/server/issues/47440

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 20:42:41 +02:00
nextcloud-command 744b41b216 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-26 20:41:36 +02:00
Ferdinand Thiessen f7b7474cd3 fix(files): Reset drop notice on firefox
On firefox there is an old bug where when you move a dragged file outside
the window the `dragleave` event is never emitted.
So we just use a timeout to reset the drag over state.

Also a small change: Use the ID of the main container instead of relying on tag name and class.
(The ID is guranteed as other APIs rely on it, while the class is just used internally).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 20:31:31 +02:00
Ferdinand Thiessen 4fcf4dba02 Merge pull request #47466 from nextcloud/chore/migrate-vitest
test: Migrate from Jest to vitest
2024-08-26 20:30:26 +02:00
Ferdinand Thiessen 6d31abdfd5 Merge pull request #47467 from nextcloud/fix/virtual-files-list
fix(files): Adjust margin at the file list bottom
2024-08-26 17:44:06 +02:00
Ferdinand Thiessen 30d090fb78 chore: Update source maps due to dependency changes
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 17:29:42 +02:00
Ferdinand Thiessen e0b81410f4 chore: Add vitest.config.ts as expected and remove Jest config
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 17:27:22 +02:00
Ferdinand Thiessen a5e58dc45e test: Migrated all Jest tests to vitest
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 17:27:22 +02:00
Ferdinand Thiessen c0b39bb909 chore: Move from Jest to vitest
There are some benefits, like faster tests and thus saving CI time, but the main reason for me is:

Jest still does not properly support ESM packages, this casues a lot of breaking stuff.
Sometimes you need to adjust imports for mocking, and somethimes other random stuff break.
Instead of wasting valuable developer lifetime we can use vitest which works perfectly with ESM.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 17:27:22 +02:00
Ferdinand Thiessen e840ec23f1 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 16:33:21 +02:00
Ferdinand Thiessen b1eecde452 fix(files): Remove huge margin on bottom
Instead make it relative to screen size.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-26 16:31:25 +02:00
Joas Schilling c6ec82203e Merge pull request #47480 from nextcloud/fix/41639/flow-check-user-agent
fix(flow): cannot set custom user agent
2024-08-26 14:09:25 +02:00
nextcloud-command cc72f738ed chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-26 11:53:28 +00:00
Julius Härtl 6d2253e692 Merge pull request #46013 from nextcloud/obj-store-move-from-storage-preserve-fileid
fix: write object to the correct urn when moving from another storage to object store
2024-08-26 13:47:27 +02:00
Maksim Sukharev f23875dcb1 fix(user_status): add link to Availability page if user set predefined 'Vacationing'
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2024-08-26 13:41:56 +02:00
Arthur Schiwon 2b270f54ee build: js assets
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-26 13:31:57 +02:00
Arthur Schiwon 0eeb459cc3 fix(flow): cannot set customer user agent
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-26 13:25:33 +02:00
Andy Scherzinger e2b1de8bc1 Merge pull request #47470 from nextcloud/automated/noid/master-fix-npm-audit
[master] Fix npm audit
2024-08-26 09:50:52 +02:00
Joas Schilling 36f272d03b Merge pull request #47435 from phreaker0/fix-mail-template-class-call
fix(mailer): Call to custom mail_template_class
2024-08-26 08:58:00 +02:00
Kate c42412f3d2 Merge pull request #47474 from nextcloud/fix/cs-fixer/ignore-git-ignored-entries 2024-08-26 07:40:16 +02:00
Nextcloud bot 23bbb31445 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-26 00:20:22 +00:00
Daniel cead56ac6a Merge pull request #47464 from nextcloud/dependabot/composer/vendor-bin/cs-fixer/nextcloud/coding-standard-1.2.3
bump nextcloud/coding-standard from 1.2.1 to 1.2.3 in /vendor-bin/cs-fixer
2024-08-25 21:09:41 +02:00
Daniel Kesselberg 47168ad5bd chore: ignore coding-standard update 1.2.3 in git blame
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 20:43:43 +02:00
Daniel Kesselberg e88693a473 style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 20:43:43 +02:00
dependabot[bot] 9067932f3b build(deps-dev): Bump nextcloud/coding-standard from 1.2.1 to 1.2.3
Bumps [nextcloud/coding-standard](https://github.com/nextcloud/coding-standard) from 1.2.1 to 1.2.3.
- [Release notes](https://github.com/nextcloud/coding-standard/releases)
- [Changelog](https://github.com/nextcloud/coding-standard/blob/master/CHANGELOG.md)
- [Commits](nextcloud/coding-standard@v1.2.1...v1.2.3)

---
updated-dependencies:
- dependency-name: nextcloud/coding-standard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-25 20:43:04 +02:00
provokateurin ffc8a86d7d fix(cs-fixer): Correctly ignore files ignored by git
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-08-25 20:40:47 +02:00
Daniel 5d632154c2 Merge pull request #47449 from nextcloud/debt/noid/update-codestyle
Update to coding-standard 1.2.3
2024-08-25 19:56:37 +02:00
Daniel Kesselberg dd165cf53a chore: add .git-blame-ignore-revs as expected file
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:35:40 +02:00
Daniel Kesselberg 8622edb4b3 chore: ignore coding-standard update 1.2.3 in git blame
https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:35:40 +02:00
Daniel Kesselberg af6de04e9e style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
nextcloud-command 82183693e9 fix(deps): Fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-08-25 02:49:40 +00:00
Nextcloud bot 1cc6b3577f Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-25 00:24:21 +00:00
Ferdinand Thiessen c18cd4df66 Merge pull request #47460 from nextcloud/dependabot/npm_and_yarn/vueuse/integrations-11.0.1
chore(deps): bump @vueuse/integrations from 11.0.0 to 11.0.1
2024-08-24 12:25:55 +02:00
dependabot[bot] 6c4b56b0f3 chore(deps): bump @vueuse/integrations from 11.0.0 to 11.0.1
Bumps [@vueuse/integrations](https://github.com/vueuse/vueuse/tree/HEAD/packages/integrations) from 11.0.0 to 11.0.1.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v11.0.1/packages/integrations)

---
updated-dependencies:
- dependency-name: "@vueuse/integrations"
  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>
2024-08-24 10:01:53 +00:00
dependabot[bot] 3656a24e21 Merge pull request #47463 from nextcloud/dependabot/npm_and_yarn/vueuse/core-11.0.1 2024-08-24 09:46:42 +00:00
dependabot[bot] 31319be951 chore(deps): bump @vueuse/core from 11.0.0 to 11.0.1
Bumps [@vueuse/core](https://github.com/vueuse/vueuse/tree/HEAD/packages/core) from 11.0.0 to 11.0.1.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v11.0.1/packages/core)

---
updated-dependencies:
- dependency-name: "@vueuse/core"
  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>
2024-08-24 09:33:09 +00:00
Nextcloud bot e97421f12a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-24 00:20:27 +00:00
Sebastian Krupinski e5e795c935 Merge pull request #47452 from nextcloud/fix/issue-47447-mail-provider-documentation
fix: correct documentation for mail provider
2024-08-23 12:34:19 -04:00
SebastianKrupinski b260dd0a9d fix: correct documentation for mail provider
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-08-23 12:09:44 -04:00
Robin Appelman 4a3ade5d43 Merge pull request #46021 from nextcloud/middleware-delay-admin
perf: delay getting (sub)admin status for user in the security middleware untill we need it
2024-08-23 17:38:01 +02:00
Robin Appelman 3e7695235c Merge pull request #45457 from nextcloud/qb-escape-like
expose escapeLikeParameter trough query builder
2024-08-23 17:08:58 +02:00
Robin Appelman 44aa4836aa Merge pull request #45880 from nextcloud/memcache-redis-command
feat: add command to send raw commands to redis
2024-08-23 16:53:22 +02:00
SebastianKrupinski 7363c4a403 fix: correct documentation for mail provider
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-08-23 10:26:40 -04:00
Robin Appelman 8b60df1600 perf: delay getting (sub)admin status for user in the security middleware untill we need it
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-23 15:26:40 +02:00
Robin Appelman bd740ac0b0 fix: write object to the correct urn when moving from another storage to object store
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-23 15:22:16 +02:00
Robin Appelman 2f9f9e83e8 feat: add command to send raw commands to redis
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-23 15:14:15 +02:00
Robin Appelman 658d2f7ea1 feat: expose escapeLikeParameter trough query builder
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-23 15:12:10 +02:00
Nextcloud bot 0cab17bfe7 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-23 00:20:06 +00:00
Pytal 3d1785bb2f Merge pull request #47204 from nextcloud/fix/tree-hidden-files
fix(files): Respect "Show hidden files" setting in tree
2024-08-22 16:41:04 -07:00
nextcloud-command 5b412b505b chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-22 23:17:06 +00:00
Christopher Ng fc1edaf4c1 refactor(files): Consolidate node registration
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-22 16:09:10 -07:00
Christopher Ng 3b185b1156 refactor(files): Organize event subscriptions
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-22 16:09:10 -07:00
Christopher Ng 4062883459 fix(files): Respect "Show hidden files" setting in tree
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-22 16:09:10 -07:00
Ferdinand Thiessen 920a74118c Merge pull request #47403 from nextcloud/feat/password-context
feat(Security): Allow defining a password context for password validation and generation
2024-08-23 00:01:39 +02:00
Daniel d78bfb7181 Merge pull request #47419 from nextcloud/bugfix/noid/add-missing-attribute
fix(migration): Add missing migration attributes
2024-08-22 21:34:35 +02:00
Andy Scherzinger 6c934b831e Merge pull request #47407 from nextcloud/fix/version-name-dialog
fix(files_versions): Migrate version name dialog from NcModal to NcDialog
2024-08-22 21:27:05 +02:00
Joas Schilling 4b6490eaa6 fix(migration): Add missing migration attributes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-22 20:58:50 +02:00
Christoph Klaffl d7da93489b Merge branch 'master' into fix-mail-template-class-call 2024-08-22 19:42:51 +02:00
Christoph Klaffl ae787c5ef2 fix call to custom mail_template_class
Signed-off-by: Christoph Klaffl <christoph@phreaker.eu>
2024-08-22 19:39:23 +02:00
nextcloud-command e2c299f28c chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-22 17:38:36 +00:00
Ferdinand Thiessen dd58e5290f feat: Use new password context in sharing API
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-22 19:16:55 +02:00
Ferdinand Thiessen 127cacdd19 feat(Security): Allow setting password context for validation and generation
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-22 19:16:50 +02:00
Ferdinand Thiessen 351dd6dd8a fix(files_versions): Migrate version name dialog from NcModal to NcDialog
* Resolves https://github.com/nextcloud/viewer/issues/2390

Make the version name dialog a real dialog instead of a modal.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-22 19:16:24 +02:00
Andy Scherzinger f4f0316a55 Merge pull request #47408 from nextcloud/fix/dashboard-widgets
fix(dashboard): Adjust widget border radius
2024-08-22 18:59:35 +02:00
nextcloud-command 5940c96414 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-22 18:07:33 +02:00
Ferdinand Thiessen a6556e9b46 fix(dashboard): Adjust widget border radius
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-22 18:07:33 +02:00
Anna 1b39abb501 Merge pull request #47415 from nextcloud/Fix/trusted-server-icon-recovery-without-addressbook-change
fix: Trusted server icon recovery without addressbook change
2024-08-22 17:01:28 +02:00
Pablo Zimdahl 3c3667fe18 fix(federation): always set server status to OK after successful runs
Previously if a server status got set to failure, it stayed that way
until an addressbook-sync found changes. Now the server status is set to
OK after each successful sync check (if that's not the case already),
regardless of addressbook changes.

This change also includes two new logging statements, which could help
next time someone debugs this.

Signed-off-by: Pablo Zimdahl <pablo@nextcloud.com>
2024-08-22 16:02:21 +02:00
John Molakvoæ 4eebf471e5 Merge pull request #47379 from nextcloud/fix/cypress-stop-cache 2024-08-22 14:32:31 +02:00
skjnldsv 5e2e2ba7ad fix(cypress): drop unwanted docker output characters
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-22 13:32:59 +02:00
skjnldsv d3a0e8308b chore(cypress): enable apcu
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-22 13:32:59 +02:00
skjnldsv c0781f524f chore(cypress): skip cypress binary install on init step
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-22 13:32:59 +02:00
skjnldsv 5a7e21187b chore(cypress): put nextcloud into ram
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-22 13:32:59 +02:00
skjnldsv b6bc28833c chore(cypress): allow db snapshot and restore fo faster tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-22 13:32:59 +02:00
skjnldsv 49fa2e508d fix(cypress): do not install deps twice
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-08-22 13:32:59 +02:00
Anna 639caf6150 Merge pull request #47413 from nextcloud/fix/limit-property-values
fix(caldav): limit property length
2024-08-22 13:17:21 +02:00
Anna Larch 3ff7d64fda fix(caldav): limit property length
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-08-22 12:15:51 +02:00
Joas Schilling 0df3a46db2 Merge pull request #47409 from nextcloud/followup/46991/allow-setting-new-configs
fix(provisioning): Support setting new app configs as well
2024-08-22 08:39:14 +02:00
Joas Schilling 9641433001 fix(provisioning): Support setting new app configs as well
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-22 08:02:15 +02:00
Nextcloud bot b33260a22c Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-22 00:20:22 +00:00
John Molakvoæ 003bf4b8ee Merge pull request #47363 from nextcloud/fix/template-picker-press-enter
fix: use empty template by default when pressing enter
2024-08-21 22:01:51 +02:00
Elizabeth Danzberger 82c6b92d41 chore: build assets
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2024-08-21 15:02:14 -04:00
nextcloud-command 5ead5fc6c5 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-21 15:00:33 -04:00
Elizabeth Danzberger e53684e1d9 fix: use empty template by default when pressing enter
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2024-08-21 15:00:26 -04:00
Ferdinand Thiessen b36ced878f Merge pull request #47397 from nextcloud/chore/update-vue
Update `@nextcloud/vue` to v8.17.0
2024-08-21 19:56:05 +02:00
Ferdinand Thiessen a01797d2f2 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-21 17:19:12 +00:00
Ferdinand Thiessen b87c1ebfcc chore: Update @nextcloud/vue to v8.17.0
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 17:55:07 +02:00
Robin Appelman c3ad469750 Merge pull request #47259 from nextcloud/memcache-ncad
feat: add negative compare-and-delete to imemcache
2024-08-21 17:19:04 +02:00
Joas Schilling 6214e3ad76 Merge pull request #47388 from nextcloud/bugfix/noid/green-ci
ci: Skip flaky test on PHP 8.3
2024-08-21 15:53:27 +02:00
Arthur Schiwon ebe2429c0a Merge pull request #46991 from nextcloud/fix/45083/config-from-js
fix(ProvisioningAPI): set typed config values by via API
2024-08-21 14:58:24 +02:00
Ferdinand Thiessen 974cda636f Merge pull request #47370 from nextcloud/fix/loading-icon
fix(files): Move loading icon before grid toggle
2024-08-21 14:37:47 +02:00
Ferdinand Thiessen 1992a6d72b Merge pull request #47371 from nextcloud/fix/disable-auto-zoom-ios
fix: Disable auto-zoom on iOS
2024-08-21 14:32:16 +02:00
Andy Scherzinger 7290d9d7ca Merge pull request #47352 from nextcloud/fix/context-write-wording
fix(TaskProcessing/ContextWrite): Fix wording "ContextWrite" -> "Context write"
2024-08-21 13:25:09 +02:00
Andy Scherzinger f309ba9dc9 Merge pull request #47381 from nextcloud/chore/deps/openapi-extractor
chore(deps): Update openapi-extractor to v1.0.0
2024-08-21 13:20:10 +02:00
Joas Schilling e1caa198e3 ci: Skip flaky test on PHP 8.3
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-21 13:13:12 +02:00
Ferdinand Thiessen d5140fe034 Merge pull request #47372 from nextcloud/fix/filename-validator
fix: `FilenameValidator::isForbidden` should only check forbidden files
2024-08-21 13:07:33 +02:00
Ferdinand Thiessen c82b17d0a3 fix: Support Safari mobile
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 13:01:23 +02:00
Ferdinand Thiessen ec00367f30 fix: Disable auto-zoom on iOS
When using iOS and focussing an input element the view should not be zoomed.
So if we set a maximum scale iOS will not auto-zoom but still allow users to zoom.
But we can not do this by default as this will disable user zoom on Chrome.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 13:01:18 +02:00
Ferdinand Thiessen 2d0f65851e chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 12:50:59 +02:00
Ferdinand Thiessen 1331ce7e7c fix(files): Move loading icon before grid toggle
This prevents jumping of that toggle button when the view is loading.
Also adjust the design for Nextcloud 30 (prevent jumping of breadcrumbs when loading due to increased height).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 12:47:21 +02:00
Joas Schilling c07cf51beb Merge pull request #47380 from nextcloud/bugfix/noid/make-logo-dimension-more-save
fix(theming): Make getImage() call save against missing non-SVG version
2024-08-21 12:01:44 +02:00
Joas Schilling 7fe62b9364 Merge pull request #47331 from nextcloud/skalidindi53/12351/Add-blurhash-to-richobjectstrings
fix: adding blurhash to definitions
2024-08-21 11:59:16 +02:00
provokateurin ff10f9f60f chore(deps): Update openapi-extractor to v1.0.0
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-08-21 11:07:50 +02:00
Joas Schilling dbbe2bbcb7 fix(theming): Make getImage() call save against missing non-SVG version
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-21 10:30:25 +02:00
Andy Scherzinger cf56874cb1 Merge pull request #47365 from nextcloud/fix/share-sorting
fix(files_sharing): Sort by correct share attribute ("share with displayname")
2024-08-21 09:53:37 +02:00
Marcel Klehr c9ef3f72bc fix(TaskProcessing/ContextWrite): Fix wording "ContextWrite" -> "Context write"
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-08-21 08:59:46 +02:00
Ferdinand Thiessen 91573781df docs: Add information how forbidden filenames are handled on existing files.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 04:22:13 +02:00
Ferdinand Thiessen b9cc7bcec7 fix: FilenameValidator::isForbidden should only check forbidden files
And not forbidden basenames as this is used for different purposes.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 04:16:14 +02:00
nextcloud-command d6cfcd7825 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-21 00:38:53 +00:00
Ferdinand Thiessen dc153f2ada fix(files_sharing): Sort by correct share attribute ("share with displayname")
There is no `title` attribute, so this causes an exception.
Instead sort by the "share with" displayname which will be the user or group the node is shared to.
Meaning this will also be the title of the share in the UI.
If this is not available or there are multiple for the same, then sort by the custom label.
If also this is not set sort by the creation time.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-21 02:32:02 +02:00
Nextcloud bot 1907eeea35 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-21 00:20:18 +00:00
Andy Scherzinger 748e267b44 Merge pull request #47358 from nextcloud/chore/noid/hub9
Bump Hub 8 -> Hub 9
2024-08-21 00:01:11 +02:00
Arthur Schiwon a3cd963264 fix(ProvisioningAPI): set typed config values by via API
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2024-08-20 23:10:09 +02:00
Andy Scherzinger e817bc6d3c Merge pull request #47356 from nextcloud/fix/add-webhook_listeners-to-shipped-apps-lists
chore: Add webhook_listeners to list of shipped apps
2024-08-20 22:52:52 +02:00
Andy Scherzinger bc4527a80d chore: Bump Hub 8 -> Hub 9
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-08-20 22:29:41 +02:00
John Molakvoæ 4f70998e35 Merge pull request #47351 from nextcloud/fix/build/update-apps 2024-08-20 20:55:52 +02:00
John Molakvoæ 05c9b06cdd Merge pull request #47350 from nextcloud/chore/build/remove-signed-off-checker 2024-08-20 20:55:27 +02:00
Robin Appelman 20dbb6c7e8 feat: add negative compare-and-delete to imemcache
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 19:34:28 +02:00
Joas Schilling cd0217b2bd fix(CI): Add a check that all server apps are translated
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-20 16:45:12 +02:00
Côme Chilliet da38ff0088 chore: Add webhook_listeners to list of shipped apps
As well as CODEOWNERS and l10n

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-08-20 16:40:16 +02:00
John Molakvoæ 307608b26c Merge pull request #47346 from nextcloud/encryption-key-copy-mountpoint 2024-08-20 16:16:08 +02:00
provokateurin 0e3ca084c4 fix(build): Allow update-apps.sh script to work with non-master branches
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-08-20 15:33:00 +02:00
provokateurin acca93e793 chore(build): Remove old Drone CI signed-off checker
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-08-20 15:10:49 +02:00
Robin Appelman 3756152cb1 fix: use mountpoint from storage to find the encryption keys
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 13:32:03 +02:00
Robin Appelman 1071201052 feat: store the mountpoint of storages in the mount options
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 13:31:35 +02:00
Anna 560282a47b Merge pull request #47332 from nextcloud/fix/allow-renaming-of-birthday-calendars
fix(caldav): allow renaming of birthday calendars
2024-08-20 10:48:57 +02:00
Anna Larch 5bbc23a261 fix(caldav): allow renaming of birthday calendars
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-08-20 10:16:57 +02:00
Joas Schilling 3a6716895a fix: adding blurhash to definitions
Signed-off-by: skalidindi53 <s.teja2004@gmail.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-20 08:25:24 +02:00
Nextcloud bot 2b7d9c1c9d Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-20 00:20:33 +00:00
F. E Noel Nfebe 3b795cde79 Merge pull request #47319 from nextcloud/fix/47056/focus-unified-search-on-open
fix(UnifiedSearch): Focus search input on open
2024-08-19 19:30:16 +01:00
nextcloud-command ecca9e1ad6 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-19 12:59:40 +00:00
fenn-cs cf59575120 fix(UnifiedSearch): Focus search input on open
Resolves : https://github.com/nextcloud/server/issues/47056

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2024-08-19 13:49:34 +01:00
Côme Chilliet ba9638eae5 Merge pull request #47291 from nextcloud/refactor/log-php-8-1
refactor(Log): Use new in initializer instead of constructor body
2024-08-19 14:12:11 +02:00
Robin Appelman 40c91aa31e Merge pull request #47182 from nextcloud/orphan-cleanup-chunk-perf
perf: improve cleanup of tags/comments
2024-08-19 13:40:01 +02:00
Nextcloud bot 551ff4955e Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-19 00:20:19 +00:00
John Molakvoæ 6fce6fa1d6 Merge pull request #47310 from nextcloud/automated/noid/master-fix-npm-audit 2024-08-18 13:52:36 +02:00
nextcloud-command 652c1f7b65 fix(deps): Fix npm audit
Signed-off-by: GitHub <noreply@github.com>
2024-08-18 11:33:08 +00:00
Ferdinand Thiessen 6286d3236c Merge pull request #47301 from nextcloud/dependabot/npm_and_yarn/vueuse/components-11.0.0
chore(deps): bump @vueuse/components from 10.11.0 to 11.0.0
2024-08-18 12:38:00 +02:00
dependabot[bot] 2c47285d6d chore(deps): bump @vueuse/components from 10.11.0 to 11.0.0
Bumps [@vueuse/components](https://github.com/vueuse/vueuse/tree/HEAD/packages/components) from 10.11.0 to 11.0.0.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v11.0.0/packages/components)

---
updated-dependencies:
- dependency-name: "@vueuse/components"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-18 01:53:17 +00:00
Ferdinand Thiessen 0d9d68eea1 Merge pull request #47302 from nextcloud/dependabot/npm_and_yarn/vueuse/integrations-11.0.0
chore(deps): bump @vueuse/integrations from 10.11.0 to 11.0.0
2024-08-18 03:45:55 +02:00
Nextcloud bot e06931854a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-18 00:22:56 +00:00
John Molakvoæ a7658f3ec8 Merge pull request #47300 from nextcloud/dependabot/npm_and_yarn/elliptic-6.5.7
chore(deps): bump elliptic from 6.5.6 to 6.5.7
2024-08-17 22:19:59 +02:00
dependabot[bot] 2af0eb765f chore(deps): bump elliptic from 6.5.6 to 6.5.7
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.6 to 6.5.7.
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.6...v6.5.7)

---
updated-dependencies:
- dependency-name: elliptic
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-17 16:38:49 +00:00
Ferdinand Thiessen 2ec68b1eb9 refactor(Log): Use new in initializer instead of constructor body
PHP 8.1 allows us to now move the `new` into the initializer,
this makes the code a bit nicer (and 3 lines shorter).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-17 18:38:28 +02:00
nextcloud-command 87e28b0bb7 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-17 16:37:58 +00:00
dependabot[bot] d6d173f74e chore(deps): bump @vueuse/integrations from 10.11.0 to 11.0.0
Bumps [@vueuse/integrations](https://github.com/vueuse/vueuse/tree/HEAD/packages/integrations) from 10.11.0 to 11.0.0.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v11.0.0/packages/integrations)

---
updated-dependencies:
- dependency-name: "@vueuse/integrations"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-17 18:30:44 +02:00
Ferdinand Thiessen 81b4ced076 Merge pull request #47287 from nextcloud/fix/files-access-owner
fix: Access node owner by top level `owner` property
2024-08-17 18:29:45 +02:00
nextcloud-command fa11a67e88 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-17 17:59:14 +02:00
Ferdinand Thiessen 132220a89f fix: Access node owner by top level owner property
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-17 17:59:10 +02:00
John Molakvoæ ad8200d963 Merge pull request #47297 from nextcloud/dependabot/npm_and_yarn/vueuse/core-11.0.0
chore(deps): bump @vueuse/core from 10.11.0 to 11.0.0
2024-08-17 12:57:00 +02:00
nextcloud-command 2dfd51cc03 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2024-08-17 10:18:30 +00:00
dependabot[bot] b52ab4388b chore(deps): bump @vueuse/core from 10.11.0 to 11.0.0
Bumps [@vueuse/core](https://github.com/vueuse/vueuse/tree/HEAD/packages/core) from 10.11.0 to 11.0.0.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v11.0.0/packages/core)

---
updated-dependencies:
- dependency-name: "@vueuse/core"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-17 12:10:25 +02:00
John Molakvoæ 09428d15a3 Merge pull request #47296 from nextcloud/dependabot/npm_and_yarn/pinia/testing-0.1.5
chore(deps-dev): bump @pinia/testing from 0.1.4 to 0.1.5
2024-08-17 10:01:11 +02:00
dependabot[bot] c0110409fc chore(deps-dev): bump @pinia/testing from 0.1.4 to 0.1.5
Bumps [@pinia/testing](https://github.com/vuejs/pinia) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/vuejs/pinia/releases)
- [Commits](https://github.com/vuejs/pinia/compare/@pinia/testing@0.1.4...@pinia/testing@0.1.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-17 01:25:24 +00:00
Nextcloud bot dcdb4bbf8a Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-17 00:20:22 +00:00
Julien Veyssier 8d4968168f Merge pull request #47277 from nextcloud/enh/noid/occ-bg-job-worker-max-time
[occ:bg-job:worker] Add 'stop_after' option
2024-08-17 00:28:00 +02:00
Julien Veyssier 8638f3b587 feat(occ): add 'stop_after' option to stop the worker after some time
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2024-08-16 17:54:46 +02:00
Robin Appelman c8e09d158b Merge pull request #47038 from nextcloud/reshare-fed-share
fix: check for correct storage class when checking for link parent
2024-08-16 17:15:28 +02:00
John Molakvoæ 62f9c26111 Merge pull request #39611 from FedericoHeichou/add-command-user-welcome 2024-08-16 15:47:51 +02:00
John Molakvoæ 6fda0c15f0 fix: copyright header
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-08-16 15:25:04 +02:00
John Molakvoæ d63148ee8d Merge pull request #35867 from e-foundation/ldap-check-pwd-improvement 2024-08-16 15:17:27 +02:00
Akhil b1230cd53d Use cache in LDAP backend's checkPassword
Signed-off-by: Akhil <akhil@e.email>
2024-08-16 17:55:47 +05:30
Robin Appelman a92171260f fix: check for correct storage class when checking for link parent
fixes #39123

Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-16 13:13:31 +02:00
John Molakvoæ 13a72d0f0e Merge pull request #38750 from whlsxl/postgres-install-error 2024-08-16 12:58:58 +02:00
John Molakvoæ 74b8de5665 Merge pull request #47248 from nextcloud/fix/settings-styles 2024-08-16 12:51:53 +02:00
John Molakvoæ d94073de92 Merge pull request #38630 from joshtrichards/jr-readdir-false-false 2024-08-16 12:43:53 +02:00
John Molakvoæ b8b81254f3 Merge pull request #38857 from joshtrichards/jr-earlier-check-for-php-xml 2024-08-16 12:43:32 +02:00
John Molakvoæ b8dbed3e32 Merge pull request #37761 from nextcloud/invalidateTokensOnlySeenUsers 2024-08-16 12:16:58 +02:00
Josh Richards 8032b6ac63 (base) Give a hint in web interface if SimpleXML (php-xml) is missing
Fixes #2180
And prevents #31473, #23970, #18610, #15708

Avoids a 500 error and also gives a useful error message on the web interface if this module isn't installed, gets overlooked during a PHP upgrade, etc.

While we check for it later, it's too late for session.

Inspired by #17163

Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2024-08-16 11:06:21 +02:00
Hailong Wang 67c52d202c fix: use $this->tryCreateDbUser condition 2024-08-16 10:59:15 +02:00
Hailong Wang f490a4e8c0 fix: postgresql GRANT user's permission after createDatabase, ensure database exist when GRANT 2024-08-16 10:57:11 +02:00
John Molakvoæ d35c4eb911 Merge branch 'master' into jr-readdir-false-false
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-08-16 10:53:50 +02:00
Artur Neumann 84ee79fe43 fix: expect invalidateTokensOfUser only be called for seen users
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2024-08-16 10:33:56 +02:00
Artur Neumann cc44ec54ad invalidate oauth2 tokens only for seen users
Signed-off-by: Artur Neumann <artur@jankaritech.com>
2024-08-16 10:33:52 +02:00
John Molakvoæ 75180a6292 Merge pull request #39692 from fsamapoor/refactor_encryption_app_commands 2024-08-16 10:24:18 +02:00
FedericoHeichou a41e2f01b7 feat: Add user:welcome command
Signed-off-by: FedericoHeichou <federicoheichou@gmail.com>
2024-08-16 10:11:29 +02:00
Faraz Samapoor 6b795da540 Uses early returns.
To improve code readability.

Signed-off-by: Faraz Samapoor <fsa@adlas.at>
2024-08-16 09:33:16 +02:00
Faraz Samapoor fc8b886295 Refactors encryption app commands.
To improve code readability.

Signed-off-by: Faraz Samapoor <fsa@adlas.at>
2024-08-16 09:33:16 +02:00
Nextcloud bot f4f7c757d4 Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-16 00:20:07 +00:00
Joas Schilling 3dfe306724 Merge pull request #47258 from nextcloud/bugfix/noid/translated-predefined-user-status
Don't save translated predefined user status as custom status
2024-08-15 19:17:35 +02:00
Robin Appelman 0f9ea1992c perf: improve cleanup of tags/comments
delete entire chunk at once instead of one-by-one

Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-15 17:13:57 +02:00
Joas Schilling 15550de8ce Merge pull request #47252 from nextcloud/bugfix/noid/dont-crash-when-creating-folder
fix(adminaudit): Don't crash when creating folder
2024-08-15 15:33:49 +02:00
Joas Schilling 28e6328d65 chore(assets): Recompile assets
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-15 14:41:08 +02:00
Joas Schilling 50c48aa538 fix(userstatus): Don't set predefined user status as custom when changing "Clear at"
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-15 14:39:56 +02:00
Joas Schilling 601b3b16cb Merge pull request #47253 from nextcloud/feat/webauthn-uv
feat(webauthn): Add user verification to webauthn challenges
2024-08-15 11:50:00 +02:00
S1m 9189bc290b feat(webauthn): Add user verification to webauthn challenges
Require user verification if all tokens are registered
with UV flag, else discourage it

Signed-off-by: S1m <git@sgougeon.fr>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-08-15 11:03:10 +02:00
Joas Schilling 774427a03a fix(adminaudit): Don't crash when creating folder
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-15 10:00:22 +02:00
Nextcloud bot e218d1f98e Fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2024-08-15 00:25:46 +00:00
Ferdinand Thiessen d025c55193 chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-15 02:05:02 +02:00
Ferdinand Thiessen d0a0be9959 fix: Adjust legacy CSS styles for new Nextcloud 30 design
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-15 02:04:51 +02:00
Ferdinand Thiessen 2c24c3c469 Merge pull request #47240 from nextcloud/fix/webauth-credentials-length
fix(webauthn): Increase database column for public key id
2024-08-15 00:19:55 +02:00
Ferdinand Thiessen b582630715 fix(webauthn): Increase database column for public key id
* Resolves https://github.com/nextcloud/server/issues/34476

There is no maximum length defined in the standard,
most common the length is between 128 and 200 characters,
but as we store it not in plain data but base64 encoded the length can grow about 1/3.

We had a regression with 'Nitrokey 3' which created IDs with 196 byte length -> 262 bytes encoded base64.
So to be save we increase the size to 512 bytes.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-14 22:12:54 +02:00
Ferdinand Thiessen fb90e7e2cf Merge pull request #47203 from nextcloud/fix/app-menu-hover
fix(AppMenu): Prevent menu entries from jumping on hover
2024-08-14 16:56:37 +02:00
dependabot[bot] 0f10cabf2a Merge pull request #47225 from nextcloud/dependabot/npm_and_yarn/is-svg-5.1.0 2024-08-14 12:35:06 +00:00
Ferdinand Thiessen 44705abacb chore: Compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-14 12:24:31 +02:00
Ferdinand Thiessen 21c30e5259 fix(AppMenu): Prevent menu entries from jumping on hover
Only grow and shrink app menu entry if needed

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-14 12:22:15 +02:00
dependabot[bot] a7eb156130 chore(deps): bump is-svg from 5.0.1 to 5.1.0
Bumps [is-svg](https://github.com/sindresorhus/is-svg) from 5.0.1 to 5.1.0.
- [Release notes](https://github.com/sindresorhus/is-svg/releases)
- [Commits](https://github.com/sindresorhus/is-svg/compare/v5.0.1...v5.1.0)

---
updated-dependencies:
- dependency-name: is-svg
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 09:33:21 +00:00
John Molakvoæ effbc44756 Merge pull request #47212 from nextcloud/chore/master-is-now-31 2024-08-14 11:29:57 +02:00
Joas Schilling 9d446d566b fix(3rdparty): Update 3rdparty after dependabot changes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-14 10:28:31 +02:00
Joas Schilling 71bfa5b574 chore(assets): Recompile assets
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-14 10:07:48 +02:00
Joas Schilling eb365438d6 feat(branchoff): Bump versions and requirements in apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-14 10:03:30 +02:00
Joas Schilling 7b53a85bb6 feat(release)!: Bump Server version to 31
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-14 09:58:57 +02:00
Joas Schilling 04944aaa23 fix(security): Update expiration date in security.txt
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-14 09:58:02 +02:00
Joas Schilling 31b74bc671 fix(CI)!: Add stable30 to and remove stable27 from GitHub Actions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-08-14 09:56:47 +02:00
Josh Richards e7cbaf3ee3 Clean-up some remaining readdir calls with undesirable false evaluation potential
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2023-06-24 15:37:06 +02:00
5069 changed files with 119569 additions and 152038 deletions
+4
View File
@@ -2,3 +2,7 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
# Update to coding-standard 1.2.3
af6de04e9e141466dc229e444ff3f146f4a34765
0bd284cb81b6866338aaaa67aa1d81ef9bfbb2ab
+10 -18
View File
@@ -2,18 +2,14 @@
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
/apps/cloud_federation_api/appinfo/info.xml @mejo-
/apps/comments/appinfo/info.xml @edward-ly @Pytal
/apps/contactsinteraction/appinfo/info.xml @kesselb @SebastianKrupinski
/apps/contactsinteraction/lib @kesselb @SebastianKrupinski
/apps/contactsinteraction/tests @kesselb @SebastianKrupinski
/apps/dashboard/appinfo/info.xml @julien-nc @juliusknorr
/apps/dav/lib/CalDAV @st3iny @SebastianKrupinski @tcitworld
/apps/dav/lib/CardDAV @hamza221 @SebastianKrupinski
/apps/dav/tests/unit/CalDAV @st3iny @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CardDAV @hamza221 @SebastianKrupinski
/apps/contactsinteraction/appinfo/info.xml @kesselb @miaulalala @ChristophWurst @GretaD @hamza221 @st3iny
/apps/dashboard/appinfo/info.xml @julien-nc @juliushaertl
/apps/dav/lib/CalDAV @ChristophWurst @miaulalala @tcitworld
/apps/dav/lib/CardDAV @ChristophWurst @miaulalala @tcitworld
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
/apps/federation/appinfo/info.xml @nfebe
/apps/files/appinfo/info.xml @skjnldsv @Pytal @ArtificialOwl @come-nc @artonge @icewind1991 @szaimen @susnux @nfebe
/apps/federation/appinfo/info.xml @datenangebot
/apps/files/appinfo/info.xml @skjnldsv @Pytal @ArtificialOwl @come-nc @artonge @icewind1991 @szaimen @susnux @Fenn-CS
/apps/files_external/appinfo/info.xml @icewind1991 @artonge
/apps/files_reminders/appinfo/info.xml @Pytal
/apps/files_sharing/appinfo/info.xml @skjnldsv @come-nc
@@ -24,14 +20,14 @@
/apps/settings/appinfo/info.xml @Pytal @JuliaKirschenheuter
/apps/sharebymail/appinfo/info.xml @Altahrim
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliusknorr
/apps/theming/appinfo/info.xml @skjnldsv @juliushaertl
/apps/twofactor_backupcodes/appinfo/info.xml @st3iny @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @Pytal @JuliaKirschenheuter
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
/apps/weather_status/appinfo/info.xml @julien-nc @juliusknorr
/apps/weather_status/appinfo/info.xml @julien-nc @juliushaertl
/apps/webhook_listeners/appinfo/info.xml @come-nc @julien-nc
/apps/workflowengine/appinfo/info.xml @blizzz @juliusknorr
/apps/workflowengine/appinfo/info.xml @blizzz @juliushaertl
# Frontend expertise
/apps/files/src* @skjnldsv
@@ -42,7 +38,7 @@
# Security team
/resources/codesigning @mgallien @miaulalala @nickvergessen
/resources/config/ca-bundle.crt @miaulalala @nickvergessen
/resources/config/ca-bundle.crt @ChristophWurst @miaulalala @nickvergessen
/.drone.yml @nickvergessen
# Two-Factor Authentication
@@ -69,10 +65,6 @@ ResponseDefinitions.php @provokateurin
/lib/public/Talk @nickvergessen
/lib/public/UserStatus @nickvergessen
# Groupware
/build/integration/dav_features/caldav.feature @miaulalala @st3iny @SebastianKrupinski
/build/integration/dav_features/carddav.feature @miaulalala @st3iny @SebastianKrupinski
# Personal interest
*/Activity/* @nickvergessen
*/Notifications/* @nickvergessen
+37 -14
View File
@@ -59,20 +59,6 @@ updates:
reviewers:
- "nextcloud/server-dependabot"
# phpunit
- package-ecosystem: composer
directory: "/vendor-bin/phpunit"
schedule:
interval: weekly
day: saturday
time: "04:40"
timezone: Europe/Madrid
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
# Main master npm
- package-ecosystem: npm
directory: "/"
@@ -152,6 +138,25 @@ updates:
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: npm
directory: "/"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable30
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
- package-ecosystem: composer
directory: "/build/integration"
schedule:
@@ -188,6 +193,24 @@ updates:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
- package-ecosystem: composer
directory: "/build/integration"
schedule:
interval: weekly
day: saturday
time: "03:00"
timezone: Europe/Paris
target-branch: stable30
labels:
- "3. to review"
- "feature: dependencies"
reviewers:
- "nextcloud/server-dependabot"
ignore:
# ignore all GitHub linguist patch updates
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch"]
# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
+7 -34
View File
@@ -37,7 +37,7 @@ jobs:
- 'composer.lock'
- '**.php'
autoloader:
autocheckers:
runs-on: ubuntu-latest
needs: changes
@@ -45,22 +45,21 @@ jobs:
strategy:
matrix:
php-versions: ['8.1']
php-versions: ['8.3']
name: PHP checkers
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
extensions: ctype, json, mbstring
coverage: none
ini-file: development
env:
@@ -72,32 +71,6 @@ jobs:
- name: Check auto loaders
run: bash ./build/autoloaderchecker.sh
autocheckers:
runs-on: ubuntu-latest-low
strategy:
matrix:
php-versions: ['8.1']
name: Translation and Files checkers
steps:
- name: Checkout server
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@9e72090525849c5e82e596468b86eb55e9cc5401 #v2.32.0
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: none
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check translations are JSON decodeable
run: php ./build/translation-checker.php
@@ -114,7 +87,7 @@ jobs:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, autoloader, autocheckers]
needs: [changes, autocheckers]
if: always()
@@ -122,4 +95,4 @@ jobs:
steps:
- name: Summary status
run: if ${{ needs.autocheckers.result != 'success' || (needs.changes.outputs.src != 'false' && needs.autoloader.result != 'success') }}; then exit 1; fi
run: if ${{ needs.changes.outputs.src != 'false' && needs.autocheckers.result != 'success' }}; then exit 1; fi
+11 -6
View File
@@ -29,6 +29,8 @@ jobs:
npmVersion: ${{ steps.versions.outputs.npmVersion }}
env:
# We'll install cypress in the cypress job
CYPRESS_INSTALL_BINARY: 0
PUPPETEER_SKIP_DOWNLOAD: true
steps:
@@ -115,9 +117,14 @@ jobs:
- name: Set up npm ${{ needs.init.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.init.outputs.npmVersion }}'
- name: Install cypress
run: ./node_modules/cypress/bin/cypress install
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
uses: cypress-io/github-action@df7484c5ba85def7eef30db301afa688187bc378 # v6.7.2
with:
# We already installed the dependencies in the init job
install: false
component: ${{ matrix.containers == 'component' }}
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
# cypress env
@@ -139,14 +146,12 @@ jobs:
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
if: always()
with:
name: snapshots_videos_${{ matrix.containers }}
path: |
cypress/snapshots
cypress/videos
name: snapshots_${{ matrix.containers }}
path: cypress/snapshots
- name: Extract NC logs
if: failure() && matrix.containers != 'component'
run: docker logs nextcloud-cypress-tests_${{ env.APP_NAME }} > nextcloud.log
run: docker logs nextcloud-cypress-tests-${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
@@ -157,7 +162,7 @@ jobs:
- name: Create data dir archive
if: failure() && matrix.containers != 'component'
run: docker exec nextcloud-cypress-tests_${{ env.APP_NAME }} tar -cvjf - data > data.tar
run: docker exec nextcloud-cypress-tests-server tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
+1 -1
View File
@@ -72,7 +72,7 @@ jobs:
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -68,7 +68,7 @@ jobs:
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -34,7 +34,7 @@ jobs:
- '**.php'
files-external-smb-kerberos:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
@@ -53,12 +53,6 @@ jobs:
repository: nextcloud/user_saml
path: apps/user_saml
- name: Install user_saml
run: |
cd apps/user_saml
composer i
cd ../..
- name: Pull images
run: |
docker pull ghcr.io/icewind1991/samba-krb-test-dc
+1 -1
View File
@@ -65,7 +65,7 @@ jobs:
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite
extensions: ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, smbclient, sqlite, pdo_sqlite
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
+1 -1
View File
@@ -43,7 +43,7 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
php-versions: ['8.3']
endpoint: ['old', 'new']
service: ['CalDAV', 'CardDAV']
+1 -1
View File
@@ -43,7 +43,7 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
php-versions: ['8.3']
endpoint: ['webdav', 'dav']
name: Litmus WebDAV ${{ matrix.endpoint }}
+2 -3
View File
@@ -41,7 +41,6 @@ jobs:
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- 'core/shipped.json'
integration-sqlite:
runs-on: ubuntu-latest
@@ -70,8 +69,8 @@ jobs:
- 'sharing_features'
- 'videoverification_features'
php-versions: ['8.1']
spreed-versions: ['stable30']
php-versions: ['8.2']
spreed-versions: ['main']
services:
redis:
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
name: npm-audit-fix-${{ matrix.branches }}
+1 -1
View File
@@ -45,7 +45,7 @@ jobs:
strategy:
matrix:
php-versions: ['8.1', '8.2']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
+1 -1
View File
@@ -45,7 +45,7 @@ jobs:
strategy:
matrix:
php-versions: ['8.1', '8.2']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
+1 -1
View File
@@ -45,7 +45,7 @@ jobs:
strategy:
matrix:
php-versions: ['8.1', '8.2']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.3'
coverage: true
+1 -1
View File
@@ -31,7 +31,7 @@ jobs:
- name: Set up php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: '8.1'
php-version: '8.2'
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
coverage: none
ini-file: development
+3 -3
View File
@@ -38,7 +38,7 @@ jobs:
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: ${{ matrix.php-versions }}
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -64,7 +64,7 @@ jobs:
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: before.json
profiler-branch: stable30
profiler-branch: master
- name: Apply PR
run: |
@@ -86,7 +86,7 @@ jobs:
curl -s -u test:test -T README.md http://localhost:8080/remote.php/dav/files/test/new_file.txt
curl -s -u test:test -X DELETE http://localhost:8080/remote.php/dav/files/test/new_file.txt
output: after.json
profiler-branch: stable30
profiler-branch: master
compare-with: before.json
- name: Upload profiles
+1 -1
View File
@@ -55,7 +55,7 @@ jobs:
strategy:
matrix:
php-versions: ['8.1', '8.3']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
@@ -1,184 +0,0 @@
# 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
#
# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit sharding
on:
pull_request:
schedule:
- cron: "5 2 * * *"
permissions:
contents: read
concurrency:
group: phpunit-mysql-sharding-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src }}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
phpunit-mysql:
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.src != 'false'
strategy:
matrix:
php-versions: ['8.1']
mysql-versions: ['8.4']
name: Sharding - MySQL ${{ matrix.mysql-versions }} (PHP ${{ matrix.php-versions }}) - database tests
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
mysql:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: oc_autotest
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard1:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 5001:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard2:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 5002:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard3:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 5003:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
shard4:
image: ghcr.io/nextcloud/continuous-integration-mysql-${{ matrix.mysql-versions }}:latest
ports:
- 5004:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: nextcloud
MYSQL_DATABASE: nextcloud
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 10
steps:
- name: Checkout server
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2e947f1f6932d141d076ca441d0e1e881775e95b #v2.31.0
with:
php-version: ${{ matrix.php-versions }}
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
coverage: ${{ matrix.coverage && 'xdebug' || 'none' }}
ini-file: development
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up dependencies
run: composer i
- name: Enable ONLY_FULL_GROUP_BY MySQL option
run: |
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
- name: Set up Nextcloud
env:
DB_PORT: 4444
SHARDING: 1
run: |
mkdir data
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: PHPUnit
run: composer run test:db ${{ matrix.coverage && ' -- --coverage-clover ./clover.db.xml' || '' }}
- name: Upload db code coverage
if: ${{ !cancelled() && matrix.coverage }}
uses: codecov/codecov-action@v4.1.1
with:
files: ./clover.db.xml
flags: phpunit-mysql
- name: Print logs
if: always()
run: |
cat data/nextcloud.log
summary:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, phpunit-mysql]
if: always()
name: phpunit-mysql-summary
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
+1 -2
View File
@@ -42,7 +42,6 @@ jobs:
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'resources/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
@@ -58,7 +57,7 @@ jobs:
strategy:
matrix:
php-versions: ['8.1', '8.3']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.2'
coverage: ${{ github.event_name != 'pull_request' }}
@@ -1,121 +0,0 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: PHPUnit primary object store
on:
pull_request:
schedule:
- cron: "15 2 * * *"
concurrency:
group: phpunit-object-store-primary-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
changes:
runs-on: ubuntu-latest-low
outputs:
src: ${{ steps.changes.outputs.src}}
steps:
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
continue-on-error: true
with:
filters: |
src:
- '.github/workflows/**'
- '3rdparty/**'
- '**/appinfo/**'
- '**/lib/**'
- '**/templates/**'
- '**/tests/**'
- 'vendor/**'
- 'vendor-bin/**'
- '.php-cs-fixer.dist.php'
- 'composer.json'
- 'composer.lock'
- '**.php'
object-store-primary-tests-minio:
runs-on: ubuntu-latest
needs: changes
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
strategy:
# do not stop on another job's failure
fail-fast: false
matrix:
php-versions: ['8.1']
key: ['s3', 's3-multibucket']
name: php${{ matrix.php-versions }}-${{ matrix.key }}-minio
services:
cache:
image: ghcr.io/nextcloud/continuous-integration-redis:latest
ports:
- 6379:6379/tcp
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
minio:
image: bitnami/minio
env:
MINIO_ROOT_USER: nextcloud
MINIO_ROOT_PASSWORD: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
MINIO_DEFAULT_BUCKETS: nextcloud
ports:
- "9000:9000"
steps:
- name: Checkout server
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
submodules: true
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d #v2.25.2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, fileinfo, intl, sqlite, pdo_sqlite, zip, gd
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Nextcloud
env:
OBJECT_STORE: ${{ matrix.key }}
OBJECT_STORE_KEY: nextcloud
OBJECT_STORE_SECRET: bWluaW8tc2VjcmV0LWtleS1uZXh0Y2xvdWQ=
run: |
composer install
cp tests/redis.config.php config/
cp tests/preseed-config.php config/config.php
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass password
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
- name: Wait for S3
run: |
sleep 10
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
- name: PHPUnit
run: composer run test:db
- name: S3 logs
if: always()
run: |
cat data/nextcloud.log
docker ps -a
docker ps -aq | while read container ; do IMAGE=$(docker inspect --format='{{.Config.Image}}' $container); echo $IMAGE; docker logs $container; echo "\n\n" ; done
object-store-primary-summary:
runs-on: ubuntu-latest-low
needs: [changes,object-store-primary-tests-minio]
if: always()
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && needs.object-store-primary-tests-minio.result != 'success' }}; then exit 1; fi
+1 -1
View File
@@ -55,7 +55,7 @@ jobs:
strategy:
matrix:
php-versions: ['8.2', '8.3']
php-versions: ['8.1', '8.2', '8.3']
include:
- php-versions: '8.1'
coverage: ${{ github.event_name != 'pull_request' }}
+6 -6
View File
@@ -25,7 +25,7 @@ jobs:
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -38,7 +38,7 @@ jobs:
- name: Show potential changes in Psalm baseline
if: always()
run: git diff --exit-code -- . ':!lib/composer'
run: git diff -- . ':!lib/composer'
- name: Upload Analysis results to GitHub
if: always()
@@ -59,14 +59,14 @@ jobs:
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
extensions: ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
- name: Composer install
run: composer i
- name: Psalm taint analysis
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --report=results.sarif --taint-analysis --ignore-baseline
run: composer run psalm:ci -- --monochrome --no-progress --output-format=github --report=results.sarif --taint-analysis
- name: Upload Security Analysis results to GitHub
if: always()
@@ -87,7 +87,7 @@ jobs:
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: '8.1'
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
extensions: ctype,curl,dom,fileinfo,gd,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -100,4 +100,4 @@ jobs:
- name: Show potential changes in Psalm baseline
if: always()
run: git diff --exit-code -- . ':!lib/composer'
run: git diff -- . ':!lib/composer'
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
branches: ['master', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-ca-certificate-bundle-${{ matrix.branches }}
@@ -14,7 +14,7 @@ jobs:
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
branches: ['master', 'stable30', 'stable29', 'stable28', 'stable27', 'stable26', 'stable25', 'stable24', 'stable23', 'stable22']
name: update-code-signing-crl-${{ matrix.branches }}
@@ -0,0 +1,52 @@
# SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Auto approve psalm baseline update
on:
pull_request_target:
branches:
- main
- master
- stable*
permissions:
contents: read
concurrency:
group: update-psalm-baseline-approve-merge-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
auto-approve-merge:
if: github.actor == 'nextcloud-command'
runs-on: ubuntu-latest-low
permissions:
# for hmarr/auto-approve-action to approve PRs
pull-requests: write
# for alexwilson/enable-github-automerge-action to approve PRs
contents: write
steps:
- name: Disabled on forks
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
run: |
echo 'Can not approve PRs from forks'
exit 1
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
id: branchname
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# GitHub actions bot approve
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-psalm-baseline')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
# Enable GitHub auto merge
- name: Auto merge
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # main
if: startsWith(steps.branchname.outputs.branch, 'automated/noid/') && endsWith(steps.branchname.outputs.branch, 'update-psalm-baseline')
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,69 @@
# SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Update Psalm baseline
on:
workflow_dispatch:
schedule:
- cron: "5 2 * * *"
jobs:
update-psalm-baseline:
runs-on: ubuntu-latest
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
strategy:
fail-fast: false
matrix:
branches: ['master', 'stable30', 'stable29', 'stable28']
name: update-psalm-baseline-${{ matrix.branches }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
with:
ref: ${{ matrix.branches }}
submodules: true
- name: Set up php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 #v2.31.1
with:
php-version: '8.1'
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
coverage: none
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Composer install
run: composer install
- name: Psalm
run: composer run psalm:ci -- --monochrome --no-progress --output-format=text --update-baseline
continue-on-error: true
- name: Psalm OCP
run: composer run psalm:ci -- -c psalm-ocp.xml --monochrome --no-progress --output-format=github --update-baseline
continue-on-error: true
- name: Reset composer
run: |
git clean -f lib/composer
git checkout composer.json composer.lock lib/composer
- name: Create Pull Request
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
commit-message: 'chore(tests): Update psalm baseline'
committer: GitHub <noreply@github.com>
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
signoff: true
branch: 'automated/noid/${{ matrix.branches }}-update-psalm-baseline'
title: '[${{ matrix.branches }}] Update psalm-baseline.xml'
body: |
Auto-generated update psalm-baseline.xml with fixed psalm warnings
labels: |
automated pr
3. to review
team-reviewers: server-backend
+3 -11
View File
@@ -49,8 +49,8 @@
</Else>
</FilesMatch>
# Let browsers cache OTF and WOFF files for a week
<FilesMatch "\.(otf|woff2?)$">
# Let browsers cache WOFF files for a week
<FilesMatch "\.woff2?$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
</IfModule>
@@ -103,15 +103,7 @@
# - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
# - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
<IfModule mod_setenvif.c>
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
</IfModule>
# Apache disabled the sending of the server-side content-length header
# in their 2.4.59 patch updated which breaks some use-cases in Nextcloud.
# Setting ap_trust_cgilike_cl allows to bring back the usual behaviour.
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=68973
<IfModule mod_env.c>
SetEnv ap_trust_cgilike_cl
SetEnvIf Transfer-Encoding "chunked" proxy-sendcl=1
</IfModule>
AddDefaultCharset utf-8
+13 -19
View File
@@ -14,29 +14,23 @@ $config = new Config();
$config
->setParallelConfig(ParallelConfigFactory::detect())
->getFinder()
->ignoreVCSIgnored(true)
->exclude('config')
->exclude('data')
->notPath('3rdparty')
->notPath('build/integration/vendor')
->notPath('build/lib')
->notPath('build/node_modules')
->notPath('build/stubs')
->notPath('composer')
->notPath('node_modules')
->notPath('vendor')
->in('apps')
->exclude('3rdparty')
->exclude('build/stubs')
->exclude('composer')
->in(__DIR__);
// Ignore additional app directories
$rootDir = new \DirectoryIterator(__DIR__);
foreach ($rootDir as $node) {
if (str_starts_with($node->getFilename(), 'apps')) {
$return = shell_exec('git check-ignore ' . escapeshellarg($node->getFilename() . '/'));
$ignoredEntries = shell_exec('git status --porcelain --ignored ' . escapeshellarg(__DIR__));
$ignoredEntries = explode("\n", $ignoredEntries);
$ignoredEntries = array_filter($ignoredEntries, static fn (string $line) => str_starts_with($line, '!! '));
$ignoredEntries = array_map(static fn (string $line) => substr($line, 3), $ignoredEntries);
$ignoredEntries = array_values($ignoredEntries);
if ($return !== null) {
$config->getFinder()->exclude($node->getFilename());
}
foreach ($ignoredEntries as $ignoredEntry) {
if (str_ends_with($ignoredEntry, '/')) {
$config->getFinder()->exclude($ignoredEntry);
} else {
$config->getFinder()->notPath($ignoredEntry);
}
}
+12 -24
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,4 +6,4 @@ and our products: “Nextcloud Files”; “Nextcloud Groupware” and “Nextcl
This set of marks is collectively referred to as the “Nextcloud marks.”
Use of Nextcloud logos and other marks is only permitted under the guidelines provided by the Nextcloud GmbH.
A copy can be found at https://nextcloud.com/trademarks/
A copy can be found at https://discord.com/branding
+6 -2
View File
@@ -5,8 +5,8 @@
-->
# Nextcloud Server ☁
[![REUSE status](https://api.reuse.software/badge/github.com/nextcloud/server)](https://api.reuse.software/info/github.com/nextcloud/server)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/nextcloud/server/badges/quality-score.png?b=stable30)](https://scrutinizer-ci.com/g/nextcloud/server/?branch=stable30)
[![codecov](https://codecov.io/gh/nextcloud/server/branch/stable30/graph/badge.svg)](https://codecov.io/gh/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)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/209/badge)](https://bestpractices.coreinfrastructure.org/projects/209)
[![Design](https://contribute.design/api/shield/nextcloud/server)](https://contribute.design/nextcloud/server)
@@ -74,6 +74,10 @@ Otherwise, git checkouts can be handled the same as release archives, by using t
- Comment on a pull request with `/update-3rdparty` to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target.
#### Ignore code style updates in git blame
`git config blame.ignoreRevsFile .git-blame-ignore-revs`
## Contribution guidelines 📜
All contributions to this repository from June 16, 2016, and onward are considered to be
-18
View File
@@ -1,18 +0,0 @@
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import JSDOMEnvironment from 'jest-environment-jsdom'
// https://github.com/facebook/jest/blob/v29.4.3/website/versioned_docs/version-29.4/Configuration.md#testenvironment-string
export default class FixJSDOMEnvironment extends JSDOMEnvironment {
constructor(...args: ConstructorParameters<typeof JSDOMEnvironment>) {
super(...args)
// https://github.com/jsdom/jsdom/issues/3363
// 31 ad above switched to vitest and don't have that issue
this.global.structuredClone = structuredClone
}
}
-12
View File
@@ -1,12 +0,0 @@
/**
* SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import '@testing-library/jest-dom'
// Mock `window.location` with Jest spies and extend expect
import 'jest-location-mock'
// Mock `window.fetch` with Jest
import 'jest-fetch-mock'
+5
View File
@@ -2,7 +2,12 @@
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { beforeEach } from 'vitest'
window.OC = { ...window.OC }
window.OCA = { ...window.OCA }
window.OCP = { ...window.OCP }
beforeEach(() => {
window.location = new URL('http://nextcloud.local')
})
+5
View File
@@ -0,0 +1,5 @@
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: CC0-1.0
*/
import '@testing-library/jest-dom/vitest'
-6
View File
@@ -1,6 +0,0 @@
{
"extends": "../tsconfig.json",
"compilerOptions": {
"verbatimModuleSyntax": false
}
}
+2 -2
View File
@@ -10,7 +10,7 @@
<name>Auditing / Logging</name>
<summary>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</summary>
<description>Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.</description>
<version>1.20.0</version>
<version>1.21.0</version>
<licence>agpl</licence>
<author>Nextcloud</author>
<namespace>AdminAudit</namespace>
@@ -20,7 +20,7 @@
<category>monitoring</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="30" max-version="30"/>
<nextcloud min-version="31" max-version="31"/>
</dependencies>
<background-jobs>
<job>OCA\AdminAudit\BackgroundJobs\Rotate</job>
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditēšana / Žurnalizēšana",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nodrošina Nextcloud žurnalizēšanas iespējas, piemēram, faila piekļuves žurnalizēšanu vai citas sensitīvas darbības."
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "Auditēšana / Žurnalizēšana",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nodrošina Nextcloud žurnalizēšanas iespējas, piemēram, faila piekļuves žurnalizēšanu vai citas sensitīvas darbības."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Pengauditan / Pengelogan",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kebolehan pengelogan untuk Nextcloud seperti akses fail log atau tindakan sensitif."
},
"nplurals=1; plural=0;");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "Pengauditan / Pengelogan",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Menyediakan kebolehan pengelogan untuk Nextcloud seperti akses fail log atau tindakan sensitif."
},"pluralForm" :"nplurals=1; plural=0;"
}
+2 -2
View File
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Auditorias / registos",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou outras ações sensíveis. "
"Auditing / Logging" : "Auditorias / Registos",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou demais ações sensíveis. "
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+2 -2
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Auditorias / registos",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou outras ações sensíveis. "
"Auditing / Logging" : "Auditorias / Registos",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou demais ações sensíveis. "
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "ئىقتىسادىي تەپتىش / خاتىرىلەش",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nextcloud غا تىزىمغا كىرىش ئىقتىدارى بىلەن تەمىنلەيدۇ ، مەسىلەن ھۆججەتلەرنى زىيارەت قىلىش ياكى باشقا سەزگۈر ھەرىكەتلەر."
},
"nplurals=2; plural=(n != 1);");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "ئىقتىسادىي تەپتىش / خاتىرىلەش",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nextcloud غا تىزىمغا كىرىش ئىقتىدارى بىلەن تەمىنلەيدۇ ، مەسىلەن ھۆججەتلەرنى زىيارەت قىلىش ياكى باشقا سەزگۈر ھەرىكەتلەر."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
-7
View File
@@ -1,7 +0,0 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Audit / Kirish",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Next bulut uchun tizimga kirish qobiliyatini ta'minlaydi, masalan, faylga kirish yoki boshqa sezgir harakatlar."
},
"nplurals=1; plural=0;");
-5
View File
@@ -1,5 +0,0 @@
{ "translations": {
"Auditing / Logging" : "Audit / Kirish",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Next bulut uchun tizimga kirish qobiliyatini ta'minlaydi, masalan, faylga kirish yoki boshqa sezgir harakatlar."
},"pluralForm" :"nplurals=1; plural=0;"
}
+2 -2
View File
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "Kiểm tra / Nhật ký",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
"Auditing / Logging" : "Kiểm tra / Nhật ký",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
},
"nplurals=1; plural=0;");
+2 -2
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "Kiểm tra / Nhật ký",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
"Auditing / Logging" : "Kiểm tra / Nhật ký",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
},"pluralForm" :"nplurals=1; plural=0;"
}
+2 -2
View File
@@ -1,7 +1,7 @@
OC.L10N.register(
"admin_audit",
{
"Auditing / Logging" : "稽核/記錄",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "提供 Nextcloud 的記錄功能,例如錄檔存取或其他敏感操作。"
"Auditing / Logging" : "稽核記錄",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "提供 Nextcloud 的記錄功能,例如錄檔存取或其他敏感操作。"
},
"nplurals=1; plural=0;");
+2 -2
View File
@@ -1,5 +1,5 @@
{ "translations": {
"Auditing / Logging" : "稽核/記錄",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "提供 Nextcloud 的記錄功能,例如錄檔存取或其他敏感操作。"
"Auditing / Logging" : "稽核記錄",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "提供 Nextcloud 的記錄功能,例如錄檔存取或其他敏感操作。"
},"pluralForm" :"nplurals=1; plural=0;"
}
+52 -14
View File
@@ -8,11 +8,12 @@ declare(strict_types=1);
namespace OCA\AdminAudit\Actions;
use OC\Files\Node\NonExistingFile;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\BeforeNodeWrittenEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeDeletedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
use OCP\Files\Events\Node\NodeWrittenEvent;
use OCP\Files\InvalidPathException;
@@ -28,9 +29,10 @@ use Psr\Log\LoggerInterface;
class Files extends Action {
private array $renamedNodes = [];
/**
* Logs file read actions
*
* @param BeforeNodeReadEvent $event
*/
public function read(BeforeNodeReadEvent $event): void {
try {
@@ -41,7 +43,7 @@ class Files extends Action {
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file read: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file read: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -54,6 +56,8 @@ class Files extends Action {
/**
* Logs rename actions of files
*
* @param BeforeNodeRenamedEvent $event
*/
public function beforeRename(BeforeNodeRenamedEvent $event): void {
try {
@@ -61,7 +65,7 @@ class Files extends Action {
$this->renamedNodes[$source->getId()] = $source;
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file rename: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file rename: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -69,6 +73,8 @@ class Files extends Action {
/**
* Logs rename actions of files
*
* @param NodeRenamedEvent $event
*/
public function afterRename(NodeRenamedEvent $event): void {
try {
@@ -81,7 +87,7 @@ class Files extends Action {
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file rename: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file rename: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -96,6 +102,8 @@ class Files extends Action {
/**
* Logs creation of files
*
* @param NodeCreatedEvent $event
*/
public function create(NodeCreatedEvent $event): void {
try {
@@ -105,7 +113,7 @@ class Files extends Action {
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file create: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file create: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -121,6 +129,8 @@ class Files extends Action {
/**
* Logs copying of files
*
* @param NodeCopiedEvent $event
*/
public function copy(NodeCopiedEvent $event): void {
try {
@@ -132,7 +142,7 @@ class Files extends Action {
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file copy: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file copy: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -145,17 +155,19 @@ class Files extends Action {
/**
* Logs writing of files
*
* @param BeforeNodeWrittenEvent $event
*/
public function write(NodeWrittenEvent $event): void {
public function write(BeforeNodeWrittenEvent $event): void {
$node = $event->getNode();
try {
$params = [
'id' => $node->getId(),
'id' => $node instanceof NonExistingFile ? null : $node->getId(),
'path' => mb_substr($node->getInternalPath(), 5),
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file write: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file write: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -171,9 +183,11 @@ class Files extends Action {
}
/**
* Logs deletions of files
* Logs update of files
*
* @param NodeWrittenEvent $event
*/
public function delete(BeforeNodeDeletedEvent $event): void {
public function update(NodeWrittenEvent $event): void {
try {
$params = [
'id' => $event->getNode()->getId(),
@@ -181,7 +195,31 @@ class Files extends Action {
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file delete: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file update: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
$this->log(
'File with id "%s" updated: "%s"',
$params,
array_keys($params)
);
}
/**
* Logs deletions of files
*
* @param NodeDeletedEvent $event
*/
public function delete(NodeDeletedEvent $event): void {
try {
$params = [
'id' => $event->getNode()->getId(),
'path' => mb_substr($event->getNode()->getInternalPath(), 5),
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
'Exception thrown in file delete: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
@@ -210,7 +248,7 @@ class Files extends Action {
];
} catch (InvalidPathException|NotFoundException $e) {
\OCP\Server::get(LoggerInterface::class)->error(
"Exception thrown in file preview: ".$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
'Exception thrown in file preview: '.$e->getMessage(), ['app' => 'admin_audit', 'exception' => $e]
);
return;
}
+13 -5
View File
@@ -32,11 +32,12 @@ use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengeFailed;
use OCP\Authentication\TwoFactorAuth\TwoFactorProviderChallengePassed;
use OCP\Console\ConsoleEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Events\Node\BeforeNodeDeletedEvent;
use OCP\Files\Events\Node\BeforeNodeReadEvent;
use OCP\Files\Events\Node\BeforeNodeRenamedEvent;
use OCP\Files\Events\Node\BeforeNodeWrittenEvent;
use OCP\Files\Events\Node\NodeCopiedEvent;
use OCP\Files\Events\Node\NodeCreatedEvent;
use OCP\Files\Events\Node\NodeDeletedEvent;
use OCP\Files\Events\Node\NodeRenamedEvent;
use OCP\Files\Events\Node\NodeWrittenEvent;
use OCP\IConfig;
@@ -217,12 +218,19 @@ class Application extends App implements IBootstrap {
);
$eventDispatcher->addListener(
NodeWrittenEvent::class,
function (NodeWrittenEvent $event) use ($fileActions): void {
BeforeNodeWrittenEvent::class,
function (BeforeNodeWrittenEvent $event) use ($fileActions) {
$fileActions->write($event);
}
);
$eventDispatcher->addListener(
NodeWrittenEvent::class,
function (NodeWrittenEvent $event) use ($fileActions) {
$fileActions->update($event);
}
);
$eventDispatcher->addListener(
BeforeNodeReadEvent::class,
function (BeforeNodeReadEvent $event) use ($fileActions) {
@@ -231,8 +239,8 @@ class Application extends App implements IBootstrap {
);
$eventDispatcher->addListener(
BeforeNodeDeletedEvent::class,
function (BeforeNodeDeletedEvent $event) use ($fileActions): void {
NodeDeletedEvent::class,
function (NodeDeletedEvent $event) use ($fileActions) {
$fileActions->delete($event);
}
);
+2 -2
View File
@@ -9,7 +9,7 @@
<name>Cloud Federation API</name>
<summary>Enable clouds to communicate with each other and exchange data</summary>
<description>The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.</description>
<version>1.13.0</version>
<version>1.14.0</version>
<licence>agpl</licence>
<author>Bjoern Schiessle</author>
<namespace>CloudFederationAPI</namespace>
@@ -19,6 +19,6 @@
<category>integration</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="30" max-version="30"/>
<nextcloud min-version="31" max-version="31"/>
</dependencies>
</info>
+2 -2
View File
@@ -1,8 +1,8 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "Cloud sammenkoblings API",
"Cloud Federation API" : "Cloud Federation API",
"Enable clouds to communicate with each other and exchange data" : "Gør det muligt for skyer at kommunikere med hinanden og udveksle data",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud sammenkoblings API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
},
"nplurals=2; plural=(n != 1);");
+2 -2
View File
@@ -1,6 +1,6 @@
{ "translations": {
"Cloud Federation API" : "Cloud sammenkoblings API",
"Cloud Federation API" : "Cloud Federation API",
"Enable clouds to communicate with each other and exchange data" : "Gør det muligt for skyer at kommunikere med hinanden og udveksle data",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud sammenkoblings API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -2,7 +2,7 @@ OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "Ligeann API Comhdhéanta na Scamaill",
"Enable clouds to communicate with each other and exchange data" : "Cumasaigh scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cuireann API Cloud Federation ar chumas cásanna éagsúla Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
"Enable clouds to communicate with each other and exchange data" : "Lig dóimhneacht a chur ar chumas na scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú.",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Ligeann API Comhdhéanta na Scamaill do réimse éagsúil de chásanna Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");
+2 -2
View File
@@ -1,6 +1,6 @@
{ "translations": {
"Cloud Federation API" : "Ligeann API Comhdhéanta na Scamaill",
"Enable clouds to communicate with each other and exchange data" : "Cumasaigh scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cuireann API Cloud Federation ar chumas cásanna éagsúla Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
"Enable clouds to communicate with each other and exchange data" : "Lig dóimhneacht a chur ar chumas na scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú.",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Ligeann API Comhdhéanta na Scamaill do réimse éagsúil de chásanna Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
}
-8
View File
@@ -1,8 +0,0 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "Cloud Federation API",
"Enable clouds to communicate with each other and exchange data" : "클라우드 간 소통과 데이터 교환을 가능케 합니다.",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API는 다양한 Nextcloud 인스턴스가 서로 소통하거나 데이터를 교환할 수 있도록 합니다."
},
"nplurals=1; plural=0;");
-6
View File
@@ -1,6 +0,0 @@
{ "translations": {
"Cloud Federation API" : "Cloud Federation API",
"Enable clouds to communicate with each other and exchange data" : "클라우드 간 소통과 데이터 교환을 가능케 합니다.",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API는 다양한 Nextcloud 인스턴스가 서로 소통하거나 데이터를 교환할 수 있도록 합니다."
},"pluralForm" :"nplurals=1; plural=0;"
}
-8
View File
@@ -1,8 +0,0 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "بۇلۇت فېدېراتسىيەسى API",
"Enable clouds to communicate with each other and exchange data" : "بۇلۇتلارنىڭ ئۆز-ئارا ئالاقە قىلىشى ۋە سانلىق مەلۇمات ئالماشتۇرۇشىنى قوزغىتىڭ",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "بۇلۇت فېدېراتسىيەسى API ھەر خىل Nextcloud مىساللىرىنى ئۆز-ئارا ئالاقە قىلىش ۋە سانلىق مەلۇمات ئالماشتۇرۇش ئىمكانىيىتىگە ئىگە قىلىدۇ."
},
"nplurals=2; plural=(n != 1);");
-6
View File
@@ -1,6 +0,0 @@
{ "translations": {
"Cloud Federation API" : "بۇلۇت فېدېراتسىيەسى API",
"Enable clouds to communicate with each other and exchange data" : "بۇلۇتلارنىڭ ئۆز-ئارا ئالاقە قىلىشى ۋە سانلىق مەلۇمات ئالماشتۇرۇشىنى قوزغىتىڭ",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "بۇلۇت فېدېراتسىيەسى API ھەر خىل Nextcloud مىساللىرىنى ئۆز-ئارا ئالاقە قىلىش ۋە سانلىق مەلۇمات ئالماشتۇرۇش ئىمكانىيىتىگە ئىگە قىلىدۇ."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+2 -2
View File
@@ -1,8 +1,8 @@
OC.L10N.register(
"cloud_federation_api",
{
"Cloud Federation API" : "雲端聯 API",
"Cloud Federation API" : "雲端聯 API",
"Enable clouds to communicate with each other and exchange data" : "讓雲端可互相通訊並交換資料",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "雲端聯 API 讓多個 Nextcloud 實體之間,可以互相通訊並交換資料。"
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "雲端聯 API 讓多個 Nextcloud 站台可以互相通訊並交換資料。"
},
"nplurals=1; plural=0;");
+2 -2
View File
@@ -1,6 +1,6 @@
{ "translations": {
"Cloud Federation API" : "雲端聯 API",
"Cloud Federation API" : "雲端聯 API",
"Enable clouds to communicate with each other and exchange data" : "讓雲端可互相通訊並交換資料",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "雲端聯 API 讓多個 Nextcloud 實體之間,可以互相通訊並交換資料。"
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "雲端聯 API 讓多個 Nextcloud 站台可以互相通訊並交換資料。"
},"pluralForm" :"nplurals=1; plural=0;"
}
@@ -55,8 +55,8 @@ class Capabilities implements ICapability {
$resource = $this->provider->createNewResourceType();
$resource->setName('file')
->setShareTypes(['user', 'group'])
->setProtocols(['webdav' => '/public.php/webdav/']);
->setShareTypes(['user', 'group'])
->setProtocols(['webdav' => '/public.php/webdav/']);
$this->provider->addResourceType($resource);
@@ -71,6 +71,7 @@ class RequestHandlerController extends Controller {
* @param string $resourceType 'file', 'calendar',...
*
* @return JSONResponse<Http::STATUS_CREATED, CloudFederationAPIAddShare, array{}>|JSONResponse<Http::STATUS_BAD_REQUEST, CloudFederationAPIValidationError, array{}>|JSONResponse<Http::STATUS_NOT_IMPLEMENTED, CloudFederationAPIError, array{}>
*
* 201: The notification was successfully received. The display name of the recipient might be returned in the body
* 400: Bad request due to invalid parameters, e.g. when `shareWith` is not found or required properties are missing
* 501: Share type or the resource type is not supported
@@ -196,6 +197,7 @@ class RequestHandlerController extends Controller {
* @param array<string, mixed>|null $notification The actual payload of the notification
*
* @return JSONResponse<Http::STATUS_CREATED, array<string, mixed>, array{}>|JSONResponse<Http::STATUS_BAD_REQUEST, CloudFederationAPIValidationError, array{}>|JSONResponse<Http::STATUS_FORBIDDEN|Http::STATUS_NOT_IMPLEMENTED, CloudFederationAPIError, array{}>
*
* 201: The notification was successfully received
* 400: Bad request due to invalid parameters, e.g. when `type` is invalid or missing
* 403: Getting resource is not allowed
+2 -2
View File
@@ -10,7 +10,7 @@
<name>Comments</name>
<summary>Files app plugin to add comments to files</summary>
<description>Files app plugin to add comments to files</description>
<version>1.20.1</version>
<version>1.21.0</version>
<licence>agpl</licence>
<author>Arthur Schiwon</author>
<author>Vincent Petry</author>
@@ -21,7 +21,7 @@
<category>social</category>
<bugs>https://github.com/nextcloud/server/issues</bugs>
<dependencies>
<nextcloud min-version="30" max-version="30"/>
<nextcloud min-version="31" max-version="31"/>
</dependencies>
<activity>
+5 -4
View File
@@ -19,18 +19,19 @@ OC.L10N.register(
"New comment" : "تعليق جديد",
"Write a comment …" : "أكتُب تعليق ...",
"Post comment" : "أضف تعليق",
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات : للإيموجي / للاقط الذكي",
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
"Could not reload comments" : "تعذّرت إعادة تحميل التعليقات",
"Failed to mark comments as read" : "فشل في تعيين ملاحظات كمقرؤة",
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
"No comments yet, start the conversation!" : "لا توجد تعليقات, ابدأ النقاش الآن!",
"No more messages" : "لامزيد من الرسائل",
"Retry" : "أعد المحاولة",
"Failed to mark comments as read" : "إخفاق في تعيين ملاحظات كمقرؤة",
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
"Comment" : "تعليق",
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
"Comment deleted" : "التعليق محذوف",
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق"
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها"
},
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
+5 -4
View File
@@ -17,18 +17,19 @@
"New comment" : "تعليق جديد",
"Write a comment …" : "أكتُب تعليق ...",
"Post comment" : "أضف تعليق",
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات : للإيموجي / للاقط الذكي",
"@ for mentions, : for emoji, / for smart picker" : "@ للإشارات، : للإيموجي، / للاقط الذكي",
"Could not reload comments" : "تعذّرت إعادة تحميل التعليقات",
"Failed to mark comments as read" : "فشل في تعيين ملاحظات كمقرؤة",
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
"No comments yet, start the conversation!" : "لا توجد تعليقات, ابدأ النقاش الآن!",
"No more messages" : "لامزيد من الرسائل",
"Retry" : "أعد المحاولة",
"Failed to mark comments as read" : "إخفاق في تعيين ملاحظات كمقرؤة",
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
"Comment" : "تعليق",
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
"Comment deleted" : "التعليق محذوف",
"An error occurred while trying to delete the comment" : "حدث خطأ أثناء محاولة حذف التعليق",
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق"
"An error occurred while trying to create the comment" : "حدث خطأ أثناء محاولة إنشاء التعليق",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها"
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Espublizar el comentariu",
"@ for mentions, : for emoji, / for smart picker" : "@ pa les menciones, : pa los fustaxes, / pal selector intelixente",
"Could not reload comments" : "Nun se pudieron recargar los comentarios",
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
"No comments yet, start the conversation!" : "Nun hai comentarios, ¡anicia una conversación!",
"No more messages" : "Nun hai más mensaxes",
"Retry" : "Retentar",
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentariu nuevu","{unread} comentarios nuevos"],
"Comment" : "Comentariu",
"An error occurred while trying to edit the comment" : "Prodúxose un error mentanto se tentaba d'editar el comentariu",
"Comment deleted" : "Desanicióse'l comentariu",
"An error occurred while trying to delete the comment" : "Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu"
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}"
},
"nplurals=2; plural=(n != 1);");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Espublizar el comentariu",
"@ for mentions, : for emoji, / for smart picker" : "@ pa les menciones, : pa los fustaxes, / pal selector intelixente",
"Could not reload comments" : "Nun se pudieron recargar los comentarios",
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
"No comments yet, start the conversation!" : "Nun hai comentarios, ¡anicia una conversación!",
"No more messages" : "Nun hai más mensaxes",
"Retry" : "Retentar",
"Failed to mark comments as read" : "Nun se pudieron marcar los comentarios como lleíos",
"Unable to load the comments list" : "Nun ye posible cargar la llista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentariu nuevu","{unread} comentarios nuevos"],
"Comment" : "Comentariu",
"An error occurred while trying to edit the comment" : "Prodúxose un error mentanto se tentaba d'editar el comentariu",
"Comment deleted" : "Desanicióse'l comentariu",
"An error occurred while trying to delete the comment" : "Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu"
"An error occurred while trying to create the comment" : "Prodúxose un error mentanto se tentaba de crear el comentariu",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+3 -2
View File
@@ -16,15 +16,16 @@ OC.L10N.register(
"Delete comment" : "Изтрий коментар",
"Cancel edit" : "Отказ на редактиране",
"Post comment" : "Публикуване на коментар",
"Unable to load the comments list" : "Списъкът с коментари не може да се зареди",
"No comments yet, start the conversation!" : "Все още няма коментари, започнете разговор!",
"No more messages" : " Няма повече съобщения",
"Retry" : "Опитай отново",
"Unable to load the comments list" : "Списъкът с коментари не може да се зареди",
"_1 new comment_::_{unread} new comments_" : ["{unread} нови коментари","{unread} нови коментари"],
"Comment" : "Коментар",
"An error occurred while trying to edit the comment" : "Възникна грешка при опит за редактиране на коментара",
"Comment deleted" : " Изтрит е коментар",
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар"
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит"
},
"nplurals=2; plural=(n != 1);");
+3 -2
View File
@@ -14,15 +14,16 @@
"Delete comment" : "Изтрий коментар",
"Cancel edit" : "Отказ на редактиране",
"Post comment" : "Публикуване на коментар",
"Unable to load the comments list" : "Списъкът с коментари не може да се зареди",
"No comments yet, start the conversation!" : "Все още няма коментари, започнете разговор!",
"No more messages" : " Няма повече съобщения",
"Retry" : "Опитай отново",
"Unable to load the comments list" : "Списъкът с коментари не може да се зареди",
"_1 new comment_::_{unread} new comments_" : ["{unread} нови коментари","{unread} нови коментари"],
"Comment" : "Коментар",
"An error occurred while trying to edit the comment" : "Възникна грешка при опит за редактиране на коментара",
"Comment deleted" : " Изтрит е коментар",
"An error occurred while trying to delete the comment" : "Възникна грешка при опит за изтриване на коментара",
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар"
"An error occurred while trying to create the comment" : "Възникна грешка при опит за създаване на коментар",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Publica el comentari",
"@ for mentions, : for emoji, / for smart picker" : "@ per a mencions, : per a emojis, / per al selector intel·ligent",
"Could not reload comments" : "No s'han pogut tornar a carregar els comentaris",
"Failed to mark comments as read" : "No s'han pogut marcar els comentaris com a llegits",
"Unable to load the comments list" : "No s'ha pogut carregar la llista de comentaris",
"No comments yet, start the conversation!" : "Encara no hi ha cap comentari. Enceteu la conversa!",
"No more messages" : "No hi ha més missatges",
"Retry" : "Torna-ho a provar",
"Failed to mark comments as read" : "No s'han pogut marcar els comentaris com a llegits",
"Unable to load the comments list" : "No s'ha pogut carregar la llista de comentaris",
"_1 new comment_::_{unread} new comments_" : ["1 comentari nou","{unread} comentaris nous"],
"Comment" : "Comentari",
"An error occurred while trying to edit the comment" : "S'ha produït un error en intentar editar el comentari",
"Comment deleted" : "S'ha suprimit el comentari",
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari"
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit"
},
"nplurals=2; plural=(n != 1);");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Publica el comentari",
"@ for mentions, : for emoji, / for smart picker" : "@ per a mencions, : per a emojis, / per al selector intel·ligent",
"Could not reload comments" : "No s'han pogut tornar a carregar els comentaris",
"Failed to mark comments as read" : "No s'han pogut marcar els comentaris com a llegits",
"Unable to load the comments list" : "No s'ha pogut carregar la llista de comentaris",
"No comments yet, start the conversation!" : "Encara no hi ha cap comentari. Enceteu la conversa!",
"No more messages" : "No hi ha més missatges",
"Retry" : "Torna-ho a provar",
"Failed to mark comments as read" : "No s'han pogut marcar els comentaris com a llegits",
"Unable to load the comments list" : "No s'ha pogut carregar la llista de comentaris",
"_1 new comment_::_{unread} new comments_" : ["1 comentari nou","{unread} comentaris nous"],
"Comment" : "Comentari",
"An error occurred while trying to edit the comment" : "S'ha produït un error en intentar editar el comentari",
"Comment deleted" : "S'ha suprimit el comentari",
"An error occurred while trying to delete the comment" : "S'ha produït un error en intentar suprimir el comentari",
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari"
"An error occurred while trying to create the comment" : "S'ha produït un error en intentar crear el comentari",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -4
View File
@@ -10,7 +10,6 @@ OC.L10N.register(
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> k souborům",
"Files" : "Soubory",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od účtu, který byl později smazán",
"{user} mentioned you in a comment on \"{file}\"" : "{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Edit comment" : "Upravit komentář",
@@ -21,16 +20,17 @@ OC.L10N.register(
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
"Failed to mark comments as read" : "Nepodařilo se označit komentáře jako přečtené",
"Unable to load the comments list" : "Nedaří se načíst seznam komentářů",
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
"No more messages" : "Žádné další zprávy",
"Retry" : "Zkusit znovu",
"Failed to mark comments as read" : "Nepodařilo se označit komentáře jako přečtené",
"Unable to load the comments list" : "Nedaří se načíst seznam komentářů",
"_1 new comment_::_{unread} new comments_" : ["Jeden nový komentář","{unread} nové komentáře","{unread} nových komentářů","{unread} nové komentáře"],
"Comment" : "Komentář",
"An error occurred while trying to edit the comment" : "Došlo k chybě při pokusu o úpravu komentáře",
"Comment deleted" : "Komentář smazán",
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře"
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
+4 -4
View File
@@ -8,7 +8,6 @@
"{author} commented on {file}" : "{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files" : "<strong>Komentáře</strong> k souborům",
"Files" : "Soubory",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od účtu, který byl později smazán",
"{user} mentioned you in a comment on \"{file}\"" : "{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files" : "Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Edit comment" : "Upravit komentář",
@@ -19,16 +18,17 @@
"Post comment" : "Odeslat komentář",
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
"Failed to mark comments as read" : "Nepodařilo se označit komentáře jako přečtené",
"Unable to load the comments list" : "Nedaří se načíst seznam komentářů",
"No comments yet, start the conversation!" : "Zatím bez komentářů, začněte konverzaci!",
"No more messages" : "Žádné další zprávy",
"Retry" : "Zkusit znovu",
"Failed to mark comments as read" : "Nepodařilo se označit komentáře jako přečtené",
"Unable to load the comments list" : "Nedaří se načíst seznam komentářů",
"_1 new comment_::_{unread} new comments_" : ["Jeden nový komentář","{unread} nové komentáře","{unread} nových komentářů","{unread} nové komentáře"],
"Comment" : "Komentář",
"An error occurred while trying to edit the comment" : "Došlo k chybě při pokusu o úpravu komentáře",
"Comment deleted" : "Komentář smazán",
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře"
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}
+6 -5
View File
@@ -19,18 +19,19 @@ OC.L10N.register(
"New comment" : "Ny kommentar",
"Write a comment …" : "Skriv kommentar…",
"Post comment" : "Skriv kommentar",
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at omtale, \":\" for emojis, \"/\" for Smart Vælger",
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
"Could not reload comments" : "Kunne ikke indlæse kommentarer",
"Failed to mark comments as read" : "Kunne ikke markere kommentarer som læst",
"Unable to load the comments list" : "Kan ikke indlæse kommentarlisten",
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
"No more messages" : "Ikke flere beskeder",
"Retry" : "Prøv igen",
"Failed to mark comments as read" : "Kunne ikke markere kommentarer som læst",
"Unable to load the comments list" : "Kan ikke indlæse kommentarlisten",
"_1 new comment_::_{unread} new comments_" : ["1 ny kommentar","{unread} nye kommentarer"],
"Comment" : "Kommenter",
"Comment" : "Kommentér",
"An error occurred while trying to edit the comment" : "Der opstod en fejl under forsøget på at redigere kommentaren",
"Comment deleted" : "Kommentar slettet",
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren"
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet"
},
"nplurals=2; plural=(n != 1);");
+6 -5
View File
@@ -17,18 +17,19 @@
"New comment" : "Ny kommentar",
"Write a comment …" : "Skriv kommentar…",
"Post comment" : "Skriv kommentar",
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at omtale, \":\" for emojis, \"/\" for Smart Vælger",
"@ for mentions, : for emoji, / for smart picker" : "\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
"Could not reload comments" : "Kunne ikke indlæse kommentarer",
"Failed to mark comments as read" : "Kunne ikke markere kommentarer som læst",
"Unable to load the comments list" : "Kan ikke indlæse kommentarlisten",
"No comments yet, start the conversation!" : "Ingen kommentarer endnu, start samtalen!",
"No more messages" : "Ikke flere beskeder",
"Retry" : "Prøv igen",
"Failed to mark comments as read" : "Kunne ikke markere kommentarer som læst",
"Unable to load the comments list" : "Kan ikke indlæse kommentarlisten",
"_1 new comment_::_{unread} new comments_" : ["1 ny kommentar","{unread} nye kommentarer"],
"Comment" : "Kommenter",
"Comment" : "Kommentér",
"An error occurred while trying to edit the comment" : "Der opstod en fejl under forsøget på at redigere kommentaren",
"Comment deleted" : "Kommentar slettet",
"An error occurred while trying to delete the comment" : "Der opstod en fejl under forsøget på at slette kommentaren",
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren"
"An error occurred while trying to create the comment" : "Der opstod en fejl under forsøget på at oprette kommentaren",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
"No more messages" : "Keine weiteren Nachrichten",
"Retry" : "Wiederholen",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
"Comment" : "Kommentar",
"An error occurred while trying to edit the comment" : "Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten"
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt"
},
"nplurals=2; plural=(n != 1);");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginne die Diskussion!",
"No more messages" : "Keine weiteren Nachrichten",
"Retry" : "Wiederholen",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste konnte nicht geladen werden",
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
"Comment" : "Kommentar",
"An error occurred while trying to edit the comment" : "Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten"
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste kann nicht geladen werden",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
"No more messages" : "Keine weiteren Nachrichten",
"Retry" : "Wiederholen",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste kann nicht geladen werden",
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
"Comment" : "Kommentar",
"An error occurred while trying to edit the comment" : "Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten"
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt"
},
"nplurals=2; plural=(n != 1);");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Kommentar veröffentlichen",
"@ for mentions, : for emoji, / for smart picker" : "@ für Erwähnungen, : für Emoji, / für Smart Picker",
"Could not reload comments" : "Kommentare konnten nicht erneut geladen werden",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste kann nicht geladen werden",
"No comments yet, start the conversation!" : "Keine Kommentare bisher. Beginnen Sie die Diskussion!",
"No more messages" : "Keine weiteren Nachrichten",
"Retry" : "Wiederholen",
"Failed to mark comments as read" : "Kommentare konnten nicht als gelesen markiert werden",
"Unable to load the comments list" : "Kommentarliste kann nicht geladen werden",
"_1 new comment_::_{unread} new comments_" : ["1 neuer Kommentar","[unread] neue Kommentare"],
"Comment" : "Kommentar",
"An error occurred while trying to edit the comment" : "Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted" : "Kommentar gelöscht",
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten"
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+3 -2
View File
@@ -17,15 +17,16 @@ OC.L10N.register(
"Cancel edit" : "Ακύρωση επεξεργασίας",
"New comment" : "Νέο σχόλιο",
"Post comment" : "Αναρτήστε σχόλιο",
"Unable to load the comments list" : "Δεν είναι δυνατή η μεταφόρτωση της λίστας σχολίων.",
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
"No more messages" : "Δεν υπάρχουν άλλα μηνύματα",
"Retry" : "Δοκιμή ξανά",
"Unable to load the comments list" : "Δεν είναι δυνατή η μεταφόρτωση της λίστας σχολίων.",
"_1 new comment_::_{unread} new comments_" : ["1 νέο σχόλιο","{unread} νέα σχόλια"],
"Comment" : "Σχόλιο",
"An error occurred while trying to edit the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια επεξεργασίας του σχολίου",
"Comment deleted" : "Το σχόλιο διαγράφηκε",
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου"
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί"
},
"nplurals=2; plural=(n != 1);");
+3 -2
View File
@@ -15,15 +15,16 @@
"Cancel edit" : "Ακύρωση επεξεργασίας",
"New comment" : "Νέο σχόλιο",
"Post comment" : "Αναρτήστε σχόλιο",
"Unable to load the comments list" : "Δεν είναι δυνατή η μεταφόρτωση της λίστας σχολίων.",
"No comments yet, start the conversation!" : "Δεν υπάρχουν σχόλια, ξεκινήστε την συζήτηση!",
"No more messages" : "Δεν υπάρχουν άλλα μηνύματα",
"Retry" : "Δοκιμή ξανά",
"Unable to load the comments list" : "Δεν είναι δυνατή η μεταφόρτωση της λίστας σχολίων.",
"_1 new comment_::_{unread} new comments_" : ["1 νέο σχόλιο","{unread} νέα σχόλια"],
"Comment" : "Σχόλιο",
"An error occurred while trying to edit the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια επεξεργασίας του σχολίου",
"Comment deleted" : "Το σχόλιο διαγράφηκε",
"An error occurred while trying to delete the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου"
"An error occurred while trying to create the comment" : "Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
"Failed to mark comments as read" : "Failed to mark comments as read",
"Unable to load the comments list" : "Unable to load the comments list",
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
"No more messages" : "No more messages",
"Retry" : "Retry",
"Failed to mark comments as read" : "Failed to mark comments as read",
"Unable to load the comments list" : "Unable to load the comments list",
"_1 new comment_::_{unread} new comments_" : ["1 new comment","{unread} new comments"],
"Comment" : "Comment",
"An error occurred while trying to edit the comment" : "An error occurred while trying to edit the comment",
"Comment deleted" : "Comment deleted",
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment"
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted"
},
"nplurals=2; plural=(n != 1);");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Post comment",
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
"Could not reload comments" : "Could not reload comments",
"Failed to mark comments as read" : "Failed to mark comments as read",
"Unable to load the comments list" : "Unable to load the comments list",
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
"No more messages" : "No more messages",
"Retry" : "Retry",
"Failed to mark comments as read" : "Failed to mark comments as read",
"Unable to load the comments list" : "Unable to load the comments list",
"_1 new comment_::_{unread} new comments_" : ["1 new comment","{unread} new comments"],
"Comment" : "Comment",
"An error occurred while trying to edit the comment" : "An error occurred while trying to edit the comment",
"Comment deleted" : "Comment deleted",
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment"
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "You were mentioned on \"{file}\", in a comment by a user that has since been deleted"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Publicar comentario",
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoji, / para selector inteligente",
"Could not reload comments" : "No se pudieron recargar los comentarios",
"Failed to mark comments as read" : "Fallo al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se pudo cargar la lista de comentarios",
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Failed to mark comments as read" : "Fallo al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se pudo cargar la lista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos","{unread} comentarios nuevos"],
"Comment" : "Comentar",
"An error occurred while trying to edit the comment" : "Ocurrió un error intentando editar el comentario",
"Comment deleted" : "Comentario borrado",
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario"
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Le han mencionado en \"{file}\", en un comentario de un usuario que ha sido eliminado desde entonces"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Publicar comentario",
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoji, / para selector inteligente",
"Could not reload comments" : "No se pudieron recargar los comentarios",
"Failed to mark comments as read" : "Fallo al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se pudo cargar la lista de comentarios",
"No comments yet, start the conversation!" : "¡No hay comentarios, empieza la conversación!",
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Failed to mark comments as read" : "Fallo al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se pudo cargar la lista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos","{unread} comentarios nuevos"],
"Comment" : "Comentar",
"An error occurred while trying to edit the comment" : "Ocurrió un error intentando editar el comentario",
"Comment deleted" : "Comentario borrado",
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario"
"An error occurred while trying to create the comment" : "Ocurrió un error intentando crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Le han mencionado en \"{file}\", en un comentario de un usuario que ha sido eliminado desde entonces"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+4 -3
View File
@@ -16,16 +16,17 @@ OC.L10N.register(
"Delete comment" : "Borrar comentario",
"Cancel edit" : "Cancelar edición",
"Post comment" : "Publicar comentario",
"Failed to mark comments as read" : "Error al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Failed to mark comments as read" : "Error al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos","{unread} comentarios nuevos"],
"Comment" : "Comentario",
"An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario",
"Comment deleted" : "Comentario eliminado",
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario"
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+4 -3
View File
@@ -14,16 +14,17 @@
"Delete comment" : "Borrar comentario",
"Cancel edit" : "Cancelar edición",
"Post comment" : "Publicar comentario",
"Failed to mark comments as read" : "Error al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Failed to mark comments as read" : "Error al marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} comentarios nuevos","{unread} comentarios nuevos"],
"Comment" : "Comentario",
"An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario",
"Comment deleted" : "Comentario eliminado",
"An error occurred while trying to delete the comment" : "Ocurrió un error al intentar eliminar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario"
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Publicar comentario",
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoticonos, / para selector inteligente",
"Could not reload comments" : "No se pudieron recargar los comentarios",
"Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} nuevos comentarios","{unread} nuevos comentarios"],
"Comment" : "Comentario",
"An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario",
"Comment deleted" : "Comentario borrado",
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario"
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Publicar comentario",
"@ for mentions, : for emoji, / for smart picker" : "@ para menciones, : para emoticonos, / para selector inteligente",
"Could not reload comments" : "No se pudieron recargar los comentarios",
"Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"No comments yet, start the conversation!" : "¡Aún no hay comentarios, inicia la conversación!",
"No more messages" : "No hay más mensajes",
"Retry" : "Reintentar",
"Failed to mark comments as read" : "No se pudieron marcar los comentarios como leídos",
"Unable to load the comments list" : "No se puede cargar la lista de comentarios",
"_1 new comment_::_{unread} new comments_" : ["1 comentario nuevo","{unread} nuevos comentarios","{unread} nuevos comentarios"],
"Comment" : "Comentario",
"An error occurred while trying to edit the comment" : "Ocurrió un error al intentar editar el comentario",
"Comment deleted" : "Comentario borrado",
"An error occurred while trying to delete the comment" : "Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario"
"An error occurred while trying to create the comment" : "Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}
+4 -9
View File
@@ -9,28 +9,23 @@ OC.L10N.register(
"%1$s commented on %2$s" : "%1$s kommenteeris %2$s",
"{author} commented on {file}" : "{author} kommenteeris faili {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentaarid</strong> failidele",
"Files" : "Failid",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Sind mainiti \"{file}\" kommentaarides konto poolt, mis on nüüdseks kustutatud",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mainis sind faili \"{file}\" kommentaaris",
"Files app plugin to add comments to files" : "Failid rakenduse laiendus failidele kommentaaride lisamiseks",
"Edit comment" : "Muuda kommentaari",
"Delete comment" : "Kustuta kommentaar",
"Cancel edit" : "Loobu muutmisest",
"New comment" : "Uus kommentaar",
"Write a comment …" : "Kirjuta kommentaar...",
"Post comment" : "Postita kommentaar",
"@ for mentions, : for emoji, / for smart picker" : "@ mainimiseks, : emojide jaoks, / nutika valija jaoks",
"Could not reload comments" : "Ei saanud kommentaare uuesti laadida",
"Failed to mark comments as read" : "Kommentaaride loetuks märkimine ebaõnnestus",
"Unable to load the comments list" : "Kommentaaride loendi laadimine ebaõnnestus",
"No comments yet, start the conversation!" : "Kommentaare veel pole, alusta vestlust!",
"No more messages" : "Rohkem teateid pole",
"Retry" : "Proovi uuesti",
"Failed to mark comments as read" : "Kommentaaride loetuks märkimine ebaõnnestus",
"Unable to load the comments list" : "Kommentaaride loendi laadimine ebaõnnestus",
"_1 new comment_::_{unread} new comments_" : ["1 uus kommentaar","{unread} uus kommentaar"],
"Comment" : "Kommentaar",
"An error occurred while trying to edit the comment" : "Kommentaari muutmisel tekkis tõrge",
"Comment deleted" : "Kommentaar kustutatud",
"An error occurred while trying to delete the comment" : "Kommentaari kustutamisel tekkis tõrge",
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge"
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud."
},
"nplurals=2; plural=(n != 1);");
+4 -9
View File
@@ -7,28 +7,23 @@
"%1$s commented on %2$s" : "%1$s kommenteeris %2$s",
"{author} commented on {file}" : "{author} kommenteeris faili {file}",
"<strong>Comments</strong> for files" : "<strong>Kommentaarid</strong> failidele",
"Files" : "Failid",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Sind mainiti \"{file}\" kommentaarides konto poolt, mis on nüüdseks kustutatud",
"{user} mentioned you in a comment on \"{file}\"" : "{user} mainis sind faili \"{file}\" kommentaaris",
"Files app plugin to add comments to files" : "Failid rakenduse laiendus failidele kommentaaride lisamiseks",
"Edit comment" : "Muuda kommentaari",
"Delete comment" : "Kustuta kommentaar",
"Cancel edit" : "Loobu muutmisest",
"New comment" : "Uus kommentaar",
"Write a comment …" : "Kirjuta kommentaar...",
"Post comment" : "Postita kommentaar",
"@ for mentions, : for emoji, / for smart picker" : "@ mainimiseks, : emojide jaoks, / nutika valija jaoks",
"Could not reload comments" : "Ei saanud kommentaare uuesti laadida",
"Failed to mark comments as read" : "Kommentaaride loetuks märkimine ebaõnnestus",
"Unable to load the comments list" : "Kommentaaride loendi laadimine ebaõnnestus",
"No comments yet, start the conversation!" : "Kommentaare veel pole, alusta vestlust!",
"No more messages" : "Rohkem teateid pole",
"Retry" : "Proovi uuesti",
"Failed to mark comments as read" : "Kommentaaride loetuks märkimine ebaõnnestus",
"Unable to load the comments list" : "Kommentaaride loendi laadimine ebaõnnestus",
"_1 new comment_::_{unread} new comments_" : ["1 uus kommentaar","{unread} uus kommentaar"],
"Comment" : "Kommentaar",
"An error occurred while trying to edit the comment" : "Kommentaari muutmisel tekkis tõrge",
"Comment deleted" : "Kommentaar kustutatud",
"An error occurred while trying to delete the comment" : "Kommentaari kustutamisel tekkis tõrge",
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge"
"An error occurred while trying to create the comment" : "Kommentaari lisamisel tekkis tõrge",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}
+4 -3
View File
@@ -21,16 +21,17 @@ OC.L10N.register(
"Post comment" : "Argitaratu iruzkina",
"@ for mentions, : for emoji, / for smart picker" : "@ aipamenetarako, : emojientzako, / hautatzaile adimentsurako",
"Could not reload comments" : "Ezin izan dira iruzkinak freskatu",
"Failed to mark comments as read" : "Iruzkinak irakurritako gisa markatzeak huts egin du",
"Unable to load the comments list" : "Ezin da iruzkinen zerrenda kargatu",
"No comments yet, start the conversation!" : "Oraindik ez dago iruzkinik, izan zaitez lehena zerbait esanez!",
"No more messages" : "Ez da mezu gehiagorik",
"Retry" : "Saiatu berriro",
"Failed to mark comments as read" : "Iruzkinak irakurritako gisa markatzeak huts egin du",
"Unable to load the comments list" : "Ezin da iruzkinen zerrenda kargatu",
"_1 new comment_::_{unread} new comments_" : ["Iruzkin berri 1","{unread} iruzkin berri"],
"Comment" : "Iruzkindu",
"An error occurred while trying to edit the comment" : "Errorea gertatu da iruzkina editatzen saiatzean",
"Comment deleted" : "Iruzkina ezabatu da",
"An error occurred while trying to delete the comment" : "Errorea gertatu da iruzkina ezabatzen saiatzean",
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean"
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean"
},
"nplurals=2; plural=(n != 1);");
+4 -3
View File
@@ -19,16 +19,17 @@
"Post comment" : "Argitaratu iruzkina",
"@ for mentions, : for emoji, / for smart picker" : "@ aipamenetarako, : emojientzako, / hautatzaile adimentsurako",
"Could not reload comments" : "Ezin izan dira iruzkinak freskatu",
"Failed to mark comments as read" : "Iruzkinak irakurritako gisa markatzeak huts egin du",
"Unable to load the comments list" : "Ezin da iruzkinen zerrenda kargatu",
"No comments yet, start the conversation!" : "Oraindik ez dago iruzkinik, izan zaitez lehena zerbait esanez!",
"No more messages" : "Ez da mezu gehiagorik",
"Retry" : "Saiatu berriro",
"Failed to mark comments as read" : "Iruzkinak irakurritako gisa markatzeak huts egin du",
"Unable to load the comments list" : "Ezin da iruzkinen zerrenda kargatu",
"_1 new comment_::_{unread} new comments_" : ["Iruzkin berri 1","{unread} iruzkin berri"],
"Comment" : "Iruzkindu",
"An error occurred while trying to edit the comment" : "Errorea gertatu da iruzkina editatzen saiatzean",
"Comment deleted" : "Iruzkina ezabatu da",
"An error occurred while trying to delete the comment" : "Errorea gertatu da iruzkina ezabatzen saiatzean",
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean"
"An error occurred while trying to create the comment" : "Errorea gertatu da iruzkina sortzen saiatzean",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted" : "\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

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