Compare commits

..

481 Commits

Author SHA1 Message Date
Robin Appelman
e1765cdef2 fix: make failed availability check apply in the same request
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-12 16:35:05 +01:00
Kate
e3edf43e28 Merge pull request #56096 from nextcloud/fix/56077/s3-configure-checksum-defaults 2025-11-03 11:08:33 +01:00
Stephan Orbaugh
ef21c79368 Merge pull request #55717 from DaanSelen/fix-issue-55665
fix(ObjectStoreStorage): fix s3 path encoding (issue causing 55665)
2025-11-03 10:58:53 +01:00
dependabot[bot]
a26d2a553f Merge pull request #56145 from nextcloud/dependabot/npm_and_yarn/eslint-9.39.0 2025-11-03 08:06:20 +00:00
dependabot[bot]
bfd2ede77d Merge pull request #56147 from nextcloud/dependabot/npm_and_yarn/sass-1.93.3 2025-11-03 00:47:42 +00:00
dependabot[bot]
4dcaca4e13 build(deps-dev): bump sass from 1.93.2 to 1.93.3
Bumps [sass](https://github.com/sass/dart-sass) from 1.93.2 to 1.93.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.93.2...1.93.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 00:24:17 +00:00
dependabot[bot]
eef8dc26ba build(deps-dev): bump eslint from 9.38.0 to 9.39.0
Bumps [eslint](https://github.com/eslint/eslint) from 9.38.0 to 9.39.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.38.0...v9.39.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.39.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 00:23:47 +00:00
Nextcloud bot
2232e6851e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-03 00:13:38 +00:00
Thomas Citharel
143d486748 Merge pull request #56140 from nextcloud/rakekniven-patch-2
chore(i18n): Fixed grammar
2025-11-02 21:38:01 +01:00
nextcloud-command
bb062d149e chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-11-02 19:22:56 +00:00
rakekniven
9f56a2fcfc chore(i18n): Fixed grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-11-02 20:13:02 +01:00
dependabot[bot]
2c851228d3 Merge pull request #55928 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/msw-2.11.6 2025-11-02 18:45:36 +00:00
Joas Schilling
ed050b2aae Merge pull request #56100 from nextcloud/rakekniven-patch-2
chore(l10n): Use numbered placeholders
2025-11-02 11:09:57 +01:00
rakekniven
ee39b5093d chore(l10n): Use numbered placeholders
Reported in Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2025-11-02 10:09:34 +01:00
Nextcloud bot
815338cdc0 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-02 00:13:29 +00:00
dependabot[bot]
35d6a829f1 Merge pull request #56122 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.2.7 2025-11-01 21:33:09 +00:00
Ferdinand Thiessen
4a63bd2068 Merge pull request #56039 from nextcloud/fix/theming-legacy-app-config
fix(theming): use IAppConfig for all ThemingDefaults
2025-11-01 18:13:11 +01:00
dependabot[bot]
7885ac53e0 build(deps-dev): bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.2.5 to 2.2.7.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.2.5...2.2.7)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.2.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 17:34:39 +01:00
Ferdinand Thiessen
0bb1deb3de Merge pull request #56087 from nextcloud/chore/remove-oc-host
chore: remove deprecated hosts functions from OC
2025-11-01 15:06:42 +01:00
Ferdinand Thiessen
f4ebcc7004 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 14:42:02 +01:00
Ferdinand Thiessen
cf7ed089e1 chore: remove deprecated hosts functions from OC
- deprecated since Nextcloud 17

- To replace `OC.getHost` use `window.location.host`.
- To replace `OC.getHostName` use `window.location.hostname`.
- To replace `OC.getPort` use `window.location.port`.
- To replace `OC.getProtocol` use `window.location.protocol`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 14:40:00 +01:00
Ferdinand Thiessen
9f40d4cac3 Merge pull request #56088 from nextcloud/chore/remove-oc-blacklist
chore: remove `OC.fileIsBlacklisted`
2025-11-01 14:39:07 +01:00
Ferdinand Thiessen
8840b582c5 refactor(theming): migrate ThemingDefaults to OCP\AppFramework\Services\IAppConfig
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 14:16:40 +01:00
dependabot[bot]
195a9a08e4 Merge pull request #56121 from nextcloud/dependabot/composer/build/integration/behat/behat-3.26.0 2025-11-01 13:00:50 +00:00
Ferdinand Thiessen
f52e838a18 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 13:52:06 +01:00
Ferdinand Thiessen
fd0a7351c3 chore: remove OC.fileIsBlacklisted
Its deprecated since Nextcloud 18 and nowadays we have much more complex
logic for this.
So the proper replacement is to use `validateFilename` from
`@nextcloud/files` package.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 13:50:14 +01:00
Ferdinand Thiessen
f67d90ab27 Merge pull request #56067 from nextcloud/refactor/twofactor-vue3
refactor(twofactor_backupcodes): migrate to Typescript and Vue 3
2025-11-01 13:41:04 +01:00
Ferdinand Thiessen
9008175bff chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 12:40:02 +01:00
Ferdinand Thiessen
95915340f5 chore(twofactor_backupcodes): migrate to Vue 3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 12:35:24 +01:00
Ferdinand Thiessen
11f4fa92cf refactor(twofactor_backupcodes): migrate Vue to script-setup and Typescript
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 12:34:26 +01:00
Ferdinand Thiessen
95f2d5dbac refactor(twofactor_backupcodes): migrate frontend to Typescript
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-01 12:34:26 +01:00
dependabot[bot]
fb78ee8389 build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.25.0 to 3.26.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.25.0...v3.26.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:07:27 +00:00
Nextcloud bot
095e4709b7 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-01 00:13:28 +00:00
dependabot[bot]
ab2242c214 build(deps-dev): bump msw in /build/frontend-legacy
Bumps [msw](https://github.com/mswjs/msw) from 2.11.3 to 2.11.6.
- [Release notes](https://github.com/mswjs/msw/releases)
- [Changelog](https://github.com/mswjs/msw/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mswjs/msw/compare/v2.11.3...v2.11.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 17:18:31 +01:00
Joas Schilling
481edbd553 Merge pull request #56109 from nextcloud/dependabot/composer/mlocati/ip-lib-1.22.0
build(deps): Bump mlocati/ip-lib from 1.20.0 to 1.22.0
2025-10-31 16:57:29 +01:00
dependabot[bot]
a7e1492db3 Merge pull request #55920 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/marked-16.4.1 2025-10-31 15:12:49 +00:00
Joas Schilling
d1b9486d12 build(deps): Bump mlocati/ip-lib from 1.20.0 to 1.22.0
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-31 15:27:10 +01:00
Ferdinand Thiessen
700f4db967 Merge pull request #56063 from nextcloud/tests/taskprocessing
test(TaskProcessing): use proper types
2025-10-31 15:04:49 +01:00
dependabot[bot]
0ba6c779c8 Merge pull request #56000 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-9.1.0 2025-10-31 14:02:08 +00:00
Joas Schilling
10fa94ac94 Merge pull request #56108 from nextcloud/ci/noid/action-pin-versions
ci(actions): Pin action versions by hash
2025-10-31 10:22:38 +01:00
Joas Schilling
9198244e6d ci(actions): Pin action versions by hash
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-31 09:53:05 +01:00
dependabot[bot]
1650adedf7 build(deps): bump marked from 16.3.0 to 16.4.1 in /build/frontend-legacy
Bumps [marked](https://github.com/markedjs/marked) from 16.3.0 to 16.4.1.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v16.3.0...v16.4.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 09:35:15 +01:00
nextcloud-command
80af22ca2d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-31 07:53:05 +00:00
dependabot[bot]
5c55141353 build(deps): bump @nextcloud/vue from 9.0.1 to 9.1.0
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 9.0.1 to 9.1.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v9.0.1...v9.1.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-version: 9.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 08:40:48 +01:00
Nextcloud bot
f77c4f7c09 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-31 00:13:46 +00:00
dependabot[bot]
8eae6cc44f Merge pull request #55590 from nextcloud/dependabot/npm_and_yarn/stylelint-16.25.0 2025-10-30 23:35:44 +00:00
dependabot[bot]
aa20f7a0dd Merge pull request #55934 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/core-js-3.46.0 2025-10-30 23:16:24 +00:00
nextcloud-command
5d43550bd3 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-30 23:00:31 +00:00
dependabot[bot]
eca835aae0 build(deps): bump core-js in /build/frontend-legacy
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.45.1 to 3.46.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.46.0/packages/core-js)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.46.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-30 22:57:21 +00:00
Ferdinand Thiessen
fdbd376c1f Merge pull request #56086 from nextcloud/chore/remove-oc-navigation
chore: remove deprecated `OC.redirect` and `OC.reload`
2025-10-30 23:43:22 +01:00
nextcloud-command
2b2dac9754 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-30 22:23:30 +00:00
Ferdinand Thiessen
439f825774 chore: remove deprecated OC.redirect and OC.reload
- Deprecated since Nextcloud 17

To replace `OC.redirect` directly use `window.location`.
To replace `OC.reload` directly use `window.location.reload`.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-30 23:14:37 +01:00
Ferdinand Thiessen
f4e8cd13a4 Merge pull request #56089 from nextcloud/chore/remove-oc-set-get
chore: remove `OC.set` and `OC.get`
2025-10-30 23:13:06 +01:00
nextcloud-command
1c347bcac5 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-30 21:14:12 +00:00
Ferdinand Thiessen
bea30fcb2b chore: remove OC.set and OC.get
Both are deprecated since Nextcloud 19.
- For `get`, if really needed, use https://lodash.com/docs#get
- And for `set` https://lodash.com/docs#set

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-30 22:06:11 +01:00
Arthur Schiwon
5060d64c9b Merge pull request #56085 from nextcloud/fix/55613/drop-hard-base-checks
fix(LDAP): drop hard base checks for now
2025-10-30 14:56:35 +01:00
Marcel Klehr
99d6276826 Merge pull request #55713 from nextcloud/feat/taskprocessing/user-facing-error-message
feat(TaskProcessing): user-facing error messages
2025-10-30 12:29:43 +01:00
Daniel
4ecd21784b Merge pull request #56090 from nextcloud/fix/mailer/log-errors
fix(Mailer): Log errors
2025-10-30 12:02:29 +01:00
Fiehe Christoph
b87add2711 fix(s3): expose request_checksum_calculation and response_checksum_validation
Fix https://github.com/nextcloud/server/issues/56077

This commit makes the configuration settings 'request_checksum_calculation' and 'response_checksum_validation' of the S3Client from the AWS SDK for PHP configurable.

Signed-off-by: Fiehe Christoph  <c.fiehe@eurodata.de>
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-10-30 11:57:32 +01:00
Marcel Klehr
b5f057cdbc fix: Fix psalm issue
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:49:28 +01:00
Marcel Klehr
8207afb7db fix: Use UserFacingProcessingException properly in tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:40:11 +01:00
Marcel Klehr
1c33239e06 fix: autoloaderchecker
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:29:17 +01:00
Marcel Klehr
d04d575ed3 Merge branch 'master' into feat/taskprocessing/user-facing-error-message
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:13:39 +01:00
Marcel Klehr
3ee6999682 fix: Use substr to cut error messages
This allows for cutting them to longer lengths

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-30 10:07:57 +01:00
provokateurin
d8294a8531 fix(Mailer): Log errors
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-30 08:42:12 +01:00
dependabot[bot]
da13836617 Merge pull request #56004 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/babel/preset-typescript-7.28.5 2025-10-30 07:10:41 +00:00
Nextcloud bot
5ebb816d8b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-30 00:13:15 +00:00
Ferdinand Thiessen
af7c56a75e test(TaskProcessing): use proper types
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-30 00:07:56 +01:00
dependabot[bot]
50d825d979 build(deps-dev): bump @babel/preset-typescript in /build/frontend-legacy
Bumps [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript) from 7.27.1 to 7.28.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-preset-typescript)

---
updated-dependencies:
- dependency-name: "@babel/preset-typescript"
  dependency-version: 7.28.5
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 21:27:40 +01:00
dependabot[bot]
9e1ed7078f Merge pull request #56002 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/p-limit-7.2.0 2025-10-29 20:27:12 +00:00
dependabot[bot]
91db72cf8a Merge pull request #55995 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.2.5 2025-10-29 19:22:29 +00:00
Arthur Schiwon
57cb905580 fix(LDAP): drop hard base checks for now
The migration path is hard and unexpected. We can follow-up with a soft
setup check instead for a while, but needs to be discussed.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-29 18:21:45 +01:00
nextcloud-command
493d750c84 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-29 15:43:46 +00:00
dependabot[bot]
e27f78a7fc build(deps): bump p-limit from 7.1.1 to 7.2.0 in /build/frontend-legacy
Dependabot couldn't find the original pull request head commit, 054e51c5527e0dbe053ed62841c77da0f68fb103.
2025-10-29 14:44:38 +00:00
Andy Scherzinger
f06168f6c4 Merge pull request #55931 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/p-queue-9.0.0
build(deps): bump p-queue from 8.1.1 to 9.0.0 in /build/frontend-legacy
2025-10-29 13:19:40 +01:00
nextcloud-command
2fc4fac60d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-29 11:13:03 +00:00
dependabot[bot]
2b1772cef9 build(deps): bump p-queue from 8.1.1 to 9.0.0 in /build/frontend-legacy
Bumps [p-queue](https://github.com/sindresorhus/p-queue) from 8.1.1 to 9.0.0.
- [Release notes](https://github.com/sindresorhus/p-queue/releases)
- [Commits](https://github.com/sindresorhus/p-queue/compare/v8.1.1...v9.0.0)

---
updated-dependencies:
- dependency-name: p-queue
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 11:09:53 +00:00
John Molakvoæ
9e321297f9 Merge pull request #56074 from nextcloud/fix/token-log 2025-10-29 10:02:13 +01:00
nextcloud-command
1b0a5a8044 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-29 08:52:28 +00:00
skjnldsv
fae59e8569 fix(core): token change logging
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-10-29 08:49:28 +00:00
John Molakvoæ
52a9940255 Merge pull request #55728 from nextcloud/feat/snowflakeIds 2025-10-29 09:11:34 +01:00
dependabot[bot]
ea998d93b0 build(deps-dev): bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.2.3 to 2.2.5.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.2.3...2.2.5)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.2.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-29 07:27:15 +01:00
Nextcloud bot
445cce4ed8 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-29 00:13:46 +00:00
Andy Scherzinger
d91908bb96 Merge pull request #55829 from nextcloud/fix/ocm-probe-newer-endpoint
fix(ocm): probe standardized .well-known endpoint
2025-10-28 22:26:28 +01:00
dependabot[bot]
a836c8c034 Merge pull request #56003 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/libphonenumber-js-1.12.25 2025-10-28 20:40:23 +00:00
nextcloud-command
107ad04481 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-28 20:55:44 +01:00
dependabot[bot]
37520fca89 build(deps): bump libphonenumber-js in /build/frontend-legacy
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.24 to 1.12.25.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.24...v1.12.25)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 20:55:44 +01:00
dependabot[bot]
0cbbad74a8 Merge pull request #56005 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/types/dockerode-3.3.45 2025-10-28 19:35:44 +00:00
dependabot[bot]
b3abc41c4e Merge pull request #56006 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/vite-7.1.12 2025-10-28 18:00:18 +00:00
Ferdinand Thiessen
4b5494c5ba Merge pull request #55575 from nextcloud/fix/drag-drop-error
fix(files): make sure drag-and-drop and the upload menu behaves the same
2025-10-28 18:16:05 +01:00
Carl Schwan
336cc3fa35 feat(Db): Use SnowflakeId for previews
Allow to get an id for the storing the preview on disk before inserting
the preview on the DB.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-28 17:50:03 +01:00
Benjamin Gaussorgues
c9b055a0d0 feat(database): introduce Snowflake IDs generator
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2025-10-28 17:50:03 +01:00
Daniel
7a3ed09822 Merge pull request #55906 from nextcloud/fix/taskprocessing-tests
fix: Use proper userId in taskprocessing trigger tests
2025-10-28 17:41:44 +01:00
Ferdinand Thiessen
b5b81449a8 Merge pull request #56038 from nextcloud/chore/update-codeowners
chore: update codeowners
2025-10-28 17:14:48 +01:00
Ferdinand Thiessen
144e864806 Merge pull request #56033 from nextcloud/fix/cache-key
fix(Memcache): ensure global prefix depends on enabled apps
2025-10-28 17:03:49 +01:00
Ferdinand Thiessen
9bc56bd02d chore: update codeowners
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-28 16:20:38 +01:00
nextcloud-command
119ba0d887 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-28 15:17:26 +00:00
Ferdinand Thiessen
d6925b6b79 fix(files): make sure drag-and-drop and the upload menu behaves the same
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-28 16:08:43 +01:00
Ferdinand Thiessen
e4f06e102f Merge pull request #56034 from nextcloud/enh/noid/appmanager-upgrade-info-log
enh(AppManager): log which apps requires the upgrade procedure
2025-10-28 15:52:28 +01:00
Micke Nordin
111fa240bc fix(ocm): probe standardized .well-known endpoint
- Add `.well-known/ocm` to remote endpoint discovery checks.
- Improves compatibility with newer OCM deployments when probing remote servers.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-10-28 15:18:52 +01:00
Ferdinand Thiessen
4667634247 fix(theming): use IAppConfig for all ThemingDefaults
Fixes issues where values have the wrong type.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-28 14:58:17 +01:00
Andy Scherzinger
4174c580b3 Merge pull request #55471 from SUNET/kano-ocm-discovery
fix(OCM): align parameter naming with spec and extend OCMProvider
2025-10-28 14:52:04 +01:00
dependabot[bot]
2addf7b6bd Merge pull request #56001 from nextcloud/dependabot/npm_and_yarn/types/dockerode-3.3.45 2025-10-28 13:49:56 +00:00
Joas Schilling
bd886170a7 Merge pull request #56037 from nextcloud/chore/cypress-split-random
chore: use different cypress-split seed per PR
2025-10-28 13:52:23 +01:00
Sebastian Krupinski
59c9aada8d Merge pull request #52882 from nextcloud/fix/issue-6838-use-old-event-information-when-new-is-missing
fix(CalDav): use old event information if new is missing
2025-10-28 08:38:08 -04:00
dependabot[bot]
32fef60c7d build(deps-dev): bump vite in /build/frontend-legacy
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.8 to 7.1.12.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.1.12/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.12/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 12:20:47 +00:00
Maxence Lange
4b274a858e Merge pull request #55830 from nextcloud/fix/noid/lazy-from-construct
fix(files-external): do not load lazy appconfig from construct
2025-10-28 10:29:26 -01:00
Joas Schilling
be1af13323 Merge pull request #55990 from nextcloud/bump/lognormalizer
build: Bump log normalizer to 2.0.0
2025-10-28 08:23:53 +01:00
Nextcloud bot
f8d1d7fd35 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-28 00:13:44 +00:00
dependabot[bot]
4b9ebe43b0 Merge pull request #55999 from nextcloud/dependabot/npm_and_yarn/vite-7.1.12 2025-10-27 22:16:57 +00:00
Ferdinand Thiessen
21a34287a9 chore: use different cypress-split seed per PR
This allows:
1. detect tests that depend on each other
2. reduces places where test fail because only the expensive tests are
   queued next to each other.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 23:16:09 +01:00
Ferdinand Thiessen
206b61b861 Merge pull request #55882 from nextcloud/chore/rector-phpunit-11
refactor: apply rector rules for PHPUnit 10
2025-10-27 23:15:36 +01:00
Ferdinand Thiessen
c99d27436f chore: adjust duplicated use in User_LDAPTest
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Ferdinand Thiessen
7f125551f5 chore: migrate @small and @medium to attributes
Both are basically special groups, which we do not use.
But they also had a special meaning in the past which now only works
when set on the test class: They set the test timeout.

So for `@small` we just remove them, for `@medium` we remove where not
needed but keep it on the class where the full test class might make use
of the adjusted timeout.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Ferdinand Thiessen
d6d6747a73 refactor: apply rector rules for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
Ferdinand Thiessen
8f74228147 chore: Nextcloud 32 is PHP 8.2+
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 21:56:04 +01:00
nextcloud-command
f55d77f9a0 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-27 20:47:31 +00:00
dependabot[bot]
0beae74e20 build(deps-dev): bump vite from 7.1.11 to 7.1.12
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 7.1.11 to 7.1.12.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v7.1.12/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.12/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 20:36:00 +00:00
Andy Scherzinger
adc20122c8 Merge pull request #56019 from nextcloud/style/noid/outlineShareExpiryIcon
Replace icon with outline variant
2025-10-27 19:11:36 +01:00
Arthur Schiwon
ab9a92fac8 feat(AppManager): log which apps requires the upgrade procedure
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-27 18:05:00 +01:00
nextcloud-command
91e07ab274 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-27 16:54:14 +00:00
Joas Schilling
2ec7fa88cc fix(log): Fix call to normalize function
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-27 16:46:10 +01:00
Joas Schilling
44b4b4072b build: Bump log normalizer to 2.0.0
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-27 16:46:09 +01:00
Andy Scherzinger
67b8be5926 style(icons): Replace icon with outline variant
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-10-27 16:29:55 +01:00
Ferdinand Thiessen
b4d19748fa fix(Memcache): ensure global prefix depends on enabled apps
- ensure the prefix is changed when an app is (dis)enabled
- ensure the app ids are included in the hash instead of only the
  version numbers
- ensure hash is deterministic by always use the same order.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-27 16:18:24 +01:00
Maxence Lange
07d3f1c313 fix(files-external): do not load lazy appconfig from construct
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-27 13:37:13 -01:00
Joas Schilling
6ef91f0549 Merge pull request #55910 from nextcloud/bugfix/55909/trim-meta-data
fix(bfp): Trim meta data so it can still be stored
2025-10-27 15:11:40 +01:00
Carl Schwan
ca47f87359 Merge pull request #56026 from nextcloud/carl/bump-autoloader
chore(composer): Bump autoloader
2025-10-27 14:37:49 +01:00
Ferdinand Thiessen
1d4d6cad29 Merge pull request #55965 from nextcloud/artonge/refactor/port_files_version_to_vue3
refactor(files_versions): Migrate to Vue3
2025-10-27 14:16:22 +01:00
dependabot[bot]
ae82824ef5 Merge pull request #55940 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/webpack-5.102.1 2025-10-27 12:14:29 +00:00
Carl Schwan
9e77ab44fc chore(composer): Bump autoloader
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-27 13:12:47 +01:00
Ferdinand Thiessen
d0e25af1af Merge pull request #55954 from nextcloud/carl/fix-preview2
fix: Fetching previews on Oracle
2025-10-27 13:00:25 +01:00
Micke Nordin
a171fbf318 fix(cloud-federation-api): align inviteAccepted parameter naming with spec
- Rename method parameter from `userId` to `userID`.
- Update log message and `setRecipientUserId` call to use new variable.
- Without this change, we can not accept invites.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-10-27 12:28:09 +01:00
Micke Nordin
495a01a725 fix(ocm): include provider field in OCMProvider serialization
- Add `provider` to `jsonSerialize()` output of OCMProvider.
- Ensures discovery consumers receive provider identifier along with
  endpoint, version, and resources.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-10-27 12:28:09 +01:00
Micke Nordin
802a3f5cae fix(ocm): ensure capabilities are set on OCMProvider from discovery data
- Call `setCapabilities()` with `capabilities` field when available.
- Prevents loss of provider capability information during discovery.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-10-27 12:28:09 +01:00
Andy Scherzinger
18d0f3322e Merge pull request #56018 from nextcloud/chore/noid/dependabotRemoveStable30
Remove stable30 from dependabot
2025-10-27 09:30:16 +01:00
Andy Scherzinger
cc1d5a2405 chore(deps): Remove stable30 from dependabot
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2025-10-27 08:47:09 +01:00
Nextcloud bot
5d51ac0308 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-26 00:13:19 +00:00
Joas Schilling
bc1b17faa2 Merge pull request #55989 from nextcloud/bugfix/noid/harden-profiler-write
fix(profiler): Harden profiler writes
2025-10-25 22:25:54 +02:00
dependabot[bot]
9a3e3e6067 build(deps-dev): bump @types/dockerode in /build/frontend-legacy
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.44 to 3.3.45.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-version: 3.3.45
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-25 01:22:04 +00:00
dependabot[bot]
59ab0b1fb0 build(deps-dev): bump @types/dockerode from 3.3.44 to 3.3.45
Bumps [@types/dockerode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/dockerode) from 3.3.44 to 3.3.45.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/dockerode)

---
updated-dependencies:
- dependency-name: "@types/dockerode"
  dependency-version: 3.3.45
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-25 01:18:58 +00:00
Nextcloud bot
3061fbaea8 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-25 00:13:33 +00:00
Louis Chmn
8dc64d794c refactor(files_versions): Migrate to Vue3
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-24 17:46:44 +02:00
Louis Chmn
2103410dac fix(files): Add Sidebar.Tab type in global context
And use proper optional argument syntax for its constructor

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-24 16:54:13 +02:00
Louis Chmn
5f1e13b70b feat(files): Improve legacy file info typing
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-24 16:54:13 +02:00
Joas Schilling
a65207abd9 fix(profiler): Harden profiler writes
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-24 15:23:20 +02:00
Daniel
1f9f41a079 Merge pull request #55306 from nextcloud/bug/noid/validate-filename-when-creating-file-from-template
Validate filename when creating file from template
2025-10-24 12:52:44 +02:00
dependabot[bot]
3bcdf10a41 build(deps-dev): bump webpack in /build/frontend-legacy
Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.102.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.102.0...v5.102.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-24 12:28:21 +02:00
Joas Schilling
16088cd827 Merge pull request #55819 from nextcloud/bugfix/noid/allow-federation-with-ocis-cloudids
fix(federation): Allow outgoing and incoming federation with oCIS federated cloud ids
2025-10-24 11:55:46 +02:00
Maksim Sukharev
802d93ec62 Merge pull request #55963 from nextcloud/fix/noid/new-user-deselect-group 2025-10-24 11:24:52 +02:00
nextcloud-command
e0227e1fe9 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-24 08:55:21 +00:00
Maksim Sukharev
ed4e7c781c fix(NewUserDialog): allow to deselect a group from the list
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-10-24 08:52:19 +00:00
John Molakvoæ
1a99477b4f Merge pull request #55916 from nextcloud/fix/mimetypes 2025-10-24 08:32:15 +02:00
Nextcloud bot
e18d9deaf7 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-24 00:13:35 +00:00
Daniel Kesselberg
6e04437de6 fix: validate filename when creating file from template
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-10-24 01:05:48 +02:00
Louis
1b22ca25da Merge pull request #55908 from nextcloud/revert-trashbin-expiration-change
Revert trashbin expiration handling in #55742
2025-10-23 23:56:09 +02:00
Thomas Citharel
b44f35a42a refactor(trashbin): get expiration class directly from Server::get
instead of going through Application container

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-23 23:20:10 +02:00
Thomas Citharel
05d5fdb429 fix(trashbin): include $availableSpace = 0 in checks when we need to delete expired files
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-23 23:20:10 +02:00
Thomas Citharel
29d72bfb32 revert(trashbin): 195d347 due to misunderstanding
See https://github.com/nextcloud/documentation/pull/13017#issuecomment-3425782690

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-23 23:20:10 +02:00
F. E Noel Nfebe
ed1647b80d Merge pull request #55251 from nextcloud/fix/federated-share-hide-download
fix(sharing): Allow reasonable control for 'Hide download' on fed shares
2025-10-23 18:37:47 +01:00
nextcloud-command
d9e001d29f chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-23 15:47:19 +00:00
Ferdinand Thiessen
8519b71bf1 fix(OC\MimeType): use proper webroot if needed
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 15:42:28 +00:00
nfebe
64016898d5 fix(sharing): Allow reasonable control 4 'Hide download' on fed shares
When creating public links from federated shares, users should be able to set
the 'Hide download' option independently as long as they are more restrictive
than the original share permissions.

Previously, the `checkInheritedAttributes` method was ignoring user preferences
and always overriding the hideDownload setting based solely on inherited
permissions, preventing users from disabling downloads even when the parent
share allowed them.

This fix implements some sort of inheritance logic:
- Users can only be MORE restrictive than parent shares, never LESS restrictive
- If parent hides downloads -> child MUST hide downloads (enforced)
- If parent allows downloads -> child can CHOOSE to hide or allow downloads
- If parent forbids downloads entirely -> child cannot enable downloads

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-23 16:09:21 +01:00
Ferdinand Thiessen
52842415fb Merge pull request #55951 from nextcloud/refactor/dav-vue3
refactor(dav): migrate frontend to Typescript and Vue 3
2025-10-23 16:56:07 +02:00
John Molakvoæ
92efa073f0 Merge pull request #55955 from nextcloud/fix/multiple-dav-public-auth 2025-10-23 16:10:29 +02:00
Joas Schilling
f236c0acb9 Merge pull request #55891 from nextcloud/chore/sample-config-convert-issue
docs: avoid indention error in converted config
2025-10-23 15:41:19 +02:00
Joas Schilling
48cbedc002 fix(sample-config): Fix syntax of deprecation
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-23 15:22:31 +02:00
Carl Schwan
1dc363581f fix: get all available previews on Oracle
Split the DB requests in chunk of 1000 and use INNER JOIN instead of IN
as this is better supported on all DB.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-23 14:10:15 +02:00
Daniel
43aa88326b Merge pull request #55953 from nextcloud/remove-use-of-iappcontainer
refactor(dav): remove use of IAppContainer in favor of ContainerInterface
2025-10-23 13:30:09 +02:00
skjnldsv
9c98b722f4 fix(dav): allow multiple link shares token in session
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-10-23 13:10:39 +02:00
John Molakvoæ
ada3b1a9b9 Merge pull request #55952 from nextcloud/fix/search-fallback 2025-10-23 12:12:10 +02:00
Carl Schwan
9adf6cce55 fix: Fetching previews on Oracle
We need an explicit cast on Oracle as Oracle returns number as string.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-23 09:39:05 +02:00
Thomas Citharel
9d6c5a81c0 refactor(dav): remove use of IAppContainer in favor of ContainerInterface
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-23 09:36:13 +02:00
skjnldsv
89a2cae40d fix: join accounts_data instead of preferences when searching users
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-10-23 08:59:10 +02:00
Ferdinand Thiessen
e91d4af206 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
3364f18ca0 test(dav): add e2e tests for availability & absence
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
97b91027da refactor(dav): migrate Settings frontend to Vue 3
- migrate deprecated props
- use direct import of t rather than the mixin

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
e04597d8a1 refactor(dav): migrate ExampleContentDownloadButton to Typescript and script-setup
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
954cdd4621 refactor(ExampleContentSettingsSection): migrate component to script-setup
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
b856adee88 refactor(dav): migrate UserAvailability to Typescript and script-setup
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
7bcb1b4a4c refactor(dav): fix single-word component name by renaming view
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
f82269d0d1 refactor(dav): migrate services to Typescript
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
502ab0e90b refactor(dav): migrate logger to Typescript
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
d4f33b46e9 chore: switch back to rollup-vite
rolldown is blocked by https://github.com/rolldown/rolldown/issues/6670

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:46 +02:00
Ferdinand Thiessen
372ac8ad78 chore: adjust Vue 3 based frontend vite config for multiple apps
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 05:21:45 +02:00
Ferdinand Thiessen
5cb16af66e Merge pull request #55943 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/wait-on-9.0.1
build(deps-dev): bump wait-on from 8.0.5 to 9.0.1 in /build/frontend-legacy
2025-10-23 02:32:20 +02:00
Nextcloud bot
9f05a0987d fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-23 00:27:08 +00:00
dependabot[bot]
0216315de6 Merge pull request #55941 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/zip.js/zip.js-2.8.8 2025-10-23 00:13:49 +00:00
Ferdinand Thiessen
2ccba8f476 chore(legacy): remove @zip.js/zip.js only used by root package
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 01:46:50 +02:00
Ferdinand Thiessen
a4f60bc07b chore: remove wait-on only used by root package
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-23 01:42:00 +02:00
dependabot[bot]
c2f087d348 Merge pull request #55935 from nextcloud/dependabot/npm_and_yarn/build/frontend-legacy/libphonenumber-js-1.12.24 2025-10-22 21:28:35 +00:00
dependabot[bot]
d55fa5061c build(deps-dev): bump wait-on in /build/frontend-legacy
Bumps [wait-on](https://github.com/jeffbski/wait-on) from 8.0.5 to 9.0.1.
- [Release notes](https://github.com/jeffbski/wait-on/releases)
- [Commits](https://github.com/jeffbski/wait-on/compare/v8.0.5...v9.0.1)

---
updated-dependencies:
- dependency-name: wait-on
  dependency-version: 9.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-22 20:13:07 +00:00
dependabot[bot]
9d0ac7461e build(deps-dev): bump @zip.js/zip.js in /build/frontend-legacy
Bumps [@zip.js/zip.js](https://github.com/gildas-lormeau/zip.js) from 2.8.4 to 2.8.8.
- [Release notes](https://github.com/gildas-lormeau/zip.js/releases)
- [Commits](https://github.com/gildas-lormeau/zip.js/compare/v2.8.4...v2.8.8)

---
updated-dependencies:
- dependency-name: "@zip.js/zip.js"
  dependency-version: 2.8.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-22 20:12:46 +00:00
dependabot[bot]
ac37e1fa57 build(deps): bump libphonenumber-js in /build/frontend-legacy
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.23 to 1.12.24.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.23...v1.12.24)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-22 20:11:30 +00:00
Ferdinand Thiessen
86e47d82e8 Merge pull request #55432 from nextcloud/feat/vue3-demi-2
refactor: prepare Vue 3 migration
2025-10-22 22:07:27 +02:00
Ferdinand Thiessen
2369ad9601 Merge pull request #55629 from nextcloud/carl/cleanup-propagator
refactor(IPropagator): Cleanup implementation
2025-10-22 21:50:47 +02:00
Daniel Kesselberg
18531659bc docs: avoid indention error in converted config
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-10-22 18:22:16 +02:00
Ferdinand Thiessen
492a8c3a8b Merge pull request #55907 from nextcloud/carl/fix-preview-object-store
fix(preview): Fix deleting dummy preview in object store
2025-10-22 17:16:14 +02:00
Ferdinand Thiessen
9993f4eefa chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 17:10:29 +02:00
Ferdinand Thiessen
0ba4f5266e refactor(sharebymail): migrate app to Vue 3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 17:10:28 +02:00
Ferdinand Thiessen
3c1e9cd99e chore: adjust linter configs for new layout
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 17:10:28 +02:00
Ferdinand Thiessen
da5e27917f chore: move icons building from core sources to build helpers
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 17:10:28 +02:00
Ferdinand Thiessen
f3383f9f90 chore: split frontend building into legacy Vue 2 and Vue 3
- Built the frontend in separate packages until we migrated everything
  to Vue 3.
- Separate logic into two packages controlled by main package.json

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 17:10:28 +02:00
Joas Schilling
0f183ce8fe fix(bfp): Trim meta data so it can still be stored
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-22 15:45:21 +02:00
Carl Schwan
d6889e9220 fix(preview): Fix deleting dummy preview in object store
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-22 15:40:26 +02:00
Marcel Klehr
606b0631d4 fix: Use proper userId in taskprocessing trigger tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-22 15:25:06 +02:00
Ferdinand Thiessen
ab551c4c8a chore(Template): allow styles from dist folder
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 14:57:47 +02:00
Ferdinand Thiessen
7978ee82a4 Merge pull request #55885 from nextcloud/chore/e2e-test-server
chore: migrate Cypress to `@nextcloud/e2e-test-server`
2025-10-22 14:34:15 +02:00
Ferdinand Thiessen
cfe886a96e chore: replace cypress-delete-downloads-folder with simple implementation
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 12:39:59 +02:00
Ferdinand Thiessen
1082dee5a4 chore: migrate Cypress to @nextcloud/e2e-test-server
- chore: use vite preprocessor for Cypress

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-22 11:57:17 +02:00
Joas Schilling
f050c32e88 Merge pull request #55893 from nextcloud/fix/federation-optional-dependency
fix: Make federation TrustedServers dependency optional in RemotePlugin
2025-10-22 10:54:25 +02:00
Joas Schilling
00a6a73f3f Merge pull request #55827 from nextcloud/fix/ocm-owner-sharing
fix(ocm-sharing): The owner needs to be set for sharing to work
2025-10-22 10:26:36 +02:00
Micke Nordin
f7dcd1d71b fix(ocm-sharing): The owner needs to be set for sharing to work
The specification says that the display name is optional and can thus
be empty, and in fact it is from oCIS and CERNBox shares.

The correct thing to set is the required opaque id from the remote
provider, the `owner` which will allways be there.

Signed-off-by: Micke Nordin <kano@sunet.se>
2025-10-22 08:54:39 +02:00
Ferdinand Thiessen
9290922a72 Merge pull request #55892 from nextcloud/tests/cypress-filter
test: adjust cypress tests for changes filter behavior
2025-10-22 08:49:50 +02:00
Louis
f2eb772e7b Merge pull request #55796 from nextcloud/artonge/fix/hide_non_writable_nodes
fix(FilesPicker): Prevent selection of nodes without create permission
2025-10-22 07:18:00 +02:00
Nextcloud bot
61754a1b8f fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-22 00:12:27 +00:00
nfebe
3276aff83c fix: Make federation TrustedServers dependency optional in RemotePlugin
The federation app is not always installed, causing QueryException when
`OCA\Federation\TrustedServers` is injected as a hard dependency.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-22 00:19:31 +02:00
nextcloud-command
58e9be7e81 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-21 20:30:08 +00:00
nextcloud-command
c627561a6e chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-21 20:27:23 +00:00
Louis Chmn
58a9fdad52 chore(deps): Bump @nextcloud/dialogs to v7.1.0
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-21 20:27:22 +00:00
Louis Chmn
7b8463e93a fix(FilePicker): Modernise dav imports
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-21 20:27:22 +00:00
Louis Chmn
cb062d2691 fix(FilesPicker): Prevent selection of nodes without create permission
And remove the disable callback for the button as it is not needed anymore.

This gives a better experience as the nodes do not have a pointer for cursor, and the submit button does not react when clicking on them.

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-21 20:27:22 +00:00
Ferdinand Thiessen
0587860c7a Merge pull request #55834 from nextcloud/artonge/doc/improve_trashbin_config
docs(trashbin): Improve clarity of files retention config
2025-10-21 22:16:55 +02:00
F. E Noel Nfebe
87b94c7f52 Merge pull request #55580 from nextcloud/fix/share-permissions-password-validation
fix(files_sharing): Only send password on change
2025-10-21 22:08:17 +02:00
Ferdinand Thiessen
81718a035a test: adjust cypress tests for changes filter behavior
In https://github.com/nextcloud/server/issues/53038 we changed the
behavior: The filename filter is reset when changing the directory.
So we need to also adjust the Cypress tests.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-21 19:38:20 +02:00
Nextcloud bot
43de6b82ac fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-21 16:52:04 +00:00
Louis Chmn
c5c6c7de2b fix(trashbin): Improve clarity of files retention config
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-21 18:27:24 +02:00
nextcloud-command
ad745da3ca chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-21 16:05:20 +00:00
nfebe
a28834b163 fix(files_sharing): Only send password on change
The password param should never be sent if the intention is not
remove it or update it.

This commit adapts the frontend and backend to this rule to avoid weird bugs
especially around updating new shares.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-21 16:54:55 +01:00
Côme Chilliet
30b5f00b0d Merge pull request #49578 from nextcloud/fix-updater-secret
fix(updater): Stop expiring secret prematurely
2025-10-21 16:26:13 +02:00
Maxence Lange
11de3cf0a7 Merge pull request #55864 from nextcloud/fix/noid/tmp-switch-to-non-lazy
fix(lexicon): switch bool value to non-lazy
2025-10-21 11:18:33 -01:00
Nextcloud bot
58f3ff0e0e fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-21 10:51:50 +00:00
Maxence Lange
1329091836 fix(lexicon): remove default lazy param
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-21 09:27:41 -01:00
Maxence Lange
edfc339bf5 fix(lexicon): switch bool value to non-lazy
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-21 09:27:40 -01:00
Louis Chmn
7f3ef27cd5 refactor: adjust updater code to match code style
Co-authored-by: Joas Schilling <213943+nickvergessen@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-21 12:20:34 +02:00
Andy Scherzinger
4696524c9c Merge pull request #55863 from nextcloud/fix/noid/execute-lexicon-repair-step
fix(lexicon): execute repair step
2025-10-21 11:53:32 +02:00
Stephan Orbaugh
d49dc7ee16 Merge pull request #55676 from IONOS-Productivity/feature/add_tests_to_settings_delegation
Add unit tests for AdminDelegation command and AuthorizedGroupService
2025-10-21 11:34:10 +02:00
Josh Richards
f600f26391 fix(updater): Stop expiring secret prematurely
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
2025-10-21 11:06:54 +02:00
John Molakvoæ
7fca1c87ee Merge pull request #55810 from nextcloud/skjnldsv-patch-1 2025-10-21 10:13:18 +02:00
John Molakvoæ
1c57699fda Merge pull request #55846 from victorlap/patch-1 2025-10-21 09:35:06 +02:00
Victor
281bbd1db6 feat(files): Add font-variant-numeric to selected files list
Signed-off-by: Victor <victorlap@outlook.com>
2025-10-21 09:19:34 +02:00
John Molakvoæ
365a040dc3 fix: temporarily disable public shares chunking capability
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-10-21 09:00:48 +02:00
Julius Knorr
332ab743c5 Merge pull request #55730 from nextcloud/fix-translate-on-unsupported-screen
fix: translation on /unsupported screen
2025-10-21 08:34:54 +02:00
Marcel Klehr
43d28f4e5d Merge pull request #55741 from nextcloud/feat/taskprocessing-trigger-aware-provider
feat(TaskProcessing): Introduce ITriggerableProvider
2025-10-21 08:33:52 +02:00
Nextcloud bot
2991526058 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-21 00:12:35 +00:00
dependabot[bot]
b703ed2a78 Merge pull request #55869 from nextcloud/dependabot/npm_and_yarn/vite-6.4.1 2025-10-20 20:45:10 +00:00
Luka Trovic
f5629b0221 fix: translation on /unsupported screen
Signed-off-by: Luka Trovic <luka@nextcloud.com>
2025-10-20 22:31:08 +02:00
dependabot[bot]
647cf5172e build(deps): bump vite from 6.3.6 to 6.4.1
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.6 to 6.4.1.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.4.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.4.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 20:22:14 +00:00
dependabot[bot]
5df05111cb Merge pull request #55591 from nextcloud/dependabot/npm_and_yarn/nextcloud/browser-storage-0.5.0 2025-10-20 20:18:56 +00:00
Andy Scherzinger
201af1af4d Merge pull request #55838 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.2.3
build(deps-dev): bump rector/rector from 2.2.2 to 2.2.3 in /vendor-bin/rector
2025-10-20 22:18:49 +02:00
nextcloud-command
5ec0702a11 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-20 16:36:38 +00:00
Maxence Lange
6329bcbcda fix(lexicon): execute repair step
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-20 15:32:18 -01:00
dependabot[bot]
0637f958c8 build(deps): bump @nextcloud/browser-storage from 0.4.0 to 0.5.0
Bumps [@nextcloud/browser-storage](https://github.com/nextcloud-libraries/nextcloud-browser-storage) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-browser-storage/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-browser-storage/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-browser-storage/compare/v0.4.0...v0.5.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/browser-storage"
  dependency-version: 0.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 16:27:16 +00:00
dependabot[bot]
7a47fd6d04 build(deps-dev): bump stylelint from 16.24.0 to 16.25.0
Bumps [stylelint](https://github.com/stylelint/stylelint) from 16.24.0 to 16.25.0.
- [Release notes](https://github.com/stylelint/stylelint/releases)
- [Changelog](https://github.com/stylelint/stylelint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/stylelint/stylelint/compare/16.24.0...16.25.0)

---
updated-dependencies:
- dependency-name: stylelint
  dependency-version: 16.25.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 16:19:13 +00:00
dependabot[bot]
cfc72b789c Merge pull request #55837 from nextcloud/dependabot/npm_and_yarn/webpack-5.102.1 2025-10-20 15:42:36 +00:00
nextcloud-command
26d43bd9cf chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-20 14:58:04 +00:00
dependabot[bot]
76d110d21f build(deps-dev): bump webpack from 5.102.0 to 5.102.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.102.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.102.0...v5.102.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 14:26:32 +00:00
Andy Scherzinger
78865e3fc2 Merge pull request #55836 from nextcloud/dependabot/npm_and_yarn/libphonenumber-js-1.12.24
build(deps): bump libphonenumber-js from 1.12.23 to 1.12.24
2025-10-20 16:09:43 +02:00
Marcel Klehr
7f15598083 fix: address review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-20 15:59:25 +02:00
Marcel Klehr
6a1501a7d6 fix: address review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-20 15:59:25 +02:00
Marcel Klehr
044e92bf4e feat(TaskProcessing): Introduce ITriggerableProvider
Signed-off-by: Marcel Klehr <mklehr@gmx.net>

# Conflicts:
#	lib/private/TaskProcessing/Db/TaskMapper.php
2025-10-20 15:59:25 +02:00
Marcel Klehr
9df303f876 fix: address review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-20 15:54:10 +02:00
Joas Schilling
75a1a75d4c fix(federation): Increase the size of owner to allow oCIS cloud ids
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-20 15:38:37 +02:00
Joas Schilling
f1f67f428a fix(federation): Allow outgoing federation with oCIS federated cloud ids
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-20 15:38:36 +02:00
Richard Steinmetz
4c17229789 Merge pull request #55628 from nextcloud/fix/dav/remove-invalid-shares-federated-cal-shares
fix(dav): dav:remove-invalid-shares removing federated calendar shares
2025-10-20 13:19:52 +02:00
Misha M.-Kupriyanov
4275825177 chore(tests): make "execute" method in Add command public
to simplify test execution

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-10-20 12:55:17 +02:00
Misha M.-Kupriyanov
b0413be681 chore(tests): add unit tests for AdminDelegation command and AuthorizedGroupService
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2025-10-20 12:55:17 +02:00
max-nextcloud
f222324920 Merge pull request #55848 from nextcloud/fix/oc-dialogs-button-variants
fix(dialogs): migrate buttons to variant prop
2025-10-20 11:32:19 +02:00
nextcloud-command
526ff235bd chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-20 08:48:11 +00:00
Côme Chilliet
a36ebef1c3 Merge pull request #55742 from nextcloud/fix-trashbin-expiration
fix(trashbin): make sure the trashed files are deleted if we don't have any available space left
2025-10-20 10:47:17 +02:00
dependabot[bot]
f7f506e588 build(deps): bump libphonenumber-js from 1.12.23 to 1.12.24
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.23 to 1.12.24.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.23...v1.12.24)

---
updated-dependencies:
- dependency-name: libphonenumber-js
  dependency-version: 1.12.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 10:33:09 +02:00
Côme Chilliet
35f9d6f6e0 Merge pull request #55751 from nextcloud/fix/fix-property-objects-serialization
fix(dav): Restrict properties allowed object classes
2025-10-20 10:30:01 +02:00
Côme Chilliet
1686bb61a0 Merge pull request #55719 from nextcloud/fix-object-store-storage-free-space
fix(objectstore): add named parameter for like query in object storage free space detection
2025-10-20 09:37:33 +02:00
Nextcloud bot
96f50c2c94 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-20 00:12:24 +00:00
Nextcloud bot
89cca718c8 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-19 00:12:24 +00:00
nextcloud-command
2985914d5d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-18 18:48:02 +00:00
Max
b9d3ad6d00 fix(dialogs): migrate buttons to variant prop
In Nextcloud Vue v8 the `type` prop for dialog buttons
was deprecated and replaces with the `variant` prop.

In v9 the deprecated props are removed.
Use the `variant` prop in the deprecated `OC.dialogs`.

This is a follow up for #55726.

Signed-off-by: Max <max@nextcloud.com>
2025-10-18 20:12:49 +02:00
dependabot[bot]
262a1fc6df build(deps-dev): bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.2.2...2.2.3)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-18 01:09:42 +00:00
Nextcloud bot
6720d7e15c fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-18 00:12:28 +00:00
Louis
77194d5232 Merge pull request #54102 from nextcloud/ensure-cloud-key
fix: Ensure CLOUD key exists before resolving Cloud ID
2025-10-17 18:20:59 +02:00
Ferdinand Thiessen
3882e52355 Merge pull request #55377 from nextcloud/dependabot/npm_and_yarn/nextcloud/password-confirmation-6.0.0
build(deps): bump @nextcloud/password-confirmation from 5.3.1 to 6.0.0
2025-10-17 16:25:18 +02:00
Joas Schilling
8e1f19c37e Merge pull request #55395 from nextcloud/fix/noid/return-actually-installed-apps
fix(Apps): fix install command check on existing apps
2025-10-17 16:21:58 +02:00
Ferdinand Thiessen
2e76c31f3a chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-17 13:39:35 +00:00
Ferdinand Thiessen
f224d6680b test: adjust cypress tests for updated @nextcloud/password-confirmation
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-17 15:01:10 +02:00
Ferdinand Thiessen
b1a7eeaacb refactor: adjust password confirmation for new @nextcloud/package-confirmation package
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-17 15:01:10 +02:00
dependabot[bot]
fb49c91ca7 build(deps): bump @nextcloud/password-confirmation from 5.3.1 to 6.0.1
Bumps [@nextcloud/password-confirmation](https://github.com/nextcloud-libraries/nextcloud-password-confirmation) from 5.3.1 to 6.0.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-password-confirmation/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-password-confirmation/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-password-confirmation/compare/v.5.3.1...v6.0.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/password-confirmation"
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 15:01:03 +02:00
John Molakvoæ
c53a9bfde8 Merge pull request #55820 from nextcloud/chore/deps-browserslist 2025-10-17 13:22:40 +02:00
skjnldsv
4786defcbb chore: bump @nextcloud/browserslist-config from 3.0.1 to 3.1.0
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-10-17 12:23:20 +02:00
Richard Steinmetz
3813a774e9 fix(dav): dav:remove-invalid-shares removing federated calendar shares
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-10-17 12:10:42 +02:00
Arthur Schiwon
9d63530262 Merge pull request #54429 from nextcloud/feat/noid/cache-ldap-mapping
feat: locally cache frequently requested LDAP mapping data
2025-10-17 12:08:51 +02:00
Arthur Schiwon
49f1c3f00e refactor(LDAP): switch from prepares statement to query builder
- has the advantage that queries will be reported in the query.log when
  configured

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-17 11:09:31 +02:00
Arthur Schiwon
155b75027c feat: locally cache frequently requested LDAP mapping data
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-17 11:09:31 +02:00
Nextcloud bot
c316ed655a fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-17 00:12:29 +00:00
Maxence Lange
7da7de8409 Merge pull request #55634 from nextcloud/fix/noid/ocm-value-format
fix(ocm): format notifications
2025-10-16 20:17:21 -01:00
dependabot[bot]
324ae80b4e Merge pull request #55680 from nextcloud/dependabot/npm_and_yarn/nextcloud/vue-8.32.0 2025-10-16 21:14:17 +00:00
nextcloud-command
d6299f93f5 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-16 18:07:05 +00:00
dependabot[bot]
3d08708f13 build(deps): bump @nextcloud/vue from 8.31.0 to 8.32.0
Bumps [@nextcloud/vue](https://github.com/nextcloud-libraries/nextcloud-vue) from 8.31.0 to 8.32.0.
- [Release notes](https://github.com/nextcloud-libraries/nextcloud-vue/releases)
- [Changelog](https://github.com/nextcloud-libraries/nextcloud-vue/blob/v8.32.0/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-libraries/nextcloud-vue/compare/v8.31.0...v8.32.0)

---
updated-dependencies:
- dependency-name: "@nextcloud/vue"
  dependency-version: 8.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-16 19:58:41 +02:00
Ferdinand Thiessen
39dc1185a6 Merge pull request #55799 from nextcloud/fix/dialog-props
fix: migrate to non-deprecated dialog props
2025-10-16 19:41:24 +02:00
nextcloud-command
08eb5879dd chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-16 16:09:41 +00:00
Ferdinand Thiessen
470ff8d3d3 fix: migrate to non-deprecated dialog props
In Nextcloud Vue v8 some props for dialog buttons were deprecated (type
for e.g. primary or nativeType) those are replaced with `variant` and
`type`.
In v9 the deprecated props are removed - thus this breaks with
nextcloud-dialogs v7 which is based on Vue 3.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-16 17:55:11 +02:00
dependabot[bot]
093c95f260 Merge pull request #55681 from nextcloud/dependabot/npm_and_yarn/cypress-split-1.24.24 2025-10-16 15:49:13 +00:00
Maxence Lange
b2a6c75b44 fix(ocm): format notifications
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-16 14:30:04 -01:00
Côme Chilliet
28c8ef1306 fix(dav): Allow array of array of scalars, and fix error message
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-10-16 15:49:07 +02:00
Joas Schilling
6fc190ef4c Merge pull request #55803 from nextcloud/bugfix/55274/dont-fallback-from-3letter-languages-to-2letter
fix(l10n): Don't fallback from 3-letter languages to 2-letter
2025-10-16 13:43:13 +02:00
Joas Schilling
9e4ac50206 fix(l10n): Don't fallback from 3-letter languages to 2-letter
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-16 11:46:01 +02:00
Joas Schilling
8b51705b4e Merge pull request #55757 from nextcloud/test/net/localhost-by-ip
test(net): include test for localhost by IP
2025-10-16 11:38:11 +02:00
Marcel Klehr
7320322d52 Merge pull request #55735 from nextcloud/feat/taskprocessing-api-next-batch
feat(TaskProcessingApiController): Add new next_batch endpoint
2025-10-16 09:55:49 +02:00
Arthur Schiwon
84be993633 Merge pull request #55800 from nextcloud/fix/file-drop/chunked-upload
Fix chunked upload for file drop shares
2025-10-16 09:43:22 +02:00
provokateurin
3a242166f7 fix(FilesDropPlugin): Fix request method and nickname header checks
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-16 08:47:28 +02:00
Joas Schilling
3f85bcc69a Merge pull request #55777 from nextcloud/bugfix/55706/fix-sample-config-parsing
fix(sample-config): Fix sample config so parsing works again
2025-10-16 08:32:50 +02:00
Nextcloud bot
9938bc70b7 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-16 00:12:27 +00:00
provokateurin
2201f77aa6 fix(FilesDropPlugin): Fix name conflict resolution for chunked uploads
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-15 23:52:05 +02:00
provokateurin
cde80c14d3 fix(FilesDropPlugin): Disable plugin for chunked uploads
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-15 23:52:04 +02:00
provokateurin
5fa4c3d8fd fix(publicremote): Always grant read and delete permission for chunked uploads to a share
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-15 23:37:58 +02:00
Arthur Schiwon
6df6b58e6c Merge pull request #55797 from nextcloud/fixDbType
fix(setupCheck): Fix checking database type
2025-10-15 22:44:35 +02:00
Andy Scherzinger
6266000b99 Merge pull request #55750 from nextcloud/feat/globalscale-url
feat: add new link endpoint when using globalscale
2025-10-15 21:26:48 +02:00
nextcloud-command
92dab6633c chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-15 19:00:59 +00:00
Ferdinand Thiessen
7fbc2ca25e feat: add new link endpoint when using globalscale
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-15 18:58:10 +00:00
Git'Fellow
3f976c2548 fix(setupCheck): Fix checking database type
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-10-15 20:15:55 +02:00
Ferdinand Thiessen
50f287402a Merge pull request #55791 from nextcloud/chore/ensure-no-only
chore: ensure no `.only` is commited in test files
2025-10-15 17:57:00 +02:00
Joas Schilling
074d69820f fix(sample-config): Fix more typos that break RST parsing
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-15 16:30:49 +02:00
Ferdinand Thiessen
3cf210a9a5 chore: ensure no .only is commited in test files
`.only` is only to be used for development, but must not be committed.
Instead failing tests which should be kept for later should be skipped
(`.skip`).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-15 16:00:01 +02:00
dependabot[bot]
ac9ff0d3fa build(deps-dev): bump cypress-split from 1.24.23 to 1.24.24
Bumps [cypress-split](https://github.com/bahmutov/cypress-split) from 1.24.23 to 1.24.24.
- [Release notes](https://github.com/bahmutov/cypress-split/releases)
- [Commits](https://github.com/bahmutov/cypress-split/compare/v1.24.23...v1.24.24)

---
updated-dependencies:
- dependency-name: cypress-split
  dependency-version: 1.24.24
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-15 13:54:49 +00:00
Ferdinand Thiessen
65cdf14667 Merge pull request #55726 from nextcloud/chore/update-dialog-v7
chore: Update `@nextcloud/dialogs` to v7.0.0
2025-10-15 15:51:41 +02:00
Ferdinand Thiessen
cc4f8309d0 chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-15 14:25:11 +02:00
Ferdinand Thiessen
b3762488e8 test: adjust FilePicker tests to new dialogs version
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-15 14:25:10 +02:00
Ferdinand Thiessen
2b39cb49ab refactor: adjust code for breaking changes in @nextcloud/dialogs v7
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-15 13:45:12 +02:00
Ferdinand Thiessen
f2b309b6ee chore: Update @nextcloud/dialogs to v7.0.0
This is the first step torwards Vue 3.
As this package is a Vue version agnostic version of dialogs, written in
Vue 3.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-15 13:45:11 +02:00
Marcel Klehr
d5220d6a15 Merge pull request #55776 from nextcloud/fix/text2image-better-attributes
fix(TextToImage): Set better attribute for routes
2025-10-15 13:07:50 +02:00
Daan Selen
4b4b39e7ec fix(ObjectStoreStorage): Encode original-path in writeStream by @frabe1579
Signed-off-by: Daan Selen <dselen@systemec.nl>
2025-10-15 11:53:39 +02:00
Marcel Klehr
3f527661b1 fix: Create new class instead of extending existing class
to make it easier to use this across nextcloud versions

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-15 11:20:00 +02:00
Ferdinand Thiessen
0c1be89f1b Merge pull request #55747 from nextcloud/chore/migrate-cypress-vitest
refactor(test): migrate Cypress component test to vitest
2025-10-15 10:55:44 +02:00
Stephan Orbaugh
567a988c6c Merge pull request #55100 from invario/previews-better-logging
feat(previews): improved logging for movie previews
2025-10-15 10:54:09 +02:00
Joas Schilling
0938c5f1ce fix(config-sample): Deduplicate warning
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-15 10:47:29 +02:00
Joas Schilling
5ef933ff6c fix(sample-config): Fix more list, note and warning blocks
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-15 10:45:27 +02:00
Marcel Klehr
a5ce35ac84 fix(TextToImage): Set better attribute for routes
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-15 09:55:30 +02:00
Joas Schilling
126944b346 fix(sample-config): Fix sample config so parsing works again
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-15 09:38:15 +02:00
Marcel Klehr
7619f78aa2 Merge pull request #55732 from nextcloud/fix/text-processing-no-admin-required
fix(TextProcessingApiController): Set better attribute on routes
2025-10-15 09:31:05 +02:00
Marcel Klehr
81bf9f342c fix: regenerate openapi descriptions
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-15 09:30:12 +02:00
Marcel Klehr
954b140da6 Merge pull request #55716 from nextcloud/feat/taskprocessing-successrate-setupcheck
feat(settings): Introduce TaskProcessingSuccessRate setup check
2025-10-15 09:28:36 +02:00
Nextcloud bot
3aae74236a fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-15 00:12:30 +00:00
Daniel
d39ae92aaf Merge pull request #54819 from nextcloud/fix/issue-53949-imip-quirks-mode
fix: iMip reply from outlook.com does not contain organizer property
2025-10-14 21:29:11 +02:00
Côme Chilliet
ef2e7170a4 Merge pull request #55754 from nextcloud/fix/fix-cachewrapper-shouldencrypt
fix: Fix crash in files_version about uninitialized property
2025-10-14 20:32:28 +02:00
invario
13500be1d1 feat(previews): improved logging for movie previews
Signed-off-by: invario <67800603+invario@users.noreply.github.com>
2025-10-14 13:17:09 -04:00
SebastianKrupinski
ea2180d6ad fix: iMip reply from outlook.com does not contain organizer property
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-10-14 12:44:06 -04:00
Côme Chilliet
1a0b220c6b fix(dav): Allow arrays (of scalars) in property values
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-10-14 17:50:53 +02:00
Carl Schwan
04a21650cc Merge pull request #55720 from nextcloud/carl/remote-querybuilder-execute
feat(querybuilder): Remove deprecated IQueryBuilder::execute
2025-10-14 17:19:37 +02:00
Marcel Klehr
8cf1504a76 fix: Apply suggestion from @kyteinsky
Co-authored-by: Anupam Kumar <kyteinsky@gmail.com>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:58:40 +02:00
Marcel Klehr
86316f7c45 fix(TaskProcessing): Update autoloaders
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:58:38 +02:00
Côme Chilliet
ad9574970a fix: Fix crash in files_version about uninitialized property
Fix "Typed property OC\\Files\\Cache\\Cache::$storage must not be accessed before initialization"

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-10-14 16:56:07 +02:00
Marcel Klehr
97943cef58 fix(TaskProcessing): Update openapi descriptions for user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:53:41 +02:00
Marcel Klehr
e12c0ed7a3 test(TaskProcessing): Add test for user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:53:41 +02:00
Marcel Klehr
7373f11af6 feat(TaskProcessing): user-facing error messages
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 16:53:41 +02:00
Côme Chilliet
0283fbccb2 fix(dav): Restrict properties allowed object classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-10-14 16:42:09 +02:00
Marcel Klehr
be8e168f38 fix: Address psalm issues and review comments
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 15:51:31 +02:00
Marcel Klehr
bd2e629e3b fix: Update openapi descriptions
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 15:29:40 +02:00
Marcel Klehr
5e0c7a5813 fix(TextProcessingApiController): Set better attribute on routes
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 15:29:40 +02:00
Marcel Klehr
76eba41d77 fix: Fix logic error to make tests pass
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 15:23:01 +02:00
Marcel Klehr
4ec76cf834 Merge pull request #55715 from nextcloud/fix/taskprocessing/setupcheck-pickupspeed
fix(settings): Improve TaskProcessingPickupSpeed setup check
2025-10-14 15:11:33 +02:00
Marcel Klehr
e7ac6ff71b fix: Apply suggestion from @kyteinski
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 15:05:55 +02:00
Ferdinand Thiessen
e7357dffec chore: compile assets
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-14 14:32:51 +02:00
Ferdinand Thiessen
a66135f32f chore: remove Cypress component testing
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-14 14:30:14 +02:00
Ferdinand Thiessen
3f6f277dba refactor(test): migrate component tests in core to vitest
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-14 14:30:14 +02:00
Ferdinand Thiessen
81cfb9580a refactor(test): migrate cypress component tests to vitest
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-14 14:30:14 +02:00
Ferdinand Thiessen
5aa1f5bb84 Merge pull request #55718 from nextcloud/chore/remove-oca-sharing-external-link-actions
chore!(files_sharing): remove deprecated `OCA.Sharing.ExternalLinkActions`
2025-10-14 14:25:53 +02:00
Ferdinand Thiessen
48378aede3 Merge pull request #55731 from nextcloud/jtr/fix-files-stream-quota-actual
fix(files): decrement quota by actual bytes written in stream_write
2025-10-14 13:56:27 +02:00
nextcloud-command
9aa38aaacc chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-14 11:41:49 +00:00
Ferdinand Thiessen
23be816568 chore!(files_sharing): remove deprecated OCA.Sharing.ExternalLinkActions
This API was deprecated in Nextcloud 23.
It was replaced with `OCA.Sharing.ExternalShareAction` which now have a proper API
by using `registerSidebarAction` from `@nextcloud/sharing` instead.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-14 13:34:54 +02:00
Marcel Klehr
5c5c9384b1 fix: Apply suggestion from @julien-nc
Co-authored-by: Julien Veyssier <julien-nc@posteo.net>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:52:49 +02:00
Marcel Klehr
f7a89fee24 fix: Apply suggestion from @julien-nc
Co-authored-by: Julien Veyssier <julien-nc@posteo.net>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:52:37 +02:00
Marcel Klehr
16da8bbc8a fix(TaskProcessingApiController): Implement getNextScheduledTasks for next_batch endpoint
in order to avoid hitting the DB with multiple 1 row requests

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:50:29 +02:00
Marcel Klehr
858118274d fix: Apply suggestion from @julien-nc
Co-authored-by: Julien Veyssier <julien-nc@posteo.net>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:22:03 +02:00
Marcel Klehr
2286b9f57d fix: Apply suggestion from @julien-nc
Co-authored-by: Julien Veyssier <julien-nc@posteo.net>
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:21:54 +02:00
Marcel Klehr
1ba5f7d53a fix(settings): Remove copypasta
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 11:20:59 +02:00
Thomas Citharel
cea23fb53d refactor(trashbin): make the ExpireTrash background job use the Trashbin::expire static method
Instead of handling everything itself, and so that the available space is considered in deleting
trashed files even if not expired yet.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-14 11:07:25 +02:00
Maksim Sukharev
8659002d7a Merge pull request #55655 from nextcloud/fix/noid/throw-failed-share 2025-10-14 11:03:48 +02:00
Thomas Citharel
195d347240 fix(trashbin): make sure the trashed files are deleted if we don't have any available space left
Logic taken from the files_versions expiration. It seems the second
argument from the isExpired method wasn't even used anywhere.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-14 10:58:30 +02:00
Christoph Wurst
3e90ce89eb test(net): include test for localhost by IP
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-10-14 10:33:35 +02:00
Kate
ae0aa175b3 Merge pull request #55661 from nextcloud/fix/55519/ldap-cert-req-handling 2025-10-14 09:42:16 +02:00
nextcloud-command
9e5111f983 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-14 07:36:00 +00:00
Marcel Klehr
80eb3dd0d0 feat(TaskProcessingApiController): Add new next_batch endpoint
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 09:35:18 +02:00
Maksim Sukharev
a4d440e1f0 fix(files_sharing): correctly handle error in case of failing share creation
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-10-14 09:27:05 +02:00
Maksim Sukharev
9c8b500116 Merge pull request #55666 from nextcloud/fix/53038/clear-search 2025-10-14 09:22:50 +02:00
Marcel Klehr
33922faf4a fix: Change messages to use days instead of hours
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-14 08:42:56 +02:00
Marcel Klehr
ea8ab8e192 Merge pull request #55646 from nextcloud/feat/taskprocessing/is-internal
enh(TaskProcessing): Introduce internal task types
2025-10-14 08:25:00 +02:00
Kate
ffbbdb2d04 Merge pull request #54953 from nextcloud/fix/noid/lighter-team-request 2025-10-14 07:56:14 +02:00
Nextcloud bot
736259c4df fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-14 00:12:22 +00:00
Josh
bd43cb7d04 fix(files): decrement quota by actual bytes written in stream_write
The quota is now decremented by the actual number of bytes written ($written) rather than the intended size.

This ensures quota tracking stays accurate even if fwrite writes fewer (or more - i.e. from underlying buffering/etc) bytes than requested.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-13 18:26:48 -04:00
Kate
692d265d4a Merge pull request #55727 from nextcloud/bug/noid/update-sample-config-mp3 2025-10-13 18:46:21 +02:00
nextcloud-command
4e87741bab chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-13 16:12:38 +00:00
Daniel Kesselberg
8ed6722a4b docs(previews): mp3 preview provider is no longer enabled by default
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-10-13 17:53:34 +02:00
Maksim Sukharev
196aa9b41b fix(files): clear search input on directory navigation
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2025-10-13 17:28:44 +02:00
Daniel
2cb2ffe608 Merge pull request #55658 from nextcloud/bug/noid/disable-mp3-previews-by-default
fix: disable mp3 preview provider
2025-10-13 17:22:29 +02:00
Carl Schwan
1eff9e5c90 feat(querybuilder): Remove deprecated IQueryBuilder::execute
This won't work when we update to doctrine DBAL 4 and all usages in
server were ported away.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-13 17:02:04 +02:00
Thomas Citharel
5c8bdad828 fix(objectstore): add named parameter for like query
to avoid 'object::%' to be considered as a column
(`la colonne \\u00ab object::% \\u00bb n'existe pas` on PG)

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-13 16:18:18 +02:00
Carl Schwan
65f52c47b8 Merge pull request #55674 from nextcloud/carl/deprecated-dbal
Port away from deprecated Doctrine APIs
2025-10-13 15:10:15 +02:00
Marcel Klehr
f296f9055c fix: Run cs:fix
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 14:45:17 +02:00
Marcel Klehr
62fd3576c9 test(settings): Add tests for TaskProcessingSuccessRate setup check
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 14:42:51 +02:00
Marcel Klehr
6c9af3f8ee fix(settings): Introduce TaskProcessingSuccessRate setup check
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 14:35:55 +02:00
Maxence Lange
9ba3ce27cb fix(team-api): get all teams details in a single request
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-13 14:21:15 +02:00
Marcel Klehr
5a48887a2b fix(settings): Improve TaskProcessingPickupSpeed setup check
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 14:07:33 +02:00
provokateurin
2552950299 fix(core): Fix TeamsApiController typing
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-13 13:59:54 +02:00
Kate
2ea30f9149 Merge pull request #55712 from nextcloud/fix/noid/root-path-globalsiteselector 2025-10-13 13:51:16 +02:00
Carl Schwan
49d522717c refactor(dbal): Port away from remaining IQueryBuilder::execute calls
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-13 13:44:15 +02:00
Carl Schwan
9095a36b94 refactor(dbal): Port away from getDatabasePlatform() instanceof pattern
Use getDatabaseProvider instead.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-13 13:44:08 +02:00
Marcel Müller
4c5d1a2e7b Merge pull request #55711 from nextcloud/fix/noid/fix-32bit-test-runs
fix: Unset classes in container to reduce side-effects between tests
2025-10-13 12:53:53 +02:00
Maxence Lange
9209540db5 feat(route): globalsiteselector as root url generator
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-10-13 09:19:20 -01:00
Marcel Müller
0ca6384097 fix: Unset classes in container to reduce side-effects between tests
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-10-13 11:56:13 +02:00
Marcel Klehr
13eb2d1cbd feat(TaskProcessing): Introduce internal task types
which are not shown in the assistant UI

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-13 11:07:40 +02:00
Kate
4c2e71e953 Merge pull request #55706 from nextcloud/jtr/fix-config-sample-activity-app 2025-10-13 10:06:33 +02:00
dependabot[bot]
28eb8879ef Merge pull request #55683 from nextcloud/dependabot/composer/vendor-bin/openapi-extractor/nextcloud/openapi-extractor-1.8.6 2025-10-13 07:38:59 +00:00
Nextcloud bot
22791c5843 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-13 00:12:24 +00:00
dependabot[bot]
7133a2a7d0 Merge pull request #55684 from nextcloud/dependabot/composer/vendor-bin/rector/rector/rector-2.2.2 2025-10-12 17:40:53 +00:00
Nextcloud bot
8d2a95678f fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-12 00:12:19 +00:00
Josh
2eaac49063 fix: cs/lint
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-11 10:22:08 -04:00
Josh
7e8183dfdb chore: update for cs lint
Corrected formatting and removed extra spaces in comments.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-11 09:44:28 -04:00
Josh
1de46be60f fix: Move system-level activity app settings to the sample config
These entries are currently hard-coded in the manual itself (on the config parameter page that is generated from this config sample file). This PR moves them to the proper place, the config sample file itself.

A separate PR in the docs repo will remove their hard-coded entry in the manual, but this is not dependent on that PR.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-11 09:29:59 -04:00
Louis
e4866860cb Merge pull request #55657 from nextcloud/artonge/fix/do_not_expose_system_address_book_in_contacts 2025-10-11 13:11:26 +02:00
dependabot[bot]
934c2d214d build(deps-dev): bump rector/rector in /vendor-bin/rector
Bumps [rector/rector](https://github.com/rectorphp/rector) from 2.1.7 to 2.2.2.
- [Release notes](https://github.com/rectorphp/rector/releases)
- [Commits](https://github.com/rectorphp/rector/compare/2.1.7...2.2.2)

---
updated-dependencies:
- dependency-name: rector/rector
  dependency-version: 2.2.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-11 01:10:28 +00:00
dependabot[bot]
0c17af55d3 build(deps): bump nextcloud/openapi-extractor
Bumps [nextcloud/openapi-extractor](https://github.com/nextcloud-releases/openapi-extractor) from 1.8.5 to 1.8.6.
- [Changelog](https://github.com/nextcloud-releases/openapi-extractor/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nextcloud-releases/openapi-extractor/compare/v1.8.5...v1.8.6)

---
updated-dependencies:
- dependency-name: nextcloud/openapi-extractor
  dependency-version: 1.8.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-11 01:10:12 +00:00
Nextcloud bot
65bd4b2d69 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-11 00:13:13 +00:00
Thomas Citharel
76a0fb6feb Merge pull request #55651 from nextcloud/fix-calendars-properties-cache 2025-10-10 19:24:55 +02:00
Louis Chemineau
e976a1323f chore: Register system_addressbook_exposed in lexicon
Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-10 19:02:41 +02:00
Louis Chemineau
d14c96b26d fix(contacts): Do not expose SAB in /contactsmenu
When hitting the `/contactsmenu/contacts` endpoint with the `dav.system_addressbook_exposed` config switch set to `"no"`, the system address book content is still listed in the response.

This ensure that we do not expose unexpectedly the system address book.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-10-10 19:02:40 +02:00
Thomas Citharel
22b90c2319 fix(caldav): avoid selecting every custom properties from table if we have no calendars to filter
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-10-10 18:50:31 +02:00
Carl Schwan
7a43bf26ca refactor(dbal): Migrate away from Type::getName
Instead use Type::lookupName

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-10 16:13:09 +02:00
Carl Schwan
b0c6ef5821 refactor(dbal): Port away from deprecated hasPrimaryKey
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-10 15:44:43 +02:00
Louis
9dfd6f1533 Merge pull request #55654 from nextcloud/artonge/fix/do_not_happen_streams 2025-10-10 14:43:05 +02:00
Carl Schwan
c89ca89f2f Merge pull request #55083 from nextcloud/carl/preview-interface-cleanup
refactor(preview): Cleanup a bit the public interface
2025-10-10 11:30:02 +02:00
Louis Chmn
00ec57efd6 fix(S3): Only append streams if non-seekable
Later, when we rewind the stream in `writeMultiPart` during retry, both streams were rewinded, so the resulting stream was bigger than expected.

Inspired by https://github.com/aws/aws-sdk-php/blob/master/src/S3/ObjectUploader.php#L136-L146

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-10-10 09:54:05 +02:00
Joas Schilling
b469840b3d Merge pull request #55645 from nextcloud/bugfix/noid/comments-by-apps
Fix comments when used by other apps
2025-10-10 08:36:54 +02:00
Nextcloud bot
3efb030837 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-10 00:13:17 +00:00
Arthur Schiwon
fbd29bcf7f fix(LDAP): properly disable are require TLS certificate verification
- the old approach lead connection issues, as ldap_set_option was called
  too late. Specifically it needs to be called before ldap_connect and set
  globally!
- The old approach also connected it to the ldapTLS configuration, which
  has a misleading naming. It indicates StartTLS usage only, not plain TLS
  connections.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-09 20:22:37 +02:00
Daniel Kesselberg
ca717f0b54 fix: disable mp3 preview provider
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-10-09 18:13:17 +02:00
Carl Schwan
cb82a9ef04 refactor(preview): Cleanup a bit the public interface
* Remove old IProvider interface, it's been deprecated since 17.0.0 (8
  years)
* Add type hinting to the IPreview interface and mark it as consumeable
  only
* Remove unused arguments from GeneratorHelper

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-09 17:41:13 +02:00
Josh
9e9bf4988a Merge pull request #55582 from nextcloud/jtr/chore-app-encryption-desc
chore: improve SSE default crypto module app description
2025-10-09 11:38:09 -04:00
nextcloud-command
4efb40f46d chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-09 14:44:15 +00:00
Joas Schilling
d332091105 fix(comments): Don't throw type error when no itemType or itemId is given
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-09 16:35:16 +02:00
Joas Schilling
d659cbcd0e fix(comments): Support user IDs that are numbers, e.g. "42"
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-09 16:35:15 +02:00
Joas Schilling
8ab5cf4009 fix(comments): Correctly await the getComments() call
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-09 16:35:14 +02:00
Joas Schilling
fa17c55588 fix(comments): Use the correct object when autocompleting mentions for other apps
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-09 16:35:13 +02:00
Côme Chilliet
48c2dd6279 Merge pull request #55517 from nextcloud/carl/cron-service
refactor: Move cron setup to a service
2025-10-09 09:52:34 +02:00
Marcel Klehr
9d98f85348 Merge pull request #54793 from nextcloud/fix/fileaccess-getbyancestorinstorage-sharding
fix(FileAccess): Make getByAncestorInStorage sharding ready
2025-10-09 09:51:51 +02:00
Marcel Klehr
3522a3375e fix(FileAccess): Make getAncestorInStorage pass sharding tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
b158a77365 fix(FileAccess): Try to fix type error
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
1e9a5019b4 fix(FileAccess): Set filecache size column in tests
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
62bff06aeb fix(FileAccess): Chunk parent query
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
Marcel Klehr
9ccc798655 fix(FileAccess): Make getByAncestorInStorage sharding ready
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2025-10-09 09:27:50 +02:00
F. E Noel Nfebe
8e5f436814 Merge pull request #55080 from nextcloud/fix/54511/federation-trusted-server-suggestions
fix(sharing): Adapt share suggestions to match trusted servers configs
2025-10-09 08:29:53 +02:00
nextcloud-command
8c7be09d93 chore(assets): Recompile assets
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2025-10-09 06:05:36 +00:00
nfebe
c9bb6eedc6 fix: Include email when searching share suggestions
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-09 06:53:51 +01:00
nfebe
c1d9e22c51 fix(sharing): Adapt share suggestions to match trusted servers configs
When `show_federated_shares_to_trusted_servers_as_internal` is enabled
but `show_federated_shares_as_internal` is not, filter federated share
suggestions to only include trusted servers. Previously, searching for
an email address would suggest non-trusted federated servers.

Resolved: #54511
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-09 06:53:46 +01:00
Nextcloud bot
0793253d37 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-10-09 00:25:27 +00:00
John Molakvoæ
d907a77902 Merge pull request #55624 from nextcloud/fix/catch-nodes-systemtags 2025-10-08 21:06:12 +02:00
John Molakvoæ (skjnldsv)
bd04c26427 fix(systemtags): catch empty nodes
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2025-10-08 20:38:20 +02:00
Richard Steinmetz
f6593a7464 Merge pull request #55630 from nextcloud/fix/caldav/disable-cal-federation-remote-access
fix(caldav): disable remote access when calendar federation is off
2025-10-08 19:22:37 +02:00
Ferdinand Thiessen
c6a02e562d Merge pull request #55608 from nextcloud/chore/drop-karma
chore(tests): drop legacy Karma tests
2025-10-08 17:20:48 +02:00
Carl Schwan
475c84722f refactor(IPropagator): Cleanup implementation
- Add missing type hinting
- Use only public methods from IStorage instead of relying on internal
  \OC\Storage methods
- Refactor HomePropagator to use ignore argument from Propagator instead
  of reimplementing the same logic.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-08 17:15:18 +02:00
Richard Steinmetz
0df9e73e6c fix(caldav): disable remote access when calendar federation is off
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-10-08 17:14:00 +02:00
Benjamin Gaussorgues
3aa0c23e40 Merge pull request #54543 from nextcloud/preview-db-rework 2025-10-08 16:39:23 +02:00
Carl Schwan
fed7a33d1f refactor(preview-object-store): Refactor object store backend
Simplify logic

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-08 14:07:07 +02:00
Carl Schwan
bef3996c3e fix(preview): Make version column a string
And move it to a different table so that we don't have to pay the
storage cost when not using it (most of the times).

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-08 14:07:06 +02:00
Josh
71b196b0e1 fix: Apply suggestions from code review
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-07 10:44:04 -04:00
Ferdinand Thiessen
1f24865caf chore(tests): drop legacy Karma tests
we no longer use Karma tests, all actual tests have been migrated to
vitest. The leftover tests are already covered by unit tests in
packages.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-10-07 14:27:14 +02:00
Josh
1a5d07034b chore: improve SSE default crypto module app description
Updated the app information for the encryption module to include detailed encryption features, warnings, and notes for existing files.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2025-10-06 11:32:33 -04:00
Carl Schwan
9d7fbb1b86 refactor: Move cron setup to a service
This will allow in the future the following things:

- Create unit tests for it
- Make cron.php a occ command
- Make webcron a proper controller

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 15:28:43 +02:00
Carl Schwan
66f50bd585 refactor(preview): Use same mimetype ids as filecache
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
bd001c9524 refactor: Use Override annotation in new preview code
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
58023782b6 feat(preview): Store original file mimetype in preview table
Allow to quickly query all the files from a specific mimetype like in
the ResetRenderedTexts command.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
bfc7d5dd9f feat(preview): Implement scanning for previews
This work similarly to the move preview job to migrate the previews to
the new DB table and also reuse some code.

So when we are finding files in appdata/preview, try adding them to the
oc_previews table and delete them from the oc_filecache table.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
324b54b863 refactor(preview): Cleanup the implementation of the new preview backend
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
6f56dcf73e fix(preview): Fix some tests
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
b0357663b9 perf(preview): Optimize migration and simplify DB layout
* Simplify migration by not moving the actual files and just updating
  the DB
* Don't store the storageid in the preview table as it is not needed
* Start adding tests

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
bba9667882 perf(preview): Adapt BackgroundCleanupJob to new previews table
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
6008852232 feat(preview): Support multibucket storage
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
13c35c0f17 perf(preview): Migrate previews to the new optimized table
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
656e33e8da perf(preview): Add support for multibucket storage
Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-10-06 13:37:15 +02:00
Carl Schwan
18fbacdd8d perf(preview): Split preview data to new table
The new oc_previews table is optimized for storing previews and should
decrease significantly the space taken by previews in the filecache
table.

This attend to reuse the IObjectStore abstraction over S3/Swift/Azure
but currently only support one single bucket configuration.

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-10-06 13:37:15 +02:00
Arthur Schiwon
e9a1d7fa0d fix(Apps): fix install command check on existing apps
- AppManager::isInstalled() is misleading, as it checks only whether it is
  enabled. But an app might not be present in some edge cases.
- AppManager::getAppPath() does however only check whether an app dir is
  present, independent of the enabled-state.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-09-29 09:39:14 +02:00
Enjeck C
7a7820605f fix: Ensure CLOUD key exists before resolving Cloud ID
Signed-off-by: Enjeck C <patrathewhiz@gmail.com>
2025-08-22 18:51:29 +01:00
SebastianKrupinski
dcf3d6e7ee fix: use old event information if new is missing
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-05-15 12:20:18 -04:00
2582 changed files with 81900 additions and 47498 deletions

22
.github/CODEOWNERS vendored
View File

@@ -31,9 +31,9 @@ package-lock.json @nextcloud/server-dependabot
/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/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/lib/CardDAV @hamza221 @SebastianKrupinski
/apps/dav/tests/unit/CalDAV @st3iny @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CalDAV @ChristophWurst @SebastianKrupinski @tcitworld
/apps/dav/tests/unit/CardDAV @hamza221 @SebastianKrupinski
/apps/encryption/appinfo/info.xml @come-nc @icewind1991
/apps/federatedfilesharing/appinfo/info.xml @icewind1991 @danxuliu
@@ -50,7 +50,7 @@ package-lock.json @nextcloud/server-dependabot
/apps/sharebymail/appinfo/info.xml @Altahrim @skjnldsv
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
/apps/theming/appinfo/info.xml @skjnldsv @juliusknorr
/apps/twofactor_backupcodes/appinfo/info.xml @st3iny @miaulalala @ChristophWurst
/apps/twofactor_backupcodes/appinfo/info.xml @miaulalala @ChristophWurst
/apps/updatenotification/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
@@ -72,9 +72,9 @@ package-lock.json @nextcloud/server-dependabot
# Two-Factor Authentication
# https://github.com/nextcloud/wg-two-factor-authentication#members
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen @st3iny
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen @st3iny
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen @st3iny
**/TwoFactorAuth @ChristophWurst @miaulalala @nickvergessen
/apps/twofactor_backupcodes @ChristophWurst @miaulalala @nickvergessen
/core/templates/twofactor* @ChristophWurst @miaulalala @nickvergessen
# Limit login to IP
# Watch login routes for https://github.com/nextcloud/limit_login_to_ip
@@ -96,16 +96,16 @@ ResponseDefinitions.php @provokateurin @nextcloud/server-backend
*/Notifications/* @nickvergessen @nextcloud/talk-backend
# Groupware team
/build/integration/dav_features/caldav.feature @st3iny @SebastianKrupinski @tcitworld
/build/integration/dav_features/caldav.feature @ChristophWurst @SebastianKrupinski @tcitworld
/build/integration/dav_features/carddav.feature @hamza221 @SebastianKrupinski
/lib/private/Calendar @st3iny @SebastianKrupinski @tcitworld
/lib/private/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/private/Contacts @hamza221 @SebastianKrupinski
/lib/public/Calendar @st3iny @SebastianKrupinski @tcitworld
/lib/public/Calendar @ChristophWurst @SebastianKrupinski @tcitworld
/lib/public/Contacts @hamza221 @SebastianKrupinski
# Desktop client teamn
/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php @nextcloud/desktop
# Personal interest
*/Activity/* @nickvergessen @nextcloud/server-backend
/apps/workflowengine/lib @nickvergessen @blizzz
*/Activity/* @nickvergessen @nextcloud/server-backend
/apps/workflowengine/lib @nickvergessen @blizzz

View File

@@ -38,7 +38,10 @@ updates:
# Main master npm frontend dependencies
- package-ecosystem: npm
directory: "/"
directories:
- "/"
- "/build/frontend"
- "/build/frontend-legacy"
schedule:
interval: weekly
day: saturday
@@ -121,28 +124,6 @@ updates:
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- package-ecosystem: composer
target-branch: stable30
directories:
- "/"
- "/build/integration"
- "/vendor-bin/cs-fixer"
- "/vendor-bin/openapi-extractor"
- "/vendor-bin/phpunit"
- "/vendor-bin/psalm"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
labels:
- "3. to review"
- "feature: dependencies"
ignore:
# only patch updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# frontend dependencies
- package-ecosystem: npm
target-branch: stable31
@@ -162,22 +143,3 @@ updates:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]
- package-ecosystem: npm
target-branch: stable30
directory: "/"
schedule:
interval: weekly
day: saturday
time: "04:00"
timezone: Europe/Paris
open-pull-requests-limit: 20
labels:
- "3. to review"
- "feature: dependencies"
# Disable automatic rebasing because without a build CI will likely fail anyway
rebase-strategy: "disabled"
ignore:
# no major updates on stable branches
- dependency-name: "*"
update-types: ["version-update:semver-major"]

View File

@@ -32,16 +32,18 @@ jobs:
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
config-file: ./.github/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
with:
category: "/language:${{matrix.language}}"

View File

@@ -102,8 +102,8 @@ jobs:
matrix:
# Run multiple copies of the current job in parallel
# Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
containers: ['component', 'setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
containers: ['setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
# Hack as strategy.job-total includes the "setup" and GitHub does not allow math expressions
# Always align this number with the total of e2e runners (max. index + 1)
total-containers: [10]
@@ -194,6 +194,7 @@ jobs:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
SPLIT: ${{ matrix.total-containers }}
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
SPLIT_RANDOM_SEED: ${{ github.run_id }}
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
- name: Upload snapshots and videos
@@ -205,20 +206,19 @@ jobs:
cypress/snapshots
cypress/videos
- name: Extract NC logs
- name: Show logs
if: failure() && matrix.containers != 'component'
run: docker logs nextcloud-cypress-tests_${{ env.APP_NAME }} > nextcloud.log
- name: Upload NC logs
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: failure() && matrix.containers != 'component'
with:
name: nc_logs_${{ matrix.containers }}
path: nextcloud.log
run: |
for id in $(docker ps -aq); do
docker container inspect "$id" --format '=== Logs for container {{.Name}} ==='
docker logs "$id" >> nextcloud.log
done
echo '=== Nextcloud server logs ==='
docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} cat data/nextcloud.log
- 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-e2e-test-server_${{ env.APP_NAME }} tar -cvjf - data > data.tar
- name: Upload data dir archive
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2

View File

@@ -84,9 +84,10 @@ jobs:
ports:
- 6379:6379/tcp
openldap:
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-7 # zizmor: ignore[unpinned-images]
image: ghcr.io/nextcloud/continuous-integration-openldap:openldap-8 # zizmor: ignore[unpinned-images]
ports:
- 389:389
- 636:636
env:
SLAPD_DOMAIN: nextcloud.ci
SLAPD_ORGANIZATION: Nextcloud

View File

@@ -114,35 +114,6 @@ jobs:
if: ${{ !cancelled() }}
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
jsunit:
runs-on: ubuntu-latest
needs: [versions, changes]
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
env:
CYPRESS_INSTALL_BINARY: 0
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
with:
node-version: ${{ needs.versions.outputs.nodeVersion }}
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
- name: Install dependencies
run: npm ci
- name: Test
run: npm run test:jsunit
handlebars:
runs-on: ubuntu-latest
needs: [versions, changes]
@@ -177,7 +148,7 @@ jobs:
permissions:
contents: none
runs-on: ubuntu-latest-low
needs: [changes, test, jsunit, handlebars]
needs: [changes, test, handlebars]
if: always()
@@ -185,4 +156,4 @@ jobs:
steps:
- name: Summary status
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.jsunit.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi

View File

@@ -5,9 +5,10 @@ name: PHPUnit 32bits
on:
pull_request:
paths:
- 'version.php'
- '.github/workflows/phpunit-32bits.yml'
- 'tests/phpunit-autotest.xml'
- "version.php"
- ".github/workflows/phpunit-32bits.yml"
- "tests/phpunit-autotest.xml"
- "lib/private/Snowflake/*"
workflow_dispatch:
schedule:
- cron: "15 1 * * 1-6"
@@ -30,7 +31,7 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.2', '8.3', '8.4']
php-versions: ["8.2", "8.3", "8.4"]
steps:
- name: Checkout server
@@ -51,8 +52,7 @@ jobs:
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap
coverage: none
ini-file: development
ini-values:
apc.enabled=on, apc.enable_cli=on, disable_functions= # https://github.com/shivammathur/setup-php/discussions/573
ini-values: apc.enabled=on, apc.enable_cli=on, disable_functions= # https://github.com/shivammathur/setup-php/discussions/573
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

9
.gitignore vendored
View File

@@ -11,7 +11,7 @@
/apps/inc.php
/assets
/.htaccess
/node_modules
node_modules/
/translationfiles
/translationtool.phar
@@ -55,10 +55,6 @@
/apps/files_external/3rdparty/irodsphp/prods/test*
/apps/files_external/tests/config.*.php
# apps modules
/apps/*/node_modules
# ignore themes except the example and the README
/themes/*
!/themes/example
@@ -131,9 +127,6 @@ nbproject
# Tests
/tests/phpunit.xml
# Node Modules
/build/node_modules/
# nodejs
/build/bin
/build/lib/

View File

@@ -178,7 +178,7 @@ SPDX-FileCopyrightText = "2020 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"
[[annotations]]
path = ["cypress/tsconfig.json", "cypress/fixtures/appstore/apps.json", "dist/icons.css"]
path = ["cypress/tsconfig.json", "cypress/fixtures/appstore/apps.json", "dist/*.css"]
precedence = "aggregate"
SPDX-FileCopyrightText = "2022 Nextcloud GmbH and Nextcloud contributors"
SPDX-License-Identifier = "AGPL-3.0-or-later"

View File

@@ -2,6 +2,7 @@
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: CC0-1.0
*/
export function setup() {
process.env.TZ = 'UTC'
}

View File

@@ -2,5 +2,6 @@
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: CC0-1.0
*/
import '@testing-library/jest-dom/vitest'
import 'core-js/stable/index.js'

View File

@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';

View File

@@ -26,12 +26,23 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +320,24 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -322,19 +351,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +387,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';

View File

@@ -26,12 +26,23 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +320,24 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -322,19 +351,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +387,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -236,7 +236,7 @@ class RequestHandlerController extends Controller {
*
* @param string $recipientProvider The address of the recipent's provider
* @param string $token The token used for the invitation
* @param string $userId The userId of the recipient at the recipient's provider
* @param string $userID The userID of the recipient at the recipient's provider
* @param string $email The email address of the recipient
* @param string $name The display name of the recipient
*
@@ -251,8 +251,8 @@ class RequestHandlerController extends Controller {
#[PublicPage]
#[NoCSRFRequired]
#[BruteForceProtection(action: 'inviteAccepted')]
public function inviteAccepted(string $recipientProvider, string $token, string $userId, string $email, string $name): JSONResponse {
$this->logger->debug('Processing share invitation for ' . $userId . ' with token ' . $token . ' and email ' . $email . ' and name ' . $name);
public function inviteAccepted(string $recipientProvider, string $token, string $userID, string $email, string $name): JSONResponse {
$this->logger->debug('Processing share invitation for ' . $userID . ' with token ' . $token . ' and email ' . $email . ' and name ' . $name);
$updated = $this->timeFactory->getTime();
@@ -309,7 +309,7 @@ class RequestHandlerController extends Controller {
$invitation->setRecipientEmail($email);
$invitation->setRecipientName($name);
$invitation->setRecipientProvider($recipientProvider);
$invitation->setRecipientUserId($userId);
$invitation->setRecipientUserId($userID);
$invitation->setAcceptedAt($updated);
$invitation = $this->federatedInviteMapper->update($invitation);

View File

@@ -354,7 +354,7 @@
"required": [
"recipientProvider",
"token",
"userId",
"userID",
"email",
"name"
],
@@ -367,9 +367,9 @@
"type": "string",
"description": "The token used for the invitation"
},
"userId": {
"userID": {
"type": "string",
"description": "The userId of the recipient at the recipient's provider"
"description": "The userID of the recipient at the recipient's provider"
},
"email": {
"type": "string",

View File

@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';

View File

@@ -26,12 +26,23 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +320,24 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -322,19 +351,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +387,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -19,7 +19,7 @@ OC.L10N.register(
"New comment" : "Новы каментарый",
"Write a comment …" : "Напішыце каментарый …",
"Post comment" : "Апублікаваць каментарый",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - разумны выбар",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - smart picker",
"Could not reload comments" : "Не ўдалося перазагрузіць каментарыі",
"Failed to mark comments as read" : "Не атрымалася пазначыць каментарыі як прачытаныя",
"Unable to load the comments list" : "Не ўдалося загрузіць спіс каментарыяў",

View File

@@ -17,7 +17,7 @@
"New comment" : "Новы каментарый",
"Write a comment …" : "Напішыце каментарый …",
"Post comment" : "Апублікаваць каментарый",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - разумны выбар",
"@ for mentions, : for emoji, / for smart picker" : "@ - згадкі, : - эмодзі, / - smart picker",
"Could not reload comments" : "Не ўдалося перазагрузіць каментарыі",
"Failed to mark comments as read" : "Не атрымалася пазначыць каментарыі як прачытаныя",
"Unable to load the comments list" : "Не ўдалося загрузіць спіс каментарыяў",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář …",
"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",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "Smazat komentář",
"Cancel edit" : "Zrušit úpravu",
"New comment" : "Nový komentář",
"Write a comment …" : "Napsat komentář …",
"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",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "Slet kommentar",
"Cancel edit" : "Annullér redigering",
"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",
"Could not reload comments" : "Kunne ikke indlæse kommentarer",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "Slet kommentar",
"Cancel edit" : "Annullér redigering",
"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",
"Could not reload comments" : "Kunne ikke indlæse kommentarer",

View File

@@ -17,7 +17,7 @@ OC.L10N.register(
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Write a comment …" : "Schreiben Sie einen Kommentar  …",
"Write a comment …" : "Einen Kommentar schreiben …",
"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",

View File

@@ -15,7 +15,7 @@
"Delete comment" : "Kommentar löschen",
"Cancel edit" : "Bearbeiten abbrechen",
"New comment" : "Neuer Kommentar",
"Write a comment …" : "Schreiben Sie einen Kommentar  …",
"Write a comment …" : "Einen Kommentar schreiben …",
"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",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "Delete comment",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"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",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "Delete comment",
"Cancel edit" : "Cancel edit",
"New comment" : "New comment",
"Write a comment …" : "Write a comment …",
"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",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "Supprimer le commentaire",
"Cancel edit" : "Annuler les modifications",
"New comment" : "Nouveau commentaire",
"Write a comment …" : "Écrire un commentaire …",
"Post comment" : "Publier le commentaire",
"@ for mentions, : for emoji, / for smart picker" : "@ pour les mentions, : pour les émojis, / pour le sélecteur intelligent",
"Could not reload comments" : "Impossible de recharger les commentaires",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "Supprimer le commentaire",
"Cancel edit" : "Annuler les modifications",
"New comment" : "Nouveau commentaire",
"Write a comment …" : "Écrire un commentaire …",
"Post comment" : "Publier le commentaire",
"@ for mentions, : for emoji, / for smart picker" : "@ pour les mentions, : pour les émojis, / pour le sélecteur intelligent",
"Could not reload comments" : "Impossible de recharger les commentaires",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "Elimina commento",
"Cancel edit" : "Annulla modifica",
"New comment" : "Nuovo commento",
"Write a comment …" : "Scrivi un commento ...",
"Post comment" : "Pubblica commento",
"@ for mentions, : for emoji, / for smart picker" : "@ per menzioni, : per emoji, / per selettore intelligente",
"Could not reload comments" : "Impossibile ricaricare i commenti",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "Elimina commento",
"Cancel edit" : "Annulla modifica",
"New comment" : "Nuovo commento",
"Write a comment …" : "Scrivi un commento ...",
"Post comment" : "Pubblica commento",
"@ for mentions, : for emoji, / for smart picker" : "@ per menzioni, : per emoji, / per selettore intelligente",
"Could not reload comments" : "Impossibile ricaricare i commenti",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "Вилучити коментар",
"Cancel edit" : "Скасувати редагування",
"New comment" : "Новий коментар",
"Write a comment …" : "Додайте коментар …",
"Post comment" : "Опублікувати коментар",
"@ for mentions, : for emoji, / for smart picker" : "@ згадати, : емоційки, / асистент вибору",
"Could not reload comments" : "Не вдалося перезавантажити коментарі",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "Вилучити коментар",
"Cancel edit" : "Скасувати редагування",
"New comment" : "Новий коментар",
"Write a comment …" : "Додайте коментар …",
"Post comment" : "Опублікувати коментар",
"@ for mentions, : for emoji, / for smart picker" : "@ згадати, : емоційки, / асистент вибору",
"Could not reload comments" : "Не вдалося перезавантажити коментарі",

View File

@@ -17,6 +17,7 @@ OC.L10N.register(
"Delete comment" : "刪除留言",
"Cancel edit" : "取消編輯",
"New comment" : "新評論",
"Write a comment …" : "發表評論 ...",
"Post comment" : "張貼留言",
"@ for mentions, : for emoji, / for smart picker" : "“@” 表示提及,“:” 表示表情符號,“/” 表示智慧型選擇器",
"Could not reload comments" : "無法重新加載評論",

View File

@@ -15,6 +15,7 @@
"Delete comment" : "刪除留言",
"Cancel edit" : "取消編輯",
"New comment" : "新評論",
"Write a comment …" : "發表評論 ...",
"Post comment" : "張貼留言",
"@ for mentions, : for emoji, / for smart picker" : "“@” 表示提及,“:” 表示表情符號,“/” 表示智慧型選擇器",
"Could not reload comments" : "無法重新加載評論",

View File

@@ -27,6 +27,10 @@ class CommentersSorter implements ISorter {
* @param array $context
*/
public function sort(array &$sortArray, array $context): void {
if (!isset($context['itemType'], $context['itemId'])) {
return;
}
$commenters = $this->retrieveCommentsInformation($context['itemType'], $context['itemId']);
if (count($commenters) === 0) {
return;

View File

@@ -27,6 +27,7 @@ export default defineComponent({
key: 'editor',
},
userData: {},
currentResourceId: this.resourceId,
}
},
methods: {
@@ -40,8 +41,8 @@ export default defineComponent({
const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {
params: {
search,
itemType: 'files',
itemId: this.resourceId,
itemType: this.resourceType,
itemId: this.currentResourceId,
sorter: 'commenters|share-recipients',
limit: loadState('comments', 'maxAutoCompleteResults'),
},

View File

@@ -110,7 +110,6 @@ export default {
loading: false,
done: false,
currentResourceId: this.resourceId,
offset: 0,
comments: [],
@@ -158,7 +157,7 @@ export default {
async update(resourceId) {
this.currentResourceId = resourceId
this.resetState()
this.getComments()
await this.getComments()
},
/**
@@ -206,8 +205,13 @@ export default {
this.done = true
}
// Ensure actor id is a string
for (const comment of comments) {
comment.props.actorId = comment.props.actorId.toString()
}
// Insert results
this.comments.push(...comments)
this.comments = [...this.comments, ...comments]
// Increase offset for next fetch
this.offset += DEFAULT_LIMIT

View File

@@ -24,10 +24,9 @@ use Test\TestCase;
/**
* Class ApplicationTest
*
* @group DB
*
* @package OCA\Comments\Tests\Unit\AppInfo
*/
#[\PHPUnit\Framework\Attributes\Group('DB')]
class ApplicationTest extends TestCase {
protected function setUp(): void {
parent::setUp();

View File

@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';

View File

@@ -26,12 +26,23 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +320,24 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -322,19 +351,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +387,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -0,0 +1,9 @@
OC.L10N.register(
"contactsinteraction",
{
"Recently contacted" : "Yaqinda bog'langan",
"Contacts Interaction" : "Kontaktlar o'zaro ta'siri",
"Manages interaction between accounts and contacts" : "Hisoblar va kontaktlar o'rtasidagi o'zaro aloqani boshqaradi",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Hisoblar va kontaktlarning o'zaro aloqalari haqida ma'lumotlarni to'plang va ma'lumotlar uchun manzillar kitobini taqdim eting"
},
"nplurals=1; plural=0;");

View File

@@ -0,0 +1,7 @@
{ "translations": {
"Recently contacted" : "Yaqinda bog'langan",
"Contacts Interaction" : "Kontaktlar o'zaro ta'siri",
"Manages interaction between accounts and contacts" : "Hisoblar va kontaktlar o'rtasidagi o'zaro aloqani boshqaradi",
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Hisoblar va kontaktlarning o'zaro aloqalari haqida ma'lumotlarni to'plang va ma'lumotlar uchun manzillar kitobini taqdim eting"
},"pluralForm" :"nplurals=1; plural=0;"
}

View File

@@ -17,9 +17,7 @@ use Sabre\VObject\Component\VCard;
use Sabre\VObject\UUIDUtil;
use Test\TestCase;
/**
* @group DB
*/
#[\PHPUnit\Framework\Attributes\Group('DB')]
class RecentContactMapperTest extends TestCase {
private RecentContactMapper $recentContactMapper;
private ITimeFactory $time;

View File

@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';

View File

@@ -26,12 +26,23 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +320,24 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -322,19 +351,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +387,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -20,6 +20,7 @@ OC.L10N.register(
"Edit widgets" : "Tilpas widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
"Weather service" : "Vejret",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv anmoder din {productName} server om vejrdata på dine vegne, så vejrtjenesten ikke modtager personlige oplysninger.",
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
"geocoding with Nominatim" : "Geocoding med Nominatim",
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",

View File

@@ -18,6 +18,7 @@
"Edit widgets" : "Tilpas widgets",
"Get more widgets from the App Store" : "Få flere widgets fra App Store",
"Weather service" : "Vejret",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv anmoder din {productName} server om vejrdata på dine vegne, så vejrtjenesten ikke modtager personlige oplysninger.",
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
"geocoding with Nominatim" : "Geocoding med Nominatim",
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",

View File

@@ -20,6 +20,7 @@ OC.L10N.register(
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
"Weather service" : "Servizio meteo",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server {productName} per tuo conto, per cui il servizio meteo non riceve informazioni personali.",
"Weather data from Met.no" : "Dati meteo da Met.no",
"geocoding with Nominatim" : "geocodifica conh Nominatim",
"elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData",

View File

@@ -18,6 +18,7 @@
"Edit widgets" : "Modifica widget",
"Get more widgets from the App Store" : "Ottieni altri widget dal negozio delle applicazioni",
"Weather service" : "Servizio meteo",
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Per la tua riservatezza, i dati meteorologici sono richiesti dal tuo server {productName} per tuo conto, per cui il servizio meteo non riceve informazioni personali.",
"Weather data from Met.no" : "Dati meteo da Met.no",
"geocoding with Nominatim" : "geocodifica conh Nominatim",
"elevation data from OpenTopoData" : "dati di elevazione da OpenTopoData",

View File

@@ -81,7 +81,7 @@ $linkCheckPlugin = new PublicLinkCheckPlugin();
$filesDropPlugin = new FilesDropPlugin();
/** @var string $baseuri defined in public.php */
$server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($authBackend, $linkCheckPlugin, $filesDropPlugin) {
$server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin, function (\Sabre\DAV\Server $server) use ($baseuri, $requestUri, $authBackend, $linkCheckPlugin, $filesDropPlugin) {
// GET must be allowed for e.g. showing images and allowing Zip downloads
if ($server->httpRequest->getMethod() !== 'GET') {
// If this is *not* a GET request we only allow access to public DAV from AJAX or when Server2Server is allowed
@@ -103,8 +103,16 @@ $server = $serverFactory->createServer(true, $baseuri, $requestUri, $authPlugin,
$previousLog = Filesystem::logWarningWhenAddingStorageWrapper(false);
/** @psalm-suppress MissingClosureParamType */
Filesystem::addStorageWrapper('sharePermissions', function ($mountPoint, $storage) use ($share) {
return new PermissionsMask(['storage' => $storage, 'mask' => $share->getPermissions() | Constants::PERMISSION_SHARE]);
Filesystem::addStorageWrapper('sharePermissions', function ($mountPoint, $storage) use ($requestUri, $baseuri, $share) {
$mask = $share->getPermissions() | Constants::PERMISSION_SHARE;
// For chunked uploads it is necessary to have read and delete permission,
// so the temporary directory, chunks and destination file can be read and delete after the assembly.
if (str_starts_with(substr($requestUri, strlen($baseuri) - 1), '/uploads/')) {
$mask |= Constants::PERMISSION_READ | Constants::PERMISSION_DELETE;
}
return new PermissionsMask(['storage' => $storage, 'mask' => $mask]);
});
/** @psalm-suppress MissingClosureParamType */

View File

@@ -14,10 +14,7 @@ if (PHP_VERSION_ID < 50600) {
echo $err;
}
}
trigger_error(
$err,
E_USER_ERROR
);
throw new RuntimeException($err);
}
require_once __DIR__ . '/composer/autoload_real.php';

View File

@@ -26,12 +26,23 @@ use Composer\Semver\VersionParser;
*/
class InstalledVersions
{
/**
* @var string|null if set (by reflection by Composer), this should be set to the path where this class is being copied to
* @internal
*/
private static $selfDir = null;
/**
* @var mixed[]|null
* @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>}|array{}|null
*/
private static $installed;
/**
* @var bool
*/
private static $installedIsLocalDir;
/**
* @var bool|null
*/
@@ -309,6 +320,24 @@ class InstalledVersions
{
self::$installed = $data;
self::$installedByVendor = array();
// when using reload, we disable the duplicate protection to ensure that self::$installed data is
// always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not,
// so we have to assume it does not, and that may result in duplicate data being returned when listing
// all installed packages for example
self::$installedIsLocalDir = false;
}
/**
* @return string
*/
private static function getSelfDir()
{
if (self::$selfDir === null) {
self::$selfDir = strtr(__DIR__, '\\', '/');
}
return self::$selfDir;
}
/**
@@ -322,19 +351,27 @@ class InstalledVersions
}
$installed = array();
$copiedLocalDir = false;
if (self::$canGetVendors) {
$selfDir = self::getSelfDir();
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
$vendorDir = strtr($vendorDir, '\\', '/');
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
/** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array<string, array{pretty_version?: string, version?: string, reference?: string|null, type?: string, install_path?: string, aliases?: string[], dev_requirement: bool, replaced?: string[], provided?: string[]}>} $required */
$required = require $vendorDir.'/composer/installed.php';
$installed[] = self::$installedByVendor[$vendorDir] = $required;
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
self::$installed = $installed[count($installed) - 1];
self::$installedByVendor[$vendorDir] = $required;
$installed[] = $required;
if (self::$installed === null && $vendorDir.'/composer' === $selfDir) {
self::$installed = $required;
self::$installedIsLocalDir = true;
}
}
if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) {
$copiedLocalDir = true;
}
}
}
@@ -350,7 +387,7 @@ class InstalledVersions
}
}
if (self::$installed !== array()) {
if (self::$installed !== array() && !$copiedLocalDir) {
$installed[] = self::$installed;
}

View File

@@ -206,6 +206,7 @@ return array(
'OCA\\DAV\\Comments\\EntityCollection' => $baseDir . '/../lib/Comments/EntityCollection.php',
'OCA\\DAV\\Comments\\EntityTypeCollection' => $baseDir . '/../lib/Comments/EntityTypeCollection.php',
'OCA\\DAV\\Comments\\RootCollection' => $baseDir . '/../lib/Comments/RootCollection.php',
'OCA\\DAV\\ConfigLexicon' => $baseDir . '/../lib/ConfigLexicon.php',
'OCA\\DAV\\Connector\\LegacyDAVACL' => $baseDir . '/../lib/Connector/LegacyDAVACL.php',
'OCA\\DAV\\Connector\\LegacyPublicAuth' => $baseDir . '/../lib/Connector/LegacyPublicAuth.php',
'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => $baseDir . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',

View File

@@ -221,6 +221,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Comments\\EntityCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityCollection.php',
'OCA\\DAV\\Comments\\EntityTypeCollection' => __DIR__ . '/..' . '/../lib/Comments/EntityTypeCollection.php',
'OCA\\DAV\\Comments\\RootCollection' => __DIR__ . '/..' . '/../lib/Comments/RootCollection.php',
'OCA\\DAV\\ConfigLexicon' => __DIR__ . '/..' . '/../lib/ConfigLexicon.php',
'OCA\\DAV\\Connector\\LegacyDAVACL' => __DIR__ . '/..' . '/../lib/Connector/LegacyDAVACL.php',
'OCA\\DAV\\Connector\\LegacyPublicAuth' => __DIR__ . '/..' . '/../lib/Connector/LegacyPublicAuth.php',
'OCA\\DAV\\Connector\\Sabre\\AnonymousOptionsPlugin' => __DIR__ . '/..' . '/../lib/Connector/Sabre/AnonymousOptionsPlugin.php',

View File

@@ -272,8 +272,6 @@ OC.L10N.register(
"Last day (inclusive)" : "آخر يوم (متضمن)",
"Out of office replacement (optional)" : "البديل لمن هو خارج المكتب (إختياري)",
"Name of the replacement" : "اسم البديل",
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Short absence status" : "حالة الغياب القصير",
"Long absence Message" : "رسالة الغياب الطويل",
"Save" : "حفظ",
@@ -300,10 +298,6 @@ OC.L10N.register(
"Reset to default" : "اعادة تعيين الافتراضيات",
"Import contacts" : "استيراد جهات اتصال",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "قم أيضاً بتنصيب {calendarappstoreopen} تطبيق التقويم {linkclose}, أو {calendardocopen} أوصل جهازك و موبايلك للمُزامنة ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "رجاءُ، تأكّد من الإعداد الصحيح لـ {emailopen} خادم البريد الالكتروني {linkclose}.",
"Calendar server" : "خادم التقويم",
@@ -316,11 +310,17 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "أرسل إشعارات للتذكير إلى المشتركين بالتقويم كذلك",
"Reminders are always sent to organizers and attendees." : "إشعارات التذكير يتم إرسالها دائماً إلى مُنظّم أو مُنظّمي الحدث و المستهدفين بحضوره.",
"Enable notifications for events via push" : "تمكين الإشعارات حول الأحداث عن طريق أسلوب دفع الإشعارات Push",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"There was an error updating your attendance status." : "حدث خطأ في تحديث حالة حضورك.",
"Please contact the organizer directly." : "يرجى الاتصال بالمنظم مباشرةً",
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
"Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Time zone:" : "منطقة زمنية:"
},
"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;");

View File

@@ -270,8 +270,6 @@
"Last day (inclusive)" : "آخر يوم (متضمن)",
"Out of office replacement (optional)" : "البديل لمن هو خارج المكتب (إختياري)",
"Name of the replacement" : "اسم البديل",
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Short absence status" : "حالة الغياب القصير",
"Long absence Message" : "رسالة الغياب الطويل",
"Save" : "حفظ",
@@ -298,10 +296,6 @@
"Reset to default" : "اعادة تعيين الافتراضيات",
"Import contacts" : "استيراد جهات اتصال",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "استيراد ملف .cvf جديد سوف يؤدي إلى حذف جهات الاتصال التلقائية الحالية واستبدالها بالجديدة. هل ترغب في الاستمرار؟",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "قم أيضاً بتنصيب {calendarappstoreopen} تطبيق التقويم {linkclose}, أو {calendardocopen} أوصل جهازك و موبايلك للمُزامنة ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "رجاءُ، تأكّد من الإعداد الصحيح لـ {emailopen} خادم البريد الالكتروني {linkclose}.",
"Calendar server" : "خادم التقويم",
@@ -314,11 +308,17 @@
"Send reminder notifications to calendar sharees as well" : "أرسل إشعارات للتذكير إلى المشتركين بالتقويم كذلك",
"Reminders are always sent to organizers and attendees." : "إشعارات التذكير يتم إرسالها دائماً إلى مُنظّم أو مُنظّمي الحدث و المستهدفين بحضوره.",
"Enable notifications for events via push" : "تمكين الإشعارات حول الأحداث عن طريق أسلوب دفع الإشعارات Push",
"Availability" : "أوقات التواجد ",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "إذا قمت بضبط ساعات عملك، سيرى الآخرون متى تكون خارج المكتب عندما يقومون بحجز اجتماع معك.",
"Absence" : "غياب",
"Configure your next absence period." : "تهيئة فترة غيابك القادمة.",
"There was an error updating your attendance status." : "حدث خطأ في تحديث حالة حضورك.",
"Please contact the organizer directly." : "يرجى الاتصال بالمنظم مباشرةً",
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
"Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
"No results." : "لا نتائج",
"Start typing." : "أبدا الكتابة",
"Time zone:" : "منطقة زمنية:"
},"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;"
}

View File

@@ -198,10 +198,6 @@ OC.L10N.register(
"Import" : "Importa",
"Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
"Reset to default" : "Reafitar los valores",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instala tamién l'{calendarappstoreopen}aplicación Calendariu{linkclose} o {calendardocopen}conecta'l veceru pa ordenadores y/o móviles pa sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de que configuresti afayadizamente'l {emailopen}sirvidor de corréu electrónicu{linkclose}.",
"Calendar server" : "Sirvidor de calendarios",
@@ -214,6 +210,10 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Unvia tamién avisos de recordatoriu pa les persones coles que se compartiere'l calendariu",
"Reminders are always sent to organizers and attendees." : "Los recordatorios únviense siempres a organizadores y asistentes",
"Enable notifications for events via push" : "Acriva los avisos automáticos pa los eventos",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"There was an error updating your attendance status." : "Hebo un error al anovar l'estáu de l'asistencia.",
"Please contact the organizer directly." : "Ponte en contautu direutamente cola organización.",
"Are you accepting the invitation?" : "¿Aceptes la invitación?",

View File

@@ -196,10 +196,6 @@
"Import" : "Importa",
"Error while saving settings" : "Hebo un error mentanto se guardaba la configuración",
"Reset to default" : "Reafitar los valores",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instala tamién l'{calendarappstoreopen}aplicación Calendariu{linkclose} o {calendardocopen}conecta'l veceru pa ordenadores y/o móviles pa sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de que configuresti afayadizamente'l {emailopen}sirvidor de corréu electrónicu{linkclose}.",
"Calendar server" : "Sirvidor de calendarios",
@@ -212,6 +208,10 @@
"Send reminder notifications to calendar sharees as well" : "Unvia tamién avisos de recordatoriu pa les persones coles que se compartiere'l calendariu",
"Reminders are always sent to organizers and attendees." : "Los recordatorios únviense siempres a organizadores y asistentes",
"Enable notifications for events via push" : "Acriva los avisos automáticos pa los eventos",
"Availability" : "Disponibilidá",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configures les hores llaborales, les demás persones van ver cuando coles de la oficina al acutar una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configura'l próximu periodu d'ausencia",
"There was an error updating your attendance status." : "Hebo un error al anovar l'estáu de l'asistencia.",
"Please contact the organizer directly." : "Ponte en contautu direutamente cola organización.",
"Are you accepting the invitation?" : "¿Aceptes la invitación?",

View File

@@ -186,14 +186,12 @@ OC.L10N.register(
"Delete slot" : "Изтриване на слот",
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Weekdays" : "Делнични дни",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
"Cancel" : "Отказ",
"Import" : "Импортиране /внасяне/",
"Error while saving settings" : "Грешка при запазване на настройките",
"Reset to default" : "Настройки по подразбиране",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Също така инсталирайте приложението {calendarappstoreopen}Календар{linkclose} или {calendardocopen}, свържете вашия настолен компютър и мобилен телефон за синхронизиране ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Моля, уверете се, че сте настроили правилно {emailopen} имейл сървъра{linkclose}.",
"Calendar server" : "Сървър на календар",
@@ -206,6 +204,9 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Изпращане на известия за напомняния и до споделящите календар",
"Reminders are always sent to organizers and attendees." : "Напомнянията винаги се изпращат до организаторите и присъстващите.",
"Enable notifications for events via push" : "Активиране на известията за събития чрез push",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"There was an error updating your attendance status." : "Възникна грешка при актуализиране на състоянието на присъствието Ви.",
"Please contact the organizer directly." : "Моля, свържете се директно с организатора.",
"Are you accepting the invitation?" : "Приемате ли поканата?",

View File

@@ -184,14 +184,12 @@
"Delete slot" : "Изтриване на слот",
"No working hours set" : "Няма зададено работно време",
"Add slot" : "Добавяне на слот",
"Weekdays" : "Делнични дни",
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Автоматично задаване на потребителският статус на „Не безпокойте“ извън достъпността, за заглушаване на всички известия.",
"Cancel" : "Отказ",
"Import" : "Импортиране /внасяне/",
"Error while saving settings" : "Грешка при запазване на настройките",
"Reset to default" : "Настройки по подразбиране",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Също така инсталирайте приложението {calendarappstoreopen}Календар{linkclose} или {calendardocopen}, свържете вашия настолен компютър и мобилен телефон за синхронизиране ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Моля, уверете се, че сте настроили правилно {emailopen} имейл сървъра{linkclose}.",
"Calendar server" : "Сървър на календар",
@@ -204,6 +202,9 @@
"Send reminder notifications to calendar sharees as well" : "Изпращане на известия за напомняния и до споделящите календар",
"Reminders are always sent to organizers and attendees." : "Напомнянията винаги се изпращат до организаторите и присъстващите.",
"Enable notifications for events via push" : "Активиране на известията за събития чрез push",
"Availability" : "Работно време",
"Absence" : "Отсъствия",
"Configure your next absence period." : "Задай своето съобщение за отсъствие.",
"There was an error updating your attendance status." : "Възникна грешка при актуализиране на състоянието на присъствието Ви.",
"Please contact the organizer directly." : "Моля, свържете се директно с организатора.",
"Are you accepting the invitation?" : "Приемате ли поканата?",

View File

@@ -272,8 +272,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Darrer dia (inclòs)",
"Out of office replacement (optional)" : "Substitució fora de l'oficina (opcional)",
"Name of the replacement" : "Nom del substitut",
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Short absence status" : "Estat d'absència breu",
"Long absence Message" : "Missatge d'absència llarga",
"Save" : "Desa",
@@ -293,10 +291,6 @@ OC.L10N.register(
"Import" : "Importa",
"Error while saving settings" : "S'ha produït un error en desar els paràmetres",
"Reset to default" : "Reinicialitza els valors per defecte",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instal·leu també {calendarappstoreopen}l'aplicació Calendari{linkclose} o {calendardocopen}connecteu el vostre dispositiu d'escriptori i el mòbil per a sincronitzar-los ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Assegureu-vos de configurar correctament el{emailopen}servidor de correu electrònic{linkclose}.",
"Calendar server" : "Servidor de calendari",
@@ -309,11 +303,17 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Envia també notificacions de recordatori als usuaris amb qui s'ha compartit el calendari",
"Reminders are always sent to organizers and attendees." : "Sempre s'envien recordatoris als organitzadors i als assistents.",
"Enable notifications for events via push" : "Habilita les notificacions automàtiques per als esdeveniments",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"There was an error updating your attendance status." : "S'ha produït un error en actualitzar l'estat d'assistència.",
"Please contact the organizer directly." : "Contacteu amb l'organització directament.",
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Time zone:" : "Fus horari:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -270,8 +270,6 @@
"Last day (inclusive)" : "Darrer dia (inclòs)",
"Out of office replacement (optional)" : "Substitució fora de l'oficina (opcional)",
"Name of the replacement" : "Nom del substitut",
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Short absence status" : "Estat d'absència breu",
"Long absence Message" : "Missatge d'absència llarga",
"Save" : "Desa",
@@ -291,10 +289,6 @@
"Import" : "Importa",
"Error while saving settings" : "S'ha produït un error en desar els paràmetres",
"Reset to default" : "Reinicialitza els valors per defecte",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instal·leu també {calendarappstoreopen}l'aplicació Calendari{linkclose} o {calendardocopen}connecteu el vostre dispositiu d'escriptori i el mòbil per a sincronitzar-los ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Assegureu-vos de configurar correctament el{emailopen}servidor de correu electrònic{linkclose}.",
"Calendar server" : "Servidor de calendari",
@@ -307,11 +301,17 @@
"Send reminder notifications to calendar sharees as well" : "Envia també notificacions de recordatori als usuaris amb qui s'ha compartit el calendari",
"Reminders are always sent to organizers and attendees." : "Sempre s'envien recordatoris als organitzadors i als assistents.",
"Enable notifications for events via push" : "Habilita les notificacions automàtiques per als esdeveniments",
"Availability" : "Disponibilitat",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configureu el vostre horari laboral, la resta de persones veuran quan sou fora de l'oficina quan planifiquin una reunió.",
"Absence" : "Absència",
"Configure your next absence period." : "Configureu el pròxim període d'absència.",
"There was an error updating your attendance status." : "S'ha produït un error en actualitzar l'estat d'assistència.",
"Please contact the organizer directly." : "Contacteu amb l'organització directament.",
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
"No results." : "Cap resultat.",
"Start typing." : "Comença a escriure.",
"Time zone:" : "Fus horari:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -252,6 +252,7 @@ OC.L10N.register(
"Completed on %s" : "Dokončeno %s",
"Due on %s by %s" : "Termín do %s od %s",
"Due on %s" : "Termín do %s",
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Vítejte v Nextcloud Kalendáři!\n\nToto je událost pro ukázku prozkoumejte flexibilitu plánování pomoc Nextcloud Kalendáře upravením čeho chcete!\n\nS Nextcloud Kalendářem je možné:\n- Jednoduše vytvářet, upravovat a spravovat události.\n- Vytvářet vícero kalendářů a sdílet je s kolegy, přáteli či rodinou.\n- Zjišťovat dostupnost a zobrazovat své doby nedostupnosti ostatním.\n- Hladce napojovat na aplikace a zřízení prostřednictvím CalDAV.\n- Přizpůsobit si svůj dojem z používání: plánovat opakující se události, upravovat notifikace a ostatní nastavení.",
"Example event - open me!" : "Událost pro ukázku otevřete ji!",
"System Address Book" : "Systémový adresář kontaktů",
"The system address book contains contact information for all users in your instance." : "Systémový adresář kontaktů obsahuje informace pro všechny uživatele ve vámi využívané instanci.",
@@ -279,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Poslední den (včetně)",
"Out of office replacement (optional)" : "Zástup když mimo kancelář (volitelné)",
"Name of the replacement" : "Jméno zástupu",
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Short absence status" : "Stav krátké nepřítomnosti",
"Long absence Message" : "Zpráva pro dlouhou nepřítomnost",
"Save" : "Uložit",
@@ -315,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Naimportovat událost kalendáře",
"Uploading a new event will overwrite the existing one." : "Nahrání nové události přepíše tu existující.",
"Upload event" : "Nahrát událost",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Také nainstalujte {calendarappstoreopen}aplikaci Kalendář{linkclose}, nebo {calendardocopen}připojte svůj počítač a telefon pro synchronizaci ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Ověřte, že jste správně nastavili {emailopen}e-mailový server{linkclose}.",
"Calendar server" : "Kalendářový server",
@@ -333,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Upozorňovat na události prostřednictvím služby push",
"Example content" : "Obsah pro ukázku",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Obsah pro ukázku slouží pro předvedení funkcí Nextcloud. Výchozí obsah je dodáván s Nextcloud a je možné ho nahradit uživatelsky určeným.",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"There was an error updating your attendance status." : "Vyskytla se chyba při aktualizaci vašeho stavu účasti.",
"Please contact the organizer directly." : "Kontaktujte organizátora přímo.",
"Are you accepting the invitation?" : "Přijímáte pozvání?",
"Tentative" : "Nezávazně",
"Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována.",
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Time zone:" : "Časové pásmo:"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");

View File

@@ -250,6 +250,7 @@
"Completed on %s" : "Dokončeno %s",
"Due on %s by %s" : "Termín do %s od %s",
"Due on %s" : "Termín do %s",
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Vítejte v Nextcloud Kalendáři!\n\nToto je událost pro ukázku prozkoumejte flexibilitu plánování pomoc Nextcloud Kalendáře upravením čeho chcete!\n\nS Nextcloud Kalendářem je možné:\n- Jednoduše vytvářet, upravovat a spravovat události.\n- Vytvářet vícero kalendářů a sdílet je s kolegy, přáteli či rodinou.\n- Zjišťovat dostupnost a zobrazovat své doby nedostupnosti ostatním.\n- Hladce napojovat na aplikace a zřízení prostřednictvím CalDAV.\n- Přizpůsobit si svůj dojem z používání: plánovat opakující se události, upravovat notifikace a ostatní nastavení.",
"Example event - open me!" : "Událost pro ukázku otevřete ji!",
"System Address Book" : "Systémový adresář kontaktů",
"The system address book contains contact information for all users in your instance." : "Systémový adresář kontaktů obsahuje informace pro všechny uživatele ve vámi využívané instanci.",
@@ -277,8 +278,6 @@
"Last day (inclusive)" : "Poslední den (včetně)",
"Out of office replacement (optional)" : "Zástup když mimo kancelář (volitelné)",
"Name of the replacement" : "Jméno zástupu",
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Short absence status" : "Stav krátké nepřítomnosti",
"Long absence Message" : "Zpráva pro dlouhou nepřítomnost",
"Save" : "Uložit",
@@ -313,10 +312,6 @@
"Import calendar event" : "Naimportovat událost kalendáře",
"Uploading a new event will overwrite the existing one." : "Nahrání nové události přepíše tu existující.",
"Upload event" : "Nahrát událost",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Také nainstalujte {calendarappstoreopen}aplikaci Kalendář{linkclose}, nebo {calendardocopen}připojte svůj počítač a telefon pro synchronizaci ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Ověřte, že jste správně nastavili {emailopen}e-mailový server{linkclose}.",
"Calendar server" : "Kalendářový server",
@@ -331,11 +326,17 @@
"Enable notifications for events via push" : "Upozorňovat na události prostřednictvím služby push",
"Example content" : "Obsah pro ukázku",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Obsah pro ukázku slouží pro předvedení funkcí Nextcloud. Výchozí obsah je dodáván s Nextcloud a je možné ho nahradit uživatelsky určeným.",
"Availability" : "Dostupnost",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Když sem zadáte svou pracovní dobu, ostatní lidé při rezervování schůzky uvidí, kdy jste mimo kancelář.",
"Absence" : "Nepřítomnost",
"Configure your next absence period." : "Nastavte období své nepřítomnosti.",
"There was an error updating your attendance status." : "Vyskytla se chyba při aktualizaci vašeho stavu účasti.",
"Please contact the organizer directly." : "Kontaktujte organizátora přímo.",
"Are you accepting the invitation?" : "Přijímáte pozvání?",
"Tentative" : "Nezávazně",
"Your attendance was updated successfully." : "Vaše účast byla úspěšně aktualizována.",
"No results." : "Nic nenalezeno.",
"Start typing." : "Začněte psát.",
"Time zone:" : "Časové pásmo:"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
}

View File

@@ -220,6 +220,8 @@ OC.L10N.register(
"{actor} updated contact {card} in address book {addressbook}" : "{actor} opdaterede kontakten {card} i adressebog {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Du opdaterede kontakten {card} i adressebog {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "En <strong>kontakt</strong> eller <strong>adressebog</strong> blev ændret",
"System address book disabled" : "Systemadressebog deaktiveret",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Adressebogen for systemkontakter er automatisk blevet deaktiveret under opgraderingen. Det betyder, at adressebogen ikke længere vil være tilgængelig for brugere i kontaktappen eller andre klienter. Adressebogen for systemkontakter blev deaktiveret, fordi antallet af kontakter i adressebogen oversteg det maksimale anbefalede antal kontakter. Denne grænse er indstillet for at forhindre problemer med ydeevnen. Du kan genaktivere systemadressebogen med følgende kommando {command}",
"Accounts" : "Konti",
"System address book which holds all accounts" : "Systemets adressebog, som indeholder alle konti",
"File is not updatable: %1$s" : "Filen kan ikke updateres: %1$s",
@@ -258,6 +260,10 @@ OC.L10N.register(
"DAV system address book" : "DAV system adressebog",
"No outstanding DAV system address book sync." : "Ingen udestående synkronisering af DAV-systemets adressebog.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV-systemets adressebogssynkronisering er ikke kørt endnu, da din instans har mere end 1000 brugere, eller fordi der opstod en fejl. Kør det manuelt ved at kalde \"occ dav:sync-system-addressbook\".",
"DAV system address book size" : "Størrelse på DAV systemets adressebog",
"The system address book is disabled" : "Systemets adressebog er deaktiveret",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Systemadressebogen er aktiveret, men indeholder mere end den konfigurerede grænse på %d kontakter",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Systemadressebogen er aktiveret og indeholder mindre end den konfigurerede grænse på %d kontakter",
"WebDAV endpoint" : "WebDAV endpoint",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Kunne ikke kontrollere, at din webserver er korrekt konfigureret til at tillade filsynkronisering over WebDAV. Tjek venligst manuelt.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Din webserver er endnu ikke sat korrekt op til at tillade filsynkronisering, fordi WebDAV-grænsefladen ser ud til at være i stykker.",
@@ -274,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Sidste dag (indklusiv)",
"Out of office replacement (optional)" : "Ikke på kontoret udskiftning (valgfrit)",
"Name of the replacement" : "Navn på udskiftning",
"No results." : "Ingen resultater.",
"Start typing." : "Begynd at skrive.",
"Short absence status" : "Kort fraværsstatus",
"Long absence Message" : "Langt fravær besked",
"Save" : "Gem",
@@ -310,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Importér kalenderbegivenhed",
"Uploading a new event will overwrite the existing one." : "Upload af en ny begivenhed vil overskrive den eksisterende.",
"Upload event" : "Upload begivenhed",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
"Configure your next absence period." : "Konfigurer din næste fraværsperiode.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installer også {calendarappstoreopen}Kalender-appen{linkclose}, eller {calendardocopen}tilslut dit skrivebord og din mobil til synkronisering ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Sørg for at konfigurere {emailopen}e-mail-serveren{linkclose} korrekt.",
"Calendar server" : "Kalenderserver",
@@ -328,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Aktiver notifikationer for begivenheder via push",
"Example content" : "Eksempelindhold",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Eksempelindhold fremviser funktionerne i Nextcloud. Standardindhold leveres med Nextcloud, og kan erstattes af brugerdefineret indhold.",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
"Configure your next absence period." : "Konfigurer din næste fraværsperiode.",
"There was an error updating your attendance status." : "Der opstod en fejl under opdatering af din fremmødestatus.",
"Please contact the organizer directly." : "Kontakt venligst arrangøren direkte.",
"Are you accepting the invitation?" : "Accepter du invitationen?",
"Tentative" : "Foreløbig",
"Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret.",
"No results." : "Ingen resultater.",
"Start typing." : "Begynd at skrive.",
"Time zone:" : "Tidszone:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -218,6 +218,8 @@
"{actor} updated contact {card} in address book {addressbook}" : "{actor} opdaterede kontakten {card} i adressebog {addressbook}",
"You updated contact {card} in address book {addressbook}" : "Du opdaterede kontakten {card} i adressebog {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "En <strong>kontakt</strong> eller <strong>adressebog</strong> blev ændret",
"System address book disabled" : "Systemadressebog deaktiveret",
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Adressebogen for systemkontakter er automatisk blevet deaktiveret under opgraderingen. Det betyder, at adressebogen ikke længere vil være tilgængelig for brugere i kontaktappen eller andre klienter. Adressebogen for systemkontakter blev deaktiveret, fordi antallet af kontakter i adressebogen oversteg det maksimale anbefalede antal kontakter. Denne grænse er indstillet for at forhindre problemer med ydeevnen. Du kan genaktivere systemadressebogen med følgende kommando {command}",
"Accounts" : "Konti",
"System address book which holds all accounts" : "Systemets adressebog, som indeholder alle konti",
"File is not updatable: %1$s" : "Filen kan ikke updateres: %1$s",
@@ -256,6 +258,10 @@
"DAV system address book" : "DAV system adressebog",
"No outstanding DAV system address book sync." : "Ingen udestående synkronisering af DAV-systemets adressebog.",
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV-systemets adressebogssynkronisering er ikke kørt endnu, da din instans har mere end 1000 brugere, eller fordi der opstod en fejl. Kør det manuelt ved at kalde \"occ dav:sync-system-addressbook\".",
"DAV system address book size" : "Størrelse på DAV systemets adressebog",
"The system address book is disabled" : "Systemets adressebog er deaktiveret",
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Systemadressebogen er aktiveret, men indeholder mere end den konfigurerede grænse på %d kontakter",
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Systemadressebogen er aktiveret og indeholder mindre end den konfigurerede grænse på %d kontakter",
"WebDAV endpoint" : "WebDAV endpoint",
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Kunne ikke kontrollere, at din webserver er korrekt konfigureret til at tillade filsynkronisering over WebDAV. Tjek venligst manuelt.",
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Din webserver er endnu ikke sat korrekt op til at tillade filsynkronisering, fordi WebDAV-grænsefladen ser ud til at være i stykker.",
@@ -272,8 +278,6 @@
"Last day (inclusive)" : "Sidste dag (indklusiv)",
"Out of office replacement (optional)" : "Ikke på kontoret udskiftning (valgfrit)",
"Name of the replacement" : "Navn på udskiftning",
"No results." : "Ingen resultater.",
"Start typing." : "Begynd at skrive.",
"Short absence status" : "Kort fraværsstatus",
"Long absence Message" : "Langt fravær besked",
"Save" : "Gem",
@@ -308,10 +312,6 @@
"Import calendar event" : "Importér kalenderbegivenhed",
"Uploading a new event will overwrite the existing one." : "Upload af en ny begivenhed vil overskrive den eksisterende.",
"Upload event" : "Upload begivenhed",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
"Configure your next absence period." : "Konfigurer din næste fraværsperiode.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installer også {calendarappstoreopen}Kalender-appen{linkclose}, eller {calendardocopen}tilslut dit skrivebord og din mobil til synkronisering ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Sørg for at konfigurere {emailopen}e-mail-serveren{linkclose} korrekt.",
"Calendar server" : "Kalenderserver",
@@ -326,11 +326,17 @@
"Enable notifications for events via push" : "Aktiver notifikationer for begivenheder via push",
"Example content" : "Eksempelindhold",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Eksempelindhold fremviser funktionerne i Nextcloud. Standardindhold leveres med Nextcloud, og kan erstattes af brugerdefineret indhold.",
"Availability" : "tilgængelighed",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Hvis du konfigurerer dine arbejdstider, vil andre se, når du er fraværende, når de booker et møde.",
"Absence" : "Fravær",
"Configure your next absence period." : "Konfigurer din næste fraværsperiode.",
"There was an error updating your attendance status." : "Der opstod en fejl under opdatering af din fremmødestatus.",
"Please contact the organizer directly." : "Kontakt venligst arrangøren direkte.",
"Are you accepting the invitation?" : "Accepter du invitationen?",
"Tentative" : "Foreløbig",
"Your attendance was updated successfully." : "Dit tilstedeværelse blev opdateret.",
"No results." : "Ingen resultater.",
"Start typing." : "Begynd at skrive.",
"Time zone:" : "Tidszone:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Letzter Tag (inklusiv)",
"Out of office replacement (optional)" : "Abwesenheitsvertretung (optional)",
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse",
"Start typing." : "Mit dem Schreiben beginnen.",
"Short absence status" : "Kurzer Abwesenheitsstatus",
"Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
@@ -308,18 +306,14 @@ OC.L10N.register(
"Reset to default" : "Auf Standard zurücksetzen ",
"Import contacts" : "Kontakte importieren",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
"Failed to save example event creation setting" : "Einstellung für die Beispiels-Ereigniserstellung konnte nicht gespeichert werden",
"Failed to upload the example event" : "Das Beispielsereignis konnte nicht hochgeladen werden",
"Custom example event was saved successfully" : "Benutzerdefiniertes Beispielereignis gespeichert",
"Failed to delete the custom example event" : "Benutzerdefiniertes Beispielsereignis konnte nicht gelöscht werden",
"Custom example event was deleted successfully" : "Benutzerdefiniertes Beispielsereignis wurde gelöscht",
"Failed to save example event creation setting" : "Einstellung für die Beispiels-Terminerstellung konnte nicht gespeichert werden",
"Failed to upload the example event" : "Der Beispieltermin konnte nicht hochgeladen werden",
"Custom example event was saved successfully" : "Benutzerdefinierter Beispieltermin gespeichert",
"Failed to delete the custom example event" : "Benutzerdefinierter Beispieltermin konnte nicht gelöscht werden",
"Custom example event was deleted successfully" : "Benutzerdefinierter Beispieltermin wurde gelöscht",
"Import calendar event" : "Kalenderereignis importieren",
"Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Ereignisses wird das bestehende Ereignis überschreiben.",
"Upload event" : "Ereignis hochladen",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.",
"Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.",
"Upload event" : "Termin hochladen",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stelle sicher, dass du {emailopen}den E-Mail Server{linkclose} ordnungsgemäß einrichtest.",
"Calendar server" : "Kalender-Server",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
"Example content" : "Beispielsinhalt",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren deines Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert.",
"No results." : "Keine Ergebnisse",
"Start typing." : "Mit dem Schreiben beginnen.",
"Time zone:" : "Zeitzone:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Letzter Tag (inklusiv)",
"Out of office replacement (optional)" : "Abwesenheitsvertretung (optional)",
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse",
"Start typing." : "Mit dem Schreiben beginnen.",
"Short absence status" : "Kurzer Abwesenheitsstatus",
"Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
@@ -306,18 +304,14 @@
"Reset to default" : "Auf Standard zurücksetzen ",
"Import contacts" : "Kontakte importieren",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Durch das Importieren einer neuen VCF-Datei wird der vorhandene Standardkontakt gelöscht und durch den neuen ersetzt. Fortsetzen?",
"Failed to save example event creation setting" : "Einstellung für die Beispiels-Ereigniserstellung konnte nicht gespeichert werden",
"Failed to upload the example event" : "Das Beispielsereignis konnte nicht hochgeladen werden",
"Custom example event was saved successfully" : "Benutzerdefiniertes Beispielereignis gespeichert",
"Failed to delete the custom example event" : "Benutzerdefiniertes Beispielsereignis konnte nicht gelöscht werden",
"Custom example event was deleted successfully" : "Benutzerdefiniertes Beispielsereignis wurde gelöscht",
"Failed to save example event creation setting" : "Einstellung für die Beispiels-Terminerstellung konnte nicht gespeichert werden",
"Failed to upload the example event" : "Der Beispieltermin konnte nicht hochgeladen werden",
"Custom example event was saved successfully" : "Benutzerdefinierter Beispieltermin gespeichert",
"Failed to delete the custom example event" : "Benutzerdefinierter Beispieltermin konnte nicht gelöscht werden",
"Custom example event was deleted successfully" : "Benutzerdefinierter Beispieltermin wurde gelöscht",
"Import calendar event" : "Kalenderereignis importieren",
"Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Ereignisses wird das bestehende Ereignis überschreiben.",
"Upload event" : "Ereignis hochladen",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.",
"Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.",
"Upload event" : "Termin hochladen",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installiere außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinde deinen Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stelle sicher, dass du {emailopen}den E-Mail Server{linkclose} ordnungsgemäß einrichtest.",
"Calendar server" : "Kalender-Server",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
"Example content" : "Beispielsinhalt",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn du deine Arbeitszeiten angibst, können andere beim Buchen einer Besprechung sehen, wann du nicht im Büro bist.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richte deinen nächsten Abwesenheitszeitraum ein.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren deines Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert.",
"No results." : "Keine Ergebnisse",
"Start typing." : "Mit dem Schreiben beginnen.",
"Time zone:" : "Zeitzone:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Letzter Tag (inklusiv)",
"Out of office replacement (optional)" : "Abwesenheitsvertretung (optional)",
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse.",
"Start typing." : "Anfangen zu tippen.",
"Short absence status" : "Kurzer Abwesenheitsstatus",
"Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Kalendertermin importieren",
"Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.",
"Upload event" : "Termin hochladen",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installieren Sie außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinden Sie Ihren Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stellen Sie sicher, dass Sie {emailopen}den E-Mail Server{linkclose} ordnungsgemäß eingerichtet haben.",
"Calendar server" : "Kalender-Server",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
"Example content" : "Beispielsinhalt",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren Ihres Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert.",
"No results." : "Keine Ergebnisse.",
"Start typing." : "Anfangen zu tippen.",
"Time zone:" : "Zeitzone:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Letzter Tag (inklusiv)",
"Out of office replacement (optional)" : "Abwesenheitsvertretung (optional)",
"Name of the replacement" : "Name der Vertretung",
"No results." : "Keine Ergebnisse.",
"Start typing." : "Anfangen zu tippen.",
"Short absence status" : "Kurzer Abwesenheitsstatus",
"Long absence Message" : "Lange Abwesenheitsnachricht",
"Save" : "Speichern",
@@ -314,10 +312,6 @@
"Import calendar event" : "Kalendertermin importieren",
"Uploading a new event will overwrite the existing one." : "Das Hochladen eines neuen Termins wird den bestehenden Termin überschreiben.",
"Upload event" : "Termin hochladen",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installieren Sie außerdem die {calendarappstoreopen}Kalender-App{linkclose} oder {calendardocopen}verbinden Sie Ihren Desktop & Mobilgerät zur Synchronisierung ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Bitte stellen Sie sicher, dass Sie {emailopen}den E-Mail Server{linkclose} ordnungsgemäß eingerichtet haben.",
"Calendar server" : "Kalender-Server",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Benachrichtigungen für Termine per Push aktivieren",
"Example content" : "Beispielsinhalt",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Beispielinhalte dienen dazu, die Funktionen von Nextcloud vorzustellen. Standardinhalte werden mit Nextcloud ausgeliefert und können durch benutzerdefinierte Inhalte ersetzt werden.",
"Availability" : "Verfügbarkeit",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Wenn Sie Ihre Arbeitszeiten angeben, können andere beim Buchen einer Besprechung sehen, wann Sie nicht im Büro sind.",
"Absence" : "Abwesenheit",
"Configure your next absence period." : "Richten Sie ihren nächsten Abwesenheitszeitraum ein.",
"There was an error updating your attendance status." : "Es ist ein Fehler beim Aktualisieren Ihres Teilnehmerstatus aufgetreten.",
"Please contact the organizer directly." : "Bitte den Organisator direkt kontaktieren.",
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert.",
"No results." : "Keine Ergebnisse.",
"Start typing." : "Anfangen zu tippen.",
"Time zone:" : "Zeitzone:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Τελευταία ημέρα (συμπεριλαμβανομένης)",
"Out of office replacement (optional)" : "Αντικαταστάτης εκτός γραφείου (προαιρετικό)",
"Name of the replacement" : "Όνομα του αντικαταστάτη",
"No results." : "Κανένα αποτέλεσμα.",
"Start typing." : "Ξεκινήστε να πληκτρολογείτε.",
"Short absence status" : "Σύντομη κατάσταση απουσίας",
"Long absence Message" : "Μήνυμα παρατεταμένης απουσίας",
"Save" : "Αποθήκευση",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Εισαγωγή εκδήλωσης ημερολογίου",
"Uploading a new event will overwrite the existing one." : "Η μεταφόρτωση μιας νέας εκδήλωσης θα αντικαταστήσει την υπάρχουσα.",
"Upload event" : "Μεταφόρτωση εκδήλωσης",
"Availability" : "Διαθεσιμότητα",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Εάν ρυθμίσετε τις ώρες εργασίας σας, άλλοι άνθρωποι θα βλέπουν πότε είστε εκτός γραφείου όταν κλείνουν μια συνάντηση.",
"Absence" : "Απουσία",
"Configure your next absence period." : "Ρυθμίστε την επόμενη περίοδο απουσίας σας.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Εγκαταστήστε επίσης την {calendarappstoreopen}Εφαρμογή ημερολογίου{linkclose}, ή {calendardocopen}συνδέστε τον υπολογιστή & το κινητό σας για συγχρονισμό ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Παρακαλώ σιγουρευτείτε για την σωστή ρύθμιση {emailopen}του διακομιστή αλληλογραφίας{linkclose}.",
"Calendar server" : "Διακομιστής ημερολογίου",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Ενεργοποίηση ειδοποιήσεων μέσω push",
"Example content" : "Περιεχόμενο παραδείγματος",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Το περιεχόμενο παραδείγματος χρησιμεύει για την επίδειξη των λειτουργιών του Nextcloud. Προεπιλεγμένο περιεχόμενο περιλαμβάνεται στο Nextcloud και μπορεί να αντικατασταθεί από προσαρμοσμένο περιεχόμενο.",
"Availability" : "Διαθεσιμότητα",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Εάν ρυθμίσετε τις ώρες εργασίας σας, άλλοι άνθρωποι θα βλέπουν πότε είστε εκτός γραφείου όταν κλείνουν μια συνάντηση.",
"Absence" : "Απουσία",
"Configure your next absence period." : "Ρυθμίστε την επόμενη περίοδο απουσίας σας.",
"There was an error updating your attendance status." : "Σφάλμα ενημέρωσης κατάστασής σας.",
"Please contact the organizer directly." : "Παρακαλώ επικοινωνήστε απ' ευθείας με τον διοργανωτή.",
"Are you accepting the invitation?" : "Αποδέχεστε την πρόσκληση;",
"Tentative" : "Δοκιμαστικό",
"Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία.",
"No results." : "Κανένα αποτέλεσμα.",
"Start typing." : "Ξεκινήστε να πληκτρολογείτε.",
"Time zone:" : "Ζώνη ώρας:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Τελευταία ημέρα (συμπεριλαμβανομένης)",
"Out of office replacement (optional)" : "Αντικαταστάτης εκτός γραφείου (προαιρετικό)",
"Name of the replacement" : "Όνομα του αντικαταστάτη",
"No results." : "Κανένα αποτέλεσμα.",
"Start typing." : "Ξεκινήστε να πληκτρολογείτε.",
"Short absence status" : "Σύντομη κατάσταση απουσίας",
"Long absence Message" : "Μήνυμα παρατεταμένης απουσίας",
"Save" : "Αποθήκευση",
@@ -314,10 +312,6 @@
"Import calendar event" : "Εισαγωγή εκδήλωσης ημερολογίου",
"Uploading a new event will overwrite the existing one." : "Η μεταφόρτωση μιας νέας εκδήλωσης θα αντικαταστήσει την υπάρχουσα.",
"Upload event" : "Μεταφόρτωση εκδήλωσης",
"Availability" : "Διαθεσιμότητα",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Εάν ρυθμίσετε τις ώρες εργασίας σας, άλλοι άνθρωποι θα βλέπουν πότε είστε εκτός γραφείου όταν κλείνουν μια συνάντηση.",
"Absence" : "Απουσία",
"Configure your next absence period." : "Ρυθμίστε την επόμενη περίοδο απουσίας σας.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Εγκαταστήστε επίσης την {calendarappstoreopen}Εφαρμογή ημερολογίου{linkclose}, ή {calendardocopen}συνδέστε τον υπολογιστή & το κινητό σας για συγχρονισμό ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Παρακαλώ σιγουρευτείτε για την σωστή ρύθμιση {emailopen}του διακομιστή αλληλογραφίας{linkclose}.",
"Calendar server" : "Διακομιστής ημερολογίου",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Ενεργοποίηση ειδοποιήσεων μέσω push",
"Example content" : "Περιεχόμενο παραδείγματος",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Το περιεχόμενο παραδείγματος χρησιμεύει για την επίδειξη των λειτουργιών του Nextcloud. Προεπιλεγμένο περιεχόμενο περιλαμβάνεται στο Nextcloud και μπορεί να αντικατασταθεί από προσαρμοσμένο περιεχόμενο.",
"Availability" : "Διαθεσιμότητα",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Εάν ρυθμίσετε τις ώρες εργασίας σας, άλλοι άνθρωποι θα βλέπουν πότε είστε εκτός γραφείου όταν κλείνουν μια συνάντηση.",
"Absence" : "Απουσία",
"Configure your next absence period." : "Ρυθμίστε την επόμενη περίοδο απουσίας σας.",
"There was an error updating your attendance status." : "Σφάλμα ενημέρωσης κατάστασής σας.",
"Please contact the organizer directly." : "Παρακαλώ επικοινωνήστε απ' ευθείας με τον διοργανωτή.",
"Are you accepting the invitation?" : "Αποδέχεστε την πρόσκληση;",
"Tentative" : "Δοκιμαστικό",
"Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία.",
"No results." : "Κανένα αποτέλεσμα.",
"Start typing." : "Ξεκινήστε να πληκτρολογείτε.",
"Time zone:" : "Ζώνη ώρας:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Last day (inclusive)",
"Out of office replacement (optional)" : "Out of office replacement (optional)",
"Name of the replacement" : "Name of the replacement",
"No results." : "No results.",
"Start typing." : "Start typing.",
"Short absence status" : "Short absence status",
"Long absence Message" : "Long absence Message",
"Save" : "Save",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Import calendar event",
"Uploading a new event will overwrite the existing one." : "Uploading a new event will overwrite the existing one.",
"Upload event" : "Upload event",
"Availability" : "Availability",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "If you configure your working hours, other people will see when you are out of office when they book a meeting.",
"Absence" : "Absence",
"Configure your next absence period." : "Configure your next absence period.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Please make sure to properly set up {emailopen}the email server{linkclose}.",
"Calendar server" : "Calendar server",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Enable notifications for events via push",
"Example content" : "Example content",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.",
"Availability" : "Availability",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "If you configure your working hours, other people will see when you are out of office when they book a meeting.",
"Absence" : "Absence",
"Configure your next absence period." : "Configure your next absence period.",
"There was an error updating your attendance status." : "There was an error updating your attendance status.",
"Please contact the organizer directly." : "Please contact the organiser directly.",
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
"Your attendance was updated successfully." : "Your attendance was updated successfully.",
"No results." : "No results.",
"Start typing." : "Start typing.",
"Time zone:" : "Time zone:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Last day (inclusive)",
"Out of office replacement (optional)" : "Out of office replacement (optional)",
"Name of the replacement" : "Name of the replacement",
"No results." : "No results.",
"Start typing." : "Start typing.",
"Short absence status" : "Short absence status",
"Long absence Message" : "Long absence Message",
"Save" : "Save",
@@ -314,10 +312,6 @@
"Import calendar event" : "Import calendar event",
"Uploading a new event will overwrite the existing one." : "Uploading a new event will overwrite the existing one.",
"Upload event" : "Upload event",
"Availability" : "Availability",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "If you configure your working hours, other people will see when you are out of office when they book a meeting.",
"Absence" : "Absence",
"Configure your next absence period." : "Configure your next absence period.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Please make sure to properly set up {emailopen}the email server{linkclose}.",
"Calendar server" : "Calendar server",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Enable notifications for events via push",
"Example content" : "Example content",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content.",
"Availability" : "Availability",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "If you configure your working hours, other people will see when you are out of office when they book a meeting.",
"Absence" : "Absence",
"Configure your next absence period." : "Configure your next absence period.",
"There was an error updating your attendance status." : "There was an error updating your attendance status.",
"Please contact the organizer directly." : "Please contact the organiser directly.",
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
"Your attendance was updated successfully." : "Your attendance was updated successfully.",
"No results." : "No results.",
"Start typing." : "Start typing.",
"Time zone:" : "Time zone:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Último día (incluido)",
"Out of office replacement (optional)" : "Sustituto durante vacaciones/ausencia (opcional)",
"Name of the replacement" : "Nombre del sustituto",
"No results." : "Sin resultados.",
"Start typing." : "Empiece a escribir.",
"Short absence status" : "Estado de ausencia corta",
"Long absence Message" : "Mensaje de ausencia larga",
"Save" : "Guardar",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Importar evento del calendario",
"Uploading a new event will overwrite the existing one." : "Cargar un evento nuevo sobrescribirá el existente. ",
"Upload event" : "Cargar evento",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure el siguiente periodo en que estará ausente",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale también la {calendarappstoreopen}app de Calendario{linkclose} o {calendardocopen}conecte su escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Por favor, asegúrese de configurar correctamente {emailopen}el servidor web{linkclose}",
"Calendar server" : "Servidor de calendario",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Activar notificaciones push para eventos",
"Example content" : "Contenido de ejemplo",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "El contenido de ejemplo sirve para mostrar las características de Nextcloud. Se proporciona un contenido predeterminado con Nextcloud, y puede ser reemplazado por un contenido personalizado.",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure el siguiente periodo en que estará ausente",
"There was an error updating your attendance status." : "Ha habido un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente con el organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito.",
"No results." : "Sin resultados.",
"Start typing." : "Empiece a escribir.",
"Time zone:" : "Zona horaria:"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Último día (incluido)",
"Out of office replacement (optional)" : "Sustituto durante vacaciones/ausencia (opcional)",
"Name of the replacement" : "Nombre del sustituto",
"No results." : "Sin resultados.",
"Start typing." : "Empiece a escribir.",
"Short absence status" : "Estado de ausencia corta",
"Long absence Message" : "Mensaje de ausencia larga",
"Save" : "Guardar",
@@ -314,10 +312,6 @@
"Import calendar event" : "Importar evento del calendario",
"Uploading a new event will overwrite the existing one." : "Cargar un evento nuevo sobrescribirá el existente. ",
"Upload event" : "Cargar evento",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure el siguiente periodo en que estará ausente",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale también la {calendarappstoreopen}app de Calendario{linkclose} o {calendardocopen}conecte su escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Por favor, asegúrese de configurar correctamente {emailopen}el servidor web{linkclose}",
"Calendar server" : "Servidor de calendario",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Activar notificaciones push para eventos",
"Example content" : "Contenido de ejemplo",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "El contenido de ejemplo sirve para mostrar las características de Nextcloud. Se proporciona un contenido predeterminado con Nextcloud, y puede ser reemplazado por un contenido personalizado.",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuando está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure el siguiente periodo en que estará ausente",
"There was an error updating your attendance status." : "Ha habido un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente con el organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito.",
"No results." : "Sin resultados.",
"Start typing." : "Empiece a escribir.",
"Time zone:" : "Zona horaria:"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@@ -185,7 +185,6 @@ OC.L10N.register(
"Import" : "Importar",
"Error while saving settings" : "Error al guardar la configuración.",
"Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "También instala la {calendarappstoreopen}aplicación Calendario{linkclose}, o {calendardocopen}conecta tu escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de configurar correctamente {emailopen}el servidor de correo electrónico{linkclose}.",
"Calendar server" : "Servidor de calendario",
@@ -198,6 +197,7 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorios a los asistentes del calendario también",
"Reminders are always sent to organizers and attendees." : "Los recordatorios siempre se envían a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
"Availability" : "Disponibilidad",
"There was an error updating your attendance status." : "Hubo un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente al organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",

View File

@@ -183,7 +183,6 @@
"Import" : "Importar",
"Error while saving settings" : "Error al guardar la configuración.",
"Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "También instala la {calendarappstoreopen}aplicación Calendario{linkclose}, o {calendardocopen}conecta tu escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrate de configurar correctamente {emailopen}el servidor de correo electrónico{linkclose}.",
"Calendar server" : "Servidor de calendario",
@@ -196,6 +195,7 @@
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorios a los asistentes del calendario también",
"Reminders are always sent to organizers and attendees." : "Los recordatorios siempre se envían a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
"Availability" : "Disponibilidad",
"There was an error updating your attendance status." : "Hubo un error al actualizar tu estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacta directamente al organizador.",
"Are you accepting the invitation?" : "¿Aceptas la invitación?",

View File

@@ -202,8 +202,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Último día (inclusivo)",
"Out of office replacement (optional)" : "Reemplazo para cuando fuera de la oficina (opcional)",
"Name of the replacement" : "Nombre del reemplazo",
"No results." : "Sin resultados.",
"Start typing." : "Empezar a escribir.",
"Short absence status" : "Estado de ausencia corta",
"Long absence Message" : "Mensaje de ausencia larga",
"Save" : "Guardar",
@@ -223,10 +221,6 @@ OC.L10N.register(
"Import" : "Importar",
"Error while saving settings" : "Error al guardar la configuración",
"Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuándo está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure su siguiente periodo de ausencia.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale también la {calendarappstoreopen}aplicación de calendario{linkclose} o {calendardocopen}conecte su escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Por favor, asegúrese de configurar correctamente {emailopen}el servidor de correo electrónico{linkclose}",
"Calendar server" : "Servidor del calendario",
@@ -239,11 +233,17 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorio también a los usuarios con los que se comparte el calendario",
"Reminders are always sent to organizers and attendees." : "Los recordatorios se envían siempre a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuándo está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure su siguiente periodo de ausencia.",
"There was an error updating your attendance status." : "Ocurrió un error al actualizar su estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacte al organizador directamente.",
"Are you accepting the invitation?" : "¿Acepta la invitación?",
"Tentative" : "Tentativo",
"Your attendance was updated successfully." : "Su asistencia se actualizó correctamente.",
"No results." : "Sin resultados.",
"Start typing." : "Empezar a escribir.",
"Time zone:" : "Zona horaria:"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@@ -200,8 +200,6 @@
"Last day (inclusive)" : "Último día (inclusivo)",
"Out of office replacement (optional)" : "Reemplazo para cuando fuera de la oficina (opcional)",
"Name of the replacement" : "Nombre del reemplazo",
"No results." : "Sin resultados.",
"Start typing." : "Empezar a escribir.",
"Short absence status" : "Estado de ausencia corta",
"Long absence Message" : "Mensaje de ausencia larga",
"Save" : "Guardar",
@@ -221,10 +219,6 @@
"Import" : "Importar",
"Error while saving settings" : "Error al guardar la configuración",
"Reset to default" : "Restablecer al predeterminado",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuándo está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure su siguiente periodo de ausencia.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale también la {calendarappstoreopen}aplicación de calendario{linkclose} o {calendardocopen}conecte su escritorio y móvil para sincronizar ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Por favor, asegúrese de configurar correctamente {emailopen}el servidor de correo electrónico{linkclose}",
"Calendar server" : "Servidor del calendario",
@@ -237,11 +231,17 @@
"Send reminder notifications to calendar sharees as well" : "Enviar recordatorio también a los usuarios con los que se comparte el calendario",
"Reminders are always sent to organizers and attendees." : "Los recordatorios se envían siempre a los organizadores y asistentes.",
"Enable notifications for events via push" : "Habilitar notificaciones para eventos mediante push",
"Availability" : "Disponibilidad",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si configura sus horas laborales, otras personas verán cuándo está fuera de la oficina cuando agenden una reunión.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configure su siguiente periodo de ausencia.",
"There was an error updating your attendance status." : "Ocurrió un error al actualizar su estado de asistencia.",
"Please contact the organizer directly." : "Por favor, contacte al organizador directamente.",
"Are you accepting the invitation?" : "¿Acepta la invitación?",
"Tentative" : "Tentativo",
"Your attendance was updated successfully." : "Su asistencia se actualizó correctamente.",
"No results." : "Sin resultados.",
"Start typing." : "Empezar a escribir.",
"Time zone:" : "Zona horaria:"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Viimane päev (kaasaarvatud)",
"Out of office replacement (optional)" : "Asendaja äraoleku ajaks (valikuline)",
"Name of the replacement" : "Asendaja nimi",
"No results." : "Vasteid ei leitud.",
"Start typing." : "Alusta kirjutamist.",
"Short absence status" : "Äraoleku lühinimi",
"Long absence Message" : "Äraoleku pikk sõnum",
"Save" : "Salvesta",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Impordi kalendrisündmus",
"Uploading a new event will overwrite the existing one." : "Uue sündmuse üleslaadimisel asendatakse olemasolevad.",
"Upload event" : "Laadi sündmus üles",
"Availability" : "Saadavus",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.",
"Absence" : "Äraolek",
"Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Palun paigalda ka {calendarappstoreopen}Kalendrirakendus{linkclose} või {calendardocopen}lisa sünkroniseerimine oma töölaule ja nutiseadmesse ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Palun kontrolli, et {emailopen}e-posti server{linkclose} on seadistatud korrektselt.",
"Calendar server" : "Kalendriserver",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
"Example content" : "Sisunäidis",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Sisunäidis annab ülevaate Nexctcloudi võimalustest. Vaikimisi sisu tuleb Nexctcloudi paigaldusega kaasa ja seda saab alati oma sisuga asendada.",
"Availability" : "Saadavus",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.",
"Absence" : "Äraolek",
"Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
"There was an error updating your attendance status." : "Sinu osalemise oleku muutmisel tekkis viga.",
"Please contact the organizer directly." : "Palun võta ühendust korraldajaga otse.",
"Are you accepting the invitation?" : "Kas sa nõustud kutsega?",
"Tentative" : "Esialgne",
"Your attendance was updated successfully." : "Sinu osalemise oleku muutmine õnnestus.",
"No results." : "Vasteid ei leitud.",
"Start typing." : "Alusta kirjutamist.",
"Time zone:" : "Ajavöönd:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Viimane päev (kaasaarvatud)",
"Out of office replacement (optional)" : "Asendaja äraoleku ajaks (valikuline)",
"Name of the replacement" : "Asendaja nimi",
"No results." : "Vasteid ei leitud.",
"Start typing." : "Alusta kirjutamist.",
"Short absence status" : "Äraoleku lühinimi",
"Long absence Message" : "Äraoleku pikk sõnum",
"Save" : "Salvesta",
@@ -314,10 +312,6 @@
"Import calendar event" : "Impordi kalendrisündmus",
"Uploading a new event will overwrite the existing one." : "Uue sündmuse üleslaadimisel asendatakse olemasolevad.",
"Upload event" : "Laadi sündmus üles",
"Availability" : "Saadavus",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.",
"Absence" : "Äraolek",
"Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Palun paigalda ka {calendarappstoreopen}Kalendrirakendus{linkclose} või {calendardocopen}lisa sünkroniseerimine oma töölaule ja nutiseadmesse ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Palun kontrolli, et {emailopen}e-posti server{linkclose} on seadistatud korrektselt.",
"Calendar server" : "Kalendriserver",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Võta kasutusele tõuketeenustepõhised teavitused",
"Example content" : "Sisunäidis",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Sisunäidis annab ülevaate Nexctcloudi võimalustest. Vaikimisi sisu tuleb Nexctcloudi paigaldusega kaasa ja seda saab alati oma sisuga asendada.",
"Availability" : "Saadavus",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Kui seadistad oma tööajad, siis teised saavad kohtumise broneerimisel arvestada sellega, millal sind kohal pole.",
"Absence" : "Äraolek",
"Configure your next absence period." : "Seadista järgmise äraoleku ajavahemik.",
"There was an error updating your attendance status." : "Sinu osalemise oleku muutmisel tekkis viga.",
"Please contact the organizer directly." : "Palun võta ühendust korraldajaga otse.",
"Are you accepting the invitation?" : "Kas sa nõustud kutsega?",
"Tentative" : "Esialgne",
"Your attendance was updated successfully." : "Sinu osalemise oleku muutmine õnnestus.",
"No results." : "Vasteid ei leitud.",
"Start typing." : "Alusta kirjutamist.",
"Time zone:" : "Ajavöönd:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Azken eguna (barne)",
"Out of office replacement (optional)" : "Bulegotik kanpo ordezkatzea (aukerakoa)",
"Name of the replacement" : "Ordezkoaren izena",
"No results." : "Ez dago emaitzarik.",
"Start typing." : "Hasi idazten.",
"Short absence status" : "Absentzia-egoera laburra",
"Long absence Message" : "Absentzia-mezu luzea",
"Save" : "Gorde",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Inportatu egutegiko gertaera",
"Uploading a new event will overwrite the existing one." : "Gertaera berri bat igotzeak dagoena gainidatz dezake",
"Upload event" : "Igo gertaera",
"Availability" : "Eskuragarritasuna",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
"Absence" : "Absentzia",
"Configure your next absence period." : "Konfiguratu zure hurrengo absentzia aldia.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instalatu ezazu {calendarappstoreopen}Egutegi aplikazioa{linkclose} ere, edo {calendardocopen}konektatu zure ordenagailua eta mugikorra sinkronizatzeko ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Egiaztatu {emailopen}posta elektroniko zerbitzaria{linkclose} ondo konfiguratuta dagoela.",
"Calendar server" : "Egutegi-zerbitzaria",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Gaitu push bidezko jakinarazpenak gertaerentzat",
"Example content" : "Adibideko edukia",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Adibideko edukiak Nextcloud-en ezaugarriak erakusteko balio du. Eduki lehenetsia Nextcloud-ekin bidaltzen da, eta eduki pertsonalizatuarekin ordezka daiteke.",
"Availability" : "Eskuragarritasuna",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
"Absence" : "Absentzia",
"Configure your next absence period." : "Konfiguratu zure hurrengo absentzia aldia.",
"There was an error updating your attendance status." : "Errore bat gertatu da zure parte-hartze egoera eguneratzerakoan.",
"Please contact the organizer directly." : "Mesedez jarri harremanetan antolatzailearekin zuzenean.",
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
"Tentative" : "Behin behinekoa",
"Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da.",
"No results." : "Ez dago emaitzarik.",
"Start typing." : "Hasi idazten.",
"Time zone:" : "Ordu-zona:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Azken eguna (barne)",
"Out of office replacement (optional)" : "Bulegotik kanpo ordezkatzea (aukerakoa)",
"Name of the replacement" : "Ordezkoaren izena",
"No results." : "Ez dago emaitzarik.",
"Start typing." : "Hasi idazten.",
"Short absence status" : "Absentzia-egoera laburra",
"Long absence Message" : "Absentzia-mezu luzea",
"Save" : "Gorde",
@@ -314,10 +312,6 @@
"Import calendar event" : "Inportatu egutegiko gertaera",
"Uploading a new event will overwrite the existing one." : "Gertaera berri bat igotzeak dagoena gainidatz dezake",
"Upload event" : "Igo gertaera",
"Availability" : "Eskuragarritasuna",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
"Absence" : "Absentzia",
"Configure your next absence period." : "Konfiguratu zure hurrengo absentzia aldia.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instalatu ezazu {calendarappstoreopen}Egutegi aplikazioa{linkclose} ere, edo {calendardocopen}konektatu zure ordenagailua eta mugikorra sinkronizatzeko ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Egiaztatu {emailopen}posta elektroniko zerbitzaria{linkclose} ondo konfiguratuta dagoela.",
"Calendar server" : "Egutegi-zerbitzaria",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Gaitu push bidezko jakinarazpenak gertaerentzat",
"Example content" : "Adibideko edukia",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Adibideko edukiak Nextcloud-en ezaugarriak erakusteko balio du. Eduki lehenetsia Nextcloud-ekin bidaltzen da, eta eduki pertsonalizatuarekin ordezka daiteke.",
"Availability" : "Eskuragarritasuna",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Zure lan orduak konfiguratzen badituzu, beste pertsonek bulegotik kanpo zaudela ikusiko dute bilera bat erreserbatzen dutenean.",
"Absence" : "Absentzia",
"Configure your next absence period." : "Konfiguratu zure hurrengo absentzia aldia.",
"There was an error updating your attendance status." : "Errore bat gertatu da zure parte-hartze egoera eguneratzerakoan.",
"Please contact the organizer directly." : "Mesedez jarri harremanetan antolatzailearekin zuzenean.",
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
"Tentative" : "Behin behinekoa",
"Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da.",
"No results." : "Ez dago emaitzarik.",
"Start typing." : "Hasi idazten.",
"Time zone:" : "Ordu-zona:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -272,8 +272,6 @@ OC.L10N.register(
"Last day (inclusive)" : "روز آخر (شامل)",
"Out of office replacement (optional)" : "جایگزین خارج از دفتر (اختیاری)",
"Name of the replacement" : "نام جایگزین",
"No results." : "نتیجه‌ای یافت نشد.",
"Start typing." : "شروع به تایپ کنید.",
"Short absence status" : "وضعیت کوتاه غیبت",
"Long absence Message" : "پیام طولانی غیبت",
"Save" : "ذخیره",
@@ -300,10 +298,6 @@ OC.L10N.register(
"Reset to default" : "بازنشانی به پیش‌گزیده",
"Import contacts" : "وارد کردن مخاطبین",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "وارد کردن یک فایل .vcf جدید، مخاطب پیش‌فرض موجود را حذف کرده و آن را با مخاطب جدید جایگزین می‌کند. آیا می‌خواهید ادامه دهید؟",
"Availability" : "در دسترس بودن",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "اگر ساعات کاری خود را پیکربندی کنید، دیگران هنگام رزرو جلسه متوجه خواهند شد که شما در دفتر نیستید.",
"Absence" : "غیبت",
"Configure your next absence period." : "دوره غیبت بعدی خود را پیکربندی کنید.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "همچنین {calendarappstoreopen}برنامه تقویم{linkclose} را نصب کنید، یا {calendardocopen}دسکتاپ و موبایل خود را برای همگام‌سازی متصل کنید ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "لطفاً مطمئن شوید که {emailopen}سرور ایمیل{linkclose} را به درستی تنظیم کرده‌اید.",
"Calendar server" : "سرور تقویم",
@@ -316,11 +310,17 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "ارسال اعلان‌های یادآوری به اشتراک‌گذاران تقویم نیز",
"Reminders are always sent to organizers and attendees." : "یادآوری‌ها همیشه برای برگزارکنندگان و شرکت‌کنندگان ارسال می‌شوند.",
"Enable notifications for events via push" : "فعال کردن اعلان‌ها برای رویدادها از طریق پوش",
"Availability" : "در دسترس بودن",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "اگر ساعات کاری خود را پیکربندی کنید، دیگران هنگام رزرو جلسه متوجه خواهند شد که شما در دفتر نیستید.",
"Absence" : "غیبت",
"Configure your next absence period." : "دوره غیبت بعدی خود را پیکربندی کنید.",
"There was an error updating your attendance status." : "خطایی در به‌روزرسانی وضعیت حضور شما رخ داد.",
"Please contact the organizer directly." : "لطفاً مستقیماً با برگزارکننده تماس بگیرید.",
"Are you accepting the invitation?" : "آیا دعوت را می‌پذیرید؟",
"Tentative" : "آزمایشی",
"Your attendance was updated successfully." : "وضعیت حضور شما با موفقیت به‌روزرسانی شد.",
"No results." : "نتیجه‌ای یافت نشد.",
"Start typing." : "شروع به تایپ کنید.",
"Time zone:" : "منطقه زمانی:"
},
"nplurals=2; plural=(n > 1);");

View File

@@ -270,8 +270,6 @@
"Last day (inclusive)" : "روز آخر (شامل)",
"Out of office replacement (optional)" : "جایگزین خارج از دفتر (اختیاری)",
"Name of the replacement" : "نام جایگزین",
"No results." : "نتیجه‌ای یافت نشد.",
"Start typing." : "شروع به تایپ کنید.",
"Short absence status" : "وضعیت کوتاه غیبت",
"Long absence Message" : "پیام طولانی غیبت",
"Save" : "ذخیره",
@@ -298,10 +296,6 @@
"Reset to default" : "بازنشانی به پیش‌گزیده",
"Import contacts" : "وارد کردن مخاطبین",
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "وارد کردن یک فایل .vcf جدید، مخاطب پیش‌فرض موجود را حذف کرده و آن را با مخاطب جدید جایگزین می‌کند. آیا می‌خواهید ادامه دهید؟",
"Availability" : "در دسترس بودن",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "اگر ساعات کاری خود را پیکربندی کنید، دیگران هنگام رزرو جلسه متوجه خواهند شد که شما در دفتر نیستید.",
"Absence" : "غیبت",
"Configure your next absence period." : "دوره غیبت بعدی خود را پیکربندی کنید.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "همچنین {calendarappstoreopen}برنامه تقویم{linkclose} را نصب کنید، یا {calendardocopen}دسکتاپ و موبایل خود را برای همگام‌سازی متصل کنید ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "لطفاً مطمئن شوید که {emailopen}سرور ایمیل{linkclose} را به درستی تنظیم کرده‌اید.",
"Calendar server" : "سرور تقویم",
@@ -314,11 +308,17 @@
"Send reminder notifications to calendar sharees as well" : "ارسال اعلان‌های یادآوری به اشتراک‌گذاران تقویم نیز",
"Reminders are always sent to organizers and attendees." : "یادآوری‌ها همیشه برای برگزارکنندگان و شرکت‌کنندگان ارسال می‌شوند.",
"Enable notifications for events via push" : "فعال کردن اعلان‌ها برای رویدادها از طریق پوش",
"Availability" : "در دسترس بودن",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "اگر ساعات کاری خود را پیکربندی کنید، دیگران هنگام رزرو جلسه متوجه خواهند شد که شما در دفتر نیستید.",
"Absence" : "غیبت",
"Configure your next absence period." : "دوره غیبت بعدی خود را پیکربندی کنید.",
"There was an error updating your attendance status." : "خطایی در به‌روزرسانی وضعیت حضور شما رخ داد.",
"Please contact the organizer directly." : "لطفاً مستقیماً با برگزارکننده تماس بگیرید.",
"Are you accepting the invitation?" : "آیا دعوت را می‌پذیرید؟",
"Tentative" : "آزمایشی",
"Your attendance was updated successfully." : "وضعیت حضور شما با موفقیت به‌روزرسانی شد.",
"No results." : "نتیجه‌ای یافت نشد.",
"Start typing." : "شروع به تایپ کنید.",
"Time zone:" : "منطقه زمانی:"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
}

View File

@@ -274,8 +274,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Dernier jour (inclus)",
"Out of office replacement (optional)" : "Remplaçant pendant l'absence (optionnel)",
"Name of the replacement" : "Nom du remplaçant",
"No results." : "Pas de résultat.",
"Start typing." : "Commencez à écrire.",
"Short absence status" : "Résumé du message dabsence",
"Long absence Message" : "Message dabsence complet",
"Save" : "Enregistrer",
@@ -310,10 +308,6 @@ OC.L10N.register(
"Import calendar event" : "Importer l'événement du calendrier",
"Uploading a new event will overwrite the existing one." : "Charger un nouvel événement qui va remplacer l'actuel.",
"Upload event" : "Téléverser un événement",
"Availability" : "Disponibilités",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si vous configurez vos heures de travail, les autres personnes verront si vous êtes disponible quand ils planifient une réunion.",
"Absence" : "Absence",
"Configure your next absence period." : "Configurez votre prochaine période d'absence.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installer aussi {calendarappstoreopen}l'application Calendrier{linkclose}, ou {calendardocopen}connecter à votre PC & téléphone pour synchroniser ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Merci de vérifier d'avoir correctement configuré {emailopen}le serveur de messagerie{linkclose}.",
"Calendar server" : "Serveur de calendrier",
@@ -328,11 +322,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Activer les notifications push pour les évènements",
"Example content" : "Exemple de contenu",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Les exemples de contenu servent à présenter les fonctionnalités de Nextcloud. Le contenu par défaut est fourni avec Nextcloud et peut être remplacé par du contenu personnalisé.",
"Availability" : "Disponibilités",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si vous configurez vos heures de travail, les autres personnes verront si vous êtes disponible quand ils planifient une réunion.",
"Absence" : "Absence",
"Configure your next absence period." : "Configurez votre prochaine période d'absence.",
"There was an error updating your attendance status." : "Une erreur est survenue lors de la mise à jour de votre statut de présence.",
"Please contact the organizer directly." : "Merci de contacter l'organisateur directement.",
"Are you accepting the invitation?" : "Acceptez-vous l'invitation ?",
"Tentative" : "Provisoire",
"Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès.",
"No results." : "Pas de résultat.",
"Start typing." : "Commencez à écrire.",
"Time zone:" : "Fuseau horaire :"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

View File

@@ -272,8 +272,6 @@
"Last day (inclusive)" : "Dernier jour (inclus)",
"Out of office replacement (optional)" : "Remplaçant pendant l'absence (optionnel)",
"Name of the replacement" : "Nom du remplaçant",
"No results." : "Pas de résultat.",
"Start typing." : "Commencez à écrire.",
"Short absence status" : "Résumé du message dabsence",
"Long absence Message" : "Message dabsence complet",
"Save" : "Enregistrer",
@@ -308,10 +306,6 @@
"Import calendar event" : "Importer l'événement du calendrier",
"Uploading a new event will overwrite the existing one." : "Charger un nouvel événement qui va remplacer l'actuel.",
"Upload event" : "Téléverser un événement",
"Availability" : "Disponibilités",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si vous configurez vos heures de travail, les autres personnes verront si vous êtes disponible quand ils planifient une réunion.",
"Absence" : "Absence",
"Configure your next absence period." : "Configurez votre prochaine période d'absence.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Installer aussi {calendarappstoreopen}l'application Calendrier{linkclose}, ou {calendardocopen}connecter à votre PC & téléphone pour synchroniser ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Merci de vérifier d'avoir correctement configuré {emailopen}le serveur de messagerie{linkclose}.",
"Calendar server" : "Serveur de calendrier",
@@ -326,11 +320,17 @@
"Enable notifications for events via push" : "Activer les notifications push pour les évènements",
"Example content" : "Exemple de contenu",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Les exemples de contenu servent à présenter les fonctionnalités de Nextcloud. Le contenu par défaut est fourni avec Nextcloud et peut être remplacé par du contenu personnalisé.",
"Availability" : "Disponibilités",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Si vous configurez vos heures de travail, les autres personnes verront si vous êtes disponible quand ils planifient une réunion.",
"Absence" : "Absence",
"Configure your next absence period." : "Configurez votre prochaine période d'absence.",
"There was an error updating your attendance status." : "Une erreur est survenue lors de la mise à jour de votre statut de présence.",
"Please contact the organizer directly." : "Merci de contacter l'organisateur directement.",
"Are you accepting the invitation?" : "Acceptez-vous l'invitation ?",
"Tentative" : "Provisoire",
"Your attendance was updated successfully." : "Votre présence a été mise à jour avec succès.",
"No results." : "Pas de résultat.",
"Start typing." : "Commencez à écrire.",
"Time zone:" : "Fuseau horaire :"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Lá deiridh (san áireamh)",
"Out of office replacement (optional)" : "Athsholáthar as oifig (roghnach)",
"Name of the replacement" : "Ainm an athsholáthair",
"No results." : "Gan torthaí.",
"Start typing." : "Tosaigh ag clóscríobh.",
"Short absence status" : "Stádas asláithreachta gearr",
"Long absence Message" : "Neamhláithreacht fada Teachtaireacht",
"Save" : "Sábháil",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Imeacht féilire a allmhairiú",
"Uploading a new event will overwrite the existing one." : "Scríobhfar an ceann atá ann cheana má uaslódálann tú imeacht nua.",
"Upload event" : "Uaslódáil imeacht",
"Availability" : "Infhaighteacht",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Má dhéanann tú do chuid uaireanta oibre a chumrú, feicfidh daoine eile nuair a bhíonn tú as oifig nuair a chuireann siad cruinniú in áirithe.",
"Absence" : "Neamhláithreacht",
"Configure your next absence period." : "Cumraigh do chéad tréimhse neamhláithreachta eile.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Suiteáil an {calendarappstoreopen}Féilire aip{linkclose} freisin, nó {calendardocopen}ceangail do dheasc & do ghutháin phóca le haghaidh sioncronaithe ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Cinntigh le do thoil go socróidh tú {emailopen}an freastalaí ríomhphoist{linkclose} i gceart.",
"Calendar server" : "Freastalaí féilire",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Cumasaigh fógraí le haghaidh imeachtaí trí bhrú",
"Example content" : "Ábhar samplach",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Feidhmíonn ábhar samplach chun gnéithe Nextcloud a thaispeáint. Seoltar ábhar réamhshocraithe le Nextcloud, agus is féidir ábhar saincheaptha a chur ina áit.",
"Availability" : "Infhaighteacht",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Má dhéanann tú do chuid uaireanta oibre a chumrú, feicfidh daoine eile nuair a bhíonn tú as oifig nuair a chuireann siad cruinniú in áirithe.",
"Absence" : "Neamhláithreacht",
"Configure your next absence period." : "Cumraigh do chéad tréimhse neamhláithreachta eile.",
"There was an error updating your attendance status." : "Tharla earráid agus do stádas freastail á nuashonrú.",
"Please contact the organizer directly." : "Téigh i dteagmháil leis an eagraí go díreach le do thoil.",
"Are you accepting the invitation?" : "An bhfuil tú ag glacadh leis an gcuireadh?",
"Tentative" : "Sealadach",
"Your attendance was updated successfully." : "D'éirigh le do thinreamh a nuashonrú.",
"No results." : "Gan torthaí.",
"Start typing." : "Tosaigh ag clóscríobh.",
"Time zone:" : "Crios ama:"
},
"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Lá deiridh (san áireamh)",
"Out of office replacement (optional)" : "Athsholáthar as oifig (roghnach)",
"Name of the replacement" : "Ainm an athsholáthair",
"No results." : "Gan torthaí.",
"Start typing." : "Tosaigh ag clóscríobh.",
"Short absence status" : "Stádas asláithreachta gearr",
"Long absence Message" : "Neamhláithreacht fada Teachtaireacht",
"Save" : "Sábháil",
@@ -314,10 +312,6 @@
"Import calendar event" : "Imeacht féilire a allmhairiú",
"Uploading a new event will overwrite the existing one." : "Scríobhfar an ceann atá ann cheana má uaslódálann tú imeacht nua.",
"Upload event" : "Uaslódáil imeacht",
"Availability" : "Infhaighteacht",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Má dhéanann tú do chuid uaireanta oibre a chumrú, feicfidh daoine eile nuair a bhíonn tú as oifig nuair a chuireann siad cruinniú in áirithe.",
"Absence" : "Neamhláithreacht",
"Configure your next absence period." : "Cumraigh do chéad tréimhse neamhláithreachta eile.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Suiteáil an {calendarappstoreopen}Féilire aip{linkclose} freisin, nó {calendardocopen}ceangail do dheasc & do ghutháin phóca le haghaidh sioncronaithe ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Cinntigh le do thoil go socróidh tú {emailopen}an freastalaí ríomhphoist{linkclose} i gceart.",
"Calendar server" : "Freastalaí féilire",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Cumasaigh fógraí le haghaidh imeachtaí trí bhrú",
"Example content" : "Ábhar samplach",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Feidhmíonn ábhar samplach chun gnéithe Nextcloud a thaispeáint. Seoltar ábhar réamhshocraithe le Nextcloud, agus is féidir ábhar saincheaptha a chur ina áit.",
"Availability" : "Infhaighteacht",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Má dhéanann tú do chuid uaireanta oibre a chumrú, feicfidh daoine eile nuair a bhíonn tú as oifig nuair a chuireann siad cruinniú in áirithe.",
"Absence" : "Neamhláithreacht",
"Configure your next absence period." : "Cumraigh do chéad tréimhse neamhláithreachta eile.",
"There was an error updating your attendance status." : "Tharla earráid agus do stádas freastail á nuashonrú.",
"Please contact the organizer directly." : "Téigh i dteagmháil leis an eagraí go díreach le do thoil.",
"Are you accepting the invitation?" : "An bhfuil tú ag glacadh leis an gcuireadh?",
"Tentative" : "Sealadach",
"Your attendance was updated successfully." : "D'éirigh le do thinreamh a nuashonrú.",
"No results." : "Gan torthaí.",
"Start typing." : "Tosaigh ag clóscríobh.",
"Time zone:" : "Crios ama:"
},"pluralForm" :"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Último día (inclusive)",
"Out of office replacement (optional)" : "Substitución fóra da oficina (opcional)",
"Name of the replacement" : "Nome do substituto",
"No results." : "Sen resultados",
"Start typing." : "Comece a escribir.",
"Short absence status" : "Estado de ausencia breve",
"Long absence Message" : "Mensaxe de ausencia prolongada",
"Save" : "Gardar",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Importar un evento do calendario",
"Uploading a new event will overwrite the existing one." : "Ao enviar un novo evento sobrescribirá o existente.",
"Upload event" : "Enviar o evento",
"Availability" : "Dispoñibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outras persoas verán cando está fóra da oficina cando reserven unha xuntanza.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configurar o próximo período de ausencia.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale tamén a {calendarappstoreopen}aplicación do Calendario{linkclose} ou {calendardocopen}conecte os seus escritorio e móbil para sincronizalos ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrese de ter configurado correctamente {emailopen}o servidor de correo-e{linkclose}.",
"Calendar server" : "Servidor do calendario",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Activar o envío de notificacións emerxentes para eventos",
"Example content" : "Contido de exemplo",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "O contido de exemplo serve para amosar as funcionalidades de Nextcloud. O contido predeterminado envíase con Nextcloud e pode ser substituído por contido personalizado.",
"Availability" : "Dispoñibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outras persoas verán cando está fóra da oficina cando reserven unha xuntanza.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configurar o próximo período de ausencia.",
"There was an error updating your attendance status." : "Produciuse un erro ao actualizar o seu estado de asistencia.",
"Please contact the organizer directly." : "Contacte directamente co organizador.",
"Are you accepting the invitation?" : "Acepta Vde. o convite?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente.",
"No results." : "Sen resultados",
"Start typing." : "Comece a escribir.",
"Time zone:" : "Fuso horario:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Último día (inclusive)",
"Out of office replacement (optional)" : "Substitución fóra da oficina (opcional)",
"Name of the replacement" : "Nome do substituto",
"No results." : "Sen resultados",
"Start typing." : "Comece a escribir.",
"Short absence status" : "Estado de ausencia breve",
"Long absence Message" : "Mensaxe de ausencia prolongada",
"Save" : "Gardar",
@@ -314,10 +312,6 @@
"Import calendar event" : "Importar un evento do calendario",
"Uploading a new event will overwrite the existing one." : "Ao enviar un novo evento sobrescribirá o existente.",
"Upload event" : "Enviar o evento",
"Availability" : "Dispoñibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outras persoas verán cando está fóra da oficina cando reserven unha xuntanza.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configurar o próximo período de ausencia.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Instale tamén a {calendarappstoreopen}aplicación do Calendario{linkclose} ou {calendardocopen}conecte os seus escritorio e móbil para sincronizalos ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Asegúrese de ter configurado correctamente {emailopen}o servidor de correo-e{linkclose}.",
"Calendar server" : "Servidor do calendario",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Activar o envío de notificacións emerxentes para eventos",
"Example content" : "Contido de exemplo",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "O contido de exemplo serve para amosar as funcionalidades de Nextcloud. O contido predeterminado envíase con Nextcloud e pode ser substituído por contido personalizado.",
"Availability" : "Dispoñibilidade",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se configura o seu horario de traballo, outras persoas verán cando está fóra da oficina cando reserven unha xuntanza.",
"Absence" : "Ausencia",
"Configure your next absence period." : "Configurar o próximo período de ausencia.",
"There was an error updating your attendance status." : "Produciuse un erro ao actualizar o seu estado de asistencia.",
"Please contact the organizer directly." : "Contacte directamente co organizador.",
"Are you accepting the invitation?" : "Acepta Vde. o convite?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente.",
"No results." : "Sen resultados",
"Start typing." : "Comece a escribir.",
"Time zone:" : "Fuso horario:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -226,8 +226,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Utolsó nap (beleértve)",
"Out of office replacement (optional)" : "Távolléti helyettesítő (nem kötelező)",
"Name of the replacement" : "Helyettesítő neve",
"No results." : "Nincs eredmény.",
"Start typing." : "Kezdjen gépelni.",
"Short absence status" : "Rövid távolléti állapot",
"Long absence Message" : "Hosszú távolléti állapot",
"Save" : "Mentés",
@@ -247,10 +245,6 @@ OC.L10N.register(
"Import" : "Importálás",
"Error while saving settings" : "Hiba a beállítások mentése során",
"Reset to default" : "Visszaállítás alapértelmezettre",
"Availability" : "Elérhetőség",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ha beállítja a munkaidejét, akkor más emberek a megbeszélések létrehozásakor látni fogják, hogy Ön mikor nem érhető el.",
"Absence" : "Távollét",
"Configure your next absence period." : "A követkeő távolléti periódus beállítása.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Telepítse a {calendarappstoreopen}Naptár alkalmazást{linkclose}, vagy {calendardocopen}csatlakoztassa asztali számítógépét és mobilját a szinkronizáláshoz ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Ne felejtse el megfelelően beállítani az {emailopen}e-mail kiszolgálót{linkclose}.",
"Calendar server" : "Naptárkiszolgáló",
@@ -263,11 +257,17 @@ OC.L10N.register(
"Send reminder notifications to calendar sharees as well" : "Emlékeztető értesítések küldése azoknak is, akikkel a naptár meg van osztva",
"Reminders are always sent to organizers and attendees." : "Az értesítések mindig a szervezőknek és a résztvevőknek lesznek elküldve.",
"Enable notifications for events via push" : "Leküldéses értesítések engedélyezése az eseményekhez",
"Availability" : "Elérhetőség",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ha beállítja a munkaidejét, akkor más emberek a megbeszélések létrehozásakor látni fogják, hogy Ön mikor nem érhető el.",
"Absence" : "Távollét",
"Configure your next absence period." : "A követkeő távolléti periódus beállítása.",
"There was an error updating your attendance status." : "Hiba történt a részvételi állapotának frissítése során.",
"Please contact the organizer directly." : "Vegye fel a kapcsolatot közvetlenül a szervezővel.",
"Are you accepting the invitation?" : "Elfogadja az meghívást?",
"Tentative" : "Feltételes",
"Your attendance was updated successfully." : "A részvétele frissítése sikeres.",
"No results." : "Nincs eredmény.",
"Start typing." : "Kezdjen gépelni.",
"Time zone:" : "Időzóna:"
},
"nplurals=2; plural=(n != 1);");

View File

@@ -224,8 +224,6 @@
"Last day (inclusive)" : "Utolsó nap (beleértve)",
"Out of office replacement (optional)" : "Távolléti helyettesítő (nem kötelező)",
"Name of the replacement" : "Helyettesítő neve",
"No results." : "Nincs eredmény.",
"Start typing." : "Kezdjen gépelni.",
"Short absence status" : "Rövid távolléti állapot",
"Long absence Message" : "Hosszú távolléti állapot",
"Save" : "Mentés",
@@ -245,10 +243,6 @@
"Import" : "Importálás",
"Error while saving settings" : "Hiba a beállítások mentése során",
"Reset to default" : "Visszaállítás alapértelmezettre",
"Availability" : "Elérhetőség",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ha beállítja a munkaidejét, akkor más emberek a megbeszélések létrehozásakor látni fogják, hogy Ön mikor nem érhető el.",
"Absence" : "Távollét",
"Configure your next absence period." : "A követkeő távolléti periódus beállítása.",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Telepítse a {calendarappstoreopen}Naptár alkalmazást{linkclose}, vagy {calendardocopen}csatlakoztassa asztali számítógépét és mobilját a szinkronizáláshoz ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Ne felejtse el megfelelően beállítani az {emailopen}e-mail kiszolgálót{linkclose}.",
"Calendar server" : "Naptárkiszolgáló",
@@ -261,11 +255,17 @@
"Send reminder notifications to calendar sharees as well" : "Emlékeztető értesítések küldése azoknak is, akikkel a naptár meg van osztva",
"Reminders are always sent to organizers and attendees." : "Az értesítések mindig a szervezőknek és a résztvevőknek lesznek elküldve.",
"Enable notifications for events via push" : "Leküldéses értesítések engedélyezése az eseményekhez",
"Availability" : "Elérhetőség",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ha beállítja a munkaidejét, akkor más emberek a megbeszélések létrehozásakor látni fogják, hogy Ön mikor nem érhető el.",
"Absence" : "Távollét",
"Configure your next absence period." : "A követkeő távolléti periódus beállítása.",
"There was an error updating your attendance status." : "Hiba történt a részvételi állapotának frissítése során.",
"Please contact the organizer directly." : "Vegye fel a kapcsolatot közvetlenül a szervezővel.",
"Are you accepting the invitation?" : "Elfogadja az meghívást?",
"Tentative" : "Feltételes",
"Your attendance was updated successfully." : "A részvétele frissítése sikeres.",
"No results." : "Nincs eredmény.",
"Start typing." : "Kezdjen gépelni.",
"Time zone:" : "Időzóna:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
}

View File

@@ -280,8 +280,6 @@ OC.L10N.register(
"Last day (inclusive)" : "Síðasta dag (meðtalinn)",
"Out of office replacement (optional)" : "Afleysing við fjarveru utan fyrirtækis (valfrjálst)",
"Name of the replacement" : "Nafn þess sem tekur við í afleysingu",
"No results." : "Engar niðurstöður.",
"Start typing." : "Byrjaðu að skrifa.",
"Short absence status" : "Staða stuttrar fjarveru",
"Long absence Message" : "Skilaboð vegna langrar fjarveru",
"Save" : "Vista",
@@ -316,10 +314,6 @@ OC.L10N.register(
"Import calendar event" : "Flytja inn dagatalsatburð",
"Uploading a new event will overwrite the existing one." : "Innsending á nýjum atburði mun skrifa yfir þann fyrirliggjandi.",
"Upload event" : "Senda inn atburð",
"Availability" : "Aðgengileiki",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ef þú stillir vinnutímana þína, geta aðrir séð hvenær þú sért fjarverandi þegar þeir bóka fundi með þér.",
"Absence" : "Fjarverandi",
"Configure your next absence period." : "Stilltu næsta fjarvistatímabilið þitt",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Settu líka upp {calendarappstoreopen}Calendar-forritið{linkclose}, eða {calendardocopen}-tengdu tölvuna þína & farsíma fyrir samstillingu ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Gakktu úr skugga um að {emailopen}póstþjóninn{linkclose} sé rétt uppsettur.",
"Calendar server" : "Dagatalaþjónn",
@@ -334,11 +328,17 @@ OC.L10N.register(
"Enable notifications for events via push" : "Senda tilkynningar fyrir atburði sem ýtitilkynningar",
"Example content" : "Sýnidæmi um efni",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Sýnishorn af efni er til að sýna eiginleika Nextcloud. Sjálfgefið efni fylgir með Nextcloud og er hægt að skipta því út með sérsniðnu efni.",
"Availability" : "Aðgengileiki",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ef þú stillir vinnutímana þína, geta aðrir séð hvenær þú sért fjarverandi þegar þeir bóka fundi með þér.",
"Absence" : "Fjarverandi",
"Configure your next absence period." : "Stilltu næsta fjarvistatímabilið þitt",
"There was an error updating your attendance status." : "Það kom upp villa við að uppfæra mætingarstöðu þína.",
"Please contact the organizer directly." : "Hafðu samband beint við skipuleggjendurna.",
"Are you accepting the invitation?" : "Ætlar þú að samþykkja boðið?",
"Tentative" : "Bráðabirgða",
"Your attendance was updated successfully." : "Mætingarstaða þín var uppfærð.",
"No results." : "Engar niðurstöður.",
"Start typing." : "Byrjaðu að skrifa.",
"Time zone:" : "Tímabelti:"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");

View File

@@ -278,8 +278,6 @@
"Last day (inclusive)" : "Síðasta dag (meðtalinn)",
"Out of office replacement (optional)" : "Afleysing við fjarveru utan fyrirtækis (valfrjálst)",
"Name of the replacement" : "Nafn þess sem tekur við í afleysingu",
"No results." : "Engar niðurstöður.",
"Start typing." : "Byrjaðu að skrifa.",
"Short absence status" : "Staða stuttrar fjarveru",
"Long absence Message" : "Skilaboð vegna langrar fjarveru",
"Save" : "Vista",
@@ -314,10 +312,6 @@
"Import calendar event" : "Flytja inn dagatalsatburð",
"Uploading a new event will overwrite the existing one." : "Innsending á nýjum atburði mun skrifa yfir þann fyrirliggjandi.",
"Upload event" : "Senda inn atburð",
"Availability" : "Aðgengileiki",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ef þú stillir vinnutímana þína, geta aðrir séð hvenær þú sért fjarverandi þegar þeir bóka fundi með þér.",
"Absence" : "Fjarverandi",
"Configure your next absence period." : "Stilltu næsta fjarvistatímabilið þitt",
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Settu líka upp {calendarappstoreopen}Calendar-forritið{linkclose}, eða {calendardocopen}-tengdu tölvuna þína & farsíma fyrir samstillingu ↗{linkclose}.",
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Gakktu úr skugga um að {emailopen}póstþjóninn{linkclose} sé rétt uppsettur.",
"Calendar server" : "Dagatalaþjónn",
@@ -332,11 +326,17 @@
"Enable notifications for events via push" : "Senda tilkynningar fyrir atburði sem ýtitilkynningar",
"Example content" : "Sýnidæmi um efni",
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Sýnishorn af efni er til að sýna eiginleika Nextcloud. Sjálfgefið efni fylgir með Nextcloud og er hægt að skipta því út með sérsniðnu efni.",
"Availability" : "Aðgengileiki",
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Ef þú stillir vinnutímana þína, geta aðrir séð hvenær þú sért fjarverandi þegar þeir bóka fundi með þér.",
"Absence" : "Fjarverandi",
"Configure your next absence period." : "Stilltu næsta fjarvistatímabilið þitt",
"There was an error updating your attendance status." : "Það kom upp villa við að uppfæra mætingarstöðu þína.",
"Please contact the organizer directly." : "Hafðu samband beint við skipuleggjendurna.",
"Are you accepting the invitation?" : "Ætlar þú að samþykkja boðið?",
"Tentative" : "Bráðabirgða",
"Your attendance was updated successfully." : "Mætingarstaða þín var uppfærð.",
"No results." : "Engar niðurstöður.",
"Start typing." : "Byrjaðu að skrifa.",
"Time zone:" : "Tímabelti:"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
}

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