summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authormbi <knox@users.noreply.github.com>2015-12-30 10:34:42 +0100
committermbi <knox@users.noreply.github.com>2015-12-30 10:34:42 +0100
commit63974992f9a0244df0bbff891956deec7d35904b (patch)
treea4152551e4a4366957e06572cf04e4e0e941f38f /apps/files
parent1aff941be6ea3c09e86e234b7e2dc77fe4aa3696 (diff)
parent45c41e2b2cefa97c9d8c3bc73cfc088839640d1d (diff)
downloadnextcloud-server-63974992f9a0244df0bbff891956deec7d35904b.tar.gz
nextcloud-server-63974992f9a0244df0bbff891956deec7d35904b.zip
Merge branch 'master' into master
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/admin.php2
-rw-r--r--apps/files/appinfo/register_command.php2
-rw-r--r--apps/files/command/scan.php190
-rw-r--r--apps/files/download.php2
-rw-r--r--apps/files/js/fileactions.js26
-rw-r--r--apps/files/js/fileactionsmenu.js8
-rw-r--r--apps/files/js/filelist.js63
-rw-r--r--apps/files/l10n/ar.js1
-rw-r--r--apps/files/l10n/ar.json1
-rw-r--r--apps/files/l10n/ast.js2
-rw-r--r--apps/files/l10n/ast.json2
-rw-r--r--apps/files/l10n/az.js2
-rw-r--r--apps/files/l10n/az.json2
-rw-r--r--apps/files/l10n/bn_BD.js1
-rw-r--r--apps/files/l10n/bn_BD.json1
-rw-r--r--apps/files/l10n/bs.js2
-rw-r--r--apps/files/l10n/bs.json2
-rw-r--r--apps/files/l10n/de_AT.js1
-rw-r--r--apps/files/l10n/de_AT.json1
-rw-r--r--apps/files/l10n/de_DE.js2
-rw-r--r--apps/files/l10n/de_DE.json2
-rw-r--r--apps/files/l10n/el.js2
-rw-r--r--apps/files/l10n/el.json2
-rw-r--r--apps/files/l10n/en_GB.js2
-rw-r--r--apps/files/l10n/en_GB.json2
-rw-r--r--apps/files/l10n/eo.js1
-rw-r--r--apps/files/l10n/eo.json1
-rw-r--r--apps/files/l10n/es.js3
-rw-r--r--apps/files/l10n/es.json3
-rw-r--r--apps/files/l10n/es_MX.js1
-rw-r--r--apps/files/l10n/es_MX.json1
-rw-r--r--apps/files/l10n/et_EE.js11
-rw-r--r--apps/files/l10n/et_EE.json11
-rw-r--r--apps/files/l10n/eu.js2
-rw-r--r--apps/files/l10n/eu.json2
-rw-r--r--apps/files/l10n/fa.js1
-rw-r--r--apps/files/l10n/fa.json1
-rw-r--r--apps/files/l10n/fi_FI.js2
-rw-r--r--apps/files/l10n/fi_FI.json2
-rw-r--r--apps/files/l10n/fr.js2
-rw-r--r--apps/files/l10n/fr.json2
-rw-r--r--apps/files/l10n/ia.js1
-rw-r--r--apps/files/l10n/ia.json1
-rw-r--r--apps/files/l10n/id.js2
-rw-r--r--apps/files/l10n/id.json2
-rw-r--r--apps/files/l10n/is.js1
-rw-r--r--apps/files/l10n/is.json1
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/km.js1
-rw-r--r--apps/files/l10n/km.json1
-rw-r--r--apps/files/l10n/kn.js2
-rw-r--r--apps/files/l10n/kn.json2
-rw-r--r--apps/files/l10n/ko.js2
-rw-r--r--apps/files/l10n/ko.json2
-rw-r--r--apps/files/l10n/lt_LT.js11
-rw-r--r--apps/files/l10n/lt_LT.json11
-rw-r--r--apps/files/l10n/mk.js1
-rw-r--r--apps/files/l10n/mk.json1
-rw-r--r--apps/files/l10n/nb_NO.js2
-rw-r--r--apps/files/l10n/nb_NO.json2
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/nn_NO.js1
-rw-r--r--apps/files/l10n/nn_NO.json1
-rw-r--r--apps/files/l10n/oc.js2
-rw-r--r--apps/files/l10n/oc.json2
-rw-r--r--apps/files/l10n/pl.js2
-rw-r--r--apps/files/l10n/pl.json2
-rw-r--r--apps/files/l10n/pt_BR.js17
-rw-r--r--apps/files/l10n/pt_BR.json17
-rw-r--r--apps/files/l10n/ro.js2
-rw-r--r--apps/files/l10n/ro.json2
-rw-r--r--apps/files/l10n/ru.js2
-rw-r--r--apps/files/l10n/ru.json2
-rw-r--r--apps/files/l10n/sl.js2
-rw-r--r--apps/files/l10n/sl.json2
-rw-r--r--apps/files/l10n/sq.js2
-rw-r--r--apps/files/l10n/sq.json2
-rw-r--r--apps/files/l10n/sr.js2
-rw-r--r--apps/files/l10n/sr.json2
-rw-r--r--apps/files/l10n/sr@latin.js2
-rw-r--r--apps/files/l10n/sr@latin.json2
-rw-r--r--apps/files/l10n/sv.js2
-rw-r--r--apps/files/l10n/sv.json2
-rw-r--r--apps/files/l10n/ug.js1
-rw-r--r--apps/files/l10n/ug.json1
-rw-r--r--apps/files/l10n/uk.js2
-rw-r--r--apps/files/l10n/uk.json2
-rw-r--r--apps/files/l10n/ur_PK.js1
-rw-r--r--apps/files/l10n/ur_PK.json1
-rw-r--r--apps/files/l10n/vi.js1
-rw-r--r--apps/files/l10n/vi.json1
-rw-r--r--apps/files/l10n/zh_TW.js2
-rw-r--r--apps/files/l10n/zh_TW.json2
-rw-r--r--apps/files/lib/helper.php8
-rw-r--r--apps/files/tests/backgroundjob/ScanFilesTest.php1
-rw-r--r--apps/files/tests/controller/apicontrollertest.php9
-rw-r--r--apps/files/tests/js/fileactionsmenuSpec.js20
-rw-r--r--apps/files/tests/js/filelistSpec.js45
-rw-r--r--apps/files/tests/service/tagservice.php5
101 files changed, 536 insertions, 61 deletions
diff --git a/apps/files/admin.php b/apps/files/admin.php
index f23f9b52698..a2092c600a7 100644
--- a/apps/files/admin.php
+++ b/apps/files/admin.php
@@ -33,7 +33,7 @@ $htaccessWorking=(getenv('htaccessWorking')=='true');
$upload_max_filesize = OC::$server->getIniWrapper()->getBytes('upload_max_filesize');
$post_max_size = OC::$server->getIniWrapper()->getBytes('post_max_size');
$maxUploadFilesize = OCP\Util::humanFileSize(min($upload_max_filesize, $post_max_size));
-if($_POST && OC_Util::isCallRegistered()) {
+if($_POST && \OC::$server->getRequest()->passesCSRFCheck()) {
if(isset($_POST['maxUploadSize'])) {
if(($setMaxSize = OC_Files::setUploadLimit(OCP\Util::computerFileSize($_POST['maxUploadSize']))) !== false) {
$maxUploadFilesize = OCP\Util::humanFileSize($setMaxSize);
diff --git a/apps/files/appinfo/register_command.php b/apps/files/appinfo/register_command.php
index 3042c259872..7e541ca26f2 100644
--- a/apps/files/appinfo/register_command.php
+++ b/apps/files/appinfo/register_command.php
@@ -20,5 +20,5 @@
*
*/
-$application->add(new OCA\Files\Command\Scan(OC_User::getManager()));
+$application->add(new OCA\Files\Command\Scan(\OC::$server->getUserManager()));
$application->add(new OCA\Files\Command\DeleteOrphanedFiles(\OC::$server->getDatabaseConnection()));
diff --git a/apps/files/command/scan.php b/apps/files/command/scan.php
index 31ae555e041..7e00d8a2312 100644
--- a/apps/files/command/scan.php
+++ b/apps/files/command/scan.php
@@ -32,6 +32,7 @@ use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
+use Symfony\Component\Console\Helper\Table;
class Scan extends Command {
@@ -39,6 +40,15 @@ class Scan extends Command {
* @var \OC\User\Manager $userManager
*/
private $userManager;
+ /** @var float */
+ protected $execTime = 0;
+ /** @var int */
+ protected $foldersCounter = 0;
+ /** @var int */
+ protected $filesCounter = 0;
+ /** @var bool */
+ protected $interrupted = false;
+
public function __construct(\OC\User\Manager $userManager) {
$this->userManager = $userManager;
@@ -64,7 +74,13 @@ class Scan extends Command {
'quiet',
'q',
InputOption::VALUE_NONE,
- 'suppress output'
+ 'suppress any output'
+ )
+ ->addOption(
+ 'verbose',
+ '-v|vv|vvv',
+ InputOption::VALUE_NONE,
+ 'verbose the output'
)
->addOption(
'all',
@@ -74,19 +90,31 @@ class Scan extends Command {
);
}
- protected function scanFiles($user, $path, $quiet, OutputInterface $output) {
+ protected function scanFiles($user, $path, $verbose, OutputInterface $output) {
$scanner = new \OC\Files\Utils\Scanner($user, \OC::$server->getDatabaseConnection(), \OC::$server->getLogger());
- if (!$quiet) {
+ # printout and count
+ if ($verbose) {
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
$output->writeln("Scanning file <info>$path</info>");
+ $this->filesCounter += 1;
});
$scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
$output->writeln("Scanning folder <info>$path</info>");
+ $this->foldersCounter += 1;
});
$scanner->listen('\OC\Files\Utils\Scanner', 'StorageNotAvailable', function (StorageNotAvailableException $e) use ($output) {
$output->writeln("Error while scanning, storage not available (" . $e->getMessage() . ")");
});
+ # count only
+ } else {
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function ($path) use ($output) {
+ $this->filesCounter += 1;
+ });
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function ($path) use ($output) {
+ $this->foldersCounter += 1;
+ });
}
+
try {
$scanner->scan($path);
} catch (ForbiddenException $e) {
@@ -95,6 +123,7 @@ class Scan extends Command {
}
}
+
protected function execute(InputInterface $input, OutputInterface $output) {
$inputPath = $input->getOption('path');
if ($inputPath) {
@@ -106,24 +135,173 @@ class Scan extends Command {
} else {
$users = $input->getArgument('user_id');
}
- $quiet = $input->getOption('quiet');
-
if (count($users) === 0) {
$output->writeln("<error>Please specify the user id to scan, \"--all\" to scan for all users or \"--path=...\"</error>");
return;
}
+ # no messaging level option means: no full printout but statistics
+ # $quiet means no print at all
+ # $verbose means full printout including statistics
+ # -q -v full stat
+ # 0 0 no yes
+ # 0 1 yes yes
+ # 1 -- no no (quiet overrules verbose)
+ $verbose = $input->getOption('verbose');
+ $quiet = $input->getOption('quiet');
+ # restrict the verbosity level to VERBOSITY_VERBOSE
+ if ($output->getVerbosity()>OutputInterface::VERBOSITY_VERBOSE) {
+ $output->setVerbosity(OutputInterface::VERBOSITY_VERBOSE);
+ }
+ if ($quiet) {
+ $verbose = false;
+ }
+
+ $this->initTools();
+
foreach ($users as $user) {
if (is_object($user)) {
$user = $user->getUID();
}
$path = $inputPath ? $inputPath : '/' . $user;
if ($this->userManager->userExists($user)) {
- $this->scanFiles($user, $path, $quiet, $output);
+ # full: printout data if $verbose was set
+ $this->scanFiles($user, $path, $verbose, $output);
} else {
$output->writeln("<error>Unknown user $user</error>");
}
}
+
+ # stat: printout statistics if $quiet was not set
+ if (!$quiet) {
+ $this->presentStats($output);
+ }
+
+ }
+
+
+ /**
+ * Checks if the command was interrupted by ctrl-c
+ */
+ protected function checkForInterruption($output) {
+ if ($this->hasBeenInterrupted()) {
+ $this->presentResults($output);
+ exit;
+ }
+ }
+
+
+ /**
+ * Initialises some useful tools for the Command
+ */
+ protected function initTools() {
+ // Start the timer
+ $this->execTime = -microtime(true);
+ // Convert PHP errors to exceptions
+ set_error_handler([$this, 'exceptionErrorHandler'], E_ALL);
+
+ // Collect interrupts and notify the running command
+ pcntl_signal(SIGTERM, [$this, 'cancelOperation']);
+ pcntl_signal(SIGINT, [$this, 'cancelOperation']);
+ }
+
+
+ /**
+ * Changes the status of the command to "interrupted"
+ *
+ * Gives a chance to the command to properly terminate what it's doing
+ */
+ private function cancelOperation() {
+ $this->interrupted = true;
+ }
+
+
+ /**
+ * Processes PHP errors as exceptions in order to be able to keep track of problems
+ *
+ * @see https://secure.php.net/manual/en/function.set-error-handler.php
+ *
+ * @param int $severity the level of the error raised
+ * @param string $message
+ * @param string $file the filename that the error was raised in
+ * @param int $line the line number the error was raised
+ *
+ * @throws \ErrorException
+ */
+ public function exceptionErrorHandler($severity, $message, $file, $line) {
+ if (!(error_reporting() & $severity)) {
+ // This error code is not included in error_reporting
+ return;
+ }
+ throw new \ErrorException($message, 0, $severity, $file, $line);
}
+
+
+ /**
+ * @return bool
+ */
+ protected function hasBeenInterrupted() {
+ $cancelled = false;
+ pcntl_signal_dispatch();
+ if ($this->interrupted) {
+ $cancelled = true;
+ }
+
+ return $cancelled;
+ }
+
+
+ /**
+ * @param OutputInterface $output
+ */
+ protected function presentStats(OutputInterface $output) {
+ // Stop the timer
+ $this->execTime += microtime(true);
+ $output->writeln("");
+
+ $headers = [
+ 'Folders', 'Files', 'Elapsed time'
+ ];
+
+ $this->showSummary($headers, null, $output);
+ }
+
+
+ /**
+ * Shows a summary of operations
+ *
+ * @param string[] $headers
+ * @param string[] $rows
+ * @param OutputInterface $output
+ */
+ protected function showSummary($headers, $rows, OutputInterface $output) {
+ $niceDate = $this->formatExecTime();
+ if (!$rows) {
+ $rows = [
+ $this->foldersCounter,
+ $this->filesCounter,
+ $niceDate,
+ ];
+ }
+ $table = new Table($output);
+ $table
+ ->setHeaders($headers)
+ ->setRows([$rows]);
+ $table->render();
+ }
+
+
+ /**
+ * Formats microtime into a human readable format
+ *
+ * @return string
+ */
+ protected function formatExecTime() {
+ list($secs, $tens) = explode('.', sprintf("%.1f", ($this->execTime)));
+ $niceDate = date('H:i:s', $secs) . '.' . $tens;
+
+ return $niceDate;
+ }
+
}
diff --git a/apps/files/download.php b/apps/files/download.php
index b0628e394be..b058f0ebf5b 100644
--- a/apps/files/download.php
+++ b/apps/files/download.php
@@ -39,7 +39,7 @@ if(!\OC\Files\Filesystem::file_exists($filename)) {
exit;
}
-$ftype=\OC_Helper::getSecureMimeType(\OC\Files\Filesystem::getMimeType( $filename ));
+$ftype=\OC::$server->getMimeTypeDetector()->getSecureMimeType(\OC\Files\Filesystem::getMimeType( $filename ));
header('Content-Type:'.$ftype);
OCP\Response::setContentDispositionHeader(basename($filename), 'attachment');
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 871a2149c88..67125f1570f 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -617,7 +617,16 @@
this.registerAction({
name: 'Delete',
- displayName: t('files', 'Delete'),
+ displayName: function(context) {
+ var mountType = context.$file.attr('data-mounttype');
+ var deleteTitle = t('files', 'Delete');
+ if (mountType === 'external-root') {
+ deleteTitle = t('files', 'Disconnect storage');
+ } else if (mountType === 'shared-root') {
+ deleteTitle = t('files', 'Unshare');
+ }
+ return deleteTitle;
+ },
mime: 'all',
order: 1000,
// permission is READ because we show a hint instead if there is no permission
@@ -668,8 +677,9 @@
* @typedef {Object} OCA.Files.FileAction
*
* @property {String} name identifier of the action
- * @property {String} displayName display name of the action, defaults
- * to the name given in name property
+ * @property {(String|OCA.Files.FileActions~displayNameFunction)} displayName
+ * display name string for the action, or function that returns the display name.
+ * Defaults to the name given in name property
* @property {String} mime mime type
* @property {int} permissions permissions
* @property {(Function|String)} icon icon path to the icon or function
@@ -703,6 +713,16 @@
*/
/**
+ * Display name function for actions.
+ * The function returns the display name of the action using
+ * the given context information..
+ *
+ * @callback OCA.Files.FileActions~displayNameFunction
+ * @param {OCA.Files.FileActionContext} context action context
+ * @return {String} display name
+ */
+
+ /**
* Action handler function for file actions
*
* @callback OCA.Files.FileActions~actionHandler
diff --git a/apps/files/js/fileactionsmenu.js b/apps/files/js/fileactionsmenu.js
index 67cbb48c965..9e51d8f1f1f 100644
--- a/apps/files/js/fileactionsmenu.js
+++ b/apps/files/js/fileactionsmenu.js
@@ -81,6 +81,7 @@
* Renders the menu with the currently set items
*/
render: function() {
+ var self = this;
var fileActions = this._context.fileActions;
var actions = fileActions.getActions(
fileActions.getCurrentMimeType(),
@@ -100,6 +101,13 @@
(!defaultAction || actionSpec.name !== defaultAction.name)
);
});
+ items = _.map(items, function(item) {
+ if (_.isFunction(item.displayName)) {
+ item = _.extend({}, item);
+ item.displayName = item.displayName(self._context);
+ }
+ return item;
+ });
items = items.sort(function(actionA, actionB) {
var orderA = actionA.order || 0;
var orderB = actionB.order || 0;
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 672c39a8bb1..0dbf4f938bb 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -990,13 +990,16 @@
}
if (fileData.mountType) {
- // FIXME: HACK: detect shared-root
- if (fileData.mountType === 'shared' && this.dirInfo.mountType !== 'shared') {
- // if parent folder isn't share, assume the displayed folder is a share root
- fileData.mountType = 'shared-root';
- } else if (fileData.mountType === 'external' && this.dirInfo.mountType !== 'external') {
- // if parent folder isn't external, assume the displayed folder is the external storage root
- fileData.mountType = 'external-root';
+ // dirInfo (parent) only exist for the "real" file list
+ if (this.dirInfo.id) {
+ // FIXME: HACK: detect shared-root
+ if (fileData.mountType === 'shared' && this.dirInfo.mountType !== 'shared' && this.dirInfo.mountType !== 'shared-root') {
+ // if parent folder isn't share, assume the displayed folder is a share root
+ fileData.mountType = 'shared-root';
+ } else if (fileData.mountType === 'external' && this.dirInfo.mountType !== 'external' && this.dirInfo.mountType !== 'external-root') {
+ // if parent folder isn't external, assume the displayed folder is the external storage root
+ fileData.mountType = 'external-root';
+ }
}
tr.attr('data-mounttype', fileData.mountType);
}
@@ -1065,7 +1068,7 @@
nameSpan.tooltip({placement: 'right'});
}
// dirs can show the number of uploaded files
- if (mime !== 'httpd/unix-directory') {
+ if (mime === 'httpd/unix-directory') {
linkElem.append($('<span></span>').attr({
'class': 'uploadtext',
'currentUploads': 0
@@ -1380,7 +1383,7 @@
* Returns list of webdav properties to request
*/
_getWebdavProperties: function() {
- return this.filesClient.getPropfindProperties();
+ return [].concat(this.filesClient.getPropfindProperties());
},
/**
@@ -2069,7 +2072,7 @@
*/
showFileBusyState: function(files, state) {
var self = this;
- if (!_.isArray(files)) {
+ if (!_.isArray(files) && !files.is) {
files = [files];
}
@@ -2077,10 +2080,13 @@
state = true;
}
- _.each(files, function($tr) {
+ _.each(files, function(fileName) {
// jquery element already ?
- if (!$tr.is) {
- $tr = self.findFileEl($tr);
+ var $tr;
+ if (_.isString(fileName)) {
+ $tr = self.findFileEl(fileName);
+ } else {
+ $tr = $(fileName);
}
var $thumbEl = $tr.find('.thumbnail');
@@ -2465,6 +2471,7 @@
}
});
fileUploadStart.on('fileuploadadd', function(e, data) {
+ console.log('XXXXXXX');
OC.Upload.log('filelist handle fileuploadadd', e, data);
//finish delete if we are uploading a deleted file
@@ -2484,8 +2491,7 @@
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 1) {
- var img = OC.imagePath('core', 'loading.gif');
- data.context.find('.thumbnail').css('background-image', 'url(' + img + ')');
+ self.showFileBusyState(uploadText.closest('tr'), true);
uploadText.text(translatedText);
uploadText.show();
} else {
@@ -2523,8 +2529,7 @@
uploadText.attr('currentUploads', currentUploads);
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 0) {
- var img = OC.imagePath('core', 'filetypes/folder');
- data.context.find('.thumbnail').css('background-image', 'url(' + img + ')');
+ self.showFileBusyState(uploadText.closest('tr'), false);
uploadText.text(translatedText);
uploadText.hide();
} else {
@@ -2601,18 +2606,15 @@
}
}
});
- fileUploadStart.on('fileuploadstop', function(e, data) {
- OC.Upload.log('filelist handle fileuploadstop', e, data);
+ fileUploadStart.on('fileuploadstop', function() {
+ OC.Upload.log('filelist handle fileuploadstop');
+
+ //cleanup uploading to a dir
+ var uploadText = self.$fileList.find('tr .uploadtext');
+ self.showFileBusyState(uploadText.closest('tr'), false);
+ uploadText.fadeOut();
+ uploadText.attr('currentUploads', 0);
- //if user pressed cancel hide upload chrome
- if (data.errorThrown === 'abort') {
- //cleanup uploading to a dir
- var uploadText = $('tr .uploadtext');
- var img = OC.imagePath('core', 'filetypes/folder');
- uploadText.parents('td.filename').find('.thumbnail').css('background-image', 'url(' + img + ')');
- uploadText.fadeOut();
- uploadText.attr('currentUploads', 0);
- }
self.updateStorageStatistics();
});
fileUploadStart.on('fileuploadfail', function(e, data) {
@@ -2621,9 +2623,8 @@
//if user pressed cancel hide upload chrome
if (data.errorThrown === 'abort') {
//cleanup uploading to a dir
- var uploadText = $('tr .uploadtext');
- var img = OC.imagePath('core', 'filetypes/folder');
- uploadText.parents('td.filename').find('.thumbnail').css('background-image', 'url(' + img + ')');
+ var uploadText = self.$fileList.find('tr .uploadtext');
+ self.showFileBusyState(uploadText.closest('tr'), false);
uploadText.fadeOut();
uploadText.attr('currentUploads', 0);
}
diff --git a/apps/files/l10n/ar.js b/apps/files/l10n/ar.js
index 953267393b2..021c6b52b32 100644
--- a/apps/files/l10n/ar.js
+++ b/apps/files/l10n/ar.js
@@ -34,6 +34,7 @@ OC.L10N.register(
"Download" : "تحميل",
"Rename" : "إعادة التسمية",
"Delete" : "حذف ",
+ "Unshare" : "إلغاء المشاركة",
"Details" : "تفاصيل",
"Select" : "اختار",
"Pending" : "قيد الانتظار",
diff --git a/apps/files/l10n/ar.json b/apps/files/l10n/ar.json
index 245fe9a0b9e..53385598c24 100644
--- a/apps/files/l10n/ar.json
+++ b/apps/files/l10n/ar.json
@@ -32,6 +32,7 @@
"Download" : "تحميل",
"Rename" : "إعادة التسمية",
"Delete" : "حذف ",
+ "Unshare" : "إلغاء المشاركة",
"Details" : "تفاصيل",
"Select" : "اختار",
"Pending" : "قيد الانتظار",
diff --git a/apps/files/l10n/ast.js b/apps/files/l10n/ast.js
index 8fc63c1ac35..637adcebc75 100644
--- a/apps/files/l10n/ast.js
+++ b/apps/files/l10n/ast.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Descargar",
"Rename" : "Renomar",
"Delete" : "Desaniciar",
+ "Disconnect storage" : "Desconeutar almacenamientu",
+ "Unshare" : "Dexar de compartir",
"Details" : "Detalles",
"Select" : "Esbillar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/ast.json b/apps/files/l10n/ast.json
index 33c119771f7..352fbd9fac3 100644
--- a/apps/files/l10n/ast.json
+++ b/apps/files/l10n/ast.json
@@ -32,6 +32,8 @@
"Download" : "Descargar",
"Rename" : "Renomar",
"Delete" : "Desaniciar",
+ "Disconnect storage" : "Desconeutar almacenamientu",
+ "Unshare" : "Dexar de compartir",
"Details" : "Detalles",
"Select" : "Esbillar",
"Pending" : "Pendiente",
diff --git a/apps/files/l10n/az.js b/apps/files/l10n/az.js
index cf7d81063ce..302bb051407 100644
--- a/apps/files/l10n/az.js
+++ b/apps/files/l10n/az.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Yüklə",
"Rename" : "Adı dəyiş",
"Delete" : "Sil",
+ "Disconnect storage" : "Daşıyıcını ayır",
+ "Unshare" : "Paylaşımı durdur",
"Details" : "Detallar",
"Select" : "Seç",
"Pending" : "Gözləmə",
diff --git a/apps/files/l10n/az.json b/apps/files/l10n/az.json
index f2c45fda2f7..b213c86cb2f 100644
--- a/apps/files/l10n/az.json
+++ b/apps/files/l10n/az.json
@@ -32,6 +32,8 @@
"Download" : "Yüklə",
"Rename" : "Adı dəyiş",
"Delete" : "Sil",
+ "Disconnect storage" : "Daşıyıcını ayır",
+ "Unshare" : "Paylaşımı durdur",
"Details" : "Detallar",
"Select" : "Seç",
"Pending" : "Gözləmə",
diff --git a/apps/files/l10n/bn_BD.js b/apps/files/l10n/bn_BD.js
index b968a225da7..0ee56888df0 100644
--- a/apps/files/l10n/bn_BD.js
+++ b/apps/files/l10n/bn_BD.js
@@ -26,6 +26,7 @@ OC.L10N.register(
"Download" : "ডাউনলোড",
"Rename" : "পূনঃনামকরণ",
"Delete" : "মুছে",
+ "Unshare" : "ভাগাভাগি বাতিল ",
"Details" : "বিস্তারিত",
"Pending" : "মুলতুবি",
"Name" : "রাম",
diff --git a/apps/files/l10n/bn_BD.json b/apps/files/l10n/bn_BD.json
index bed559330ad..15ec2b4b826 100644
--- a/apps/files/l10n/bn_BD.json
+++ b/apps/files/l10n/bn_BD.json
@@ -24,6 +24,7 @@
"Download" : "ডাউনলোড",
"Rename" : "পূনঃনামকরণ",
"Delete" : "মুছে",
+ "Unshare" : "ভাগাভাগি বাতিল ",
"Details" : "বিস্তারিত",
"Pending" : "মুলতুবি",
"Name" : "রাম",
diff --git a/apps/files/l10n/bs.js b/apps/files/l10n/bs.js
index 9da51ece871..278b6371771 100644
--- a/apps/files/l10n/bs.js
+++ b/apps/files/l10n/bs.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Preuzmi",
"Rename" : "Preimenuj",
"Delete" : "Izbriši",
+ "Disconnect storage" : "Diskonektuj pohranu",
+ "Unshare" : "Prestani dijeliti",
"Select" : "Izaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nemoguće odrediti datum",
diff --git a/apps/files/l10n/bs.json b/apps/files/l10n/bs.json
index 095fe47048d..678bedcbe36 100644
--- a/apps/files/l10n/bs.json
+++ b/apps/files/l10n/bs.json
@@ -32,6 +32,8 @@
"Download" : "Preuzmi",
"Rename" : "Preimenuj",
"Delete" : "Izbriši",
+ "Disconnect storage" : "Diskonektuj pohranu",
+ "Unshare" : "Prestani dijeliti",
"Select" : "Izaberi",
"Pending" : "Na čekanju",
"Unable to determine date" : "Nemoguće odrediti datum",
diff --git a/apps/files/l10n/de_AT.js b/apps/files/l10n/de_AT.js
index d7a77f9ee40..783ff4aaa6b 100644
--- a/apps/files/l10n/de_AT.js
+++ b/apps/files/l10n/de_AT.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Files" : "Dateien",
"Download" : "Herunterladen",
"Delete" : "Löschen",
+ "Unshare" : "Teilung zurücknehmen",
"Details" : "Details",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
diff --git a/apps/files/l10n/de_AT.json b/apps/files/l10n/de_AT.json
index 7381a96665a..2d54751bdf6 100644
--- a/apps/files/l10n/de_AT.json
+++ b/apps/files/l10n/de_AT.json
@@ -3,6 +3,7 @@
"Files" : "Dateien",
"Download" : "Herunterladen",
"Delete" : "Löschen",
+ "Unshare" : "Teilung zurücknehmen",
"Details" : "Details",
"New folder" : "Neuer Ordner",
"Upload" : "Hochladen",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index d65d062c75d..517799c1bcb 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Herunterladen",
"Rename" : "Umbenennen",
"Delete" : "Löschen",
+ "Disconnect storage" : "Speicher trennen",
+ "Unshare" : "Freigabe aufheben",
"Details" : "Details",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 79467fc7642..90e499bec2f 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -32,6 +32,8 @@
"Download" : "Herunterladen",
"Rename" : "Umbenennen",
"Delete" : "Löschen",
+ "Disconnect storage" : "Speicher trennen",
+ "Unshare" : "Freigabe aufheben",
"Details" : "Details",
"Select" : "Auswählen",
"Pending" : "Ausstehend",
diff --git a/apps/files/l10n/el.js b/apps/files/l10n/el.js
index f60e842199f..265381cd670 100644
--- a/apps/files/l10n/el.js
+++ b/apps/files/l10n/el.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Λήψη",
"Rename" : "Μετονομασία",
"Delete" : "Διαγραφή",
+ "Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
+ "Unshare" : "Διακοπή διαμοιρασμού",
"Details" : "Λεπτομέρειες",
"Select" : "Επιλογή",
"Pending" : "Εκκρεμεί",
diff --git a/apps/files/l10n/el.json b/apps/files/l10n/el.json
index 15cb56c87d1..1f0d997b3da 100644
--- a/apps/files/l10n/el.json
+++ b/apps/files/l10n/el.json
@@ -32,6 +32,8 @@
"Download" : "Λήψη",
"Rename" : "Μετονομασία",
"Delete" : "Διαγραφή",
+ "Disconnect storage" : "Αποσυνδεδεμένος αποθηκευτικός χώρος",
+ "Unshare" : "Διακοπή διαμοιρασμού",
"Details" : "Λεπτομέρειες",
"Select" : "Επιλογή",
"Pending" : "Εκκρεμεί",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index a190c45e846..96c5acf9170 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Download",
"Rename" : "Rename",
"Delete" : "Delete",
+ "Disconnect storage" : "Disconnect storage",
+ "Unshare" : "Unshare",
"Details" : "Details",
"Select" : "Select",
"Pending" : "Pending",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index ca8a60ec73b..4b0762f8b70 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -32,6 +32,8 @@
"Download" : "Download",
"Rename" : "Rename",
"Delete" : "Delete",
+ "Disconnect storage" : "Disconnect storage",
+ "Unshare" : "Unshare",
"Details" : "Details",
"Select" : "Select",
"Pending" : "Pending",
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index dbdd0422911..398d2f669b0 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Download" : "Elŝuti",
"Rename" : "Alinomigi",
"Delete" : "Forigi",
+ "Unshare" : "Malkunhavigi",
"Details" : "Detaloj",
"Select" : "Elekti",
"Pending" : "Traktotaj",
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index b858ccece4d..2a76d0ab2c9 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -26,6 +26,7 @@
"Download" : "Elŝuti",
"Rename" : "Alinomigi",
"Delete" : "Forigi",
+ "Unshare" : "Malkunhavigi",
"Details" : "Detaloj",
"Select" : "Elekti",
"Pending" : "Traktotaj",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 7bc628b8f9b..4b0ddbb7265 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Descargar",
"Rename" : "Renombrar",
"Delete" : "Eliminar",
+ "Disconnect storage" : "Desconectar almacenamiento",
+ "Unshare" : "Dejar de compartir",
"Details" : "Detalles",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
@@ -97,6 +99,7 @@ OC.L10N.register(
"Maximum upload size" : "Tamaño máximo de subida",
"max. possible: " : "máx. posible:",
"Save" : "Guardar",
+ "Missing permissions to edit from here." : "Faltan permisos para poder editar desde aquí.",
"Settings" : "Ajustes",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Use esta URL <a href=\"%s\" target=\"_blank\">para acceder via WebDAV</a>",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 27ebcb1da46..09411bc5b2a 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -32,6 +32,8 @@
"Download" : "Descargar",
"Rename" : "Renombrar",
"Delete" : "Eliminar",
+ "Disconnect storage" : "Desconectar almacenamiento",
+ "Unshare" : "Dejar de compartir",
"Details" : "Detalles",
"Select" : "Seleccionar",
"Pending" : "Pendiente",
@@ -95,6 +97,7 @@
"Maximum upload size" : "Tamaño máximo de subida",
"max. possible: " : "máx. posible:",
"Save" : "Guardar",
+ "Missing permissions to edit from here." : "Faltan permisos para poder editar desde aquí.",
"Settings" : "Ajustes",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Use esta URL <a href=\"%s\" target=\"_blank\">para acceder via WebDAV</a>",
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index 0e4dbddeda9..9d4924d1d50 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Download" : "Descargar",
"Rename" : "Renombrar",
"Delete" : "Eliminar",
+ "Unshare" : "Dejar de compartir",
"Details" : "Detalles",
"Pending" : "Pendiente",
"Name" : "Nombre",
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index cb903ddd9dc..9abf30f0c7c 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -26,6 +26,7 @@
"Download" : "Descargar",
"Rename" : "Renombrar",
"Delete" : "Eliminar",
+ "Unshare" : "Dejar de compartir",
"Details" : "Detalles",
"Pending" : "Pendiente",
"Name" : "Nombre",
diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js
index f136bd300b1..f577fa663fc 100644
--- a/apps/files/l10n/et_EE.js
+++ b/apps/files/l10n/et_EE.js
@@ -34,12 +34,19 @@ OC.L10N.register(
"Download" : "Lae alla",
"Rename" : "Nimeta ümber",
"Delete" : "Kustuta",
+ "Disconnect storage" : "Ühenda andmehoidla lahti.",
+ "Unshare" : "Lõpeta jagamine",
"Details" : "Üksikasjad",
"Select" : "Vali",
"Pending" : "Ootel",
"Unable to determine date" : "Kuupäeva tuvastamine ei õnnestunud",
"This operation is forbidden" : "See toiming on keelatud",
"This directory is unavailable, please check the logs or contact the administrator" : "See kaust pole saadaval. Palun kontrolli logifaile või võta ühendust administraatoriga",
+ "Could not move \"{file}\"" : "\"{file}\" liigutamine ebaõnnestus",
+ "{newName} already exists" : "{newName} on juba olemas",
+ "Could not rename \"{fileName}\"" : "\"{fileName}\" ümbernimetamine ebaõnnestus",
+ "Could not create file \"{file}\"" : "Faili \"{file}\" loomine ebaõnnestus",
+ "Error deleting file \"{fileName}\"." : "Tõrge faili \"{fileName}\" kustutamisel.",
"No entries in this folder match '{filter}'" : "Ükski sissekanne ei kattu filtriga '{filter}'",
"Name" : "Nimi",
"Size" : "Suurus",
@@ -62,6 +69,7 @@ OC.L10N.register(
"Favorite" : "Lemmik",
"Folder" : "Kaust",
"New folder" : "Uus kaust",
+ "{newname} already exists" : "{newname} on juba olemas",
"Upload" : "Lae üles",
"An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge",
"A new file or folder has been <strong>created</strong>" : "Uus fail või kataloog on <strong>loodud</strong>",
@@ -96,6 +104,7 @@ OC.L10N.register(
"Currently scanning" : "Praegu skännimisel",
"No favorites" : "Lemmikuid pole",
"Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
- "Text file" : "Tekstifail"
+ "Text file" : "Tekstifail",
+ "New text file.txt" : "Uus tekstifail.txt"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json
index 6e1961770c9..078b8d2d6d7 100644
--- a/apps/files/l10n/et_EE.json
+++ b/apps/files/l10n/et_EE.json
@@ -32,12 +32,19 @@
"Download" : "Lae alla",
"Rename" : "Nimeta ümber",
"Delete" : "Kustuta",
+ "Disconnect storage" : "Ühenda andmehoidla lahti.",
+ "Unshare" : "Lõpeta jagamine",
"Details" : "Üksikasjad",
"Select" : "Vali",
"Pending" : "Ootel",
"Unable to determine date" : "Kuupäeva tuvastamine ei õnnestunud",
"This operation is forbidden" : "See toiming on keelatud",
"This directory is unavailable, please check the logs or contact the administrator" : "See kaust pole saadaval. Palun kontrolli logifaile või võta ühendust administraatoriga",
+ "Could not move \"{file}\"" : "\"{file}\" liigutamine ebaõnnestus",
+ "{newName} already exists" : "{newName} on juba olemas",
+ "Could not rename \"{fileName}\"" : "\"{fileName}\" ümbernimetamine ebaõnnestus",
+ "Could not create file \"{file}\"" : "Faili \"{file}\" loomine ebaõnnestus",
+ "Error deleting file \"{fileName}\"." : "Tõrge faili \"{fileName}\" kustutamisel.",
"No entries in this folder match '{filter}'" : "Ükski sissekanne ei kattu filtriga '{filter}'",
"Name" : "Nimi",
"Size" : "Suurus",
@@ -60,6 +67,7 @@
"Favorite" : "Lemmik",
"Folder" : "Kaust",
"New folder" : "Uus kaust",
+ "{newname} already exists" : "{newname} on juba olemas",
"Upload" : "Lae üles",
"An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge",
"A new file or folder has been <strong>created</strong>" : "Uus fail või kataloog on <strong>loodud</strong>",
@@ -94,6 +102,7 @@
"Currently scanning" : "Praegu skännimisel",
"No favorites" : "Lemmikuid pole",
"Files and folders you mark as favorite will show up here" : "Siin kuvatakse faile ja kaustasid, mille oled märkinud lemmikuteks",
- "Text file" : "Tekstifail"
+ "Text file" : "Tekstifail",
+ "New text file.txt" : "Uus tekstifail.txt"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/eu.js b/apps/files/l10n/eu.js
index 9add1516c46..d7b9935ac5e 100644
--- a/apps/files/l10n/eu.js
+++ b/apps/files/l10n/eu.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Deskargatu",
"Rename" : "Berrizendatu",
"Delete" : "Ezabatu",
+ "Disconnect storage" : "Deskonektatu biltegia",
+ "Unshare" : "Ez elkarbanatu",
"Details" : "Xehetasunak",
"Select" : "hautatu",
"Pending" : "Zain",
diff --git a/apps/files/l10n/eu.json b/apps/files/l10n/eu.json
index 96943f33a9a..71dc13b5741 100644
--- a/apps/files/l10n/eu.json
+++ b/apps/files/l10n/eu.json
@@ -32,6 +32,8 @@
"Download" : "Deskargatu",
"Rename" : "Berrizendatu",
"Delete" : "Ezabatu",
+ "Disconnect storage" : "Deskonektatu biltegia",
+ "Unshare" : "Ez elkarbanatu",
"Details" : "Xehetasunak",
"Select" : "hautatu",
"Pending" : "Zain",
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index 46cbbc376ab..5f6c49e742a 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -34,6 +34,7 @@ OC.L10N.register(
"Download" : "دانلود",
"Rename" : "تغییرنام",
"Delete" : "حذف",
+ "Unshare" : "لغو اشتراک",
"Details" : "جزئیات",
"Select" : "انتخاب",
"Pending" : "در انتظار",
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index b9e32d69e37..a4d0add25ba 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -32,6 +32,7 @@
"Download" : "دانلود",
"Rename" : "تغییرنام",
"Delete" : "حذف",
+ "Unshare" : "لغو اشتراک",
"Details" : "جزئیات",
"Select" : "انتخاب",
"Pending" : "در انتظار",
diff --git a/apps/files/l10n/fi_FI.js b/apps/files/l10n/fi_FI.js
index 8bebb81fd35..5e1327f7556 100644
--- a/apps/files/l10n/fi_FI.js
+++ b/apps/files/l10n/fi_FI.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Lataa",
"Rename" : "Nimeä uudelleen",
"Delete" : "Poista",
+ "Disconnect storage" : "Katkaise yhteys tallennustilaan",
+ "Unshare" : "Peru jakaminen",
"Details" : "Tiedot",
"Select" : "Valitse",
"Pending" : "Odottaa",
diff --git a/apps/files/l10n/fi_FI.json b/apps/files/l10n/fi_FI.json
index 64b0a886b73..baf6c5d4499 100644
--- a/apps/files/l10n/fi_FI.json
+++ b/apps/files/l10n/fi_FI.json
@@ -32,6 +32,8 @@
"Download" : "Lataa",
"Rename" : "Nimeä uudelleen",
"Delete" : "Poista",
+ "Disconnect storage" : "Katkaise yhteys tallennustilaan",
+ "Unshare" : "Peru jakaminen",
"Details" : "Tiedot",
"Select" : "Valitse",
"Pending" : "Odottaa",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 6af58e93094..16f95572933 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Télécharger",
"Rename" : "Renommer",
"Delete" : "Supprimer",
+ "Disconnect storage" : "Déconnecter ce support de stockage",
+ "Unshare" : "Ne plus partager",
"Details" : "Détails",
"Select" : "Sélectionner",
"Pending" : "En attente",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index ba25b77e3df..3f8cdf95538 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -32,6 +32,8 @@
"Download" : "Télécharger",
"Rename" : "Renommer",
"Delete" : "Supprimer",
+ "Disconnect storage" : "Déconnecter ce support de stockage",
+ "Unshare" : "Ne plus partager",
"Details" : "Détails",
"Select" : "Sélectionner",
"Pending" : "En attente",
diff --git a/apps/files/l10n/ia.js b/apps/files/l10n/ia.js
index a1548e6b732..8310334287f 100644
--- a/apps/files/l10n/ia.js
+++ b/apps/files/l10n/ia.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Close" : "Clauder",
"Download" : "Discargar",
"Delete" : "Deler",
+ "Unshare" : "Leva compartir",
"Name" : "Nomine",
"Size" : "Dimension",
"Modified" : "Modificate",
diff --git a/apps/files/l10n/ia.json b/apps/files/l10n/ia.json
index bbc3f4bc02a..eee4980e34a 100644
--- a/apps/files/l10n/ia.json
+++ b/apps/files/l10n/ia.json
@@ -8,6 +8,7 @@
"Close" : "Clauder",
"Download" : "Discargar",
"Delete" : "Deler",
+ "Unshare" : "Leva compartir",
"Name" : "Nomine",
"Size" : "Dimension",
"Modified" : "Modificate",
diff --git a/apps/files/l10n/id.js b/apps/files/l10n/id.js
index 93ec698cfa4..07b33195d48 100644
--- a/apps/files/l10n/id.js
+++ b/apps/files/l10n/id.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Unduh",
"Rename" : "Ubah nama",
"Delete" : "Hapus",
+ "Disconnect storage" : "Memutuskan penyimpaan",
+ "Unshare" : "Batalkan berbagi",
"Details" : "Rincian",
"Select" : "Pilih",
"Pending" : "Tertunda",
diff --git a/apps/files/l10n/id.json b/apps/files/l10n/id.json
index dca3e7bd163..efe7c4559e7 100644
--- a/apps/files/l10n/id.json
+++ b/apps/files/l10n/id.json
@@ -32,6 +32,8 @@
"Download" : "Unduh",
"Rename" : "Ubah nama",
"Delete" : "Hapus",
+ "Disconnect storage" : "Memutuskan penyimpaan",
+ "Unshare" : "Batalkan berbagi",
"Details" : "Rincian",
"Select" : "Pilih",
"Pending" : "Tertunda",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 967e205145f..68b0ad573a5 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -17,6 +17,7 @@ OC.L10N.register(
"Download" : "Niðurhal",
"Rename" : "Endurskýra",
"Delete" : "Eyða",
+ "Unshare" : "Hætta deilingu",
"Select" : "Velja",
"Pending" : "Bíður",
"Name" : "Nafn",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index caff3b037d5..44153e94106 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -15,6 +15,7 @@
"Download" : "Niðurhal",
"Rename" : "Endurskýra",
"Delete" : "Eyða",
+ "Unshare" : "Hætta deilingu",
"Select" : "Velja",
"Pending" : "Bíður",
"Name" : "Nafn",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 93a013492a2..d3a567e1d18 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Scarica",
"Rename" : "Rinomina",
"Delete" : "Elimina",
+ "Disconnect storage" : "Disconnetti archiviazione",
+ "Unshare" : "Rimuovi condivisione",
"Details" : "Dettagli",
"Select" : "Seleziona",
"Pending" : "In corso",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 25d3834b0a3..611de295147 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -32,6 +32,8 @@
"Download" : "Scarica",
"Rename" : "Rinomina",
"Delete" : "Elimina",
+ "Disconnect storage" : "Disconnetti archiviazione",
+ "Unshare" : "Rimuovi condivisione",
"Details" : "Dettagli",
"Select" : "Seleziona",
"Pending" : "In corso",
diff --git a/apps/files/l10n/km.js b/apps/files/l10n/km.js
index f03aa9c4693..55080926fc3 100644
--- a/apps/files/l10n/km.js
+++ b/apps/files/l10n/km.js
@@ -10,6 +10,7 @@ OC.L10N.register(
"Download" : "ទាញយក",
"Rename" : "ប្ដូរ​ឈ្មោះ",
"Delete" : "លុប",
+ "Unshare" : "លែង​ចែក​រំលែក",
"Details" : "ព័ត៌មាន​លម្អិត",
"Pending" : "កំពុង​រង់ចាំ",
"Name" : "ឈ្មោះ",
diff --git a/apps/files/l10n/km.json b/apps/files/l10n/km.json
index f050b00b795..c1e9159ee88 100644
--- a/apps/files/l10n/km.json
+++ b/apps/files/l10n/km.json
@@ -8,6 +8,7 @@
"Download" : "ទាញយក",
"Rename" : "ប្ដូរ​ឈ្មោះ",
"Delete" : "លុប",
+ "Unshare" : "លែង​ចែក​រំលែក",
"Details" : "ព័ត៌មាន​លម្អិត",
"Pending" : "កំពុង​រង់ចាំ",
"Name" : "ឈ្មោះ",
diff --git a/apps/files/l10n/kn.js b/apps/files/l10n/kn.js
index 840837bdad3..f9fb8977f93 100644
--- a/apps/files/l10n/kn.js
+++ b/apps/files/l10n/kn.js
@@ -25,6 +25,8 @@ OC.L10N.register(
"Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ",
"Rename" : "ಮರುಹೆಸರಿಸು",
"Delete" : "ಅಳಿಸಿ",
+ "Disconnect storage" : "ಸಂಗ್ರಹ ಸಾಧನವನ್ನು ತೆಗೆದುಹಾಕಿ",
+ "Unshare" : "ಹಂಚಿಕೆಯನ್ನು ಹಿಂತೆಗೆ",
"Select" : "ಆಯ್ಕೆ ಮಾಡಿ",
"Pending" : "ಬಾಕಿ ಇದೆ",
"Unable to determine date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
diff --git a/apps/files/l10n/kn.json b/apps/files/l10n/kn.json
index d6345be732c..12446a3f8b4 100644
--- a/apps/files/l10n/kn.json
+++ b/apps/files/l10n/kn.json
@@ -23,6 +23,8 @@
"Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ",
"Rename" : "ಮರುಹೆಸರಿಸು",
"Delete" : "ಅಳಿಸಿ",
+ "Disconnect storage" : "ಸಂಗ್ರಹ ಸಾಧನವನ್ನು ತೆಗೆದುಹಾಕಿ",
+ "Unshare" : "ಹಂಚಿಕೆಯನ್ನು ಹಿಂತೆಗೆ",
"Select" : "ಆಯ್ಕೆ ಮಾಡಿ",
"Pending" : "ಬಾಕಿ ಇದೆ",
"Unable to determine date" : "ಮುಕ್ತಾಯ ದಿನಾಂಕ ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ",
diff --git a/apps/files/l10n/ko.js b/apps/files/l10n/ko.js
index 13e917e3cfa..e6d0f0a1b89 100644
--- a/apps/files/l10n/ko.js
+++ b/apps/files/l10n/ko.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "다운로드",
"Rename" : "이름 바꾸기",
"Delete" : "삭제",
+ "Disconnect storage" : "저장소 연결 해제",
+ "Unshare" : "공유 해제",
"Details" : "자세한 정보",
"Select" : "선택",
"Pending" : "대기 중",
diff --git a/apps/files/l10n/ko.json b/apps/files/l10n/ko.json
index 1e77ab1b9bc..e695b9cd42c 100644
--- a/apps/files/l10n/ko.json
+++ b/apps/files/l10n/ko.json
@@ -32,6 +32,8 @@
"Download" : "다운로드",
"Rename" : "이름 바꾸기",
"Delete" : "삭제",
+ "Disconnect storage" : "저장소 연결 해제",
+ "Unshare" : "공유 해제",
"Details" : "자세한 정보",
"Select" : "선택",
"Pending" : "대기 중",
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index b4001e0c8ea..e93fb079d56 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -40,6 +40,17 @@ OC.L10N.register(
"Unable to determine date" : "Nepavyksta nustatyti datos",
"This operation is forbidden" : "Ši operacija yra uždrausta",
"This directory is unavailable, please check the logs or contact the administrator" : "Katalogas nepasiekiamas, prašome peržiūrėti žurnalo įrašus arba susisiekti su administratoriumi",
+ "Could not move \"{file}\", target exists" : "Nepavyko perkelti \"{file}\", toks jau egzistuoja",
+ "Could not move \"{file}\"" : "Nepavyko perkelti \"{file}\"",
+ "{newName} already exists" : "{newName} jau egzistuoja",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Nepavyko pervadinti failo \"{fileName}\", nes jis jau nebeegzistuoja",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Pavadinimas \"{targetName}\" jau naudojamas aplanke \"{dir}\". Prašome pasirinkti kitokį pavadinimą.",
+ "Could not rename \"{fileName}\"" : "Nepavyko pervadinti failo \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Nepavyko sukurti failo \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Nepavyko sukurti failo \"{file}\" - failas su tokiu pavadinimu jau egzistuoja",
+ "Could not create folder \"{dir}\"" : "Nepavyko sukurti aplanko \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Nepavyko sukurti aplanko \"{dir}\"- aplankas su tokiu pavadinimu jau egzistuoja",
+ "Error deleting file \"{fileName}\"." : "Klaida trinant failą \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Nėra įrašų šiame aplanko atitikmeniui „{filter}“",
"Name" : "Pavadinimas",
"Size" : "Dydis",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index ba8610da86b..e6724be98cf 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -38,6 +38,17 @@
"Unable to determine date" : "Nepavyksta nustatyti datos",
"This operation is forbidden" : "Ši operacija yra uždrausta",
"This directory is unavailable, please check the logs or contact the administrator" : "Katalogas nepasiekiamas, prašome peržiūrėti žurnalo įrašus arba susisiekti su administratoriumi",
+ "Could not move \"{file}\", target exists" : "Nepavyko perkelti \"{file}\", toks jau egzistuoja",
+ "Could not move \"{file}\"" : "Nepavyko perkelti \"{file}\"",
+ "{newName} already exists" : "{newName} jau egzistuoja",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Nepavyko pervadinti failo \"{fileName}\", nes jis jau nebeegzistuoja",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Pavadinimas \"{targetName}\" jau naudojamas aplanke \"{dir}\". Prašome pasirinkti kitokį pavadinimą.",
+ "Could not rename \"{fileName}\"" : "Nepavyko pervadinti failo \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Nepavyko sukurti failo \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Nepavyko sukurti failo \"{file}\" - failas su tokiu pavadinimu jau egzistuoja",
+ "Could not create folder \"{dir}\"" : "Nepavyko sukurti aplanko \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Nepavyko sukurti aplanko \"{dir}\"- aplankas su tokiu pavadinimu jau egzistuoja",
+ "Error deleting file \"{fileName}\"." : "Klaida trinant failą \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Nėra įrašų šiame aplanko atitikmeniui „{filter}“",
"Name" : "Pavadinimas",
"Size" : "Dydis",
diff --git a/apps/files/l10n/mk.js b/apps/files/l10n/mk.js
index 92616a372a3..7a387afee66 100644
--- a/apps/files/l10n/mk.js
+++ b/apps/files/l10n/mk.js
@@ -54,6 +54,7 @@ OC.L10N.register(
"Settings" : "Подесувања",
"WebDAV" : "WebDAV",
"Cancel upload" : "Откажи прикачување",
+ "No entries found in this folder" : "Нема ништо во оваа папка",
"Upload too large" : "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
"Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте.",
diff --git a/apps/files/l10n/mk.json b/apps/files/l10n/mk.json
index 147707256c6..acf8f546d73 100644
--- a/apps/files/l10n/mk.json
+++ b/apps/files/l10n/mk.json
@@ -52,6 +52,7 @@
"Settings" : "Подесувања",
"WebDAV" : "WebDAV",
"Cancel upload" : "Откажи прикачување",
+ "No entries found in this folder" : "Нема ништо во оваа папка",
"Upload too large" : "Фајлот кој се вчитува е преголем",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Датотеките кои се обидувате да ги подигнете ја надминуваат максималната големина за подигнување датотеки на овој сервер.",
"Files are being scanned, please wait." : "Се скенираат датотеки, ве молам почекајте.",
diff --git a/apps/files/l10n/nb_NO.js b/apps/files/l10n/nb_NO.js
index 9d01ad626b7..7f933c2e6a0 100644
--- a/apps/files/l10n/nb_NO.js
+++ b/apps/files/l10n/nb_NO.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Last ned",
"Rename" : "Gi nytt navn",
"Delete" : "Slett",
+ "Disconnect storage" : "Koble fra lagring",
+ "Unshare" : "Avslutt deling",
"Details" : "Detaljer",
"Select" : "Velg",
"Pending" : "Ventende",
diff --git a/apps/files/l10n/nb_NO.json b/apps/files/l10n/nb_NO.json
index 32eb320296c..ca895007f62 100644
--- a/apps/files/l10n/nb_NO.json
+++ b/apps/files/l10n/nb_NO.json
@@ -32,6 +32,8 @@
"Download" : "Last ned",
"Rename" : "Gi nytt navn",
"Delete" : "Slett",
+ "Disconnect storage" : "Koble fra lagring",
+ "Unshare" : "Avslutt deling",
"Details" : "Detaljer",
"Select" : "Velg",
"Pending" : "Ventende",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index 4169c053269..d64dc68c474 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Downloaden",
"Rename" : "Naam wijzigen",
"Delete" : "Verwijderen",
+ "Disconnect storage" : "Verbinding met opslag verbreken",
+ "Unshare" : "Stop met delen",
"Details" : "Details",
"Select" : "Selecteer",
"Pending" : "In behandeling",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 07210b13829..1268cc10863 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -32,6 +32,8 @@
"Download" : "Downloaden",
"Rename" : "Naam wijzigen",
"Delete" : "Verwijderen",
+ "Disconnect storage" : "Verbinding met opslag verbreken",
+ "Unshare" : "Stop met delen",
"Details" : "Details",
"Select" : "Selecteer",
"Pending" : "In behandeling",
diff --git a/apps/files/l10n/nn_NO.js b/apps/files/l10n/nn_NO.js
index efe3707c213..519387d6baf 100644
--- a/apps/files/l10n/nn_NO.js
+++ b/apps/files/l10n/nn_NO.js
@@ -28,6 +28,7 @@ OC.L10N.register(
"Download" : "Last ned",
"Rename" : "Endra namn",
"Delete" : "Slett",
+ "Unshare" : "Udel",
"Details" : "Detaljar",
"Pending" : "Under vegs",
"Name" : "Namn",
diff --git a/apps/files/l10n/nn_NO.json b/apps/files/l10n/nn_NO.json
index 929f8c0d7fe..a29e272ebac 100644
--- a/apps/files/l10n/nn_NO.json
+++ b/apps/files/l10n/nn_NO.json
@@ -26,6 +26,7 @@
"Download" : "Last ned",
"Rename" : "Endra namn",
"Delete" : "Slett",
+ "Unshare" : "Udel",
"Details" : "Detaljar",
"Pending" : "Under vegs",
"Name" : "Namn",
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
index a3088b663fd..a6f59679a18 100644
--- a/apps/files/l10n/oc.js
+++ b/apps/files/l10n/oc.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Telecargar",
"Rename" : "Renomenar",
"Delete" : "Suprimir",
+ "Disconnect storage" : "Desconnectar aqueste supòrt d'emmagazinatge",
+ "Unshare" : "Partejar pas",
"Details" : "Detalhs",
"Select" : "Seleccionar",
"Pending" : "En espèra",
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
index c6048605696..61caa1724b5 100644
--- a/apps/files/l10n/oc.json
+++ b/apps/files/l10n/oc.json
@@ -32,6 +32,8 @@
"Download" : "Telecargar",
"Rename" : "Renomenar",
"Delete" : "Suprimir",
+ "Disconnect storage" : "Desconnectar aqueste supòrt d'emmagazinatge",
+ "Unshare" : "Partejar pas",
"Details" : "Detalhs",
"Select" : "Seleccionar",
"Pending" : "En espèra",
diff --git a/apps/files/l10n/pl.js b/apps/files/l10n/pl.js
index 6478fbe5eb4..de1d8581243 100644
--- a/apps/files/l10n/pl.js
+++ b/apps/files/l10n/pl.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Pobierz",
"Rename" : "Zmień nazwę",
"Delete" : "Usuń",
+ "Disconnect storage" : "Odłącz magazyn",
+ "Unshare" : "Zatrzymaj współdzielenie",
"Details" : "Szczegóły",
"Select" : "Wybierz",
"Pending" : "Oczekujące",
diff --git a/apps/files/l10n/pl.json b/apps/files/l10n/pl.json
index 98a0592cc75..491991c6f61 100644
--- a/apps/files/l10n/pl.json
+++ b/apps/files/l10n/pl.json
@@ -32,6 +32,8 @@
"Download" : "Pobierz",
"Rename" : "Zmień nazwę",
"Delete" : "Usuń",
+ "Disconnect storage" : "Odłącz magazyn",
+ "Unshare" : "Zatrzymaj współdzielenie",
"Details" : "Szczegóły",
"Select" : "Wybierz",
"Pending" : "Oczekujące",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 6619da366e9..2cf4a3dbc80 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -34,12 +34,25 @@ OC.L10N.register(
"Download" : "Baixar",
"Rename" : "Renomear",
"Delete" : "Excluir",
+ "Disconnect storage" : "Desconectar armazenamento",
+ "Unshare" : "Descompartilhar",
"Details" : "Detalhes",
"Select" : "Selecionar",
"Pending" : "Pendente",
"Unable to determine date" : "Impossível determinar a data",
"This operation is forbidden" : "Esta operação é proibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Este diretório não está disponível, por favor, verifique os logs ou entre em contato com o administrador",
+ "Could not move \"{file}\", target exists" : "Não foi possível mover o \"{file}\", o alvo já existe",
+ "Could not move \"{file}\"" : "Não foi possível mover \"{file}\"",
+ "{newName} already exists" : "{newName} já existe",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\", ele já não existe",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está sendo usado na pasta \"{dir}\". Por favor escolha um outro nome.",
+ "Could not rename \"{fileName}\"" : "Não foi possível renomear \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Não foi possível criar o arquivo \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Não foi possível criar o arquivo \"{file}\" porque ele já existe",
+ "Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Não foi possível criar a pasta \"{dir}\" porque ela já existe",
+ "Error deleting file \"{fileName}\"." : "Ocorreu um erro ao apagar o arquivo \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Nenhuma entrada nesta pasta coincide com '{filter}'",
"Name" : "Nome",
"Size" : "Tamanho",
@@ -68,7 +81,7 @@ OC.L10N.register(
"An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas",
"A new file or folder has been <strong>created</strong>" : "Um novo arquivo ou pasta foi <strong>criado</strong>",
"A file or folder has been <strong>changed</strong>" : "Um arquivo ou pasta foi <strong>modificado</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limite de notificações sobre a criação e alterações em seus <strong>arquivos favoritos</strong> <em>(Stream apenas)</em>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limite de notificações sobre a criação e alterações em seus <strong>arquivos favoritos</strong> <em>(apenas Stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "Um arquivo ou pasta foi <strong>excluído</strong>",
"A file or folder has been <strong>restored</strong>" : "Um arquivo ou pasta foi <strong>restautado</strong>",
"You created %1$s" : "Você criou %1$s",
@@ -103,7 +116,7 @@ OC.L10N.register(
"Files are being scanned, please wait." : "Arquivos sendo escaneados, por favor aguarde.",
"Currently scanning" : "Atualmente escaneando",
"No favorites" : "Sem favoritos",
- "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favorito são mostrados aqui",
+ "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favoritos são mostrados aqui",
"Text file" : "Arquivo texto",
"New text file.txt" : "Novo texto file.txt"
},
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index e656d9e0079..be96373df6a 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -32,12 +32,25 @@
"Download" : "Baixar",
"Rename" : "Renomear",
"Delete" : "Excluir",
+ "Disconnect storage" : "Desconectar armazenamento",
+ "Unshare" : "Descompartilhar",
"Details" : "Detalhes",
"Select" : "Selecionar",
"Pending" : "Pendente",
"Unable to determine date" : "Impossível determinar a data",
"This operation is forbidden" : "Esta operação é proibida",
"This directory is unavailable, please check the logs or contact the administrator" : "Este diretório não está disponível, por favor, verifique os logs ou entre em contato com o administrador",
+ "Could not move \"{file}\", target exists" : "Não foi possível mover o \"{file}\", o alvo já existe",
+ "Could not move \"{file}\"" : "Não foi possível mover \"{file}\"",
+ "{newName} already exists" : "{newName} já existe",
+ "Could not rename \"{fileName}\", it does not exist any more" : "Não foi possível renomear \"{fileName}\", ele já não existe",
+ "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "O nome \"{targetName}\" já está sendo usado na pasta \"{dir}\". Por favor escolha um outro nome.",
+ "Could not rename \"{fileName}\"" : "Não foi possível renomear \"{fileName}\"",
+ "Could not create file \"{file}\"" : "Não foi possível criar o arquivo \"{file}\"",
+ "Could not create file \"{file}\" because it already exists" : "Não foi possível criar o arquivo \"{file}\" porque ele já existe",
+ "Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"",
+ "Could not create folder \"{dir}\" because it already exists" : "Não foi possível criar a pasta \"{dir}\" porque ela já existe",
+ "Error deleting file \"{fileName}\"." : "Ocorreu um erro ao apagar o arquivo \"{fileName}\".",
"No entries in this folder match '{filter}'" : "Nenhuma entrada nesta pasta coincide com '{filter}'",
"Name" : "Nome",
"Size" : "Tamanho",
@@ -66,7 +79,7 @@
"An error occurred while trying to update the tags" : "Ocorreu um erro enquanto tentava atualizar as etiquetas",
"A new file or folder has been <strong>created</strong>" : "Um novo arquivo ou pasta foi <strong>criado</strong>",
"A file or folder has been <strong>changed</strong>" : "Um arquivo ou pasta foi <strong>modificado</strong>",
- "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limite de notificações sobre a criação e alterações em seus <strong>arquivos favoritos</strong> <em>(Stream apenas)</em>",
+ "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limite de notificações sobre a criação e alterações em seus <strong>arquivos favoritos</strong> <em>(apenas Stream)</em>",
"A file or folder has been <strong>deleted</strong>" : "Um arquivo ou pasta foi <strong>excluído</strong>",
"A file or folder has been <strong>restored</strong>" : "Um arquivo ou pasta foi <strong>restautado</strong>",
"You created %1$s" : "Você criou %1$s",
@@ -101,7 +114,7 @@
"Files are being scanned, please wait." : "Arquivos sendo escaneados, por favor aguarde.",
"Currently scanning" : "Atualmente escaneando",
"No favorites" : "Sem favoritos",
- "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favorito são mostrados aqui",
+ "Files and folders you mark as favorite will show up here" : "Arquivos e pastas que você marcou como favoritos são mostrados aqui",
"Text file" : "Arquivo texto",
"New text file.txt" : "Novo texto file.txt"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
diff --git a/apps/files/l10n/ro.js b/apps/files/l10n/ro.js
index 54e7c505c9a..e9114f5531e 100644
--- a/apps/files/l10n/ro.js
+++ b/apps/files/l10n/ro.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Descarcă",
"Rename" : "Redenumește",
"Delete" : "Șterge",
+ "Disconnect storage" : "Deconectează stocarea",
+ "Unshare" : "Nu mai partaja",
"Details" : "Detalii",
"Select" : "Alege",
"Pending" : "În așteptare",
diff --git a/apps/files/l10n/ro.json b/apps/files/l10n/ro.json
index 3fe8ba180bb..ed4bf8e3851 100644
--- a/apps/files/l10n/ro.json
+++ b/apps/files/l10n/ro.json
@@ -32,6 +32,8 @@
"Download" : "Descarcă",
"Rename" : "Redenumește",
"Delete" : "Șterge",
+ "Disconnect storage" : "Deconectează stocarea",
+ "Unshare" : "Nu mai partaja",
"Details" : "Detalii",
"Select" : "Alege",
"Pending" : "În așteptare",
diff --git a/apps/files/l10n/ru.js b/apps/files/l10n/ru.js
index f4b71563e6e..a6fb70944ec 100644
--- a/apps/files/l10n/ru.js
+++ b/apps/files/l10n/ru.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Скачать",
"Rename" : "Переименовать",
"Delete" : "Удалить",
+ "Disconnect storage" : "Отсоединить хранилище",
+ "Unshare" : "Закрыть доступ",
"Details" : "Подробно",
"Select" : "Выбрать",
"Pending" : "Ожидание",
diff --git a/apps/files/l10n/ru.json b/apps/files/l10n/ru.json
index 81dbf53184e..964a819535b 100644
--- a/apps/files/l10n/ru.json
+++ b/apps/files/l10n/ru.json
@@ -32,6 +32,8 @@
"Download" : "Скачать",
"Rename" : "Переименовать",
"Delete" : "Удалить",
+ "Disconnect storage" : "Отсоединить хранилище",
+ "Unshare" : "Закрыть доступ",
"Details" : "Подробно",
"Select" : "Выбрать",
"Pending" : "Ожидание",
diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js
index 240bce73af1..103b4861206 100644
--- a/apps/files/l10n/sl.js
+++ b/apps/files/l10n/sl.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Prejmi",
"Rename" : "Preimenuj",
"Delete" : "Izbriši",
+ "Disconnect storage" : "Odklopi shrambo",
+ "Unshare" : "Prekini souporabo",
"Details" : "Podrobnosti",
"Select" : "Izberi",
"Pending" : "V čakanju ...",
diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json
index 64ad90f56bd..ef5720b8be3 100644
--- a/apps/files/l10n/sl.json
+++ b/apps/files/l10n/sl.json
@@ -32,6 +32,8 @@
"Download" : "Prejmi",
"Rename" : "Preimenuj",
"Delete" : "Izbriši",
+ "Disconnect storage" : "Odklopi shrambo",
+ "Unshare" : "Prekini souporabo",
"Details" : "Podrobnosti",
"Select" : "Izberi",
"Pending" : "V čakanju ...",
diff --git a/apps/files/l10n/sq.js b/apps/files/l10n/sq.js
index 6811dc5791f..5a95ea92e3d 100644
--- a/apps/files/l10n/sq.js
+++ b/apps/files/l10n/sq.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Shkarkoje",
"Rename" : "Riemërtojeni",
"Delete" : "Fshije",
+ "Disconnect storage" : "Shkëput hapësirën e memorizimit",
+ "Unshare" : "Hiqe ndarjen",
"Details" : "Hollësi",
"Select" : "Përzgjidhe",
"Pending" : "Në pritje",
diff --git a/apps/files/l10n/sq.json b/apps/files/l10n/sq.json
index 45b9d6acb61..e70fffe8e5b 100644
--- a/apps/files/l10n/sq.json
+++ b/apps/files/l10n/sq.json
@@ -32,6 +32,8 @@
"Download" : "Shkarkoje",
"Rename" : "Riemërtojeni",
"Delete" : "Fshije",
+ "Disconnect storage" : "Shkëput hapësirën e memorizimit",
+ "Unshare" : "Hiqe ndarjen",
"Details" : "Hollësi",
"Select" : "Përzgjidhe",
"Pending" : "Në pritje",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index 80f81b1e028..6a97b5f282f 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Преузми",
"Rename" : "Преименуј",
"Delete" : "Обриши",
+ "Disconnect storage" : "Искључи складиште",
+ "Unshare" : "Не дели",
"Details" : "Подаци",
"Select" : "Изабери",
"Pending" : "На чекању",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index f878b9c14d4..7f319f6ab48 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -32,6 +32,8 @@
"Download" : "Преузми",
"Rename" : "Преименуј",
"Delete" : "Обриши",
+ "Disconnect storage" : "Искључи складиште",
+ "Unshare" : "Не дели",
"Details" : "Подаци",
"Select" : "Изабери",
"Pending" : "На чекању",
diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js
index d7017005a17..ed166f5ee87 100644
--- a/apps/files/l10n/sr@latin.js
+++ b/apps/files/l10n/sr@latin.js
@@ -33,6 +33,8 @@ OC.L10N.register(
"Download" : "Preuzmi",
"Rename" : "Preimenuj",
"Delete" : "Obriši",
+ "Disconnect storage" : "Isključi skladište",
+ "Unshare" : "Ne deli",
"Details" : "Detaljnije",
"Select" : "Izaberi",
"Pending" : "Na čekanju",
diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json
index 98356e441d6..a58df8712a7 100644
--- a/apps/files/l10n/sr@latin.json
+++ b/apps/files/l10n/sr@latin.json
@@ -31,6 +31,8 @@
"Download" : "Preuzmi",
"Rename" : "Preimenuj",
"Delete" : "Obriši",
+ "Disconnect storage" : "Isključi skladište",
+ "Unshare" : "Ne deli",
"Details" : "Detaljnije",
"Select" : "Izaberi",
"Pending" : "Na čekanju",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index f5e81760b0f..f6df4ee16d0 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Ladda ner",
"Rename" : "Byt namn",
"Delete" : "Radera",
+ "Disconnect storage" : "Koppla bort lagring",
+ "Unshare" : "Sluta dela",
"Details" : "Detaljer",
"Select" : "Välj",
"Pending" : "Väntar",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index c624c34029c..143e35a1e0a 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -32,6 +32,8 @@
"Download" : "Ladda ner",
"Rename" : "Byt namn",
"Delete" : "Radera",
+ "Disconnect storage" : "Koppla bort lagring",
+ "Unshare" : "Sluta dela",
"Details" : "Detaljer",
"Select" : "Välj",
"Pending" : "Väntar",
diff --git a/apps/files/l10n/ug.js b/apps/files/l10n/ug.js
index 55985f6a655..b587b590632 100644
--- a/apps/files/l10n/ug.js
+++ b/apps/files/l10n/ug.js
@@ -17,6 +17,7 @@ OC.L10N.register(
"Download" : "چۈشۈر",
"Rename" : "ئات ئۆزگەرت",
"Delete" : "ئۆچۈر",
+ "Unshare" : "ھەمبەھىرلىمە",
"Pending" : "كۈتۈۋاتىدۇ",
"Name" : "ئاتى",
"Size" : "چوڭلۇقى",
diff --git a/apps/files/l10n/ug.json b/apps/files/l10n/ug.json
index 716bf62afb9..dd2e9c98ee5 100644
--- a/apps/files/l10n/ug.json
+++ b/apps/files/l10n/ug.json
@@ -15,6 +15,7 @@
"Download" : "چۈشۈر",
"Rename" : "ئات ئۆزگەرت",
"Delete" : "ئۆچۈر",
+ "Unshare" : "ھەمبەھىرلىمە",
"Pending" : "كۈتۈۋاتىدۇ",
"Name" : "ئاتى",
"Size" : "چوڭلۇقى",
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index 8d43949d8ff..7da8b160afd 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "Завантажити",
"Rename" : "Перейменувати",
"Delete" : "Видалити",
+ "Disconnect storage" : "Від’єднати сховище",
+ "Unshare" : "Закрити спільний доступ",
"Details" : "Деталі",
"Select" : "Оберіть",
"Pending" : "Очікування",
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index d7381e0cfa7..15dabf456f8 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -32,6 +32,8 @@
"Download" : "Завантажити",
"Rename" : "Перейменувати",
"Delete" : "Видалити",
+ "Disconnect storage" : "Від’єднати сховище",
+ "Unshare" : "Закрити спільний доступ",
"Details" : "Деталі",
"Select" : "Оберіть",
"Pending" : "Очікування",
diff --git a/apps/files/l10n/ur_PK.js b/apps/files/l10n/ur_PK.js
index bac2c3b614b..094511db425 100644
--- a/apps/files/l10n/ur_PK.js
+++ b/apps/files/l10n/ur_PK.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Close" : "بند ",
"Download" : "ڈاؤن لوڈ،",
"Delete" : "حذف کریں",
+ "Unshare" : "شئیرنگ ختم کریں",
"Name" : "اسم",
"Save" : "حفظ",
"Settings" : "ترتیبات"
diff --git a/apps/files/l10n/ur_PK.json b/apps/files/l10n/ur_PK.json
index be36293b913..3c859bb452d 100644
--- a/apps/files/l10n/ur_PK.json
+++ b/apps/files/l10n/ur_PK.json
@@ -3,6 +3,7 @@
"Close" : "بند ",
"Download" : "ڈاؤن لوڈ،",
"Delete" : "حذف کریں",
+ "Unshare" : "شئیرنگ ختم کریں",
"Name" : "اسم",
"Save" : "حفظ",
"Settings" : "ترتیبات"
diff --git a/apps/files/l10n/vi.js b/apps/files/l10n/vi.js
index 4af893ab66a..83dd03f48f8 100644
--- a/apps/files/l10n/vi.js
+++ b/apps/files/l10n/vi.js
@@ -30,6 +30,7 @@ OC.L10N.register(
"Download" : "Tải về",
"Rename" : "Sửa tên",
"Delete" : "Xóa",
+ "Unshare" : "Bỏ chia sẻ",
"Details" : "Chi tiết",
"Select" : "Chọn",
"Pending" : "Đang chờ",
diff --git a/apps/files/l10n/vi.json b/apps/files/l10n/vi.json
index ebffb827525..abc83963873 100644
--- a/apps/files/l10n/vi.json
+++ b/apps/files/l10n/vi.json
@@ -28,6 +28,7 @@
"Download" : "Tải về",
"Rename" : "Sửa tên",
"Delete" : "Xóa",
+ "Unshare" : "Bỏ chia sẻ",
"Details" : "Chi tiết",
"Select" : "Chọn",
"Pending" : "Đang chờ",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 09829db3bcc..0283c91b656 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -34,6 +34,8 @@ OC.L10N.register(
"Download" : "下載",
"Rename" : "重新命名",
"Delete" : "刪除",
+ "Disconnect storage" : "斷開儲存空間連接",
+ "Unshare" : "取消分享",
"Details" : "詳細資料",
"Select" : "選擇",
"Pending" : "等候中",
diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json
index 6f2c396ad18..4969b3d5bfb 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -32,6 +32,8 @@
"Download" : "下載",
"Rename" : "重新命名",
"Delete" : "刪除",
+ "Disconnect storage" : "斷開儲存空間連接",
+ "Unshare" : "取消分享",
"Details" : "詳細資料",
"Select" : "選擇",
"Pending" : "等候中",
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index 9a4e8d59786..4f960518839 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -66,15 +66,15 @@ class Helper {
*/
public static function determineIcon($file) {
if($file['type'] === 'dir') {
- $icon = \OC_Helper::mimetypeIcon('dir');
+ $icon = \OC::$server->getMimeTypeDetector()->mimeTypeIcon('dir');
// TODO: move this part to the client side, using mountType
if ($file->isShared()) {
- $icon = \OC_Helper::mimetypeIcon('dir-shared');
+ $icon = \OC::$server->getMimeTypeDetector()->mimeTypeIcon('dir-shared');
} elseif ($file->isMounted()) {
- $icon = \OC_Helper::mimetypeIcon('dir-external');
+ $icon = \OC::$server->getMimeTypeDetector()->mimeTypeIcon('dir-external');
}
}else{
- $icon = \OC_Helper::mimetypeIcon($file->getMimetype());
+ $icon = \OC::$server->getMimeTypeDetector()->mimeTypeIcon($file->getMimetype());
}
return substr($icon, 0, -3) . 'svg';
diff --git a/apps/files/tests/backgroundjob/ScanFilesTest.php b/apps/files/tests/backgroundjob/ScanFilesTest.php
index 907cad64f9e..087696f0cfc 100644
--- a/apps/files/tests/backgroundjob/ScanFilesTest.php
+++ b/apps/files/tests/backgroundjob/ScanFilesTest.php
@@ -24,7 +24,6 @@ use Test\TestCase;
use OCP\IConfig;
use OCP\IUserManager;
use OCA\Files\BackgroundJob\ScanFiles;
-use OCP\ILogger;
/**
* Class ScanFilesTest
diff --git a/apps/files/tests/controller/apicontrollertest.php b/apps/files/tests/controller/apicontrollertest.php
index fb728d5eff0..bc66e4641b9 100644
--- a/apps/files/tests/controller/apicontrollertest.php
+++ b/apps/files/tests/controller/apicontrollertest.php
@@ -92,6 +92,7 @@ class ApiControllerTest extends TestCase {
[
'mtime' => 55,
'mimetype' => 'application/pdf',
+ 'permissions' => 31,
'size' => 1234,
'etag' => 'MyEtag',
],
@@ -111,7 +112,7 @@ class ApiControllerTest extends TestCase {
'parentId' => null,
'mtime' => 55000,
'name' => 'root.txt',
- 'permissions' => null,
+ 'permissions' => 31,
'mimetype' => 'application/pdf',
'size' => 1234,
'type' => 'file',
@@ -139,6 +140,7 @@ class ApiControllerTest extends TestCase {
[
'mtime' => 55,
'mimetype' => 'application/pdf',
+ 'permissions' => 31,
'size' => 1234,
'etag' => 'MyEtag',
],
@@ -155,6 +157,7 @@ class ApiControllerTest extends TestCase {
[
'mtime' => 999,
'mimetype' => 'application/binary',
+ 'permissions' => 31,
'size' => 9876,
'etag' => 'SubEtag',
],
@@ -174,7 +177,7 @@ class ApiControllerTest extends TestCase {
'parentId' => null,
'mtime' => 55000,
'name' => 'root.txt',
- 'permissions' => null,
+ 'permissions' => 31,
'mimetype' => 'application/pdf',
'size' => 1234,
'type' => 'file',
@@ -191,7 +194,7 @@ class ApiControllerTest extends TestCase {
'parentId' => null,
'mtime' => 999000,
'name' => 'root.txt',
- 'permissions' => null,
+ 'permissions' => 31,
'mimetype' => 'application/binary',
'size' => 9876,
'type' => 'file',
diff --git a/apps/files/tests/js/fileactionsmenuSpec.js b/apps/files/tests/js/fileactionsmenuSpec.js
index 747a746a602..3028db2b3ac 100644
--- a/apps/files/tests/js/fileactionsmenuSpec.js
+++ b/apps/files/tests/js/fileactionsmenuSpec.js
@@ -20,7 +20,7 @@
*/
describe('OCA.Files.FileActionsMenu tests', function() {
- var fileList, fileActions, menu, actionStub, $tr;
+ var fileList, fileActions, menu, actionStub, menuContext, $tr;
beforeEach(function() {
// init horrible parameters
@@ -80,7 +80,7 @@ describe('OCA.Files.FileActionsMenu tests', function() {
};
$tr = fileList.add(fileData);
- var menuContext = {
+ menuContext = {
$file: $tr,
fileList: fileList,
fileActions: fileActions,
@@ -189,6 +189,22 @@ describe('OCA.Files.FileActionsMenu tests', function() {
var yactionIndex = menu.$el.find('a[data-action=Yaction]').closest('li').index();
expect(wactionIndex).toBeLessThan(yactionIndex);
});
+ it('calls displayName function', function() {
+ var displayNameStub = sinon.stub().returns('Test');
+
+ fileActions.registerAction({
+ name: 'Something',
+ displayName: displayNameStub,
+ mime: 'text/plain',
+ permissions: OC.PERMISSION_ALL
+ });
+
+ menu.render();
+
+ expect(displayNameStub.calledOnce).toEqual(true);
+ expect(displayNameStub.calledWith(menuContext)).toEqual(true);
+ expect(menu.$el.find('a[data-action=Something]').text()).toEqual('Test');
+ });
});
describe('action handler', function() {
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 9f7ad50bc60..9dfcdfead7f 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -2402,6 +2402,21 @@ describe('OCA.Files.FileList tests', function() {
expect(ev.result).not.toEqual(false);
expect(uploadData.targetDir).toEqual('/a/b');
});
+ it('renders upload indicator element for folders only', function() {
+ fileList.add({
+ name: 'afolder',
+ type: 'dir',
+ mime: 'httpd/unix-directory'
+ });
+ fileList.add({
+ name: 'afile.txt',
+ type: 'file',
+ mime: 'text/plain'
+ });
+
+ expect(fileList.findFileEl('afolder').find('.uploadtext').length).toEqual(1);
+ expect(fileList.findFileEl('afile.txt').find('.uploadtext').length).toEqual(0);
+ });
});
});
describe('Handling errors', function () {
@@ -2534,4 +2549,34 @@ describe('OCA.Files.FileList tests', function() {
expect(newFileMenuStub.notCalled).toEqual(true);
});
});
+ describe('mount type detection', function() {
+ function testMountType(dirInfoId, dirInfoMountType, inputMountType, expectedMountType) {
+ var $tr;
+ fileList.dirInfo.id = dirInfoId;
+ fileList.dirInfo.mountType = dirInfoMountType;
+ $tr = fileList.add({
+ type: 'dir',
+ mimetype: 'httpd/unix-directory',
+ name: 'test dir',
+ mountType: inputMountType
+ });
+
+ expect($tr.attr('data-mounttype')).toEqual(expectedMountType);
+ }
+
+ it('leaves mount type as is if no parent exists', function() {
+ testMountType(null, null, 'external', 'external');
+ testMountType(null, null, 'shared', 'shared');
+ });
+ it('detects share root if parent exists', function() {
+ testMountType(123, null, 'shared', 'shared-root');
+ testMountType(123, 'shared', 'shared', 'shared');
+ testMountType(123, 'shared-root', 'shared', 'shared');
+ });
+ it('detects external storage root if parent exists', function() {
+ testMountType(123, null, 'external', 'external-root');
+ testMountType(123, 'external', 'external', 'external');
+ testMountType(123, 'external-root', 'external', 'external');
+ });
+ });
});
diff --git a/apps/files/tests/service/tagservice.php b/apps/files/tests/service/tagservice.php
index 36da3edc61e..b93dedd0efd 100644
--- a/apps/files/tests/service/tagservice.php
+++ b/apps/files/tests/service/tagservice.php
@@ -54,7 +54,7 @@ class TagServiceTest extends \Test\TestCase {
protected function setUp() {
parent::setUp();
$this->user = $this->getUniqueId('user');
- \OC_User::createUser($this->user, 'test');
+ \OC::$server->getUserManager()->createUser($this->user, 'test');
\OC_User::setUserId($this->user);
\OC_Util::setupFS($this->user);
/**
@@ -82,7 +82,8 @@ class TagServiceTest extends \Test\TestCase {
protected function tearDown() {
\OC_User::setUserId('');
- \OC_User::deleteUser($this->user);
+ $user = \OC::$server->getUserManager()->get($this->user);
+ if ($user !== null) { $user->delete(); }
}
public function testUpdateFileTags() {