summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorLukas Reschke <lukas@owncloud.com>2016-06-21 11:18:22 +0200
committerLukas Reschke <lukas@owncloud.com>2016-06-21 11:18:22 +0200
commit2b493e2f9dca674ba11f88a1d182d6872e04eaaa (patch)
treeef7fa75d1b4da812de80e93c3590dbb5404d7f06 /apps
parentb4df57f3f02f65ed71d1072280751170379a53e8 (diff)
parent0e575c7eeadc6c8eb11b0be2ed1d39cdcf6cfcb8 (diff)
downloadnextcloud-server-2b493e2f9dca674ba11f88a1d182d6872e04eaaa.tar.gz
nextcloud-server-2b493e2f9dca674ba11f88a1d182d6872e04eaaa.zip
Merge remote-tracking branch 'upstream/master' into master-sync-upstream
Diffstat (limited to 'apps')
-rw-r--r--apps/comments/l10n/pl.js3
-rw-r--r--apps/comments/l10n/pl.json3
-rw-r--r--apps/comments/l10n/zh_CN.js3
-rw-r--r--apps/comments/l10n/zh_CN.json3
-rw-r--r--apps/dav/appinfo/info.xml3
-rw-r--r--apps/dav/appinfo/update.php26
-rw-r--r--apps/dav/lib/AppInfo/Application.php25
-rw-r--r--apps/dav/lib/Connector/Sabre/Auth.php22
-rw-r--r--apps/dav/lib/Connector/Sabre/Exception/PasswordLoginForbidden.php54
-rw-r--r--apps/dav/lib/Migration/GenerateBirthdays.php70
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/AuthTest.php36
-rw-r--r--apps/encryption/l10n/zh_CN.js1
-rw-r--r--apps/encryption/l10n/zh_CN.json1
-rw-r--r--apps/federatedfilesharing/l10n/ca.js22
-rw-r--r--apps/federatedfilesharing/l10n/ca.json22
-rw-r--r--apps/federatedfilesharing/l10n/nl.js3
-rw-r--r--apps/federatedfilesharing/l10n/nl.json3
-rw-r--r--apps/federatedfilesharing/l10n/pl.js1
-rw-r--r--apps/federatedfilesharing/l10n/pl.json1
-rw-r--r--apps/federation/js/settings-admin.js2
-rw-r--r--apps/files/l10n/fr.js1
-rw-r--r--apps/files/l10n/fr.json1
-rw-r--r--apps/files/l10n/he.js7
-rw-r--r--apps/files/l10n/he.json7
-rw-r--r--apps/files/l10n/nl.js12
-rw-r--r--apps/files/l10n/nl.json12
-rw-r--r--apps/files/l10n/pl.js20
-rw-r--r--apps/files/l10n/pl.json20
-rw-r--r--apps/files/l10n/zh_CN.js13
-rw-r--r--apps/files/l10n/zh_CN.json13
-rw-r--r--apps/files_external/3rdparty/composer.json2
-rw-r--r--apps/files_external/3rdparty/composer.lock14
-rw-r--r--apps/files_external/3rdparty/composer/autoload_classmap.php15
-rw-r--r--apps/files_external/3rdparty/composer/installed.json50
-rw-r--r--apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php10
-rw-r--r--apps/files_external/js/settings.js4
-rw-r--r--apps/files_external/l10n/nl.js3
-rw-r--r--apps/files_external/l10n/nl.json3
-rw-r--r--apps/files_external/lib/Controller/GlobalStoragesController.php1
-rw-r--r--apps/files_external/lib/Controller/StoragesController.php2
-rw-r--r--apps/files_external/lib/Controller/UserGlobalStoragesController.php2
-rw-r--r--apps/files_external/lib/Controller/UserStoragesController.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/Dropbox.php5
-rw-r--r--apps/files_external/lib/Lib/Storage/Google.php4
-rw-r--r--apps/files_external/templates/settings.php6
-rwxr-xr-xapps/files_external/tests/env/start-swift-ceph.sh3
-rw-r--r--apps/files_sharing/appinfo/app.php6
-rw-r--r--apps/files_sharing/l10n/he.js19
-rw-r--r--apps/files_sharing/l10n/he.json19
-rw-r--r--apps/files_sharing/lib/AppInfo/Application.php3
-rw-r--r--apps/files_sharing/lib/External/Storage.php11
-rw-r--r--apps/files_sharing/lib/External/Watcher.php (renamed from apps/dav/appinfo/install.php)17
-rw-r--r--apps/files_sharing/lib/Helper.php12
-rw-r--r--apps/files_sharing/lib/MountProvider.php33
-rw-r--r--apps/files_sharing/lib/SharedMount.php2
-rw-r--r--apps/systemtags/l10n/ca.js21
-rw-r--r--apps/systemtags/l10n/ca.json21
-rw-r--r--apps/systemtags/l10n/nl.js1
-rw-r--r--apps/systemtags/l10n/nl.json1
-rw-r--r--apps/systemtags/lib/Activity/Listener.php4
-rw-r--r--apps/updatenotification/l10n/ca.js14
-rw-r--r--apps/updatenotification/l10n/ca.json14
-rw-r--r--apps/updatenotification/l10n/nl.js7
-rw-r--r--apps/updatenotification/l10n/nl.json7
-rw-r--r--apps/updatenotification/l10n/pl.js4
-rw-r--r--apps/updatenotification/l10n/pl.json4
-rw-r--r--apps/updatenotification/l10n/sl.js1
-rw-r--r--apps/updatenotification/l10n/sl.json1
-rw-r--r--apps/user_ldap/l10n/he.js2
-rw-r--r--apps/user_ldap/l10n/he.json2
70 files changed, 608 insertions, 153 deletions
diff --git a/apps/comments/l10n/pl.js b/apps/comments/l10n/pl.js
index d5e3f4b3320..d4a492e1da2 100644
--- a/apps/comments/l10n/pl.js
+++ b/apps/comments/l10n/pl.js
@@ -14,7 +14,10 @@ OC.L10N.register(
"Allowed characters {count} of {max}" : "Dozwolone znaki {count} z {max}",
"{count} unread comments" : "{count} nieprzeczytanych komentarzy",
"Comment" : "Komentarz",
+ "<strong>Comments</strong> for files <em>(always listed in stream)</em>" : "<strong>Komentarze</strong> dla plików <em>(zawsze wypisane w strumieniu)</em>",
+ "You commented" : "Skomentowałeś/łaś",
"%1$s commented" : "%1$s skomentował",
+ "You commented on %2$s" : "Skomentowałeś/łaś %2$s",
"%1$s commented on %2$s" : "%1$s skomentował %2$s"
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/comments/l10n/pl.json b/apps/comments/l10n/pl.json
index 28bbf20817f..78e9f0ff210 100644
--- a/apps/comments/l10n/pl.json
+++ b/apps/comments/l10n/pl.json
@@ -12,7 +12,10 @@
"Allowed characters {count} of {max}" : "Dozwolone znaki {count} z {max}",
"{count} unread comments" : "{count} nieprzeczytanych komentarzy",
"Comment" : "Komentarz",
+ "<strong>Comments</strong> for files <em>(always listed in stream)</em>" : "<strong>Komentarze</strong> dla plików <em>(zawsze wypisane w strumieniu)</em>",
+ "You commented" : "Skomentowałeś/łaś",
"%1$s commented" : "%1$s skomentował",
+ "You commented on %2$s" : "Skomentowałeś/łaś %2$s",
"%1$s commented on %2$s" : "%1$s skomentował %2$s"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 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/comments/l10n/zh_CN.js b/apps/comments/l10n/zh_CN.js
index 6ae1c231ae0..326fa6407a4 100644
--- a/apps/comments/l10n/zh_CN.js
+++ b/apps/comments/l10n/zh_CN.js
@@ -14,7 +14,10 @@ OC.L10N.register(
"Allowed characters {count} of {max}" : "当前字数: {count},最大允许:{max}",
"{count} unread comments" : "{count} 条未读评论",
"Comment" : "评论",
+ "<strong>Comments</strong> for files <em>(always listed in stream)</em>" : "文件的<strong>评论</strong><em>(始终在数据流中列出)</em>",
+ "You commented" : "您的评论",
"%1$s commented" : "%1$s 已评论",
+ "You commented on %2$s" : "你评论了 %2$s",
"%1$s commented on %2$s" : "%1$s 评论了 %2$s"
},
"nplurals=1; plural=0;");
diff --git a/apps/comments/l10n/zh_CN.json b/apps/comments/l10n/zh_CN.json
index f5dab6f5ab1..98aa243e1c2 100644
--- a/apps/comments/l10n/zh_CN.json
+++ b/apps/comments/l10n/zh_CN.json
@@ -12,7 +12,10 @@
"Allowed characters {count} of {max}" : "当前字数: {count},最大允许:{max}",
"{count} unread comments" : "{count} 条未读评论",
"Comment" : "评论",
+ "<strong>Comments</strong> for files <em>(always listed in stream)</em>" : "文件的<strong>评论</strong><em>(始终在数据流中列出)</em>",
+ "You commented" : "您的评论",
"%1$s commented" : "%1$s 已评论",
+ "You commented on %2$s" : "你评论了 %2$s",
"%1$s commented on %2$s" : "%1$s 评论了 %2$s"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/dav/appinfo/info.xml b/apps/dav/appinfo/info.xml
index 26e37e6bb86..df147a032fe 100644
--- a/apps/dav/appinfo/info.xml
+++ b/apps/dav/appinfo/info.xml
@@ -24,5 +24,8 @@
<post-migration>
<job>OCA\DAV\Migration\Classification</job>
</post-migration>
+ <live-migration>
+ <job>OCA\DAV\Migration\GenerateBirthdays</job>
+ </live-migration>
</repair-steps>
</info>
diff --git a/apps/dav/appinfo/update.php b/apps/dav/appinfo/update.php
deleted file mode 100644
index d2ee06cc9fe..00000000000
--- a/apps/dav/appinfo/update.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * @author Joas Schilling <nickvergessen@owncloud.com>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * 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, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-use OCA\DAV\AppInfo\Application;
-
-$app = new Application();
-$app->generateBirthdays();
diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php
index 9e0d2da4e17..de2056ebc35 100644
--- a/apps/dav/lib/AppInfo/Application.php
+++ b/apps/dav/lib/AppInfo/Application.php
@@ -32,6 +32,7 @@ use OCA\DAV\Connector\Sabre\Principal;
use OCA\DAV\DAV\GroupPrincipalBackend;
use OCA\DAV\HookManager;
use OCA\DAV\Migration\Classification;
+use OCA\DAV\Migration\GenerateBirthdays;
use \OCP\AppFramework\App;
use OCP\AppFramework\IAppContainer;
use OCP\Contacts\IManager;
@@ -116,6 +117,16 @@ class Application extends App {
$c->getServer()->getUserManager()
);
});
+
+ $container->registerService('OCA\DAV\Migration\GenerateBirthdays', function ($c) {
+ /** @var IAppContainer $c */
+ /** @var BirthdayService $b */
+ $b = $c->query('BirthdayService');
+ return new GenerateBirthdays(
+ $b,
+ $c->getServer()->getUserManager()
+ );
+ });
}
/**
@@ -164,18 +175,4 @@ class Application extends App {
return $this->getContainer()->query('SyncService');
}
- public function generateBirthdays() {
- try {
- /** @var BirthdayService $migration */
- $migration = $this->getContainer()->query('BirthdayService');
- $userManager = $this->getContainer()->getServer()->getUserManager();
-
- $userManager->callForAllUsers(function($user) use($migration) {
- /** @var IUser $user */
- $migration->syncUser($user->getUID());
- });
- } catch (\Exception $ex) {
- $this->getContainer()->getServer()->getLogger()->logException($ex);
- }
- }
}
diff --git a/apps/dav/lib/Connector/Sabre/Auth.php b/apps/dav/lib/Connector/Sabre/Auth.php
index 653da10bc3c..82c2711b560 100644
--- a/apps/dav/lib/Connector/Sabre/Auth.php
+++ b/apps/dav/lib/Connector/Sabre/Auth.php
@@ -31,8 +31,10 @@ namespace OCA\DAV\Connector\Sabre;
use Exception;
use OC\AppFramework\Http\Request;
+use OC\Authentication\Exceptions\PasswordLoginForbiddenException;
use OC\Authentication\TwoFactorAuth\Manager;
use OC\User\Session;
+use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden;
use OCP\IRequest;
use OCP\ISession;
use Sabre\DAV\Auth\Backend\AbstractBasic;
@@ -115,15 +117,19 @@ class Auth extends AbstractBasic {
return true;
} else {
\OC_Util::setupFS(); //login hooks may need early access to the filesystem
- if($this->userSession->logClientIn($username, $password)) {
- $this->userSession->createSessionToken($this->request, $this->userSession->getUser()->getUID(), $username, $password);
- \OC_Util::setupFS($this->userSession->getUser()->getUID());
- $this->session->set(self::DAV_AUTHENTICATED, $this->userSession->getUser()->getUID());
+ try {
+ if ($this->userSession->logClientIn($username, $password, $this->request)) {
+ \OC_Util::setupFS($this->userSession->getUser()->getUID());
+ $this->session->set(self::DAV_AUTHENTICATED, $this->userSession->getUser()->getUID());
+ $this->session->close();
+ return true;
+ } else {
+ $this->session->close();
+ return false;
+ }
+ } catch (PasswordLoginForbiddenException $ex) {
$this->session->close();
- return true;
- } else {
- $this->session->close();
- return false;
+ throw new PasswordLoginForbidden();
}
}
}
diff --git a/apps/dav/lib/Connector/Sabre/Exception/PasswordLoginForbidden.php b/apps/dav/lib/Connector/Sabre/Exception/PasswordLoginForbidden.php
new file mode 100644
index 00000000000..6537da3d56d
--- /dev/null
+++ b/apps/dav/lib/Connector/Sabre/Exception/PasswordLoginForbidden.php
@@ -0,0 +1,54 @@
+<?php
+
+/**
+ * @author Christoph Wurst <christoph@owncloud.com>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\DAV\Connector\Sabre\Exception;
+
+use DOMElement;
+use Sabre\DAV\Server;
+use Sabre\DAV\Exception\NotAuthenticated;
+
+class PasswordLoginForbidden extends NotAuthenticated {
+
+ const NS_OWNCLOUD = 'http://owncloud.org/ns';
+
+ public function getHTTPCode() {
+ return 401;
+ }
+
+ /**
+ * This method allows the exception to include additional information
+ * into the WebDAV error response
+ *
+ * @param Server $server
+ * @param DOMElement $errorNode
+ * @return void
+ */
+ public function serialize(Server $server, DOMElement $errorNode) {
+
+ // set ownCloud namespace
+ $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
+
+ $error = $errorNode->ownerDocument->createElementNS('o:', 'o:hint', 'password login forbidden');
+ $errorNode->appendChild($error);
+ }
+
+}
diff --git a/apps/dav/lib/Migration/GenerateBirthdays.php b/apps/dav/lib/Migration/GenerateBirthdays.php
new file mode 100644
index 00000000000..dfc8838bcbb
--- /dev/null
+++ b/apps/dav/lib/Migration/GenerateBirthdays.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+
+namespace OCA\DAV\Migration;
+
+use OCA\DAV\CalDAV\BirthdayService;
+use OCP\IUser;
+use OCP\IUserManager;
+use OCP\Migration\IOutput;
+use OCP\Migration\IRepairStep;
+
+class GenerateBirthdays implements IRepairStep {
+
+ /** @var BirthdayService */
+ private $birthdayService;
+
+ /** @var IUserManager */
+ private $userManager;
+
+ /**
+ * GenerateBirthdays constructor.
+ *
+ * @param BirthdayService $birthdayService
+ * @param IUserManager $userManager
+ */
+ public function __construct(BirthdayService $birthdayService, IUserManager $userManager) {
+ $this->birthdayService = $birthdayService;
+ $this->userManager = $userManager;
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function getName() {
+ return 'Regenerate birthday calendar for all users';
+ }
+
+ /**
+ * @inheritdoc
+ */
+ public function run(IOutput $output) {
+
+ $output->startProgress();
+ $this->userManager->callForAllUsers(function($user) use ($output) {
+ /** @var IUser $user */
+ $output->advance(1, $user->getDisplayName());
+ $this->birthdayService->syncUser($user->getUID());
+ });
+ $output->finishProgress();
+ }
+}
diff --git a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
index b3ab49a027e..9564298f23a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php
@@ -159,7 +159,7 @@ class AuthTest extends TestCase {
$user = $this->getMockBuilder('\OCP\IUser')
->disableOriginalConstructor()
->getMock();
- $user->expects($this->exactly(4))
+ $user->expects($this->exactly(3))
->method('getUID')
->will($this->returnValue('MyTestUser'));
$this->userSession
@@ -167,7 +167,7 @@ class AuthTest extends TestCase {
->method('isLoggedIn')
->will($this->returnValue(true));
$this->userSession
- ->expects($this->exactly(4))
+ ->expects($this->exactly(3))
->method('getUser')
->will($this->returnValue($user));
$this->session
@@ -178,12 +178,8 @@ class AuthTest extends TestCase {
$this->userSession
->expects($this->once())
->method('logClientIn')
- ->with('MyTestUser', 'MyTestPassword')
+ ->with('MyTestUser', 'MyTestPassword', $this->request)
->will($this->returnValue(true));
- $this->userSession
- ->expects($this->once())
- ->method('createSessionToken')
- ->with($this->request, 'MyTestUser', 'MyTestUser', 'MyTestPassword');
$this->session
->expects($this->once())
->method('set')
@@ -212,6 +208,25 @@ class AuthTest extends TestCase {
$this->assertFalse($this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']));
}
+ /**
+ * @expectedException \OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden
+ */
+ public function testValidateUserPassWithPasswordLoginForbidden() {
+ $this->userSession
+ ->expects($this->once())
+ ->method('isLoggedIn')
+ ->will($this->returnValue(false));
+ $this->userSession
+ ->expects($this->once())
+ ->method('logClientIn')
+ ->with('MyTestUser', 'MyTestPassword')
+ ->will($this->throwException(new \OC\Authentication\Exceptions\PasswordLoginForbiddenException()));
+ $this->session
+ ->expects($this->once())
+ ->method('close');
+
+ $this->invokePrivate($this->auth, 'validateUserPass', ['MyTestUser', 'MyTestPassword']);
+ }
public function testAuthenticateAlreadyLoggedInWithoutCsrfTokenForNonGet() {
$request = $this->getMockBuilder('Sabre\HTTP\RequestInterface')
@@ -626,17 +641,14 @@ class AuthTest extends TestCase {
->method('logClientIn')
->with('username', 'password')
->will($this->returnValue(true));
- $this->userSession
- ->expects($this->once())
- ->method('createSessionToken');
$user = $this->getMockBuilder('\OCP\IUser')
->disableOriginalConstructor()
->getMock();
- $user->expects($this->exactly(4))
+ $user->expects($this->exactly(3))
->method('getUID')
->will($this->returnValue('MyTestUser'));
$this->userSession
- ->expects($this->exactly(4))
+ ->expects($this->exactly(3))
->method('getUser')
->will($this->returnValue($user));
$response = $this->auth->check($server->httpRequest, $server->httpResponse);
diff --git a/apps/encryption/l10n/zh_CN.js b/apps/encryption/l10n/zh_CN.js
index 93a1b13996a..e2f9212c8cf 100644
--- a/apps/encryption/l10n/zh_CN.js
+++ b/apps/encryption/l10n/zh_CN.js
@@ -15,6 +15,7 @@ OC.L10N.register(
"Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。",
"Could not update the private key password." : "不能更新私有密钥。",
"The old password was not correct, please try again." : "原始密码错误,请重试。",
+ "The current log-in password was not correct, please try again." : "当前登录密码不正确,请重试。",
"Private key password successfully updated." : "私钥密码成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
diff --git a/apps/encryption/l10n/zh_CN.json b/apps/encryption/l10n/zh_CN.json
index 0fb653b232c..8ac6c9eef01 100644
--- a/apps/encryption/l10n/zh_CN.json
+++ b/apps/encryption/l10n/zh_CN.json
@@ -13,6 +13,7 @@
"Could not change the password. Maybe the old password was not correct." : "不能修改密码。旧密码可能不正确。",
"Could not update the private key password." : "不能更新私有密钥。",
"The old password was not correct, please try again." : "原始密码错误,请重试。",
+ "The current log-in password was not correct, please try again." : "当前登录密码不正确,请重试。",
"Private key password successfully updated." : "私钥密码成功更新。",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "无效的私有密钥。请到您的个人配置里去更新私有密钥,来恢复对加密文件的访问。",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "加密应用被启用了,但是你的加密密钥没有初始化,请重新登出登录系统一次。",
diff --git a/apps/federatedfilesharing/l10n/ca.js b/apps/federatedfilesharing/l10n/ca.js
index bc2ea1e51c6..d56ab77a8f2 100644
--- a/apps/federatedfilesharing/l10n/ca.js
+++ b/apps/federatedfilesharing/l10n/ca.js
@@ -1,7 +1,27 @@
OC.L10N.register(
"federatedfilesharing",
{
+ "Federated sharing" : "Compartició federada",
+ "Invalid Federated Cloud ID" : "ID de núvol federat invàlid",
"Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s",
- "Open documentation" : "Obre la documentació"
+ "Not allowed to create a federated share with the same user" : "No està permés crear una compartició federada amb el mateix usuari",
+ "File is already shared with %s" : "El fitxer ja està compartit amb %s",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "La compartició de %s ha fallat, no es pot trobar %s, potser el servidor està actualment innacessible.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has rebut \"/%3$s\" com una compartició remota des de %1$s (de part de %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Has rebut \"/%3$s\" com una compartició remota de %1$s",
+ "Accept" : "Acceptar",
+ "Decline" : "Denegar",
+ "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Comparteix amb mi a través del meu #ownCloud ID de Núvol Federat, consulteu %s",
+ "Share with me through my #ownCloud Federated Cloud ID" : "Comparteix amb mi a través del meu #ownCloud ID de Núvol Federat",
+ "Federated Cloud Sharing" : "Compartició federada de núvol",
+ "Open documentation" : "Obre la documentació",
+ "Allow users on this server to send shares to other servers" : "Permet als usuaris d'aquest servidor enviar comparticions a d'altres servidors",
+ "Allow users on this server to receive shares from other servers" : "Permet als usuaris d'aquest servidor rebre comparticions a d'altres servidors",
+ "Federated Cloud" : "Núvol federat",
+ "Your Federated Cloud ID:" : "El teu ID de Núvol Federat:",
+ "Share it:" : "Comparteix-lo:",
+ "Add to your website" : "Afegeix a la teva pàgina web",
+ "Share with me via ownCloud" : "Comparteix amb mi amb ownCloud",
+ "HTML Code:" : "Codi HTML:"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federatedfilesharing/l10n/ca.json b/apps/federatedfilesharing/l10n/ca.json
index 9ac1be24429..782557f24a9 100644
--- a/apps/federatedfilesharing/l10n/ca.json
+++ b/apps/federatedfilesharing/l10n/ca.json
@@ -1,5 +1,25 @@
{ "translations": {
+ "Federated sharing" : "Compartició federada",
+ "Invalid Federated Cloud ID" : "ID de núvol federat invàlid",
"Sharing %s failed, because this item is already shared with %s" : "Ha fallat en compartir %s, perquè l'element ja està compartit amb %s",
- "Open documentation" : "Obre la documentació"
+ "Not allowed to create a federated share with the same user" : "No està permés crear una compartició federada amb el mateix usuari",
+ "File is already shared with %s" : "El fitxer ja està compartit amb %s",
+ "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "La compartició de %s ha fallat, no es pot trobar %s, potser el servidor està actualment innacessible.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has rebut \"/%3$s\" com una compartició remota des de %1$s (de part de %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "Has rebut \"/%3$s\" com una compartició remota de %1$s",
+ "Accept" : "Acceptar",
+ "Decline" : "Denegar",
+ "Share with me through my #ownCloud Federated Cloud ID, see %s" : "Comparteix amb mi a través del meu #ownCloud ID de Núvol Federat, consulteu %s",
+ "Share with me through my #ownCloud Federated Cloud ID" : "Comparteix amb mi a través del meu #ownCloud ID de Núvol Federat",
+ "Federated Cloud Sharing" : "Compartició federada de núvol",
+ "Open documentation" : "Obre la documentació",
+ "Allow users on this server to send shares to other servers" : "Permet als usuaris d'aquest servidor enviar comparticions a d'altres servidors",
+ "Allow users on this server to receive shares from other servers" : "Permet als usuaris d'aquest servidor rebre comparticions a d'altres servidors",
+ "Federated Cloud" : "Núvol federat",
+ "Your Federated Cloud ID:" : "El teu ID de Núvol Federat:",
+ "Share it:" : "Comparteix-lo:",
+ "Add to your website" : "Afegeix a la teva pàgina web",
+ "Share with me via ownCloud" : "Comparteix amb mi amb ownCloud",
+ "HTML Code:" : "Codi HTML:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/federatedfilesharing/l10n/nl.js b/apps/federatedfilesharing/l10n/nl.js
index 090c2a9f19d..364d540640a 100644
--- a/apps/federatedfilesharing/l10n/nl.js
+++ b/apps/federatedfilesharing/l10n/nl.js
@@ -5,7 +5,10 @@ OC.L10N.register(
"Invalid Federated Cloud ID" : "Ongeldige Federated Cloud ID",
"Sharing %s failed, because this item is already shared with %s" : "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s",
"Not allowed to create a federated share with the same user" : "Het is niet toegestaan om een gefedereerde share met dezelfde gebruikersserver te maken",
+ "File is already shared with %s" : "Bestand is al gedeeld met %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Delen van %s mislukt, kon %s niet vinden, misschien is de server niet bereikbaar.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "U ontving \"/%3$s\" als een externe share van %1$s (namens %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "U ontving \"/%3$s\" as een externe share van %1$s",
"Accept" : "Accepteren",
"Decline" : "Afwijzen",
"Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Deel met mij via mijn #Nextcloud federated Cloud ID, zie %s",
diff --git a/apps/federatedfilesharing/l10n/nl.json b/apps/federatedfilesharing/l10n/nl.json
index 65b298df963..01e1579dbc8 100644
--- a/apps/federatedfilesharing/l10n/nl.json
+++ b/apps/federatedfilesharing/l10n/nl.json
@@ -3,7 +3,10 @@
"Invalid Federated Cloud ID" : "Ongeldige Federated Cloud ID",
"Sharing %s failed, because this item is already shared with %s" : "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s",
"Not allowed to create a federated share with the same user" : "Het is niet toegestaan om een gefedereerde share met dezelfde gebruikersserver te maken",
+ "File is already shared with %s" : "Bestand is al gedeeld met %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Delen van %s mislukt, kon %s niet vinden, misschien is de server niet bereikbaar.",
+ "You received \"/%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "U ontving \"/%3$s\" als een externe share van %1$s (namens %2$s)",
+ "You received \"/%3$s\" as a remote share from %1$s" : "U ontving \"/%3$s\" as een externe share van %1$s",
"Accept" : "Accepteren",
"Decline" : "Afwijzen",
"Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Deel met mij via mijn #Nextcloud federated Cloud ID, zie %s",
diff --git a/apps/federatedfilesharing/l10n/pl.js b/apps/federatedfilesharing/l10n/pl.js
index 1d8b949c74a..4f65f44553e 100644
--- a/apps/federatedfilesharing/l10n/pl.js
+++ b/apps/federatedfilesharing/l10n/pl.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"federatedfilesharing",
{
+ "Federated sharing" : "Sfederowane udostępnianie",
"Sharing %s failed, because this item is already shared with %s" : "Współdzielenie %s nie powiodło się, ponieważ element jest już współdzielony z %s",
"File is already shared with %s" : "Plik jest już współdzielony z %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Współdzielenie %s nie powiodło się, nie można odnaleźć %s. Prawdopobnie serwer nie jest teraz osiągalny.",
diff --git a/apps/federatedfilesharing/l10n/pl.json b/apps/federatedfilesharing/l10n/pl.json
index c44eecbeeb7..7b43ed3fce1 100644
--- a/apps/federatedfilesharing/l10n/pl.json
+++ b/apps/federatedfilesharing/l10n/pl.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Federated sharing" : "Sfederowane udostępnianie",
"Sharing %s failed, because this item is already shared with %s" : "Współdzielenie %s nie powiodło się, ponieważ element jest już współdzielony z %s",
"File is already shared with %s" : "Plik jest już współdzielony z %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Współdzielenie %s nie powiodło się, nie można odnaleźć %s. Prawdopobnie serwer nie jest teraz osiągalny.",
diff --git a/apps/federation/js/settings-admin.js b/apps/federation/js/settings-admin.js
index 45d5d62a5a3..10fabbeb9b9 100644
--- a/apps/federation/js/settings-admin.js
+++ b/apps/federation/js/settings-admin.js
@@ -60,7 +60,7 @@ $(document).ready(function () {
// remove trusted server from list
$( "#listOfTrustedServers" ).on('click', 'li > .icon-delete', function() {
var $this = $(this).parent();
- id = $this.attr('id');
+ var id = $this.attr('id');
$.ajax({
url: OC.generateUrl('/apps/federation/trusted-servers/' + id),
type: 'DELETE',
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index c0d1f22e74b..b2d6662a9ce 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Invalid directory." : "Dossier non valide.",
"Files" : "Fichiers",
"All files" : "Tous les fichiers",
+ "File could not be found" : "Ce fichier n'a pu être trouvé.",
"Home" : "Mes fichiers",
"Close" : "Fermer",
"Favorites" : "Favoris",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 7db4cf95312..780ef364b9f 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -19,6 +19,7 @@
"Invalid directory." : "Dossier non valide.",
"Files" : "Fichiers",
"All files" : "Tous les fichiers",
+ "File could not be found" : "Ce fichier n'a pu être trouvé.",
"Home" : "Mes fichiers",
"Close" : "Fermer",
"Favorites" : "Favoris",
diff --git a/apps/files/l10n/he.js b/apps/files/l10n/he.js
index a0152b94d2e..13b0922efd2 100644
--- a/apps/files/l10n/he.js
+++ b/apps/files/l10n/he.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Invalid directory." : "תיקייה שגויה.",
"Files" : "קבצים",
"All files" : "כל הקבצים",
+ "File could not be found" : "הקובץ לא ניתן לאיתור",
"Home" : "בית",
"Close" : "סגירה",
"Favorites" : "מועדפים",
@@ -33,8 +34,14 @@ OC.L10N.register(
"Uploading..." : "העלאה...",
"..." : "...",
"{hours}:{minutes}:{seconds} hour{plural_s} left" : "{hours}:{minutes}:{seconds} hour{plural_s} left",
+ "{hours}:{minutes}h" : "{hours}:{minutes}שעות",
+ "{minutes}:{seconds} minute{plural_s} left" : "{minutes}:{seconds} דקות{plural_s} נשארו",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}דקות",
+ "{seconds} second{plural_s} left" : "{seconds} שניות{plural_s} נשארו",
+ "{seconds}s" : "{seconds}שניות",
"Any moment now..." : "עכשיו בכל רגע...",
"Soon..." : "בקרוב...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} מתוך {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
"Actions" : "פעולות",
"Download" : "הורדה",
diff --git a/apps/files/l10n/he.json b/apps/files/l10n/he.json
index c5e22507e04..57ecefe49b2 100644
--- a/apps/files/l10n/he.json
+++ b/apps/files/l10n/he.json
@@ -19,6 +19,7 @@
"Invalid directory." : "תיקייה שגויה.",
"Files" : "קבצים",
"All files" : "כל הקבצים",
+ "File could not be found" : "הקובץ לא ניתן לאיתור",
"Home" : "בית",
"Close" : "סגירה",
"Favorites" : "מועדפים",
@@ -31,8 +32,14 @@
"Uploading..." : "העלאה...",
"..." : "...",
"{hours}:{minutes}:{seconds} hour{plural_s} left" : "{hours}:{minutes}:{seconds} hour{plural_s} left",
+ "{hours}:{minutes}h" : "{hours}:{minutes}שעות",
+ "{minutes}:{seconds} minute{plural_s} left" : "{minutes}:{seconds} דקות{plural_s} נשארו",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}דקות",
+ "{seconds} second{plural_s} left" : "{seconds} שניות{plural_s} נשארו",
+ "{seconds}s" : "{seconds}שניות",
"Any moment now..." : "עכשיו בכל רגע...",
"Soon..." : "בקרוב...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} מתוך {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
"Actions" : "פעולות",
"Download" : "הורדה",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 94483ede498..974349d6333 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Invalid directory." : "Ongeldige directory.",
"Files" : "Bestanden",
"All files" : "Alle bestanden",
+ "File could not be found" : "Bestand kon niet worden gevonden",
"Home" : "Thuis",
"Close" : "Sluiten",
"Favorites" : "Favorieten",
@@ -32,6 +33,15 @@ OC.L10N.register(
"Could not get result from server." : "Kon het resultaat van de server niet terugkrijgen.",
"Uploading..." : "Uploading...",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "{hours}:{minutes}:{seconds} uur{plural_s} over",
+ "{hours}:{minutes}h" : "{hours}:{minutes}h",
+ "{minutes}:{seconds} minute{plural_s} left" : "{minutes}:{seconds} minuten{plural_s} over",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}m",
+ "{seconds} second{plural_s} left" : "{seconds} seconden{plural_s} over",
+ "{seconds}s" : "{seconds}en",
+ "Any moment now..." : "Heel snel nu...",
+ "Soon..." : "Binnenkort...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.",
"Actions" : "Acties",
"Download" : "Downloaden",
@@ -86,7 +96,7 @@ OC.L10N.register(
"A file or folder has been <strong>changed</strong>" : "Een bestand of map is <strong>gewijzigd</strong>",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Beperk meldingen over aanmaken en wijzigen aan uw <strong>favoriete bestanden</strong> <em>(Alleen stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "Een bestand of map is <strong>verwijderd</strong>",
- "A file or folder has been <strong>restored</strong>" : "Een bestand of een mmaps is <strong>hersteld</strong>",
+ "A file or folder has been <strong>restored</strong>" : "Een bestand of een map is <strong>hersteld</strong>",
"You created %1$s" : "Gecreëerd: %1$s",
"%2$s created %1$s" : "%2$s creëerde %1$s",
"%1$s was created in a public folder" : "%1$s werd gecreëerd in een openbare map",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 524570f487e..6caa76f49c1 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -19,6 +19,7 @@
"Invalid directory." : "Ongeldige directory.",
"Files" : "Bestanden",
"All files" : "Alle bestanden",
+ "File could not be found" : "Bestand kon niet worden gevonden",
"Home" : "Thuis",
"Close" : "Sluiten",
"Favorites" : "Favorieten",
@@ -30,6 +31,15 @@
"Could not get result from server." : "Kon het resultaat van de server niet terugkrijgen.",
"Uploading..." : "Uploading...",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "{hours}:{minutes}:{seconds} uur{plural_s} over",
+ "{hours}:{minutes}h" : "{hours}:{minutes}h",
+ "{minutes}:{seconds} minute{plural_s} left" : "{minutes}:{seconds} minuten{plural_s} over",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}m",
+ "{seconds} second{plural_s} left" : "{seconds} seconden{plural_s} over",
+ "{seconds}s" : "{seconds}en",
+ "Any moment now..." : "Heel snel nu...",
+ "Soon..." : "Binnenkort...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} van {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.",
"Actions" : "Acties",
"Download" : "Downloaden",
@@ -84,7 +94,7 @@
"A file or folder has been <strong>changed</strong>" : "Een bestand of map is <strong>gewijzigd</strong>",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Beperk meldingen over aanmaken en wijzigen aan uw <strong>favoriete bestanden</strong> <em>(Alleen stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "Een bestand of map is <strong>verwijderd</strong>",
- "A file or folder has been <strong>restored</strong>" : "Een bestand of een mmaps is <strong>hersteld</strong>",
+ "A file or folder has been <strong>restored</strong>" : "Een bestand of een map is <strong>hersteld</strong>",
"You created %1$s" : "Gecreëerd: %1$s",
"%2$s created %1$s" : "%2$s creëerde %1$s",
"%1$s was created in a public folder" : "%1$s werd gecreëerd in een openbare map",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index a366c6a967c..c5273a36ebd 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Invalid directory." : "Zła ścieżka.",
"Files" : "Pliki",
"All files" : "Wszystkie pliki",
+ "File could not be found" : "Nie można odnaleźć pliku",
"Home" : "Dom",
"Close" : "Zamknij",
"Favorites" : "Ulubione",
@@ -32,8 +33,15 @@ OC.L10N.register(
"Could not get result from server." : "Nie można uzyskać wyniku z serwera.",
"Uploading..." : "Wgrywanie....",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "Pozostało {hours}:{minutes}:{seconds} hour{plural_s} ",
+ "{hours}:{minutes}h" : "{hours}:{minutes}godz.",
+ "{minutes}:{seconds} minute{plural_s} left" : "Pozostało {minutes}:{seconds} minute{plural_s}",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}min.",
"{seconds} second{plural_s} left" : "Pozostało sekund: {seconds}",
"{seconds}s" : "{seconds} s",
+ "Any moment now..." : "Jeszcze chwilę...",
+ "Soon..." : "Wkrótce...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.",
"Actions" : "Akcje",
"Download" : "Pobierz",
@@ -49,6 +57,10 @@ OC.L10N.register(
"This directory is unavailable, please check the logs or contact the administrator" : "Ten folder jest niedostępny, proszę sprawdzić logi lub skontaktować się z administratorem.",
"Could not move \"{file}\", target exists" : "Nie można było przenieść „{file}” – plik o takiej nazwie już istnieje",
"Could not move \"{file}\"" : "Nie można było przenieść \"{file}\"",
+ "{newName} already exists" : "{newName} już istnieje",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Nie można zmienić nazwy \"{fileName}\", plik nie istnieje",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{targetName}\" jest juz używana w folderze \"{dir}\". Proszę wybrać inną nazwę.",
+ "Could not rename \"{fileName}\"" : "Nie można zmienić nazwy \"{fileName}\"",
"Could not create file \"{file}\"" : "Nie można było utworzyć pliku \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nie można było utworzyć pliku \"{file}\", ponieważ ten plik już istnieje.",
"Could not create folder \"{dir}\"" : "Nie można utworzyć folderu „{dir}”",
@@ -71,8 +83,10 @@ OC.L10N.register(
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "Miejsce dla {owner} jest na wyczerpaniu ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
"Path" : "Ścieżka",
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtów"],
"Favorited" : "Ulubione",
"Favorite" : "Ulubione",
+ "Local link" : "Lokalny odnośnik",
"Folder" : "Folder",
"New folder" : "Nowy folder",
"{newname} already exists" : "{newname} już istnieje",
@@ -80,6 +94,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "Wystąpił błąd podczas aktualizacji tagów",
"A new file or folder has been <strong>created</strong>" : "Nowy plik lub folder został <strong>utworzony</strong>",
"A file or folder has been <strong>changed</strong>" : "Plik lub folder został <strong>zmieniony</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ogranicz powiadomienia o utworzeniu i zmianach do swoich <strong>ulubionych plkow</strong> <em>(Tylko w strumieniu aktywności)</em>",
"A file or folder has been <strong>deleted</strong>" : "Plik lub folder został <strong>usunięty</strong>",
"A file or folder has been <strong>restored</strong>" : "Plik lub folder został <strong>przywrócy</strong>",
"You created %1$s" : "Utworzyłeś %1$s",
@@ -99,15 +114,20 @@ OC.L10N.register(
"Maximum upload size" : "Maksymalny rozmiar wysyłanego pliku",
"max. possible: " : "maks. możliwy:",
"Save" : "Zapisz",
+ "With PHP-FPM it might take 5 minutes for changes to be applied." : "Z PHP-FPM zastosowanie zmian może zająć 5 minut.",
+ "Missing permissions to edit from here." : "Brakuje uprawnień do edycji.",
"Settings" : "Ustawienia",
"Show hidden files" : "Pokaż ukryte pliki",
"WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Użyj tego adresu aby uzyskać <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dostęp do swoich plików poprzez WebDAV</a>",
"No files in here" : "Brak plików",
+ "Upload some content or sync with your devices!" : "Wgraj coś, albo wykonaj synchronizację ze swoimi urządzeniami.",
"No entries found in this folder" : "Brak wpisów w tym folderze",
"Select all" : "Wybierz wszystko",
"Upload too large" : "Ładowany plik jest za duży",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.",
"No favorites" : "Brak ulubionych",
+ "Files and folders you mark as favorite will show up here" : "Pliki i katalogi, które oznaczysz jako ulubione wyświetlą się tutaj",
"Text file" : "Plik tekstowy",
"New text file.txt" : "Nowy plik tekstowy.txt"
},
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 05b65b2f84a..c0be569faf6 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -19,6 +19,7 @@
"Invalid directory." : "Zła ścieżka.",
"Files" : "Pliki",
"All files" : "Wszystkie pliki",
+ "File could not be found" : "Nie można odnaleźć pliku",
"Home" : "Dom",
"Close" : "Zamknij",
"Favorites" : "Ulubione",
@@ -30,8 +31,15 @@
"Could not get result from server." : "Nie można uzyskać wyniku z serwera.",
"Uploading..." : "Wgrywanie....",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "Pozostało {hours}:{minutes}:{seconds} hour{plural_s} ",
+ "{hours}:{minutes}h" : "{hours}:{minutes}godz.",
+ "{minutes}:{seconds} minute{plural_s} left" : "Pozostało {minutes}:{seconds} minute{plural_s}",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}min.",
"{seconds} second{plural_s} left" : "Pozostało sekund: {seconds}",
"{seconds}s" : "{seconds} s",
+ "Any moment now..." : "Jeszcze chwilę...",
+ "Soon..." : "Wkrótce...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "Wysyłanie pliku jest w toku. Jeśli opuścisz tę stronę, wysyłanie zostanie przerwane.",
"Actions" : "Akcje",
"Download" : "Pobierz",
@@ -47,6 +55,10 @@
"This directory is unavailable, please check the logs or contact the administrator" : "Ten folder jest niedostępny, proszę sprawdzić logi lub skontaktować się z administratorem.",
"Could not move \"{file}\", target exists" : "Nie można było przenieść „{file}” – plik o takiej nazwie już istnieje",
"Could not move \"{file}\"" : "Nie można było przenieść \"{file}\"",
+ "{newName} already exists" : "{newName} już istnieje",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Nie można zmienić nazwy \"{fileName}\", plik nie istnieje",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nazwa \"{targetName}\" jest juz używana w folderze \"{dir}\". Proszę wybrać inną nazwę.",
+ "Could not rename \"{fileName}\"" : "Nie można zmienić nazwy \"{fileName}\"",
"Could not create file \"{file}\"" : "Nie można było utworzyć pliku \"{file}\"",
"Could not create file \"{file}\" because it already exists" : "Nie można było utworzyć pliku \"{file}\", ponieważ ten plik już istnieje.",
"Could not create folder \"{dir}\"" : "Nie można utworzyć folderu „{dir}”",
@@ -69,8 +81,10 @@
"Storage of {owner} is almost full ({usedSpacePercent}%)" : "Miejsce dla {owner} jest na wyczerpaniu ({usedSpacePercent}%)",
"Your storage is almost full ({usedSpacePercent}%)" : "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
"Path" : "Ścieżka",
+ "_%n byte_::_%n bytes_" : ["%n bajt","%n bajty","%n bajtów"],
"Favorited" : "Ulubione",
"Favorite" : "Ulubione",
+ "Local link" : "Lokalny odnośnik",
"Folder" : "Folder",
"New folder" : "Nowy folder",
"{newname} already exists" : "{newname} już istnieje",
@@ -78,6 +92,7 @@
"An error occurred while trying to update the tags" : "Wystąpił błąd podczas aktualizacji tagów",
"A new file or folder has been <strong>created</strong>" : "Nowy plik lub folder został <strong>utworzony</strong>",
"A file or folder has been <strong>changed</strong>" : "Plik lub folder został <strong>zmieniony</strong>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Ogranicz powiadomienia o utworzeniu i zmianach do swoich <strong>ulubionych plkow</strong> <em>(Tylko w strumieniu aktywności)</em>",
"A file or folder has been <strong>deleted</strong>" : "Plik lub folder został <strong>usunięty</strong>",
"A file or folder has been <strong>restored</strong>" : "Plik lub folder został <strong>przywrócy</strong>",
"You created %1$s" : "Utworzyłeś %1$s",
@@ -97,15 +112,20 @@
"Maximum upload size" : "Maksymalny rozmiar wysyłanego pliku",
"max. possible: " : "maks. możliwy:",
"Save" : "Zapisz",
+ "With PHP-FPM it might take 5 minutes for changes to be applied." : "Z PHP-FPM zastosowanie zmian może zająć 5 minut.",
+ "Missing permissions to edit from here." : "Brakuje uprawnień do edycji.",
"Settings" : "Ustawienia",
"Show hidden files" : "Pokaż ukryte pliki",
"WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Użyj tego adresu aby uzyskać <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dostęp do swoich plików poprzez WebDAV</a>",
"No files in here" : "Brak plików",
+ "Upload some content or sync with your devices!" : "Wgraj coś, albo wykonaj synchronizację ze swoimi urządzeniami.",
"No entries found in this folder" : "Brak wpisów w tym folderze",
"Select all" : "Wybierz wszystko",
"Upload too large" : "Ładowany plik jest za duży",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Pliki, które próbujesz przesłać, przekraczają maksymalną dopuszczalną wielkość.",
"No favorites" : "Brak ulubionych",
+ "Files and folders you mark as favorite will show up here" : "Pliki i katalogi, które oznaczysz jako ulubione wyświetlą się tutaj",
"Text file" : "Plik tekstowy",
"New text file.txt" : "Nowy plik tekstowy.txt"
},"pluralForm" :"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js
index 4e5afe599d2..632804a4fad 100644
--- a/apps/files/l10n/zh_CN.js
+++ b/apps/files/l10n/zh_CN.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Invalid directory." : "无效文件夹。",
"Files" : "文件",
"All files" : "全部文件",
+ "File could not be found" : "文件未找到",
"Home" : "家庭",
"Close" : "关闭",
"Favorites" : "收藏",
@@ -32,6 +33,15 @@ OC.L10N.register(
"Could not get result from server." : "不能从服务器得到结果",
"Uploading..." : "上传中...",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "剩余时间:{hours}:{minutes}:{seconds} ",
+ "{hours}:{minutes}h" : "{hours}:{minutes}",
+ "{minutes}:{seconds} minute{plural_s} left" : "剩余分钟:{minutes}:{seconds} ",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}",
+ "{seconds} second{plural_s} left" : "剩下{seconds} 秒",
+ "{seconds}s" : "{seconds}秒",
+ "Any moment now..." : "现在任何时候...",
+ "Soon..." : "很快...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "文件正在上传中。现在离开此页会导致上传动作被取消。",
"Actions" : "动作",
"Download" : "下载",
@@ -77,6 +87,7 @@ OC.L10N.register(
"_%n byte_::_%n bytes_" : ["%n 字节"],
"Favorited" : "已收藏",
"Favorite" : "收藏",
+ "Local link" : "本地链接",
"Folder" : "文件夹",
"New folder" : "增加文件夹",
"{newname} already exists" : "{newname} 已经存在",
@@ -107,7 +118,9 @@ OC.L10N.register(
"With PHP-FPM it might take 5 minutes for changes to be applied." : "对于 PHP-FPM 这个值改变后可能需要 5 分钟才会生效。",
"Missing permissions to edit from here." : "没有从这里进行编辑的权限",
"Settings" : "设置",
+ "Show hidden files" : "显示隐藏文件",
"WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>",
"No files in here" : "无文件",
"Upload some content or sync with your devices!" : "上传一些内容或者与设备同步!",
"No entries found in this folder" : "此文件夹中无项目",
diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json
index a4cd89935f6..60db09ade1a 100644
--- a/apps/files/l10n/zh_CN.json
+++ b/apps/files/l10n/zh_CN.json
@@ -19,6 +19,7 @@
"Invalid directory." : "无效文件夹。",
"Files" : "文件",
"All files" : "全部文件",
+ "File could not be found" : "文件未找到",
"Home" : "家庭",
"Close" : "关闭",
"Favorites" : "收藏",
@@ -30,6 +31,15 @@
"Could not get result from server." : "不能从服务器得到结果",
"Uploading..." : "上传中...",
"..." : "...",
+ "{hours}:{minutes}:{seconds} hour{plural_s} left" : "剩余时间:{hours}:{minutes}:{seconds} ",
+ "{hours}:{minutes}h" : "{hours}:{minutes}",
+ "{minutes}:{seconds} minute{plural_s} left" : "剩余分钟:{minutes}:{seconds} ",
+ "{minutes}:{seconds}m" : "{minutes}:{seconds}",
+ "{seconds} second{plural_s} left" : "剩下{seconds} 秒",
+ "{seconds}s" : "{seconds}秒",
+ "Any moment now..." : "现在任何时候...",
+ "Soon..." : "很快...",
+ "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})",
"File upload is in progress. Leaving the page now will cancel the upload." : "文件正在上传中。现在离开此页会导致上传动作被取消。",
"Actions" : "动作",
"Download" : "下载",
@@ -75,6 +85,7 @@
"_%n byte_::_%n bytes_" : ["%n 字节"],
"Favorited" : "已收藏",
"Favorite" : "收藏",
+ "Local link" : "本地链接",
"Folder" : "文件夹",
"New folder" : "增加文件夹",
"{newname} already exists" : "{newname} 已经存在",
@@ -105,7 +116,9 @@
"With PHP-FPM it might take 5 minutes for changes to be applied." : "对于 PHP-FPM 这个值改变后可能需要 5 分钟才会生效。",
"Missing permissions to edit from here." : "没有从这里进行编辑的权限",
"Settings" : "设置",
+ "Show hidden files" : "显示隐藏文件",
"WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>",
"No files in here" : "无文件",
"Upload some content or sync with your devices!" : "上传一些内容或者与设备同步!",
"No entries found in this folder" : "此文件夹中无项目",
diff --git a/apps/files_external/3rdparty/composer.json b/apps/files_external/3rdparty/composer.json
index 72335c8d891..158478741ec 100644
--- a/apps/files_external/3rdparty/composer.json
+++ b/apps/files_external/3rdparty/composer.json
@@ -9,7 +9,7 @@
},
"require": {
"icewind/smb": "1.1.0",
- "icewind/streams": "0.4"
+ "icewind/streams": "0.4.1"
}
}
diff --git a/apps/files_external/3rdparty/composer.lock b/apps/files_external/3rdparty/composer.lock
index 7161ae19a2c..8f324299ff3 100644
--- a/apps/files_external/3rdparty/composer.lock
+++ b/apps/files_external/3rdparty/composer.lock
@@ -4,8 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "hash": "8de0823d3d0a167ee24450a111cb67b9",
- "content-hash": "6733058865c1765823b31cfbb24552e1",
+ "hash": "8ed3150b0b3e916ad66558242b4cf2a0",
+ "content-hash": "70722dcee13b3ac1c1951479b7431c97",
"packages": [
{
"name": "icewind/smb",
@@ -51,16 +51,16 @@
},
{
"name": "icewind/streams",
- "version": "0.4.0",
+ "version": "0.4.1",
"source": {
"type": "git",
"url": "https://github.com/icewind1991/Streams.git",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3"
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/d3620e8dc410c86c2ba55579803679c4e0b289ac",
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac",
"shasum": ""
},
"require": {
@@ -88,7 +88,7 @@
}
],
"description": "A set of generic stream wrappers",
- "time": "2016-03-17 12:32:25"
+ "time": "2016-06-02 14:37:52"
}
],
"packages-dev": [],
diff --git a/apps/files_external/3rdparty/composer/autoload_classmap.php b/apps/files_external/3rdparty/composer/autoload_classmap.php
index 942dbce7336..0f9a43c6cd7 100644
--- a/apps/files_external/3rdparty/composer/autoload_classmap.php
+++ b/apps/files_external/3rdparty/composer/autoload_classmap.php
@@ -42,13 +42,6 @@ return array(
'Icewind\\SMB\\Server' => $vendorDir . '/icewind/smb/src/Server.php',
'Icewind\\SMB\\Share' => $vendorDir . '/icewind/smb/src/Share.php',
'Icewind\\SMB\\System' => $vendorDir . '/icewind/smb/src/System.php',
- 'Icewind\\SMB\\Test\\AbstractShare' => $vendorDir . '/icewind/smb/tests/AbstractShare.php',
- 'Icewind\\SMB\\Test\\NativeShare' => $vendorDir . '/icewind/smb/tests/NativeShare.php',
- 'Icewind\\SMB\\Test\\NativeStream' => $vendorDir . '/icewind/smb/tests/NativeStream.php',
- 'Icewind\\SMB\\Test\\Parser' => $vendorDir . '/icewind/smb/tests/Parser.php',
- 'Icewind\\SMB\\Test\\Server' => $vendorDir . '/icewind/smb/tests/Server.php',
- 'Icewind\\SMB\\Test\\Share' => $vendorDir . '/icewind/smb/tests/Share.php',
- 'Icewind\\SMB\\Test\\TestCase' => $vendorDir . '/icewind/smb/tests/TestCase.php',
'Icewind\\SMB\\TimeZoneProvider' => $vendorDir . '/icewind/smb/src/TimeZoneProvider.php',
'Icewind\\Streams\\CallbackWrapper' => $vendorDir . '/icewind/streams/src/CallbackWrapper.php',
'Icewind\\Streams\\Directory' => $vendorDir . '/icewind/streams/src/Directory.php',
@@ -60,14 +53,6 @@ return array(
'Icewind\\Streams\\Path' => $vendorDir . '/icewind/streams/src/Path.php',
'Icewind\\Streams\\RetryWrapper' => $vendorDir . '/icewind/streams/src/RetryWrapper.php',
'Icewind\\Streams\\SeekableWrapper' => $vendorDir . '/icewind/streams/src/SeekableWrapper.php',
- 'Icewind\\Streams\\Tests\\DirectoryFilter' => $vendorDir . '/icewind/streams/tests/DirectoryFilter.php',
- 'Icewind\\Streams\\Tests\\DirectoryWrapper' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
- 'Icewind\\Streams\\Tests\\DirectoryWrapperDummy' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
- 'Icewind\\Streams\\Tests\\DirectoryWrapperNull' => $vendorDir . '/icewind/streams/tests/DirectoryWrapper.php',
- 'Icewind\\Streams\\Tests\\PartialWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
- 'Icewind\\Streams\\Tests\\RetryWrapper' => $vendorDir . '/icewind/streams/tests/RetryWrapper.php',
- 'Icewind\\Streams\\Tests\\SeekableWrapper' => $vendorDir . '/icewind/streams/tests/SeekableWrapper.php',
- 'Icewind\\Streams\\Tests\\UrlCallBack' => $vendorDir . '/icewind/streams/tests/UrlCallBack.php',
'Icewind\\Streams\\Url' => $vendorDir . '/icewind/streams/src/Url.php',
'Icewind\\Streams\\UrlCallback' => $vendorDir . '/icewind/streams/src/UrlCallBack.php',
'Icewind\\Streams\\Wrapper' => $vendorDir . '/icewind/streams/src/Wrapper.php',
diff --git a/apps/files_external/3rdparty/composer/installed.json b/apps/files_external/3rdparty/composer/installed.json
index 31c602de3ca..127d2bd3a19 100644
--- a/apps/files_external/3rdparty/composer/installed.json
+++ b/apps/files_external/3rdparty/composer/installed.json
@@ -1,33 +1,34 @@
[
{
- "name": "icewind/streams",
- "version": "0.4.0",
- "version_normalized": "0.4.0.0",
+ "name": "icewind/smb",
+ "version": "v1.1.0",
+ "version_normalized": "1.1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/icewind1991/Streams.git",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3"
+ "url": "https://github.com/icewind1991/SMB.git",
+ "reference": "822f924967c68228555cea84ea44765f8e85c601"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/Streams/zipball/9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
- "reference": "9ca40274645a967ecc3408b0ca2e6255ead1d1d3",
+ "url": "https://api.github.com/repos/icewind1991/SMB/zipball/822f924967c68228555cea84ea44765f8e85c601",
+ "reference": "822f924967c68228555cea84ea44765f8e85c601",
"shasum": ""
},
"require": {
+ "icewind/streams": ">=0.2.0",
"php": ">=5.3"
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"satooshi/php-coveralls": "v1.0.0"
},
- "time": "2016-03-17 12:32:25",
+ "time": "2016-04-26 13:26:39",
"type": "library",
- "installation-source": "dist",
+ "installation-source": "source",
"autoload": {
"psr-4": {
- "Icewind\\Streams\\Tests\\": "tests/",
- "Icewind\\Streams\\": "src/"
+ "Icewind\\SMB\\": "src/",
+ "Icewind\\SMB\\Test\\": "tests/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -40,38 +41,37 @@
"email": "icewind@owncloud.com"
}
],
- "description": "A set of generic stream wrappers"
+ "description": "php wrapper for smbclient and libsmbclient-php"
},
{
- "name": "icewind/smb",
- "version": "v1.1.0",
- "version_normalized": "1.1.0.0",
+ "name": "icewind/streams",
+ "version": "0.4.1",
+ "version_normalized": "0.4.1.0",
"source": {
"type": "git",
- "url": "https://github.com/icewind1991/SMB.git",
- "reference": "822f924967c68228555cea84ea44765f8e85c601"
+ "url": "https://github.com/icewind1991/Streams.git",
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/icewind1991/SMB/zipball/822f924967c68228555cea84ea44765f8e85c601",
- "reference": "822f924967c68228555cea84ea44765f8e85c601",
+ "url": "https://api.github.com/repos/icewind1991/Streams/zipball/d3620e8dc410c86c2ba55579803679c4e0b289ac",
+ "reference": "d3620e8dc410c86c2ba55579803679c4e0b289ac",
"shasum": ""
},
"require": {
- "icewind/streams": ">=0.2.0",
"php": ">=5.3"
},
"require-dev": {
"phpunit/phpunit": "^4.8",
"satooshi/php-coveralls": "v1.0.0"
},
- "time": "2016-04-26 13:26:39",
+ "time": "2016-06-02 14:37:52",
"type": "library",
- "installation-source": "source",
+ "installation-source": "dist",
"autoload": {
"psr-4": {
- "Icewind\\SMB\\": "src/",
- "Icewind\\SMB\\Test\\": "tests/"
+ "Icewind\\Streams\\Tests\\": "tests/",
+ "Icewind\\Streams\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -84,6 +84,6 @@
"email": "icewind@owncloud.com"
}
],
- "description": "php wrapper for smbclient and libsmbclient-php"
+ "description": "A set of generic stream wrappers"
}
]
diff --git a/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php b/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php
index 84b43f6bd02..8238f19f7c9 100644
--- a/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php
+++ b/apps/files_external/3rdparty/icewind/streams/src/RetryWrapper.php
@@ -44,7 +44,7 @@ class RetryWrapper extends Wrapper {
$result = parent::stream_read($count);
$bytesReceived = strlen($result);
- while ($bytesReceived < $count && !$this->stream_eof()) {
+ while (strlen($result) > 0 && $bytesReceived < $count && !$this->stream_eof()) {
$result .= parent::stream_read($count - $bytesReceived);
$bytesReceived = strlen($result);
}
@@ -54,11 +54,13 @@ class RetryWrapper extends Wrapper {
public function stream_write($data) {
$bytesToSend = strlen($data);
- $result = parent::stream_write($data);
+ $bytesWritten = parent::stream_write($data);
+ $result = $bytesWritten;
- while ($result < $bytesToSend && !$this->stream_eof()) {
+ while ($bytesWritten > 0 && $result < $bytesToSend && !$this->stream_eof()) {
$dataLeft = substr($data, $result);
- $result += parent::stream_write($dataLeft);
+ $bytesWritten = parent::stream_write($dataLeft);
+ $result += $bytesWritten;
}
return $result;
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 2477f513db3..d210c158ec1 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -854,7 +854,7 @@ MountConfigListView.prototype = _.extend({
this.configureAuthMechanism($tr, storageConfig.authMechanism, onCompletion);
if (storageConfig.backendOptions) {
- $td.children().each(function() {
+ $td.find('input, select').each(function() {
var input = $(this);
var val = storageConfig.backendOptions[input.data('parameter')];
if (val !== undefined) {
@@ -1001,7 +1001,7 @@ MountConfigListView.prototype = _.extend({
newElement = $('<input type="password" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" placeholder="'+ trimmedPlaceholder+'" />');
} else if (placeholder.type === MountConfigListView.ParameterTypes.BOOLEAN) {
var checkboxId = _.uniqueId('checkbox_');
- newElement = $('<input type="checkbox" id="'+checkboxId+'" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" /><label for="'+checkboxId+'">'+ trimmedPlaceholder+'</label>');
+ newElement = $('<div><label><input type="checkbox" id="'+checkboxId+'" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" />'+ trimmedPlaceholder+'</label></div>');
} else if (placeholder.type === MountConfigListView.ParameterTypes.HIDDEN) {
newElement = $('<input type="hidden" class="'+classes.join(' ')+'" data-parameter="'+parameter+'" />');
} else {
diff --git a/apps/files_external/l10n/nl.js b/apps/files_external/l10n/nl.js
index 71c8d2aeac3..26ff4881eb3 100644
--- a/apps/files_external/l10n/nl.js
+++ b/apps/files_external/l10n/nl.js
@@ -7,6 +7,8 @@ OC.L10N.register(
"Step 1 failed. Exception: %s" : "Stap 1 is mislukt. Uitzondering: %s",
"Step 2 failed. Exception: %s" : "Stap 2 is mislukt. Uitzondering: %s",
"External storage" : "Externe opslag",
+ "Dropbox App Configuration" : "Dropbox app configuratie",
+ "Google Drive App Configuration" : "Google Drive app configuratie",
"Personal" : "Persoonlijk",
"System" : "Systeem",
"Grant access" : "Sta toegang toe",
@@ -16,6 +18,7 @@ OC.L10N.register(
"Error generating key pair" : "Fout bij genereren sleutelpaar",
"All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.",
"(group)" : "(groep)",
+ "Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Admin defined" : "Beheerder gedefinieerd",
"Saved" : "Bewaard",
"Empty response from the server" : "Lege reactie van de server",
diff --git a/apps/files_external/l10n/nl.json b/apps/files_external/l10n/nl.json
index 6603af23bea..958d1f7059c 100644
--- a/apps/files_external/l10n/nl.json
+++ b/apps/files_external/l10n/nl.json
@@ -5,6 +5,8 @@
"Step 1 failed. Exception: %s" : "Stap 1 is mislukt. Uitzondering: %s",
"Step 2 failed. Exception: %s" : "Stap 2 is mislukt. Uitzondering: %s",
"External storage" : "Externe opslag",
+ "Dropbox App Configuration" : "Dropbox app configuratie",
+ "Google Drive App Configuration" : "Google Drive app configuratie",
"Personal" : "Persoonlijk",
"System" : "Systeem",
"Grant access" : "Sta toegang toe",
@@ -14,6 +16,7 @@
"Error generating key pair" : "Fout bij genereren sleutelpaar",
"All users. Type to select user or group." : "Alle gebruikers. Tikken om een gebruiker of groep te selecteren.",
"(group)" : "(groep)",
+ "Compatibility with Mac NFD encoding (slow)" : "Compatibiliteit met Mac NFD encoding (traag)",
"Admin defined" : "Beheerder gedefinieerd",
"Saved" : "Bewaard",
"Empty response from the server" : "Lege reactie van de server",
diff --git a/apps/files_external/lib/Controller/GlobalStoragesController.php b/apps/files_external/lib/Controller/GlobalStoragesController.php
index 471e3b51593..71bef7dc714 100644
--- a/apps/files_external/lib/Controller/GlobalStoragesController.php
+++ b/apps/files_external/lib/Controller/GlobalStoragesController.php
@@ -127,6 +127,7 @@ class GlobalStoragesController extends StoragesController {
* @param array $applicableUsers users for which to mount the storage
* @param array $applicableGroups groups for which to mount the storage
* @param int $priority priority
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*/
diff --git a/apps/files_external/lib/Controller/StoragesController.php b/apps/files_external/lib/Controller/StoragesController.php
index e50426f4888..c1216008ffa 100644
--- a/apps/files_external/lib/Controller/StoragesController.php
+++ b/apps/files_external/lib/Controller/StoragesController.php
@@ -237,6 +237,7 @@ abstract class StoragesController extends Controller {
* on whether the remote storage is available or not.
*
* @param StorageConfig $storage storage configuration
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*/
protected function updateStorageStatus(StorageConfig &$storage, $testOnly = true) {
try {
@@ -291,6 +292,7 @@ abstract class StoragesController extends Controller {
* Get an external storage entry.
*
* @param int $id storage id
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*/
diff --git a/apps/files_external/lib/Controller/UserGlobalStoragesController.php b/apps/files_external/lib/Controller/UserGlobalStoragesController.php
index f65e578507d..3006e72666d 100644
--- a/apps/files_external/lib/Controller/UserGlobalStoragesController.php
+++ b/apps/files_external/lib/Controller/UserGlobalStoragesController.php
@@ -107,6 +107,7 @@ class UserGlobalStoragesController extends StoragesController {
* Get an external storage entry.
*
* @param int $id storage id
+ * @param bool $testOnly whether to storage should only test the connection or do more things
* @return DataResponse
*
* @NoAdminRequired
@@ -139,6 +140,7 @@ class UserGlobalStoragesController extends StoragesController {
*
* @param int $id storage id
* @param array $backendOptions backend-specific options
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*
diff --git a/apps/files_external/lib/Controller/UserStoragesController.php b/apps/files_external/lib/Controller/UserStoragesController.php
index 28663090e89..5dc23aad769 100644
--- a/apps/files_external/lib/Controller/UserStoragesController.php
+++ b/apps/files_external/lib/Controller/UserStoragesController.php
@@ -159,6 +159,7 @@ class UserStoragesController extends StoragesController {
* @param string $authMechanism authentication mechanism identifier
* @param array $backendOptions backend-specific options
* @param array $mountOptions backend-specific mount options
+ * @param bool $testOnly whether to storage should only test the connection or do more things
*
* @return DataResponse
*
diff --git a/apps/files_external/lib/Lib/Storage/Dropbox.php b/apps/files_external/lib/Lib/Storage/Dropbox.php
index f15cbba0469..f0f62f9f35a 100644
--- a/apps/files_external/lib/Lib/Storage/Dropbox.php
+++ b/apps/files_external/lib/Lib/Storage/Dropbox.php
@@ -32,6 +32,7 @@ namespace OCA\Files_External\Lib\Storage;
use GuzzleHttp\Exception\RequestException;
use Icewind\Streams\IteratorDirectory;
use Icewind\Streams\RetryWrapper;
+use OCP\Files\StorageNotAvailableException;
require_once __DIR__ . '/../../../3rdparty/Dropbox/autoload.php';
@@ -94,6 +95,8 @@ class Dropbox extends \OC\Files\Storage\Common {
if ($list) {
try {
$response = $this->dropbox->getMetaData($path);
+ } catch (\Dropbox_Exception_Forbidden $e) {
+ throw new StorageNotAvailableException('Dropbox API rate limit exceeded', StorageNotAvailableException::STATUS_ERROR, $e);
} catch (\Exception $exception) {
\OCP\Util::writeLog('files_external', $exception->getMessage(), \OCP\Util::ERROR);
return false;
@@ -127,6 +130,8 @@ class Dropbox extends \OC\Files\Storage\Common {
return $response;
}
return null;
+ } catch (\Dropbox_Exception_Forbidden $e) {
+ throw new StorageNotAvailableException('Dropbox API rate limit exceeded', StorageNotAvailableException::STATUS_ERROR, $e);
} catch (\Exception $exception) {
if ($exception instanceof \Dropbox_Exception_NotFound) {
// don't log, might be a file_exist check
diff --git a/apps/files_external/lib/Lib/Storage/Google.php b/apps/files_external/lib/Lib/Storage/Google.php
index 96f12800c10..0b617aafe9d 100644
--- a/apps/files_external/lib/Lib/Storage/Google.php
+++ b/apps/files_external/lib/Lib/Storage/Google.php
@@ -168,11 +168,11 @@ class Google extends \OC\Files\Storage\Common {
$path = trim($path, '/');
$this->driveFiles[$path] = $file;
if ($file === false) {
- // Set all child paths as false
+ // Remove all children
$len = strlen($path);
foreach ($this->driveFiles as $key => $file) {
if (substr($key, 0, $len) === $path) {
- $this->driveFiles[$key] = false;
+ unset($this->driveFiles[$key]);
}
}
}
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index c9cc40b0ba0..6662f637039 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -51,13 +51,17 @@
break;
case DefinitionParameter::VALUE_BOOLEAN: ?>
<?php $checkboxId = uniqid("checkbox_"); ?>
+ <div>
+ <label>
<input type="checkbox"
id="<?php p($checkboxId); ?>"
<?php if (!empty($classes)): ?> class="checkbox <?php p(implode(' ', $classes)); ?>"<?php endif; ?>
data-parameter="<?php p($parameter->getName()); ?>"
<?php if ($value === true): ?> checked="checked"<?php endif; ?>
/>
- <label for="<?php p($checkboxId); ?>"><?php p($placeholder); ?></label>
+ <?php p($placeholder); ?>
+ </label>
+ </div>
<?php
break;
case DefinitionParameter::VALUE_HIDDEN: ?>
diff --git a/apps/files_external/tests/env/start-swift-ceph.sh b/apps/files_external/tests/env/start-swift-ceph.sh
index 1e417c69057..ba17b8f42dd 100755
--- a/apps/files_external/tests/env/start-swift-ceph.sh
+++ b/apps/files_external/tests/env/start-swift-ceph.sh
@@ -24,6 +24,9 @@ docker_image=xenopathic/ceph-keystone
echo "Fetch recent ${docker_image} docker image"
docker pull ${docker_image}
+# debian 8 default comes without loaded loop module. please run "sudo modprobe loop" if you get an error here:
+lsmod | grep '^loop' || { echo "Error: kernel module loop not loaded. Needed by docker image ${docker_image}"; exit 1; }
+
# retrieve current folder to place the config in the parent folder
thisFolder=`echo $0 | sed 's#env/start-swift-ceph\.sh##'`
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 5740574ec4c..c6ae6903eec 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -32,14 +32,14 @@ $l = \OC::$server->getL10N('files_sharing');
\OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'files_sharing/lib/share/folder.php';
\OC::$CLASSPATH['OC\Files\Storage\Shared'] = 'files_sharing/lib/sharedstorage.php';
-$application = new \OCA\Files_Sharing\AppInfo\Application();
-$application->registerMountProviders();
-
\OCA\Files_Sharing\Helper::registerHooks();
\OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
\OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
+$application = new \OCA\Files_Sharing\AppInfo\Application();
+$application->registerMountProviders();
+
$eventDispatcher = \OC::$server->getEventDispatcher();
$eventDispatcher->addListener(
'OCA\Files::loadAdditionalScripts',
diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js
index 32fe49005a1..985e5807e5a 100644
--- a/apps/files_sharing/l10n/he.js
+++ b/apps/files_sharing/l10n/he.js
@@ -27,6 +27,25 @@ OC.L10N.register(
"Invalid ownCloud url" : "נתיב ownCloud לא חוקי",
"Shared by" : "שותף על־ידי",
"Sharing" : "שיתוף",
+ "Share API is disabled" : "שיתוף API מנוטרל",
+ "Wrong share ID, share doesn't exist" : "מספר זיהוי שיתוף שגוי, שיתוף אינו קיים",
+ "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
+ "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
+ "Wrong path, file/folder doesn't exist" : "נתיב שגוי, קובץ/תיקייה אינם קיימים",
+ "Please specify a valid user" : "יש לספק משתמש חוקי",
+ "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
+ "Please specify a valid group" : "יש לספק קבוצה חוקית",
+ "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
+ "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
+ "Sharing %s failed because the back end does not allow shares from type %s" : "שיתוף %s נכשל כיוון שהצד האחרוי ינו מאפשר שיתוף מסוג %s",
+ "Unknown share type" : "סוג שיתוף אינו מוכר",
+ "Not a directory" : "אינה תיקייה",
+ "Could not lock path" : "לא ניתן היה לנעול נתיב",
+ "Can't change permissions for public share links" : "לא ניתן לשנות הרשאות לקישורי שיתוף ציבוריים",
+ "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
+ "Cannot increase permissions" : "לא ניתן להעלות הרשאות",
"A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
"A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "קובץ או תיקייה עם שיתוף ציבורי <strong>הורדו</strong>",
diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json
index 4aa639d8e50..247c8e2239d 100644
--- a/apps/files_sharing/l10n/he.json
+++ b/apps/files_sharing/l10n/he.json
@@ -25,6 +25,25 @@
"Invalid ownCloud url" : "נתיב ownCloud לא חוקי",
"Shared by" : "שותף על־ידי",
"Sharing" : "שיתוף",
+ "Share API is disabled" : "שיתוף API מנוטרל",
+ "Wrong share ID, share doesn't exist" : "מספר זיהוי שיתוף שגוי, שיתוף אינו קיים",
+ "Could not delete share" : "לא ניתן היה למחוק את השיתוף",
+ "Please specify a file or folder path" : "יש לספק נתיב לקובץ או תיקייה",
+ "Wrong path, file/folder doesn't exist" : "נתיב שגוי, קובץ/תיקייה אינם קיימים",
+ "Please specify a valid user" : "יש לספק משתמש חוקי",
+ "Group sharing is disabled by the administrator" : "שיתוף קבוצתי מנוטרל על ידי המנהל",
+ "Please specify a valid group" : "יש לספק קבוצה חוקית",
+ "Public link sharing is disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload disabled by the administrator" : "שיתוף ציבורי מנוטרל על ידי המנהל",
+ "Public upload is only possible for publicly shared folders" : "העלאה ציבורית אפשרית רק אל תיקיות משותפות ציבוריות",
+ "Invalid date, date format must be YYYY-MM-DD" : "תאריך לא חוקי, תבנית התאריך חייבת להיות YYYY-MM-DD",
+ "Sharing %s failed because the back end does not allow shares from type %s" : "שיתוף %s נכשל כיוון שהצד האחרוי ינו מאפשר שיתוף מסוג %s",
+ "Unknown share type" : "סוג שיתוף אינו מוכר",
+ "Not a directory" : "אינה תיקייה",
+ "Could not lock path" : "לא ניתן היה לנעול נתיב",
+ "Can't change permissions for public share links" : "לא ניתן לשנות הרשאות לקישורי שיתוף ציבוריים",
+ "Wrong or no update parameter given" : "משתנה עדכון שניתן שגוי או לא קיים",
+ "Cannot increase permissions" : "לא ניתן להעלות הרשאות",
"A file or folder has been <strong>shared</strong>" : "קובץ או תיקייה <strong>שותפו<strong/>",
"A file or folder was shared from <strong>another server</strong>" : "קובץ או תיקייה שותפו מ- <strong>שרת אחר</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "קובץ או תיקייה עם שיתוף ציבורי <strong>הורדו</strong>",
diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index 2907ceaaea2..fda16c7acac 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -115,7 +115,8 @@ class Application extends App {
$server = $c->query('ServerContainer');
return new MountProvider(
$server->getConfig(),
- $server->getShareManager()
+ $server->getShareManager(),
+ $server->getLogger()
);
});
diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php
index a12b9597dbd..ca99393a1e0 100644
--- a/apps/files_sharing/lib/External/Storage.php
+++ b/apps/files_sharing/lib/External/Storage.php
@@ -89,8 +89,17 @@ class Storage extends DAV implements ISharedStorage {
'user' => $options['token'],
'password' => (string)$options['password']
));
+ }
- $this->getWatcher()->setPolicy(\OC\Files\Cache\Watcher::CHECK_ONCE);
+ public function getWatcher($path = '', $storage = null) {
+ if (!$storage) {
+ $storage = $this;
+ }
+ if (!isset($this->watcher)) {
+ $this->watcher = new Watcher($storage);
+ $this->watcher->setPolicy(\OC\Files\Cache\Watcher::CHECK_ONCE);
+ }
+ return $this->watcher;
}
public function getRemoteUser() {
diff --git a/apps/dav/appinfo/install.php b/apps/files_sharing/lib/External/Watcher.php
index d2ee06cc9fe..6be35bdeb3b 100644
--- a/apps/dav/appinfo/install.php
+++ b/apps/files_sharing/lib/External/Watcher.php
@@ -1,7 +1,6 @@
<?php
/**
- * @author Joas Schilling <nickvergessen@owncloud.com>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
+ * @author Robin Appelman <icewind@owncloud.com>
*
* @copyright Copyright (c) 2016, ownCloud, Inc.
* @license AGPL-3.0
@@ -20,7 +19,15 @@
*
*/
-use OCA\DAV\AppInfo\Application;
+namespace OCA\Files_Sharing\External;
-$app = new Application();
-$app->generateBirthdays();
+class Watcher extends \OC\Files\Cache\Watcher {
+ /**
+ * remove deleted files in $path from the cache
+ *
+ * @param string $path
+ */
+ public function cleanFolder($path) {
+ // not needed, the scanner takes care of this
+ }
+}
diff --git a/apps/files_sharing/lib/Helper.php b/apps/files_sharing/lib/Helper.php
index e4640f82eb6..2353a281b7e 100644
--- a/apps/files_sharing/lib/Helper.php
+++ b/apps/files_sharing/lib/Helper.php
@@ -277,19 +277,23 @@ class Helper {
/**
* get default share folder
*
+ * @param \OC\Files\View
* @return string
*/
- public static function getShareFolder() {
+ public static function getShareFolder($view = null) {
+ if ($view === null) {
+ $view = Filesystem::getView();
+ }
$shareFolder = \OC::$server->getConfig()->getSystemValue('share_folder', '/');
$shareFolder = Filesystem::normalizePath($shareFolder);
- if (!Filesystem::file_exists($shareFolder)) {
+ if (!$view->file_exists($shareFolder)) {
$dir = '';
$subdirs = explode('/', $shareFolder);
foreach ($subdirs as $subdir) {
$dir = $dir . '/' . $subdir;
- if (!Filesystem::is_dir($dir)) {
- Filesystem::mkdir($dir);
+ if (!$view->is_dir($dir)) {
+ $view->mkdir($dir);
}
}
}
diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php
index d8f355f2fd3..a9ae48860c2 100644
--- a/apps/files_sharing/lib/MountProvider.php
+++ b/apps/files_sharing/lib/MountProvider.php
@@ -26,6 +26,7 @@ namespace OCA\Files_Sharing;
use OCP\Files\Config\IMountProvider;
use OCP\Files\Storage\IStorageFactory;
use OCP\IConfig;
+use OCP\ILogger;
use OCP\IUser;
use OCP\Share\IManager;
@@ -41,12 +42,19 @@ class MountProvider implements IMountProvider {
protected $shareManager;
/**
+ * @var ILogger
+ */
+ protected $logger;
+
+ /**
* @param \OCP\IConfig $config
* @param IManager $shareManager
+ * @param ILogger $logger
*/
- public function __construct(IConfig $config, IManager $shareManager) {
+ public function __construct(IConfig $config, IManager $shareManager, ILogger $logger) {
$this->config = $config;
$this->shareManager = $shareManager;
+ $this->logger = $logger;
}
@@ -67,15 +75,20 @@ class MountProvider implements IMountProvider {
$mounts = [];
foreach ($shares as $share) {
- $mounts[] = new SharedMount(
- '\OC\Files\Storage\Shared',
- $mounts,
- [
- 'user' => $user->getUID(),
- 'newShare' => $share,
- ],
- $storageFactory
- );
+ try {
+ $mounts[] = new SharedMount(
+ '\OC\Files\Storage\Shared',
+ $mounts,
+ [
+ 'user' => $user->getUID(),
+ 'newShare' => $share,
+ ],
+ $storageFactory
+ );
+ } catch (\Exception $e) {
+ $this->logger->logException($e);
+ $this->logger->error('Error while trying to create shared mount');
+ }
}
// array_filter removes the null values from the array
diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php
index 83527053f43..2b066bd2d94 100644
--- a/apps/files_sharing/lib/SharedMount.php
+++ b/apps/files_sharing/lib/SharedMount.php
@@ -81,7 +81,7 @@ class SharedMount extends MountPoint implements MoveableMount {
$parent = dirname($share->getTarget());
if (!$this->recipientView->is_dir($parent)) {
- $parent = Helper::getShareFolder();
+ $parent = Helper::getShareFolder($this->recipientView);
}
$newMountPoint = $this->generateUniqueTarget(
diff --git a/apps/systemtags/l10n/ca.js b/apps/systemtags/l10n/ca.js
index 20ec2d4edb1..46d9d409662 100644
--- a/apps/systemtags/l10n/ca.js
+++ b/apps/systemtags/l10n/ca.js
@@ -2,6 +2,27 @@ OC.L10N.register(
"systemtags",
{
"Tags" : "Etiquetes",
+ "Tagged files" : "Fitxers marcats",
+ "Select tags to filter by" : "Selecciona les marques per filtrar-ne",
+ "Please select tags to filter by" : "Si us plau selecciona les marques per filtrar-ne",
+ "No files found for the selected tags" : "No s'han trobat fitxers per les marques sel·leccionades",
+ "<strong>System tags</strong> for a file have been modified" : "Les <strong>Marques de Sistema</strong> d'un fitxer s'han modificat",
+ "You assigned system tag %3$s" : "Has assignat la marca de sistema %3$s",
+ "%1$s assigned system tag %3$s" : "%1$s ha assignat la marca de sistema %3$s",
+ "You unassigned system tag %3$s" : "Has des-assignat la marca de sistema %3$s",
+ "%1$s unassigned system tag %3$s" : "%1$s ha des-assignat la marca de sistema %3$s",
+ "You created system tag %2$s" : "Has creat la marca de sistema %2$s",
+ "%1$s created system tag %2$s" : "%1$s ha creat la marca de sistema %2$s",
+ "You deleted system tag %2$s" : "Has esborrat la marca de sistema %2$s",
+ "%1$s deleted system tag %2$s" : "%1$s ha esborrat la marca de sistema %2$s",
+ "You updated system tag %3$s to %2$s" : "Has actualitzat les marques de sistema de la %3$s a la %2$s",
+ "%1$s updated system tag %3$s to %2$s" : "%1$s ha actualitzat les marques de sistema de la %3$s a la %2$s",
+ "You assigned system tag %3$s to %2$s" : "Has assignat les marques de sistema de la %3$s a la %2$s",
+ "%1$s assigned system tag %3$s to %2$s" : "%1$s ha assignat les marques de sistema de la %3$s a la %2$s",
+ "You unassigned system tag %3$s from %2$s" : "Has des-assignat les marques de sistema de la %3$s a la %2$s",
+ "%1$s unassigned system tag %3$s from %2$s" : "%1$s ha des-assignat les marques de sistema de la %3$s a la %2$s",
+ "%s (restricted)" : "%s (restringit)",
+ "%s (invisible)" : "%s (invisible)",
"No files in here" : "No hi ha arxius",
"No entries found in this folder" : "No hi ha entrades en aquesta carpeta",
"Name" : "Nom",
diff --git a/apps/systemtags/l10n/ca.json b/apps/systemtags/l10n/ca.json
index 87c8c678761..9bb1d6fba83 100644
--- a/apps/systemtags/l10n/ca.json
+++ b/apps/systemtags/l10n/ca.json
@@ -1,5 +1,26 @@
{ "translations": {
"Tags" : "Etiquetes",
+ "Tagged files" : "Fitxers marcats",
+ "Select tags to filter by" : "Selecciona les marques per filtrar-ne",
+ "Please select tags to filter by" : "Si us plau selecciona les marques per filtrar-ne",
+ "No files found for the selected tags" : "No s'han trobat fitxers per les marques sel·leccionades",
+ "<strong>System tags</strong> for a file have been modified" : "Les <strong>Marques de Sistema</strong> d'un fitxer s'han modificat",
+ "You assigned system tag %3$s" : "Has assignat la marca de sistema %3$s",
+ "%1$s assigned system tag %3$s" : "%1$s ha assignat la marca de sistema %3$s",
+ "You unassigned system tag %3$s" : "Has des-assignat la marca de sistema %3$s",
+ "%1$s unassigned system tag %3$s" : "%1$s ha des-assignat la marca de sistema %3$s",
+ "You created system tag %2$s" : "Has creat la marca de sistema %2$s",
+ "%1$s created system tag %2$s" : "%1$s ha creat la marca de sistema %2$s",
+ "You deleted system tag %2$s" : "Has esborrat la marca de sistema %2$s",
+ "%1$s deleted system tag %2$s" : "%1$s ha esborrat la marca de sistema %2$s",
+ "You updated system tag %3$s to %2$s" : "Has actualitzat les marques de sistema de la %3$s a la %2$s",
+ "%1$s updated system tag %3$s to %2$s" : "%1$s ha actualitzat les marques de sistema de la %3$s a la %2$s",
+ "You assigned system tag %3$s to %2$s" : "Has assignat les marques de sistema de la %3$s a la %2$s",
+ "%1$s assigned system tag %3$s to %2$s" : "%1$s ha assignat les marques de sistema de la %3$s a la %2$s",
+ "You unassigned system tag %3$s from %2$s" : "Has des-assignat les marques de sistema de la %3$s a la %2$s",
+ "%1$s unassigned system tag %3$s from %2$s" : "%1$s ha des-assignat les marques de sistema de la %3$s a la %2$s",
+ "%s (restricted)" : "%s (restringit)",
+ "%s (invisible)" : "%s (invisible)",
"No files in here" : "No hi ha arxius",
"No entries found in this folder" : "No hi ha entrades en aquesta carpeta",
"Name" : "Nom",
diff --git a/apps/systemtags/l10n/nl.js b/apps/systemtags/l10n/nl.js
index 3b4aa7eb56d..567b14aa1f4 100644
--- a/apps/systemtags/l10n/nl.js
+++ b/apps/systemtags/l10n/nl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"%1$s assigned system tag %3$s to %2$s" : "%1$s wees systeem tag %3$s aan %2$s toe",
"You unassigned system tag %3$s from %2$s" : "Je maakte toewijzing systeem tag %3$s van %2$s ongedaan",
"%1$s unassigned system tag %3$s from %2$s" : "%1$s verwijderde systeem tag %3$s van %2$s",
+ "%s (restricted)" : "%s (beperkt)",
"%s (invisible)" : "%s (onzichtbaar)",
"No files in here" : "Hier geen bestanden",
"No entries found in this folder" : "Niets gevonden in deze map",
diff --git a/apps/systemtags/l10n/nl.json b/apps/systemtags/l10n/nl.json
index f941ce3a4a6..f7d83699c2d 100644
--- a/apps/systemtags/l10n/nl.json
+++ b/apps/systemtags/l10n/nl.json
@@ -19,6 +19,7 @@
"%1$s assigned system tag %3$s to %2$s" : "%1$s wees systeem tag %3$s aan %2$s toe",
"You unassigned system tag %3$s from %2$s" : "Je maakte toewijzing systeem tag %3$s van %2$s ongedaan",
"%1$s unassigned system tag %3$s from %2$s" : "%1$s verwijderde systeem tag %3$s van %2$s",
+ "%s (restricted)" : "%s (beperkt)",
"%s (invisible)" : "%s (onzichtbaar)",
"No files in here" : "Hier geen bestanden",
"No entries found in this folder" : "Niets gevonden in deze map",
diff --git a/apps/systemtags/lib/Activity/Listener.php b/apps/systemtags/lib/Activity/Listener.php
index 9b6597119c6..435109053bd 100644
--- a/apps/systemtags/lib/Activity/Listener.php
+++ b/apps/systemtags/lib/Activity/Listener.php
@@ -188,6 +188,10 @@ class Listener {
$activity->setAffectedUser($user);
foreach ($tags as $tag) {
+ // don't publish activity for non-admins if tag is invisible
+ if (!$tag->isUserVisible() && !$this->groupManager->isAdmin($user)) {
+ continue;
+ }
if ($event->getEvent() === MapperEvent::EVENT_ASSIGN) {
$activity->setSubject(Extension::ASSIGN_TAG, [
$actor,
diff --git a/apps/updatenotification/l10n/ca.js b/apps/updatenotification/l10n/ca.js
index 5f6db3199a6..10e7328cb07 100644
--- a/apps/updatenotification/l10n/ca.js
+++ b/apps/updatenotification/l10n/ca.js
@@ -1,7 +1,19 @@
OC.L10N.register(
"updatenotification",
{
+ "Update notifications" : "Notificacions d'actualització",
"{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.",
- "Updater" : "Actualitzador"
+ "Updated channel" : "Canal actualitzat",
+ "ownCloud core" : "Nucli d'ownCloud",
+ "Update for %1$s to version %2$s is available." : "L'actualització per %1$s a la versió %2$s està disponible.",
+ "Updater" : "Actualitzador",
+ "A new version is available: %s" : "Una nova versió està disponible: %s",
+ "Open updater" : "Obrir actualitzador",
+ "Your version is up to date." : "La teva versió està actualitzada.",
+ "Checked on %s" : "Comprovat en %s",
+ "Update channel:" : "Actualitzar canal:",
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podràs actualitzar a una versió més recent / canal experimental. Però mai es pot fer un \"downgrade\" a un canal més estable.",
+ "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Només notificació d'actualitzacions d'aplicacions estan disponibles, degut a que el canal d'actualització per ownCloud seleccionat no permet les notificacions."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/ca.json b/apps/updatenotification/l10n/ca.json
index 74b1a731e90..673db0accd8 100644
--- a/apps/updatenotification/l10n/ca.json
+++ b/apps/updatenotification/l10n/ca.json
@@ -1,5 +1,17 @@
{ "translations": {
+ "Update notifications" : "Notificacions d'actualització",
"{version} is available. Get more information on how to update." : "Hi ha disponible la versió {version}. Obtingueu més informació sobre com actualitzar.",
- "Updater" : "Actualitzador"
+ "Updated channel" : "Canal actualitzat",
+ "ownCloud core" : "Nucli d'ownCloud",
+ "Update for %1$s to version %2$s is available." : "L'actualització per %1$s a la versió %2$s està disponible.",
+ "Updater" : "Actualitzador",
+ "A new version is available: %s" : "Una nova versió està disponible: %s",
+ "Open updater" : "Obrir actualitzador",
+ "Your version is up to date." : "La teva versió està actualitzada.",
+ "Checked on %s" : "Comprovat en %s",
+ "Update channel:" : "Actualitzar canal:",
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Sempre podràs actualitzar a una versió més recent / canal experimental. Però mai es pot fer un \"downgrade\" a un canal més estable.",
+ "Notify members of the following groups about available updates:" : "Notificar als membres dels següents grups sobre les actualitzacions disponibles:",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Només notificació d'actualitzacions d'aplicacions estan disponibles, degut a que el canal d'actualització per ownCloud seleccionat no permet les notificacions."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/nl.js b/apps/updatenotification/l10n/nl.js
index d7bc20bcfea..93b65f6976d 100644
--- a/apps/updatenotification/l10n/nl.js
+++ b/apps/updatenotification/l10n/nl.js
@@ -1,14 +1,19 @@
OC.L10N.register(
"updatenotification",
{
+ "Update notifications" : "Bijwerken meldingen",
"{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
"Updated channel" : "Bijgewerkt kanaal",
+ "ownCloud core" : "ownCloud core",
+ "Update for %1$s to version %2$s is available." : "Update voor %1$s naar versie %2$s is beschikbaar.",
"Updater" : "Updater",
"A new version is available: %s" : "Er is een nieuwe versie beschikbaar: %s",
"Open updater" : "Open updater",
"Your version is up to date." : "Uw versie is up to date.",
"Checked on %s" : "Gecontroleerd op %s",
"Update channel:" : "Bijwerkkanaal:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kunt altijd updaten naar een nieuwere versie of experimenteel kanaal. Maar terug naar een oudere versie of een stabieler kanaal is niet mogelijk."
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kunt altijd updaten naar een nieuwere versie of experimenteel kanaal. Maar terug naar een oudere versie of een stabieler kanaal is niet mogelijk.",
+ "Notify members of the following groups about available updates:" : "Geef een melding over beschikbare updates aan leden van de volgende groepen:",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Er zin alleen meldingen voor app updates beschikbaar, omdat het geselecteerde ownCloud update kanaal zelf geen meldingen toestaat."
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/updatenotification/l10n/nl.json b/apps/updatenotification/l10n/nl.json
index caecfa275f5..4c028cc5964 100644
--- a/apps/updatenotification/l10n/nl.json
+++ b/apps/updatenotification/l10n/nl.json
@@ -1,12 +1,17 @@
{ "translations": {
+ "Update notifications" : "Bijwerken meldingen",
"{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.",
"Updated channel" : "Bijgewerkt kanaal",
+ "ownCloud core" : "ownCloud core",
+ "Update for %1$s to version %2$s is available." : "Update voor %1$s naar versie %2$s is beschikbaar.",
"Updater" : "Updater",
"A new version is available: %s" : "Er is een nieuwe versie beschikbaar: %s",
"Open updater" : "Open updater",
"Your version is up to date." : "Uw versie is up to date.",
"Checked on %s" : "Gecontroleerd op %s",
"Update channel:" : "Bijwerkkanaal:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kunt altijd updaten naar een nieuwere versie of experimenteel kanaal. Maar terug naar een oudere versie of een stabieler kanaal is niet mogelijk."
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "U kunt altijd updaten naar een nieuwere versie of experimenteel kanaal. Maar terug naar een oudere versie of een stabieler kanaal is niet mogelijk.",
+ "Notify members of the following groups about available updates:" : "Geef een melding over beschikbare updates aan leden van de volgende groepen:",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Er zin alleen meldingen voor app updates beschikbaar, omdat het geselecteerde ownCloud update kanaal zelf geen meldingen toestaat."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/pl.js b/apps/updatenotification/l10n/pl.js
index d86fdf3c243..ffeb1b0601f 100644
--- a/apps/updatenotification/l10n/pl.js
+++ b/apps/updatenotification/l10n/pl.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Your version is up to date." : "Posiadasz aktualną wersję.",
"Checked on %s" : "Sprawdzone na %s",
"Update channel:" : "Kanał aktualizacji:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Możesz zawsze zaktualizować swoją wersję do nowego / ekperymentalnego kanału. Jednakże nie możesz powrócić do poprzedniej stabilniejszej wersji. "
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Możesz zawsze zaktualizować swoją wersję do nowego / ekperymentalnego kanału. Jednakże nie możesz powrócić do poprzedniej stabilniejszej wersji. ",
+ "Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach: ",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Tylko powiadomienia o aktualizacjach aplikacji są dostępne, gdyż wybrany kanał aktualizacji ownCloud nie zezwala na powiadomienia. "
},
"nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/updatenotification/l10n/pl.json b/apps/updatenotification/l10n/pl.json
index b5d7132d9f0..6f03b0105bf 100644
--- a/apps/updatenotification/l10n/pl.json
+++ b/apps/updatenotification/l10n/pl.json
@@ -10,6 +10,8 @@
"Your version is up to date." : "Posiadasz aktualną wersję.",
"Checked on %s" : "Sprawdzone na %s",
"Update channel:" : "Kanał aktualizacji:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Możesz zawsze zaktualizować swoją wersję do nowego / ekperymentalnego kanału. Jednakże nie możesz powrócić do poprzedniej stabilniejszej wersji. "
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Możesz zawsze zaktualizować swoją wersję do nowego / ekperymentalnego kanału. Jednakże nie możesz powrócić do poprzedniej stabilniejszej wersji. ",
+ "Notify members of the following groups about available updates:" : "Powiadom członków następujących grup o dostępnych aktualizacjach: ",
+ "Only notification for app updates are available, because the selected update channel for ownCloud itself does not allow notifications." : "Tylko powiadomienia o aktualizacjach aplikacji są dostępne, gdyż wybrany kanał aktualizacji ownCloud nie zezwala na powiadomienia. "
},"pluralForm" :"nplurals=3; plural=(n==1 ? 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/updatenotification/l10n/sl.js b/apps/updatenotification/l10n/sl.js
index 12ba787e5e4..a59a58731fb 100644
--- a/apps/updatenotification/l10n/sl.js
+++ b/apps/updatenotification/l10n/sl.js
@@ -4,6 +4,7 @@ OC.L10N.register(
"Update notifications" : "Posodobi obvestila",
"{version} is available. Get more information on how to update." : "Na voljo je nova različica {version}. Na voljo je več podrobnosti o nadgradnji.",
"Updated channel" : "Posodobljen kanal",
+ "ownCloud core" : "Jedro ownCloud",
"Update for %1$s to version %2$s is available." : "Posodobitev %1$s na različico %2$s je na voljo.",
"Updater" : "Posodabljalnik",
"A new version is available: %s" : "Na voljo je nova različica: %s",
diff --git a/apps/updatenotification/l10n/sl.json b/apps/updatenotification/l10n/sl.json
index ecc0e3519d4..c96c9666fb1 100644
--- a/apps/updatenotification/l10n/sl.json
+++ b/apps/updatenotification/l10n/sl.json
@@ -2,6 +2,7 @@
"Update notifications" : "Posodobi obvestila",
"{version} is available. Get more information on how to update." : "Na voljo je nova različica {version}. Na voljo je več podrobnosti o nadgradnji.",
"Updated channel" : "Posodobljen kanal",
+ "ownCloud core" : "Jedro ownCloud",
"Update for %1$s to version %2$s is available." : "Posodobitev %1$s na različico %2$s je na voljo.",
"Updater" : "Posodabljalnik",
"A new version is available: %s" : "Na voljo je nova različica: %s",
diff --git a/apps/user_ldap/l10n/he.js b/apps/user_ldap/l10n/he.js
index 385132a0b58..8ff1a2037e4 100644
--- a/apps/user_ldap/l10n/he.js
+++ b/apps/user_ldap/l10n/he.js
@@ -13,6 +13,7 @@ OC.L10N.register(
" Could not set configuration %s" : " לא ניתן היה לקבוע הגדרות %s",
"Action does not exist" : "פעולה לא קיימת",
"The Base DN appears to be wrong" : "בסיס DN נראה כשגוי",
+ "Testing configuration…" : "בדיקת תצורה...",
"Configuration incorrect" : "הגדרה שגויה",
"Configuration incomplete" : "הגדרה לא מלאה",
"Configuration OK" : "הגדרה בסדר",
@@ -95,6 +96,7 @@ OC.L10N.register(
"Test Base DN" : "בדיקת DN בסיסי",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "נמנע מבקשות אוטומטיות של LDAP. מועדף עבור התקנות גדולות, אבל מחייב ידע מסויים של LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "הכנסת מסנני LDAP ידנית (מומלץ עבוק תיקיות גדולות)",
+ "%s access is limited to users meeting these criteria:" : "%s גישה מוגבלת למשתמשים שעונים על קריטריונים אלו:",
"The filter specifies which LDAP users shall have access to the %s instance." : "הסינון קובע לאיזו משתמשי LDAP תהיה יכולת כניסה למקרה %s.",
"Verify settings and count users" : "מאמת הגדרות וסופר משתמשים",
"Saving" : "שמירה",
diff --git a/apps/user_ldap/l10n/he.json b/apps/user_ldap/l10n/he.json
index 44e94a58702..0ad2d1fc61b 100644
--- a/apps/user_ldap/l10n/he.json
+++ b/apps/user_ldap/l10n/he.json
@@ -11,6 +11,7 @@
" Could not set configuration %s" : " לא ניתן היה לקבוע הגדרות %s",
"Action does not exist" : "פעולה לא קיימת",
"The Base DN appears to be wrong" : "בסיס DN נראה כשגוי",
+ "Testing configuration…" : "בדיקת תצורה...",
"Configuration incorrect" : "הגדרה שגויה",
"Configuration incomplete" : "הגדרה לא מלאה",
"Configuration OK" : "הגדרה בסדר",
@@ -93,6 +94,7 @@
"Test Base DN" : "בדיקת DN בסיסי",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "נמנע מבקשות אוטומטיות של LDAP. מועדף עבור התקנות גדולות, אבל מחייב ידע מסויים של LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "הכנסת מסנני LDAP ידנית (מומלץ עבוק תיקיות גדולות)",
+ "%s access is limited to users meeting these criteria:" : "%s גישה מוגבלת למשתמשים שעונים על קריטריונים אלו:",
"The filter specifies which LDAP users shall have access to the %s instance." : "הסינון קובע לאיזו משתמשי LDAP תהיה יכולת כניסה למקרה %s.",
"Verify settings and count users" : "מאמת הגדרות וסופר משתמשים",
"Saving" : "שמירה",