aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav')
-rw-r--r--apps/dav/appinfo/v1/publicwebdav.php7
-rw-r--r--apps/dav/appinfo/v1/webdav.php7
-rw-r--r--apps/dav/composer/composer/autoload_classmap.php1
-rw-r--r--apps/dav/composer/composer/autoload_static.php1
-rw-r--r--apps/dav/l10n/ar.js4
-rw-r--r--apps/dav/l10n/ar.json4
-rw-r--r--apps/dav/l10n/bg.js4
-rw-r--r--apps/dav/l10n/bg.json4
-rw-r--r--apps/dav/l10n/ca.js4
-rw-r--r--apps/dav/l10n/ca.json4
-rw-r--r--apps/dav/l10n/cs.js4
-rw-r--r--apps/dav/l10n/cs.json4
-rw-r--r--apps/dav/l10n/de.js4
-rw-r--r--apps/dav/l10n/de.json4
-rw-r--r--apps/dav/l10n/de_DE.js4
-rw-r--r--apps/dav/l10n/de_DE.json4
-rw-r--r--apps/dav/l10n/el.js5
-rw-r--r--apps/dav/l10n/el.json5
-rw-r--r--apps/dav/l10n/en_GB.js4
-rw-r--r--apps/dav/l10n/en_GB.json4
-rw-r--r--apps/dav/l10n/es.js4
-rw-r--r--apps/dav/l10n/es.json4
-rw-r--r--apps/dav/l10n/eu.js5
-rw-r--r--apps/dav/l10n/eu.json5
-rw-r--r--apps/dav/l10n/fi.js5
-rw-r--r--apps/dav/l10n/fi.json5
-rw-r--r--apps/dav/l10n/fr.js4
-rw-r--r--apps/dav/l10n/fr.json4
-rw-r--r--apps/dav/l10n/gl.js54
-rw-r--r--apps/dav/l10n/gl.json54
-rw-r--r--apps/dav/l10n/he.js5
-rw-r--r--apps/dav/l10n/he.json5
-rw-r--r--apps/dav/l10n/hr.js5
-rw-r--r--apps/dav/l10n/hr.json5
-rw-r--r--apps/dav/l10n/hu.js4
-rw-r--r--apps/dav/l10n/hu.json4
-rw-r--r--apps/dav/l10n/it.js5
-rw-r--r--apps/dav/l10n/it.json5
-rw-r--r--apps/dav/l10n/ja.js5
-rw-r--r--apps/dav/l10n/ja.json5
-rw-r--r--apps/dav/l10n/ko.js5
-rw-r--r--apps/dav/l10n/ko.json5
-rw-r--r--apps/dav/l10n/lt_LT.js5
-rw-r--r--apps/dav/l10n/lt_LT.json5
-rw-r--r--apps/dav/l10n/mk.js5
-rw-r--r--apps/dav/l10n/mk.json5
-rw-r--r--apps/dav/l10n/nb.js5
-rw-r--r--apps/dav/l10n/nb.json5
-rw-r--r--apps/dav/l10n/nl.js5
-rw-r--r--apps/dav/l10n/nl.json5
-rw-r--r--apps/dav/l10n/pl.js5
-rw-r--r--apps/dav/l10n/pl.json5
-rw-r--r--apps/dav/l10n/pt_BR.js4
-rw-r--r--apps/dav/l10n/pt_BR.json4
-rw-r--r--apps/dav/l10n/ru.js5
-rw-r--r--apps/dav/l10n/ru.json5
-rw-r--r--apps/dav/l10n/sc.js5
-rw-r--r--apps/dav/l10n/sc.json5
-rw-r--r--apps/dav/l10n/sk.js5
-rw-r--r--apps/dav/l10n/sk.json5
-rw-r--r--apps/dav/l10n/sl.js5
-rw-r--r--apps/dav/l10n/sl.json5
-rw-r--r--apps/dav/l10n/sr.js4
-rw-r--r--apps/dav/l10n/sr.json4
-rw-r--r--apps/dav/l10n/sv.js4
-rw-r--r--apps/dav/l10n/sv.json4
-rw-r--r--apps/dav/l10n/tr.js4
-rw-r--r--apps/dav/l10n/tr.json4
-rw-r--r--apps/dav/l10n/uk.js4
-rw-r--r--apps/dav/l10n/uk.json4
-rw-r--r--apps/dav/l10n/zh_CN.js5
-rw-r--r--apps/dav/l10n/zh_CN.json5
-rw-r--r--apps/dav/l10n/zh_HK.js4
-rw-r--r--apps/dav/l10n/zh_HK.json4
-rw-r--r--apps/dav/l10n/zh_TW.js4
-rw-r--r--apps/dav/l10n/zh_TW.json4
-rw-r--r--apps/dav/lib/AppInfo/Application.php45
-rw-r--r--apps/dav/lib/CalDAV/CalDavBackend.php6
-rw-r--r--apps/dav/lib/Capabilities.php4
-rw-r--r--apps/dav/lib/CardDAV/CardDavBackend.php4
-rw-r--r--apps/dav/lib/CardDAV/UserAddressBooks.php2
-rw-r--r--apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php6
-rw-r--r--apps/dav/lib/Connector/Sabre/ServerFactory.php8
-rw-r--r--apps/dav/lib/Controller/DirectController.php13
-rw-r--r--apps/dav/lib/Controller/InvitationResponseController.php3
-rw-r--r--apps/dav/lib/DAV/CustomPropertiesBackend.php44
-rw-r--r--apps/dav/lib/Events/SabrePluginAddEvent.php56
-rw-r--r--apps/dav/lib/Server.php10
-rw-r--r--apps/dav/lib/Upload/ChunkingV2Plugin.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/AuthTest.php20
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php47
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php3
92 files changed, 311 insertions, 403 deletions
diff --git a/apps/dav/appinfo/v1/publicwebdav.php b/apps/dav/appinfo/v1/publicwebdav.php
index 5530fc2cc7d..8ca9c6c577c 100644
--- a/apps/dav/appinfo/v1/publicwebdav.php
+++ b/apps/dav/appinfo/v1/publicwebdav.php
@@ -51,6 +51,9 @@ $authBackend = new OCA\DAV\Connector\PublicAuth(
);
$authPlugin = new \Sabre\DAV\Auth\Plugin($authBackend);
+/** @var IEventDispatcher $eventDispatcher */
+$eventDispatcher = \OC::$server->get(IEventDispatcher::class);
+
$serverFactory = new OCA\DAV\Connector\Sabre\ServerFactory(
\OC::$server->getConfig(),
\OC::$server->get(LoggerInterface::class),
@@ -60,7 +63,7 @@ $serverFactory = new OCA\DAV\Connector\Sabre\ServerFactory(
\OC::$server->getTagManager(),
\OC::$server->getRequest(),
\OC::$server->getPreviewManager(),
- \OC::$server->getEventDispatcher(),
+ $eventDispatcher,
\OC::$server->getL10N('dav')
);
@@ -115,8 +118,6 @@ $server->addPlugin($linkCheckPlugin);
$server->addPlugin($filesDropPlugin);
// allow setup of additional plugins
$event = new BeforeSabrePubliclyLoadedEvent($server);
-/** @var IEventDispatcher $eventDispatcher */
-$eventDispatcher = \OC::$server->get(IEventDispatcher::class);
$eventDispatcher->dispatchTyped($event);
// And off we go!
diff --git a/apps/dav/appinfo/v1/webdav.php b/apps/dav/appinfo/v1/webdav.php
index 8dbe846f3ff..7c6a3fc77a6 100644
--- a/apps/dav/appinfo/v1/webdav.php
+++ b/apps/dav/appinfo/v1/webdav.php
@@ -39,6 +39,8 @@ ignore_user_abort(true);
// Turn off output buffering to prevent memory problems
\OC_Util::obEnd();
+$dispatcher = \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class);
+
$serverFactory = new \OCA\DAV\Connector\Sabre\ServerFactory(
\OC::$server->getConfig(),
\OC::$server->get(LoggerInterface::class),
@@ -48,7 +50,7 @@ $serverFactory = new \OCA\DAV\Connector\Sabre\ServerFactory(
\OC::$server->getTagManager(),
\OC::$server->getRequest(),
\OC::$server->getPreviewManager(),
- \OC::$server->getEventDispatcher(),
+ $dispatcher,
\OC::$server->getL10N('dav')
);
@@ -76,10 +78,11 @@ $server = $serverFactory->createServer($baseuri, $requestUri, $authPlugin, funct
return \OC\Files\Filesystem::getView();
});
-$dispatcher = \OC::$server->getEventDispatcher();
// allow setup of additional plugins
$event = new \OCP\SabrePluginEvent($server);
$dispatcher->dispatch('OCA\DAV\Connector\Sabre::addPlugin', $event);
+$event = new \OCA\DAV\Events\SabrePluginAddEvent($server);
+$dispatcher->dispatchTyped($event);
// And off we go!
$server->exec();
diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php
index 13b9356f587..6d41801728b 100644
--- a/apps/dav/composer/composer/autoload_classmap.php
+++ b/apps/dav/composer/composer/autoload_classmap.php
@@ -233,6 +233,7 @@ return array(
'OCA\\DAV\\Events\\CardDeletedEvent' => $baseDir . '/../lib/Events/CardDeletedEvent.php',
'OCA\\DAV\\Events\\CardMovedEvent' => $baseDir . '/../lib/Events/CardMovedEvent.php',
'OCA\\DAV\\Events\\CardUpdatedEvent' => $baseDir . '/../lib/Events/CardUpdatedEvent.php',
+ 'OCA\\DAV\\Events\\SabrePluginAddEvent' => $baseDir . '/../lib/Events/SabrePluginAddEvent.php',
'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => $baseDir . '/../lib/Events/SabrePluginAuthInitEvent.php',
'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => $baseDir . '/../lib/Events/SubscriptionCreatedEvent.php',
'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => $baseDir . '/../lib/Events/SubscriptionDeletedEvent.php',
diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php
index e2b7e905dfe..600397c371e 100644
--- a/apps/dav/composer/composer/autoload_static.php
+++ b/apps/dav/composer/composer/autoload_static.php
@@ -248,6 +248,7 @@ class ComposerStaticInitDAV
'OCA\\DAV\\Events\\CardDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/CardDeletedEvent.php',
'OCA\\DAV\\Events\\CardMovedEvent' => __DIR__ . '/..' . '/../lib/Events/CardMovedEvent.php',
'OCA\\DAV\\Events\\CardUpdatedEvent' => __DIR__ . '/..' . '/../lib/Events/CardUpdatedEvent.php',
+ 'OCA\\DAV\\Events\\SabrePluginAddEvent' => __DIR__ . '/..' . '/../lib/Events/SabrePluginAddEvent.php',
'OCA\\DAV\\Events\\SabrePluginAuthInitEvent' => __DIR__ . '/..' . '/../lib/Events/SabrePluginAuthInitEvent.php',
'OCA\\DAV\\Events\\SubscriptionCreatedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionCreatedEvent.php',
'OCA\\DAV\\Events\\SubscriptionDeletedEvent' => __DIR__ . '/..' . '/../lib/Events/SubscriptionDeletedEvent.php',
diff --git a/apps/dav/l10n/ar.js b/apps/dav/l10n/ar.js
index 175ceb698a3..cfce51a3994 100644
--- a/apps/dav/l10n/ar.js
+++ b/apps/dav/l10n/ar.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
"Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
- "Invitation canceled" : "تمّ إلغاء الدعوة",
- "Invitation updated" : "تمّ تعديل الدعوة",
- "Invitation" : "دعوة"
+ "%1$s has responded your invitation" : "%1$s تفاعل مع دعوتك"
},
"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;");
diff --git a/apps/dav/l10n/ar.json b/apps/dav/l10n/ar.json
index 0f74997fe51..efa28b61117 100644
--- a/apps/dav/l10n/ar.json
+++ b/apps/dav/l10n/ar.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "هل تقبل الدعوة؟",
"Tentative" : "مبدئي",
"Your attendance was updated successfully." : "حضورك تم تحديثه بنجاحٍ",
- "Invitation canceled" : "تمّ إلغاء الدعوة",
- "Invitation updated" : "تمّ تعديل الدعوة",
- "Invitation" : "دعوة"
+ "%1$s has responded your invitation" : "%1$s تفاعل مع دعوتك"
},"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;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/bg.js b/apps/dav/l10n/bg.js
index 8b107c6ebf1..fd8e0a6def6 100644
--- a/apps/dav/l10n/bg.js
+++ b/apps/dav/l10n/bg.js
@@ -187,8 +187,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Приемате ли поканата?",
"Tentative" : "Несигурно",
"Your attendance was updated successfully." : "Вашето присъствие е актуализирано успешно.",
- "Invitation canceled" : "Поканата е отказана",
- "Invitation updated" : "Поканата е актуализирана",
- "Invitation" : "Покана"
+ "%1$s has responded your invitation" : "%1$s отговори на вашата покана"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/bg.json b/apps/dav/l10n/bg.json
index c205ce3d3ce..716a18768e0 100644
--- a/apps/dav/l10n/bg.json
+++ b/apps/dav/l10n/bg.json
@@ -185,8 +185,6 @@
"Are you accepting the invitation?" : "Приемате ли поканата?",
"Tentative" : "Несигурно",
"Your attendance was updated successfully." : "Вашето присъствие е актуализирано успешно.",
- "Invitation canceled" : "Поканата е отказана",
- "Invitation updated" : "Поканата е актуализирана",
- "Invitation" : "Покана"
+ "%1$s has responded your invitation" : "%1$s отговори на вашата покана"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ca.js b/apps/dav/l10n/ca.js
index 581bb4ccc10..250f36860d2 100644
--- a/apps/dav/l10n/ca.js
+++ b/apps/dav/l10n/ca.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
- "Invitation canceled" : "S'ha cancel·lat la invitació",
- "Invitation updated" : "S'ha actualitzat la invitació",
- "Invitation" : "Invitació"
+ "%1$s has responded your invitation" : "%1$s ha respost a la vostra invitació"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/ca.json b/apps/dav/l10n/ca.json
index 522bc984fba..2fe411d9252 100644
--- a/apps/dav/l10n/ca.json
+++ b/apps/dav/l10n/ca.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Accepteu la invitació?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "S'ha actualitzat correctament l'assistència.",
- "Invitation canceled" : "S'ha cancel·lat la invitació",
- "Invitation updated" : "S'ha actualitzat la invitació",
- "Invitation" : "Invitació"
+ "%1$s has responded your invitation" : "%1$s ha respost a la vostra invitació"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js
index 538f538765e..179217e947f 100644
--- a/apps/dav/l10n/cs.js
+++ b/apps/dav/l10n/cs.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"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.",
- "Invitation canceled" : "Pozvánka zrušena",
- "Invitation updated" : "Pozvánka aktualizována",
- "Invitation" : "Pozvání"
+ "%1$s has responded your invitation" : "%1$s odpověděl(a) na vaši pozvánku"
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
diff --git a/apps/dav/l10n/cs.json b/apps/dav/l10n/cs.json
index 143feaaa39e..d25e404fd2f 100644
--- a/apps/dav/l10n/cs.json
+++ b/apps/dav/l10n/cs.json
@@ -187,8 +187,6 @@
"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.",
- "Invitation canceled" : "Pozvánka zrušena",
- "Invitation updated" : "Pozvánka aktualizována",
- "Invitation" : "Pozvání"
+ "%1$s has responded your invitation" : "%1$s odpověděl(a) na vaši pozvánku"
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js
index 3cab9651a98..3031b591f4b 100644
--- a/apps/dav/l10n/de.js
+++ b/apps/dav/l10n/de.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert.",
- "Invitation canceled" : "Einladung abgebrochen",
- "Invitation updated" : "Einladung aktualisiert",
- "Invitation" : "Einladung"
+ "%1$s has responded your invitation" : "%1$s hat auf deine Einladunge geantwortet."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json
index 51ee0a7e8b7..67b9fa9f1d9 100644
--- a/apps/dav/l10n/de.json
+++ b/apps/dav/l10n/de.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Dein Teilnehmerstatus wurde aktualisiert.",
- "Invitation canceled" : "Einladung abgebrochen",
- "Invitation updated" : "Einladung aktualisiert",
- "Invitation" : "Einladung"
+ "%1$s has responded your invitation" : "%1$s hat auf deine Einladunge geantwortet."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js
index b8b27ddb851..37ec4c3da4a 100644
--- a/apps/dav/l10n/de_DE.js
+++ b/apps/dav/l10n/de_DE.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert.",
- "Invitation canceled" : "Einladung abgebrochen",
- "Invitation updated" : "Einladung aktualisiert",
- "Invitation" : "Einladung"
+ "%1$s has responded your invitation" : "%1$s hat auf Ihre Einladung geantwortet"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json
index e73a5942f97..b62667636c1 100644
--- a/apps/dav/l10n/de_DE.json
+++ b/apps/dav/l10n/de_DE.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Die Einladung annehmen?",
"Tentative" : "Vorläufig",
"Your attendance was updated successfully." : "Ihr Teilnehmerstatus wurde aktualisiert.",
- "Invitation canceled" : "Einladung abgebrochen",
- "Invitation updated" : "Einladung aktualisiert",
- "Invitation" : "Einladung"
+ "%1$s has responded your invitation" : "%1$s hat auf Ihre Einladung geantwortet"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/el.js b/apps/dav/l10n/el.js
index 2323e569e60..dfec301c413 100644
--- a/apps/dav/l10n/el.js
+++ b/apps/dav/l10n/el.js
@@ -114,9 +114,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Παρακαλώ επικοινωνήστε απ' ευθείας με τον διοργανωτή.",
"Are you accepting the invitation?" : "Αποδέχεστε την πρόσκληση;",
"Tentative" : "Δοκιμαστικό",
- "Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία.",
- "Invitation canceled" : "Η πρόσκληση ακυρώθηκε.",
- "Invitation updated" : "Ενημερώθηκε η πρόσκληση.",
- "Invitation" : "Πρόσκληση"
+ "Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/el.json b/apps/dav/l10n/el.json
index 29915ab7b11..b5ed1f5344c 100644
--- a/apps/dav/l10n/el.json
+++ b/apps/dav/l10n/el.json
@@ -112,9 +112,6 @@
"Please contact the organizer directly." : "Παρακαλώ επικοινωνήστε απ' ευθείας με τον διοργανωτή.",
"Are you accepting the invitation?" : "Αποδέχεστε την πρόσκληση;",
"Tentative" : "Δοκιμαστικό",
- "Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία.",
- "Invitation canceled" : "Η πρόσκληση ακυρώθηκε.",
- "Invitation updated" : "Ενημερώθηκε η πρόσκληση.",
- "Invitation" : "Πρόσκληση"
+ "Your attendance was updated successfully." : "Η παρουσία σας ενημερώθηκε με επιτυχία."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/en_GB.js b/apps/dav/l10n/en_GB.js
index 231a06606d6..248b0a555d0 100644
--- a/apps/dav/l10n/en_GB.js
+++ b/apps/dav/l10n/en_GB.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
"Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Invitation canceled" : "Invitation cancelled",
- "Invitation updated" : "Invitation updated",
- "Invitation" : "Invitation"
+ "%1$s has responded your invitation" : "%1$s has responded to your invitation"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/en_GB.json b/apps/dav/l10n/en_GB.json
index 2aace625894..d29ec38c1db 100644
--- a/apps/dav/l10n/en_GB.json
+++ b/apps/dav/l10n/en_GB.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Are you accepting the invitation?",
"Tentative" : "Tentative",
"Your attendance was updated successfully." : "Your attendance was updated successfully.",
- "Invitation canceled" : "Invitation cancelled",
- "Invitation updated" : "Invitation updated",
- "Invitation" : "Invitation"
+ "%1$s has responded your invitation" : "%1$s has responded to your invitation"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/es.js b/apps/dav/l10n/es.js
index 79c9c9c63a2..56636da06e3 100644
--- a/apps/dav/l10n/es.js
+++ b/apps/dav/l10n/es.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito.",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Invitation" : "Invitación"
+ "%1$s has responded your invitation" : "%1$s ha respondido a su invitación"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/es.json b/apps/dav/l10n/es.json
index d1339b86e2d..36d94c94397 100644
--- a/apps/dav/l10n/es.json
+++ b/apps/dav/l10n/es.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "¿Aceptas la invitación?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "Tu asistencia se ha actualizado con éxito.",
- "Invitation canceled" : "Invitación cancelada",
- "Invitation updated" : "Invitación actualizada",
- "Invitation" : "Invitación"
+ "%1$s has responded your invitation" : "%1$s ha respondido a su invitación"
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/eu.js b/apps/dav/l10n/eu.js
index 7a3cd36e87a..f1d7da5dcea 100644
--- a/apps/dav/l10n/eu.js
+++ b/apps/dav/l10n/eu.js
@@ -119,6 +119,7 @@ OC.L10N.register(
"You updated contact {card} in address book {addressbook}" : "{card} kontaktua eguneratu duzu {addressbook} helbide-liburuan",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>kontaktu</strong> edo <strong>helbide-liburu</strong>bat aldatu da",
"Accounts" : "Kontuak",
+ "System address book which holds all accounts" : "Kontu guztiak dituen sistemaren helbide-liburua",
"File is not updatable: %1$s" : "Fitxategia ez da eguneragarria: %1$s",
"Could not write to final file, canceled by hook" : "Ezin izan da azken fitxategian idatzi, kakoak bertan behera utzi du",
"Could not write file contents" : "Ezin izan dira fitxategiaren edukiak idatzi",
@@ -188,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
"Tentative" : "Behin behinekoa",
"Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da.",
- "Invitation canceled" : "Gonbidapena ezeztatua",
- "Invitation updated" : "Gonbidapena eguneratu da",
- "Invitation" : "Gonbidapena"
+ "%1$s has responded your invitation" : "%1$s-k zure gonbidapena erantzun du"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/eu.json b/apps/dav/l10n/eu.json
index 44fe901dc2d..a1c14611cc3 100644
--- a/apps/dav/l10n/eu.json
+++ b/apps/dav/l10n/eu.json
@@ -117,6 +117,7 @@
"You updated contact {card} in address book {addressbook}" : "{card} kontaktua eguneratu duzu {addressbook} helbide-liburuan",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>kontaktu</strong> edo <strong>helbide-liburu</strong>bat aldatu da",
"Accounts" : "Kontuak",
+ "System address book which holds all accounts" : "Kontu guztiak dituen sistemaren helbide-liburua",
"File is not updatable: %1$s" : "Fitxategia ez da eguneragarria: %1$s",
"Could not write to final file, canceled by hook" : "Ezin izan da azken fitxategian idatzi, kakoak bertan behera utzi du",
"Could not write file contents" : "Ezin izan dira fitxategiaren edukiak idatzi",
@@ -186,8 +187,6 @@
"Are you accepting the invitation?" : "Gonbidapena onartzen duzu?",
"Tentative" : "Behin behinekoa",
"Your attendance was updated successfully." : "Zure parte-hartzea ondo eguneratu da.",
- "Invitation canceled" : "Gonbidapena ezeztatua",
- "Invitation updated" : "Gonbidapena eguneratu da",
- "Invitation" : "Gonbidapena"
+ "%1$s has responded your invitation" : "%1$s-k zure gonbidapena erantzun du"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/fi.js b/apps/dav/l10n/fi.js
index a466283cb28..325527b1b10 100644
--- a/apps/dav/l10n/fi.js
+++ b/apps/dav/l10n/fi.js
@@ -142,9 +142,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Ota yhteys suoraan järjestäjään.",
"Are you accepting the invitation?" : "Hyväksytkö kutsun?",
"Tentative" : "Alustava",
- "Your attendance was updated successfully." : "Osallistumisesi päivitettiin onnistuneesti.",
- "Invitation canceled" : "Kutsu peruttu",
- "Invitation updated" : "Kutsu päivitetty",
- "Invitation" : "Kutsu"
+ "Your attendance was updated successfully." : "Osallistumisesi päivitettiin onnistuneesti."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/fi.json b/apps/dav/l10n/fi.json
index 4d66dd2266f..12a9388c57a 100644
--- a/apps/dav/l10n/fi.json
+++ b/apps/dav/l10n/fi.json
@@ -140,9 +140,6 @@
"Please contact the organizer directly." : "Ota yhteys suoraan järjestäjään.",
"Are you accepting the invitation?" : "Hyväksytkö kutsun?",
"Tentative" : "Alustava",
- "Your attendance was updated successfully." : "Osallistumisesi päivitettiin onnistuneesti.",
- "Invitation canceled" : "Kutsu peruttu",
- "Invitation updated" : "Kutsu päivitetty",
- "Invitation" : "Kutsu"
+ "Your attendance was updated successfully." : "Osallistumisesi päivitettiin onnistuneesti."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/fr.js b/apps/dav/l10n/fr.js
index d4547b65fb1..76b675f923e 100644
--- a/apps/dav/l10n/fr.js
+++ b/apps/dav/l10n/fr.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"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.",
- "Invitation canceled" : "Invitation annulée",
- "Invitation updated" : "Invitation mise à jour",
- "Invitation" : "Invitation"
+ "%1$s has responded your invitation" : "\"1%1$s\" a répondu à votre invitation"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/fr.json b/apps/dav/l10n/fr.json
index 672f4174af3..f31cc9a5c1c 100644
--- a/apps/dav/l10n/fr.json
+++ b/apps/dav/l10n/fr.json
@@ -187,8 +187,6 @@
"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.",
- "Invitation canceled" : "Invitation annulée",
- "Invitation updated" : "Invitation mise à jour",
- "Invitation" : "Invitation"
+ "%1$s has responded your invitation" : "\"1%1$s\" a répondu à votre invitation"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/gl.js b/apps/dav/l10n/gl.js
index 288ad39f189..7dcc290e913 100644
--- a/apps/dav/l10n/gl.js
+++ b/apps/dav/l10n/gl.js
@@ -9,29 +9,29 @@ OC.L10N.register(
"{actor} deleted calendar {calendar}" : "{actor} eliminou o calendario {calendar}",
"You deleted calendar {calendar}" : "Eliminou o calendario {calendar}",
"{actor} updated calendar {calendar}" : "{actor} actualizou o calendario {calendar}",
- "You updated calendar {calendar}" : "Vostede actualizou o calendario {calendar}",
+ "You updated calendar {calendar}" : "Vde. actualizou o calendario {calendar}",
"{actor} restored calendar {calendar}" : "{actor} restaurou o calendario {calendar}",
- "You restored calendar {calendar}" : "Vostede restaurou o calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Vostede compartiu o calendario {calendar} como ligazón pública",
- "You removed public link for calendar {calendar}" : "Vostede retirou a ligazón pública do calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} compartiu o calendario {calendar} con vostede",
- "You shared calendar {calendar} with {user}" : "Vostede compartiu o calendario {calendar} con {user}",
+ "You restored calendar {calendar}" : "Vde. restaurou o calendario {calendar}",
+ "You shared calendar {calendar} as public link" : "Vde. compartiu o calendario {calendar} como ligazón pública",
+ "You removed public link for calendar {calendar}" : "Vde. retirou a ligazón pública do calendario {calendar}",
+ "{actor} shared calendar {calendar} with you" : "{actor} compartiu o calendario {calendar} con Vde.",
+ "You shared calendar {calendar} with {user}" : "Vde. compartiu o calendario {calendar} con {user}",
"{actor} shared calendar {calendar} with {user}" : "{actor} compartiu o calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} deixou de compartir o calendario {calendar} de vostede",
- "You unshared calendar {calendar} from {user}" : "Vostede deixou de compartir o calendario {calendar} de {user}",
+ "{actor} unshared calendar {calendar} from you" : "{actor} deixou de compartir o calendario {calendar} de Vde.",
+ "You unshared calendar {calendar} from {user}" : "Vde. deixou de compartir o calendario {calendar} de {user}",
"{actor} unshared calendar {calendar} from {user}" : "{actor} deixou de compartir o calendario {calendar} de {user}",
"{actor} unshared calendar {calendar} from themselves" : "{actor} deixou de compartir o seu propio calendario {calendar}",
- "You shared calendar {calendar} with group {group}" : "Vostede compartiu o calendario {calendar} co grupo {group}",
+ "You shared calendar {calendar} with group {group}" : "Vde. compartiu o calendario {calendar} co grupo {group}",
"{actor} shared calendar {calendar} with group {group}" : "{actor} compartiu o calendario {calendar} co grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Vostede deixou de compartir o calendario {calendar} do grupo {group}",
+ "You unshared calendar {calendar} from group {group}" : "Vde. deixou de compartir o calendario {calendar} do grupo {group}",
"{actor} unshared calendar {calendar} from group {group}" : "{actor} deixou de compartir o calendario {calendar} do grupo {group}",
"Untitled event" : "Evento sen título",
"{actor} created event {event} in calendar {calendar}" : "{actor} creou o evento {event} no calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Vostede creou o evento {event} no calendario {calendar}",
+ "You created event {event} in calendar {calendar}" : "Vde. creou o evento {event} no calendario {calendar}",
"{actor} deleted event {event} from calendar {calendar}" : "{actor} eliminou o evento {event} do calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Vostede eliminou o evento {event} do calendario {calendar}",
+ "You deleted event {event} from calendar {calendar}" : "Vde. eliminou o evento {event} do calendario {calendar}",
"{actor} updated event {event} in calendar {calendar}" : "{actor} actualizou o evento {event} no calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Vostede actualizou o evento {event} no calendario {calendar}",
+ "You updated event {event} in calendar {calendar}" : "Vde. actualizou o evento {event} no calendario {calendar}",
"{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} moveu o evento {event} do calendario {sourceCalendar} ao calendario {targetCalendar}",
"You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Moveu o evento {evento} do calendario {sourceCalendar} ao calendario {targetCalendar}",
"{actor} restored event {event} of calendar {calendar}" : "{actor} restaurou o evento {evento} do calendario {calendar}",
@@ -95,28 +95,28 @@ OC.L10N.register(
"More options at %s" : "Máis opcións en %s",
"Contacts" : "Contactos",
"{actor} created address book {addressbook}" : "{actor} creou o caderno de enderezos {addressbook}",
- "You created address book {addressbook}" : "Vostede creou o caderno de enderezos {addressbook}",
+ "You created address book {addressbook}" : "Vde. creou o caderno de enderezos {addressbook}",
"{actor} deleted address book {addressbook}" : "{actor} eliminou o caderno de enderezos {addressbook}",
- "You deleted address book {addressbook}" : "Vostede eliminou o caderno de enderezos {addressbook}",
+ "You deleted address book {addressbook}" : "Vde. eliminou o caderno de enderezos {addressbook}",
"{actor} updated address book {addressbook}" : "{actor} actualizou o caderno de enderezos {addressbook}",
- "You updated address book {addressbook}" : "Vostede actualizou o caderno de enderezos {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} compartiu o caderno de enderezos {addressbook} con vostede",
- "You shared address book {addressbook} with {user}" : "Vostede compartiu o caderno de enderezos {addressbook} con {user}",
+ "You updated address book {addressbook}" : "Vde. actualizou o caderno de enderezos {addressbook}",
+ "{actor} shared address book {addressbook} with you" : "{actor} compartiu o caderno de enderezos {addressbook} con Vde.",
+ "You shared address book {addressbook} with {user}" : "Vde. compartiu o caderno de enderezos {addressbook} con {user}",
"{actor} shared address book {addressbook} with {user}" : "{actor} compartiu o caderno de enderezos {addressbook} con {user}",
"{actor} unshared address book {addressbook} from you" : "{actor} deixou de compartir o seu caderno de enderezos {addressbook}",
- "You unshared address book {addressbook} from {user}" : "Vostede deixou de compartir o caderno de enderezos {addressbook} de {user}",
+ "You unshared address book {addressbook} from {user}" : "Vde. deixou de compartir o caderno de enderezos {addressbook} de {user}",
"{actor} unshared address book {addressbook} from {user}" : "{actor} deixou de compartir o caderno de enderezos {addressbook} de {user}",
"{actor} unshared address book {addressbook} from themselves" : "{actor} deixaron de compartir o seu caderno de enderezos {addressbook}",
- "You shared address book {addressbook} with group {group}" : "Vostede compartiu o caderno de enderezos {addressbook} co grupo {group}",
+ "You shared address book {addressbook} with group {group}" : "Vde. compartiu o caderno de enderezos {addressbook} co grupo {group}",
"{actor} shared address book {addressbook} with group {group}" : "{actor} compartiu o caderno de enderezos {addressbook} co grupo {group}",
- "You unshared address book {addressbook} from group {group}" : "Vostede deixou de compartir o caderno de enderezos {addressbook} do grupo {group}",
+ "You unshared address book {addressbook} from group {group}" : "Vde. deixou de compartir o caderno de enderezos {addressbook} do grupo {group}",
"{actor} unshared address book {addressbook} from group {group}" : "{actor} deixou de compartir o caderno de enderezos {addressbook} do grupo {group}",
"{actor} created contact {card} in address book {addressbook}" : "{actor} creou o contacto {card} no caderno de enderezos {addressbook}",
- "You created contact {card} in address book {addressbook}" : "Vostede creou o contacto {card} no caderno de enderezos {addressbook}",
+ "You created contact {card} in address book {addressbook}" : "Vde. creou o contacto {card} no caderno de enderezos {addressbook}",
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} eliminou o contacto {card} do caderno de enderezos {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Vostede eliminou o contacto {card} do caderno de enderezos {addressbook}",
+ "You deleted contact {card} from address book {addressbook}" : "Vde. eliminou o contacto {card} do caderno de enderezos {addressbook}",
"{actor} updated contact {card} in address book {addressbook}" : "{actor} actualizou o contacto {card} no caderno de enderezos {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Vostede actualizou o contacto {card} no caderno de enderezos {addressbook}",
+ "You updated contact {card} in address book {addressbook}" : "Vde. actualizou o contacto {card} no caderno de enderezos {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Foi modificado un <strong>contacto</strong> ou <strong>caderno de enderezos</strong>",
"Accounts" : "Contas",
"System address book which holds all accounts" : "Caderno de enderezos do sistema que contén todas as contas",
@@ -186,11 +186,9 @@ OC.L10N.register(
"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}.",
"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 vostede o convite?",
+ "Are you accepting the invitation?" : "Acepta Vde. o convite?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente.",
- "Invitation canceled" : "Convite cancelado",
- "Invitation updated" : "Convite actualizado",
- "Invitation" : "Convite"
+ "%1$s has responded your invitation" : "%1$s respondeu ao seu convite"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/gl.json b/apps/dav/l10n/gl.json
index 17e88139f67..5d8a5b85f0b 100644
--- a/apps/dav/l10n/gl.json
+++ b/apps/dav/l10n/gl.json
@@ -7,29 +7,29 @@
"{actor} deleted calendar {calendar}" : "{actor} eliminou o calendario {calendar}",
"You deleted calendar {calendar}" : "Eliminou o calendario {calendar}",
"{actor} updated calendar {calendar}" : "{actor} actualizou o calendario {calendar}",
- "You updated calendar {calendar}" : "Vostede actualizou o calendario {calendar}",
+ "You updated calendar {calendar}" : "Vde. actualizou o calendario {calendar}",
"{actor} restored calendar {calendar}" : "{actor} restaurou o calendario {calendar}",
- "You restored calendar {calendar}" : "Vostede restaurou o calendario {calendar}",
- "You shared calendar {calendar} as public link" : "Vostede compartiu o calendario {calendar} como ligazón pública",
- "You removed public link for calendar {calendar}" : "Vostede retirou a ligazón pública do calendario {calendar}",
- "{actor} shared calendar {calendar} with you" : "{actor} compartiu o calendario {calendar} con vostede",
- "You shared calendar {calendar} with {user}" : "Vostede compartiu o calendario {calendar} con {user}",
+ "You restored calendar {calendar}" : "Vde. restaurou o calendario {calendar}",
+ "You shared calendar {calendar} as public link" : "Vde. compartiu o calendario {calendar} como ligazón pública",
+ "You removed public link for calendar {calendar}" : "Vde. retirou a ligazón pública do calendario {calendar}",
+ "{actor} shared calendar {calendar} with you" : "{actor} compartiu o calendario {calendar} con Vde.",
+ "You shared calendar {calendar} with {user}" : "Vde. compartiu o calendario {calendar} con {user}",
"{actor} shared calendar {calendar} with {user}" : "{actor} compartiu o calendario {calendar} con {user}",
- "{actor} unshared calendar {calendar} from you" : "{actor} deixou de compartir o calendario {calendar} de vostede",
- "You unshared calendar {calendar} from {user}" : "Vostede deixou de compartir o calendario {calendar} de {user}",
+ "{actor} unshared calendar {calendar} from you" : "{actor} deixou de compartir o calendario {calendar} de Vde.",
+ "You unshared calendar {calendar} from {user}" : "Vde. deixou de compartir o calendario {calendar} de {user}",
"{actor} unshared calendar {calendar} from {user}" : "{actor} deixou de compartir o calendario {calendar} de {user}",
"{actor} unshared calendar {calendar} from themselves" : "{actor} deixou de compartir o seu propio calendario {calendar}",
- "You shared calendar {calendar} with group {group}" : "Vostede compartiu o calendario {calendar} co grupo {group}",
+ "You shared calendar {calendar} with group {group}" : "Vde. compartiu o calendario {calendar} co grupo {group}",
"{actor} shared calendar {calendar} with group {group}" : "{actor} compartiu o calendario {calendar} co grupo {group}",
- "You unshared calendar {calendar} from group {group}" : "Vostede deixou de compartir o calendario {calendar} do grupo {group}",
+ "You unshared calendar {calendar} from group {group}" : "Vde. deixou de compartir o calendario {calendar} do grupo {group}",
"{actor} unshared calendar {calendar} from group {group}" : "{actor} deixou de compartir o calendario {calendar} do grupo {group}",
"Untitled event" : "Evento sen título",
"{actor} created event {event} in calendar {calendar}" : "{actor} creou o evento {event} no calendario {calendar}",
- "You created event {event} in calendar {calendar}" : "Vostede creou o evento {event} no calendario {calendar}",
+ "You created event {event} in calendar {calendar}" : "Vde. creou o evento {event} no calendario {calendar}",
"{actor} deleted event {event} from calendar {calendar}" : "{actor} eliminou o evento {event} do calendario {calendar}",
- "You deleted event {event} from calendar {calendar}" : "Vostede eliminou o evento {event} do calendario {calendar}",
+ "You deleted event {event} from calendar {calendar}" : "Vde. eliminou o evento {event} do calendario {calendar}",
"{actor} updated event {event} in calendar {calendar}" : "{actor} actualizou o evento {event} no calendario {calendar}",
- "You updated event {event} in calendar {calendar}" : "Vostede actualizou o evento {event} no calendario {calendar}",
+ "You updated event {event} in calendar {calendar}" : "Vde. actualizou o evento {event} no calendario {calendar}",
"{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} moveu o evento {event} do calendario {sourceCalendar} ao calendario {targetCalendar}",
"You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Moveu o evento {evento} do calendario {sourceCalendar} ao calendario {targetCalendar}",
"{actor} restored event {event} of calendar {calendar}" : "{actor} restaurou o evento {evento} do calendario {calendar}",
@@ -93,28 +93,28 @@
"More options at %s" : "Máis opcións en %s",
"Contacts" : "Contactos",
"{actor} created address book {addressbook}" : "{actor} creou o caderno de enderezos {addressbook}",
- "You created address book {addressbook}" : "Vostede creou o caderno de enderezos {addressbook}",
+ "You created address book {addressbook}" : "Vde. creou o caderno de enderezos {addressbook}",
"{actor} deleted address book {addressbook}" : "{actor} eliminou o caderno de enderezos {addressbook}",
- "You deleted address book {addressbook}" : "Vostede eliminou o caderno de enderezos {addressbook}",
+ "You deleted address book {addressbook}" : "Vde. eliminou o caderno de enderezos {addressbook}",
"{actor} updated address book {addressbook}" : "{actor} actualizou o caderno de enderezos {addressbook}",
- "You updated address book {addressbook}" : "Vostede actualizou o caderno de enderezos {addressbook}",
- "{actor} shared address book {addressbook} with you" : "{actor} compartiu o caderno de enderezos {addressbook} con vostede",
- "You shared address book {addressbook} with {user}" : "Vostede compartiu o caderno de enderezos {addressbook} con {user}",
+ "You updated address book {addressbook}" : "Vde. actualizou o caderno de enderezos {addressbook}",
+ "{actor} shared address book {addressbook} with you" : "{actor} compartiu o caderno de enderezos {addressbook} con Vde.",
+ "You shared address book {addressbook} with {user}" : "Vde. compartiu o caderno de enderezos {addressbook} con {user}",
"{actor} shared address book {addressbook} with {user}" : "{actor} compartiu o caderno de enderezos {addressbook} con {user}",
"{actor} unshared address book {addressbook} from you" : "{actor} deixou de compartir o seu caderno de enderezos {addressbook}",
- "You unshared address book {addressbook} from {user}" : "Vostede deixou de compartir o caderno de enderezos {addressbook} de {user}",
+ "You unshared address book {addressbook} from {user}" : "Vde. deixou de compartir o caderno de enderezos {addressbook} de {user}",
"{actor} unshared address book {addressbook} from {user}" : "{actor} deixou de compartir o caderno de enderezos {addressbook} de {user}",
"{actor} unshared address book {addressbook} from themselves" : "{actor} deixaron de compartir o seu caderno de enderezos {addressbook}",
- "You shared address book {addressbook} with group {group}" : "Vostede compartiu o caderno de enderezos {addressbook} co grupo {group}",
+ "You shared address book {addressbook} with group {group}" : "Vde. compartiu o caderno de enderezos {addressbook} co grupo {group}",
"{actor} shared address book {addressbook} with group {group}" : "{actor} compartiu o caderno de enderezos {addressbook} co grupo {group}",
- "You unshared address book {addressbook} from group {group}" : "Vostede deixou de compartir o caderno de enderezos {addressbook} do grupo {group}",
+ "You unshared address book {addressbook} from group {group}" : "Vde. deixou de compartir o caderno de enderezos {addressbook} do grupo {group}",
"{actor} unshared address book {addressbook} from group {group}" : "{actor} deixou de compartir o caderno de enderezos {addressbook} do grupo {group}",
"{actor} created contact {card} in address book {addressbook}" : "{actor} creou o contacto {card} no caderno de enderezos {addressbook}",
- "You created contact {card} in address book {addressbook}" : "Vostede creou o contacto {card} no caderno de enderezos {addressbook}",
+ "You created contact {card} in address book {addressbook}" : "Vde. creou o contacto {card} no caderno de enderezos {addressbook}",
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} eliminou o contacto {card} do caderno de enderezos {addressbook}",
- "You deleted contact {card} from address book {addressbook}" : "Vostede eliminou o contacto {card} do caderno de enderezos {addressbook}",
+ "You deleted contact {card} from address book {addressbook}" : "Vde. eliminou o contacto {card} do caderno de enderezos {addressbook}",
"{actor} updated contact {card} in address book {addressbook}" : "{actor} actualizou o contacto {card} no caderno de enderezos {addressbook}",
- "You updated contact {card} in address book {addressbook}" : "Vostede actualizou o contacto {card} no caderno de enderezos {addressbook}",
+ "You updated contact {card} in address book {addressbook}" : "Vde. actualizou o contacto {card} no caderno de enderezos {addressbook}",
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "Foi modificado un <strong>contacto</strong> ou <strong>caderno de enderezos</strong>",
"Accounts" : "Contas",
"System address book which holds all accounts" : "Caderno de enderezos do sistema que contén todas as contas",
@@ -184,11 +184,9 @@
"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}.",
"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 vostede o convite?",
+ "Are you accepting the invitation?" : "Acepta Vde. o convite?",
"Tentative" : "Provisional",
"Your attendance was updated successfully." : "A súa asistencia foi actualizada satisfactoriamente.",
- "Invitation canceled" : "Convite cancelado",
- "Invitation updated" : "Convite actualizado",
- "Invitation" : "Convite"
+ "%1$s has responded your invitation" : "%1$s respondeu ao seu convite"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/he.js b/apps/dav/l10n/he.js
index 2230c72ddd6..20316f2dc51 100644
--- a/apps/dav/l10n/he.js
+++ b/apps/dav/l10n/he.js
@@ -96,9 +96,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "נא ליצור קשר עם הגוף מארגן ישירות.",
"Are you accepting the invitation?" : "האם להיענות להזמנה?",
"Tentative" : "טנטטיבית",
- "Your attendance was updated successfully." : "ההשתתפות שלך עודכנה בהצלחה.",
- "Invitation canceled" : "ההזמנה בוטלה",
- "Invitation updated" : "ההזמנה עודכנה",
- "Invitation" : "הזמנה"
+ "Your attendance was updated successfully." : "ההשתתפות שלך עודכנה בהצלחה."
},
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;");
diff --git a/apps/dav/l10n/he.json b/apps/dav/l10n/he.json
index ca72f52dcf8..2eebd45a9f5 100644
--- a/apps/dav/l10n/he.json
+++ b/apps/dav/l10n/he.json
@@ -94,9 +94,6 @@
"Please contact the organizer directly." : "נא ליצור קשר עם הגוף מארגן ישירות.",
"Are you accepting the invitation?" : "האם להיענות להזמנה?",
"Tentative" : "טנטטיבית",
- "Your attendance was updated successfully." : "ההשתתפות שלך עודכנה בהצלחה.",
- "Invitation canceled" : "ההזמנה בוטלה",
- "Invitation updated" : "ההזמנה עודכנה",
- "Invitation" : "הזמנה"
+ "Your attendance was updated successfully." : "ההשתתפות שלך עודכנה בהצלחה."
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/hr.js b/apps/dav/l10n/hr.js
index 546f9caefe3..8b0f112e356 100644
--- a/apps/dav/l10n/hr.js
+++ b/apps/dav/l10n/hr.js
@@ -136,9 +136,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Izravno se obratite organizatoru.",
"Are you accepting the invitation?" : "Prihvaćate li poziv?",
"Tentative" : "Uvjetno",
- "Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana.",
- "Invitation canceled" : "Poziv je otkazan",
- "Invitation updated" : "Poziv je ažuriran",
- "Invitation" : "Pozivnica"
+ "Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana."
},
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
diff --git a/apps/dav/l10n/hr.json b/apps/dav/l10n/hr.json
index 15542eb47ef..e7d9dcbd24d 100644
--- a/apps/dav/l10n/hr.json
+++ b/apps/dav/l10n/hr.json
@@ -134,9 +134,6 @@
"Please contact the organizer directly." : "Izravno se obratite organizatoru.",
"Are you accepting the invitation?" : "Prihvaćate li poziv?",
"Tentative" : "Uvjetno",
- "Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana.",
- "Invitation canceled" : "Poziv je otkazan",
- "Invitation updated" : "Poziv je ažuriran",
- "Invitation" : "Pozivnica"
+ "Your attendance was updated successfully." : "Vaša je prisutnost uspješno ažurirana."
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/hu.js b/apps/dav/l10n/hu.js
index 75f7b8b2228..75682a1df19 100644
--- a/apps/dav/l10n/hu.js
+++ b/apps/dav/l10n/hu.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"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.",
- "Invitation canceled" : "Meghívás lemondva",
- "Invitation updated" : "Meghívó frissítve",
- "Invitation" : "Meghívó"
+ "%1$s has responded your invitation" : "%1$s válaszolt a meghívására"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/hu.json b/apps/dav/l10n/hu.json
index 04cf6a4be06..da531dd174c 100644
--- a/apps/dav/l10n/hu.json
+++ b/apps/dav/l10n/hu.json
@@ -187,8 +187,6 @@
"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.",
- "Invitation canceled" : "Meghívás lemondva",
- "Invitation updated" : "Meghívó frissítve",
- "Invitation" : "Meghívó"
+ "%1$s has responded your invitation" : "%1$s válaszolt a meghívására"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/it.js b/apps/dav/l10n/it.js
index 53af46e951d..33ad3917b64 100644
--- a/apps/dav/l10n/it.js
+++ b/apps/dav/l10n/it.js
@@ -160,9 +160,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Contatta direttamente l'amministratore.",
"Are you accepting the invitation?" : "Accetti l'invito?",
"Tentative" : "Provvisorio",
- "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente.",
- "Invitation canceled" : "Invito annullato",
- "Invitation updated" : "Invito aggiornato",
- "Invitation" : "Invito"
+ "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente."
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/it.json b/apps/dav/l10n/it.json
index fcb668d6564..5e142ed766e 100644
--- a/apps/dav/l10n/it.json
+++ b/apps/dav/l10n/it.json
@@ -158,9 +158,6 @@
"Please contact the organizer directly." : "Contatta direttamente l'amministratore.",
"Are you accepting the invitation?" : "Accetti l'invito?",
"Tentative" : "Provvisorio",
- "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente.",
- "Invitation canceled" : "Invito annullato",
- "Invitation updated" : "Invito aggiornato",
- "Invitation" : "Invito"
+ "Your attendance was updated successfully." : "La tua partecipazione è stata aggiornata correttamente."
},"pluralForm" :"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ja.js b/apps/dav/l10n/ja.js
index 6bf4f4a589d..7879795980b 100644
--- a/apps/dav/l10n/ja.js
+++ b/apps/dav/l10n/ja.js
@@ -174,9 +174,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "主催者に直接お問い合わせください。",
"Are you accepting the invitation?" : "招待を受け入れていますか?",
"Tentative" : "暫定的",
- "Your attendance was updated successfully." : "出席は正常に更新されました。",
- "Invitation canceled" : "招待のキャンセル",
- "Invitation updated" : "招待の更新",
- "Invitation" : "招待"
+ "Your attendance was updated successfully." : "出席は正常に更新されました。"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/ja.json b/apps/dav/l10n/ja.json
index ffefc7471ba..243fa54fe35 100644
--- a/apps/dav/l10n/ja.json
+++ b/apps/dav/l10n/ja.json
@@ -172,9 +172,6 @@
"Please contact the organizer directly." : "主催者に直接お問い合わせください。",
"Are you accepting the invitation?" : "招待を受け入れていますか?",
"Tentative" : "暫定的",
- "Your attendance was updated successfully." : "出席は正常に更新されました。",
- "Invitation canceled" : "招待のキャンセル",
- "Invitation updated" : "招待の更新",
- "Invitation" : "招待"
+ "Your attendance was updated successfully." : "出席は正常に更新されました。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ko.js b/apps/dav/l10n/ko.js
index 5f37a04a480..7226b1c1f65 100644
--- a/apps/dav/l10n/ko.js
+++ b/apps/dav/l10n/ko.js
@@ -178,9 +178,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "주최자에게 직접 연락하십시오.",
"Are you accepting the invitation?" : "초대를 수락하시겠습니까?",
"Tentative" : "보류",
- "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다.",
- "Invitation canceled" : "초대장 취소됨",
- "Invitation updated" : "초대장 업데이트됨",
- "Invitation" : "초대"
+ "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다."
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/ko.json b/apps/dav/l10n/ko.json
index 2bf4574188d..f881ad805ba 100644
--- a/apps/dav/l10n/ko.json
+++ b/apps/dav/l10n/ko.json
@@ -176,9 +176,6 @@
"Please contact the organizer directly." : "주최자에게 직접 연락하십시오.",
"Are you accepting the invitation?" : "초대를 수락하시겠습니까?",
"Tentative" : "보류",
- "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다.",
- "Invitation canceled" : "초대장 취소됨",
- "Invitation updated" : "초대장 업데이트됨",
- "Invitation" : "초대"
+ "Your attendance was updated successfully." : "참석 정보를 업데이트했습니다."
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/lt_LT.js b/apps/dav/l10n/lt_LT.js
index 272c77dc91a..62c7b3d6172 100644
--- a/apps/dav/l10n/lt_LT.js
+++ b/apps/dav/l10n/lt_LT.js
@@ -105,9 +105,6 @@ OC.L10N.register(
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Įsitikinkite, kad tinkamai nusistatėte {emailopen}el. pašto serverį{linkclose}.",
"Please contact the organizer directly." : "Prašome susisiekti su organizatoriumi tiesiogiai.",
"Are you accepting the invitation?" : "Ar priimate pakvietimą?",
- "Tentative" : "Preliminarus",
- "Invitation canceled" : "Pakvietimo atsisakyta",
- "Invitation updated" : "Pakvietimas atnaujintas",
- "Invitation" : "Pakvietimas"
+ "Tentative" : "Preliminarus"
},
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/dav/l10n/lt_LT.json b/apps/dav/l10n/lt_LT.json
index c7f58bfe1fc..f4fbf235aa5 100644
--- a/apps/dav/l10n/lt_LT.json
+++ b/apps/dav/l10n/lt_LT.json
@@ -103,9 +103,6 @@
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Įsitikinkite, kad tinkamai nusistatėte {emailopen}el. pašto serverį{linkclose}.",
"Please contact the organizer directly." : "Prašome susisiekti su organizatoriumi tiesiogiai.",
"Are you accepting the invitation?" : "Ar priimate pakvietimą?",
- "Tentative" : "Preliminarus",
- "Invitation canceled" : "Pakvietimo atsisakyta",
- "Invitation updated" : "Pakvietimas atnaujintas",
- "Invitation" : "Pakvietimas"
+ "Tentative" : "Preliminarus"
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/mk.js b/apps/dav/l10n/mk.js
index eff705a4afe..581373b7218 100644
--- a/apps/dav/l10n/mk.js
+++ b/apps/dav/l10n/mk.js
@@ -148,9 +148,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Контактирајте го организаторот директно.",
"Are you accepting the invitation?" : "Дали ја прифаќате поканата?",
"Tentative" : "Прелиминарно",
- "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано.",
- "Invitation canceled" : "Поканата е откажана",
- "Invitation updated" : "Поканата е ажурирана",
- "Invitation" : "Покани"
+ "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано."
},
"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;");
diff --git a/apps/dav/l10n/mk.json b/apps/dav/l10n/mk.json
index f3226f540f1..ac515972e06 100644
--- a/apps/dav/l10n/mk.json
+++ b/apps/dav/l10n/mk.json
@@ -146,9 +146,6 @@
"Please contact the organizer directly." : "Контактирајте го организаторот директно.",
"Are you accepting the invitation?" : "Дали ја прифаќате поканата?",
"Tentative" : "Прелиминарно",
- "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано.",
- "Invitation canceled" : "Поканата е откажана",
- "Invitation updated" : "Поканата е ажурирана",
- "Invitation" : "Покани"
+ "Your attendance was updated successfully." : "Вашето присуство е успешно ажурирано."
},"pluralForm" :"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/nb.js b/apps/dav/l10n/nb.js
index fc7a25373b3..794a9fad7f1 100644
--- a/apps/dav/l10n/nb.js
+++ b/apps/dav/l10n/nb.js
@@ -181,9 +181,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Ta kontakt med arrangøren direkte.",
"Are you accepting the invitation?" : "Aksepterer du invitasjonen?",
"Tentative" : "Foreløpig",
- "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert.",
- "Invitation canceled" : "Invitasjon tilbakekalt",
- "Invitation updated" : "Invitasjon oppdatert",
- "Invitation" : "Invitasjon"
+ "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/nb.json b/apps/dav/l10n/nb.json
index 7ce5863c3e5..ea94625a9ba 100644
--- a/apps/dav/l10n/nb.json
+++ b/apps/dav/l10n/nb.json
@@ -179,9 +179,6 @@
"Please contact the organizer directly." : "Ta kontakt med arrangøren direkte.",
"Are you accepting the invitation?" : "Aksepterer du invitasjonen?",
"Tentative" : "Foreløpig",
- "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert.",
- "Invitation canceled" : "Invitasjon tilbakekalt",
- "Invitation updated" : "Invitasjon oppdatert",
- "Invitation" : "Invitasjon"
+ "Your attendance was updated successfully." : "Deltakelsen din ble oppdatert."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/nl.js b/apps/dav/l10n/nl.js
index 9446a2c3b25..b4d0e15cc2c 100644
--- a/apps/dav/l10n/nl.js
+++ b/apps/dav/l10n/nl.js
@@ -161,9 +161,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Neem rechtstreeks contact op met de organisator.",
"Are you accepting the invitation?" : "Neem je de uitnodiging aan?",
"Tentative" : "Onder voorbehoud",
- "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt.",
- "Invitation canceled" : "Uitnodiging geannuleerd",
- "Invitation updated" : "Uitnodiging bijgewerkt",
- "Invitation" : "Uitnodiging"
+ "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/nl.json b/apps/dav/l10n/nl.json
index 79e976ec035..82154ac936c 100644
--- a/apps/dav/l10n/nl.json
+++ b/apps/dav/l10n/nl.json
@@ -159,9 +159,6 @@
"Please contact the organizer directly." : "Neem rechtstreeks contact op met de organisator.",
"Are you accepting the invitation?" : "Neem je de uitnodiging aan?",
"Tentative" : "Onder voorbehoud",
- "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt.",
- "Invitation canceled" : "Uitnodiging geannuleerd",
- "Invitation updated" : "Uitnodiging bijgewerkt",
- "Invitation" : "Uitnodiging"
+ "Your attendance was updated successfully." : "Je deelname is succesvol bijgewerkt."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js
index 9950be66fe2..78c3eeba525 100644
--- a/apps/dav/l10n/pl.js
+++ b/apps/dav/l10n/pl.js
@@ -188,9 +188,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Skontaktuj się bezpośrednio z orgnizatorem.",
"Are you accepting the invitation?" : "Czy akceptujesz zaproszenie?",
"Tentative" : "Niepewne",
- "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana.",
- "Invitation canceled" : "Zaproszenie anulowane",
- "Invitation updated" : "Zaproszenie zaktualizowane",
- "Invitation" : "Zaproszenie"
+ "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana."
},
"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);");
diff --git a/apps/dav/l10n/pl.json b/apps/dav/l10n/pl.json
index 143e51e637b..04e05e5476f 100644
--- a/apps/dav/l10n/pl.json
+++ b/apps/dav/l10n/pl.json
@@ -186,9 +186,6 @@
"Please contact the organizer directly." : "Skontaktuj się bezpośrednio z orgnizatorem.",
"Are you accepting the invitation?" : "Czy akceptujesz zaproszenie?",
"Tentative" : "Niepewne",
- "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana.",
- "Invitation canceled" : "Zaproszenie anulowane",
- "Invitation updated" : "Zaproszenie zaktualizowane",
- "Invitation" : "Zaproszenie"
+ "Your attendance was updated successfully." : "Twoja obecność została pomyślnie zaktualizowana."
},"pluralForm" :"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/pt_BR.js b/apps/dav/l10n/pt_BR.js
index 18d7ec938f7..2ec0c3c5447 100644
--- a/apps/dav/l10n/pt_BR.js
+++ b/apps/dav/l10n/pt_BR.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Você está aceitando o convite?",
"Tentative" : "Tentativa",
"Your attendance was updated successfully." : "Sua presença foi atualizada com sucesso.",
- "Invitation canceled" : "Convite cancelado",
- "Invitation updated" : "Convite atualizado",
- "Invitation" : "Convite"
+ "%1$s has responded your invitation" : "%1$s respondeu ao seu convite"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
diff --git a/apps/dav/l10n/pt_BR.json b/apps/dav/l10n/pt_BR.json
index c50bda3ac06..4920486658f 100644
--- a/apps/dav/l10n/pt_BR.json
+++ b/apps/dav/l10n/pt_BR.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Você está aceitando o convite?",
"Tentative" : "Tentativa",
"Your attendance was updated successfully." : "Sua presença foi atualizada com sucesso.",
- "Invitation canceled" : "Convite cancelado",
- "Invitation updated" : "Convite atualizado",
- "Invitation" : "Convite"
+ "%1$s has responded your invitation" : "%1$s respondeu ao seu convite"
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/ru.js b/apps/dav/l10n/ru.js
index b332bb196ab..94b54cc2f35 100644
--- a/apps/dav/l10n/ru.js
+++ b/apps/dav/l10n/ru.js
@@ -188,9 +188,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Обратитесь к организатору напрямую.",
"Are you accepting the invitation?" : "Принять приглашение?",
"Tentative" : "Под вопросом",
- "Your attendance was updated successfully." : "Статус участия обновлён.",
- "Invitation canceled" : "Приглашение отменено",
- "Invitation updated" : "Приглашение обновлено",
- "Invitation" : "Приглашение"
+ "Your attendance was updated successfully." : "Статус участия обновлён."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/dav/l10n/ru.json b/apps/dav/l10n/ru.json
index 100c7d71722..fa1bea7e7f6 100644
--- a/apps/dav/l10n/ru.json
+++ b/apps/dav/l10n/ru.json
@@ -186,9 +186,6 @@
"Please contact the organizer directly." : "Обратитесь к организатору напрямую.",
"Are you accepting the invitation?" : "Принять приглашение?",
"Tentative" : "Под вопросом",
- "Your attendance was updated successfully." : "Статус участия обновлён.",
- "Invitation canceled" : "Приглашение отменено",
- "Invitation updated" : "Приглашение обновлено",
- "Invitation" : "Приглашение"
+ "Your attendance was updated successfully." : "Статус участия обновлён."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/sc.js b/apps/dav/l10n/sc.js
index 8ba1d929c8a..6f3fa9d5538 100644
--- a/apps/dav/l10n/sc.js
+++ b/apps/dav/l10n/sc.js
@@ -130,9 +130,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Pro praghere, cuntata deretu a s'organizadore.",
"Are you accepting the invitation?" : "Cheres atzetare s'invitu?",
"Tentative" : "Intentu",
- "Your attendance was updated successfully." : "Sa partetzipatzione tua est istada agiornada in manera curreta.",
- "Invitation canceled" : "Invitu annulladu",
- "Invitation updated" : "Invitu agiornadu",
- "Invitation" : "Invitu"
+ "Your attendance was updated successfully." : "Sa partetzipatzione tua est istada agiornada in manera curreta."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/sc.json b/apps/dav/l10n/sc.json
index 34de19d50a2..d6e6ffb484f 100644
--- a/apps/dav/l10n/sc.json
+++ b/apps/dav/l10n/sc.json
@@ -128,9 +128,6 @@
"Please contact the organizer directly." : "Pro praghere, cuntata deretu a s'organizadore.",
"Are you accepting the invitation?" : "Cheres atzetare s'invitu?",
"Tentative" : "Intentu",
- "Your attendance was updated successfully." : "Sa partetzipatzione tua est istada agiornada in manera curreta.",
- "Invitation canceled" : "Invitu annulladu",
- "Invitation updated" : "Invitu agiornadu",
- "Invitation" : "Invitu"
+ "Your attendance was updated successfully." : "Sa partetzipatzione tua est istada agiornada in manera curreta."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/sk.js b/apps/dav/l10n/sk.js
index ae82c649488..0f136cbef29 100644
--- a/apps/dav/l10n/sk.js
+++ b/apps/dav/l10n/sk.js
@@ -178,9 +178,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Prosím kontaktujte priamo organizátora.",
"Are you accepting the invitation?" : "Príjmate pozvánku?",
"Tentative" : "Neistý",
- "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne.",
- "Invitation canceled" : "Pozvánka bola zrušená",
- "Invitation updated" : "Pozvánka bola aktualizovaná",
- "Invitation" : "Pozvánka"
+ "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne."
},
"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);");
diff --git a/apps/dav/l10n/sk.json b/apps/dav/l10n/sk.json
index 6277d04de1b..c4d1c51bf40 100644
--- a/apps/dav/l10n/sk.json
+++ b/apps/dav/l10n/sk.json
@@ -176,9 +176,6 @@
"Please contact the organizer directly." : "Prosím kontaktujte priamo organizátora.",
"Are you accepting the invitation?" : "Príjmate pozvánku?",
"Tentative" : "Neistý",
- "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne.",
- "Invitation canceled" : "Pozvánka bola zrušená",
- "Invitation updated" : "Pozvánka bola aktualizovaná",
- "Invitation" : "Pozvánka"
+ "Your attendance was updated successfully." : "Vaša účasť bola aktualizovaná úspešne."
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/sl.js b/apps/dav/l10n/sl.js
index 9737702baff..dbbbf6970de 100644
--- a/apps/dav/l10n/sl.js
+++ b/apps/dav/l10n/sl.js
@@ -159,9 +159,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "Z organizatorjem stopite neposredno v stik.",
"Are you accepting the invitation?" : "Ali želite sprejeti povabilo?",
"Tentative" : "Začasno",
- "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena.",
- "Invitation canceled" : "Povabilo je preklicano",
- "Invitation updated" : "Povabilo je posodobljeno",
- "Invitation" : "Povabilo"
+ "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena."
},
"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);");
diff --git a/apps/dav/l10n/sl.json b/apps/dav/l10n/sl.json
index 0a40e8cc946..10e7495a0da 100644
--- a/apps/dav/l10n/sl.json
+++ b/apps/dav/l10n/sl.json
@@ -157,9 +157,6 @@
"Please contact the organizer directly." : "Z organizatorjem stopite neposredno v stik.",
"Are you accepting the invitation?" : "Ali želite sprejeti povabilo?",
"Tentative" : "Začasno",
- "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena.",
- "Invitation canceled" : "Povabilo je preklicano",
- "Invitation updated" : "Povabilo je posodobljeno",
- "Invitation" : "Povabilo"
+ "Your attendance was updated successfully." : "Vaša prisotnost je uspešno posodobljena."
},"pluralForm" :"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/sr.js b/apps/dav/l10n/sr.js
index 5ab046d4472..9852dcbcfad 100644
--- a/apps/dav/l10n/sr.js
+++ b/apps/dav/l10n/sr.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Да ли прихватате позивницу?",
"Tentative" : "Условна потврда",
"Your attendance was updated successfully." : "Ваше присуство је успешно ажурирано.",
- "Invitation canceled" : "Позивница отказана",
- "Invitation updated" : "Позивница ажурирана",
- "Invitation" : "Позивница"
+ "%1$s has responded your invitation" : "%1$s је одговорио на вашу позивницу"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/dav/l10n/sr.json b/apps/dav/l10n/sr.json
index 56f11038178..d8c610bb758 100644
--- a/apps/dav/l10n/sr.json
+++ b/apps/dav/l10n/sr.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Да ли прихватате позивницу?",
"Tentative" : "Условна потврда",
"Your attendance was updated successfully." : "Ваше присуство је успешно ажурирано.",
- "Invitation canceled" : "Позивница отказана",
- "Invitation updated" : "Позивница ажурирана",
- "Invitation" : "Позивница"
+ "%1$s has responded your invitation" : "%1$s је одговорио на вашу позивницу"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/sv.js b/apps/dav/l10n/sv.js
index 99d447bf2bc..436088df3f4 100644
--- a/apps/dav/l10n/sv.js
+++ b/apps/dav/l10n/sv.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Acceptera inbjudan?",
"Tentative" : "Preliminärt",
"Your attendance was updated successfully." : "Dina närvaro uppdaterades.",
- "Invitation canceled" : "Inbjudan avbruten",
- "Invitation updated" : "Inbjudan uppdaterad",
- "Invitation" : "Inbjudan"
+ "%1$s has responded your invitation" : "%1$s har svarat på din inbjudan"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json
index e88ca594c49..906c8e4e23f 100644
--- a/apps/dav/l10n/sv.json
+++ b/apps/dav/l10n/sv.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Acceptera inbjudan?",
"Tentative" : "Preliminärt",
"Your attendance was updated successfully." : "Dina närvaro uppdaterades.",
- "Invitation canceled" : "Inbjudan avbruten",
- "Invitation updated" : "Inbjudan uppdaterad",
- "Invitation" : "Inbjudan"
+ "%1$s has responded your invitation" : "%1$s har svarat på din inbjudan"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js
index b4bff61f1e5..27f60721b07 100644
--- a/apps/dav/l10n/tr.js
+++ b/apps/dav/l10n/tr.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Çağrıyı kabul ediyor musunuz?",
"Tentative" : "Kesin değil",
"Your attendance was updated successfully." : "Katılımınız güncellendi.",
- "Invitation canceled" : "Çağrı iptal edildi",
- "Invitation updated" : "Çağrı güncellendi",
- "Invitation" : "Çağrı"
+ "%1$s has responded your invitation" : "%1$s çağrınızı yanıtladı"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json
index 5fbf8130311..bc9356247b1 100644
--- a/apps/dav/l10n/tr.json
+++ b/apps/dav/l10n/tr.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Çağrıyı kabul ediyor musunuz?",
"Tentative" : "Kesin değil",
"Your attendance was updated successfully." : "Katılımınız güncellendi.",
- "Invitation canceled" : "Çağrı iptal edildi",
- "Invitation updated" : "Çağrı güncellendi",
- "Invitation" : "Çağrı"
+ "%1$s has responded your invitation" : "%1$s çağrınızı yanıtladı"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/uk.js b/apps/dav/l10n/uk.js
index f8061a73011..e241b9d148a 100644
--- a/apps/dav/l10n/uk.js
+++ b/apps/dav/l10n/uk.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "Чи приймаєте ви запрошення?",
"Tentative" : "Попередній",
"Your attendance was updated successfully." : "Ваша участь успішно оновлена.",
- "Invitation canceled" : "Запрошення скасоване",
- "Invitation updated" : "Запрошення оновлене",
- "Invitation" : "Запрошення"
+ "%1$s has responded your invitation" : "%1$s відповів на ваше запрошення"
},
"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);");
diff --git a/apps/dav/l10n/uk.json b/apps/dav/l10n/uk.json
index 15e4d8d4d94..62332fd9f87 100644
--- a/apps/dav/l10n/uk.json
+++ b/apps/dav/l10n/uk.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "Чи приймаєте ви запрошення?",
"Tentative" : "Попередній",
"Your attendance was updated successfully." : "Ваша участь успішно оновлена.",
- "Invitation canceled" : "Запрошення скасоване",
- "Invitation updated" : "Запрошення оновлене",
- "Invitation" : "Запрошення"
+ "%1$s has responded your invitation" : "%1$s відповів на ваше запрошення"
},"pluralForm" :"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);"
} \ No newline at end of file
diff --git a/apps/dav/l10n/zh_CN.js b/apps/dav/l10n/zh_CN.js
index f3c009b0cb0..a77f10c6765 100644
--- a/apps/dav/l10n/zh_CN.js
+++ b/apps/dav/l10n/zh_CN.js
@@ -188,9 +188,6 @@ OC.L10N.register(
"Please contact the organizer directly." : "请直接联系组织者。",
"Are you accepting the invitation?" : "您是否接受邀请?",
"Tentative" : "暂定",
- "Your attendance was updated successfully." : "您的出席状态更新成功。",
- "Invitation canceled" : "邀请已取消",
- "Invitation updated" : "邀请已更新",
- "Invitation" : "邀请"
+ "Your attendance was updated successfully." : "您的出席状态更新成功。"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/zh_CN.json b/apps/dav/l10n/zh_CN.json
index 051a53ef8df..29aafac866b 100644
--- a/apps/dav/l10n/zh_CN.json
+++ b/apps/dav/l10n/zh_CN.json
@@ -186,9 +186,6 @@
"Please contact the organizer directly." : "请直接联系组织者。",
"Are you accepting the invitation?" : "您是否接受邀请?",
"Tentative" : "暂定",
- "Your attendance was updated successfully." : "您的出席状态更新成功。",
- "Invitation canceled" : "邀请已取消",
- "Invitation updated" : "邀请已更新",
- "Invitation" : "邀请"
+ "Your attendance was updated successfully." : "您的出席状态更新成功。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/zh_HK.js b/apps/dav/l10n/zh_HK.js
index fb1879188a3..cd6f3451dfb 100644
--- a/apps/dav/l10n/zh_HK.js
+++ b/apps/dav/l10n/zh_HK.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "接受邀請嗎?",
"Tentative" : "暫定",
"Your attendance was updated successfully." : "您的參與狀況成功更新",
- "Invitation canceled" : "邀請被取消了",
- "Invitation updated" : "邀請已更新",
- "Invitation" : "邀請"
+ "%1$s has responded your invitation" : "%1$s 已回應您的邀請"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/zh_HK.json b/apps/dav/l10n/zh_HK.json
index c2b530d570f..c58826e8179 100644
--- a/apps/dav/l10n/zh_HK.json
+++ b/apps/dav/l10n/zh_HK.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "接受邀請嗎?",
"Tentative" : "暫定",
"Your attendance was updated successfully." : "您的參與狀況成功更新",
- "Invitation canceled" : "邀請被取消了",
- "Invitation updated" : "邀請已更新",
- "Invitation" : "邀請"
+ "%1$s has responded your invitation" : "%1$s 已回應您的邀請"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/l10n/zh_TW.js b/apps/dav/l10n/zh_TW.js
index 0ec4b39ae12..afde10a2037 100644
--- a/apps/dav/l10n/zh_TW.js
+++ b/apps/dav/l10n/zh_TW.js
@@ -189,8 +189,6 @@ OC.L10N.register(
"Are you accepting the invitation?" : "您接受邀請嗎?",
"Tentative" : "暫定",
"Your attendance was updated successfully." : "您的參與狀態成功更新。",
- "Invitation canceled" : "邀請已取消",
- "Invitation updated" : "邀請已更新",
- "Invitation" : "邀請"
+ "%1$s has responded your invitation" : "%1$s 已回應您的邀請"
},
"nplurals=1; plural=0;");
diff --git a/apps/dav/l10n/zh_TW.json b/apps/dav/l10n/zh_TW.json
index 93425ec0956..5cb6e5a4c85 100644
--- a/apps/dav/l10n/zh_TW.json
+++ b/apps/dav/l10n/zh_TW.json
@@ -187,8 +187,6 @@
"Are you accepting the invitation?" : "您接受邀請嗎?",
"Tentative" : "暫定",
"Your attendance was updated successfully." : "您的參與狀態成功更新。",
- "Invitation canceled" : "邀請已取消",
- "Invitation updated" : "邀請已更新",
- "Invitation" : "邀請"
+ "%1$s has responded your invitation" : "%1$s 已回應您的邀請"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php
index 10e1130f907..4ed68e68840 100644
--- a/apps/dav/lib/AppInfo/Application.php
+++ b/apps/dav/lib/AppInfo/Application.php
@@ -32,8 +32,6 @@ declare(strict_types=1);
*/
namespace OCA\DAV\AppInfo;
-use Exception;
-use OCA\DAV\BackgroundJob\UpdateCalendarResourcesRoomsBackgroundJob;
use OCA\DAV\CalDAV\Activity\Backend;
use OCA\DAV\CalDAV\AppCalendar\AppCalendarPlugin;
use OCA\DAV\CalDAV\CalendarManager;
@@ -71,6 +69,7 @@ use OCA\DAV\Events\CardDeletedEvent;
use OCA\DAV\Events\CardUpdatedEvent;
use OCA\DAV\Events\SubscriptionCreatedEvent;
use OCA\DAV\Events\SubscriptionDeletedEvent;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\Events\TrustedServerRemovedEvent;
use OCA\DAV\HookManager;
use OCA\DAV\Listener\ActivityUpdaterListener;
@@ -105,7 +104,6 @@ use OCP\IServerContainer;
use OCP\IUser;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
use Throwable;
use function is_null;
@@ -215,9 +213,8 @@ class Application extends App implements IBootstrap {
}
public function registerHooks(HookManager $hm,
- EventDispatcherInterface $dispatcher,
- IAppContainer $container,
- IServerContainer $serverContainer) {
+ IEventDispatcher $dispatcher,
+ IAppContainer $container) {
$hm->setup();
// first time login event setup
@@ -227,40 +224,28 @@ class Application extends App implements IBootstrap {
}
});
- $dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($container) {
- $user = $event->getSubject();
- /** @var SyncService $syncService */
- $syncService = $container->query(SyncService::class);
- $syncService->updateUser($user);
+ $dispatcher->addListener('OC\AccountManager::userUpdated', function ($event) use ($container) {
+ if ($event instanceof GenericEvent) {
+ $user = $event->getSubject();
+ /** @var SyncService $syncService */
+ $syncService = $container->query(SyncService::class);
+ $syncService->updateUser($user);
+ }
});
- $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::updateShares', function (GenericEvent $event) use ($container) {
+ $dispatcher->addListener(CalendarShareUpdatedEvent::class, function (CalendarShareUpdatedEvent $event) use ($container) {
/** @var Backend $backend */
$backend = $container->query(Backend::class);
$backend->onCalendarUpdateShares(
- $event->getArgument('calendarData'),
- $event->getArgument('shares'),
- $event->getArgument('add'),
- $event->getArgument('remove')
+ $event->getCalendarData(),
+ $event->getOldShares(),
+ $event->getAdded(),
+ $event->getRemoved()
);
// Here we should recalculate if reminders should be sent to new or old sharees
});
-
- $eventHandler = function () use ($container, $serverContainer): void {
- try {
- /** @var UpdateCalendarResourcesRoomsBackgroundJob $job */
- $job = $container->query(UpdateCalendarResourcesRoomsBackgroundJob::class);
- $job->run([]);
- $serverContainer->getJobList()->setLastRun($job);
- } catch (Exception $ex) {
- $serverContainer->get(LoggerInterface::class)->error($ex->getMessage(), ['exception' => $ex]);
- }
- };
-
- $dispatcher->addListener('\OCP\Calendar\Resource\ForceRefreshEvent', $eventHandler);
- $dispatcher->addListener('\OCP\Calendar\Room\ForceRefreshEvent', $eventHandler);
}
public function registerContactsManager(IContactsManager $cm, IAppContainer $container): void {
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index c57d3a2764f..a948c54ad58 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -2841,7 +2841,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$calendarId = $shareable->getResourceId();
$calendarRow = $this->getCalendarById($calendarId);
if ($calendarRow === null) {
- throw new \RuntimeException('Trying to update shares for innexistant calendar: ' . $calendarId);
+ throw new \RuntimeException('Trying to update shares for non-existing calendar: ' . $calendarId);
}
$oldShares = $this->getShares($calendarId);
@@ -3139,7 +3139,9 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
$query->select($query->func()->max('id'))
->from('calendarchanges');
- $maxId = $query->executeQuery()->fetchOne();
+ $result = $query->executeQuery();
+ $maxId = (int) $result->fetchOne();
+ $result->closeCursor();
if (!$maxId || $maxId < $keep) {
return 0;
}
diff --git a/apps/dav/lib/Capabilities.php b/apps/dav/lib/Capabilities.php
index b8096d3395a..f61fb5d2f0a 100644
--- a/apps/dav/lib/Capabilities.php
+++ b/apps/dav/lib/Capabilities.php
@@ -5,6 +5,7 @@
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Louis Chemineau <louis@chmn.me>
* @author Côme Chilliet <come.chilliet@nextcloud.com>
+ * @author Kate Döen <kate.doeen@nextcloud.com>
*
* @license AGPL-3.0
*
@@ -33,6 +34,9 @@ class Capabilities implements ICapability {
$this->config = $config;
}
+ /**
+ * @return array{dav: array{chunking: string, bulkupload?: string}}
+ */
public function getCapabilities() {
$capabilities = [
'dav' => [
diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php
index 1be1ce3f18f..045ad4d1385 100644
--- a/apps/dav/lib/CardDAV/CardDavBackend.php
+++ b/apps/dav/lib/CardDAV/CardDavBackend.php
@@ -1404,7 +1404,9 @@ class CardDavBackend implements BackendInterface, SyncSupport {
$query->select($query->func()->max('id'))
->from('addressbookchanges');
- $maxId = $query->executeQuery()->fetchOne();
+ $result = $query->executeQuery();
+ $maxId = (int) $result->fetchOne();
+ $result->closeCursor();
if (!$maxId || $maxId < $keep) {
return 0;
}
diff --git a/apps/dav/lib/CardDAV/UserAddressBooks.php b/apps/dav/lib/CardDAV/UserAddressBooks.php
index 938575bd1a7..d42af7790f8 100644
--- a/apps/dav/lib/CardDAV/UserAddressBooks.php
+++ b/apps/dav/lib/CardDAV/UserAddressBooks.php
@@ -107,7 +107,7 @@ class UserAddressBooks extends \Sabre\CardDAV\AddressBookHome {
try {
$trustedServers = \OC::$server->get(TrustedServers::class);
$request = \OC::$server->get(IRequest::class);
- } catch (NotFoundExceptionInterface | ContainerExceptionInterface $e) {
+ } catch (QueryException | NotFoundExceptionInterface | ContainerExceptionInterface $e) {
// nothing to do, the request / trusted servers don't exist
}
if ($addressBook['principaluri'] === 'principals/system/system') {
diff --git a/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php b/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php
index 257068b9576..5d3f7104d6a 100644
--- a/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php
@@ -26,6 +26,7 @@
namespace OCA\DAV\Connector\Sabre;
use OCP\IConfig;
+use OCP\IRequest;
use Sabre\DAV\ServerPlugin;
use Sabre\HTTP\RequestInterface;
use Sabre\DAV\Server;
@@ -65,10 +66,7 @@ class BlockLegacyClientPlugin extends ServerPlugin {
}
$minimumSupportedDesktopVersion = $this->config->getSystemValue('minimum.supported.desktop.version', '2.3.0');
-
- // Match on the mirall version which is in scheme "Mozilla/5.0 (%1) mirall/%2" or
- // "mirall/%1" for older releases
- preg_match("/(?:mirall\\/)([\d.]+)/i", $userAgent, $versionMatches);
+ preg_match(IRequest::USER_AGENT_CLIENT_DESKTOP, $userAgent, $versionMatches);
if (isset($versionMatches[1]) &&
version_compare($versionMatches[1], $minimumSupportedDesktopVersion) === -1) {
throw new \Sabre\DAV\Exception\Forbidden('Unsupported client version.');
diff --git a/apps/dav/lib/Connector/Sabre/ServerFactory.php b/apps/dav/lib/Connector/Sabre/ServerFactory.php
index 4c57f3412e3..d0cc8aab5d0 100644
--- a/apps/dav/lib/Connector/Sabre/ServerFactory.php
+++ b/apps/dav/lib/Connector/Sabre/ServerFactory.php
@@ -31,6 +31,7 @@
*/
namespace OCA\DAV\Connector\Sabre;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\Files\Folder;
use OCA\DAV\AppInfo\PluginManager;
use OCA\DAV\DAV\ViewOnlyPlugin;
@@ -46,7 +47,6 @@ use OCP\IUserSession;
use OCP\SabrePluginEvent;
use Psr\Log\LoggerInterface;
use Sabre\DAV\Auth\Plugin;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class ServerFactory {
private IConfig $config;
@@ -57,7 +57,7 @@ class ServerFactory {
private ITagManager $tagManager;
private IRequest $request;
private IPreview $previewManager;
- private EventDispatcherInterface $eventDispatcher;
+ private IEventDispatcher $eventDispatcher;
private IL10N $l10n;
public function __construct(
@@ -69,7 +69,7 @@ class ServerFactory {
ITagManager $tagManager,
IRequest $request,
IPreview $previewManager,
- EventDispatcherInterface $eventDispatcher,
+ IEventDispatcher $eventDispatcher,
IL10N $l10n
) {
$this->config = $config;
@@ -199,7 +199,7 @@ class ServerFactory {
// Load dav plugins from apps
$event = new SabrePluginEvent($server);
- $this->eventDispatcher->dispatch($event);
+ $this->eventDispatcher->dispatchTyped($event);
$pluginManager = new PluginManager(
\OC::$server,
\OC::$server->getAppManager()
diff --git a/apps/dav/lib/Controller/DirectController.php b/apps/dav/lib/Controller/DirectController.php
index f9c83488935..1a7b3b57626 100644
--- a/apps/dav/lib/Controller/DirectController.php
+++ b/apps/dav/lib/Controller/DirectController.php
@@ -7,6 +7,7 @@ declare(strict_types=1);
*
* @author Iscle <albertiscle9@gmail.com>
* @author Roeland Jago Douma <roeland@famdouma.nl>
+ * @author Kate Döen <kate.doeen@nextcloud.com>
*
* @license GNU AGPL version 3 or any later version
*
@@ -28,6 +29,7 @@ namespace OCA\DAV\Controller;
use OCA\DAV\Db\Direct;
use OCA\DAV\Db\DirectMapper;
+use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSNotFoundException;
@@ -88,6 +90,17 @@ class DirectController extends OCSController {
/**
* @NoAdminRequired
+ *
+ * Get a direct link to a file
+ *
+ * @param int $fileId ID of the file
+ * @param int $expirationTime Duration until the link expires
+ * @return DataResponse<Http::STATUS_OK, array{url: string}, array{}>
+ * @throws OCSNotFoundException File not found
+ * @throws OCSBadRequestException Getting direct link is not possible
+ * @throws OCSForbiddenException Missing permissions to get direct link
+ *
+ * 200: Direct link returned
*/
public function getUrl(int $fileId, int $expirationTime = 60 * 60 * 8): DataResponse {
$userFolder = $this->rootFolder->getUserFolder($this->userId);
diff --git a/apps/dav/lib/Controller/InvitationResponseController.php b/apps/dav/lib/Controller/InvitationResponseController.php
index a3607949874..3cf2e658621 100644
--- a/apps/dav/lib/Controller/InvitationResponseController.php
+++ b/apps/dav/lib/Controller/InvitationResponseController.php
@@ -8,6 +8,7 @@ declare(strict_types=1);
* @author Christoph Wurst <christoph@winzerhof-wurst.at>
* @author Georg Ehrke <oc.list@georgehrke.com>
* @author Joas Schilling <coding@schilljs.com>
+ * @author Kate Döen <kate.doeen@nextcloud.com>
*
* @license GNU AGPL version 3 or any later version
*
@@ -29,6 +30,7 @@ namespace OCA\DAV\Controller;
use OCA\DAV\CalDAV\InvitationResponse\InvitationResponseServer;
use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\Attribute\IgnoreOpenAPI;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\IDBConnection;
@@ -36,6 +38,7 @@ use OCP\IRequest;
use Sabre\VObject\ITip\Message;
use Sabre\VObject\Reader;
+#[IgnoreOpenAPI]
class InvitationResponseController extends Controller {
/** @var IDBConnection */
diff --git a/apps/dav/lib/DAV/CustomPropertiesBackend.php b/apps/dav/lib/DAV/CustomPropertiesBackend.php
index 9de06334611..989d049fbd1 100644
--- a/apps/dav/lib/DAV/CustomPropertiesBackend.php
+++ b/apps/dav/lib/DAV/CustomPropertiesBackend.php
@@ -22,9 +22,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
*/
+
namespace OCA\DAV\DAV;
use Exception;
+use OCA\DAV\Connector\Sabre\Directory;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IUser;
@@ -134,7 +136,8 @@ class CustomPropertiesBackend implements BackendInterface {
public function __construct(
Tree $tree,
IDBConnection $connection,
- IUser $user) {
+ IUser $user
+ ) {
$this->tree = $tree;
$this->connection = $connection;
$this->user = $user;
@@ -195,6 +198,11 @@ class CustomPropertiesBackend implements BackendInterface {
return;
}
+ $node = $this->tree->getNodeForPath($path);
+ if ($node instanceof Directory && $propFind->getDepth() !== 0) {
+ $this->cacheDirectory($path, $node);
+ }
+
// First fetch the published properties (set by another user), then get the ones set by
// the current user. If both are set then the latter as priority.
foreach ($this->getPublishedProperties($path, $requestedProps) as $propName => $propValue) {
@@ -278,6 +286,38 @@ class CustomPropertiesBackend implements BackendInterface {
}
/**
+ * prefetch all user properties in a directory
+ */
+ private function cacheDirectory(string $path, Directory $node): void {
+ $prefix = ltrim($path . '/', '/');
+ $query = $this->connection->getQueryBuilder();
+ $query->select('name', 'propertypath', 'propertyname', 'propertyvalue', 'valuetype')
+ ->from('filecache', 'f')
+ ->leftJoin('f', 'properties', 'p', $query->expr()->andX(
+ $query->expr()->eq('propertypath', $query->func()->concat(
+ $query->createNamedParameter($prefix),
+ 'name'
+ )),
+ $query->expr()->eq('userid', $query->createNamedParameter($this->user->getUID()))
+ ))
+ ->where($query->expr()->eq('parent', $query->createNamedParameter($node->getInternalFileId(), IQueryBuilder::PARAM_INT)));
+ $result = $query->executeQuery();
+
+ $propsByPath = [];
+
+ while ($row = $result->fetch()) {
+ $childPath = $prefix . $row['name'];
+ if (!isset($propsByPath[$childPath])) {
+ $propsByPath[$childPath] = [];
+ }
+ if (isset($row['propertyname'])) {
+ $propsByPath[$childPath][$row['propertyname']] = $this->decodeValueFromDatabase($row['propertyvalue'], $row['valuetype']);
+ }
+ }
+ $this->userCache = array_merge($this->userCache, $propsByPath);
+ }
+
+ /**
* Returns a list of properties for the given path and current user
*
* @param string $path
@@ -336,7 +376,7 @@ class CustomPropertiesBackend implements BackendInterface {
$dbParameters = [
'userid' => $this->user->getUID(),
'propertyPath' => $this->formatPath($path),
- 'propertyName' => $propertyName
+ 'propertyName' => $propertyName,
];
// If it was null, we need to delete the property
diff --git a/apps/dav/lib/Events/SabrePluginAddEvent.php b/apps/dav/lib/Events/SabrePluginAddEvent.php
new file mode 100644
index 00000000000..3bff756e2a1
--- /dev/null
+++ b/apps/dav/lib/Events/SabrePluginAddEvent.php
@@ -0,0 +1,56 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2023, Joas Schilling <coding@schilljs.com>
+ *
+ * @author Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+namespace OCA\DAV\Events;
+
+use OCP\EventDispatcher\Event;
+use Sabre\DAV\Server;
+
+/**
+ * This event is triggered during the setup of the SabreDAV server to allow the
+ * registration of additional plugins.
+ *
+ * @since 28.0.0
+ */
+class SabrePluginAddEvent extends Event {
+
+ /** @var Server */
+ private $server;
+
+ /**
+ * @since 28.0.0
+ */
+ public function __construct(Server $server) {
+ parent::__construct();
+ $this->server = $server;
+ }
+
+ /**
+ * @since 28.0.0
+ */
+ public function getServer(): Server {
+ return $this->server;
+ }
+}
diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index 909bcaa71e8..47cb9e3ec36 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -64,6 +64,7 @@ use OCA\DAV\Connector\Sabre\TagsPlugin;
use OCA\DAV\DAV\CustomPropertiesBackend;
use OCA\DAV\DAV\PublicAuth;
use OCA\DAV\DAV\ViewOnlyPlugin;
+use OCA\DAV\Events\SabrePluginAddEvent;
use OCA\DAV\Events\SabrePluginAuthInitEvent;
use OCA\DAV\Files\BrowserErrorPagePlugin;
use OCA\DAV\Files\LazySearchBackend;
@@ -102,9 +103,8 @@ class Server {
$this->request = $request;
$this->baseUri = $baseUri;
$logger = \OC::$server->get(LoggerInterface::class);
- $dispatcher = \OC::$server->getEventDispatcher();
- /** @var IEventDispatcher $newDispatcher */
- $newDispatcher = \OC::$server->query(IEventDispatcher::class);
+ /** @var IEventDispatcher $dispatcher */
+ $dispatcher = \OC::$server->get(IEventDispatcher::class);
$root = new RootCollection();
$this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root));
@@ -139,7 +139,7 @@ class Server {
$dispatcher->dispatch('OCA\DAV\Connector\Sabre::authInit', $event);
$newAuthEvent = new SabrePluginAuthInitEvent($this->server);
- $newDispatcher->dispatchTyped($newAuthEvent);
+ $dispatcher->dispatchTyped($newAuthEvent);
$bearerAuthBackend = new BearerAuth(
\OC::$server->getUserSession(),
@@ -223,6 +223,8 @@ class Server {
// allow setup of additional plugins
$dispatcher->dispatch('OCA\DAV\Connector\Sabre::addPlugin', $event);
+ $typedEvent = new SabrePluginAddEvent($this->server);
+ $dispatcher->dispatchTyped($typedEvent);
// Some WebDAV clients do require Class 2 WebDAV support (locking), since
// we do not provide locking we emulate it using a fake locking plugin.
diff --git a/apps/dav/lib/Upload/ChunkingV2Plugin.php b/apps/dav/lib/Upload/ChunkingV2Plugin.php
index 6b660fb7c6f..d3673c6bde7 100644
--- a/apps/dav/lib/Upload/ChunkingV2Plugin.php
+++ b/apps/dav/lib/Upload/ChunkingV2Plugin.php
@@ -278,6 +278,9 @@ class ChunkingV2Plugin extends ServerPlugin {
if (!$this->uploadFolder->getStorage()->instanceOfStorage(IChunkedFileWrite::class)) {
throw new StorageInvalidException('Storage does not support chunked file writing');
}
+ if ($this->uploadFolder->getStorage()->instanceOfStorage(ObjectStoreStorage::class) && !$this->uploadFolder->getStorage()->getObjectStore() instanceof IObjectStoreMultiPartUpload) {
+ throw new StorageInvalidException('Storage does not support multi part uploads');
+ }
if ($checkUploadMetadata) {
if ($this->uploadId === null || $this->uploadPath === null) {
diff --git a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
index be841295f0b..b3b3341240a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
@@ -301,11 +301,6 @@ class AuthTest extends TestCase {
$this->request
->expects($this->any())
->method('isUserAgent')
- ->with([
- '/^Mozilla\/5\.0 \([A-Za-z ]+\) (mirall|csyncoC)\/.*$/',
- '/^Mozilla\/5\.0 \(Android\) (ownCloud|Nextcloud)\-android.*$/',
- '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/',
- ])
->willReturn(false);
$this->session
->expects($this->any())
@@ -351,11 +346,6 @@ class AuthTest extends TestCase {
$this->request
->expects($this->any())
->method('isUserAgent')
- ->with([
- '/^Mozilla\/5\.0 \([A-Za-z ]+\) (mirall|csyncoC)\/.*$/',
- '/^Mozilla\/5\.0 \(Android\) ownCloud\-android.*$/',
- '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/',
- ])
->willReturn(false);
$this->session
->expects($this->any())
@@ -405,11 +395,6 @@ class AuthTest extends TestCase {
$this->request
->expects($this->any())
->method('isUserAgent')
- ->with([
- '/^Mozilla\/5\.0 \([A-Za-z ]+\) (mirall|csyncoC)\/.*$/',
- '/^Mozilla\/5\.0 \(Android\) (ownCloud|Nextcloud)\-android.*$/',
- '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/',
- ])
->willReturn(false);
$this->session
->expects($this->any())
@@ -451,11 +436,6 @@ class AuthTest extends TestCase {
$this->request
->expects($this->any())
->method('isUserAgent')
- ->with([
- '/^Mozilla\/5\.0 \([A-Za-z ]+\) (mirall|csyncoC)\/.*$/',
- '/^Mozilla\/5\.0 \(Android\) (ownCloud|Nextcloud)\-android.*$/',
- '/^Mozilla\/5\.0 \(iOS\) (ownCloud|Nextcloud)\-iOS.*$/',
- ])
->willReturn(true);
$this->session
->expects($this->any())
diff --git a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
index e0a274321f0..616e9796ab4 100644
--- a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php
@@ -1,4 +1,6 @@
<?php
+
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -28,7 +30,9 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\BlockLegacyClientPlugin;
use OCP\IConfig;
+use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
+use Sabre\HTTP\RequestInterface;
/**
* Class BlockLegacyClientPluginTest
@@ -36,7 +40,7 @@ use Test\TestCase;
* @package OCA\DAV\Tests\unit\Connector\Sabre
*/
class BlockLegacyClientPluginTest extends TestCase {
- /** @var IConfig | \PHPUnit\Framework\MockObject\MockObject */
+ /** @var IConfig|MockObject */
private $config;
/** @var BlockLegacyClientPlugin */
private $blockLegacyClientVersionPlugin;
@@ -44,34 +48,25 @@ class BlockLegacyClientPluginTest extends TestCase {
protected function setUp(): void {
parent::setUp();
- $this->config = $this->getMockBuilder(IConfig::class)
- ->disableOriginalConstructor()
- ->getMock();
+ $this->config = $this->createMock(IConfig::class);
$this->blockLegacyClientVersionPlugin = new BlockLegacyClientPlugin($this->config);
}
- /**
- * @return array
- */
- public function oldDesktopClientProvider() {
+ public function oldDesktopClientProvider(): array {
return [
- ['Mozilla/5.0 (1.5.0) mirall/1.5.0'],
- ['mirall/1.5.0'],
- ['mirall/1.5.4'],
- ['mirall/1.6.0'],
+ ['Mozilla/5.0 (Windows) mirall/1.5.0'],
['Mozilla/5.0 (Bogus Text) mirall/1.6.9'],
];
}
/**
* @dataProvider oldDesktopClientProvider
- * @param string $userAgent
*/
- public function testBeforeHandlerException($userAgent): void {
+ public function testBeforeHandlerException(string $userAgent): void {
$this->expectException(\Sabre\DAV\Exception\Forbidden::class);
$this->expectExceptionMessage('Unsupported client version.');
- /** @var \Sabre\HTTP\RequestInterface | \PHPUnit\Framework\MockObject\MockObject $request */
+ /** @var RequestInterface|MockObject $request */
$request = $this->createMock('\Sabre\HTTP\RequestInterface');
$request
->expects($this->once())
@@ -88,26 +83,20 @@ class BlockLegacyClientPluginTest extends TestCase {
$this->blockLegacyClientVersionPlugin->beforeHandler($request);
}
- /**
- * @return array
- */
- public function newAndAlternateDesktopClientProvider() {
+ public function newAndAlternateDesktopClientProvider(): array {
return [
- ['Mozilla/5.0 (1.7.0) mirall/1.7.0'],
- ['mirall/1.8.3'],
- ['mirall/1.7.2'],
- ['mirall/1.7.0'],
+ ['Mozilla/5.0 (Windows) mirall/1.7.0'],
['Mozilla/5.0 (Bogus Text) mirall/1.9.3'],
+ ['Mozilla/5.0 (Not Our Client But Old Version) LegacySync/1.1.0'],
];
}
/**
* @dataProvider newAndAlternateDesktopClientProvider
- * @param string $userAgent
*/
- public function testBeforeHandlerSuccess($userAgent): void {
- /** @var \Sabre\HTTP\RequestInterface | \PHPUnit\Framework\MockObject\MockObject $request */
- $request = $this->createMock('\Sabre\HTTP\RequestInterface');
+ public function testBeforeHandlerSuccess(string $userAgent): void {
+ /** @var RequestInterface|MockObject $request */
+ $request = $this->createMock(RequestInterface::class);
$request
->expects($this->once())
->method('getHeader')
@@ -124,8 +113,8 @@ class BlockLegacyClientPluginTest extends TestCase {
}
public function testBeforeHandlerNoUserAgent(): void {
- /** @var \Sabre\HTTP\RequestInterface | \PHPUnit\Framework\MockObject\MockObject $request */
- $request = $this->createMock('\Sabre\HTTP\RequestInterface');
+ /** @var RequestInterface|MockObject $request */
+ $request = $this->createMock(RequestInterface::class);
$request
->expects($this->once())
->method('getHeader')
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
index f6aa79eb6c4..c4f8c21eae1 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php
@@ -31,6 +31,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest;
use OC\Files\View;
use OCA\DAV\Connector\Sabre\Server;
use OCA\DAV\Connector\Sabre\ServerFactory;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\IRequest;
use Psr\Log\LoggerInterface;
use Sabre\HTTP\Request;
@@ -70,7 +71,7 @@ abstract class RequestTestCase extends TestCase {
->disableOriginalConstructor()
->getMock(),
\OC::$server->getPreviewManager(),
- \OC::$server->getEventDispatcher(),
+ \OC::$server->get(IEventDispatcher::class),
\OC::$server->getL10N('dav')
);
}