summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/comments/js/commentstabview.js20
-rw-r--r--apps/comments/lib/Activity/Provider.php7
-rw-r--r--apps/dav/l10n/sv.js1
-rw-r--r--apps/dav/l10n/sv.json1
-rw-r--r--apps/files/l10n/ca.js2
-rw-r--r--apps/files/l10n/ca.json2
-rw-r--r--apps/files/l10n/cs.js2
-rw-r--r--apps/files/l10n/cs.json2
-rw-r--r--apps/files/l10n/de.js4
-rw-r--r--apps/files/l10n/de.json4
-rw-r--r--apps/files/l10n/de_DE.js4
-rw-r--r--apps/files/l10n/de_DE.json4
-rw-r--r--apps/files/l10n/eo.js2
-rw-r--r--apps/files/l10n/eo.json2
-rw-r--r--apps/files/l10n/es.js2
-rw-r--r--apps/files/l10n/es.json2
-rw-r--r--apps/files/l10n/fr.js4
-rw-r--r--apps/files/l10n/fr.json4
-rw-r--r--apps/files/l10n/hu.js2
-rw-r--r--apps/files/l10n/hu.json2
-rw-r--r--apps/files/l10n/is.js2
-rw-r--r--apps/files/l10n/is.json2
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/nl.js2
-rw-r--r--apps/files/l10n/nl.json2
-rw-r--r--apps/files/l10n/pt_BR.js4
-rw-r--r--apps/files/l10n/pt_BR.json4
-rw-r--r--apps/files/l10n/sk.js2
-rw-r--r--apps/files/l10n/sk.json2
-rw-r--r--apps/files/l10n/sr.js4
-rw-r--r--apps/files/l10n/sr.json4
-rw-r--r--apps/files/l10n/sv.js4
-rw-r--r--apps/files/l10n/sv.json4
-rw-r--r--apps/files/l10n/tr.js4
-rw-r--r--apps/files/l10n/tr.json4
-rw-r--r--apps/files/l10n/zh_TW.js2
-rw-r--r--apps/files/l10n/zh_TW.json2
-rw-r--r--apps/files/tests/js/filelistSpec.js16
-rw-r--r--apps/files_sharing/css/mobile.scss6
-rw-r--r--apps/files_sharing/css/public.scss16
-rw-r--r--apps/files_sharing/js/public.js16
-rw-r--r--apps/files_sharing/l10n/ru.js2
-rw-r--r--apps/files_sharing/l10n/ru.json2
-rw-r--r--apps/files_sharing/lib/Controller/ShareController.php43
-rw-r--r--apps/files_sharing/templates/public.php24
-rw-r--r--apps/files_sharing/tests/Controller/ShareControllerTest.php105
-rw-r--r--apps/twofactor_backupcodes/l10n/ru.js17
-rw-r--r--apps/twofactor_backupcodes/l10n/ru.json17
49 files changed, 311 insertions, 78 deletions
diff --git a/apps/comments/js/commentstabview.js b/apps/comments/js/commentstabview.js
index 8ea4dbc2ff2..04b0f292299 100644
--- a/apps/comments/js/commentstabview.js
+++ b/apps/comments/js/commentstabview.js
@@ -416,15 +416,22 @@
return;
}
var mention = '@' + mentions[i].mentionId;
+ if (mentions[i].mentionId.indexOf(' ') !== -1) {
+ mention = _.escape('@"' + mentions[i].mentionId + '"');
+ }
// escape possible regex characters in the name
mention = mention.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+ var regex = new RegExp("(^|\\s)(" + mention + ")\\b", 'g');
+ if (mentions[i].mentionId.indexOf(' ') !== -1) {
+ regex = new RegExp("(^|\\s)(" + mention + ")", 'g');
+ }
var displayName = this._composeHTMLMention(mentions[i].mentionId, mentions[i].mentionDisplayName);
// replace every mention either at the start of the input or after a whitespace
// followed by a non-word character.
- message = message.replace(new RegExp("(^|\\s)(" + mention + ")\\b", 'g'),
+ message = message.replace(regex,
function(match, p1) {
// to get number of whitespaces (0 vs 1) right
return p1+displayName;
@@ -602,9 +609,14 @@
var $comment = $el.clone();
$comment.find('.avatar-name-wrapper').each(function () {
- var $this = $(this);
- var $inserted = $this.parent();
- $inserted.html('@' + $this.find('.avatar').data('username'));
+ var $this = $(this),
+ $inserted = $this.parent(),
+ userId = $this.find('.avatar').data('username');
+ if (userId.indexOf(' ') !== -1) {
+ $inserted.html('@"' + userId + '"');
+ } else {
+ $inserted.html('@' + userId);
+ }
});
$comment.html(OCP.Comments.richToPlain($comment.html()));
diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php
index c21b7a9c4fd..4940bb6afec 100644
--- a/apps/comments/lib/Activity/Provider.php
+++ b/apps/comments/lib/Activity/Provider.php
@@ -213,8 +213,13 @@ class Provider implements IProvider {
continue;
}
+ $pattern = '/(^|\s)(' . '@' . $mention['id'] . ')(\b)/';
+ if (strpos($mention['id'], ' ') !== false) {
+ $pattern = '/(^|\s)(' . '@"' . $mention['id'] . '"' . ')(\b)?/';
+ }
+
$message = preg_replace(
- '/(^|\s)(' . '@' . $mention['id'] . ')(\b)/',
+ $pattern,
//'${1}' . $this->regexSafeUser($mention['id'], $displayName) . '${3}',
'${1}' . '{mention' . $mentionCount . '}' . '${3}',
$message
diff --git a/apps/dav/l10n/sv.js b/apps/dav/l10n/sv.js
index 9a33396878a..93eeaa67b6a 100644
--- a/apps/dav/l10n/sv.js
+++ b/apps/dav/l10n/sv.js
@@ -58,6 +58,7 @@ OC.L10N.register(
"More options …" : "Fler alternativ ...",
"More options at %s" : "Fler alternativ på %s",
"Contacts" : "Kontakter",
+ "%s (group)" : "%s (grupp)",
"WebDAV" : "WebDAV",
"Technical details" : "Tekniska detaljer",
"Remote Address: %s" : "Extern adress: %s",
diff --git a/apps/dav/l10n/sv.json b/apps/dav/l10n/sv.json
index 8149e984419..4b3ed893910 100644
--- a/apps/dav/l10n/sv.json
+++ b/apps/dav/l10n/sv.json
@@ -56,6 +56,7 @@
"More options …" : "Fler alternativ ...",
"More options at %s" : "Fler alternativ på %s",
"Contacts" : "Kontakter",
+ "%s (group)" : "%s (grupp)",
"WebDAV" : "WebDAV",
"Technical details" : "Tekniska detaljer",
"Remote Address: %s" : "Extern adress: %s",
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index ba519f9d382..063807c62f0 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Mostra els fitxers ocults",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilitza aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedir als teus arxius mitjançant WebDAV</a>",
- "Cancel upload" : "Cancel·la la pujada",
"Toggle grid view" : "Commuta vista de quadrícula",
+ "Cancel upload" : "Cancel·la la pujada",
"No files in here" : "No hi ha arxius",
"Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.",
"No entries found in this folder" : "No hi ha entrades en aquesta carpeta",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index c80fa666f08..26f6e27ce53 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Mostra els fitxers ocults",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilitza aquesta adreça per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedir als teus arxius mitjançant WebDAV</a>",
- "Cancel upload" : "Cancel·la la pujada",
"Toggle grid view" : "Commuta vista de quadrícula",
+ "Cancel upload" : "Cancel·la la pujada",
"No files in here" : "No hi ha arxius",
"Upload some content or sync with your devices!" : "Pugi continguts o sincronitzi els seus dispositius.",
"No entries found in this folder" : "No hi ha entrades en aquesta carpeta",
diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js
index 96b93d361e7..3a9297aa20d 100644
--- a/apps/files/l10n/cs.js
+++ b/apps/files/l10n/cs.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Zobrazit skryté soubory",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použijte tuto adresu pro <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">přístup k vašim souborům přes WebDAV</a>",
- "Cancel upload" : "Zrušit nahrávání",
"Toggle grid view" : "Přepnout zobrazení mřížky",
+ "Cancel upload" : "Zrušit nahrávání",
"No files in here" : "Žádné soubory",
"Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!",
"No entries found in this folder" : "V této složce nebylo nic nalezeno",
diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json
index cb01165503d..1b19b759396 100644
--- a/apps/files/l10n/cs.json
+++ b/apps/files/l10n/cs.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Zobrazit skryté soubory",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použijte tuto adresu pro <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">přístup k vašim souborům přes WebDAV</a>",
- "Cancel upload" : "Zrušit nahrávání",
"Toggle grid view" : "Přepnout zobrazení mřížky",
+ "Cancel upload" : "Zrušit nahrávání",
"No files in here" : "Žádné soubory",
"Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!",
"No entries found in this folder" : "V této složce nebylo nic nalezeno",
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index d41f5f9642a..0f299246d4b 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Home",
"Close" : "Schließen",
"Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
"Upload cancelled." : "Hochladen abgebrochen.",
"…" : "…",
"Processing files …" : "Dateien werden verarbeitet…",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Du möchtest{size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
"Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr",
"Not enough free space" : "Nicht genügend freier Speicherplatz",
+ "An unknown error has occurred" : "Unbekannter Fehler aufgetreten",
"Uploading …" : "Lade hoch…",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Versteckte Dateien anzeigen",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">über WebDAV auf Deine Dateien zuzugreifen</a>",
- "Cancel upload" : "Hochladen abbrechen",
"Toggle grid view" : "Rasteransicht umschalten",
+ "Cancel upload" : "Hochladen abbrechen",
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index a286065f3f6..3b01fa67051 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -12,6 +12,7 @@
"Home" : "Home",
"Close" : "Schließen",
"Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
"Upload cancelled." : "Hochladen abgebrochen.",
"…" : "…",
"Processing files …" : "Dateien werden verarbeitet…",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Du möchtest{size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
"Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr",
"Not enough free space" : "Nicht genügend freier Speicherplatz",
+ "An unknown error has occurred" : "Unbekannter Fehler aufgetreten",
"Uploading …" : "Lade hoch…",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.",
@@ -139,8 +141,8 @@
"Show hidden files" : "Versteckte Dateien anzeigen",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Diese Adresse benutzen, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">über WebDAV auf Deine Dateien zuzugreifen</a>",
- "Cancel upload" : "Hochladen abbrechen",
"Toggle grid view" : "Rasteransicht umschalten",
+ "Cancel upload" : "Hochladen abbrechen",
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Inhalte hochladen oder mit deinen Geräten synchronisieren!",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 26cc699896f..6aac17f0d31 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Home",
"Close" : "Schließen",
"Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
"Upload cancelled." : "Hochladen abgebrochen.",
"…" : "…",
"Processing files …" : "Dateien werden verarbeitet…",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
"Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr",
"Not enough free space" : "Nicht genügend freier Speicherplatz",
+ "An unknown error has occurred" : "Unbekannter Fehler aufgetreten",
"Uploading …" : "Lade hoch...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Versteckte Dateien anzeigen",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">via WebDAV auf Ihre Dateien zuzugreifen</a>",
- "Cancel upload" : "Hochladen abbrechen",
"Toggle grid view" : "Rasteransicht umschalten",
+ "Cancel upload" : "Hochladen abbrechen",
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 93dfb8fd250..ea45a0de36b 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -12,6 +12,7 @@
"Home" : "Home",
"Close" : "Schließen",
"Could not create folder \"{dir}\"" : "Der Ordner konnte nicht erstellt werden \"{dir}\"",
+ "This will stop your current uploads." : "Hiermit werden die aktuellen Uploads angehalten.",
"Upload cancelled." : "Hochladen abgebrochen.",
"…" : "…",
"Processing files …" : "Dateien werden verarbeitet…",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Nicht genügend freier Speicherplatz, Sie möchten {size1} hochladen, es sind jedoch nur noch {size2} verfügbar.",
"Target folder \"{dir}\" does not exist any more" : "Ziel-Verzeichnis \"{dir}\" existiert nicht mehr",
"Not enough free space" : "Nicht genügend freier Speicherplatz",
+ "An unknown error has occurred" : "Unbekannter Fehler aufgetreten",
"Uploading …" : "Lade hoch...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} von {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Hochladen von Daten dieser Art wird nicht unterstützt.",
@@ -139,8 +141,8 @@
"Show hidden files" : "Versteckte Dateien anzeigen",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Benutzen Sie diese Adresse, um <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">via WebDAV auf Ihre Dateien zuzugreifen</a>",
- "Cancel upload" : "Hochladen abbrechen",
"Toggle grid view" : "Rasteransicht umschalten",
+ "Cancel upload" : "Hochladen abbrechen",
"No files in here" : "Keine Dateien vorhanden",
"Upload some content or sync with your devices!" : "Laden Sie Inhalte hoch oder synchronisieren Sie mit Ihren Geräten!",
"No entries found in this folder" : "Keine Einträge in diesem Ordner gefunden",
diff --git a/apps/files/l10n/eo.js b/apps/files/l10n/eo.js
index cec6ccbb816..34c16c92965 100644
--- a/apps/files/l10n/eo.js
+++ b/apps/files/l10n/eo.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Montri kaŝitajn dosierojn",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Uzu tiun adreson por <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">atingi viajn dosierojn per WebDAV</a>",
- "Cancel upload" : "Nuligi alŝuton",
"Toggle grid view" : "Baskuligi kradan vidon",
+ "Cancel upload" : "Nuligi alŝuton",
"No files in here" : "Neniu dosiero ĉi tie",
"Upload some content or sync with your devices!" : "Alŝutu iom da enhavo aŭ sinkronigu kun viaj aparatoj!",
"No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
diff --git a/apps/files/l10n/eo.json b/apps/files/l10n/eo.json
index 81ad59150bc..98a3b7f59e0 100644
--- a/apps/files/l10n/eo.json
+++ b/apps/files/l10n/eo.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Montri kaŝitajn dosierojn",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Uzu tiun adreson por <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">atingi viajn dosierojn per WebDAV</a>",
- "Cancel upload" : "Nuligi alŝuton",
"Toggle grid view" : "Baskuligi kradan vidon",
+ "Cancel upload" : "Nuligi alŝuton",
"No files in here" : "Neniu dosiero ĉi tie",
"Upload some content or sync with your devices!" : "Alŝutu iom da enhavo aŭ sinkronigu kun viaj aparatoj!",
"No entries found in this folder" : "Neniu enigo troviĝis en ĉi tiu dosierujo",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index 1aa1712d818..f8fa20f0255 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Mostrar archivos ocultos",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acceder a tus archivos vía WebDAV</a>",
- "Cancel upload" : "Cancelar subida",
"Toggle grid view" : "Alternar vista de cuadrícula",
+ "Cancel upload" : "Cancelar subida",
"No files in here" : "Aquí no hay archivos",
"Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!",
"No entries found in this folder" : "No hay entradas en esta carpeta",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index 46fd161fad4..46b6a4f3117 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Mostrar archivos ocultos",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acceder a tus archivos vía WebDAV</a>",
- "Cancel upload" : "Cancelar subida",
"Toggle grid view" : "Alternar vista de cuadrícula",
+ "Cancel upload" : "Cancelar subida",
"No files in here" : "Aquí no hay archivos",
"Upload some content or sync with your devices!" : "¡Suba contenidos o sincronice sus dispositivos!",
"No entries found in this folder" : "No hay entradas en esta carpeta",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 7f8124124f1..7a2aec6ca28 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Mes fichiers",
"Close" : "Fermer",
"Could not create folder \"{dir}\"" : "Impossible de créer le dossier \"{dir}\"",
+ "This will stop your current uploads." : "Cela va arrêter vos téléversements actuels.",
"Upload cancelled." : "Téléversement annulé.",
"…" : "…",
"Processing files …" : "Fichiers en cours d'exécution …",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace libre insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles",
"Target folder \"{dir}\" does not exist any more" : "Le dossier cible « {dir} » n'existe plus",
"Not enough free space" : "Espace disponible insuffisant",
+ "An unknown error has occurred" : "Une erreur inconnue est survenue",
"Uploading …" : "Téléversement en cours...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} sur {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Le téléversement de cet élément n'est pas supporté",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Afficher les fichiers cachés",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accéder à vos fichiers par WebDAV</a>",
- "Cancel upload" : "Annuler le téléversement",
"Toggle grid view" : "Activer/Désactiver l'affichage mosaïque",
+ "Cancel upload" : "Annuler le téléversement",
"No files in here" : "Aucun fichier",
"Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !",
"No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 4564e3b8006..fb4c3d5dacc 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -12,6 +12,7 @@
"Home" : "Mes fichiers",
"Close" : "Fermer",
"Could not create folder \"{dir}\"" : "Impossible de créer le dossier \"{dir}\"",
+ "This will stop your current uploads." : "Cela va arrêter vos téléversements actuels.",
"Upload cancelled." : "Téléversement annulé.",
"…" : "…",
"Processing files …" : "Fichiers en cours d'exécution …",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Espace libre insuffisant : vous tentez d'envoyer {size1} mais seulement {size2} sont disponibles",
"Target folder \"{dir}\" does not exist any more" : "Le dossier cible « {dir} » n'existe plus",
"Not enough free space" : "Espace disponible insuffisant",
+ "An unknown error has occurred" : "Une erreur inconnue est survenue",
"Uploading …" : "Téléversement en cours...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} sur {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Le téléversement de cet élément n'est pas supporté",
@@ -139,8 +141,8 @@
"Show hidden files" : "Afficher les fichiers cachés",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilisez cette adresse pour <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accéder à vos fichiers par WebDAV</a>",
- "Cancel upload" : "Annuler le téléversement",
"Toggle grid view" : "Activer/Désactiver l'affichage mosaïque",
+ "Cancel upload" : "Annuler le téléversement",
"No files in here" : "Aucun fichier",
"Upload some content or sync with your devices!" : "Déposez du contenu ou synchronisez vos appareils !",
"No entries found in this folder" : "Aucune entrée trouvée dans ce dossier",
diff --git a/apps/files/l10n/hu.js b/apps/files/l10n/hu.js
index fa6cc3d551f..98b8e7df043 100644
--- a/apps/files/l10n/hu.js
+++ b/apps/files/l10n/hu.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Rejtett fájlok megjelenítése",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Használd ezt a címet a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">fájlok WebDAV-al való eléréséhez</a>",
- "Cancel upload" : "Feltöltés megszakítása",
"Toggle grid view" : "Rácsnézet váltás",
+ "Cancel upload" : "Feltöltés megszakítása",
"No files in here" : "Itt nincsenek fájlok",
"Upload some content or sync with your devices!" : "Tölts fel néhány tartalmat, vagy szinkronizálj az eszközöddel!",
"No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában",
diff --git a/apps/files/l10n/hu.json b/apps/files/l10n/hu.json
index a9ae0edd3ca..c30b9dd4cab 100644
--- a/apps/files/l10n/hu.json
+++ b/apps/files/l10n/hu.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Rejtett fájlok megjelenítése",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Használd ezt a címet a <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">fájlok WebDAV-al való eléréséhez</a>",
- "Cancel upload" : "Feltöltés megszakítása",
"Toggle grid view" : "Rácsnézet váltás",
+ "Cancel upload" : "Feltöltés megszakítása",
"No files in here" : "Itt nincsenek fájlok",
"Upload some content or sync with your devices!" : "Tölts fel néhány tartalmat, vagy szinkronizálj az eszközöddel!",
"No entries found in this folder" : "Nincsenek bejegyzések ebben a mappában",
diff --git a/apps/files/l10n/is.js b/apps/files/l10n/is.js
index 725996d4493..b5180bf03da 100644
--- a/apps/files/l10n/is.js
+++ b/apps/files/l10n/is.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Sýna faldar skrár",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">nálgast skrárnar þínar með WebDAV</a>",
- "Cancel upload" : "Hætta við innsendingu",
"Toggle grid view" : "Víxla reitasýn af/á",
+ "Cancel upload" : "Hætta við innsendingu",
"No files in here" : "Engar skrár hér",
"Upload some content or sync with your devices!" : "Sendu inn eitthvað efni eða samstilltu við tækin þín!",
"No entries found in this folder" : "Engar skrár fundust í þessari möppu",
diff --git a/apps/files/l10n/is.json b/apps/files/l10n/is.json
index 8aa9159d537..7eca435017b 100644
--- a/apps/files/l10n/is.json
+++ b/apps/files/l10n/is.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Sýna faldar skrár",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Notaðu þetta vistfang til að <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">nálgast skrárnar þínar með WebDAV</a>",
- "Cancel upload" : "Hætta við innsendingu",
"Toggle grid view" : "Víxla reitasýn af/á",
+ "Cancel upload" : "Hætta við innsendingu",
"No files in here" : "Engar skrár hér",
"Upload some content or sync with your devices!" : "Sendu inn eitthvað efni eða samstilltu við tækin þín!",
"No entries found in this folder" : "Engar skrár fundust í þessari möppu",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index df3b60e4405..f10f0df7b2d 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Mostra i file nascosti",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedere ai tuoi file con WebDAV</a>",
- "Cancel upload" : "Annulla caricamento",
"Toggle grid view" : "Commuta la vista a griglia",
+ "Cancel upload" : "Annulla caricamento",
"No files in here" : "Qui non c'è alcun file",
"Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!",
"No entries found in this folder" : "Nessuna voce trovata in questa cartella",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index eaa8cf3fbb7..852d9c40cc8 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Mostra i file nascosti",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Utilizza questo indirizzo per <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">accedere ai tuoi file con WebDAV</a>",
- "Cancel upload" : "Annulla caricamento",
"Toggle grid view" : "Commuta la vista a griglia",
+ "Cancel upload" : "Annulla caricamento",
"No files in here" : "Qui non c'è alcun file",
"Upload some content or sync with your devices!" : "Carica alcuni contenuti o sincronizza con i tuoi dispositivi!",
"No entries found in this folder" : "Nessuna voce trovata in questa cartella",
diff --git a/apps/files/l10n/nl.js b/apps/files/l10n/nl.js
index ffcf8b6043c..c1746168f24 100644
--- a/apps/files/l10n/nl.js
+++ b/apps/files/l10n/nl.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Verborgen bestanden tonen",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Gebruik deze link <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">om je bestanden te benaderen via WebDAV</a>",
- "Cancel upload" : "Stop upload",
"Toggle grid view" : "Omschakelen roosterbeeld",
+ "Cancel upload" : "Stop upload",
"No files in here" : "Hier geen bestanden",
"Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!",
"No entries found in this folder" : "Niets",
diff --git a/apps/files/l10n/nl.json b/apps/files/l10n/nl.json
index 0dcb9242a76..82fe567d06d 100644
--- a/apps/files/l10n/nl.json
+++ b/apps/files/l10n/nl.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Verborgen bestanden tonen",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Gebruik deze link <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">om je bestanden te benaderen via WebDAV</a>",
- "Cancel upload" : "Stop upload",
"Toggle grid view" : "Omschakelen roosterbeeld",
+ "Cancel upload" : "Stop upload",
"No files in here" : "Hier geen bestanden",
"Upload some content or sync with your devices!" : "Upload je inhoud of synchroniseer met je apparaten!",
"No entries found in this folder" : "Niets",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 80512107b98..e979cebd642 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Início",
"Close" : "Fechar",
"Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"",
+ "This will stop your current uploads." : "Isso irá parar seus envios atuais.",
"Upload cancelled." : "Envio cancelado.",
"…" : "…",
"Processing files …" : "Processando arquivos...",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}",
"Target folder \"{dir}\" does not exist any more" : "Pasta de destino \"{dir}\" não existe mais",
"Not enough free space" : "Espaço livre insuficiente",
+ "An unknown error has occurred" : "Um erro desconhecido ocorreu",
"Uploading …" : "Enviando...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
"Uploading that item is not supported" : "O envio deste item não é suportado",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Mostrar arquivos ocultos",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Use este endereço para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acessar seus arquivos via WebDAV</a>",
- "Cancel upload" : "Cancelar envio",
"Toggle grid view" : "Alternar vista de grade",
+ "Cancel upload" : "Cancelar envio",
"No files in here" : "Nenhum arquivo aqui",
"Upload some content or sync with your devices!" : "Envie um arquivo ou sincronize com seus dispositivos!",
"No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 2a848d3253d..8e5ddc52a34 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -12,6 +12,7 @@
"Home" : "Início",
"Close" : "Fechar",
"Could not create folder \"{dir}\"" : "Não foi possível criar a pasta \"{dir}\"",
+ "This will stop your current uploads." : "Isso irá parar seus envios atuais.",
"Upload cancelled." : "Envio cancelado.",
"…" : "…",
"Processing files …" : "Processando arquivos...",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Não há espaço suficiente, você está enviando {size1} mas resta apenas {size2}",
"Target folder \"{dir}\" does not exist any more" : "Pasta de destino \"{dir}\" não existe mais",
"Not enough free space" : "Espaço livre insuficiente",
+ "An unknown error has occurred" : "Um erro desconhecido ocorreu",
"Uploading …" : "Enviando...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})",
"Uploading that item is not supported" : "O envio deste item não é suportado",
@@ -139,8 +141,8 @@
"Show hidden files" : "Mostrar arquivos ocultos",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Use este endereço para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">acessar seus arquivos via WebDAV</a>",
- "Cancel upload" : "Cancelar envio",
"Toggle grid view" : "Alternar vista de grade",
+ "Cancel upload" : "Cancelar envio",
"No files in here" : "Nenhum arquivo aqui",
"Upload some content or sync with your devices!" : "Envie um arquivo ou sincronize com seus dispositivos!",
"No entries found in this folder" : "Nenhuma entrada foi encontrada nesta pasta",
diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js
index 80a968005db..da7adf77744 100644
--- a/apps/files/l10n/sk.js
+++ b/apps/files/l10n/sk.js
@@ -141,8 +141,8 @@ OC.L10N.register(
"Show hidden files" : "Zobraziť skryté súbory",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použiť túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">prístup ku svojím súborom cez WebDAV</a>",
- "Cancel upload" : "Zrušiť nahrávanie",
"Toggle grid view" : "Zobrazenie mriežky",
+ "Cancel upload" : "Zrušiť nahrávanie",
"No files in here" : "Nie sú tu žiadne súbory",
"Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!",
"No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json
index 86995abb4b4..aecf724249c 100644
--- a/apps/files/l10n/sk.json
+++ b/apps/files/l10n/sk.json
@@ -139,8 +139,8 @@
"Show hidden files" : "Zobraziť skryté súbory",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Použiť túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">prístup ku svojím súborom cez WebDAV</a>",
- "Cancel upload" : "Zrušiť nahrávanie",
"Toggle grid view" : "Zobrazenie mriežky",
+ "Cancel upload" : "Zrušiť nahrávanie",
"No files in here" : "Nie sú tu žiadne súbory",
"Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!",
"No entries found in this folder" : "V tomto priečinku nebolo nič nájdené",
diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js
index f11401f1405..0a4e5de1e68 100644
--- a/apps/files/l10n/sr.js
+++ b/apps/files/l10n/sr.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Почетна",
"Close" : "Затвори",
"Could not create folder \"{dir}\"" : "Не могу да направим фасциклу \"{dir}\"",
+ "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.",
"Upload cancelled." : "Отпремање је отказано.",
"…" : "…",
"Processing files …" : "Обрађујем фајлове…",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало",
"Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји",
"Not enough free space" : "Нема довољно слободног места",
+ "An unknown error has occurred" : "Десила се непозната грешка",
"Uploading …" : "Отпремам…",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Отпремање те ставке није подржано",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Прикажи скривене фајлове",
"WebDAV" : "ВебДАВ",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">приступате Вашим фајловима преко ВебДАВа</a>",
- "Cancel upload" : "Откажи отпремање",
"Toggle grid view" : "Укључи/искључи приказ мреже",
+ "Cancel upload" : "Откажи отпремање",
"No files in here" : "Овде нема фајлова",
"Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!",
"No entries found in this folder" : "Нема ничега у овој фасцикли",
diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json
index 8f43bbaf289..3a309160fcd 100644
--- a/apps/files/l10n/sr.json
+++ b/apps/files/l10n/sr.json
@@ -12,6 +12,7 @@
"Home" : "Почетна",
"Close" : "Затвори",
"Could not create folder \"{dir}\"" : "Не могу да направим фасциклу \"{dir}\"",
+ "This will stop your current uploads." : "Ово ће да прекине тренутна отпремања.",
"Upload cancelled." : "Отпремање је отказано.",
"…" : "…",
"Processing files …" : "Обрађујем фајлове…",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Нема простора. Отпремате {size1} али само {size2} је преостало",
"Target folder \"{dir}\" does not exist any more" : "Одредишна фасцикла \"{dir}\" више не постоји",
"Not enough free space" : "Нема довољно слободног места",
+ "An unknown error has occurred" : "Десила се непозната грешка",
"Uploading …" : "Отпремам…",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} од {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Отпремање те ставке није подржано",
@@ -139,8 +141,8 @@
"Show hidden files" : "Прикажи скривене фајлове",
"WebDAV" : "ВебДАВ",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">приступате Вашим фајловима преко ВебДАВа</a>",
- "Cancel upload" : "Откажи отпремање",
"Toggle grid view" : "Укључи/искључи приказ мреже",
+ "Cancel upload" : "Откажи отпремање",
"No files in here" : "Овде нема фајлова",
"Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!",
"No entries found in this folder" : "Нема ничега у овој фасцикли",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index 2a63f74249c..f09a03b3847 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Hem",
"Close" : "Stäng",
"Could not create folder \"{dir}\"" : "Kunde inte skapa mapp \"{dir}\"",
+ "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.",
"Upload cancelled." : "Uppladdning avbruten.",
"…" : "...",
"Processing files …" : "Bearbetar filer ...",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.",
"Target folder \"{dir}\" does not exist any more" : "Målmapp \"{dir}\" existerar inte mer",
"Not enough free space" : "Inte tillräckligt med ledigt utrymme",
+ "An unknown error has occurred" : "Ett okänt fel uppstod",
"Uploading …" : "Laddar upp ..",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Uppladdning av det här objektet stöds inte",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Visa dolda filer",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Använd denna adress för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">komma åt dina filer med WebDAV</a>",
- "Cancel upload" : "Avbryt uppladdning",
"Toggle grid view" : "Växla rutnätsvy",
+ "Cancel upload" : "Avbryt uppladdning",
"No files in here" : "Inga filer kunde hittas",
"Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!",
"No entries found in this folder" : "Inget innehåll hittades i denna mapp",
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 8f542cd40f2..7fd2d9d6c09 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -12,6 +12,7 @@
"Home" : "Hem",
"Close" : "Stäng",
"Could not create folder \"{dir}\"" : "Kunde inte skapa mapp \"{dir}\"",
+ "This will stop your current uploads." : "Detta kommer att stoppa nuvarande uppladdningar.",
"Upload cancelled." : "Uppladdning avbruten.",
"…" : "...",
"Processing files …" : "Bearbetar filer ...",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Inte tillräckligt med ledigt utrymme, du laddar upp {size1} men endast {size2} finns kvar.",
"Target folder \"{dir}\" does not exist any more" : "Målmapp \"{dir}\" existerar inte mer",
"Not enough free space" : "Inte tillräckligt med ledigt utrymme",
+ "An unknown error has occurred" : "Ett okänt fel uppstod",
"Uploading …" : "Laddar upp ..",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} av {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Uppladdning av det här objektet stöds inte",
@@ -139,8 +141,8 @@
"Show hidden files" : "Visa dolda filer",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Använd denna adress för att <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">komma åt dina filer med WebDAV</a>",
- "Cancel upload" : "Avbryt uppladdning",
"Toggle grid view" : "Växla rutnätsvy",
+ "Cancel upload" : "Avbryt uppladdning",
"No files in here" : "Inga filer kunde hittas",
"Upload some content or sync with your devices!" : "Ladda upp innehåll eller synkronisera med dina enheter!",
"No entries found in this folder" : "Inget innehåll hittades i denna mapp",
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index 5cf85eefd02..3e079400be9 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Home" : "Giriş",
"Close" : "Kapat",
"Could not create folder \"{dir}\"" : "\"{dir}\" klasörü oluşturulamadı",
+ "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.",
"Upload cancelled." : "Yükleme iptal edildi.",
"…" : "…",
"Processing files …" : "Dosyalar işleniyor…",
@@ -21,6 +22,7 @@ OC.L10N.register(
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterli boş alan yok. Yüklemek istediğiniz boyut {size1} ancak yalnız {size2} boş alan var",
"Target folder \"{dir}\" does not exist any more" : "\"{dir}\" hedef klasörü artık yok",
"Not enough free space" : "Yeterli boş alan yok",
+ "An unknown error has occurred" : "Bilinmeyen bir sorun çıktı",
"Uploading …" : "Yükleniyor…",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Bu ögenin yüklenmesi desteklenmiyor",
@@ -141,8 +143,8 @@ OC.L10N.register(
"Show hidden files" : "Gizli dosyaları görüntüle",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">bu adresi kullanın</a>",
- "Cancel upload" : "Yüklemeyi iptal et",
"Toggle grid view" : "Tablo görünümünü değiştir",
+ "Cancel upload" : "Yüklemeyi iptal et",
"No files in here" : "Burada herhangi bir dosya yok",
"Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!",
"No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index 124fddf6083..7959a9e1c39 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -12,6 +12,7 @@
"Home" : "Giriş",
"Close" : "Kapat",
"Could not create folder \"{dir}\"" : "\"{dir}\" klasörü oluşturulamadı",
+ "This will stop your current uploads." : "Bu işlem geçerli yüklemeleri durduracak.",
"Upload cancelled." : "Yükleme iptal edildi.",
"…" : "…",
"Processing files …" : "Dosyalar işleniyor…",
@@ -19,6 +20,7 @@
"Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterli boş alan yok. Yüklemek istediğiniz boyut {size1} ancak yalnız {size2} boş alan var",
"Target folder \"{dir}\" does not exist any more" : "\"{dir}\" hedef klasörü artık yok",
"Not enough free space" : "Yeterli boş alan yok",
+ "An unknown error has occurred" : "Bilinmeyen bir sorun çıktı",
"Uploading …" : "Yükleniyor…",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})",
"Uploading that item is not supported" : "Bu ögenin yüklenmesi desteklenmiyor",
@@ -139,8 +141,8 @@
"Show hidden files" : "Gizli dosyaları görüntüle",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "Dosyalarınıza WebDAV üzerinden erişmek için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">bu adresi kullanın</a>",
- "Cancel upload" : "Yüklemeyi iptal et",
"Toggle grid view" : "Tablo görünümünü değiştir",
+ "Cancel upload" : "Yüklemeyi iptal et",
"No files in here" : "Burada herhangi bir dosya yok",
"Upload some content or sync with your devices!" : "Bir şeyler yükleyin ya da aygıtlarınızla eşitleyin!",
"No entries found in this folder" : "Bu klasörde herhangi bir kayıt bulunamadı",
diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js
index 2bce4284634..79c30a4b12c 100644
--- a/apps/files/l10n/zh_TW.js
+++ b/apps/files/l10n/zh_TW.js
@@ -140,8 +140,8 @@ OC.L10N.register(
"Show hidden files" : "顯示隱藏檔",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "使用這個位址來<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">使用 WebDAV 存取檔案</a>",
- "Cancel upload" : "取消上傳",
"Toggle grid view" : "切換網格檢視",
+ "Cancel upload" : "取消上傳",
"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_TW.json b/apps/files/l10n/zh_TW.json
index 13062ccde3b..689381fe6a7 100644
--- a/apps/files/l10n/zh_TW.json
+++ b/apps/files/l10n/zh_TW.json
@@ -138,8 +138,8 @@
"Show hidden files" : "顯示隱藏檔",
"WebDAV" : "WebDAV",
"Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer noopener\">access your Files via WebDAV</a>" : "使用這個位址來<a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">使用 WebDAV 存取檔案</a>",
- "Cancel upload" : "取消上傳",
"Toggle grid view" : "切換網格檢視",
+ "Cancel upload" : "取消上傳",
"No files in here" : "沒有任何檔案",
"Upload some content or sync with your devices!" : "在您的裝置中同步或上傳一些內容",
"No entries found in this folder" : "在此資料夾中沒有任何項目",
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 85fc31f8c0e..0d18336043e 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -905,7 +905,7 @@ describe('OCA.Files.FileList tests', function() {
done();
});
});
- it('Restores thumbnail if a file could not be moved', function() {
+ it('Restores thumbnail if a file could not be moved', function(done) {
return fileList.move('One.txt', '/somedir').then(function(){
expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class'))
@@ -922,6 +922,7 @@ describe('OCA.Files.FileList tests', function() {
expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail')))
.toEqual(OC.imagePath('core', 'filetypes/text.svg'));
+ done();
});
});
});
@@ -1766,7 +1767,12 @@ describe('OCA.Files.FileList tests', function() {
});
it('dropping files on breadcrumb calls move operation', function(done) {
var testDir = '/subdir/two/three with space/four/five';
- var moveStub = sinon.stub(filesClient, 'move').returns($.Deferred().promise());
+ var moveStub = sinon.stub(filesClient, 'move');
+ var resolve1, resolve2;
+ var deferredMove1 = $.Deferred();
+ var deferredMove2 = $.Deferred();
+ moveStub.onCall(0).returns(deferredMove1.promise());
+ moveStub.onCall(1).returns(deferredMove2.promise());
fileList.changeDirectory(testDir);
deferredList.resolve(200, [testRoot].concat(testFiles));
var $crumb = fileList.breadcrumb.$el.find('.crumb:eq(4)');
@@ -1782,8 +1788,7 @@ describe('OCA.Files.FileList tests', function() {
$('<tr data-file="Two.jpg" data-dir="' + testDir + '"></tr>')
]);
// simulate drop event
- return fileList._onDropOnBreadCrumb(new $.Event('drop', {target: $crumb}), ui).then(function(){
-
+ var result = fileList._onDropOnBreadCrumb(new $.Event('drop', {target: $crumb}), ui).then(function(){
expect(moveStub.callCount).toEqual(2);
expect(moveStub.getCall(0).args[0]).toEqual(testDir + '/One.txt');
expect(moveStub.getCall(0).args[1]).toEqual('/subdir/two/three with space/One.txt');
@@ -1792,6 +1797,9 @@ describe('OCA.Files.FileList tests', function() {
moveStub.restore();
done();
});
+ deferredMove1.resolve(201);
+ deferredMove2.resolve(201);
+ return result;
});
it('dropping files on same dir breadcrumb does nothing', function() {
var testDir = '/subdir/two/three with space/four/five';
diff --git a/apps/files_sharing/css/mobile.scss b/apps/files_sharing/css/mobile.scss
index 272dbbc0c34..3aaa5718cab 100644
--- a/apps/files_sharing/css/mobile.scss
+++ b/apps/files_sharing/css/mobile.scss
@@ -50,5 +50,11 @@ table td.filename .nametext {
padding-right: 14px;
background-position: center;
}
+.note {
+ padding: 0 20px;
+}
+#emptycontent {
+ margin-top: 10vh;
+}
}
diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss
index d1bdfe9162a..b8a5dbf4f38 100644
--- a/apps/files_sharing/css/public.scss
+++ b/apps/files_sharing/css/public.scss
@@ -92,8 +92,10 @@ thead {
margin: 0 auto;
}
-#emptycontent.has-disclaimer {
- margin-top: 10vh;
+#emptycontent {
+ &.has-note {
+ margin-top: 5vh;
+ }
}
#public-upload #emptycontent h2 {
@@ -152,8 +154,9 @@ thead {
margin-right: 7px;
}
-.disclaimer {
- margin: -20px auto 30px;
+.disclaimer,
+.note {
+ margin: 0 auto 30px;
max-width: 400px;
text-align: left;
}
@@ -184,6 +187,11 @@ thead {
}
}
+#show-terms-dialog {
+ cursor: pointer;
+ font-weight: bold;
+}
+
// hide the primary on public share on mobile
@media only screen and (max-width: 768px) {
#body-public {
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 2bd550a3b5c..c7169b3ce12 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -89,7 +89,7 @@ OCA.Sharing.PublicApp = {
displayName: t('files', 'Delete'),
iconClass: 'icon-delete',
}
- ]
+ ]
}
);
this.files = OCA.Files.Files;
@@ -297,10 +297,24 @@ OCA.Sharing.PublicApp = {
}
});
+ self._bindShowTermsAction();
+
// legacy
window.FileList = this.fileList;
},
+ /**
+ * Binds the click action for the "terms of service" action.
+ * Shows an OC info dialog on click.
+ *
+ * @private
+ */
+ _bindShowTermsAction: function() {
+ $('#show-terms-dialog').on('click', function() {
+ OC.dialogs.info($('#disclaimerText').val(), t('files_sharing', 'Terms of service'));
+ });
+ },
+
_showTextPreview: function (data, previewHeight) {
var textDiv = $('<div/>').addClass('text-preview');
textDiv.text(data);
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 7fcfb301559..c1cff5a9f18 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -72,7 +72,7 @@ OC.L10N.register(
"{actor} removed {user} from {file}" : "{actor} закрыл(а) пользователю {user} общий доступ к «{file}»",
"{actor} shared {file} with you" : "{actor} предоставил(а) вам общий доступ к «{file}»",
"{actor} removed you from the share named {file}" : "{actor} закрыл(а) вам общий доступ к общим именам «{file}»",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл или папка, которыми поделились по электронной почте или общедоступной ссылке, были <strong>скачаны</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Скачаны</strong> файлы или папки, доступ к которым был предоставлен по электронной почте или общедоступной ссылке",
"A file or folder was shared from <strong>another server</strong>" : "Общий доступ к файлу или каталогу предоставлен <strong>с другого сервера</strong>",
"A file or folder has been <strong>shared</strong>" : "<strong>Опубликован</strong> файл или каталог",
"Wrong share ID, share doesn't exist" : "Неверный идентификатор, общий ресурс не существует",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index 47a1289cd42..1b2bc642d4c 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -70,7 +70,7 @@
"{actor} removed {user} from {file}" : "{actor} закрыл(а) пользователю {user} общий доступ к «{file}»",
"{actor} shared {file} with you" : "{actor} предоставил(а) вам общий доступ к «{file}»",
"{actor} removed you from the share named {file}" : "{actor} закрыл(а) вам общий доступ к общим именам «{file}»",
- "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Файл или папка, которыми поделились по электронной почте или общедоступной ссылке, были <strong>скачаны</strong>",
+ "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "<strong>Скачаны</strong> файлы или папки, доступ к которым был предоставлен по электронной почте или общедоступной ссылке",
"A file or folder was shared from <strong>another server</strong>" : "Общий доступ к файлу или каталогу предоставлен <strong>с другого сервера</strong>",
"A file or folder has been <strong>shared</strong>" : "<strong>Опубликован</strong> файл или каталог",
"Wrong share ID, share doesn't exist" : "Неверный идентификатор, общий ресурс не существует",
diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php
index 9a8e1298f93..29ed242a975 100644
--- a/apps/files_sharing/lib/Controller/ShareController.php
+++ b/apps/files_sharing/lib/Controller/ShareController.php
@@ -61,7 +61,6 @@ use OCA\Files_Sharing\Activity\Providers\Downloads;
use OCP\Files\NotFoundException;
use OCP\Files\IRootFolder;
use OCP\Share\Exceptions\ShareNotFound;
-use OCP\Util;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
use OCP\Share\IManager as ShareManager;
@@ -295,9 +294,12 @@ class ShareController extends AuthPublicShareController {
if (!$this->validateShare($share)) {
throw new NotFoundException();
}
+
+ $shareNode = $share->getNode();
+
// We can't get the path of a file share
try {
- if ($share->getNode() instanceof \OCP\Files\File && $path !== '') {
+ if ($shareNode instanceof \OCP\Files\File && $path !== '') {
$this->emitAccessShareHook($share, 404, 'Share not found');
throw new NotFoundException();
}
@@ -309,34 +311,34 @@ class ShareController extends AuthPublicShareController {
$shareTmpl = [];
$shareTmpl['displayName'] = $this->userManager->get($share->getShareOwner())->getDisplayName();
$shareTmpl['owner'] = $share->getShareOwner();
- $shareTmpl['filename'] = $share->getNode()->getName();
+ $shareTmpl['filename'] = $shareNode->getName();
$shareTmpl['directory_path'] = $share->getTarget();
$shareTmpl['note'] = $share->getNote();
- $shareTmpl['mimetype'] = $share->getNode()->getMimetype();
- $shareTmpl['previewSupported'] = $this->previewManager->isMimeSupported($share->getNode()->getMimetype());
+ $shareTmpl['mimetype'] = $shareNode->getMimetype();
+ $shareTmpl['previewSupported'] = $this->previewManager->isMimeSupported($shareNode->getMimetype());
$shareTmpl['dirToken'] = $this->getToken();
$shareTmpl['sharingToken'] = $this->getToken();
$shareTmpl['server2serversharing'] = $this->federatedShareProvider->isOutgoingServer2serverShareEnabled();
$shareTmpl['protected'] = $share->getPassword() !== null ? 'true' : 'false';
$shareTmpl['dir'] = '';
- $shareTmpl['nonHumanFileSize'] = $share->getNode()->getSize();
- $shareTmpl['fileSize'] = \OCP\Util::humanFileSize($share->getNode()->getSize());
+ $shareTmpl['nonHumanFileSize'] = $shareNode->getSize();
+ $shareTmpl['fileSize'] = \OCP\Util::humanFileSize($shareNode->getSize());
$shareTmpl['hideDownload'] = $share->getHideDownload();
- // Show file list
$hideFileList = false;
- if ($share->getNode() instanceof \OCP\Files\Folder) {
- /** @var \OCP\Files\Folder $rootFolder */
- $rootFolder = $share->getNode();
+
+ if ($shareNode instanceof \OCP\Files\Folder) {
+
+ $shareIsFolder = true;
try {
- $folderNode = $rootFolder->get($path);
+ $folderNode = $shareNode->get($path);
} catch (\OCP\Files\NotFoundException $e) {
$this->emitAccessShareHook($share, 404, 'Share not found');
throw new NotFoundException();
}
- $shareTmpl['dir'] = $rootFolder->getRelativePath($folderNode->getPath());
+ $shareTmpl['dir'] = $shareNode->getRelativePath($folderNode->getPath());
/*
* The OC_Util methods require a view. This just uses the node API
@@ -352,7 +354,7 @@ class ShareController extends AuthPublicShareController {
$maxUploadFilesize = $freeSpace;
$folder = new Template('files', 'list', '');
- $folder->assign('dir', $rootFolder->getRelativePath($folderNode->getPath()));
+ $folder->assign('dir', $shareNode->getRelativePath($folderNode->getPath()));
$folder->assign('dirToken', $this->getToken());
$folder->assign('permissions', \OCP\Constants::PERMISSION_READ);
$folder->assign('isPublic', true);
@@ -365,6 +367,8 @@ class ShareController extends AuthPublicShareController {
$folder->assign('usedSpacePercent', 0);
$folder->assign('trash', false);
$shareTmpl['folder'] = $folder->fetchPage();
+ } else {
+ $shareIsFolder = false;
}
$shareTmpl['showgridview'] = true;
@@ -379,14 +383,14 @@ class ShareController extends AuthPublicShareController {
$shareTmpl['previewMaxY'] = $this->config->getSystemValue('preview_max_y', 1024);
$shareTmpl['disclaimer'] = $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null);
$shareTmpl['previewURL'] = $shareTmpl['downloadURL'];
- $ogPreview = '';
+
if ($shareTmpl['previewSupported']) {
$shareTmpl['previewImage'] = $this->urlGenerator->linkToRouteAbsolute( 'files_sharing.PublicPreview.getPreview',
['x' => 200, 'y' => 200, 'file' => $shareTmpl['directory_path'], 'token' => $shareTmpl['dirToken']]);
$ogPreview = $shareTmpl['previewImage'];
// We just have direct previews for image files
- if ($share->getNode()->getMimePart() === 'image') {
+ if ($shareNode->getMimePart() === 'image') {
$shareTmpl['previewURL'] = $this->urlGenerator->linkToRouteAbsolute('files_sharing.publicpreview.directLink', ['token' => $this->getToken()]);
$ogPreview = $shareTmpl['previewURL'];
@@ -411,7 +415,6 @@ class ShareController extends AuthPublicShareController {
\OCP\Util::addStyle('files_sharing', 'publicView');
\OCP\Util::addScript('files_sharing', 'public');
\OCP\Util::addScript('files_sharing', 'templates');
- \OCP\Util::addScript('files_sharing', 'public_note');
\OCP\Util::addScript('files', 'fileactions');
\OCP\Util::addScript('files', 'fileactionsmenu');
\OCP\Util::addScript('files', 'jquery.fileupload');
@@ -447,7 +450,11 @@ class ShareController extends AuthPublicShareController {
$response = new PublicTemplateResponse($this->appName, 'public', $shareTmpl);
$response->setHeaderTitle($shareTmpl['filename']);
$response->setHeaderDetails($this->l10n->t('shared by %s', [$shareTmpl['displayName']]));
- if (!$share->getHideDownload()) {
+
+ $isNoneFileDropFolder = $shareIsFolder === false || $share->getPermissions() !== \OCP\Constants::PERMISSION_CREATE;
+
+ if ($isNoneFileDropFolder && !$share->getHideDownload()) {
+ \OCP\Util::addScript('files_sharing', 'public_note');
$response->setHeaderActions([
new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $shareTmpl['downloadURL'], 0),
new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $shareTmpl['downloadURL'], 10, $shareTmpl['fileSize']),
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index 08e119322e5..8795318c1c3 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -21,6 +21,7 @@
<input type="hidden" name="previewSupported" value="<?php p($_['previewSupported'] ? 'true' : 'false'); ?>" id="previewSupported">
<input type="hidden" name="mimetypeIcon" value="<?php p(\OC::$server->getMimeTypeDetector()->mimeTypeIcon($_['mimetype'])); ?>" id="mimetypeIcon">
<input type="hidden" name="hideDownload" value="<?php p($_['hideDownload'] ? 'true' : 'false'); ?>" id="hideDownload">
+<input type="hidden" id="disclaimerText" value="<?php p($_['disclaimer']) ?>">
<?php
$upload_max_filesize = OC::$server->getIniWrapper()->getBytes('upload_max_filesize');
$post_max_size = OC::$server->getIniWrapper()->getBytes('post_max_size');
@@ -82,20 +83,33 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
<?php } else { ?>
<input type="hidden" id="upload-only-interface" value="1"/>
<div id="public-upload">
- <div id="emptycontent" class="<?php if (!empty($_['disclaimer'])) { ?>has-disclaimer<?php } ?>">
+ <div
+ id="emptycontent"
+ class="<?php if (!empty($_['note'])) { ?>has-note<?php } ?>">
<div id="displayavatar"><div class="avatardiv"></div></div>
<h2><?php p($l->t('Upload files to %s', [$_['shareOwner']])) ?></h2>
<p><span class="icon-folder"></span> <?php p($_['filename']) ?></p>
- <?php if (!empty($_['disclaimer'])) { ?>
- <p class="disclaimer"><?php p($_['disclaimer']); ?></p>
+
+ <?php if (empty($_['note']) === false) { ?>
+ <h3><?php p($l->t('Note')); ?></h3>
+ <p class="note"><?php p($_['note']); ?></p>
<?php } ?>
+
<input type="file" name="files[]" class="hidden" multiple>
<a href="#" class="button icon-upload"><?php p($l->t('Select or drop files')) ?></a>
<div id="drop-upload-progress-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploading files…')) ?></div>
<div id="drop-upload-done-indicator" style="padding-top: 25px;" class="hidden"><?php p($l->t('Uploaded files:')) ?></div>
- <ul>
- </ul>
+
+ <?php if (!empty($_['disclaimer'])) { ?>
+ <div>
+ <?php
+ echo $l->t('By uploading files, you agree to the %1$sterms of service%2$s.', [
+ '<span id="show-terms-dialog">', '</span>'
+ ]);
+ ?>
+ </div>
+ <?php } ?>
</div>
</div>
<?php } ?>
diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php
index 564977c09bc..3a9856e1bd2 100644
--- a/apps/files_sharing/tests/Controller/ShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php
@@ -32,6 +32,7 @@
namespace OCA\Files_Sharing\Tests\Controllers;
use OC\Files\Filesystem;
+use OC\Files\Node\Folder;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Files_Sharing\Controller\ShareController;
use OCP\AppFramework\Http\DataResponse;
@@ -39,7 +40,9 @@ use OCP\AppFramework\Http\Template\ExternalShareMenuAction;
use OCP\AppFramework\Http\Template\LinkMenuAction;
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
use OCP\AppFramework\Http\Template\SimpleMenuAction;
+use OCP\Constants;
use OCP\Files\NotFoundException;
+use OCP\Files\Storage;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
@@ -47,14 +50,12 @@ use OCP\IPreview;
use OCP\IRequest;
use OCP\IUser;
use OCP\Share\Exceptions\ShareNotFound;
-use OCP\AppFramework\Http\NotFoundResponse;
-use OCP\AppFramework\Http\RedirectResponse;
-use OCP\AppFramework\Http\TemplateResponse;
use OCP\ISession;
use OCP\IUserManager;
use OCP\Security\ISecureRandom;
use OCP\IURLGenerator;
use OCP\Share\IShare;
+use PHPUnit\Framework\MockObject\MockObject;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
@@ -424,6 +425,104 @@ class ShareControllerTest extends \Test\TestCase {
}
/**
+ * Checks file drop shares:
+ * - there must not be any header action
+ * - the template param "hideFileList" should be true
+ *
+ * @test
+ * @return void
+ */
+ public function testShareFileDrop() {
+ $this->shareController->setToken('token');
+
+ $owner = $this->getMockBuilder(IUser::class)->getMock();
+ $owner->method('getDisplayName')->willReturn('ownerDisplay');
+ $owner->method('getUID')->willReturn('ownerUID');
+
+ /* @var MockObject|Storage $storage */
+ $storage = $this->getMockBuilder(Storage::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ /* @var MockObject|Folder $folder */
+ $folder = $this->getMockBuilder(Folder::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $folder->method('getName')->willReturn('/fileDrop');
+ $folder->method('isReadable')->willReturn(true);
+ $folder->method('isShareable')->willReturn(true);
+ $folder->method('getStorage')->willReturn($storage);
+ $folder->method('get')->with('')->willReturn($folder);
+ $folder->method('getSize')->willReturn(1337);
+
+ $share = \OC::$server->getShareManager()->newShare();
+ $share->setId(42);
+ $share->setPermissions(Constants::PERMISSION_CREATE)
+ ->setShareOwner('ownerUID')
+ ->setNode($folder)
+ ->setTarget('/fileDrop');
+
+ $this->shareManager
+ ->expects($this->once())
+ ->method('getShareByToken')
+ ->with('token')
+ ->willReturn($share);
+
+ $this->userManager->method('get')->with('ownerUID')->willReturn($owner);
+
+ $this->l10n->expects($this->any())
+ ->method('t')
+ ->will($this->returnCallback(function($text, $parameters) {
+ return vsprintf($text, $parameters);
+ }));
+
+ $response = $this->shareController->showShare();
+ // skip the "folder" param for tests
+ $responseParams = $response->getParams();
+ unset($responseParams['folder']);
+ $response->setParams($responseParams);
+
+ $sharedTmplParams = array(
+ 'displayName' => 'ownerDisplay',
+ 'owner' => 'ownerUID',
+ 'filename' => '/fileDrop',
+ 'directory_path' => '/fileDrop',
+ 'mimetype' => null,
+ 'dirToken' => 'token',
+ 'sharingToken' => 'token',
+ 'server2serversharing' => true,
+ 'protected' => 'false',
+ 'dir' => null,
+ 'downloadURL' => '',
+ 'fileSize' => '1 KB',
+ 'nonHumanFileSize' => 1337,
+ 'maxSizeAnimateGif' => null,
+ 'previewSupported' => null,
+ 'previewEnabled' => null,
+ 'previewMaxX' => null,
+ 'previewMaxY' => null,
+ 'hideFileList' => true,
+ 'shareOwner' => 'ownerDisplay',
+ 'disclaimer' => null,
+ 'shareUrl' => '',
+ 'previewImage' => '',
+ 'previewURL' => '',
+ 'note' => '',
+ 'hideDownload' => false,
+ 'showgridview' => true
+ );
+
+ $csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
+ $csp->addAllowedFrameDomain('\'self\'');
+ $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
+ $expectedResponse->setContentSecurityPolicy($csp);
+ $expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
+ $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['displayName']);
+
+ self::assertEquals($expectedResponse, $response);
+ }
+
+ /**
* @expectedException \OCP\Files\NotFoundException
*/
public function testShowShareInvalid() {
diff --git a/apps/twofactor_backupcodes/l10n/ru.js b/apps/twofactor_backupcodes/l10n/ru.js
index 53a7a75f714..c638234eb53 100644
--- a/apps/twofactor_backupcodes/l10n/ru.js
+++ b/apps/twofactor_backupcodes/l10n/ru.js
@@ -1,20 +1,35 @@
OC.L10N.register(
"twofactor_backupcodes",
{
+ "activated" : "activated",
+ "updated" : "updated",
+ "mounted" : "mounted",
+ "deactivated" : "deactivated",
+ "beforeCreate" : "beforeCreate",
+ "created" : "created",
+ "beforeUpdate" : "beforeUpdate",
+ "beforeDestroy" : "beforeDestroy",
+ "destroyed" : "destroyed",
+ "beforeMount" : "beforeMount",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Это ваши резервные коды доступа. Пожалуйста, сохраните и/или распечатайте их, так как вы не сможете увидеть эти коды снова.",
"Save backup codes" : "Сохранить резервные коды",
"Print backup codes" : "Распечатать резервные коды",
+ "Backup codes have been generated. {used} of {total} codes have been used." : "Использовано {used} из {total} ранее выпущенных резервных кодов.",
"Regenerate backup codes" : "Перевыпустить резервные коды",
+ "_icon-loading-small_::_generate-backup-codes_" : ["icon-loading-small","icon-loading-small","icon-loading-small","generate-backup-codes"],
"If you regenerate backup codes, you automatically invalidate old codes." : "При перевыпуске резервных кодов, старые автоматически становятся недействительными.",
"Generate backup codes" : "Создать резервные коды",
"An error occurred while generating your backup codes" : "Произошла ошибка при создании резервных кодов",
"Nextcloud backup codes" : "Резервные коды Nextcloud",
"You created two-factor backup codes for your account" : "Вы создали двухфакторные резервные коды для своего аккаунта",
"Second-factor backup codes" : "Резервные коды двухфакторной аутентификации",
+ "You have enabled two-factor authentication but have not yet generated backup codes. Be sure to do this in case you lose access to your second factor." : "Включена двухфаторная аутентификация, но резервные коды ещё не выпущены. Выпустите и сохраните резервные для входа в систему в случае утраты доступа к выбранному второму фактору проверки подлинности.",
"Backup code" : "Резервный код",
"Use backup code" : "Использовать резервный код",
"Two factor backup codes" : "Второй фактор — резервные коды",
"A two-factor auth backup codes provider" : "Провайдер резервных копий для кодов двухфакторной аутентификации",
- "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервные коды были созданы. Использовано {{used}} из {{total}} кодов."
+ "Use one of the backup codes you saved when setting up two-factor authentication." : "Использовать для двухфакторной аутентификации один из ранее выпущенных резервных кодов.",
+ "Submit" : "Отправить",
+ "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Использовано {{used}} из {{total}} ранее выпущенных резервных кодов."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/apps/twofactor_backupcodes/l10n/ru.json b/apps/twofactor_backupcodes/l10n/ru.json
index 0da756d3498..6af211d8b17 100644
--- a/apps/twofactor_backupcodes/l10n/ru.json
+++ b/apps/twofactor_backupcodes/l10n/ru.json
@@ -1,18 +1,33 @@
{ "translations": {
+ "activated" : "activated",
+ "updated" : "updated",
+ "mounted" : "mounted",
+ "deactivated" : "deactivated",
+ "beforeCreate" : "beforeCreate",
+ "created" : "created",
+ "beforeUpdate" : "beforeUpdate",
+ "beforeDestroy" : "beforeDestroy",
+ "destroyed" : "destroyed",
+ "beforeMount" : "beforeMount",
"These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Это ваши резервные коды доступа. Пожалуйста, сохраните и/или распечатайте их, так как вы не сможете увидеть эти коды снова.",
"Save backup codes" : "Сохранить резервные коды",
"Print backup codes" : "Распечатать резервные коды",
+ "Backup codes have been generated. {used} of {total} codes have been used." : "Использовано {used} из {total} ранее выпущенных резервных кодов.",
"Regenerate backup codes" : "Перевыпустить резервные коды",
+ "_icon-loading-small_::_generate-backup-codes_" : ["icon-loading-small","icon-loading-small","icon-loading-small","generate-backup-codes"],
"If you regenerate backup codes, you automatically invalidate old codes." : "При перевыпуске резервных кодов, старые автоматически становятся недействительными.",
"Generate backup codes" : "Создать резервные коды",
"An error occurred while generating your backup codes" : "Произошла ошибка при создании резервных кодов",
"Nextcloud backup codes" : "Резервные коды Nextcloud",
"You created two-factor backup codes for your account" : "Вы создали двухфакторные резервные коды для своего аккаунта",
"Second-factor backup codes" : "Резервные коды двухфакторной аутентификации",
+ "You have enabled two-factor authentication but have not yet generated backup codes. Be sure to do this in case you lose access to your second factor." : "Включена двухфаторная аутентификация, но резервные коды ещё не выпущены. Выпустите и сохраните резервные для входа в систему в случае утраты доступа к выбранному второму фактору проверки подлинности.",
"Backup code" : "Резервный код",
"Use backup code" : "Использовать резервный код",
"Two factor backup codes" : "Второй фактор — резервные коды",
"A two-factor auth backup codes provider" : "Провайдер резервных копий для кодов двухфакторной аутентификации",
- "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервные коды были созданы. Использовано {{used}} из {{total}} кодов."
+ "Use one of the backup codes you saved when setting up two-factor authentication." : "Использовать для двухфакторной аутентификации один из ранее выпущенных резервных кодов.",
+ "Submit" : "Отправить",
+ "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Использовано {{used}} из {{total}} ранее выпущенных резервных кодов."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file