aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php2
-rw-r--r--apps/files/l10n/de.js1
-rw-r--r--apps/files/l10n/de.json1
-rw-r--r--apps/files/l10n/de_DE.js1
-rw-r--r--apps/files/l10n/de_DE.json1
-rw-r--r--apps/files/l10n/en_GB.js1
-rw-r--r--apps/files/l10n/en_GB.json1
-rw-r--r--apps/files/l10n/es.js1
-rw-r--r--apps/files/l10n/es.json1
-rw-r--r--apps/files/l10n/es_MX.js3
-rw-r--r--apps/files/l10n/es_MX.json3
-rw-r--r--apps/files/l10n/fr.js1
-rw-r--r--apps/files/l10n/fr.json1
-rw-r--r--apps/files/l10n/it.js1
-rw-r--r--apps/files/l10n/it.json1
-rw-r--r--apps/files/l10n/pt_BR.js1
-rw-r--r--apps/files/l10n/pt_BR.json1
-rw-r--r--apps/files_external/css/settings.scss (renamed from apps/files_external/css/settings.css)42
-rw-r--r--apps/files_external/js/settings.js97
-rw-r--r--apps/files_external/l10n/de.js3
-rw-r--r--apps/files_external/l10n/de.json3
-rw-r--r--apps/files_external/l10n/de_DE.js3
-rw-r--r--apps/files_external/l10n/de_DE.json3
-rw-r--r--apps/files_external/l10n/en_GB.js3
-rw-r--r--apps/files_external/l10n/en_GB.json3
-rw-r--r--apps/files_external/l10n/es.js3
-rw-r--r--apps/files_external/l10n/es.json3
-rw-r--r--apps/files_external/l10n/es_MX.js8
-rw-r--r--apps/files_external/l10n/es_MX.json8
-rw-r--r--apps/files_external/l10n/fr.js3
-rw-r--r--apps/files_external/l10n/fr.json3
-rw-r--r--apps/files_external/l10n/it.js3
-rw-r--r--apps/files_external/l10n/it.json3
-rw-r--r--apps/files_external/l10n/pt_BR.js3
-rw-r--r--apps/files_external/l10n/pt_BR.json3
-rw-r--r--apps/files_external/lib/Lib/Storage/SMB.php16
-rw-r--r--apps/files_external/templates/settings.php20
-rw-r--r--apps/files_external/tests/js/settingsSpec.js53
-rw-r--r--apps/files_sharing/composer/composer/autoload_classmap.php2
-rw-r--r--apps/files_sharing/composer/composer/autoload_static.php2
-rw-r--r--apps/files_sharing/css/public.scss8
-rw-r--r--apps/files_sharing/l10n/ast.js4
-rw-r--r--apps/files_sharing/l10n/ast.json4
-rw-r--r--apps/files_sharing/l10n/ca.js8
-rw-r--r--apps/files_sharing/l10n/ca.json8
-rw-r--r--apps/files_sharing/l10n/cs.js8
-rw-r--r--apps/files_sharing/l10n/cs.json8
-rw-r--r--apps/files_sharing/l10n/de.js8
-rw-r--r--apps/files_sharing/l10n/de.json8
-rw-r--r--apps/files_sharing/l10n/de_DE.js8
-rw-r--r--apps/files_sharing/l10n/de_DE.json8
-rw-r--r--apps/files_sharing/l10n/el.js8
-rw-r--r--apps/files_sharing/l10n/el.json8
-rw-r--r--apps/files_sharing/l10n/en_GB.js8
-rw-r--r--apps/files_sharing/l10n/en_GB.json8
-rw-r--r--apps/files_sharing/l10n/es.js8
-rw-r--r--apps/files_sharing/l10n/es.json8
-rw-r--r--apps/files_sharing/l10n/es_419.js8
-rw-r--r--apps/files_sharing/l10n/es_419.json8
-rw-r--r--apps/files_sharing/l10n/es_AR.js6
-rw-r--r--apps/files_sharing/l10n/es_AR.json6
-rw-r--r--apps/files_sharing/l10n/es_CL.js8
-rw-r--r--apps/files_sharing/l10n/es_CL.json8
-rw-r--r--apps/files_sharing/l10n/es_CO.js8
-rw-r--r--apps/files_sharing/l10n/es_CO.json8
-rw-r--r--apps/files_sharing/l10n/es_CR.js8
-rw-r--r--apps/files_sharing/l10n/es_CR.json8
-rw-r--r--apps/files_sharing/l10n/es_DO.js8
-rw-r--r--apps/files_sharing/l10n/es_DO.json8
-rw-r--r--apps/files_sharing/l10n/es_EC.js8
-rw-r--r--apps/files_sharing/l10n/es_EC.json8
-rw-r--r--apps/files_sharing/l10n/es_GT.js8
-rw-r--r--apps/files_sharing/l10n/es_GT.json8
-rw-r--r--apps/files_sharing/l10n/es_HN.js8
-rw-r--r--apps/files_sharing/l10n/es_HN.json8
-rw-r--r--apps/files_sharing/l10n/es_MX.js12
-rw-r--r--apps/files_sharing/l10n/es_MX.json12
-rw-r--r--apps/files_sharing/l10n/es_NI.js8
-rw-r--r--apps/files_sharing/l10n/es_NI.json8
-rw-r--r--apps/files_sharing/l10n/es_PA.js8
-rw-r--r--apps/files_sharing/l10n/es_PA.json8
-rw-r--r--apps/files_sharing/l10n/es_PE.js8
-rw-r--r--apps/files_sharing/l10n/es_PE.json8
-rw-r--r--apps/files_sharing/l10n/es_PR.js8
-rw-r--r--apps/files_sharing/l10n/es_PR.json8
-rw-r--r--apps/files_sharing/l10n/es_PY.js8
-rw-r--r--apps/files_sharing/l10n/es_PY.json8
-rw-r--r--apps/files_sharing/l10n/es_SV.js8
-rw-r--r--apps/files_sharing/l10n/es_SV.json8
-rw-r--r--apps/files_sharing/l10n/es_UY.js8
-rw-r--r--apps/files_sharing/l10n/es_UY.json8
-rw-r--r--apps/files_sharing/l10n/et_EE.js8
-rw-r--r--apps/files_sharing/l10n/et_EE.json8
-rw-r--r--apps/files_sharing/l10n/fi.js8
-rw-r--r--apps/files_sharing/l10n/fi.json8
-rw-r--r--apps/files_sharing/l10n/fr.js8
-rw-r--r--apps/files_sharing/l10n/fr.json8
-rw-r--r--apps/files_sharing/l10n/hu.js8
-rw-r--r--apps/files_sharing/l10n/hu.json8
-rw-r--r--apps/files_sharing/l10n/id.js6
-rw-r--r--apps/files_sharing/l10n/id.json6
-rw-r--r--apps/files_sharing/l10n/is.js8
-rw-r--r--apps/files_sharing/l10n/is.json8
-rw-r--r--apps/files_sharing/l10n/it.js8
-rw-r--r--apps/files_sharing/l10n/it.json8
-rw-r--r--apps/files_sharing/l10n/ja.js8
-rw-r--r--apps/files_sharing/l10n/ja.json8
-rw-r--r--apps/files_sharing/l10n/ka_GE.js8
-rw-r--r--apps/files_sharing/l10n/ka_GE.json8
-rw-r--r--apps/files_sharing/l10n/ko.js8
-rw-r--r--apps/files_sharing/l10n/ko.json8
-rw-r--r--apps/files_sharing/l10n/lt_LT.js8
-rw-r--r--apps/files_sharing/l10n/lt_LT.json8
-rw-r--r--apps/files_sharing/l10n/lv.js6
-rw-r--r--apps/files_sharing/l10n/lv.json6
-rw-r--r--apps/files_sharing/l10n/nb.js8
-rw-r--r--apps/files_sharing/l10n/nb.json8
-rw-r--r--apps/files_sharing/l10n/nl.js8
-rw-r--r--apps/files_sharing/l10n/nl.json8
-rw-r--r--apps/files_sharing/l10n/pl.js8
-rw-r--r--apps/files_sharing/l10n/pl.json8
-rw-r--r--apps/files_sharing/l10n/pt_BR.js8
-rw-r--r--apps/files_sharing/l10n/pt_BR.json8
-rw-r--r--apps/files_sharing/l10n/pt_PT.js8
-rw-r--r--apps/files_sharing/l10n/pt_PT.json8
-rw-r--r--apps/files_sharing/l10n/ru.js8
-rw-r--r--apps/files_sharing/l10n/ru.json8
-rw-r--r--apps/files_sharing/l10n/sk.js8
-rw-r--r--apps/files_sharing/l10n/sk.json8
-rw-r--r--apps/files_sharing/l10n/sl.js4
-rw-r--r--apps/files_sharing/l10n/sl.json4
-rw-r--r--apps/files_sharing/l10n/sq.js8
-rw-r--r--apps/files_sharing/l10n/sq.json8
-rw-r--r--apps/files_sharing/l10n/sr.js8
-rw-r--r--apps/files_sharing/l10n/sr.json8
-rw-r--r--apps/files_sharing/l10n/sv.js8
-rw-r--r--apps/files_sharing/l10n/sv.json8
-rw-r--r--apps/files_sharing/l10n/tr.js8
-rw-r--r--apps/files_sharing/l10n/tr.json8
-rw-r--r--apps/files_sharing/l10n/zh_CN.js8
-rw-r--r--apps/files_sharing/l10n/zh_CN.json8
-rw-r--r--apps/files_sharing/l10n/zh_TW.js8
-rw-r--r--apps/files_sharing/l10n/zh_TW.json8
-rw-r--r--apps/files_sharing/lib/Capabilities.php2
-rw-r--r--apps/files_sharing/lib/Controller/ShareAPIController.php63
-rw-r--r--apps/files_sharing/lib/Controller/ShareController.php16
-rw-r--r--apps/files_sharing/lib/Template/ExternalShareMenuAction.php68
-rw-r--r--apps/files_sharing/lib/Template/LinkMenuAction.php54
-rw-r--r--apps/files_sharing/templates/public.php129
-rw-r--r--apps/files_sharing/tests/ApiTest.php5
-rw-r--r--apps/files_sharing/tests/Controller/ShareAPIControllerTest.php13
-rw-r--r--apps/files_sharing/tests/Controller/ShareControllerTest.php34
-rw-r--r--apps/sharebymail/l10n/cs.js4
-rw-r--r--apps/sharebymail/l10n/cs.json4
-rw-r--r--apps/theming/js/settings-admin.js37
-rw-r--r--apps/theming/l10n/cs.js2
-rw-r--r--apps/theming/l10n/cs.json2
-rw-r--r--apps/updatenotification/l10n/de.js2
-rw-r--r--apps/updatenotification/l10n/de.json2
-rw-r--r--apps/updatenotification/l10n/de_DE.js2
-rw-r--r--apps/updatenotification/l10n/de_DE.json2
-rw-r--r--apps/updatenotification/l10n/en_GB.js2
-rw-r--r--apps/updatenotification/l10n/en_GB.json2
-rw-r--r--apps/updatenotification/l10n/es.js2
-rw-r--r--apps/updatenotification/l10n/es.json2
-rw-r--r--apps/updatenotification/l10n/es_MX.js2
-rw-r--r--apps/updatenotification/l10n/es_MX.json2
-rw-r--r--apps/updatenotification/l10n/fr.js2
-rw-r--r--apps/updatenotification/l10n/fr.json2
-rw-r--r--apps/updatenotification/l10n/it.js2
-rw-r--r--apps/updatenotification/l10n/it.json2
-rw-r--r--apps/updatenotification/l10n/pt_BR.js2
-rw-r--r--apps/updatenotification/l10n/pt_BR.json2
-rw-r--r--apps/user_ldap/l10n/cs.js4
-rw-r--r--apps/user_ldap/l10n/cs.json4
-rw-r--r--apps/workflowengine/lib/Check/RequestUserAgent.php12
-rw-r--r--apps/workflowengine/tests/Check/RequestUserAgentTest.php117
-rw-r--r--core/Controller/OCJSController.php8
-rw-r--r--core/css/apps.scss20
-rw-r--r--core/css/public.scss22
-rw-r--r--core/css/server.scss1
-rw-r--r--core/js/core.json1
-rw-r--r--core/js/js.js19
-rw-r--r--core/js/public/publicpage.js29
-rw-r--r--core/js/shareitemmodel.js17
-rw-r--r--core/js/tests/specs/shareitemmodelSpec.js25
-rw-r--r--core/l10n/cs.js14
-rw-r--r--core/l10n/cs.json14
-rw-r--r--core/l10n/es_MX.js9
-rw-r--r--core/l10n/es_MX.json9
-rw-r--r--core/templates/layout.public.php80
-rw-r--r--lib/composer/composer/autoload_classmap.php3
-rw-r--r--lib/composer/composer/autoload_static.php3
-rw-r--r--lib/l10n/de.js1
-rw-r--r--lib/l10n/de.json1
-rw-r--r--lib/l10n/de_DE.js1
-rw-r--r--lib/l10n/de_DE.json1
-rw-r--r--lib/l10n/en_GB.js1
-rw-r--r--lib/l10n/en_GB.json1
-rw-r--r--lib/l10n/es.js1
-rw-r--r--lib/l10n/es.json1
-rw-r--r--lib/l10n/es_MX.js15
-rw-r--r--lib/l10n/es_MX.json15
-rw-r--r--lib/l10n/fr.js1
-rw-r--r--lib/l10n/fr.json1
-rw-r--r--lib/l10n/it.js1
-rw-r--r--lib/l10n/it.json1
-rw-r--r--lib/l10n/pt_BR.js1
-rw-r--r--lib/l10n/pt_BR.json1
-rw-r--r--lib/private/Log.php35
-rw-r--r--lib/private/Session/CryptoSessionData.php17
-rw-r--r--lib/private/Session/Internal.php21
-rw-r--r--lib/private/Session/Memory.php19
-rw-r--r--lib/private/Session/Session.php5
-rw-r--r--lib/private/Settings/Admin/Sharing.php70
-rw-r--r--lib/private/Settings/Manager.php2
-rw-r--r--lib/private/Setup.php11
-rw-r--r--lib/private/Template/Base.php5
-rw-r--r--lib/private/Template/JSConfigHelper.php12
-rw-r--r--lib/private/TemplateLayout.php7
-rw-r--r--lib/private/legacy/template.php8
-rw-r--r--lib/public/AppFramework/Http/Template/IMenuAction.php64
-rw-r--r--lib/public/AppFramework/Http/Template/PublicTemplateResponse.php143
-rw-r--r--lib/public/AppFramework/Http/Template/SimpleMenuAction.php126
-rw-r--r--lib/public/AppFramework/Http/TemplateResponse.php2
-rw-r--r--lib/public/ILogger.php23
-rw-r--r--lib/public/IRequest.php10
-rw-r--r--lib/public/ISession.php15
-rw-r--r--settings/css/settings.scss13
-rw-r--r--settings/js/admin.js22
-rw-r--r--settings/l10n/cs.js38
-rw-r--r--settings/l10n/cs.json38
-rw-r--r--settings/l10n/de.js1
-rw-r--r--settings/l10n/de.json1
-rw-r--r--settings/l10n/de_DE.js1
-rw-r--r--settings/l10n/de_DE.json1
-rw-r--r--settings/l10n/en_GB.js1
-rw-r--r--settings/l10n/en_GB.json1
-rw-r--r--settings/l10n/es.js1
-rw-r--r--settings/l10n/es.json1
-rw-r--r--settings/l10n/es_MX.js10
-rw-r--r--settings/l10n/es_MX.json10
-rw-r--r--settings/l10n/fr.js1
-rw-r--r--settings/l10n/fr.json1
-rw-r--r--settings/l10n/it.js1
-rw-r--r--settings/l10n/it.json1
-rw-r--r--settings/l10n/pt_BR.js1
-rw-r--r--settings/l10n/pt_BR.json1
-rw-r--r--settings/templates/settings/admin/sharing.php11
-rw-r--r--tests/acceptance/features/bootstrap/FilesSharingAppContext.php2
-rw-r--r--tests/lib/AppFramework/Http/PublicTemplateResponseTest.php84
-rw-r--r--tests/lib/Settings/Admin/SharingTest.php27
-rw-r--r--tests/lib/Settings/ManagerTest.php2
-rw-r--r--tests/lib/TempManagerTest.php2
254 files changed, 2077 insertions, 827 deletions
diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
index 9cfb2c465e4..ff928ccede4 100644
--- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
@@ -41,7 +41,7 @@ class TestLogger extends Log {
//disable original constructor
}
- public function log($level, $message, array $context = array()) {
+ public function log(int $level, string $message, array $context = array()) {
$this->level = $level;
$this->message = $message;
}
diff --git a/apps/files/l10n/de.js b/apps/files/l10n/de.js
index 68e9ced437f..fdb28378180 100644
--- a/apps/files/l10n/de.js
+++ b/apps/files/l10n/de.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Herunterladen",
"Rename" : "Umbenennen",
"Move or copy" : "Verschieben oder kopieren",
+ "Copy" : "Kopieren",
"Target folder" : "Zielordner",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
diff --git a/apps/files/l10n/de.json b/apps/files/l10n/de.json
index 5cf98a8f143..c3b57aab644 100644
--- a/apps/files/l10n/de.json
+++ b/apps/files/l10n/de.json
@@ -23,6 +23,7 @@
"Download" : "Herunterladen",
"Rename" : "Umbenennen",
"Move or copy" : "Verschieben oder kopieren",
+ "Copy" : "Kopieren",
"Target folder" : "Zielordner",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
diff --git a/apps/files/l10n/de_DE.js b/apps/files/l10n/de_DE.js
index 5273290ba83..972587fdd1b 100644
--- a/apps/files/l10n/de_DE.js
+++ b/apps/files/l10n/de_DE.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Herunterladen",
"Rename" : "Umbenennen",
"Move or copy" : "Verschieben oder kopieren",
+ "Copy" : "Kopieren",
"Target folder" : "Zielordner",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
diff --git a/apps/files/l10n/de_DE.json b/apps/files/l10n/de_DE.json
index 1d7a4aaffb4..d44fbd6bc0f 100644
--- a/apps/files/l10n/de_DE.json
+++ b/apps/files/l10n/de_DE.json
@@ -23,6 +23,7 @@
"Download" : "Herunterladen",
"Rename" : "Umbenennen",
"Move or copy" : "Verschieben oder kopieren",
+ "Copy" : "Kopieren",
"Target folder" : "Zielordner",
"Delete" : "Löschen",
"Disconnect storage" : "Speicher trennen",
diff --git a/apps/files/l10n/en_GB.js b/apps/files/l10n/en_GB.js
index cbe3bcb9b7a..c48f194eaf2 100644
--- a/apps/files/l10n/en_GB.js
+++ b/apps/files/l10n/en_GB.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Download",
"Rename" : "Rename",
"Move or copy" : "Move or copy",
+ "Copy" : "Copy",
"Target folder" : "Target folder",
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
diff --git a/apps/files/l10n/en_GB.json b/apps/files/l10n/en_GB.json
index 0a994ff551b..f62bffdbbe9 100644
--- a/apps/files/l10n/en_GB.json
+++ b/apps/files/l10n/en_GB.json
@@ -23,6 +23,7 @@
"Download" : "Download",
"Rename" : "Rename",
"Move or copy" : "Move or copy",
+ "Copy" : "Copy",
"Target folder" : "Target folder",
"Delete" : "Delete",
"Disconnect storage" : "Disconnect storage",
diff --git a/apps/files/l10n/es.js b/apps/files/l10n/es.js
index ec3708417d8..09b3509d38e 100644
--- a/apps/files/l10n/es.js
+++ b/apps/files/l10n/es.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Descargar",
"Rename" : "Renombrar",
"Move or copy" : "Mover o copiar",
+ "Copy" : "Copiar",
"Target folder" : "Directorio destino",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
diff --git a/apps/files/l10n/es.json b/apps/files/l10n/es.json
index f7982515bab..82f283d4da5 100644
--- a/apps/files/l10n/es.json
+++ b/apps/files/l10n/es.json
@@ -23,6 +23,7 @@
"Download" : "Descargar",
"Rename" : "Renombrar",
"Move or copy" : "Mover o copiar",
+ "Copy" : "Copiar",
"Target folder" : "Directorio destino",
"Delete" : "Eliminar",
"Disconnect storage" : "Desconectar almacenamiento",
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index cc193b8f81b..7bba42e59a2 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -147,6 +147,7 @@ OC.L10N.register(
"Tags" : "Etiquetas",
"Deleted files" : "Archivos borrados",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Move" : "Mover"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index e1845b2dec3..f3030fdb873 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -145,6 +145,7 @@
"Tags" : "Etiquetas",
"Deleted files" : "Archivos borrados",
"Text file" : "Archivo de texto",
- "New text file.txt" : "Nuevo ArchivoDeTexto.txt"
+ "New text file.txt" : "Nuevo ArchivoDeTexto.txt",
+ "Move" : "Mover"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 57a1843242f..69ffe56a47b 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Télécharger",
"Rename" : "Renommer",
"Move or copy" : "Déplacer ou copier",
+ "Copy" : "Copier",
"Target folder" : "Dossier cible",
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 5513e2e36e2..b08a5ceaf45 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -23,6 +23,7 @@
"Download" : "Télécharger",
"Rename" : "Renommer",
"Move or copy" : "Déplacer ou copier",
+ "Copy" : "Copier",
"Target folder" : "Dossier cible",
"Delete" : "Supprimer",
"Disconnect storage" : "Déconnecter ce support de stockage",
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 8f35ad79cee..f53046b7613 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Scarica",
"Rename" : "Rinomina",
"Move or copy" : "Sposta o copia",
+ "Copy" : "Copia",
"Target folder" : "Cartella di destinazione",
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 12a8dd38ba2..68b648c5a6e 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -23,6 +23,7 @@
"Download" : "Scarica",
"Rename" : "Rinomina",
"Move or copy" : "Sposta o copia",
+ "Copy" : "Copia",
"Target folder" : "Cartella di destinazione",
"Delete" : "Elimina",
"Disconnect storage" : "Disconnetti archiviazione",
diff --git a/apps/files/l10n/pt_BR.js b/apps/files/l10n/pt_BR.js
index 1ceb502568e..49dfae4b74b 100644
--- a/apps/files/l10n/pt_BR.js
+++ b/apps/files/l10n/pt_BR.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"Download" : "Baixar",
"Rename" : "Renomear",
"Move or copy" : "Mover ou copiar",
+ "Copy" : "Copiar",
"Target folder" : "Pasta destino",
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenamento",
diff --git a/apps/files/l10n/pt_BR.json b/apps/files/l10n/pt_BR.json
index 0baeaaa5539..b3ff305091e 100644
--- a/apps/files/l10n/pt_BR.json
+++ b/apps/files/l10n/pt_BR.json
@@ -23,6 +23,7 @@
"Download" : "Baixar",
"Rename" : "Renomear",
"Move or copy" : "Mover ou copiar",
+ "Copy" : "Copiar",
"Target folder" : "Pasta destino",
"Delete" : "Excluir",
"Disconnect storage" : "Desconectar armazenamento",
diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.scss
index bac89e26b09..0f52ed3b2a1 100644
--- a/apps/files_external/css/settings.css
+++ b/apps/files_external/css/settings.scss
@@ -18,9 +18,11 @@
#externalStorage td.status > span {
display: inline-block;
- height: 16px;
- width: 16px;
+ height: 28px;
+ width: 28px;
vertical-align: text-bottom;
+ border-radius: 50%;
+ cursor: pointer;
}
td.mountPoint, td.backend { width:160px; }
@@ -30,9 +32,25 @@ td.mountPoint, td.backend { width:160px; }
#addMountPoint>td.applicable { visibility:hidden; }
#addMountPoint>td.hidden { visibility:hidden; }
-#externalStorage .icon-settings {
- padding: 11px 20px;
- vertical-align: text-bottom;
+#externalStorage td {
+ height: 50px;
+ &.mountOptionsToggle,
+ &.remove,
+ &.save {
+ position: relative;
+ padding: 0 !important;
+ width: 44px;
+ [class^='icon-'],
+ [class*=' icon-'] {
+ opacity: 0.5;
+ padding: 14px;
+ vertical-align: text-bottom;
+ cursor: pointer;
+ &:hover {
+ opacity: 1;
+ }
+ }
+ }
}
#selectBackend {
@@ -57,9 +75,9 @@ td.mountPoint, td.backend { width:160px; }
}
#externalStorage td.configuration label {
- min-width: 144px; /* 130px plus 2x7px padding */
- display: inline-block;
- margin-right: 6px;
+ width: 100%;
+ display: inline-flex;
+ align-items: center;
}
#externalStorage td.configuration input.disabled-success {
@@ -72,10 +90,6 @@ td.mountPoint, td.backend { width:160px; }
top: 3px;
}
-#externalStorage td.status .success {
- border-radius: 50%;
-}
-
#userMountingBackends {
padding-left: 25px;
}
@@ -111,10 +125,6 @@ td.mountPoint, td.backend { width:160px; }
width: auto;
}
-#externalStorage .mountOptionsDropdown {
- margin-right: 40px;
-}
-
.nav-icon-external-storage {
background-image: url('../img/app-dark.svg?v=1');
}
diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js
index 12ad285c52b..014dd7a3c2b 100644
--- a/apps/files_external/js/settings.js
+++ b/apps/files_external/js/settings.js
@@ -12,31 +12,43 @@
// TODO: move to a separate file
var MOUNT_OPTIONS_DROPDOWN_TEMPLATE =
- '<div class="drop dropdown mountOptionsDropdown">' +
+ '<div class="popovermenu open">'+
// FIXME: options are hard-coded for now
- ' <div class="optionRow">' +
- ' <input id="mountOptionsEncrypt" name="encrypt" type="checkbox" value="true" checked="checked"/>' +
- ' <label for="mountOptionsEncrypt">{{t "files_external" "Enable encryption"}}</label>' +
- ' </div>' +
- ' <div class="optionRow">' +
- ' <input id="mountOptionsPreviews" name="previews" type="checkbox" value="true" checked="checked"/>' +
- ' <label for="mountOptionsPreviews">{{t "files_external" "Enable previews"}}</label>' +
- ' </div>' +
- ' <div class="optionRow">' +
- ' <input id="mountOptionsSharing" name="enable_sharing" type="checkbox" value="true"/>' +
- ' <label for="mountOptionsSharing">{{t "files_external" "Enable sharing"}}</label>' +
- ' </div>' +
- ' <div class="optionRow">' +
- ' <label for="mountOptionsFilesystemCheck">{{t "files_external" "Check for changes"}}</label>' +
- ' <select id="mountOptionsFilesystemCheck" name="filesystem_check_changes" data-type="int">' +
- ' <option value="0">{{t "files_external" "Never"}}</option>' +
- ' <option value="1" selected="selected">{{t "files_external" "Once every direct access"}}</option>' +
- ' </select>' +
- ' </div>' +
- ' <div class="optionRow">' +
- ' <input id="mountOptionsEncoding" name="encoding_compatibility" type="checkbox" value="true"/>' +
- ' <label for="mountOptionsEncoding">{{mountOptionsEncodingLabel}}</label>' +
- ' </div>' +
+ ' <ul>'+
+ ' <li class="optionRow">'+
+ ' <span class="menuitem">'+
+ ' <input id="mountOptionsEncrypt" class="checkbox" name="encrypt" type="checkbox" value="true" checked="checked"/>'+
+ ' <label for="mountOptionsEncrypt">{{t "files_external" "Enable encryption"}}</label>'+
+ ' </span>'+
+ ' </li>'+
+ ' <li class="optionRow">'+
+ ' <span class="menuitem">'+
+ ' <input id="mountOptionsPreviews" class="checkbox" name="previews" type="checkbox" value="true" checked="checked"/>'+
+ ' <label for="mountOptionsPreviews">{{t "files_external" "Enable previews"}}</label>'+
+ ' </span>'+
+ ' </li>'+
+ ' <li class="optionRow">'+
+ ' <span class="menuitem">'+
+ ' <input id="mountOptionsSharing" class="checkbox" name="enable_sharing" type="checkbox" value="true"/>'+
+ ' <label for="mountOptionsSharing">{{t "files_external" "Enable sharing"}}</label>'+
+ ' </span>'+
+ ' </li>'+
+ ' <li class="optionRow">'+
+ ' <span class="menuitem icon-search">'+
+ ' <label for="mountOptionsFilesystemCheck">{{t "files_external" "Check for changes"}}</label>'+
+ ' <select id="mountOptionsFilesystemCheck" name="filesystem_check_changes" data-type="int">'+
+ ' <option value="0">{{t "files_external" "Never"}}</option>'+
+ ' <option value="1" selected="selected">{{t "files_external" "Once every direct access"}}</option>'+
+ ' </select>'+
+ ' </span>'+
+ ' </li>'+
+ ' <li class="optionRow">'+
+ ' <span class="menuitem">'+
+ ' <input id="mountOptionsEncoding" class="checkbox" name="encoding_compatibility" type="checkbox" value="true"/>'+
+ ' <label for="mountOptionsEncoding">{{mountOptionsEncodingLabel}}</label>'+
+ ' </span>'+
+ ' </li>'+
+ ' </ul>'+
'</div>';
/**
@@ -716,15 +728,15 @@ MountConfigListView.prototype = _.extend({
self.recheckStorageConfig($(this).closest('tr'));
});
- this.$el.on('click', 'td.remove>img', function() {
+ this.$el.on('click', 'td.remove>.icon-delete', function() {
self.deleteStorageConfig($(this).closest('tr'));
});
- this.$el.on('click', 'td.save>img', function () {
+ this.$el.on('click', 'td.save>.icon-checkmark', function () {
self.saveStorageConfig($(this).closest('tr'));
});
- this.$el.on('click', 'td.mountOptionsToggle>img', function() {
+ this.$el.on('click', 'td.mountOptionsToggle>.icon-settings-dark', function() {
self._showMountOptionsDropdown($(this).closest('tr'));
});
@@ -1220,24 +1232,28 @@ MountConfigListView.prototype = _.extend({
*/
updateStatus: function($tr, status, message) {
var $statusSpan = $tr.find('.status span');
- $statusSpan.removeClass('loading-small success indeterminate error');
switch (status) {
case null:
// remove status
break;
case StorageConfig.Status.IN_PROGRESS:
- $statusSpan.addClass('loading-small');
+ $statusSpan.attr('class', 'icon-loading-small');
break;
case StorageConfig.Status.SUCCESS:
- $statusSpan.addClass('success');
+ $statusSpan.attr('class', 'success icon-checkmark-white');
break;
case StorageConfig.Status.INDETERMINATE:
- $statusSpan.addClass('indeterminate');
+ $statusSpan.attr('class', 'indeterminate icon-info-white');
break;
default:
- $statusSpan.addClass('error');
+ $statusSpan.attr('class', 'error icon-error-white');
+ }
+ if (typeof message === 'string') {
+ $statusSpan.attr('title', message);
+ $statusSpan.tooltip();
+ } else {
+ $statusSpan.tooltip('destroy');
}
- $statusSpan.attr('data-original-title', (typeof message === 'string') ? message : '');
},
/**
@@ -1279,11 +1295,6 @@ MountConfigListView.prototype = _.extend({
* @param {Object} $tr configuration row
*/
_showMountOptionsDropdown: function($tr) {
- if (this._preventNextDropdown) {
- // prevented because the click was on the toggle
- this._preventNextDropdown = false;
- return;
- }
var self = this;
var storage = this.getStorageConfig($tr);
var $toggle = $tr.find('.mountOptionsToggle');
@@ -1300,15 +1311,7 @@ MountConfigListView.prototype = _.extend({
dropDown.show($toggle, storage.mountOptions || [], visibleOptions);
$('body').on('mouseup.mountOptionsDropdown', function(event) {
var $target = $(event.target);
- if ($toggle.has($target).length) {
- // why is it always so hard to make dropdowns behave ?
- // this prevents the click on the toggle to cause
- // the dropdown to reopen itself
- // (preventDefault doesn't work here because the click
- // event is already in the queue and cannot be cancelled)
- self._preventNextDropdown = true;
- }
- if ($target.closest('.dropdown').length) {
+ if ($target.closest('.popovermenu').length) {
return;
}
dropDown.hide();
diff --git a/apps/files_external/l10n/de.js b/apps/files_external/l10n/de.js
index bb0b15ac9ae..2485ec7c9d9 100644
--- a/apps/files_external/l10n/de.js
+++ b/apps/files_external/l10n/de.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domain",
"Rackspace" : "Rackspace",
"API key" : "API-Schlüssel",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Administrator.",
"External storage support" : "Unterstützung für externen Speicher",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Du hast keine Berechtigung dies zu tun.",
"Name" : "Name",
"Storage type" : "Speichertyp",
"Scope" : "Anwendungsbereich",
diff --git a/apps/files_external/l10n/de.json b/apps/files_external/l10n/de.json
index 426cbe60671..a1166ff46f4 100644
--- a/apps/files_external/l10n/de.json
+++ b/apps/files_external/l10n/de.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domain",
"Rackspace" : "Rackspace",
"API key" : "API-Schlüssel",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Systemadministrator.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an den Administrator.",
"External storage support" : "Unterstützung für externen Speicher",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Du hast keine Berechtigung dies zu tun.",
"Name" : "Name",
"Storage type" : "Speichertyp",
"Scope" : "Anwendungsbereich",
diff --git a/apps/files_external/l10n/de_DE.js b/apps/files_external/l10n/de_DE.js
index 998ca340675..2cadb7bc1ea 100644
--- a/apps/files_external/l10n/de_DE.js
+++ b/apps/files_external/l10n/de_DE.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domain",
"Rackspace" : "Rackspace",
"API key" : "API-Schlüssel",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Administrator.",
"External storage support" : "Unterstützung für externen Speicher",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung dies zu tun.",
"Name" : "Name",
"Storage type" : "Speichertyp",
"Scope" : "Anwendungsbereich",
diff --git a/apps/files_external/l10n/de_DE.json b/apps/files_external/l10n/de_DE.json
index 390251cf2d1..27d212813e8 100644
--- a/apps/files_external/l10n/de_DE.json
+++ b/apps/files_external/l10n/de_DE.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "Client-ID",
"Client secret" : "Geheime Zeichenkette des Client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Name des Mieters",
"Identity endpoint URL" : "Identität Endpunkt-URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domain",
"Rackspace" : "Rackspace",
"API key" : "API-Schlüssel",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Die FTP-Unterstützung von PHP ist deaktiviert oder nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich bezüglich Aktivierung oder Installation an Ihren Administrator.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Administrator.",
"External storage support" : "Unterstützung für externen Speicher",
+ "No external storage configured or you don't have the permission to configure them" : "Es ist kein externer Speicher eingerichtet oder Sie haben keine Berechtigung dies zu tun.",
"Name" : "Name",
"Storage type" : "Speichertyp",
"Scope" : "Anwendungsbereich",
diff --git a/apps/files_external/l10n/en_GB.js b/apps/files_external/l10n/en_GB.js
index 56a01bbe011..6de22144156 100644
--- a/apps/files_external/l10n/en_GB.js
+++ b/apps/files_external/l10n/en_GB.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "Client ID",
"Client secret" : "Client secret",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Tenant name",
"Identity endpoint URL" : "Identity endpoint URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domain",
"Rackspace" : "Rackspace",
"API key" : "API key",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
"External storage support" : "External storage support",
+ "No external storage configured or you don't have the permission to configure them" : "No external storage configured or you don't have the permission to configure them",
"Name" : "Name",
"Storage type" : "Storage type",
"Scope" : "Scope",
diff --git a/apps/files_external/l10n/en_GB.json b/apps/files_external/l10n/en_GB.json
index 61f44824446..644c7d4b5d5 100644
--- a/apps/files_external/l10n/en_GB.json
+++ b/apps/files_external/l10n/en_GB.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "Client ID",
"Client secret" : "Client secret",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Tenant name",
"Identity endpoint URL" : "Identity endpoint URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domain",
"Rackspace" : "Rackspace",
"API key" : "API key",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
"External storage support" : "External storage support",
+ "No external storage configured or you don't have the permission to configure them" : "No external storage configured or you don't have the permission to configure them",
"Name" : "Name",
"Storage type" : "Storage type",
"Scope" : "Scope",
diff --git a/apps/files_external/l10n/es.js b/apps/files_external/l10n/es.js
index cc68ebf7711..e86c5784a3e 100644
--- a/apps/files_external/l10n/es.js
+++ b/apps/files_external/l10n/es.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "ID de Cliente",
"Client secret" : "Cliente secreto",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nombre del inquilino",
"Identity endpoint URL" : "Identidad de punto final URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Espacio de Rack",
"API key" : "Clave API",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP desde PHP no esta habilitado o instalado. Montar el %s no ha sido posible. Por favor consulta al administrador de tu sistema para que lo instale.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no está instalado. El montaje de %s no es posible. Por favor, pregunte a su administrador del sistema para instalarlo.",
"External storage support" : "Soporte de almacenamiento externo",
+ "No external storage configured or you don't have the permission to configure them" : "No se ha configurado ningún almacenamiento externo o no tienes permiso para configurarlos",
"Name" : "Nombre",
"Storage type" : "Tipo de almacenamiento",
"Scope" : "Ámbito",
diff --git a/apps/files_external/l10n/es.json b/apps/files_external/l10n/es.json
index 679be55d174..86e4bb54142 100644
--- a/apps/files_external/l10n/es.json
+++ b/apps/files_external/l10n/es.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "ID de Cliente",
"Client secret" : "Cliente secreto",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nombre del inquilino",
"Identity endpoint URL" : "Identidad de punto final URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Espacio de Rack",
"API key" : "Clave API",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP desde PHP no esta habilitado o instalado. Montar el %s no ha sido posible. Por favor consulta al administrador de tu sistema para que lo instale.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no está instalado. El montaje de %s no es posible. Por favor, pregunte a su administrador del sistema para instalarlo.",
"External storage support" : "Soporte de almacenamiento externo",
+ "No external storage configured or you don't have the permission to configure them" : "No se ha configurado ningún almacenamiento externo o no tienes permiso para configurarlos",
"Name" : "Nombre",
"Storage type" : "Tipo de almacenamiento",
"Scope" : "Ámbito",
diff --git a/apps/files_external/l10n/es_MX.js b/apps/files_external/l10n/es_MX.js
index 88f19e10404..ede753727e8 100644
--- a/apps/files_external/l10n/es_MX.js
+++ b/apps/files_external/l10n/es_MX.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "ID del cliente",
"Client secret" : "Secreto del cliente",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nombre de inquilino",
"Identity endpoint URL" : "URL del punto de enlace de Identidad",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Rackspace",
"API key" : "Llave de API",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ",
"External storage support" : "Soporte de almacenamiento externo",
+ "No external storage configured or you don't have the permission to configure them" : "No se ha configurado almacenamiento externo o bien no cuentas con los permisos para configurarlos",
"Name" : "Nombre",
"Storage type" : "Tipo de almacenamiento",
"Scope" : "Alcance",
@@ -119,7 +122,12 @@ OC.L10N.register(
"Delete" : "Borrar",
"Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo",
+ "Step 1 failed. Exception: %s" : "Paso 1 falló. Excepción: %s",
+ "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s",
+ "Dropbox App Configuration" : "Configuración de la aplicación Dropbox",
"OpenStack" : "OpenStack",
+ "Dropbox" : "Dropbox",
+ "Google Drive" : "Google Drive",
"No external storage configured" : "No se ha configurado el almacenamiento externo",
"You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales"
},
diff --git a/apps/files_external/l10n/es_MX.json b/apps/files_external/l10n/es_MX.json
index 7d1ed5424c1..88e8d087c04 100644
--- a/apps/files_external/l10n/es_MX.json
+++ b/apps/files_external/l10n/es_MX.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "ID del cliente",
"Client secret" : "Secreto del cliente",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nombre de inquilino",
"Identity endpoint URL" : "URL del punto de enlace de Identidad",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Rackspace",
"API key" : "Llave de API",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ",
"External storage support" : "Soporte de almacenamiento externo",
+ "No external storage configured or you don't have the permission to configure them" : "No se ha configurado almacenamiento externo o bien no cuentas con los permisos para configurarlos",
"Name" : "Nombre",
"Storage type" : "Tipo de almacenamiento",
"Scope" : "Alcance",
@@ -117,7 +120,12 @@
"Delete" : "Borrar",
"Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo",
"Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo",
+ "Step 1 failed. Exception: %s" : "Paso 1 falló. Excepción: %s",
+ "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s",
+ "Dropbox App Configuration" : "Configuración de la aplicación Dropbox",
"OpenStack" : "OpenStack",
+ "Dropbox" : "Dropbox",
+ "Google Drive" : "Google Drive",
"No external storage configured" : "No se ha configurado el almacenamiento externo",
"You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index d2d3003deea..d7ca0694948 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "ID Client",
"Client secret" : "Secret client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Tenant name",
"Identity endpoint URL" : "Identity endpoint URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domaine",
"Rackspace" : "Rackspace",
"API key" : "Clé API",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Le support du FTP dans PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Merci de demander à votre administrateur de l'installer.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" n'est pas installé. Le montage de %s n'est pas possible. Merci de demander à l'administrateur système de l'installer.",
"External storage support" : "Support de stockage externe",
+ "No external storage configured or you don't have the permission to configure them" : "Aucun stockage externe configuré ou vous n'avez pas l'autorisation de les configurer",
"Name" : "Nom",
"Storage type" : "Type de stockage",
"Scope" : "Portée",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index 5920bc44def..16cabb6c6a3 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "ID Client",
"Client secret" : "Secret client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Tenant name",
"Identity endpoint URL" : "Identity endpoint URL",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domaine",
"Rackspace" : "Rackspace",
"API key" : "Clé API",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Le support du FTP dans PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Merci de demander à votre administrateur de l'installer.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" n'est pas installé. Le montage de %s n'est pas possible. Merci de demander à l'administrateur système de l'installer.",
"External storage support" : "Support de stockage externe",
+ "No external storage configured or you don't have the permission to configure them" : "Aucun stockage externe configuré ou vous n'avez pas l'autorisation de les configurer",
"Name" : "Nom",
"Storage type" : "Type de stockage",
"Scope" : "Portée",
diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js
index 0c2be2fd9e4..29da03b6e70 100644
--- a/apps/files_external/l10n/it.js
+++ b/apps/files_external/l10n/it.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "ID client",
"Client secret" : "Segreto del client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nome tenant",
"Identity endpoint URL" : "URL endpoint delle identità",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Rackspace",
"API key" : "Chiave API",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Il supporto FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"External storage support" : "Supporto archiviazioni esterne",
+ "No external storage configured or you don't have the permission to configure them" : "Nessuna archiviazione esterna configurata o non hai i permessi per configurarle",
"Name" : "Nome",
"Storage type" : "Tipo di archiviazione",
"Scope" : "Ambito",
diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json
index 9e90ca627ee..84cd9add498 100644
--- a/apps/files_external/l10n/it.json
+++ b/apps/files_external/l10n/it.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "ID client",
"Client secret" : "Segreto del client",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nome tenant",
"Identity endpoint URL" : "URL endpoint delle identità",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Dominio",
"Rackspace" : "Rackspace",
"API key" : "Chiave API",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "Il supporto FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"External storage support" : "Supporto archiviazioni esterne",
+ "No external storage configured or you don't have the permission to configure them" : "Nessuna archiviazione esterna configurata o non hai i permessi per configurarle",
"Name" : "Nome",
"Storage type" : "Tipo di archiviazione",
"Scope" : "Ambito",
diff --git a/apps/files_external/l10n/pt_BR.js b/apps/files_external/l10n/pt_BR.js
index 4cefa6527a6..c7a199f9853 100644
--- a/apps/files_external/l10n/pt_BR.js
+++ b/apps/files_external/l10n/pt_BR.js
@@ -56,8 +56,10 @@ OC.L10N.register(
"OAuth2" : "OAuth2",
"Client ID" : "ID do Cliente",
"Client secret" : "Segredo do cliente",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nome do inquilino",
"Identity endpoint URL" : "URL do destino da identidade",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domínio",
"Rackspace" : "Espaço no rack",
"API key" : "Chave API",
@@ -100,6 +102,7 @@ OC.L10N.register(
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte FTP no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.",
"External storage support" : "Suporte a armazenamento externo",
+ "No external storage configured or you don't have the permission to configure them" : "Sem armazenamento externo configurado ou você não tem permissão para configurá-los",
"Name" : "Nome",
"Storage type" : "Tipo de armazenamento",
"Scope" : "Alcance",
diff --git a/apps/files_external/l10n/pt_BR.json b/apps/files_external/l10n/pt_BR.json
index 4d702fd3872..4e632ff93f3 100644
--- a/apps/files_external/l10n/pt_BR.json
+++ b/apps/files_external/l10n/pt_BR.json
@@ -54,8 +54,10 @@
"OAuth2" : "OAuth2",
"Client ID" : "ID do Cliente",
"Client secret" : "Segredo do cliente",
+ "OpenStack v2" : "OpenStack v2",
"Tenant name" : "Nome do inquilino",
"Identity endpoint URL" : "URL do destino da identidade",
+ "OpenStack v3" : "OpenStack v3",
"Domain" : "Domínio",
"Rackspace" : "Espaço no rack",
"API key" : "Chave API",
@@ -98,6 +100,7 @@
"The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "O suporte FTP no PHP não está habilitado ou instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.",
"\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" não está instalado. A montagem de %s não foi possível. Por favor, solicite a instalação ao administrador do sistema.",
"External storage support" : "Suporte a armazenamento externo",
+ "No external storage configured or you don't have the permission to configure them" : "Sem armazenamento externo configurado ou você não tem permissão para configurá-los",
"Name" : "Nome",
"Storage type" : "Tipo de armazenamento",
"Scope" : "Alcance",
diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php
index 58a6f65990f..f8fd37a4d48 100644
--- a/apps/files_external/lib/Lib/Storage/SMB.php
+++ b/apps/files_external/lib/Lib/Storage/SMB.php
@@ -152,7 +152,13 @@ class SMB extends Common implements INotifyStorage {
$this->statCache[$path . '/' . $file->getName()] = $file;
}
return array_filter($files, function (IFileInfo $file) {
- return !$file->isHidden();
+ try {
+ return !$file->isHidden();
+ } catch (ForbiddenException $e) {
+ return false;
+ } catch (NotFoundException $e) {
+ return false;
+ }
});
} catch (ConnectException $e) {
throw new StorageNotAvailableException($e->getMessage(), $e->getCode(), $e);
@@ -226,8 +232,12 @@ class SMB extends Common implements INotifyStorage {
$highestMTime = 0;
$files = $this->share->dir($this->root);
foreach ($files as $fileInfo) {
- if ($fileInfo->getMTime() > $highestMTime) {
- $highestMTime = $fileInfo->getMTime();
+ try {
+ if ($fileInfo->getMTime() > $highestMTime) {
+ $highestMTime = $fileInfo->getMTime();
+ }
+ } catch (NotFoundException $e) {
+ // Ignore this, can happen on unavailable DFS shares
}
}
return $highestMTime;
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index 11b3451c32e..895be719ab4 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -106,6 +106,7 @@
<?php if ($_['visibilityType'] === BackendService::VISIBILITY_ADMIN) print_unescaped('<th>'.$l->t('Available for').'</th>'); ?>
<th>&nbsp;</th>
<th>&nbsp;</th>
+ <th>&nbsp;</th>
</tr>
</thead>
<tbody>
@@ -115,7 +116,7 @@
<?php endif; ?>
>
<td class="status">
- <span></span>
+ <span data-placement="right" title="<?php p($l->t('Click to recheck the configuration')); ?>"></span>
</td>
<td class="mountPoint"><input type="text" name="mountPoint" value=""
placeholder="<?php p($l->t('Folder name')); ?>">
@@ -148,25 +149,14 @@
</td>
<?php endif; ?>
<td class="mountOptionsToggle hidden">
- <img class="svg"
- title="<?php p($l->t('Advanced settings')); ?>"
- alt="<?php p($l->t('Advanced settings')); ?>"
- src="<?php print_unescaped(image_path('core', 'actions/settings.svg')); ?>"
- />
+ <div class="icon-settings-dark" title="<?php p($l->t('Advanced settings')); ?>"></div>
<input type="hidden" class="mountOptions" value="" />
</td>
<td class="remove hidden">
- <img class="svg"
- alt="<?php p($l->t('Delete')); ?>"
- title="<?php p($l->t('Delete')); ?>"
- src="<?php print_unescaped(image_path('core', 'actions/delete.svg')); ?>"
- />
+ <div class="icon-delete" title="<?php p($l->t('Delete')); ?>"></div>
</td>
<td class="save hidden">
- <img alt="<?php p($l->t('Save')); ?>"
- title="<?php p($l->t('Save')); ?>"
- src="<?php print_unescaped(image_path('core', 'actions/checkmark.svg')); ?>"
- />
+ <div class="icon-checkmark" title="<?php p($l->t('Save')); ?>"></div>
</td>
</tr>
</tbody>
diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js
index d6b96a47189..56bdcff8345 100644
--- a/apps/files_external/tests/js/settingsSpec.js
+++ b/apps/files_external/tests/js/settingsSpec.js
@@ -45,9 +45,16 @@ describe('OCA.External.Settings tests', function() {
'<td class="applicable">' +
'<input type="hidden" class="applicableUsers">' +
'</td>' +
- '<td class="mountOptionsToggle"><input type="hidden" class="mountOptions"/><img class="svg action"/></td>' +
- '<td class="remove"><img alt="Delete" title="Delete" class="svg action"/></td>' +
- '<td class="save"><img alt="Save" title="Save" class="svg action"/></td>' +
+ '<td class="mountOptionsToggle">'+
+ '<div class="icon-settings-dark" title="Advanced settings" deluminate_imagetype="unknown"></div>'+
+ '<input type="hidden" class="mountOptions"/>'+
+ '</td>'+
+ '<td class="remove">'+
+ '<div class="icon-delete" title="Delete" deluminate_imagetype="unknown"></div>'+
+ '</td>'+
+ '<td class="save">'+
+ '<div class="icon-checkmark" title="Save" deluminate_imagetype="unknown"></div>'+
+ '</td>'+
'</tr>' +
'</tbody>' +
'</table>'
@@ -206,7 +213,7 @@ describe('OCA.External.Settings tests', function() {
expect($mountOptionsField.length).toEqual(1);
$mountOptionsField.val(JSON.stringify({previews:true}));
- var $saveButton = $tr.find('td.save img');
+ var $saveButton = $tr.find('td.save .icon-checkmark');
$saveButton.click();
expect(fakeServer.requests.length).toEqual(1);
@@ -231,17 +238,17 @@ describe('OCA.External.Settings tests', function() {
// TODO: respond and check data-id
});
- it('saves storage after closing mount options dropdown', function() {
- $tr.find('.mountOptionsToggle img').click();
+ it('saves storage after closing mount options popovermenu', function() {
+ $tr.find('.mountOptionsToggle .icon-settings-dark').click();
$tr.find('[name=previews]').trigger(new $.Event('keyup', {keyCode: 97}));
$tr.find('input[data-parameter=field1]').val('test');
- // does not save inside the dropdown
+ // does not save inside the popovermenu
expect(fakeServer.requests.length).toEqual(0);
$('body').mouseup();
- // but after closing the dropdown
+ // but after closing the popovermenu
expect(fakeServer.requests.length).toEqual(1);
});
// TODO: status indicator
@@ -313,7 +320,7 @@ describe('OCA.External.Settings tests', function() {
describe('recheck storages', function() {
// TODO
});
- describe('mount options dropdown', function() {
+ describe('mount options popovermenu', function() {
var $tr;
var $td;
@@ -323,45 +330,45 @@ describe('OCA.External.Settings tests', function() {
selectBackend('\\OC\\TestBackend');
});
- it('shows dropdown when clicking on toggle button, hides when clicking outside', function() {
- $td.find('img').click();
+ it('shows popovermenu when clicking on toggle button, hides when clicking outside', function() {
+ $td.find('.icon-settings-dark').click();
- expect($td.find('.dropdown').length).toEqual(1);
+ expect($td.find('.popovermenu.open').length).toEqual(1);
$('body').mouseup();
- expect($td.find('.dropdown').length).toEqual(0);
+ expect($td.find('.popovermenu.open').length).toEqual(0);
});
it('doesnt show the encryption option when encryption is disabled', function () {
view._encryptionEnabled = false;
- $td.find('img').click();
+ $td.find('.icon-settings-dark').click();
- expect($td.find('.dropdown [name=encrypt]:visible').length).toEqual(0);
+ expect($td.find('.popovermenu [name=encrypt]:visible').length).toEqual(0);
$('body').mouseup();
- expect($td.find('.dropdown').length).toEqual(0);
+ expect($td.find('.popovermenu.open').length).toEqual(0);
});
it('reads config from mountOptions field', function() {
$tr.find('input.mountOptions').val(JSON.stringify({previews:false}));
- $td.find('img').click();
- expect($td.find('.dropdown [name=previews]').prop('checked')).toEqual(false);
+ $td.find('.icon-settings-dark').click();
+ expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(false);
$('body').mouseup();
$tr.find('input.mountOptions').val(JSON.stringify({previews:true}));
- $td.find('img').click();
- expect($td.find('.dropdown [name=previews]').prop('checked')).toEqual(true);
+ $td.find('.icon-settings-dark').click();
+ expect($td.find('.popovermenu [name=previews]').prop('checked')).toEqual(true);
});
it('writes config into mountOptions field', function() {
- $td.find('img').click();
+ $td.find('.icon-settings-dark').click();
// defaults to true
- var $field = $td.find('.dropdown [name=previews]');
+ var $field = $td.find('.popovermenu [name=previews]');
expect($field.prop('checked')).toEqual(true);
- $td.find('.dropdown [name=filesystem_check_changes]').val(0);
+ $td.find('.popovermenu [name=filesystem_check_changes]').val(0);
$('body').mouseup();
expect(JSON.parse($tr.find('input.mountOptions').val())).toEqual({
diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php
index a68db3421b6..0388c7990ec 100644
--- a/apps/files_sharing/composer/composer/autoload_classmap.php
+++ b/apps/files_sharing/composer/composer/autoload_classmap.php
@@ -53,5 +53,7 @@ return array(
'OCA\\Files_Sharing\\ShareBackend\\Folder' => $baseDir . '/../lib/ShareBackend/Folder.php',
'OCA\\Files_Sharing\\SharedMount' => $baseDir . '/../lib/SharedMount.php',
'OCA\\Files_Sharing\\SharedStorage' => $baseDir . '/../lib/SharedStorage.php',
+ 'OCA\\Files_Sharing\\Template\\ExternalShareMenuAction' => $baseDir . '/../lib/Template/ExternalShareMenuAction.php',
+ 'OCA\\Files_Sharing\\Template\\LinkMenuAction' => $baseDir . '/../lib/Template/LinkMenuAction.php',
'OCA\\Files_Sharing\\Updater' => $baseDir . '/../lib/Updater.php',
);
diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php
index 328d6aca01d..dd75dbaa18a 100644
--- a/apps/files_sharing/composer/composer/autoload_static.php
+++ b/apps/files_sharing/composer/composer/autoload_static.php
@@ -68,6 +68,8 @@ class ComposerStaticInitFiles_Sharing
'OCA\\Files_Sharing\\ShareBackend\\Folder' => __DIR__ . '/..' . '/../lib/ShareBackend/Folder.php',
'OCA\\Files_Sharing\\SharedMount' => __DIR__ . '/..' . '/../lib/SharedMount.php',
'OCA\\Files_Sharing\\SharedStorage' => __DIR__ . '/..' . '/../lib/SharedStorage.php',
+ 'OCA\\Files_Sharing\\Template\\ExternalShareMenuAction' => __DIR__ . '/..' . '/../lib/Template/ExternalShareMenuAction.php',
+ 'OCA\\Files_Sharing\\Template\\LinkMenuAction' => __DIR__ . '/..' . '/../lib/Template/LinkMenuAction.php',
'OCA\\Files_Sharing\\Updater' => __DIR__ . '/..' . '/../lib/Updater.php',
);
diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss
index 5edc3f7eb90..1e9dec87fad 100644
--- a/apps/files_sharing/css/public.scss
+++ b/apps/files_sharing/css/public.scss
@@ -3,14 +3,6 @@
min-height: calc(100vh - 160px);
}
-#header .menutoggle {
- padding: 14px;
- padding-right: 40px;
- background-position: right 15px center;
- color: $color-primary-text;
- cursor: pointer;
-}
-
/* force layout to make sure the content element's height matches its contents' height */
.ie #content {
display: inline-block;
diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js
index 7c818ac42b6..57b0f314f1a 100644
--- a/apps/files_sharing/l10n/ast.js
+++ b/apps/files_sharing/l10n/ast.js
@@ -64,6 +64,8 @@ OC.L10N.register(
"Could not lock path" : "Nun pudo bloquiase'l camín",
"Can't change permissions for public share links" : "Nun puen camudase los permisos pa los enllaces de comparticiones públiques",
"Cannot increase permissions" : "Nun puen aumentase los permisos",
+ "Download" : "Baxar",
+ "Direct link" : "Enllaz direutu",
"Share API is disabled" : "L'API de compartición ta desactivada",
"This share is password-protected" : "Esta compartición tien contraseña protexida",
"The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.",
@@ -78,8 +80,6 @@ OC.L10N.register(
"the link expired" : "l'enllaz caducó",
"sharing is disabled" : "la compartición ta deshabilitada",
"For more info, please ask the person who sent this link." : "Pa más información, entrúga-y a la persona qu'unvió esti enllaz",
- "Download" : "Baxar",
- "Direct link" : "Enllaz direutu",
"Download %s" : "Descargar %s",
"Select or drop files" : "Esbilla o suelta ficheros",
"Uploading files…" : "Xubiendo ficheros...",
diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json
index 5a4753b3b79..9860a61990b 100644
--- a/apps/files_sharing/l10n/ast.json
+++ b/apps/files_sharing/l10n/ast.json
@@ -62,6 +62,8 @@
"Could not lock path" : "Nun pudo bloquiase'l camín",
"Can't change permissions for public share links" : "Nun puen camudase los permisos pa los enllaces de comparticiones públiques",
"Cannot increase permissions" : "Nun puen aumentase los permisos",
+ "Download" : "Baxar",
+ "Direct link" : "Enllaz direutu",
"Share API is disabled" : "L'API de compartición ta desactivada",
"This share is password-protected" : "Esta compartición tien contraseña protexida",
"The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.",
@@ -76,8 +78,6 @@
"the link expired" : "l'enllaz caducó",
"sharing is disabled" : "la compartición ta deshabilitada",
"For more info, please ask the person who sent this link." : "Pa más información, entrúga-y a la persona qu'unvió esti enllaz",
- "Download" : "Baxar",
- "Direct link" : "Enllaz direutu",
"Download %s" : "Descargar %s",
"Select or drop files" : "Esbilla o suelta ficheros",
"Uploading files…" : "Xubiendo ficheros...",
diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js
index ddc9ffbb339..9b7679a3dd9 100644
--- a/apps/files_sharing/l10n/ca.js
+++ b/apps/files_sharing/l10n/ca.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no",
"Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics",
"Cannot increase permissions" : "No es poden augmentar els permisos",
+ "shared by %s" : "compartit per %s",
+ "Download" : "Baixa",
+ "Direct link" : "Enllaç directe",
+ "Add to your Nextcloud" : "Afegeix al teu NextCloud",
"Share API is disabled" : "L'API compartida està desactivada",
"File sharing" : "Compartir arxius",
"This share is password-protected" : "Aquest compartit està protegit amb contrasenya",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "l'enllaç ha vençut",
"sharing is disabled" : "s'ha desactivat la compartició",
"For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.",
- "shared by %s" : "compartit per %s",
- "Download" : "Baixa",
- "Direct link" : "Enllaç directe",
- "Add to your Nextcloud" : "Afegeix al teu NextCloud",
"Download %s" : "Baixa %s",
"Upload files to %s" : "Carrega fitxers a %s",
"Select or drop files" : "Selecciona o deixa anar els fitxers",
diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json
index 6111dad6917..6012e46cbfc 100644
--- a/apps/files_sharing/l10n/ca.json
+++ b/apps/files_sharing/l10n/ca.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "S'ha donat un paràmetre d'actualització incorrecte o no",
"Can't change permissions for public share links" : "No es poden canviar els permisos per als enllaços compartits públics",
"Cannot increase permissions" : "No es poden augmentar els permisos",
+ "shared by %s" : "compartit per %s",
+ "Download" : "Baixa",
+ "Direct link" : "Enllaç directe",
+ "Add to your Nextcloud" : "Afegeix al teu NextCloud",
"Share API is disabled" : "L'API compartida està desactivada",
"File sharing" : "Compartir arxius",
"This share is password-protected" : "Aquest compartit està protegit amb contrasenya",
@@ -100,10 +104,6 @@
"the link expired" : "l'enllaç ha vençut",
"sharing is disabled" : "s'ha desactivat la compartició",
"For more info, please ask the person who sent this link." : "Per més informació contacteu amb qui us ha enviat l'enllaç.",
- "shared by %s" : "compartit per %s",
- "Download" : "Baixa",
- "Direct link" : "Enllaç directe",
- "Add to your Nextcloud" : "Afegeix al teu NextCloud",
"Download %s" : "Baixa %s",
"Upload files to %s" : "Carrega fitxers a %s",
"Select or drop files" : "Selecciona o deixa anar els fitxers",
diff --git a/apps/files_sharing/l10n/cs.js b/apps/files_sharing/l10n/cs.js
index 1fd97ab9d38..4cc38c6797a 100644
--- a/apps/files_sharing/l10n/cs.js
+++ b/apps/files_sharing/l10n/cs.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů",
"Can't change permissions for public share links" : "Nelze změnit oprávnění pro veřejně sdílené odkazy",
"Cannot increase permissions" : "Nelze navýšit oprávnění",
+ "shared by %s" : "Sdílel %s",
+ "Download" : "Stáhnout",
+ "Direct link" : "Přímý odkaz",
+ "Add to your Nextcloud" : "Přidat do Nextcloud",
"Share API is disabled" : "Sdílení API je zakázané",
"This share is password-protected" : "Toto sdílení je chráněno heslem",
"The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "platnost odkazu vypršela",
"sharing is disabled" : "sdílení je zakázané",
"For more info, please ask the person who sent this link." : "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.",
- "shared by %s" : "Sdílel %s",
- "Download" : "Stáhnout",
- "Direct link" : "Přímý odkaz",
- "Add to your Nextcloud" : "Přidat do Nextcloud",
"Download %s" : "Stáhnout %s",
"Upload files to %s" : "Nahrát soubory do %s",
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
diff --git a/apps/files_sharing/l10n/cs.json b/apps/files_sharing/l10n/cs.json
index be2b5b6bbbc..f3e11acfcd2 100644
--- a/apps/files_sharing/l10n/cs.json
+++ b/apps/files_sharing/l10n/cs.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Chyba nebo žádná aktualizace dle zadaných parametrů",
"Can't change permissions for public share links" : "Nelze změnit oprávnění pro veřejně sdílené odkazy",
"Cannot increase permissions" : "Nelze navýšit oprávnění",
+ "shared by %s" : "Sdílel %s",
+ "Download" : "Stáhnout",
+ "Direct link" : "Přímý odkaz",
+ "Add to your Nextcloud" : "Přidat do Nextcloud",
"Share API is disabled" : "Sdílení API je zakázané",
"This share is password-protected" : "Toto sdílení je chráněno heslem",
"The password is wrong. Try again." : "Heslo není správné. Zkuste to znovu.",
@@ -99,10 +103,6 @@
"the link expired" : "platnost odkazu vypršela",
"sharing is disabled" : "sdílení je zakázané",
"For more info, please ask the person who sent this link." : "Pro více informací kontaktujte osobu, která vám zaslala tento odkaz.",
- "shared by %s" : "Sdílel %s",
- "Download" : "Stáhnout",
- "Direct link" : "Přímý odkaz",
- "Add to your Nextcloud" : "Přidat do Nextcloud",
"Download %s" : "Stáhnout %s",
"Upload files to %s" : "Nahrát soubory do %s",
"Select or drop files" : "Vyberte nebo přetáhněte soubory",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index 20b0ad7628e..1f2661c307e 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden",
"Cannot increase permissions" : "Berechtigungen können nicht erhöht werden",
+ "shared by %s" : "von %s geteilt",
+ "Download" : "Herunterladen",
+ "Direct link" : "Direkter Link",
+ "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen",
"Share API is disabled" : "Teilen-API ist deaktivert",
"File sharing" : "Dateifreigabe",
"This share is password-protected" : "Freigabe ist passwortgeschützt",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "Der Link ist abgelaufen",
"sharing is disabled" : "Teilen ist deaktiviert",
"For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wende dich bitte an die Person, die dir diesen Link geschickt hat.",
- "shared by %s" : "von %s geteilt",
- "Download" : "Herunterladen",
- "Direct link" : "Direkter Link",
- "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen",
"Download %s" : "Download %s",
"Upload files to %s" : "Dateien für %s hochladen",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index c6b6d458ee4..1e20b0bfed6 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden",
"Cannot increase permissions" : "Berechtigungen können nicht erhöht werden",
+ "shared by %s" : "von %s geteilt",
+ "Download" : "Herunterladen",
+ "Direct link" : "Direkter Link",
+ "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen",
"Share API is disabled" : "Teilen-API ist deaktivert",
"File sharing" : "Dateifreigabe",
"This share is password-protected" : "Freigabe ist passwortgeschützt",
@@ -100,10 +104,6 @@
"the link expired" : "Der Link ist abgelaufen",
"sharing is disabled" : "Teilen ist deaktiviert",
"For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wende dich bitte an die Person, die dir diesen Link geschickt hat.",
- "shared by %s" : "von %s geteilt",
- "Download" : "Herunterladen",
- "Direct link" : "Direkter Link",
- "Add to your Nextcloud" : "Zu Deiner Nextcloud hinzufügen",
"Download %s" : "Download %s",
"Upload files to %s" : "Dateien für %s hochladen",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index 721a2c21e98..370d2463b1b 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden",
"Cannot increase permissions" : "Berechtigungen können nicht erhöht werden",
+ "shared by %s" : "von %s geteilt",
+ "Download" : "Herunterladen",
+ "Direct link" : "Direkter Link",
+ "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
"Share API is disabled" : "Teilen-API ist deaktivert",
"File sharing" : "Dateifreigabe",
"This share is password-protected" : "Freigabe ist passwortgeschützt",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "Der Link ist abgelaufen",
"sharing is disabled" : "Teilen ist deaktiviert",
"For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wenden Sie sich bitte an die Person, die Ihnen diesen Link geschickt hat.",
- "shared by %s" : "von %s geteilt",
- "Download" : "Herunterladen",
- "Direct link" : "Direkter Link",
- "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
"Download %s" : "Download %s",
"Upload files to %s" : "Dateien für %s hochladen",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 54dbda5bd41..b5a796c1726 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Es wurde ein falscher oder kein Updateparameter angegeben",
"Can't change permissions for public share links" : "Berechtigungen für öffentlich freigegebene Links konnten nicht geändert werden",
"Cannot increase permissions" : "Berechtigungen können nicht erhöht werden",
+ "shared by %s" : "von %s geteilt",
+ "Download" : "Herunterladen",
+ "Direct link" : "Direkter Link",
+ "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
"Share API is disabled" : "Teilen-API ist deaktivert",
"File sharing" : "Dateifreigabe",
"This share is password-protected" : "Freigabe ist passwortgeschützt",
@@ -100,10 +104,6 @@
"the link expired" : "Der Link ist abgelaufen",
"sharing is disabled" : "Teilen ist deaktiviert",
"For more info, please ask the person who sent this link." : "Um nähere Informationen zu erhalten, wenden Sie sich bitte an die Person, die Ihnen diesen Link geschickt hat.",
- "shared by %s" : "von %s geteilt",
- "Download" : "Herunterladen",
- "Direct link" : "Direkter Link",
- "Add to your Nextcloud" : "Zu Ihrer Nextcloud hinzufügen",
"Download %s" : "Download %s",
"Upload files to %s" : "Dateien für %s hochladen",
"Select or drop files" : "Dateien auswählen oder hierher ziehen",
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index 4b92053af06..cafcf36b6b1 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε",
"Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους",
"Cannot increase permissions" : "Δεν μπορούμε να αυξήσουμε δικαιώματα",
+ "shared by %s" : "Διαμοιράστηκε από 1 %s",
+ "Download" : "Λήψη",
+ "Direct link" : "Άμεσος σύνδεσμος",
+ "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
"Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο",
"This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό",
"The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "ο σύνδεσμος έληξε",
"sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε",
"For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.",
- "shared by %s" : "Διαμοιράστηκε από 1 %s",
- "Download" : "Λήψη",
- "Direct link" : "Άμεσος σύνδεσμος",
- "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
"Download %s" : "Λήψη %s",
"Upload files to %s" : "Αποστολή αρχείων σε %s",
"Select or drop files" : "Επιλέξτε ή ρίξτε αρχεία",
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index b64724b4d58..0f50082e96b 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Λάθος ή καμία παράμετρος αναβάθμισης δεν δόθηκε",
"Can't change permissions for public share links" : "Δεν μπορούμε να αλλάξουμε δικαιώματα για δημόσια διαμοιρασμένους συνδέσμους",
"Cannot increase permissions" : "Δεν μπορούμε να αυξήσουμε δικαιώματα",
+ "shared by %s" : "Διαμοιράστηκε από 1 %s",
+ "Download" : "Λήψη",
+ "Direct link" : "Άμεσος σύνδεσμος",
+ "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
"Share API is disabled" : "API διαμοιρασμού είναι απενεργοποιημένο",
"This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό",
"The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.",
@@ -99,10 +103,6 @@
"the link expired" : "ο σύνδεσμος έληξε",
"sharing is disabled" : "ο διαμοιρασμός απενεργοποιήθηκε",
"For more info, please ask the person who sent this link." : "Για περισσότερες πληροφορίες, παρακαλώ ρωτήστε το άτομο που σας έστειλε αυτόν τον σύνδεσμο.",
- "shared by %s" : "Διαμοιράστηκε από 1 %s",
- "Download" : "Λήψη",
- "Direct link" : "Άμεσος σύνδεσμος",
- "Add to your Nextcloud" : "Προσθήκη στο Nextcloud σου",
"Download %s" : "Λήψη %s",
"Upload files to %s" : "Αποστολή αρχείων σε %s",
"Select or drop files" : "Επιλέξτε ή ρίξτε αρχεία",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 758ee5ec0f7..94f8f700fc2 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Wrong or no update parameter given",
"Can't change permissions for public share links" : "Can't change permissions for public share links",
"Cannot increase permissions" : "Cannot increase permissions",
+ "shared by %s" : "shared by %s",
+ "Download" : "Download",
+ "Direct link" : "Direct link",
+ "Add to your Nextcloud" : "Add to your Nextcloud",
"Share API is disabled" : "Share API is disabled",
"File sharing" : "File sharing",
"This share is password-protected" : "This share is password-protected",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "the link expired",
"sharing is disabled" : "sharing is disabled",
"For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.",
- "shared by %s" : "shared by %s",
- "Download" : "Download",
- "Direct link" : "Direct link",
- "Add to your Nextcloud" : "Add to your Nextcloud",
"Download %s" : "Download %s",
"Upload files to %s" : "Upload files to %s",
"Select or drop files" : "Select or drop files",
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index 00da5d90c3c..48183adf157 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Wrong or no update parameter given",
"Can't change permissions for public share links" : "Can't change permissions for public share links",
"Cannot increase permissions" : "Cannot increase permissions",
+ "shared by %s" : "shared by %s",
+ "Download" : "Download",
+ "Direct link" : "Direct link",
+ "Add to your Nextcloud" : "Add to your Nextcloud",
"Share API is disabled" : "Share API is disabled",
"File sharing" : "File sharing",
"This share is password-protected" : "This share is password-protected",
@@ -100,10 +104,6 @@
"the link expired" : "the link expired",
"sharing is disabled" : "sharing is disabled",
"For more info, please ask the person who sent this link." : "For more info, please ask the person who sent this link.",
- "shared by %s" : "shared by %s",
- "Download" : "Download",
- "Direct link" : "Direct link",
- "Add to your Nextcloud" : "Add to your Nextcloud",
"Download %s" : "Download %s",
"Upload files to %s" : "Upload files to %s",
"Select or drop files" : "Select or drop files",
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index 5464f142c51..322f7f688a5 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
"Can't change permissions for public share links" : "No se pueden cambiar los permisos para los enlaces de recursos compartidos públicos",
"Cannot increase permissions" : "No es posible aumentar permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Enlace directo",
+ "Add to your Nextcloud" : "Añadir a tu Nextcloud",
"Share API is disabled" : "El API de compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"This share is password-protected" : "Este elemento compartido está protegido por contraseña",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "el enlace expiró",
"sharing is disabled" : "compartir está desactivado",
"For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Enlace directo",
- "Add to your Nextcloud" : "Añadir a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Subir archivos a %s",
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index 4b8ede851ea..f7d9a13d10a 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "No se ha suministrado un parametro correcto",
"Can't change permissions for public share links" : "No se pueden cambiar los permisos para los enlaces de recursos compartidos públicos",
"Cannot increase permissions" : "No es posible aumentar permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Enlace directo",
+ "Add to your Nextcloud" : "Añadir a tu Nextcloud",
"Share API is disabled" : "El API de compartir está deshabilitado",
"File sharing" : "Compartir archivos",
"This share is password-protected" : "Este elemento compartido está protegido por contraseña",
@@ -100,10 +104,6 @@
"the link expired" : "el enlace expiró",
"sharing is disabled" : "compartir está desactivado",
"For more info, please ask the person who sent this link." : "Para mayor información, contacte a la persona que le envió el enlace.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Enlace directo",
- "Add to your Nextcloud" : "Añadir a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Subir archivos a %s",
"Select or drop files" : "Seleccione o arrastre y suelte archivos",
diff --git a/apps/files_sharing/l10n/es_419.js b/apps/files_sharing/l10n/es_419.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_419.js
+++ b/apps/files_sharing/l10n/es_419.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_419.json b/apps/files_sharing/l10n/es_419.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_419.json
+++ b/apps/files_sharing/l10n/es_419.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js
index 987eabe57b9..7ada8ab5f91 100644
--- a/apps/files_sharing/l10n/es_AR.js
+++ b/apps/files_sharing/l10n/es_AR.js
@@ -87,6 +87,9 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para links públicos compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "Download" : "Descargar",
+ "Direct link" : "Link directa",
+ "Add to your Nextcloud" : "Agregar a su Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido esta protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Favor de intentarlo de nuevo.",
@@ -101,9 +104,6 @@ OC.L10N.register(
"the link expired" : "el link expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.",
- "Download" : "Descargar",
- "Direct link" : "Link directa",
- "Add to your Nextcloud" : "Agregar a su Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Seleccione o suelte los archivos",
diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json
index a9ecf179039..37b3fce1452 100644
--- a/apps/files_sharing/l10n/es_AR.json
+++ b/apps/files_sharing/l10n/es_AR.json
@@ -85,6 +85,9 @@
"Wrong or no update parameter given" : "El parametro de actualización esta erróneo o faltante",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para links públicos compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "Download" : "Descargar",
+ "Direct link" : "Link directa",
+ "Add to your Nextcloud" : "Agregar a su Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido esta protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Favor de intentarlo de nuevo.",
@@ -99,9 +102,6 @@
"the link expired" : "el link expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacte a la persona que le envió este link.",
- "Download" : "Descargar",
- "Direct link" : "Link directa",
- "Add to your Nextcloud" : "Agregar a su Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Seleccione o suelte los archivos",
diff --git a/apps/files_sharing/l10n/es_CL.js b/apps/files_sharing/l10n/es_CL.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_CL.js
+++ b/apps/files_sharing/l10n/es_CL.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_CL.json b/apps/files_sharing/l10n/es_CL.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_CL.json
+++ b/apps/files_sharing/l10n/es_CL.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_CO.js b/apps/files_sharing/l10n/es_CO.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_CO.js
+++ b/apps/files_sharing/l10n/es_CO.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_CO.json b/apps/files_sharing/l10n/es_CO.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_CO.json
+++ b/apps/files_sharing/l10n/es_CO.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_CR.js b/apps/files_sharing/l10n/es_CR.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_CR.js
+++ b/apps/files_sharing/l10n/es_CR.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_CR.json b/apps/files_sharing/l10n/es_CR.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_CR.json
+++ b/apps/files_sharing/l10n/es_CR.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_DO.js b/apps/files_sharing/l10n/es_DO.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_DO.js
+++ b/apps/files_sharing/l10n/es_DO.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_DO.json b/apps/files_sharing/l10n/es_DO.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_DO.json
+++ b/apps/files_sharing/l10n/es_DO.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_EC.js b/apps/files_sharing/l10n/es_EC.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_EC.js
+++ b/apps/files_sharing/l10n/es_EC.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_EC.json b/apps/files_sharing/l10n/es_EC.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_EC.json
+++ b/apps/files_sharing/l10n/es_EC.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_GT.js b/apps/files_sharing/l10n/es_GT.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_GT.js
+++ b/apps/files_sharing/l10n/es_GT.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_GT.json b/apps/files_sharing/l10n/es_GT.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_GT.json
+++ b/apps/files_sharing/l10n/es_GT.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_HN.js b/apps/files_sharing/l10n/es_HN.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_HN.js
+++ b/apps/files_sharing/l10n/es_HN.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_HN.json b/apps/files_sharing/l10n/es_HN.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_HN.json
+++ b/apps/files_sharing/l10n/es_HN.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js
index 499e38b4009..9db3d9d8e9b 100644
--- a/apps/files_sharing/l10n/es_MX.js
+++ b/apps/files_sharing/l10n/es_MX.js
@@ -87,7 +87,12 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
+ "File sharing" : "Compartir archivos",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
"Password" : "Contraseña",
@@ -101,14 +106,11 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
"Uploading files…" : "Cargando archivos...",
- "Uploaded files:" : "Archivos cargados:"
+ "Uploaded files:" : "Archivos cargados:",
+ "%s is publicly shared" : "%s está compartido públicamente"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json
index 88c06ebe7ab..b1e3b52ee17 100644
--- a/apps/files_sharing/l10n/es_MX.json
+++ b/apps/files_sharing/l10n/es_MX.json
@@ -85,7 +85,12 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
+ "File sharing" : "Compartir archivos",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
"Password" : "Contraseña",
@@ -99,14 +104,11 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
"Uploading files…" : "Cargando archivos...",
- "Uploaded files:" : "Archivos cargados:"
+ "Uploaded files:" : "Archivos cargados:",
+ "%s is publicly shared" : "%s está compartido públicamente"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/es_NI.js b/apps/files_sharing/l10n/es_NI.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_NI.js
+++ b/apps/files_sharing/l10n/es_NI.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_NI.json b/apps/files_sharing/l10n/es_NI.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_NI.json
+++ b/apps/files_sharing/l10n/es_NI.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PA.js b/apps/files_sharing/l10n/es_PA.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_PA.js
+++ b/apps/files_sharing/l10n/es_PA.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PA.json b/apps/files_sharing/l10n/es_PA.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_PA.json
+++ b/apps/files_sharing/l10n/es_PA.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PE.js b/apps/files_sharing/l10n/es_PE.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_PE.js
+++ b/apps/files_sharing/l10n/es_PE.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PE.json b/apps/files_sharing/l10n/es_PE.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_PE.json
+++ b/apps/files_sharing/l10n/es_PE.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PR.js b/apps/files_sharing/l10n/es_PR.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_PR.js
+++ b/apps/files_sharing/l10n/es_PR.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PR.json b/apps/files_sharing/l10n/es_PR.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_PR.json
+++ b/apps/files_sharing/l10n/es_PR.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PY.js b/apps/files_sharing/l10n/es_PY.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_PY.js
+++ b/apps/files_sharing/l10n/es_PY.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_PY.json b/apps/files_sharing/l10n/es_PY.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_PY.json
+++ b/apps/files_sharing/l10n/es_PY.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_SV.js b/apps/files_sharing/l10n/es_SV.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_SV.js
+++ b/apps/files_sharing/l10n/es_SV.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_SV.json b/apps/files_sharing/l10n/es_SV.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_SV.json
+++ b/apps/files_sharing/l10n/es_SV.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_UY.js b/apps/files_sharing/l10n/es_UY.js
index 499e38b4009..03c29b785b5 100644
--- a/apps/files_sharing/l10n/es_UY.js
+++ b/apps/files_sharing/l10n/es_UY.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/es_UY.json b/apps/files_sharing/l10n/es_UY.json
index 88c06ebe7ab..78b7266cc4d 100644
--- a/apps/files_sharing/l10n/es_UY.json
+++ b/apps/files_sharing/l10n/es_UY.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta",
"Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas",
"Cannot increase permissions" : "No es posible incrementar los permisos",
+ "shared by %s" : "compartido por %s",
+ "Download" : "Descargar",
+ "Direct link" : "Liga directa",
+ "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Share API is disabled" : "El API para compartir está deshabilitado",
"This share is password-protected" : "Este elemento compartido está protegido con contraseña",
"The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.",
@@ -99,10 +103,6 @@
"the link expired" : "la liga expiró",
"sharing is disabled" : "compartir está deshabilitado",
"For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.",
- "shared by %s" : "compartido por %s",
- "Download" : "Descargar",
- "Direct link" : "Liga directa",
- "Add to your Nextcloud" : "Agregar a tu Nextcloud",
"Download %s" : "Descargar %s",
"Upload files to %s" : "Cargar archivos a %s",
"Select or drop files" : "Selecciona o suelta los archivos",
diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js
index 404f481c561..0783b4c30ce 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Antud vale või aegunud parameeter",
"Can't change permissions for public share links" : "Avalikult jagatud linkide õigusi muuta ei saa",
"Cannot increase permissions" : "Ei saa õigusi suurendada",
+ "shared by %s" : "jagas %s",
+ "Download" : "Lae alla",
+ "Direct link" : "Otsene link",
+ "Add to your Nextcloud" : "Lisa oma Nextcloudi",
"Share API is disabled" : "Jagamise API on keelatud",
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "link on aegunud",
"sharing is disabled" : "jagamine on peatatud",
"For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.",
- "shared by %s" : "jagas %s",
- "Download" : "Lae alla",
- "Direct link" : "Otsene link",
- "Add to your Nextcloud" : "Lisa oma Nextcloudi",
"Download %s" : "Laadi alla %s",
"Upload files to %s" : "Laadi failid %s",
"Select or drop files" : "Vali või lohista failid",
diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json
index 89086670a74..89c7d876d30 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Antud vale või aegunud parameeter",
"Can't change permissions for public share links" : "Avalikult jagatud linkide õigusi muuta ei saa",
"Cannot increase permissions" : "Ei saa õigusi suurendada",
+ "shared by %s" : "jagas %s",
+ "Download" : "Lae alla",
+ "Direct link" : "Otsene link",
+ "Add to your Nextcloud" : "Lisa oma Nextcloudi",
"Share API is disabled" : "Jagamise API on keelatud",
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
@@ -99,10 +103,6 @@
"the link expired" : "link on aegunud",
"sharing is disabled" : "jagamine on peatatud",
"For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.",
- "shared by %s" : "jagas %s",
- "Download" : "Lae alla",
- "Direct link" : "Otsene link",
- "Add to your Nextcloud" : "Lisa oma Nextcloudi",
"Download %s" : "Laadi alla %s",
"Upload files to %s" : "Laadi failid %s",
"Select or drop files" : "Vali või lohista failid",
diff --git a/apps/files_sharing/l10n/fi.js b/apps/files_sharing/l10n/fi.js
index 1fa452d8a10..36351ae613a 100644
--- a/apps/files_sharing/l10n/fi.js
+++ b/apps/files_sharing/l10n/fi.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin",
"Can't change permissions for public share links" : "Julkisten jakolinkkien käyttöoikeuksia ei voi muuttaa",
"Cannot increase permissions" : "Oikeuksien lisääminen ei onnistu",
+ "shared by %s" : "%s jakama",
+ "Download" : "Lataa",
+ "Direct link" : "Suora linkki",
+ "Add to your Nextcloud" : "Lisää Nextcloudiisi",
"Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä",
"File sharing" : "Tiedostonjako",
"This share is password-protected" : "Tämä jako on suojattu salasanalla",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "linkki vanheni",
"sharing is disabled" : "jakaminen on poistettu käytöstä",
"For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.",
- "shared by %s" : "%s jakama",
- "Download" : "Lataa",
- "Direct link" : "Suora linkki",
- "Add to your Nextcloud" : "Lisää Nextcloudiisi",
"Download %s" : "Lataa %s",
"Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s",
"Select or drop files" : "Valitse tai pudota tiedostoja",
diff --git a/apps/files_sharing/l10n/fi.json b/apps/files_sharing/l10n/fi.json
index 4c50f9b0b57..fa870dee1c4 100644
--- a/apps/files_sharing/l10n/fi.json
+++ b/apps/files_sharing/l10n/fi.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Päivitettävä parametri puuttuu tai on väärin",
"Can't change permissions for public share links" : "Julkisten jakolinkkien käyttöoikeuksia ei voi muuttaa",
"Cannot increase permissions" : "Oikeuksien lisääminen ei onnistu",
+ "shared by %s" : "%s jakama",
+ "Download" : "Lataa",
+ "Direct link" : "Suora linkki",
+ "Add to your Nextcloud" : "Lisää Nextcloudiisi",
"Share API is disabled" : "Jakamisrajapinta on poistettu käytöstä",
"File sharing" : "Tiedostonjako",
"This share is password-protected" : "Tämä jako on suojattu salasanalla",
@@ -100,10 +104,6 @@
"the link expired" : "linkki vanheni",
"sharing is disabled" : "jakaminen on poistettu käytöstä",
"For more info, please ask the person who sent this link." : "Kysy lisätietoja henkilöltä, jolta sait linkin.",
- "shared by %s" : "%s jakama",
- "Download" : "Lataa",
- "Direct link" : "Suora linkki",
- "Add to your Nextcloud" : "Lisää Nextcloudiisi",
"Download %s" : "Lataa %s",
"Upload files to %s" : "Lähetä tiedostoja käyttäjälle %s",
"Select or drop files" : "Valitse tai pudota tiedostoja",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 795c7444d27..5ae7a0035d7 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
"Can't change permissions for public share links" : "Impossible de changer les permissions pour les liens de partage public",
"Cannot increase permissions" : "Impossible d'augmenter les permissions",
+ "shared by %s" : "partagé par %s",
+ "Download" : "Télécharger",
+ "Direct link" : "Lien direct",
+ "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
"Share API is disabled" : "l'API de partage est désactivée",
"File sharing" : "Partage de fichier",
"This share is password-protected" : "Ce partage est protégé par un mot de passe",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "le lien a expiré",
"sharing is disabled" : "le partage est désactivé",
"For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.",
- "shared by %s" : "partagé par %s",
- "Download" : "Télécharger",
- "Direct link" : "Lien direct",
- "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
"Download %s" : "Télécharger %s",
"Upload files to %s" : "Téléversement des fichiers vers %s",
"Select or drop files" : "Sélectionner ou glisser-déposer vos fichiers",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 9a3ad042b80..d9f72a1b8d4 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Mauvais ou aucun paramètre donné ",
"Can't change permissions for public share links" : "Impossible de changer les permissions pour les liens de partage public",
"Cannot increase permissions" : "Impossible d'augmenter les permissions",
+ "shared by %s" : "partagé par %s",
+ "Download" : "Télécharger",
+ "Direct link" : "Lien direct",
+ "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
"Share API is disabled" : "l'API de partage est désactivée",
"File sharing" : "Partage de fichier",
"This share is password-protected" : "Ce partage est protégé par un mot de passe",
@@ -100,10 +104,6 @@
"the link expired" : "le lien a expiré",
"sharing is disabled" : "le partage est désactivé",
"For more info, please ask the person who sent this link." : "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.",
- "shared by %s" : "partagé par %s",
- "Download" : "Télécharger",
- "Direct link" : "Lien direct",
- "Add to your Nextcloud" : "Ajouter à votre Nextcloud",
"Download %s" : "Télécharger %s",
"Upload files to %s" : "Téléversement des fichiers vers %s",
"Select or drop files" : "Sélectionner ou glisser-déposer vos fichiers",
diff --git a/apps/files_sharing/l10n/hu.js b/apps/files_sharing/l10n/hu.js
index df038f6f38f..e3216c37686 100644
--- a/apps/files_sharing/l10n/hu.js
+++ b/apps/files_sharing/l10n/hu.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
"Can't change permissions for public share links" : "Nem lehet módosítani a nyilvános megosztási hivatkozások jogosultságait",
"Cannot increase permissions" : "Nem lehet növelni az engedélyeket",
+ "shared by %s" : "megosztotta %s",
+ "Download" : "Letöltés",
+ "Direct link" : "Közvetlen hivatkozás",
+ "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz",
"Share API is disabled" : "Megosztás API letiltva",
"File sharing" : "Fájlmegosztás",
"This share is password-protected" : "Ez egy jelszóval védett megosztás",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "lejárt a hivatkozás érvényességi ideje",
"sharing is disabled" : "letiltásra került a megosztás",
"For more info, please ask the person who sent this link." : "További információért fordulj ahhoz, aki ezt a linket küldte neked!",
- "shared by %s" : "megosztotta %s",
- "Download" : "Letöltés",
- "Direct link" : "Közvetlen hivatkozás",
- "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz",
"Download %s" : "%s letöltése",
"Upload files to %s" : "Fájlok felöltése ide: %s",
"Select or drop files" : "Válassz ki vagy dobj ide fájlokat",
diff --git a/apps/files_sharing/l10n/hu.json b/apps/files_sharing/l10n/hu.json
index 1b65474cda2..3ad14798285 100644
--- a/apps/files_sharing/l10n/hu.json
+++ b/apps/files_sharing/l10n/hu.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Hibás vagy üres frissítési paraméter",
"Can't change permissions for public share links" : "Nem lehet módosítani a nyilvános megosztási hivatkozások jogosultságait",
"Cannot increase permissions" : "Nem lehet növelni az engedélyeket",
+ "shared by %s" : "megosztotta %s",
+ "Download" : "Letöltés",
+ "Direct link" : "Közvetlen hivatkozás",
+ "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz",
"Share API is disabled" : "Megosztás API letiltva",
"File sharing" : "Fájlmegosztás",
"This share is password-protected" : "Ez egy jelszóval védett megosztás",
@@ -100,10 +104,6 @@
"the link expired" : "lejárt a hivatkozás érvényességi ideje",
"sharing is disabled" : "letiltásra került a megosztás",
"For more info, please ask the person who sent this link." : "További információért fordulj ahhoz, aki ezt a linket küldte neked!",
- "shared by %s" : "megosztotta %s",
- "Download" : "Letöltés",
- "Direct link" : "Közvetlen hivatkozás",
- "Add to your Nextcloud" : "Add hozzá a Nextcloudodhoz",
"Download %s" : "%s letöltése",
"Upload files to %s" : "Fájlok felöltése ide: %s",
"Select or drop files" : "Válassz ki vagy dobj ide fájlokat",
diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js
index 2f9259faee7..bedcb0ce3f0 100644
--- a/apps/files_sharing/l10n/id.js
+++ b/apps/files_sharing/l10n/id.js
@@ -43,6 +43,9 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui",
"Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik",
"Cannot increase permissions" : "Tidak dapat menambah izin",
+ "Download" : "Unduh",
+ "Direct link" : "Tautan langsung",
+ "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
"Share API is disabled" : "API pembagian dinonaktifkan",
"This share is password-protected" : "Berbagi ini dilindungi kata sandi",
"The password is wrong. Try again." : "Kata sandi salah. Coba lagi",
@@ -57,9 +60,6 @@ OC.L10N.register(
"the link expired" : "tautan telah kedaluwarsa",
"sharing is disabled" : "berbagi dinonaktifkan",
"For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
- "Download" : "Unduh",
- "Direct link" : "Tautan langsung",
- "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
"Download %s" : "Unduh %s",
"Upload files to %s" : "Unggah berkas ke %s",
"Select or drop files" : "Pilih atau drop berkas",
diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json
index 4eb256e0ec7..75c8173db40 100644
--- a/apps/files_sharing/l10n/id.json
+++ b/apps/files_sharing/l10n/id.json
@@ -41,6 +41,9 @@
"Wrong or no update parameter given" : "Parameter salah atau tidak diperbarui",
"Can't change permissions for public share links" : "Tidak dapat mengubah izin untuk tautan berbagi publik",
"Cannot increase permissions" : "Tidak dapat menambah izin",
+ "Download" : "Unduh",
+ "Direct link" : "Tautan langsung",
+ "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
"Share API is disabled" : "API pembagian dinonaktifkan",
"This share is password-protected" : "Berbagi ini dilindungi kata sandi",
"The password is wrong. Try again." : "Kata sandi salah. Coba lagi",
@@ -55,9 +58,6 @@
"the link expired" : "tautan telah kedaluwarsa",
"sharing is disabled" : "berbagi dinonaktifkan",
"For more info, please ask the person who sent this link." : "Untuk info lebih lanjut, silakan tanyakan orang yang mengirim tautan ini.",
- "Download" : "Unduh",
- "Direct link" : "Tautan langsung",
- "Add to your Nextcloud" : "Tambahkan ke Nextcloud Anda",
"Download %s" : "Unduh %s",
"Upload files to %s" : "Unggah berkas ke %s",
"Select or drop files" : "Pilih atau drop berkas",
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index b6a3d892ef9..e4c9044fbac 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið",
"Can't change permissions for public share links" : "Ekki tókst að breyta aðgangsheimildum fyrir opinbera deilingartengla",
"Cannot increase permissions" : "Get ekki aukið aðgangsheimildir",
+ "shared by %s" : "Deilt af %s",
+ "Download" : "Niðurhal",
+ "Direct link" : "Beinn tengill",
+ "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
"Share API is disabled" : "Deilingar-API er óvirkt",
"File sharing" : "Skráadeiling",
"This share is password-protected" : "Þessi sameign er varin með lykilorði",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "tengillinn er útrunninn",
"sharing is disabled" : "slökkt er á skráadeilingu",
"For more info, please ask the person who sent this link." : "Til að vita meira skaltu hafa samband við þann sem sendi þér þennan tengil.",
- "shared by %s" : "Deilt af %s",
- "Download" : "Niðurhal",
- "Direct link" : "Beinn tengill",
- "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
"Download %s" : "Sækja %s",
"Upload files to %s" : "Senda inn skrár á %s",
"Select or drop files" : "Veldu eða slepptu skrám",
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index f2b0bdb93c5..86f98859422 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Rangt eða ekkert uppfærsluviðfang gefið",
"Can't change permissions for public share links" : "Ekki tókst að breyta aðgangsheimildum fyrir opinbera deilingartengla",
"Cannot increase permissions" : "Get ekki aukið aðgangsheimildir",
+ "shared by %s" : "Deilt af %s",
+ "Download" : "Niðurhal",
+ "Direct link" : "Beinn tengill",
+ "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
"Share API is disabled" : "Deilingar-API er óvirkt",
"File sharing" : "Skráadeiling",
"This share is password-protected" : "Þessi sameign er varin með lykilorði",
@@ -100,10 +104,6 @@
"the link expired" : "tengillinn er útrunninn",
"sharing is disabled" : "slökkt er á skráadeilingu",
"For more info, please ask the person who sent this link." : "Til að vita meira skaltu hafa samband við þann sem sendi þér þennan tengil.",
- "shared by %s" : "Deilt af %s",
- "Download" : "Niðurhal",
- "Direct link" : "Beinn tengill",
- "Add to your Nextcloud" : "Bæta í þitt eigið Nextcloud",
"Download %s" : "Sækja %s",
"Upload files to %s" : "Senda inn skrár á %s",
"Select or drop files" : "Veldu eða slepptu skrám",
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index 343d1a6b5d2..343157a102e 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
"Can't change permissions for public share links" : "Impossibile cambiare i permessi per i collegamenti di condivisione pubblici",
"Cannot increase permissions" : "Impossibile aumentare i permessi",
+ "shared by %s" : "condiviso da %s",
+ "Download" : "Scarica",
+ "Direct link" : "Collegamento diretto",
+ "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
"Share API is disabled" : "API di condivisione disabilitate",
"File sharing" : "Condivisione di file",
"This share is password-protected" : "Questa condivisione è protetta da password",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "il collegamento è scaduto",
"sharing is disabled" : "la condivisione è disabilitata",
"For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.",
- "shared by %s" : "condiviso da %s",
- "Download" : "Scarica",
- "Direct link" : "Collegamento diretto",
- "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
"Download %s" : "Scarica %s",
"Upload files to %s" : "Carica file su %s",
"Select or drop files" : "Seleziona o deseleziona file",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index 8fbc3669191..a1f51dd7f9e 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Parametro fornito non valido o non di aggiornamento",
"Can't change permissions for public share links" : "Impossibile cambiare i permessi per i collegamenti di condivisione pubblici",
"Cannot increase permissions" : "Impossibile aumentare i permessi",
+ "shared by %s" : "condiviso da %s",
+ "Download" : "Scarica",
+ "Direct link" : "Collegamento diretto",
+ "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
"Share API is disabled" : "API di condivisione disabilitate",
"File sharing" : "Condivisione di file",
"This share is password-protected" : "Questa condivisione è protetta da password",
@@ -100,10 +104,6 @@
"the link expired" : "il collegamento è scaduto",
"sharing is disabled" : "la condivisione è disabilitata",
"For more info, please ask the person who sent this link." : "Per ulteriori informazioni, chiedi alla persona che ti ha inviato il collegamento.",
- "shared by %s" : "condiviso da %s",
- "Download" : "Scarica",
- "Direct link" : "Collegamento diretto",
- "Add to your Nextcloud" : "Aggiungi al tuo Nextcloud",
"Download %s" : "Scarica %s",
"Upload files to %s" : "Carica file su %s",
"Select or drop files" : "Seleziona o deseleziona file",
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index e0ea814ebd7..37af8a16042 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "間違っている、もしくはパラメータが更新されていません",
"Can't change permissions for public share links" : "URLリンク共有のパーミッションを変更できません",
"Cannot increase permissions" : "パーミッションを追加できません",
+ "shared by %s" : "%s が共有",
+ "Download" : "ダウンロード",
+ "Direct link" : "リンク",
+ "Add to your Nextcloud" : "あなたのNextcloudに追加",
"Share API is disabled" : "共有APIが無効です。",
"File sharing" : "ファイル共有",
"This share is password-protected" : "この共有はパスワードで保護されています",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "リンクの期限が切れています",
"sharing is disabled" : "共有は無効になっています",
"For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。",
- "shared by %s" : "%s が共有",
- "Download" : "ダウンロード",
- "Direct link" : "リンク",
- "Add to your Nextcloud" : "あなたのNextcloudに追加",
"Download %s" : "%s をダウンロード",
"Upload files to %s" : "%s にファイルをアップロード",
"Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください",
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index 0ed2739e522..c6078b384b7 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "間違っている、もしくはパラメータが更新されていません",
"Can't change permissions for public share links" : "URLリンク共有のパーミッションを変更できません",
"Cannot increase permissions" : "パーミッションを追加できません",
+ "shared by %s" : "%s が共有",
+ "Download" : "ダウンロード",
+ "Direct link" : "リンク",
+ "Add to your Nextcloud" : "あなたのNextcloudに追加",
"Share API is disabled" : "共有APIが無効です。",
"File sharing" : "ファイル共有",
"This share is password-protected" : "この共有はパスワードで保護されています",
@@ -100,10 +104,6 @@
"the link expired" : "リンクの期限が切れています",
"sharing is disabled" : "共有は無効になっています",
"For more info, please ask the person who sent this link." : "不明な点は、こちらのリンクの提供者に確認をお願いします。",
- "shared by %s" : "%s が共有",
- "Download" : "ダウンロード",
- "Direct link" : "リンク",
- "Add to your Nextcloud" : "あなたのNextcloudに追加",
"Download %s" : "%s をダウンロード",
"Upload files to %s" : "%s にファイルをアップロード",
"Select or drop files" : "ファイルを選択するか、ドラッグ&ドロップしてください",
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
index 53a582528a8..be891d1d162 100644
--- a/apps/files_sharing/l10n/ka_GE.js
+++ b/apps/files_sharing/l10n/ka_GE.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა",
"Can't change permissions for public share links" : "უფლებები საზოგადოდ გაზიარებულ ბმულზე ვერ შეიცვალა",
"Cannot increase permissions" : "უფლებების გაზრდა ვერ მოხერხდა",
+ "shared by %s" : "გააზიარა მომხმარებელმა %s",
+ "Download" : "ჩამოტვირთვა",
+ "Direct link" : "პირდაპირი ბმული",
+ "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
"Share API is disabled" : "გაზიარების API არაა მოქმედი",
"This share is password-protected" : "ეს გაზიარება დაცულია პაროლით",
"The password is wrong. Try again." : "პაროლი არასწორია. სცადეთ ახლიდან",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "ბმულს ვადა გაუვიდა",
"sharing is disabled" : "გაზიარება არაა მოქმედი",
"For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.",
- "shared by %s" : "გააზიარა მომხმარებელმა %s",
- "Download" : "ჩამოტვირთვა",
- "Direct link" : "პირდაპირი ბმული",
- "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
"Download %s" : "%s-ის ჩამოტვირთვა",
"Upload files to %s" : "ფაილების ატვირთვა %s-ში",
"Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები",
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
index b104766ac3f..8eef027e688 100644
--- a/apps/files_sharing/l10n/ka_GE.json
+++ b/apps/files_sharing/l10n/ka_GE.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა",
"Can't change permissions for public share links" : "უფლებები საზოგადოდ გაზიარებულ ბმულზე ვერ შეიცვალა",
"Cannot increase permissions" : "უფლებების გაზრდა ვერ მოხერხდა",
+ "shared by %s" : "გააზიარა მომხმარებელმა %s",
+ "Download" : "ჩამოტვირთვა",
+ "Direct link" : "პირდაპირი ბმული",
+ "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
"Share API is disabled" : "გაზიარების API არაა მოქმედი",
"This share is password-protected" : "ეს გაზიარება დაცულია პაროლით",
"The password is wrong. Try again." : "პაროლი არასწორია. სცადეთ ახლიდან",
@@ -99,10 +103,6 @@
"the link expired" : "ბმულს ვადა გაუვიდა",
"sharing is disabled" : "გაზიარება არაა მოქმედი",
"For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.",
- "shared by %s" : "გააზიარა მომხმარებელმა %s",
- "Download" : "ჩამოტვირთვა",
- "Direct link" : "პირდაპირი ბმული",
- "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება",
"Download %s" : "%s-ის ჩამოტვირთვა",
"Upload files to %s" : "ფაილების ატვირთვა %s-ში",
"Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები",
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index 5f8e4374ab8..d8212cd20b3 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음",
"Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음",
"Cannot increase permissions" : "권한을 늘릴 수 없음",
+ "shared by %s" : "%s에 의해 공유됨",
+ "Download" : "다운로드",
+ "Direct link" : "직접 링크",
+ "Add to your Nextcloud" : "내 Nextcloud에 추가",
"Share API is disabled" : "공유 API가 비활성화됨",
"This share is password-protected" : "이 공유는 암호로 보호되어 있습니다",
"The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "링크가 만료됨",
"sharing is disabled" : "공유가 비활성화됨",
"For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.",
- "shared by %s" : "%s에 의해 공유됨",
- "Download" : "다운로드",
- "Direct link" : "직접 링크",
- "Add to your Nextcloud" : "내 Nextcloud에 추가",
"Download %s" : "%s 다운로드",
"Upload files to %s" : "%s에 파일 업로드",
"Select or drop files" : "파일을 선택하거나 끌어다 놓기",
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index 00c5d8b954a..c64b4d1bb50 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "업데이트 인자가 잘못되었거나 지정되지 않았음",
"Can't change permissions for public share links" : "공개 공유 링크의 권한을 변경할 수 없음",
"Cannot increase permissions" : "권한을 늘릴 수 없음",
+ "shared by %s" : "%s에 의해 공유됨",
+ "Download" : "다운로드",
+ "Direct link" : "직접 링크",
+ "Add to your Nextcloud" : "내 Nextcloud에 추가",
"Share API is disabled" : "공유 API가 비활성화됨",
"This share is password-protected" : "이 공유는 암호로 보호되어 있습니다",
"The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.",
@@ -99,10 +103,6 @@
"the link expired" : "링크가 만료됨",
"sharing is disabled" : "공유가 비활성화됨",
"For more info, please ask the person who sent this link." : "자세한 정보는 링크를 보낸 사람에게 문의하십시오.",
- "shared by %s" : "%s에 의해 공유됨",
- "Download" : "다운로드",
- "Direct link" : "직접 링크",
- "Add to your Nextcloud" : "내 Nextcloud에 추가",
"Download %s" : "%s 다운로드",
"Upload files to %s" : "%s에 파일 업로드",
"Select or drop files" : "파일을 선택하거나 끌어다 놓기",
diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js
index 33bf03ee0ef..5fa75c10417 100644
--- a/apps/files_sharing/l10n/lt_LT.js
+++ b/apps/files_sharing/l10n/lt_LT.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai",
"Can't change permissions for public share links" : "Negalima keisti leidimų viešai bendrinamoms nuorodoms",
"Cannot increase permissions" : "Negalima pridėti papildomų leidimų",
+ "shared by %s" : "pasidalino %s",
+ "Download" : "Atsisiųsti",
+ "Direct link" : "Tiesioginė nuoroda",
+ "Add to your Nextcloud" : "Pridėti į jūsų NextCloud",
"Share API is disabled" : "Bendrinimo API yra išjungtas",
"This share is password-protected" : "Turinys apsaugotas slaptažodžiu",
"The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "baigėsi nuorodos galiojimo laikas",
"sharing is disabled" : "dalinimasis yra išjungtas",
"For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.",
- "shared by %s" : "pasidalino %s",
- "Download" : "Atsisiųsti",
- "Direct link" : "Tiesioginė nuoroda",
- "Add to your Nextcloud" : "Pridėti į jūsų NextCloud",
"Download %s" : "Atsisiųsti %s",
"Upload files to %s" : "Įkelti duomenis į %s",
"Select or drop files" : "Pasirinkite arba vilkite failus",
diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json
index b05f233ad77..5764613a2ff 100644
--- a/apps/files_sharing/l10n/lt_LT.json
+++ b/apps/files_sharing/l10n/lt_LT.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Neperduoti atnaujinimo parametrai",
"Can't change permissions for public share links" : "Negalima keisti leidimų viešai bendrinamoms nuorodoms",
"Cannot increase permissions" : "Negalima pridėti papildomų leidimų",
+ "shared by %s" : "pasidalino %s",
+ "Download" : "Atsisiųsti",
+ "Direct link" : "Tiesioginė nuoroda",
+ "Add to your Nextcloud" : "Pridėti į jūsų NextCloud",
"Share API is disabled" : "Bendrinimo API yra išjungtas",
"This share is password-protected" : "Turinys apsaugotas slaptažodžiu",
"The password is wrong. Try again." : "Slaptažodis neteisingas. Bandykite dar kartą.",
@@ -99,10 +103,6 @@
"the link expired" : "baigėsi nuorodos galiojimo laikas",
"sharing is disabled" : "dalinimasis yra išjungtas",
"For more info, please ask the person who sent this link." : "Dėl tikslesnės informacijos susisiekite su asmeniu atsiuntusiu nuorodą.",
- "shared by %s" : "pasidalino %s",
- "Download" : "Atsisiųsti",
- "Direct link" : "Tiesioginė nuoroda",
- "Add to your Nextcloud" : "Pridėti į jūsų NextCloud",
"Download %s" : "Atsisiųsti %s",
"Upload files to %s" : "Įkelti duomenis į %s",
"Select or drop files" : "Pasirinkite arba vilkite failus",
diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js
index cfed9516baf..7e128e1c774 100644
--- a/apps/files_sharing/l10n/lv.js
+++ b/apps/files_sharing/l10n/lv.js
@@ -54,6 +54,9 @@ OC.L10N.register(
"Could not lock path" : "Nevarēja bloķēt ceļu",
"Can't change permissions for public share links" : "Publiskai koplietošanas saitei nevar mainīt tiesības",
"Cannot increase permissions" : "Nevar palielināt tiesības",
+ "Download" : "Lejupielādēt",
+ "Direct link" : "Tiešā saite",
+ "Add to your Nextcloud" : "Pievienot savam Nextcloud",
"Share API is disabled" : "Koplietošanas API ir atslēgta",
"This share is password-protected" : "Šī koplietotne ir aizsargāta ar paroli",
"The password is wrong. Try again." : "Nepareiza parole. Mēģiniet vēlreiz.",
@@ -68,9 +71,6 @@ OC.L10N.register(
"the link expired" : "saitei beidzies termiņš",
"sharing is disabled" : "koplietošana nav ieslēgta",
"For more info, please ask the person who sent this link." : "Vairāk informācijas vaicā personai, kas nosūtīja šo saiti.",
- "Download" : "Lejupielādēt",
- "Direct link" : "Tiešā saite",
- "Add to your Nextcloud" : "Pievienot savam Nextcloud",
"Download %s" : "Lejupielādēt %s",
"Uploading files…" : "Augšupielādē datnes",
"Uploaded files:" : "Augšupielādēti faili:"
diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json
index 7ea92586707..8d2ef021ee4 100644
--- a/apps/files_sharing/l10n/lv.json
+++ b/apps/files_sharing/l10n/lv.json
@@ -52,6 +52,9 @@
"Could not lock path" : "Nevarēja bloķēt ceļu",
"Can't change permissions for public share links" : "Publiskai koplietošanas saitei nevar mainīt tiesības",
"Cannot increase permissions" : "Nevar palielināt tiesības",
+ "Download" : "Lejupielādēt",
+ "Direct link" : "Tiešā saite",
+ "Add to your Nextcloud" : "Pievienot savam Nextcloud",
"Share API is disabled" : "Koplietošanas API ir atslēgta",
"This share is password-protected" : "Šī koplietotne ir aizsargāta ar paroli",
"The password is wrong. Try again." : "Nepareiza parole. Mēģiniet vēlreiz.",
@@ -66,9 +69,6 @@
"the link expired" : "saitei beidzies termiņš",
"sharing is disabled" : "koplietošana nav ieslēgta",
"For more info, please ask the person who sent this link." : "Vairāk informācijas vaicā personai, kas nosūtīja šo saiti.",
- "Download" : "Lejupielādēt",
- "Direct link" : "Tiešā saite",
- "Add to your Nextcloud" : "Pievienot savam Nextcloud",
"Download %s" : "Lejupielādēt %s",
"Uploading files…" : "Augšupielādē datnes",
"Uploaded files:" : "Augšupielādēti faili:"
diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js
index dd4bc8c0fb2..01b9c792ed0 100644
--- a/apps/files_sharing/l10n/nb.js
+++ b/apps/files_sharing/l10n/nb.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt",
"Can't change permissions for public share links" : "Kan ikke endre rettigheter for offentlige lenker",
"Cannot increase permissions" : "Kan ikke øke tillatelser",
+ "shared by %s" : "delt av %s",
+ "Download" : "Last ned",
+ "Direct link" : "Direkte lenke",
+ "Add to your Nextcloud" : "Legg til i din Nextcloud",
"Share API is disabled" : "Deling API er deaktivert",
"File sharing" : "Fildeling",
"This share is password-protected" : "Denne delingen er passordbeskyttet",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "lenken er utløpt",
"sharing is disabled" : "deling er avskrudd",
"For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.",
- "shared by %s" : "delt av %s",
- "Download" : "Last ned",
- "Direct link" : "Direkte lenke",
- "Add to your Nextcloud" : "Legg til i din Nextcloud",
"Download %s" : "Last ned %s",
"Upload files to %s" : "Last opp filer til %s",
"Select or drop files" : "Velg eller slipp filer",
diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json
index a72ccbd92b9..d67c5c2cc2e 100644
--- a/apps/files_sharing/l10n/nb.json
+++ b/apps/files_sharing/l10n/nb.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Feil eller ingen parametre for oppdatering er angitt",
"Can't change permissions for public share links" : "Kan ikke endre rettigheter for offentlige lenker",
"Cannot increase permissions" : "Kan ikke øke tillatelser",
+ "shared by %s" : "delt av %s",
+ "Download" : "Last ned",
+ "Direct link" : "Direkte lenke",
+ "Add to your Nextcloud" : "Legg til i din Nextcloud",
"Share API is disabled" : "Deling API er deaktivert",
"File sharing" : "Fildeling",
"This share is password-protected" : "Denne delingen er passordbeskyttet",
@@ -100,10 +104,6 @@
"the link expired" : "lenken er utløpt",
"sharing is disabled" : "deling er avskrudd",
"For more info, please ask the person who sent this link." : "For mer informasjon, spør personen som sendte lenken.",
- "shared by %s" : "delt av %s",
- "Download" : "Last ned",
- "Direct link" : "Direkte lenke",
- "Add to your Nextcloud" : "Legg til i din Nextcloud",
"Download %s" : "Last ned %s",
"Upload files to %s" : "Last opp filer til %s",
"Select or drop files" : "Velg eller slipp filer",
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 0a35c91d20a..ec24420177c 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven",
"Can't change permissions for public share links" : "Kan rechten voor openbaar gedeelde links niet wijzigen",
"Cannot increase permissions" : "Kan de rechten niet verruimen",
+ "shared by %s" : "Gedeeld door %s",
+ "Download" : "Downloaden",
+ "Direct link" : "Directe link",
+ "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
"Share API is disabled" : "Delen API is uitgeschakeld",
"File sharing" : "Bestand delen",
"This share is password-protected" : "Deze gedeelde folder is met een wachtwoord beveiligd",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "de link is verlopen",
"sharing is disabled" : "delen is uitgeschakeld",
"For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.",
- "shared by %s" : "Gedeeld door %s",
- "Download" : "Downloaden",
- "Direct link" : "Directe link",
- "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
"Download %s" : "Download %s",
"Upload files to %s" : "Upload bestanden naar %s",
"Select or drop files" : "Selecteer bestanden of sleep ze naar dit venster",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 859c6652e47..2884d31315c 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Verkeerde of geen update parameter opgegeven",
"Can't change permissions for public share links" : "Kan rechten voor openbaar gedeelde links niet wijzigen",
"Cannot increase permissions" : "Kan de rechten niet verruimen",
+ "shared by %s" : "Gedeeld door %s",
+ "Download" : "Downloaden",
+ "Direct link" : "Directe link",
+ "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
"Share API is disabled" : "Delen API is uitgeschakeld",
"File sharing" : "Bestand delen",
"This share is password-protected" : "Deze gedeelde folder is met een wachtwoord beveiligd",
@@ -100,10 +104,6 @@
"the link expired" : "de link is verlopen",
"sharing is disabled" : "delen is uitgeschakeld",
"For more info, please ask the person who sent this link." : "Voor meer informatie, neem contact op met de persoon die u deze link heeft gestuurd.",
- "shared by %s" : "Gedeeld door %s",
- "Download" : "Downloaden",
- "Direct link" : "Directe link",
- "Add to your Nextcloud" : "Toevoegen aan je Nextcloud",
"Download %s" : "Download %s",
"Upload files to %s" : "Upload bestanden naar %s",
"Select or drop files" : "Selecteer bestanden of sleep ze naar dit venster",
diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js
index a59a30c9d8d..1b9091270ae 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
"Can't change permissions for public share links" : "Nie można zmienić uprawnień dla publicznych udziałów",
"Cannot increase permissions" : "Nie można zwiększyć uprawnień",
+ "shared by %s" : "udostępnione przez %s",
+ "Download" : "Pobierz",
+ "Direct link" : "Bezpośredni link",
+ "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
"Share API is disabled" : "API udostępniania jest wyłączone",
"This share is password-protected" : "Udostępniony folder chroniony jest hasłem",
"The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "link wygasł",
"sharing is disabled" : "udostępnianie jest wyłączone",
"For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.",
- "shared by %s" : "udostępnione przez %s",
- "Download" : "Pobierz",
- "Direct link" : "Bezpośredni link",
- "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
"Download %s" : "Pobierz %s",
"Upload files to %s" : "Prześlij pliki do %s",
"Select or drop files" : "Wybierz lub upuść pliki",
diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json
index 3f3e9fd8bfa..bc055c72673 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Brakujący lub błędny parametr aktualizacji",
"Can't change permissions for public share links" : "Nie można zmienić uprawnień dla publicznych udziałów",
"Cannot increase permissions" : "Nie można zwiększyć uprawnień",
+ "shared by %s" : "udostępnione przez %s",
+ "Download" : "Pobierz",
+ "Direct link" : "Bezpośredni link",
+ "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
"Share API is disabled" : "API udostępniania jest wyłączone",
"This share is password-protected" : "Udostępniony folder chroniony jest hasłem",
"The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.",
@@ -99,10 +103,6 @@
"the link expired" : "link wygasł",
"sharing is disabled" : "udostępnianie jest wyłączone",
"For more info, please ask the person who sent this link." : "Aby uzyskać więcej informacji proszę poprosić osobę, która wysłał ten link.",
- "shared by %s" : "udostępnione przez %s",
- "Download" : "Pobierz",
- "Direct link" : "Bezpośredni link",
- "Add to your Nextcloud" : "Dodaj do swojego Nextcloud",
"Download %s" : "Pobierz %s",
"Upload files to %s" : "Prześlij pliki do %s",
"Select or drop files" : "Wybierz lub upuść pliki",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index dd0d22c3a26..cc788e2ba18 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe",
"Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público",
"Cannot increase permissions" : "Não foi possível aumentar as permissões",
+ "shared by %s" : "compartilhado por %s",
+ "Download" : "Baixar",
+ "Direct link" : "Link direto",
+ "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
"Share API is disabled" : "O compartilhamento de API está desabilitado.",
"File sharing" : "Compartilhamento de arquivos",
"This share is password-protected" : "Este compartilhamento é protegido por senha",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "o link expirou",
"sharing is disabled" : "o compartilhamento está desativado",
"For more info, please ask the person who sent this link." : "Para mais informações, pergunte à pessoa que lhe enviou o link.",
- "shared by %s" : "compartilhado por %s",
- "Download" : "Baixar",
- "Direct link" : "Link direto",
- "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
"Download %s" : "Baixar %s",
"Upload files to %s" : "Enviar arquivos para %s",
"Select or drop files" : "Selecione ou solte arquivos",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 6829ec95ca6..6d74fc83e66 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "O parâmetro da atualização fornecido está errado ou não existe",
"Can't change permissions for public share links" : "Não foi possível alterar as permissões para links de compartilhamento público",
"Cannot increase permissions" : "Não foi possível aumentar as permissões",
+ "shared by %s" : "compartilhado por %s",
+ "Download" : "Baixar",
+ "Direct link" : "Link direto",
+ "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
"Share API is disabled" : "O compartilhamento de API está desabilitado.",
"File sharing" : "Compartilhamento de arquivos",
"This share is password-protected" : "Este compartilhamento é protegido por senha",
@@ -100,10 +104,6 @@
"the link expired" : "o link expirou",
"sharing is disabled" : "o compartilhamento está desativado",
"For more info, please ask the person who sent this link." : "Para mais informações, pergunte à pessoa que lhe enviou o link.",
- "shared by %s" : "compartilhado por %s",
- "Download" : "Baixar",
- "Direct link" : "Link direto",
- "Add to your Nextcloud" : "Adicionar ao seu Nextcloud",
"Download %s" : "Baixar %s",
"Upload files to %s" : "Enviar arquivos para %s",
"Select or drop files" : "Selecione ou solte arquivos",
diff --git a/apps/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js
index a1af9e5d1c8..a7a4929e468 100644
--- a/apps/files_sharing/l10n/pt_PT.js
+++ b/apps/files_sharing/l10n/pt_PT.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado",
"Can't change permissions for public share links" : "Não é possível alterar as permissões para as hiperligações de partilha pública",
"Cannot increase permissions" : "Não é possível incrementar as permissões",
+ "shared by %s" : "partilhado por %s",
+ "Download" : "Transferir",
+ "Direct link" : "Hiperligação direta",
+ "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
"Share API is disabled" : "A partilha de API está desativada",
"File sharing" : "Partilha de ficheiro",
"This share is password-protected" : "Esta partilha está protegida por palavra-passe",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "a hiperligação expirou",
"sharing is disabled" : "a partilha está desativada",
"For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.",
- "shared by %s" : "partilhado por %s",
- "Download" : "Transferir",
- "Direct link" : "Hiperligação direta",
- "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
"Download %s" : "Transferir %s",
"Upload files to %s" : "Enviar ficheiros para %s",
"Select or drop files" : "Seleccione ou solte ficheiros",
diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json
index 40d57e3ffe8..4fae502552a 100644
--- a/apps/files_sharing/l10n/pt_PT.json
+++ b/apps/files_sharing/l10n/pt_PT.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Parâmetro indicado errado ou desatualizado",
"Can't change permissions for public share links" : "Não é possível alterar as permissões para as hiperligações de partilha pública",
"Cannot increase permissions" : "Não é possível incrementar as permissões",
+ "shared by %s" : "partilhado por %s",
+ "Download" : "Transferir",
+ "Direct link" : "Hiperligação direta",
+ "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
"Share API is disabled" : "A partilha de API está desativada",
"File sharing" : "Partilha de ficheiro",
"This share is password-protected" : "Esta partilha está protegida por palavra-passe",
@@ -100,10 +104,6 @@
"the link expired" : "a hiperligação expirou",
"sharing is disabled" : "a partilha está desativada",
"For more info, please ask the person who sent this link." : "Para mais informação, por favor, pergunte à pessoa que lhe enviou esta hiperligação.",
- "shared by %s" : "partilhado por %s",
- "Download" : "Transferir",
- "Direct link" : "Hiperligação direta",
- "Add to your Nextcloud" : "Adicionar à sua Nextcloud",
"Download %s" : "Transferir %s",
"Upload files to %s" : "Enviar ficheiros para %s",
"Select or drop files" : "Seleccione ou solte ficheiros",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 1e59cc3779e..8d3072d56bd 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
"Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно",
"Cannot increase permissions" : "Нельзя увеличить права",
+ "shared by %s" : "поделился %s",
+ "Download" : "Скачать",
+ "Direct link" : "Прямая ссылка",
+ "Add to your Nextcloud" : "Добавить в свой Nextcloud",
"Share API is disabled" : "API общего доступа отключён",
"File sharing" : "Обмен файлами",
"This share is password-protected" : "Общий ресурс защищён паролем",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "истёк срок действия ссылки",
"sharing is disabled" : "закрыт общий доступ",
"For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.",
- "shared by %s" : "поделился %s",
- "Download" : "Скачать",
- "Direct link" : "Прямая ссылка",
- "Add to your Nextcloud" : "Добавить в свой Nextcloud",
"Download %s" : "Скачать %s",
"Upload files to %s" : "Загрузка файлов пользователю %s",
"Select or drop files" : "Выберите или перетащите файлы",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index 171f690d8da..0220245e59b 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Параметр для изменения неправилен или не задан",
"Can't change permissions for public share links" : "Для общедоступных ссылок изменение прав невозможно",
"Cannot increase permissions" : "Нельзя увеличить права",
+ "shared by %s" : "поделился %s",
+ "Download" : "Скачать",
+ "Direct link" : "Прямая ссылка",
+ "Add to your Nextcloud" : "Добавить в свой Nextcloud",
"Share API is disabled" : "API общего доступа отключён",
"File sharing" : "Обмен файлами",
"This share is password-protected" : "Общий ресурс защищён паролем",
@@ -100,10 +104,6 @@
"the link expired" : "истёк срок действия ссылки",
"sharing is disabled" : "закрыт общий доступ",
"For more info, please ask the person who sent this link." : "Для получения дополнительной информации, свяжитесь с тем, кто отправил вам эту ссылку.",
- "shared by %s" : "поделился %s",
- "Download" : "Скачать",
- "Direct link" : "Прямая ссылка",
- "Add to your Nextcloud" : "Добавить в свой Nextcloud",
"Download %s" : "Скачать %s",
"Upload files to %s" : "Загрузка файлов пользователю %s",
"Select or drop files" : "Выберите или перетащите файлы",
diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js
index 1cf83abda61..1b12fe41b43 100644
--- a/apps/files_sharing/l10n/sk.js
+++ b/apps/files_sharing/l10n/sk.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"Can't change permissions for public share links" : "Nemožno zmeniť oprávnenia pre verejné sprístupnené odkazy",
"Cannot increase permissions" : "Nie je možné navýšiť oprávnenia",
+ "shared by %s" : "Sprístupnil %s",
+ "Download" : "Sťahovanie",
+ "Direct link" : "Priama linka",
+ "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
"Share API is disabled" : "API pre sprístupňovanie je zakázané",
"This share is password-protected" : "Táto položka je chránené heslom",
"The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "linke vypršala platnosť",
"sharing is disabled" : "sprístupňovanie je zakázané",
"For more info, please ask the person who sent this link." : "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.",
- "shared by %s" : "Sprístupnil %s",
- "Download" : "Sťahovanie",
- "Direct link" : "Priama linka",
- "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
"Download %s" : "Stiahnuť %s",
"Upload files to %s" : "Nahrať súbory do %s",
"Select or drop files" : "Vyberte alebo položte súbory",
diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json
index 51dcf325bc8..dd44d86330e 100644
--- a/apps/files_sharing/l10n/sk.json
+++ b/apps/files_sharing/l10n/sk.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Zlý alebo žiadny zadaný parameter aktualizácie",
"Can't change permissions for public share links" : "Nemožno zmeniť oprávnenia pre verejné sprístupnené odkazy",
"Cannot increase permissions" : "Nie je možné navýšiť oprávnenia",
+ "shared by %s" : "Sprístupnil %s",
+ "Download" : "Sťahovanie",
+ "Direct link" : "Priama linka",
+ "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
"Share API is disabled" : "API pre sprístupňovanie je zakázané",
"This share is password-protected" : "Táto položka je chránené heslom",
"The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.",
@@ -99,10 +103,6 @@
"the link expired" : "linke vypršala platnosť",
"sharing is disabled" : "sprístupňovanie je zakázané",
"For more info, please ask the person who sent this link." : "Pre viac informácií kontaktujte osobu, ktorá vám poslala tento odkaz.",
- "shared by %s" : "Sprístupnil %s",
- "Download" : "Sťahovanie",
- "Direct link" : "Priama linka",
- "Add to your Nextcloud" : "Pridať do svojho Nextcloud",
"Download %s" : "Stiahnuť %s",
"Upload files to %s" : "Nahrať súbory do %s",
"Select or drop files" : "Vyberte alebo položte súbory",
diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js
index 440421daa29..4c105e9365f 100644
--- a/apps/files_sharing/l10n/sl.js
+++ b/apps/files_sharing/l10n/sl.js
@@ -39,6 +39,8 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Parameter posodobitve ni podan ali pa je navedena napačna vrednost",
"Can't change permissions for public share links" : "Za javne povezave souporabe, spreminjanje dovoljenj ni mogoče.",
"Cannot increase permissions" : "Ni mogoče povišati dovoljenj",
+ "Download" : "Prejmi",
+ "Direct link" : "Neposredna povezava",
"Share API is disabled" : "API za souporabo je izključen",
"This share is password-protected" : "To mesto je zaščiteno z geslom.",
"The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.",
@@ -52,8 +54,6 @@ OC.L10N.register(
"the link expired" : "povezava je pretekla,",
"sharing is disabled" : "souporaba je onemogočena.",
"For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.",
- "Download" : "Prejmi",
- "Direct link" : "Neposredna povezava",
"Download %s" : "Prejmi %s",
"Upload files to %s" : "Naloži datoteke v %s",
"Select or drop files" : "Izberi ali povleci datoteke",
diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json
index a367bb57be0..bd64c9744c2 100644
--- a/apps/files_sharing/l10n/sl.json
+++ b/apps/files_sharing/l10n/sl.json
@@ -37,6 +37,8 @@
"Wrong or no update parameter given" : "Parameter posodobitve ni podan ali pa je navedena napačna vrednost",
"Can't change permissions for public share links" : "Za javne povezave souporabe, spreminjanje dovoljenj ni mogoče.",
"Cannot increase permissions" : "Ni mogoče povišati dovoljenj",
+ "Download" : "Prejmi",
+ "Direct link" : "Neposredna povezava",
"Share API is disabled" : "API za souporabo je izključen",
"This share is password-protected" : "To mesto je zaščiteno z geslom.",
"The password is wrong. Try again." : "Geslo je napačno. Poskusite znova.",
@@ -50,8 +52,6 @@
"the link expired" : "povezava je pretekla,",
"sharing is disabled" : "souporaba je onemogočena.",
"For more info, please ask the person who sent this link." : "Za več podrobnosti stopite v stik s pošiljateljem te povezave.",
- "Download" : "Prejmi",
- "Direct link" : "Neposredna povezava",
"Download %s" : "Prejmi %s",
"Upload files to %s" : "Naloži datoteke v %s",
"Select or drop files" : "Izberi ali povleci datoteke",
diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js
index c7bf71ebb48..85a64740a49 100644
--- a/apps/files_sharing/l10n/sq.js
+++ b/apps/files_sharing/l10n/sq.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ",
"Can't change permissions for public share links" : "S’mund të ndryshohen lejet për lidhje ndarjesh publike",
"Cannot increase permissions" : "S’mund të fuqizohen lejet",
+ "shared by %s" : "ndarë nga %s",
+ "Download" : "Shkarko",
+ "Direct link" : "Lidhje e drejtpërdrejtë",
+ "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj",
"Share API is disabled" : "API i ndarjeve është çaktivizuar",
"This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim",
"The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "lidhja ka skaduar",
"sharing is disabled" : "ndarjet janë çaktivizuar",
"For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.",
- "shared by %s" : "ndarë nga %s",
- "Download" : "Shkarko",
- "Direct link" : "Lidhje e drejtpërdrejtë",
- "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj",
"Download %s" : "Shkarko %s",
"Upload files to %s" : "Ngrako skedarët tek %s",
"Select or drop files" : "Përzgjidh ose hiq skedarët",
diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json
index 7fa345b2030..b7cc40ca9ee 100644
--- a/apps/files_sharing/l10n/sq.json
+++ b/apps/files_sharing/l10n/sq.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Ose u dha parametër i gabuar përditësimesh, pse s’u dha fare ",
"Can't change permissions for public share links" : "S’mund të ndryshohen lejet për lidhje ndarjesh publike",
"Cannot increase permissions" : "S’mund të fuqizohen lejet",
+ "shared by %s" : "ndarë nga %s",
+ "Download" : "Shkarko",
+ "Direct link" : "Lidhje e drejtpërdrejtë",
+ "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj",
"Share API is disabled" : "API i ndarjeve është çaktivizuar",
"This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim",
"The password is wrong. Try again." : "Fjalëkalimi është i gabuar. Riprovoni.",
@@ -99,10 +103,6 @@
"the link expired" : "lidhja ka skaduar",
"sharing is disabled" : "ndarjet janë çaktivizuar",
"For more info, please ask the person who sent this link." : "Për më shumë të dhëna, ju lutemi, pyetni personin që ju dërgoi këtë lidhje.",
- "shared by %s" : "ndarë nga %s",
- "Download" : "Shkarko",
- "Direct link" : "Lidhje e drejtpërdrejtë",
- "Add to your Nextcloud" : "Shtojeni tek Nextcloud-i juaj",
"Download %s" : "Shkarko %s",
"Upload files to %s" : "Ngrako skedarët tek %s",
"Select or drop files" : "Përzgjidh ose hiq skedarët",
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 1343fa913f6..3c5f3cdaffe 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Погрешан или ненаведен параметер",
"Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе",
"Cannot increase permissions" : "Не могу да повећам привилегије",
+ "shared by %s" : "поделио %s",
+ "Download" : "Преузми",
+ "Direct link" : "Директна веза",
+ "Add to your Nextcloud" : "Додајте у свој облак",
"Share API is disabled" : "API за дељене је искључен",
"File sharing" : "Дељења фајлова",
"This share is password-protected" : "Дељење је заштићено лозинком",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "веза је истекла",
"sharing is disabled" : "дељење је искључено",
"For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.",
- "shared by %s" : "поделио %s",
- "Download" : "Преузми",
- "Direct link" : "Директна веза",
- "Add to your Nextcloud" : "Додајте у свој облак",
"Download %s" : "Преузми %s",
"Upload files to %s" : "Отпремите фајлове на%s",
"Select or drop files" : "Одаберите или превуците фајлове",
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index e1f1091846a..4800772506d 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Погрешан или ненаведен параметер",
"Can't change permissions for public share links" : "Не могу се променити привилегије за јавно доступне везе",
"Cannot increase permissions" : "Не могу да повећам привилегије",
+ "shared by %s" : "поделио %s",
+ "Download" : "Преузми",
+ "Direct link" : "Директна веза",
+ "Add to your Nextcloud" : "Додајте у свој облак",
"Share API is disabled" : "API за дељене је искључен",
"File sharing" : "Дељења фајлова",
"This share is password-protected" : "Дељење је заштићено лозинком",
@@ -100,10 +104,6 @@
"the link expired" : "веза је истекла",
"sharing is disabled" : "дељење је искључено",
"For more info, please ask the person who sent this link." : "За више информација, питајте особу која вам је послала везу.",
- "shared by %s" : "поделио %s",
- "Download" : "Преузми",
- "Direct link" : "Директна веза",
- "Add to your Nextcloud" : "Додајте у свој облак",
"Download %s" : "Преузми %s",
"Upload files to %s" : "Отпремите фајлове на%s",
"Select or drop files" : "Одаберите или превуците фајлове",
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index 025b4a20f65..22d85532a9a 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
"Can't change permissions for public share links" : "Det går inte att ändra behörigheterna för offentliga länkar",
"Cannot increase permissions" : "Kan inte utöka behörigheter",
+ "shared by %s" : "delad av %s",
+ "Download" : "Ladda ned",
+ "Direct link" : "Direktlänk",
+ "Add to your Nextcloud" : "Lägg till i molnet",
"Share API is disabled" : "Delning av API är inaktiverad",
"This share is password-protected" : "Den här delningen är lösenordsskyddad",
"The password is wrong. Try again." : "Lösenordet är fel. Försök igen.",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "giltighet för länken har gått ut",
"sharing is disabled" : "delning är inaktiverat",
"For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.",
- "shared by %s" : "delad av %s",
- "Download" : "Ladda ned",
- "Direct link" : "Direktlänk",
- "Add to your Nextcloud" : "Lägg till i molnet",
"Download %s" : "Ladda ned %s",
"Upload files to %s" : "Ladda upp filer till %s",
"Select or drop files" : "Välj eller dra filer hit",
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index 5f5bbb32ef4..cefff885583 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Fel eller ingen uppdateringsparameter angiven",
"Can't change permissions for public share links" : "Det går inte att ändra behörigheterna för offentliga länkar",
"Cannot increase permissions" : "Kan inte utöka behörigheter",
+ "shared by %s" : "delad av %s",
+ "Download" : "Ladda ned",
+ "Direct link" : "Direktlänk",
+ "Add to your Nextcloud" : "Lägg till i molnet",
"Share API is disabled" : "Delning av API är inaktiverad",
"This share is password-protected" : "Den här delningen är lösenordsskyddad",
"The password is wrong. Try again." : "Lösenordet är fel. Försök igen.",
@@ -99,10 +103,6 @@
"the link expired" : "giltighet för länken har gått ut",
"sharing is disabled" : "delning är inaktiverat",
"For more info, please ask the person who sent this link." : "För mer information, kontakta den person som skickade den här länken.",
- "shared by %s" : "delad av %s",
- "Download" : "Ladda ned",
- "Direct link" : "Direktlänk",
- "Add to your Nextcloud" : "Lägg till i molnet",
"Download %s" : "Ladda ned %s",
"Upload files to %s" : "Ladda upp filer till %s",
"Select or drop files" : "Välj eller dra filer hit",
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index 9a21d387f8a..cd4aa590728 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
"Can't change permissions for public share links" : "Herkese açık paylaşılan bağlantıların erişim hakları değiştirilemez",
"Cannot increase permissions" : "Erişim izinleri yükseltilemez",
+ "shared by %s" : "%s tarafından paylaşıldı",
+ "Download" : "İndir",
+ "Direct link" : "Doğrudan bağlantı",
+ "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
"Share API is disabled" : "Paylaşım API arayüzü devre dışı",
"File sharing" : "Dosya paylaşımı",
"This share is password-protected" : "Bu paylaşım parola korumalı",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "bağlantı süresi dolmuş",
"sharing is disabled" : "paylaşım devre dışı bırakılmış",
"For more info, please ask the person who sent this link." : "Ayrıntılı bilgi almak için bu bağlantıyı aldığınız kişi ile görüşün.",
- "shared by %s" : "%s tarafından paylaşıldı",
- "Download" : "İndir",
- "Direct link" : "Doğrudan bağlantı",
- "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
"Download %s" : "%s İndir",
"Upload files to %s" : "Dosyaları %s konumuna yükle",
"Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın",
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index 4d8778c1d11..418c9901c96 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "Parametre yanlış ya da herhangi bir parametre belirtilmemiş",
"Can't change permissions for public share links" : "Herkese açık paylaşılan bağlantıların erişim hakları değiştirilemez",
"Cannot increase permissions" : "Erişim izinleri yükseltilemez",
+ "shared by %s" : "%s tarafından paylaşıldı",
+ "Download" : "İndir",
+ "Direct link" : "Doğrudan bağlantı",
+ "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
"Share API is disabled" : "Paylaşım API arayüzü devre dışı",
"File sharing" : "Dosya paylaşımı",
"This share is password-protected" : "Bu paylaşım parola korumalı",
@@ -100,10 +104,6 @@
"the link expired" : "bağlantı süresi dolmuş",
"sharing is disabled" : "paylaşım devre dışı bırakılmış",
"For more info, please ask the person who sent this link." : "Ayrıntılı bilgi almak için bu bağlantıyı aldığınız kişi ile görüşün.",
- "shared by %s" : "%s tarafından paylaşıldı",
- "Download" : "İndir",
- "Direct link" : "Doğrudan bağlantı",
- "Add to your Nextcloud" : "Nextcloud hesabınıza ekleyin",
"Download %s" : "%s İndir",
"Upload files to %s" : "Dosyaları %s konumuna yükle",
"Select or drop files" : "Dosyaları seçin ya da sürükleyip bırakın",
diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js
index 1b7a35ccf4c..ea2e6162eb0 100644
--- a/apps/files_sharing/l10n/zh_CN.js
+++ b/apps/files_sharing/l10n/zh_CN.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "错误或没有更新参数给出",
"Can't change permissions for public share links" : "不能改变公共分享链接权限",
"Cannot increase permissions" : "不能增加权限",
+ "shared by %s" : "共享者 %s",
+ "Download" : "下载",
+ "Direct link" : "直接链接",
+ "Add to your Nextcloud" : "添加到你的 Nextcloud",
"Share API is disabled" : "共享 API 已被禁用",
"File sharing" : "文件共享",
"This share is password-protected" : "这是一个密码保护的共享",
@@ -102,10 +106,6 @@ OC.L10N.register(
"the link expired" : "链接过期",
"sharing is disabled" : "已禁用共享",
"For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。",
- "shared by %s" : "共享者 %s",
- "Download" : "下载",
- "Direct link" : "直接链接",
- "Add to your Nextcloud" : "添加到你的 Nextcloud",
"Download %s" : "下载 %s",
"Upload files to %s" : "上传文件到 %s",
"Select or drop files" : "选择或删除文件",
diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json
index c76961670a3..34c859c5408 100644
--- a/apps/files_sharing/l10n/zh_CN.json
+++ b/apps/files_sharing/l10n/zh_CN.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "错误或没有更新参数给出",
"Can't change permissions for public share links" : "不能改变公共分享链接权限",
"Cannot increase permissions" : "不能增加权限",
+ "shared by %s" : "共享者 %s",
+ "Download" : "下载",
+ "Direct link" : "直接链接",
+ "Add to your Nextcloud" : "添加到你的 Nextcloud",
"Share API is disabled" : "共享 API 已被禁用",
"File sharing" : "文件共享",
"This share is password-protected" : "这是一个密码保护的共享",
@@ -100,10 +104,6 @@
"the link expired" : "链接过期",
"sharing is disabled" : "已禁用共享",
"For more info, please ask the person who sent this link." : "欲知详情,请联系发给你链接的人。",
- "shared by %s" : "共享者 %s",
- "Download" : "下载",
- "Direct link" : "直接链接",
- "Add to your Nextcloud" : "添加到你的 Nextcloud",
"Download %s" : "下载 %s",
"Upload files to %s" : "上传文件到 %s",
"Select or drop files" : "选择或删除文件",
diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js
index 89b911a0569..0e08c501c08 100644
--- a/apps/files_sharing/l10n/zh_TW.js
+++ b/apps/files_sharing/l10n/zh_TW.js
@@ -87,6 +87,10 @@ OC.L10N.register(
"Wrong or no update parameter given" : "更新參數不正確或未提供",
"Can't change permissions for public share links" : "無法由公開分享的連結變更權限",
"Cannot increase permissions" : "無法增加權限",
+ "shared by %s" : "分享自 %s",
+ "Download" : "下載",
+ "Direct link" : "直接連結",
+ "Add to your Nextcloud" : "加入到您的 Nextcloud",
"Share API is disabled" : "分享 API 已停用",
"This share is password-protected" : "這個分享有密碼保護",
"The password is wrong. Try again." : "請檢查您的密碼並再試一次",
@@ -101,10 +105,6 @@ OC.L10N.register(
"the link expired" : "連結過期",
"sharing is disabled" : "分享功能已停用",
"For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多",
- "shared by %s" : "分享自 %s",
- "Download" : "下載",
- "Direct link" : "直接連結",
- "Add to your Nextcloud" : "加入到您的 Nextcloud",
"Download %s" : "下載 %s",
"Upload files to %s" : "上傳檔案到 %s",
"Select or drop files" : "選擇或拖曳檔案至此",
diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json
index 94a727e51fb..70aa2dc0a14 100644
--- a/apps/files_sharing/l10n/zh_TW.json
+++ b/apps/files_sharing/l10n/zh_TW.json
@@ -85,6 +85,10 @@
"Wrong or no update parameter given" : "更新參數不正確或未提供",
"Can't change permissions for public share links" : "無法由公開分享的連結變更權限",
"Cannot increase permissions" : "無法增加權限",
+ "shared by %s" : "分享自 %s",
+ "Download" : "下載",
+ "Direct link" : "直接連結",
+ "Add to your Nextcloud" : "加入到您的 Nextcloud",
"Share API is disabled" : "分享 API 已停用",
"This share is password-protected" : "這個分享有密碼保護",
"The password is wrong. Try again." : "請檢查您的密碼並再試一次",
@@ -99,10 +103,6 @@
"the link expired" : "連結過期",
"sharing is disabled" : "分享功能已停用",
"For more info, please ask the person who sent this link." : "請詢問告訴您此連結的人以瞭解更多",
- "shared by %s" : "分享自 %s",
- "Download" : "下載",
- "Direct link" : "直接連結",
- "Add to your Nextcloud" : "加入到您的 Nextcloud",
"Download %s" : "下載 %s",
"Upload files to %s" : "上傳檔案到 %s",
"Select or drop files" : "選擇或拖曳檔案至此",
diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php
index af41add250c..ce10c8df8a1 100644
--- a/apps/files_sharing/lib/Capabilities.php
+++ b/apps/files_sharing/lib/Capabilities.php
@@ -23,6 +23,7 @@
namespace OCA\Files_Sharing;
use OCP\Capabilities\ICapability;
+use OCP\Constants;
use \OCP\IConfig;
/**
@@ -86,6 +87,7 @@ class Capabilities implements ICapability {
$res['group'] = [];
$res['group']['enabled'] = $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes') === 'yes';
$res['group']['expire_date']['enabled'] = true;
+ $res['default_permissions'] = (int)$this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL);
}
//Federated sharing
diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php
index 990571b778f..1e121d8c868 100644
--- a/apps/files_sharing/lib/Controller/ShareAPIController.php
+++ b/apps/files_sharing/lib/Controller/ShareAPIController.php
@@ -35,8 +35,10 @@ use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\AppFramework\OCSController;
+use OCP\Constants;
use OCP\Files\Node;
use OCP\Files\NotFoundException;
+use OCP\IConfig;
use OCP\IGroupManager;
use OCP\IL10N;
use OCP\IUserManager;
@@ -75,6 +77,8 @@ class ShareAPIController extends OCSController {
private $l;
/** @var \OCP\Files\Node */
private $lockedNode;
+ /** @var IConfig */
+ private $config;
/**
* Share20OCS constructor.
@@ -88,6 +92,7 @@ class ShareAPIController extends OCSController {
* @param IURLGenerator $urlGenerator
* @param string $userId
* @param IL10N $l10n
+ * @param IConfig $config
*/
public function __construct(
$appName,
@@ -98,7 +103,8 @@ class ShareAPIController extends OCSController {
IRootFolder $rootFolder,
IURLGenerator $urlGenerator,
$userId,
- IL10N $l10n
+ IL10N $l10n,
+ IConfig $config
) {
parent::__construct($appName, $request);
@@ -110,6 +116,7 @@ class ShareAPIController extends OCSController {
$this->urlGenerator = $urlGenerator;
$this->currentUser = $userId;
$this->l = $l10n;
+ $this->config = $config;
}
/**
@@ -318,7 +325,7 @@ class ShareAPIController extends OCSController {
*/
public function createShare(
$path = null,
- $permissions = \OCP\Constants::PERMISSION_ALL,
+ $permissions = null,
$shareType = -1,
$shareWith = null,
$publicUpload = 'false',
@@ -327,6 +334,10 @@ class ShareAPIController extends OCSController {
) {
$share = $this->shareManager->newShare();
+ if ($permissions === null) {
+ $permissions = $this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL);
+ }
+
// Verify path
if ($path === null) {
throw new OCSNotFoundException($this->l->t('Please specify a file or folder path'));
@@ -347,17 +358,17 @@ class ShareAPIController extends OCSController {
throw new OCSNotFoundException($this->l->t('Could not create share'));
}
- if ($permissions < 0 || $permissions > \OCP\Constants::PERMISSION_ALL) {
+ if ($permissions < 0 || $permissions > Constants::PERMISSION_ALL) {
throw new OCSNotFoundException($this->l->t('invalid permissions'));
}
// Shares always require read permissions
- $permissions |= \OCP\Constants::PERMISSION_READ;
+ $permissions |= Constants::PERMISSION_READ;
if ($path instanceof \OCP\Files\File) {
// Single file shares should never have delete or create permissions
- $permissions &= ~\OCP\Constants::PERMISSION_DELETE;
- $permissions &= ~\OCP\Constants::PERMISSION_CREATE;
+ $permissions &= ~Constants::PERMISSION_DELETE;
+ $permissions &= ~Constants::PERMISSION_CREATE;
}
/*
@@ -414,13 +425,13 @@ class ShareAPIController extends OCSController {
}
$share->setPermissions(
- \OCP\Constants::PERMISSION_READ |
- \OCP\Constants::PERMISSION_CREATE |
- \OCP\Constants::PERMISSION_UPDATE |
- \OCP\Constants::PERMISSION_DELETE
+ Constants::PERMISSION_READ |
+ Constants::PERMISSION_CREATE |
+ Constants::PERMISSION_UPDATE |
+ Constants::PERMISSION_DELETE
);
} else {
- $share->setPermissions(\OCP\Constants::PERMISSION_READ);
+ $share->setPermissions(Constants::PERMISSION_READ);
}
// Set password
@@ -447,13 +458,9 @@ class ShareAPIController extends OCSController {
$share->setPermissions($permissions);
} else if ($shareType === \OCP\Share::SHARE_TYPE_EMAIL) {
if ($share->getNodeType() === 'file') {
- $share->setPermissions(\OCP\Constants::PERMISSION_READ);
+ $share->setPermissions(Constants::PERMISSION_READ);
} else {
- $share->setPermissions(
- \OCP\Constants::PERMISSION_READ |
- \OCP\Constants::PERMISSION_CREATE |
- \OCP\Constants::PERMISSION_UPDATE |
- \OCP\Constants::PERMISSION_DELETE);
+ $share->setPermissions($permissions);
}
$share->setSharedWith($shareWith);
} else if ($shareType === \OCP\Share::SHARE_TYPE_CIRCLE) {
@@ -698,23 +705,23 @@ class ShareAPIController extends OCSController {
$newPermissions = null;
if ($publicUpload === 'true') {
- $newPermissions = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE;
+ $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
} else if ($publicUpload === 'false') {
- $newPermissions = \OCP\Constants::PERMISSION_READ;
+ $newPermissions = Constants::PERMISSION_READ;
}
if ($permissions !== null) {
$newPermissions = (int)$permissions;
- $newPermissions = $newPermissions & ~\OCP\Constants::PERMISSION_SHARE;
+ $newPermissions = $newPermissions & ~Constants::PERMISSION_SHARE;
}
if ($newPermissions !== null &&
!in_array($newPermissions, [
- \OCP\Constants::PERMISSION_READ,
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE, // legacy
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE, // correct
- \OCP\Constants::PERMISSION_CREATE, // hidden file list
- \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_UPDATE, // allow to edit single files
+ Constants::PERMISSION_READ,
+ Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE, // legacy
+ Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE, // correct
+ Constants::PERMISSION_CREATE, // hidden file list
+ Constants::PERMISSION_READ | Constants::PERMISSION_UPDATE, // allow to edit single files
])
) {
throw new OCSBadRequestException($this->l->t('Can\'t change permissions for public share links'));
@@ -722,9 +729,9 @@ class ShareAPIController extends OCSController {
if (
// legacy
- $newPermissions === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE) ||
+ $newPermissions === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE) ||
// correct
- $newPermissions === (\OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE)
+ $newPermissions === (Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE)
) {
if (!$this->shareManager->shareApiLinkAllowPublicUpload()) {
throw new OCSForbiddenException($this->l->t('Public upload disabled by the administrator'));
@@ -735,7 +742,7 @@ class ShareAPIController extends OCSController {
}
// normalize to correct public upload permissions
- $newPermissions = \OCP\Constants::PERMISSION_READ | \OCP\Constants::PERMISSION_CREATE | \OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_DELETE;
+ $newPermissions = Constants::PERMISSION_READ | Constants::PERMISSION_CREATE | Constants::PERMISSION_UPDATE | Constants::PERMISSION_DELETE;
}
if ($newPermissions !== null) {
diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php
index 795d069c1b8..1f8864fc5f3 100644
--- a/apps/files_sharing/lib/Controller/ShareController.php
+++ b/apps/files_sharing/lib/Controller/ShareController.php
@@ -38,6 +38,10 @@ namespace OCA\Files_Sharing\Controller;
use OC_Files;
use OC_Util;
use OCA\FederatedFileSharing\FederatedShareProvider;
+use OCA\Files_Sharing\Template\ExternalShareMenuAction;
+use OCA\Files_Sharing\Template\LinkMenuAction;
+use OCP\AppFramework\Http\Template\SimpleMenuAction;
+use OCP\AppFramework\Http\Template\PublicTemplateResponse;
use OCP\Defaults;
use OCP\IL10N;
use OCP\Template;
@@ -435,7 +439,17 @@ class ShareController extends Controller {
$csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
- $response = new TemplateResponse($this->appName, 'public', $shareTmpl, 'base');
+
+ $response = new PublicTemplateResponse($this->appName, 'public', $shareTmpl);
+ $response->setHeaderTitle($shareTmpl['filename']);
+ $response->setHeaderDetails($this->l10n->t('shared by %s', [$shareTmpl['displayName']]));
+ $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']),
+ new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $shareTmpl['previewURL']),
+ new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', $shareTmpl['owner'], $shareTmpl['displayName'], $shareTmpl['filename']),
+ ]);
+
$response->setContentSecurityPolicy($csp);
$this->emitAccessShareHook($share);
diff --git a/apps/files_sharing/lib/Template/ExternalShareMenuAction.php b/apps/files_sharing/lib/Template/ExternalShareMenuAction.php
new file mode 100644
index 00000000000..f548a3bc6f1
--- /dev/null
+++ b/apps/files_sharing/lib/Template/ExternalShareMenuAction.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files_Sharing\Template;
+
+use OCP\AppFramework\Http\Template\SimpleMenuAction;
+use OCP\Util;
+
+class ExternalShareMenuAction extends SimpleMenuAction {
+
+ /** @var string */
+ private $owner;
+
+ /** @var string */
+ private $displayname;
+
+ /** @var string */
+ private $shareName;
+
+ /**
+ * ExternalShareMenuAction constructor.
+ *
+ * @param string $label
+ * @param string $icon
+ * @param string $owner
+ * @param string $displayname
+ * @param string $shareName
+ */
+ public function __construct(string $label, string $icon, string $owner, string $displayname, string $shareName) {
+ parent::__construct('save', $label, $icon);
+ $this->owner = $owner;
+ $this->displayname = $displayname;
+ $this->shareName = $shareName;
+ }
+
+ public function render(): string {
+ return '<li>' .
+ '<a id="save" data-protected="false" data-owner-display-name="' . Util::sanitizeHTML($this->displayname) . '" data-owner="' . Util::sanitizeHTML($this->owner) . '" data-name="' . Util::sanitizeHTML($this->shareName) . '">' .
+ '<span class="icon ' . Util::sanitizeHTML($this->getIcon()) . '"></span>' .
+ '<span id="save-button">' . Util::sanitizeHTML($this->getLabel()) . '</span>' .
+ '<form class="save-form hidden" action="#">' .
+ '<input type="text" id="remote_address" placeholder="user@yourNextcloud.org">' .
+ '<button id="save-button-confirm" class="icon-confirm svg" disabled=""></button>' .
+ '</form>' .
+ '</a>' .
+ '</li>';
+ }
+} \ No newline at end of file
diff --git a/apps/files_sharing/lib/Template/LinkMenuAction.php b/apps/files_sharing/lib/Template/LinkMenuAction.php
new file mode 100644
index 00000000000..2fdf83e7026
--- /dev/null
+++ b/apps/files_sharing/lib/Template/LinkMenuAction.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files_Sharing\Template;
+
+use OCP\AppFramework\Http\Template\SimpleMenuAction;
+use OCP\Util;
+
+class LinkMenuAction extends SimpleMenuAction {
+
+ /**
+ * LinkMenuAction constructor.
+ *
+ * @param string $label
+ * @param string $icon
+ * @param string $link
+ */
+ public function __construct(string $label, string $icon, string $link) {
+ parent::__construct('directLink-container', $label, $icon, $link);
+ }
+
+ /**
+ * @return string
+ */
+ public function render(): string {
+ return '<li>' .
+ '<a id="directLink-container">' .
+ '<span class="icon ' . Util::sanitizeHTML($this->getIcon()) . '"></span>' .
+ '<label for="directLink">' . Util::sanitizeHTML($this->getLabel()) . '</label>' .
+ '<input id="directLink" type="text" readonly="" value="' . Util::sanitizeHTML($this->getLink()) . '">' .
+ '</a>' .
+ '</li>';
+ }
+} \ No newline at end of file
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index 3c2bbe5fb59..698febd4c17 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -7,10 +7,6 @@
<link rel="image_src" href="<?php p($_['previewImage']); ?>" />
<?php endif; ?>
-<div id="notification-container">
- <div id="notification" style="display: none;"></div>
-</div>
-
<input type="hidden" id="sharingUserId" value="<?php p($_['owner']) ?>">
<input type="hidden" id="filesApp" name="filesApp" value="1">
<input type="hidden" id="isPublic" name="isPublic" value="1">
@@ -33,61 +29,9 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
<input type="hidden" name="filesize" value="<?php p($_['nonHumanFileSize']); ?>" id="filesize">
<?php endif; ?>
<input type="hidden" name="maxSizeAnimateGif" value="<?php p($_['maxSizeAnimateGif']); ?>" id="maxSizeAnimateGif">
-
-
-<header><div id="header" class="<?php p((isset($_['folder']) ? 'share-folder' : 'share-file')) ?>">
- <div class="header-left">
- <span id="nextcloud">
- <div class="logo logo-icon svg"></div>
- <h1 class="header-appname">
- <?php p($_['filename']); ?>
- </h1>
- <div class="header-shared-by">
- <?php echo p($l->t('shared by %s', [$_['displayName']])); ?>
- </div>
- </span>
- </div>
-
- <div class="header-right">
- <?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?>
- <a id="share-menutoggle" class="menutoggle icon-more-white"><span class="share-menutoggle-text"><?php p($l->t('Download')) ?></span></a>
- <div id="share-menu" class="popovermenu menu">
- <ul>
- <li>
- <a href="<?php p($_['downloadURL']); ?>" id="download">
- <span class="icon icon-download"></span>
- <?php p($l->t('Download'))?>&nbsp;<span class="download-size">(<?php p($_['fileSize']) ?>)</span>
- </a>
- </li>
- <li>
- <a id="directLink-container">
- <span class="icon icon-public"></span>
- <label for="directLink"><?php p($l->t('Direct link')) ?></label>
- <input id="directLink" type="text" readonly value="<?php p($_['previewURL']); ?>">
- </a>
- </li>
- <?php if ($_['server2serversharing']) { ?>
- <li>
- <a id="save" data-protected="<?php p($_['protected']) ?>"
- data-owner-display-name="<?php p($_['displayName']) ?>" data-owner="<?php p($_['owner']) ?>" data-name="<?php p($_['filename']) ?>">
- <span class="icon icon-external"></span>
- <span id="save-button"><?php p($l->t('Add to your Nextcloud')) ?></span>
- <form class="save-form hidden" action="#">
- <input type="text" id="remote_address" placeholder="user@yourNextcloud.org"/>
- <button id="save-button-confirm" class="icon-confirm svg" disabled></button>
- </form>
- </a>
- </li>
- <?php } ?>
- </ul>
- </div>
- <?php } ?>
- </div>
- </div></header>
-<div id="content-wrapper">
- <?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?>
+<?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] === false)) { ?>
<div id="content">
- <div id="preview">
+ <div id="preview">
<?php if (isset($_['folder'])): ?>
<?php print_unescaped($_['folder']); ?>
<?php else: ?>
@@ -102,46 +46,47 @@ $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
<div id="imgframe"></div>
<?php endif; ?>
<?php if ($_['previewURL'] === $_['downloadURL']): ?>
- <div class="directDownload">
- <a href="<?php p($_['downloadURL']); ?>" id="downloadFile" class="button">
- <span class="icon icon-download"></span>
- <?php p($l->t('Download %s', array($_['filename'])))?> (<?php p($_['fileSize']) ?>)
- </a>
- </div>
+ <div class="directDownload">
+ <a href="<?php p($_['downloadURL']); ?>" id="downloadFile" class="button">
+ <span class="icon icon-download"></span>
+ <?php p($l->t('Download %s', array($_['filename'])))?> (<?php p($_['fileSize']) ?>)
+ </a>
+ </div>
<?php endif; ?>
<?php endif; ?>
</div>
+ </div>
+<?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="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 } ?>
+ <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>
</div>
- <?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="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 } ?>
- <input type="file" name="files[]" class="hidden" multiple>
+ </div>
+<?php } ?>
- <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>
- </div>
- </div>
- <?php } ?>
<?php if (!isset($_['hideFileList']) || (isset($_['hideFileList']) && $_['hideFileList'] !== true)): ?>
<input type="hidden" name="dir" id="dir" value="" />
<div class="hiddenuploadfield">
- <input type="file" id="file_upload_start" class="hiddenuploadfield" name="files[]"
- data-url="<?php p(OCP\Util::linkTo('files', 'ajax/upload.php')); ?>" />
+ <input type="file" id="file_upload_start" class="hiddenuploadfield" name="files[]"
+ data-url="<?php p(OCP\Util::linkTo('files', 'ajax/upload.php')); ?>" />
</div>
- <?php endif; ?>
- <footer>
- <p class="info">
- <?php print_unescaped($theme->getLongFooter()); ?>
- </p>
- </footer>
-</div>
+<?php endif; ?>
+
+<footer>
+ <p class="info">
+ <?php print_unescaped($theme->getLongFooter()); ?>
+ </p>
+</footer>
diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php
index 6d8e2dd8d84..d7bc169bf4a 100644
--- a/apps/files_sharing/tests/ApiTest.php
+++ b/apps/files_sharing/tests/ApiTest.php
@@ -37,6 +37,7 @@ use OCP\AppFramework\OCS\OCSBadRequestException;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCS\OCSNotFoundException;
+use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
@@ -105,6 +106,7 @@ class ApiTest extends TestCase {
->will($this->returnCallback(function($text, $parameters = []) {
return vsprintf($text, $parameters);
}));
+ $config = $this->createMock(IConfig::class);
return new ShareAPIController(
self::APP_NAME,
@@ -115,7 +117,8 @@ class ApiTest extends TestCase {
\OC::$server->getRootFolder(),
\OC::$server->getURLGenerator(),
$userId,
- $l
+ $l,
+ $config
);
}
diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
index c438dac2521..a475474e3cf 100644
--- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php
@@ -31,6 +31,7 @@ use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Files\Storage;
+use OCP\IConfig;
use OCP\IL10N;
use OCA\Files_Sharing\Controller\ShareAPIController;
use OCP\Files\NotFoundException;
@@ -84,6 +85,9 @@ class ShareAPIControllerTest extends TestCase {
/** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
private $l;
+ /** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
+ private $config;
+
protected function setUp() {
$this->shareManager = $this->createMock(IManager::class);
$this->shareManager
@@ -102,6 +106,7 @@ class ShareAPIControllerTest extends TestCase {
->will($this->returnCallback(function($text, $parameters = []) {
return vsprintf($text, $parameters);
}));
+ $this->config = $this->createMock(IConfig::class);
$this->ocs = new ShareAPIController(
$this->appName,
@@ -112,7 +117,8 @@ class ShareAPIControllerTest extends TestCase {
$this->rootFolder,
$this->urlGenerator,
$this->currentUser,
- $this->l
+ $this->l,
+ $this->config
);
}
@@ -131,6 +137,7 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->currentUser,
$this->l,
+ $this->config
])->setMethods(['formatShare'])
->getMock();
}
@@ -439,6 +446,7 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->currentUser,
$this->l,
+ $this->config
])->setMethods(['canAccessShare'])
->getMock();
@@ -707,6 +715,7 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->currentUser,
$this->l,
+ $this->config
])->setMethods(['formatShare'])
->getMock();
@@ -804,6 +813,7 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->currentUser,
$this->l,
+ $this->config
])->setMethods(['formatShare'])
->getMock();
@@ -1119,6 +1129,7 @@ class ShareAPIControllerTest extends TestCase {
$this->urlGenerator,
$this->currentUser,
$this->l,
+ $this->config
])->setMethods(['formatShare'])
->getMock();
diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php
index 6062ff89065..6dc577a354c 100644
--- a/apps/files_sharing/tests/Controller/ShareControllerTest.php
+++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php
@@ -34,7 +34,11 @@ namespace OCA\Files_Sharing\Tests\Controllers;
use OC\Files\Filesystem;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Files_Sharing\Controller\ShareController;
+use OCA\Files_Sharing\Template\ExternalShareMenuAction;
+use OCA\Files_Sharing\Template\LinkMenuAction;
use OCP\AppFramework\Http\DataResponse;
+use OCP\AppFramework\Http\Template\PublicTemplateResponse;
+use OCP\AppFramework\Http\Template\SimpleMenuAction;
use OCP\IConfig;
use OCP\IL10N;
use OCP\ILogger;
@@ -84,6 +88,8 @@ class ShareControllerTest extends \Test\TestCase {
private $federatedShareProvider;
/** @var EventDispatcherInterface | \PHPUnit_Framework_MockObject_MockObject */
private $eventDispatcher;
+ /** @var IL10N */
+ private $l10n;
protected function setUp() {
parent::setUp();
@@ -102,6 +108,7 @@ class ShareControllerTest extends \Test\TestCase {
$this->federatedShareProvider->expects($this->any())
->method('isIncomingServer2serverShareEnabled')->willReturn(true);
$this->eventDispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock();
+ $this->l10n = $this->createMock(IL10N::class);
$this->shareController = new \OCA\Files_Sharing\Controller\ShareController(
$this->appName,
@@ -117,7 +124,7 @@ class ShareControllerTest extends \Test\TestCase {
$this->getMockBuilder('\OCP\Files\IRootFolder')->getMock(),
$this->federatedShareProvider,
$this->eventDispatcher,
- $this->getMockBuilder(IL10N::class)->getMock(),
+ $this->l10n,
$this->getMockBuilder('\OCP\Defaults')->getMock()
);
@@ -348,6 +355,11 @@ class ShareControllerTest extends \Test\TestCase {
$this->session->method('exists')->with('public_link_authenticated')->willReturn(true);
$this->session->method('get')->with('public_link_authenticated')->willReturn('42');
+ $this->urlGenerator->expects($this->at(0))
+ ->method('linkToRouteAbsolute')
+ ->with('files_sharing.sharecontroller.downloadShare', ['token' => 'token'])
+ ->willReturn('downloadURL');
+
$this->previewManager->method('isMimeSupported')->with('text/plain')->willReturn(true);
$this->config->method('getSystemValue')
@@ -379,6 +391,12 @@ class ShareControllerTest extends \Test\TestCase {
->method('dispatch')
->with('OCA\Files_Sharing::loadAdditionalScripts');
+ $this->l10n->expects($this->any())
+ ->method('t')
+ ->will($this->returnCallback(function($text, $parameters) {
+ return vsprintf($text, $parameters);
+ }));
+
$response = $this->shareController->showShare('token');
$sharedTmplParams = array(
'displayName' => 'ownerDisplay',
@@ -391,7 +409,7 @@ class ShareControllerTest extends \Test\TestCase {
'server2serversharing' => true,
'protected' => 'true',
'dir' => '',
- 'downloadURL' => null,
+ 'downloadURL' => 'downloadURL',
'fileSize' => '33 B',
'nonHumanFileSize' => 33,
'maxSizeAnimateGif' => 10,
@@ -404,13 +422,21 @@ class ShareControllerTest extends \Test\TestCase {
'disclaimer' => 'My disclaimer text',
'shareUrl' => null,
'previewImage' => null,
- 'previewURL' => null,
+ 'previewURL' => 'downloadURL',
);
$csp = new \OCP\AppFramework\Http\ContentSecurityPolicy();
$csp->addAllowedFrameDomain('\'self\'');
- $expectedResponse = new TemplateResponse($this->appName, 'public', $sharedTmplParams, 'base');
+ $expectedResponse = new PublicTemplateResponse($this->appName, 'public', $sharedTmplParams);
$expectedResponse->setContentSecurityPolicy($csp);
+ $expectedResponse->setHeaderTitle($sharedTmplParams['filename']);
+ $expectedResponse->setHeaderDetails('shared by ' . $sharedTmplParams['displayName']);
+ $expectedResponse->setHeaderActions([
+ new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download-white', $sharedTmplParams['downloadURL'], 0),
+ new SimpleMenuAction('download', $this->l10n->t('Download'), 'icon-download', $sharedTmplParams['downloadURL'], 10, $sharedTmplParams['fileSize']),
+ new LinkMenuAction($this->l10n->t('Direct link'), 'icon-public', $sharedTmplParams['previewURL']),
+ new ExternalShareMenuAction($this->l10n->t('Add to your Nextcloud'), 'icon-external', $sharedTmplParams['owner'], $sharedTmplParams['displayName'], $sharedTmplParams['filename']),
+ ]);
$this->assertEquals($expectedResponse, $response);
}
diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js
index fa6e6f262e6..6e6c6aac08d 100644
--- a/apps/sharebymail/l10n/cs.js
+++ b/apps/sharebymail/l10n/cs.js
@@ -18,7 +18,7 @@ OC.L10N.register(
"Password to access {file} was sent to you" : "Heslo pro přístupu k {file} vám bylo zasláno",
"Sharing %s failed, this item is already shared with %s" : "Sdílení %s selhalo, tato položka je již s %s sdílena",
"We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nemůžeme vám zaslat automaticky vygenerované heslo. Nastavte si v osobním nastavení platnou e-mailovou adresu a zkuste to znovu.",
- "Failed to send share by email" : "Sdílení emailem se nezdařilo",
+ "Failed to send share by email" : "Sdílení e-mailem se nezdařilo",
"%s shared »%s« with you" : "%s s vámi sdílel(a) »%s»",
"%s shared »%s« with you." : "%s s vámi nasdílel(a) »%s«.",
"Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.",
@@ -38,6 +38,6 @@ OC.L10N.register(
"Allows users to share a personalized link to a file or folder by putting in an email address." : "Dovoluje uživatelům odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.",
"Send password by mail" : "Odeslat heslo e-mailem",
"Enforce password protection" : "Vynutit ochranu hesla",
- "Failed to send share by E-mail" : "Odeslání sdílení E-mailem se nezdařilo"
+ "Failed to send share by E-mail" : "Odeslání sdílení e-mailem se nezdařilo"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/apps/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json
index 441e5284353..facf02fa98e 100644
--- a/apps/sharebymail/l10n/cs.json
+++ b/apps/sharebymail/l10n/cs.json
@@ -16,7 +16,7 @@
"Password to access {file} was sent to you" : "Heslo pro přístupu k {file} vám bylo zasláno",
"Sharing %s failed, this item is already shared with %s" : "Sdílení %s selhalo, tato položka je již s %s sdílena",
"We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Nemůžeme vám zaslat automaticky vygenerované heslo. Nastavte si v osobním nastavení platnou e-mailovou adresu a zkuste to znovu.",
- "Failed to send share by email" : "Sdílení emailem se nezdařilo",
+ "Failed to send share by email" : "Sdílení e-mailem se nezdařilo",
"%s shared »%s« with you" : "%s s vámi sdílel(a) »%s»",
"%s shared »%s« with you." : "%s s vámi nasdílel(a) »%s«.",
"Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.",
@@ -36,6 +36,6 @@
"Allows users to share a personalized link to a file or folder by putting in an email address." : "Dovoluje uživatelům odeslat personalizovaný odkaz na soubor nebo složku po zadání e-mailové adresy.",
"Send password by mail" : "Odeslat heslo e-mailem",
"Enforce password protection" : "Vynutit ochranu hesla",
- "Failed to send share by E-mail" : "Odeslání sdílení E-mailem se nezdařilo"
+ "Failed to send share by E-mail" : "Odeslání sdílení e-mailem se nezdařilo"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js
index 7df1bbf1125..1f416bb2940 100644
--- a/apps/theming/js/settings-admin.js
+++ b/apps/theming/js/settings-admin.js
@@ -175,13 +175,40 @@ $(document).ready(function () {
$('#upload-login-background').click();
});
+ function checkName () {
+ var length = $('#theming-name').val().length;
+ try {
+ if (length > 0) {
+ return true;
+ } else {
+ throw t('theming', 'Name cannot be empty');
+ }
+ } catch (error) {
+ $('#theming-name').attr('title', error);
+ $('#theming-name').tooltip({placement: 'top', trigger: 'manual'});
+ $('#theming-name').tooltip('fixTitle');
+ $('#theming-name').tooltip('show');
+ $('#theming-name').addClass('error');
+ }
+ return false;
+ }
+
+ $('#theming-name').keyup(function() {
+ if (checkName()) {
+ $('#theming-name').tooltip('hide');
+ $('#theming-name').removeClass('error');
+ }
+ });
+
$('#theming-name').change(function(e) {
var el = $(this);
- $.when(el.focusout()).then(function() {
- setThemingValue('name', $(this).val());
- });
- if (e.keyCode == 13) {
- setThemingValue('name', $(this).val());
+ if(checkName()){
+ $.when(el.focusout()).then(function() {
+ setThemingValue('name', $(this).val());
+ });
+ if (e.keyCode == 13) {
+ setThemingValue('name', $(this).val());
+ }
}
});
diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js
index 0b336fd1e72..758c96a079c 100644
--- a/apps/theming/l10n/cs.js
+++ b/apps/theming/l10n/cs.js
@@ -21,7 +21,7 @@ OC.L10N.register(
"Unsupported image type" : "Nepodporovaný typ obrázku",
"You are already using a custom theme" : "Již používáte vlastní motiv",
"Theming" : "Motivy",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Uvidí to všichni uživatelé.",
+ "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Tato přizpůsobení uvidí všichni uživatelé.",
"Name" : "Název",
"Reset to default" : "Obnovit výchozí",
"Web address" : "Webová adresa",
diff --git a/apps/theming/l10n/cs.json b/apps/theming/l10n/cs.json
index 81391d6df45..9677825c285 100644
--- a/apps/theming/l10n/cs.json
+++ b/apps/theming/l10n/cs.json
@@ -19,7 +19,7 @@
"Unsupported image type" : "Nepodporovaný typ obrázku",
"You are already using a custom theme" : "Již používáte vlastní motiv",
"Theming" : "Motivy",
- "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Uvidí to všichni uživatelé.",
+ "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "Motivy umožňují jednoduché přizpůsobení vzhledu vaší instance a podporovaných klientů. Tato přizpůsobení uvidí všichni uživatelé.",
"Name" : "Název",
"Reset to default" : "Obnovit výchozí",
"Web address" : "Webová adresa",
diff --git a/apps/updatenotification/l10n/de.js b/apps/updatenotification/l10n/de.js
index 3d6902767c7..9b3e66020ef 100644
--- a/apps/updatenotification/l10n/de.js
+++ b/apps/updatenotification/l10n/de.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:",
"Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
+ "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuche ein manuelles Update",
"Update notifications" : "Update-Benachrichtigungen",
"Channel updated" : "Kanal aktualisiert",
diff --git a/apps/updatenotification/l10n/de.json b/apps/updatenotification/l10n/de.json
index 2ee19261397..cb63dda4129 100644
--- a/apps/updatenotification/l10n/de.json
+++ b/apps/updatenotification/l10n/de.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Informiere die Mitglieder der folgenden Gruppen über verfügbare Updates:",
"Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
+ "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuche ein manuelles Update",
"Update notifications" : "Update-Benachrichtigungen",
"Channel updated" : "Kanal aktualisiert",
diff --git a/apps/updatenotification/l10n/de_DE.js b/apps/updatenotification/l10n/de_DE.js
index a211f685add..303c5bb7e70 100644
--- a/apps/updatenotification/l10n/de_DE.js
+++ b/apps/updatenotification/l10n/de_DE.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:",
"Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
+ "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuchen Sie ein manuelles Update",
"Update notifications" : "Update-Benachrichtigungen",
"Channel updated" : "Kanal aktualisiert",
diff --git a/apps/updatenotification/l10n/de_DE.json b/apps/updatenotification/l10n/de_DE.json
index 497cda0fd9a..a11e02cb410 100644
--- a/apps/updatenotification/l10n/de_DE.json
+++ b/apps/updatenotification/l10n/de_DE.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Informieren Sie die Mitglieder der folgenden Gruppen über verfügbare Updates:",
"Only notification for app updates are available." : "Benachrichtigungen sind nur für Aktualisierungen von Apps verfügbar.",
"The selected update channel does not support updates of the server." : "Der gewählte Aktualisierungskanal unterstützt keine Aktualisierungen für Server.",
+ "A new version is available: {newVersionString}" : "Eine neue Version ist verfügbar: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Geprüft am {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Der Updater konnte nicht gestartet werden, bitte versuchen Sie ein manuelles Update",
"Update notifications" : "Update-Benachrichtigungen",
"Channel updated" : "Kanal aktualisiert",
diff --git a/apps/updatenotification/l10n/en_GB.js b/apps/updatenotification/l10n/en_GB.js
index 3e5676899de..ece9d0f26e2 100644
--- a/apps/updatenotification/l10n/en_GB.js
+++ b/apps/updatenotification/l10n/en_GB.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
"Only notification for app updates are available." : "Only notification for app updates are available.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "A new version is available: {newVersionString}" : "A new version is available: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Could not start updater, please try the manual update",
"Update notifications" : "Update notifications",
"Channel updated" : "Channel updated",
diff --git a/apps/updatenotification/l10n/en_GB.json b/apps/updatenotification/l10n/en_GB.json
index fb4bdc5f791..cd097b443f0 100644
--- a/apps/updatenotification/l10n/en_GB.json
+++ b/apps/updatenotification/l10n/en_GB.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Notify members of the following groups about available updates:",
"Only notification for app updates are available." : "Only notification for app updates are available.",
"The selected update channel does not support updates of the server." : "The selected update channel does not support updates of the server.",
+ "A new version is available: {newVersionString}" : "A new version is available: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Checked on {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Could not start updater, please try the manual update",
"Update notifications" : "Update notifications",
"Channel updated" : "Channel updated",
diff --git a/apps/updatenotification/l10n/es.js b/apps/updatenotification/l10n/es.js
index 9db530a468c..aa1fd331d78 100644
--- a/apps/updatenotification/l10n/es.js
+++ b/apps/updatenotification/l10n/es.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos sobre actualizaciones disponibles:",
"Only notification for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor",
+ "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Comprobado el {lastCheckeDate}",
"Could not start updater, please try the manual update" : "No se ha podido iniciar el actualizador. Por favor, prueba a realizar la actualización de forma manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
diff --git a/apps/updatenotification/l10n/es.json b/apps/updatenotification/l10n/es.json
index 1325cab2420..6c1c29cddd3 100644
--- a/apps/updatenotification/l10n/es.json
+++ b/apps/updatenotification/l10n/es.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos sobre actualizaciones disponibles:",
"Only notification for app updates are available." : "Solo están disponibles las notificaciones para actualizaciones de apps",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor",
+ "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Comprobado el {lastCheckeDate}",
"Could not start updater, please try the manual update" : "No se ha podido iniciar el actualizador. Por favor, prueba a realizar la actualización de forma manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
diff --git a/apps/updatenotification/l10n/es_MX.js b/apps/updatenotification/l10n/es_MX.js
index c561f7689ec..9839e6dd70e 100644
--- a/apps/updatenotification/l10n/es_MX.js
+++ b/apps/updatenotification/l10n/es_MX.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
"Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
+ "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
"Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
diff --git a/apps/updatenotification/l10n/es_MX.json b/apps/updatenotification/l10n/es_MX.json
index deba8fd45b0..b8985003429 100644
--- a/apps/updatenotification/l10n/es_MX.json
+++ b/apps/updatenotification/l10n/es_MX.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:",
"Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.",
"The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. ",
+ "A new version is available: {newVersionString}" : "Una nueva versión está disponible: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Verificado el {lastCheckedDate}",
"Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual",
"Update notifications" : "Actualizar notificaciones",
"Channel updated" : "Canal actualizado",
diff --git a/apps/updatenotification/l10n/fr.js b/apps/updatenotification/l10n/fr.js
index 849e7655abe..da84e500f58 100644
--- a/apps/updatenotification/l10n/fr.js
+++ b/apps/updatenotification/l10n/fr.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :",
"Only notification for app updates are available." : "Seules les notifications pour les mises à jour d'applications sont diponibles.",
"The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.",
+ "A new version is available: {newVersionString}" : "Une nouvelle version est disponible : {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Vérifié le {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Impossible de démarrer le système de mise à jour, veuillez essayer de mettre à jour manuellement",
"Update notifications" : "Notifications de mises à jour",
"Channel updated" : "Canal de mise à jour modifié",
diff --git a/apps/updatenotification/l10n/fr.json b/apps/updatenotification/l10n/fr.json
index ad4ddb55fe8..75d87c2c1e1 100644
--- a/apps/updatenotification/l10n/fr.json
+++ b/apps/updatenotification/l10n/fr.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Notifier les membres des groupes suivants des mises à jours disponibles :",
"Only notification for app updates are available." : "Seules les notifications pour les mises à jour d'applications sont diponibles.",
"The selected update channel does not support updates of the server." : "Le canal de mises à jour sélectionné ne supporte pas les mises à jour du serveur.",
+ "A new version is available: {newVersionString}" : "Une nouvelle version est disponible : {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Vérifié le {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Impossible de démarrer le système de mise à jour, veuillez essayer de mettre à jour manuellement",
"Update notifications" : "Notifications de mises à jour",
"Channel updated" : "Canal de mise à jour modifié",
diff --git a/apps/updatenotification/l10n/it.js b/apps/updatenotification/l10n/it.js
index 44ee1ce9bac..9fa8802c8b7 100644
--- a/apps/updatenotification/l10n/it.js
+++ b/apps/updatenotification/l10n/it.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notifica i membri dei seguenti gruppi sugli aggiornamenti disponibili:",
"Only notification for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.",
"The selected update channel does not support updates of the server." : "Il canale di aggiornamento selezionato non supporta gli aggiornamenti del server.",
+ "A new version is available: {newVersionString}" : "Una nuova versione è disponibile: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Controllato il {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Impossibile avviare lo strumento di aggiornamento, prova l'aggiornamento manuale",
"Update notifications" : "Notifiche di aggiornamento",
"Channel updated" : "Canale aggiornato",
diff --git a/apps/updatenotification/l10n/it.json b/apps/updatenotification/l10n/it.json
index e350121ef82..28d54113b0e 100644
--- a/apps/updatenotification/l10n/it.json
+++ b/apps/updatenotification/l10n/it.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Notifica i membri dei seguenti gruppi sugli aggiornamenti disponibili:",
"Only notification for app updates are available." : "Sono disponibili solo le notifiche per gli aggiornamenti delle applicazioni.",
"The selected update channel does not support updates of the server." : "Il canale di aggiornamento selezionato non supporta gli aggiornamenti del server.",
+ "A new version is available: {newVersionString}" : "Una nuova versione è disponibile: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Controllato il {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Impossibile avviare lo strumento di aggiornamento, prova l'aggiornamento manuale",
"Update notifications" : "Notifiche di aggiornamento",
"Channel updated" : "Canale aggiornato",
diff --git a/apps/updatenotification/l10n/pt_BR.js b/apps/updatenotification/l10n/pt_BR.js
index 0ab67488097..84e6ca2f1c1 100644
--- a/apps/updatenotification/l10n/pt_BR.js
+++ b/apps/updatenotification/l10n/pt_BR.js
@@ -10,6 +10,8 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:",
"Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.",
"The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor.",
+ "A new version is available: {newVersionString}" : "Uma nova versão está disponível: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Verificado em {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Não foi possível iniciar o atualizador, tente a atualização manual",
"Update notifications" : "Notificações de atualização",
"Channel updated" : "Canal atualizado",
diff --git a/apps/updatenotification/l10n/pt_BR.json b/apps/updatenotification/l10n/pt_BR.json
index a81d19e0d35..83f773cb2b3 100644
--- a/apps/updatenotification/l10n/pt_BR.json
+++ b/apps/updatenotification/l10n/pt_BR.json
@@ -8,6 +8,8 @@
"Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:",
"Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.",
"The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor.",
+ "A new version is available: {newVersionString}" : "Uma nova versão está disponível: {newVersionString}",
+ "Checked on {lastCheckedDate}" : "Verificado em {lastCheckedDate}",
"Could not start updater, please try the manual update" : "Não foi possível iniciar o atualizador, tente a atualização manual",
"Update notifications" : "Notificações de atualização",
"Channel updated" : "Canal atualizado",
diff --git a/apps/user_ldap/l10n/cs.js b/apps/user_ldap/l10n/cs.js
index eef61e4baad..2ea25b0d166 100644
--- a/apps/user_ldap/l10n/cs.js
+++ b/apps/user_ldap/l10n/cs.js
@@ -80,7 +80,7 @@ OC.L10N.register(
"When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:",
"LDAP / AD Username:" : "LDAP / AD uživatelské jméno:",
"Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Dovoluje přihlášení pomocí LDAP / AD uživatelského jména, což je \"uid\" nebo \"sAMAccountName\", což bude detekováno.",
- "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
+ "LDAP / AD Email Address:" : "LDAP / AD e-mailová adresa:",
"Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Povoluje přihlášení pomocí e-mailového atributu. Je povolen \"mail\" a \"mailPrimaryAddress\" allowed.",
"Other Attributes:" : "Další atributy:",
"Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definuje filtr použitý při pokusu o přihlášení. %%uid je nahrazeno uživatelským jménem z přihlašovací akce. Příklad: \"uid=%%uid\"",
@@ -172,7 +172,7 @@ OC.L10N.register(
"Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Ponechte prázné pro výchozí uživatelskou kvótu. Jinak uveďte LDAP / AD atribut.",
"Quota Default" : "Výchozí kvóta",
"Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Přepsat výchozí kvótu pro LDAP uživatele, kteří nemají kvótu nastavenou v poli kvóty.",
- "Email Field" : "Pole emailu",
+ "Email Field" : "Pole e-mailu",
"Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Nastavit e-mail uživatele na základě LDAP atributu. Ponechte prázdné pro výchozí chování.",
"User Home Folder Naming Rule" : "Pravidlo pojmenování domovského adresáře uživatele",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.",
diff --git a/apps/user_ldap/l10n/cs.json b/apps/user_ldap/l10n/cs.json
index bac439ad44e..50311c17071 100644
--- a/apps/user_ldap/l10n/cs.json
+++ b/apps/user_ldap/l10n/cs.json
@@ -78,7 +78,7 @@
"When logging in, %s will find the user based on the following attributes:" : "Při přihlašování, %s bude hledat uživatele na základě následujících atributů:",
"LDAP / AD Username:" : "LDAP / AD uživatelské jméno:",
"Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Dovoluje přihlášení pomocí LDAP / AD uživatelského jména, což je \"uid\" nebo \"sAMAccountName\", což bude detekováno.",
- "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:",
+ "LDAP / AD Email Address:" : "LDAP / AD e-mailová adresa:",
"Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Povoluje přihlášení pomocí e-mailového atributu. Je povolen \"mail\" a \"mailPrimaryAddress\" allowed.",
"Other Attributes:" : "Další atributy:",
"Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Definuje filtr použitý při pokusu o přihlášení. %%uid je nahrazeno uživatelským jménem z přihlašovací akce. Příklad: \"uid=%%uid\"",
@@ -170,7 +170,7 @@
"Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Ponechte prázné pro výchozí uživatelskou kvótu. Jinak uveďte LDAP / AD atribut.",
"Quota Default" : "Výchozí kvóta",
"Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Přepsat výchozí kvótu pro LDAP uživatele, kteří nemají kvótu nastavenou v poli kvóty.",
- "Email Field" : "Pole emailu",
+ "Email Field" : "Pole e-mailu",
"Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Nastavit e-mail uživatele na základě LDAP atributu. Ponechte prázdné pro výchozí chování.",
"User Home Folder Naming Rule" : "Pravidlo pojmenování domovského adresáře uživatele",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.",
diff --git a/apps/workflowengine/lib/Check/RequestUserAgent.php b/apps/workflowengine/lib/Check/RequestUserAgent.php
index 7a8d4a71acf..4191a2f3412 100644
--- a/apps/workflowengine/lib/Check/RequestUserAgent.php
+++ b/apps/workflowengine/lib/Check/RequestUserAgent.php
@@ -44,9 +44,9 @@ class RequestUserAgent extends AbstractStringCheck {
* @param string $value
* @return bool
*/
- public function executeCheck($operator, $value) {
+ public function executeCheck($operator, $value) {
$actualValue = $this->getActualValue();
- if (in_array($operator, ['is', '!is'])) {
+ if (in_array($operator, ['is', '!is'], true)) {
switch ($value) {
case 'android':
$operator = $operator === 'is' ? 'matches' : '!matches';
@@ -60,6 +60,14 @@ class RequestUserAgent extends AbstractStringCheck {
$operator = $operator === 'is' ? 'matches' : '!matches';
$value = IRequest::USER_AGENT_CLIENT_DESKTOP;
break;
+ case 'mail':
+ if ($operator === 'is') {
+ return $this->executeStringCheck('matches', IRequest::USER_AGENT_OUTLOOK_ADDON, $actualValue)
+ || $this->executeStringCheck('matches', IRequest::USER_AGENT_THUNDERBIRD_ADDON, $actualValue);
+ }
+
+ return $this->executeStringCheck('!matches', IRequest::USER_AGENT_OUTLOOK_ADDON, $actualValue)
+ && $this->executeStringCheck('!matches', IRequest::USER_AGENT_THUNDERBIRD_ADDON, $actualValue);
}
}
return $this->executeStringCheck($operator, $value, $actualValue);
diff --git a/apps/workflowengine/tests/Check/RequestUserAgentTest.php b/apps/workflowengine/tests/Check/RequestUserAgentTest.php
new file mode 100644
index 00000000000..fe9da844ccc
--- /dev/null
+++ b/apps/workflowengine/tests/Check/RequestUserAgentTest.php
@@ -0,0 +1,117 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Joas Schilling <coding@schilljs.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\WorkflowEngine\Tests\Check;
+
+use OCA\WorkflowEngine\Check\RequestUserAgent;
+use OCP\IL10N;
+use OCP\IRequest;
+use Test\TestCase;
+
+class RequestUserAgentTest extends TestCase {
+
+ /** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */
+ protected $request;
+
+ /** @var RequestUserAgent */
+ protected $check;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->request = $this->createMock(IRequest::class);
+ /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject $l */
+ $l = $this->getMockBuilder(IL10N::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $l->expects($this->any())
+ ->method('t')
+ ->willReturnCallback(function($string, $args) {
+ return sprintf($string, $args);
+ });
+
+ $this->check = new RequestUserAgent($l, $this->request);
+ }
+
+ public function dataExecuteCheck() {
+ return [
+ ['is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true],
+ ['is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false],
+ ['is', 'android', 'Mozilla/5.0 (Linux) mirall/2.2.0', false],
+ ['is', 'android', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false],
+ ['is', 'android', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false],
+ ['!is', 'android', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false],
+ ['!is', 'android', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true],
+ ['!is', 'android', 'Mozilla/5.0 (Linux) mirall/2.2.0', true],
+ ['!is', 'android', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true],
+ ['!is', 'android', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true],
+
+ ['is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false],
+ ['is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true],
+ ['is', 'ios', 'Mozilla/5.0 (Linux) mirall/2.2.0', false],
+ ['is', 'ios', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false],
+ ['is', 'ios', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false],
+ ['!is', 'ios', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true],
+ ['!is', 'ios', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false],
+ ['!is', 'ios', 'Mozilla/5.0 (Linux) mirall/2.2.0', true],
+ ['!is', 'ios', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true],
+ ['!is', 'ios', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true],
+
+ ['is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false],
+ ['is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false],
+ ['is', 'desktop', 'Mozilla/5.0 (Linux) mirall/2.2.0', true],
+ ['is', 'desktop', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false],
+ ['is', 'desktop', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false],
+ ['!is', 'desktop', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true],
+ ['!is', 'desktop', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true],
+ ['!is', 'desktop', 'Mozilla/5.0 (Linux) mirall/2.2.0', false],
+ ['!is', 'desktop', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true],
+ ['!is', 'desktop', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true],
+
+ ['is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', false],
+ ['is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', false],
+ ['is', 'mail', 'Mozilla/5.0 (Linux) mirall/2.2.0', false],
+ ['is', 'mail', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', true],
+ ['is', 'mail', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', true],
+ ['!is', 'mail', 'Mozilla/5.0 (Android) Nextcloud-android v2.2.0', true],
+ ['!is', 'mail', 'Mozilla/5.0 (iOS) Nextcloud-iOS v2.2.0', true],
+ ['!is', 'mail', 'Mozilla/5.0 (Linux) mirall/2.2.0', true],
+ ['!is', 'mail', 'Mozilla/5.0 (Windows) Nextcloud-Outlook v2.2.0', false],
+ ['!is', 'mail', 'Mozilla/5.0 (Linux) Nextcloud-Thunderbird v2.2.0', false],
+ ];
+ }
+
+ /**
+ * @dataProvider dataExecuteCheck
+ * @param string $operation
+ * @param string $checkValue
+ * @param string $actualValue
+ * @param bool $expected
+ */
+ public function testExecuteCheck($operation, $checkValue, $actualValue, $expected) {
+ $this->request->expects($this->once())
+ ->method('getHeader')
+ ->willReturn($actualValue);
+
+ /** @var \OCA\WorkflowEngine\Check\AbstractStringCheck $check */
+ $this->assertEquals($expected, $this->check->executeCheck($operation, $checkValue));
+ }
+}
diff --git a/core/Controller/OCJSController.php b/core/Controller/OCJSController.php
index 8db26dd3d38..37fe17c8dd1 100644
--- a/core/Controller/OCJSController.php
+++ b/core/Controller/OCJSController.php
@@ -26,6 +26,7 @@
namespace OC\Core\Controller;
use bantu\IniGetWrapper\IniGetWrapper;
+use OC\CapabilitiesManager;
use OC\Template\JSConfigHelper;
use OCP\App\IAppManager;
use OCP\AppFramework\Controller;
@@ -59,6 +60,7 @@ class OCJSController extends Controller {
* @param IGroupManager $groupManager
* @param IniGetWrapper $iniWrapper
* @param IURLGenerator $urlGenerator
+ * @param CapabilitiesManager $capabilitiesManager
*/
public function __construct($appName,
IRequest $request,
@@ -70,7 +72,8 @@ class OCJSController extends Controller {
IConfig $config,
IGroupManager $groupManager,
IniGetWrapper $iniWrapper,
- IURLGenerator $urlGenerator) {
+ IURLGenerator $urlGenerator,
+ CapabilitiesManager $capabilitiesManager) {
parent::__construct($appName, $request);
$this->helper = new JSConfigHelper(
@@ -82,7 +85,8 @@ class OCJSController extends Controller {
$config,
$groupManager,
$iniWrapper,
- $urlGenerator
+ $urlGenerator,
+ $capabilitiesManager
);
}
diff --git a/core/css/apps.scss b/core/css/apps.scss
index bcb0878b3c8..9d35f8b8c18 100644
--- a/core/css/apps.scss
+++ b/core/css/apps.scss
@@ -861,6 +861,10 @@ kbd {
line-height: 1.6em;
padding: 8px 0;
}
+ > select {
+ margin: 0;
+ margin-left: 6px;
+ }
/* Add padding if contains icon+text */
&:not(:empty) {
padding-right: 10px !important;
@@ -869,17 +873,17 @@ kbd {
width: 16px;
padding: 0 10px;
}
+ /* checkbox/radio fixes */
+ > input.radio + label,
> input.checkbox + label {
padding: 0 !important;
- &::before {
- margin: -2px 12px 0;
- }
+ width: 100%;
}
- > input.radio + label {
- padding: 0 !important;
- &::before {
- margin: -2px 11px 0;
- }
+ > input.checkbox + label::before {
+ margin: -2px 12px 0;
+ }
+ > input.radio + label::before {
+ margin: -2px 11px 0;
}
> input:not([type=radio]):not([type=checkbox]):not([type=image]) {
width: 150px;
diff --git a/core/css/public.scss b/core/css/public.scss
new file mode 100644
index 00000000000..3651e701c34
--- /dev/null
+++ b/core/css/public.scss
@@ -0,0 +1,22 @@
+#body-public {
+ .header-right {
+
+ span:not(.popovermenu) a {
+ color: $color-primary-text;
+ }
+
+ .menutoggle,
+ #header-primary-action[class^='icon-'] {
+ padding: 14px;
+ padding-right: 40px;
+ background-position: right 15px center;
+ color: $color-primary-text;
+ cursor: pointer;
+ }
+
+ .menutoggle {
+ padding-right: 10px;
+ }
+
+ }
+} \ No newline at end of file
diff --git a/core/css/server.scss b/core/css/server.scss
index 516220f2ad5..9b512038015 100644
--- a/core/css/server.scss
+++ b/core/css/server.scss
@@ -9,3 +9,4 @@
@import 'multiselect.scss';
@import 'mobile.scss';
@import 'tooltip.scss';
+@import 'public.scss'; \ No newline at end of file
diff --git a/core/js/core.json b/core/js/core.json
index 6cf6a2489ed..9da91a7f639 100644
--- a/core/js/core.json
+++ b/core/js/core.json
@@ -46,6 +46,7 @@
"config.js",
"public/appconfig.js",
"public/comments.js",
+ "public/publicpage.js",
"multiselect.js",
"oc-requesttoken.js",
"setupchecks.js",
diff --git a/core/js/js.js b/core/js/js.js
index 9b8829de250..fa92508ff7a 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -80,6 +80,13 @@ var OCP = {},
*/
webroot:oc_webroot,
+ /**
+ * Capabilities
+ *
+ * @type array
+ */
+ _capabilities: window.oc_capabilities || null,
+
appswebroots:(typeof oc_appswebroots !== 'undefined') ? oc_appswebroots:false,
/**
* Currently logged in user or null if none
@@ -308,6 +315,18 @@ var OCP = {},
return OC.webroot;
},
+
+ /**
+ * Returns the capabilities
+ *
+ * @return {array} capabilities
+ *
+ * @since 14.0
+ */
+ getCapabilities: function() {
+ return OC._capabilities;
+ },
+
/**
* Returns the currently logged in user or null if there is no logged in
* user (public page mode)
diff --git a/core/js/public/publicpage.js b/core/js/public/publicpage.js
new file mode 100644
index 00000000000..31b862ba12a
--- /dev/null
+++ b/core/js/public/publicpage.js
@@ -0,0 +1,29 @@
+/*
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+$(document).ready(function () {
+
+ console.log('public');
+ $('#body-public .header-right .menutoggle').click(function() {
+ $(this).next('.popovermenu').toggleClass('open');
+ });
+});
diff --git a/core/js/shareitemmodel.js b/core/js/shareitemmodel.js
index b699513c734..e7824aca33a 100644
--- a/core/js/shareitemmodel.js
+++ b/core/js/shareitemmodel.js
@@ -158,23 +158,24 @@
var shareType = attributes.shareType;
attributes = _.extend({}, attributes);
- // Default permissions are Edit (CRUD) and Share
- // Check if these permissions are possible
- var permissions = OC.PERMISSION_READ;
+ // get default permissions
+ var defaultPermissions = OC.getCapabilities()['files_sharing']['default_permissions'] || OC.PERMISSION_ALL;
+ var possiblePermissions = OC.PERMISSION_READ;
+
if (this.updatePermissionPossible()) {
- permissions = permissions | OC.PERMISSION_UPDATE;
+ possiblePermissions = possiblePermissions | OC.PERMISSION_UPDATE;
}
if (this.createPermissionPossible()) {
- permissions = permissions | OC.PERMISSION_CREATE;
+ possiblePermissions = possiblePermissions | OC.PERMISSION_CREATE;
}
if (this.deletePermissionPossible()) {
- permissions = permissions | OC.PERMISSION_DELETE;
+ possiblePermissions = possiblePermissions | OC.PERMISSION_DELETE;
}
if (this.configModel.get('isResharingAllowed') && (this.sharePermissionPossible())) {
- permissions = permissions | OC.PERMISSION_SHARE;
+ possiblePermissions = possiblePermissions | OC.PERMISSION_SHARE;
}
- attributes.permissions = permissions;
+ attributes.permissions = defaultPermissions & possiblePermissions;
if (_.isUndefined(attributes.path)) {
attributes.path = this.fileInfoModel.getFullPath();
}
diff --git a/core/js/tests/specs/shareitemmodelSpec.js b/core/js/tests/specs/shareitemmodelSpec.js
index 3b17051508e..0a345786b73 100644
--- a/core/js/tests/specs/shareitemmodelSpec.js
+++ b/core/js/tests/specs/shareitemmodelSpec.js
@@ -25,6 +25,7 @@ describe('OC.Share.ShareItemModel', function() {
var fetchSharesDeferred, fetchReshareDeferred;
var fileInfoModel, configModel, model;
var oldCurrentUser;
+ var capsSpec;
beforeEach(function() {
oldCurrentUser = OC.currentUser;
@@ -56,8 +57,15 @@ describe('OC.Share.ShareItemModel', function() {
configModel: configModel,
fileInfoModel: fileInfoModel
});
+ capsSpec = sinon.stub(OC, 'getCapabilities');
+ capsSpec.returns({
+ 'files_sharing': {
+ 'default_permissions': OC.PERMISSION_ALL
+ }
+ });
});
afterEach(function() {
+ capsSpec.restore();
if (fetchSharesStub) {
fetchSharesStub.restore();
}
@@ -527,7 +535,22 @@ describe('OC.Share.ShareItemModel', function() {
});
expect(
testWithPermissions(OC.PERMISSION_UPDATE | OC.PERMISSION_SHARE)
- ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE | OC.PERMISSION_UPDATE);
+ ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_UPDATE);
+ });
+ it('uses default permissions from capabilities', function() {
+ capsSpec.returns({
+ 'files_sharing': {
+ 'default_permissions': OC.PERMISSION_READ | OC.PERMISSION_CREATE | OC.PERMISSION_SHARE
+ }
+ });
+ configModel.set('isResharingAllowed', true);
+ model.set({
+ reshare: {},
+ shares: []
+ });
+ expect(
+ testWithPermissions(OC.PERMISSION_ALL)
+ ).toEqual(OC.PERMISSION_READ | OC.PERMISSION_CREATE | OC.PERMISSION_SHARE);
});
});
});
diff --git a/core/l10n/cs.js b/core/l10n/cs.js
index d709e8f76b7..0038bdff2a4 100644
--- a/core/l10n/cs.js
+++ b/core/l10n/cs.js
@@ -18,14 +18,14 @@ OC.L10N.register(
"Password reset is disabled" : "Reset hesla je vypnut",
"Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
"Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.",
+ "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat e-mail pro změnu hesla, protože u tohoto uživatelského jména není uvedena e-mailová adresa. Kontaktujte prosím svého administrátora.",
"%s password reset" : "reset hesla %s",
"Password reset" : "Reset hesla",
"Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.",
"Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.",
"Reset your password" : "Resetovat vaše heslo",
- "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.",
- "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
+ "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat e-mail pro změnu hesla. Kontaktujte prosím administrátora.",
+ "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat e-mail pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
"Preparing update" : "Příprava na aktualizaci",
"[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "Upozornění opravy:",
@@ -74,14 +74,14 @@ OC.L10N.register(
"Failed to authenticate, try again" : "Ověření selhalo, zkusit znovu",
"seconds ago" : "před pár sekundami",
"Logging in …" : "Přihlašování …",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši emailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.",
"Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Po vyresetování vašeho hesla nebudete moc získat data zpět.<br/>Pokud si nejste jisti tím co děláte, předtím než budete pokračovat, kontaktujte vašeho administrátora.<br/>Opravdu chcete pokračovat?",
"I know what I'm doing" : "Vím co dělám",
"Password can not be changed. Please contact your administrator." : "Heslo nelze změnit. Kontaktujte prosím svého správce systému.",
"Reset password" : "Obnovit heslo",
"No" : "Ne",
"Yes" : "Ano",
- "No files in here" : "Nesou zde žádné soubory",
+ "No files in here" : "Nejsou zde žádné soubory",
"Choose" : "Vybrat",
"Copy" : "Zkopírovat",
"Move" : "Přesunout",
@@ -128,7 +128,7 @@ OC.L10N.register(
"Link" : "Odkaz",
"Password protect" : "Chránit heslem",
"Allow editing" : "Povolit úpravy",
- "Email link to person" : "Odeslat osobě odkaz emailem",
+ "Email link to person" : "Odeslat osobě odkaz e-mailem",
"Send" : "Odeslat",
"Allow upload and editing" : "Povolit nahrávání a úpravy",
"Read only" : "Pouze pro čtení",
@@ -139,7 +139,7 @@ OC.L10N.register(
"{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} sdílí pomocí odkazu",
"group" : "skupina",
"remote" : "vzdálený",
- "email" : "email",
+ "email" : "e-mail",
"shared by {sharer}" : "Sdílel {sharer}",
"Unshare" : "Zrušit sdílení",
"Can reshare" : "Může znovu sdílet",
diff --git a/core/l10n/cs.json b/core/l10n/cs.json
index b9d55587763..6c9b6f9cd5f 100644
--- a/core/l10n/cs.json
+++ b/core/l10n/cs.json
@@ -16,14 +16,14 @@
"Password reset is disabled" : "Reset hesla je vypnut",
"Couldn't reset password because the token is invalid" : "Heslo nebylo změněno kvůli neplatnému tokenu",
"Couldn't reset password because the token is expired" : "Heslo nebylo změněno z důvodu vypršení tokenu",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat email pro změnu hesla, protože u tohoto uživatelského jména není uvedena emailová adresa. Kontaktujte prosím svého administrátora.",
+ "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Nelze odeslat e-mail pro změnu hesla, protože u tohoto uživatelského jména není uvedena e-mailová adresa. Kontaktujte prosím svého administrátora.",
"%s password reset" : "reset hesla %s",
"Password reset" : "Reset hesla",
"Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat své heslo, klikněte na tlačítko níže. Pokud jste o resetování hesla nežádali, tento e-mail ignorujte.",
"Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Pokud chcete resetovat vaše heslo, klikněte na následující odkaz. Pokud jste o reset nežádali, tento e-mail ignorujte.",
"Reset your password" : "Resetovat vaše heslo",
- "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat email pro změnu hesla. Kontaktujte svého správce systému.",
- "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat email pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
+ "Couldn't send reset email. Please contact your administrator." : "Nepodařilo se odeslat e-mail pro změnu hesla. Kontaktujte prosím administrátora.",
+ "Couldn't send reset email. Please make sure your username is correct." : "Nelze odeslat e-mail pro změnu hesla. Ujistěte se prosím, že zadáváte správné uživatelské jméno.",
"Preparing update" : "Příprava na aktualizaci",
"[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "Upozornění opravy:",
@@ -72,14 +72,14 @@
"Failed to authenticate, try again" : "Ověření selhalo, zkusit znovu",
"seconds ago" : "před pár sekundami",
"Logging in …" : "Přihlašování …",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši emailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Odkaz na obnovení hesla byl odeslán na vaši e-mailovou adresu. Pokud jej v krátké době neobdržíte, zkontrolujte nevyžádanou poštu a koš.<br>Pokud jej nenaleznete, kontaktujte svého správce systému.",
"Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vaše soubory jsou šifrovány. Po vyresetování vašeho hesla nebudete moc získat data zpět.<br/>Pokud si nejste jisti tím co děláte, předtím než budete pokračovat, kontaktujte vašeho administrátora.<br/>Opravdu chcete pokračovat?",
"I know what I'm doing" : "Vím co dělám",
"Password can not be changed. Please contact your administrator." : "Heslo nelze změnit. Kontaktujte prosím svého správce systému.",
"Reset password" : "Obnovit heslo",
"No" : "Ne",
"Yes" : "Ano",
- "No files in here" : "Nesou zde žádné soubory",
+ "No files in here" : "Nejsou zde žádné soubory",
"Choose" : "Vybrat",
"Copy" : "Zkopírovat",
"Move" : "Přesunout",
@@ -126,7 +126,7 @@
"Link" : "Odkaz",
"Password protect" : "Chránit heslem",
"Allow editing" : "Povolit úpravy",
- "Email link to person" : "Odeslat osobě odkaz emailem",
+ "Email link to person" : "Odeslat osobě odkaz e-mailem",
"Send" : "Odeslat",
"Allow upload and editing" : "Povolit nahrávání a úpravy",
"Read only" : "Pouze pro čtení",
@@ -137,7 +137,7 @@
"{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} sdílí pomocí odkazu",
"group" : "skupina",
"remote" : "vzdálený",
- "email" : "email",
+ "email" : "e-mail",
"shared by {sharer}" : "Sdílel {sharer}",
"Unshare" : "Zrušit sdílení",
"Can reshare" : "Může znovu sdílet",
diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js
index dbc5c1aa385..32fa7b46ca0 100644
--- a/core/l10n/es_MX.js
+++ b/core/l10n/es_MX.js
@@ -315,6 +315,13 @@ OC.L10N.register(
"This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ",
"This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.",
- "Thank you for your patience." : "Gracias por tu paciencia."
+ "Thank you for your patience." : "Gracias por tu paciencia.",
+ "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos",
+ "Shared with {recipients}" : "Compartido con {recipients}",
+ "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:",
+ "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?",
+ "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ",
+ "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación</a>.",
+ "Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Tu PHP no cuenta con siporte de freetype. Esto producirá imagenes rotas en el perfil e interfaz de configuraciones. "
},
"nplurals=2; plural=(n != 1);");
diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json
index 0939fe8fb70..c6736d04f9c 100644
--- a/core/l10n/es_MX.json
+++ b/core/l10n/es_MX.json
@@ -313,6 +313,13 @@
"This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ",
"This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ",
"Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.",
- "Thank you for your patience." : "Gracias por tu paciencia."
+ "Thank you for your patience." : "Gracias por tu paciencia.",
+ "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos",
+ "Shared with {recipients}" : "Compartido con {recipients}",
+ "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:",
+ "Wrong password. Reset it?" : "Contraseña equivocada. ¿Restablecerla?",
+ "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ",
+ "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación</a>.",
+ "Your PHP does not have freetype support. This will result in broken profile pictures and settings interface." : "Tu PHP no cuenta con siporte de freetype. Esto producirá imagenes rotas en el perfil e interfaz de configuraciones. "
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/core/templates/layout.public.php b/core/templates/layout.public.php
new file mode 100644
index 00000000000..b9451fe05a2
--- /dev/null
+++ b/core/templates/layout.public.php
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html class="ng-csp" data-placeholder-focus="false" lang="<?php p($_['language']); ?>" >
+<head data-user="<?php p($_['user_uid']); ?>" data-user-displayname="<?php p($_['user_displayname']); ?>" data-requesttoken="<?php p($_['requesttoken']); ?>">
+ <meta charset="utf-8">
+ <title>
+ <?php
+ p(!empty($_['application'])?$_['application'].' - ':'');
+ p($theme->getTitle());
+ ?>
+ </title>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="referrer" content="never">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
+ <meta name="apple-itunes-app" content="app-id=<?php p($theme->getiTunesAppId()); ?>">
+ <meta name="apple-mobile-web-app-capable" content="yes">
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
+ <meta name="apple-mobile-web-app-title" content="<?php p((!empty($_['application']) && $_['appid']!='files')? $_['application']:$theme->getTitle()); ?>">
+ <meta name="mobile-web-app-capable" content="yes">
+ <meta name="theme-color" content="<?php p($theme->getColorPrimary()); ?>">
+ <link rel="icon" href="<?php print_unescaped(image_path($_['appid'], 'favicon.ico')); /* IE11+ supports png */ ?>">
+ <link rel="apple-touch-icon-precomposed" href="<?php print_unescaped(image_path($_['appid'], 'favicon-touch.png')); ?>">
+ <link rel="mask-icon" sizes="any" href="<?php print_unescaped(image_path($_['appid'], 'favicon-mask.svg')); ?>" color="<?php p($theme->getColorPrimary()); ?>">
+ <link rel="manifest" href="<?php print_unescaped(image_path($_['appid'], 'manifest.json')); ?>">
+ <?php emit_css_loading_tags($_); ?>
+ <?php emit_script_loading_tags($_); ?>
+ <?php print_unescaped($_['headers']); ?>
+</head>
+<body id="<?php p($_['bodyid']);?>">
+<?php include('layout.noscript.warning.php'); ?>
+<header>
+ <div id="header" class="<?php p($_['header-classes']); ?>">
+ <div class="header-left">
+ <span id="nextcloud">
+ <div class="logo logo-icon svg"></div>
+ <h1 class="header-appname">
+ <?php p($template->getHeaderTitle()); ?>
+ </h1>
+ <div class="header-shared-by">
+ <?php p($template->getHeaderDetails()) ?>
+ </div>
+ </span>
+ </div>
+
+ <?php
+ /** @var \OCP\AppFramework\Http\Template\PublicTemplateResponse $template */
+ if($template->getActionCount() !== 0) {
+ $primary = $template->getPrimaryAction();
+ $others = $template->getOtherActions();
+ ?>
+ <div class="header-right">
+ <span id="header-primary-action" class="<?php if($template->getActionCount() === 1) { p($primary->getIcon()); } ?>">
+ <a href="<?php p($primary->getLink()); ?>">
+ <span class="share-menutoggle-text"><?php p($primary->getLabel()) ?></span>
+ </a>
+ </span>
+ <?php if($template->getActionCount()>1) { ?>
+ <span id="header-actions-toggle" class="menutoggle icon-more-white"></span>
+ <div id="share-menu" class="popovermenu menu">
+ <ul>
+ <?php
+ /** @var \OCP\AppFramework\Http\Template\IMenuAction $action */
+ foreach($template->getOtherActions() as $action) {
+ print_unescaped($action->render());
+ }
+ ?>
+ </ul>
+ </div>
+ <?php } ?>
+ </div>
+ <?php } ?>
+ </div>
+</header>
+<div id="content-wrapper">
+ <div id="content" class="app-<?php p($_['appid']) ?>" role="main">
+ <?php print_unescaped($_['content']); ?>
+ </div>
+</div>
+
+</body>
+</html>
diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php
index b3158ac7e04..68be5e2d595 100644
--- a/lib/composer/composer/autoload_classmap.php
+++ b/lib/composer/composer/autoload_classmap.php
@@ -40,6 +40,9 @@ return array(
'OCP\\AppFramework\\Http\\Response' => $baseDir . '/lib/public/AppFramework/Http/Response.php',
'OCP\\AppFramework\\Http\\StreamResponse' => $baseDir . '/lib/public/AppFramework/Http/StreamResponse.php',
'OCP\\AppFramework\\Http\\TemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/TemplateResponse.php',
+ 'OCP\\AppFramework\\Http\\Template\\IMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/IMenuAction.php',
+ 'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => $baseDir . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php',
+ 'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => $baseDir . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php',
'OCP\\AppFramework\\IAppContainer' => $baseDir . '/lib/public/AppFramework/IAppContainer.php',
'OCP\\AppFramework\\Middleware' => $baseDir . '/lib/public/AppFramework/Middleware.php',
'OCP\\AppFramework\\OCSController' => $baseDir . '/lib/public/AppFramework/OCSController.php',
diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php
index 65b36cc489e..81f21f31c21 100644
--- a/lib/composer/composer/autoload_static.php
+++ b/lib/composer/composer/autoload_static.php
@@ -70,6 +70,9 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c
'OCP\\AppFramework\\Http\\Response' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Response.php',
'OCP\\AppFramework\\Http\\StreamResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/StreamResponse.php',
'OCP\\AppFramework\\Http\\TemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/TemplateResponse.php',
+ 'OCP\\AppFramework\\Http\\Template\\IMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/IMenuAction.php',
+ 'OCP\\AppFramework\\Http\\Template\\PublicTemplateResponse' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php',
+ 'OCP\\AppFramework\\Http\\Template\\SimpleMenuAction' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Http/Template/SimpleMenuAction.php',
'OCP\\AppFramework\\IAppContainer' => __DIR__ . '/../../..' . '/lib/public/AppFramework/IAppContainer.php',
'OCP\\AppFramework\\Middleware' => __DIR__ . '/../../..' . '/lib/public/AppFramework/Middleware.php',
'OCP\\AppFramework\\OCSController' => __DIR__ . '/../../..' . '/lib/public/AppFramework/OCSController.php',
diff --git a/lib/l10n/de.js b/lib/l10n/de.js
index 1bf717dbbe9..7f63c709832 100644
--- a/lib/l10n/de.js
+++ b/lib/l10n/de.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s",
"Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.",
"Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.",
+ "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
"Avatar image is not square" : "Benutzerbild ist nicht quadratisch",
diff --git a/lib/l10n/de.json b/lib/l10n/de.json
index d90b44f67b3..9c0a2aa2dbe 100644
--- a/lib/l10n/de.json
+++ b/lib/l10n/de.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s",
"Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.",
"Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.",
+ "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
"Avatar image is not square" : "Benutzerbild ist nicht quadratisch",
diff --git a/lib/l10n/de_DE.js b/lib/l10n/de_DE.js
index 5330dcd7ccd..09e5cff16a2 100644
--- a/lib/l10n/de_DE.js
+++ b/lib/l10n/de_DE.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s",
"Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.",
"Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.",
+ "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
"Avatar image is not square" : "Benutzerbild ist nicht quadratisch",
diff --git a/lib/l10n/de_DE.json b/lib/l10n/de_DE.json
index 8dc85c49bbb..4d20927ce64 100644
--- a/lib/l10n/de_DE.json
+++ b/lib/l10n/de_DE.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Die folgenden Plattformen werden unterstützt: %s",
"Server version %s or higher is required." : "Server Version %s oder höher wird benötigt.",
"Server version %s or lower is required." : "Server Version %s oder niedriger wird benötigt.",
+ "Logged in user must be an admin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Unknown filetype" : "Unbekannter Dateityp",
"Invalid image" : "Ungültiges Bild",
"Avatar image is not square" : "Benutzerbild ist nicht quadratisch",
diff --git a/lib/l10n/en_GB.js b/lib/l10n/en_GB.js
index b28fe47c46b..7e7c77430ae 100644
--- a/lib/l10n/en_GB.js
+++ b/lib/l10n/en_GB.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Following platforms are supported: %s",
"Server version %s or higher is required." : "Server version %s or higher is required.",
"Server version %s or lower is required." : "Server version %s or lower is required.",
+ "Logged in user must be an admin" : "Logged in user must be an admin",
"Unknown filetype" : "Unknown filetype",
"Invalid image" : "Invalid image",
"Avatar image is not square" : "Avatar image is not square",
diff --git a/lib/l10n/en_GB.json b/lib/l10n/en_GB.json
index bf8ea58a8f2..393cf15a33a 100644
--- a/lib/l10n/en_GB.json
+++ b/lib/l10n/en_GB.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Following platforms are supported: %s",
"Server version %s or higher is required." : "Server version %s or higher is required.",
"Server version %s or lower is required." : "Server version %s or lower is required.",
+ "Logged in user must be an admin" : "Logged in user must be an admin",
"Unknown filetype" : "Unknown filetype",
"Invalid image" : "Invalid image",
"Avatar image is not square" : "Avatar image is not square",
diff --git a/lib/l10n/es.js b/lib/l10n/es.js
index a0f23e34d2c..8f12777595b 100644
--- a/lib/l10n/es.js
+++ b/lib/l10n/es.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s",
"Server version %s or higher is required." : "Se necesita la versión %s o superior del servidor.",
"Server version %s or lower is required." : "Se necesita la versión %s o inferior del servidor. ",
+ "Logged in user must be an admin" : "El usuario registrado debe ser un administrador",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
"Avatar image is not square" : "La imagen de avatar no es cuadrada",
diff --git a/lib/l10n/es.json b/lib/l10n/es.json
index ec5252d028f..4160dbcbad1 100644
--- a/lib/l10n/es.json
+++ b/lib/l10n/es.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s",
"Server version %s or higher is required." : "Se necesita la versión %s o superior del servidor.",
"Server version %s or lower is required." : "Se necesita la versión %s o inferior del servidor. ",
+ "Logged in user must be an admin" : "El usuario registrado debe ser un administrador",
"Unknown filetype" : "Tipo de archivo desconocido",
"Invalid image" : "Imagen inválida",
"Avatar image is not square" : "La imagen de avatar no es cuadrada",
diff --git a/lib/l10n/es_MX.js b/lib/l10n/es_MX.js
index 47f76fb7755..d807643d2da 100644
--- a/lib/l10n/es_MX.js
+++ b/lib/l10n/es_MX.js
@@ -228,6 +228,19 @@ OC.L10N.register(
"Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s",
"Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible",
"Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s",
- "Personal" : "Personal"
+ "Personal" : "Personal",
+ "Admin" : "Admin",
+ "DB Error: \"%s\"" : "DB Error: \"%s\"",
+ "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre:%s, contraseña:%s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos de %s, porque los permisos excenden los permisos otorgados a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Se presentó una falla al establecer los permisos de %s, porque no se encontró el elemento",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "No se puede limpíar la fecha de expiración. Se requiere que los elementos compartidos tengan una fecha de expiración.",
+ "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s",
+ "Files can't be shared with delete permissions" : "No se pueden compartir archivos con privilegios para borrar",
+ "Files can't be shared with create permissions" : "No se pueden compartir archivos con privilegios para crear",
+ "Cannot set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración más alla de %s días en el futuro",
+ "No app name specified" : "No se especificó el nombre de la aplicación",
+ "App '%s' could not be installed!" : "¡No se pudo instalar la aplciación '%s'!"
},
"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/es_MX.json b/lib/l10n/es_MX.json
index 1d6618782f8..58d46203cc9 100644
--- a/lib/l10n/es_MX.json
+++ b/lib/l10n/es_MX.json
@@ -226,6 +226,19 @@
"Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s",
"Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible",
"Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s",
- "Personal" : "Personal"
+ "Personal" : "Personal",
+ "Admin" : "Admin",
+ "DB Error: \"%s\"" : "DB Error: \"%s\"",
+ "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"",
+ "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre:%s, contraseña:%s",
+ "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos de %s, porque los permisos excenden los permisos otorgados a %s",
+ "Setting permissions for %s failed, because the item was not found" : "Se presentó una falla al establecer los permisos de %s, porque no se encontró el elemento",
+ "Cannot clear expiration date. Shares are required to have an expiration date." : "No se puede limpíar la fecha de expiración. Se requiere que los elementos compartidos tengan una fecha de expiración.",
+ "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s",
+ "Files can't be shared with delete permissions" : "No se pueden compartir archivos con privilegios para borrar",
+ "Files can't be shared with create permissions" : "No se pueden compartir archivos con privilegios para crear",
+ "Cannot set expiration date more than %s days in the future" : "No se puede establecer la fecha de expiración más alla de %s días en el futuro",
+ "No app name specified" : "No se especificó el nombre de la aplicación",
+ "App '%s' could not be installed!" : "¡No se pudo instalar la aplciación '%s'!"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/lib/l10n/fr.js b/lib/l10n/fr.js
index 61d35224fd0..ef8749d3060 100644
--- a/lib/l10n/fr.js
+++ b/lib/l10n/fr.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Les plateformes suivantes sont prises en charge : %s",
"Server version %s or higher is required." : "Un serveur de version %s ou supérieure est requis.",
"Server version %s or lower is required." : "Un serveur de version %s ou inférieure est requis.",
+ "Logged in user must be an admin" : "L'utilisateur connecté doit être un administrateur",
"Unknown filetype" : "Type de fichier inconnu",
"Invalid image" : "Image non valable",
"Avatar image is not square" : "L'image d'avatar n'est pas carré",
diff --git a/lib/l10n/fr.json b/lib/l10n/fr.json
index 25801b27ac7..8f9b797b1d5 100644
--- a/lib/l10n/fr.json
+++ b/lib/l10n/fr.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Les plateformes suivantes sont prises en charge : %s",
"Server version %s or higher is required." : "Un serveur de version %s ou supérieure est requis.",
"Server version %s or lower is required." : "Un serveur de version %s ou inférieure est requis.",
+ "Logged in user must be an admin" : "L'utilisateur connecté doit être un administrateur",
"Unknown filetype" : "Type de fichier inconnu",
"Invalid image" : "Image non valable",
"Avatar image is not square" : "L'image d'avatar n'est pas carré",
diff --git a/lib/l10n/it.js b/lib/l10n/it.js
index f9c643e9164..b8f07f33e5a 100644
--- a/lib/l10n/it.js
+++ b/lib/l10n/it.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "Sono supportate le seguenti piattaforme: %s",
"Server version %s or higher is required." : "È richiesta la versione %s o successiva.",
"Server version %s or lower is required." : "È richiesta la versione %s o precedente.",
+ "Logged in user must be an admin" : "L'utente che ha eseguito l'accesso deve essere un amministratore ",
"Unknown filetype" : "Tipo di file sconosciuto",
"Invalid image" : "Immagine non valida",
"Avatar image is not square" : "L'immagine personale non è quadrata",
diff --git a/lib/l10n/it.json b/lib/l10n/it.json
index 099ee47f9ff..32dbd8c787e 100644
--- a/lib/l10n/it.json
+++ b/lib/l10n/it.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "Sono supportate le seguenti piattaforme: %s",
"Server version %s or higher is required." : "È richiesta la versione %s o successiva.",
"Server version %s or lower is required." : "È richiesta la versione %s o precedente.",
+ "Logged in user must be an admin" : "L'utente che ha eseguito l'accesso deve essere un amministratore ",
"Unknown filetype" : "Tipo di file sconosciuto",
"Invalid image" : "Immagine non valida",
"Avatar image is not square" : "L'immagine personale non è quadrata",
diff --git a/lib/l10n/pt_BR.js b/lib/l10n/pt_BR.js
index 6ff70dabf4a..d7a042194de 100644
--- a/lib/l10n/pt_BR.js
+++ b/lib/l10n/pt_BR.js
@@ -27,6 +27,7 @@ OC.L10N.register(
"Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s",
"Server version %s or higher is required." : "É requerido um servidor da versão %s ou superior.",
"Server version %s or lower is required." : "É requerido um servidor da versão %s ou abaixo.",
+ "Logged in user must be an admin" : "O usuário conectado deve ser um administrador",
"Unknown filetype" : "Tipo de arquivo desconhecido",
"Invalid image" : "Imagem inválida",
"Avatar image is not square" : "A imagem do avatar não é quadrada",
diff --git a/lib/l10n/pt_BR.json b/lib/l10n/pt_BR.json
index 02c59492bc9..9a0a8ceb5cf 100644
--- a/lib/l10n/pt_BR.json
+++ b/lib/l10n/pt_BR.json
@@ -25,6 +25,7 @@
"Following platforms are supported: %s" : "As seguintes plataformas são suportadas: %s",
"Server version %s or higher is required." : "É requerido um servidor da versão %s ou superior.",
"Server version %s or lower is required." : "É requerido um servidor da versão %s ou abaixo.",
+ "Logged in user must be an admin" : "O usuário conectado deve ser um administrador",
"Unknown filetype" : "Tipo de arquivo desconhecido",
"Invalid image" : "Imagem inválida",
"Avatar image is not square" : "A imagem do avatar não é quadrada",
diff --git a/lib/private/Log.php b/lib/private/Log.php
index bed0321bef3..e47f68807d3 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -129,7 +130,7 @@ class Log implements ILogger {
if($logger === null) {
$logType = $this->config->getValue('log_type', 'file');
$this->logger = static::getLogClass($logType);
- call_user_func(array($this->logger, 'init'));
+ call_user_func([$this->logger, 'init']);
} else {
$this->logger = $logger;
}
@@ -148,7 +149,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function emergency($message, array $context = array()) {
+ public function emergency(string $message, array $context = []) {
$this->log(Util::FATAL, $message, $context);
}
@@ -162,7 +163,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function alert($message, array $context = array()) {
+ public function alert(string $message, array $context = []) {
$this->log(Util::ERROR, $message, $context);
}
@@ -175,7 +176,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function critical($message, array $context = array()) {
+ public function critical(string $message, array $context = []) {
$this->log(Util::ERROR, $message, $context);
}
@@ -187,7 +188,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function error($message, array $context = array()) {
+ public function error(string $message, array $context = []) {
$this->log(Util::ERROR, $message, $context);
}
@@ -201,7 +202,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function warning($message, array $context = array()) {
+ public function warning(string $message, array $context = []) {
$this->log(Util::WARN, $message, $context);
}
@@ -212,7 +213,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function notice($message, array $context = array()) {
+ public function notice(string $message, array $context = []) {
$this->log(Util::INFO, $message, $context);
}
@@ -225,7 +226,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function info($message, array $context = array()) {
+ public function info(string $message, array $context = []) {
$this->log(Util::INFO, $message, $context);
}
@@ -236,7 +237,7 @@ class Log implements ILogger {
* @param array $context
* @return void
*/
- public function debug($message, array $context = array()) {
+ public function debug(string $message, array $context = []) {
$this->log(Util::DEBUG, $message, $context);
}
@@ -244,12 +245,12 @@ class Log implements ILogger {
/**
* Logs with an arbitrary level.
*
- * @param mixed $level
+ * @param int $level
* @param string $message
* @param array $context
* @return void
*/
- public function log($level, $message, array $context = array()) {
+ public function log(int $level, string $message, array $context = []) {
$minLevel = min($this->config->getValue('loglevel', Util::WARN), Util::FATAL);
$logCondition = $this->config->getValue('log.condition', []);
@@ -272,7 +273,7 @@ class Log implements ILogger {
$app = 'no app in context';
}
// interpolate $message as defined in PSR-3
- $replace = array();
+ $replace = [];
foreach ($context as $key => $val) {
$replace['{' . $key . '}'] = $val;
}
@@ -318,7 +319,7 @@ class Log implements ILogger {
if ($level >= $minLevel) {
$logger = $this->logger;
- call_user_func(array($logger, 'write'), $app, $message, $level);
+ call_user_func([$logger, 'write'], $app, $message, $level);
}
}
@@ -330,20 +331,20 @@ class Log implements ILogger {
* @return void
* @since 8.2.0
*/
- public function logException($exception, array $context = array()) {
+ public function logException(\Throwable $exception, array $context = []) {
$level = Util::ERROR;
if (isset($context['level'])) {
$level = $context['level'];
unset($context['level']);
}
- $data = array(
+ $data = [
'Exception' => get_class($exception),
'Message' => $exception->getMessage(),
'Code' => $exception->getCode(),
'Trace' => $exception->getTraceAsString(),
'File' => $exception->getFile(),
'Line' => $exception->getLine(),
- );
+ ];
$data['Trace'] = preg_replace('!(' . implode('|', $this->methodsWithSensitiveParameters) . ')\(.*\)!', '$1(*** sensitive parameters replaced ***)', $data['Trace']);
if ($exception instanceof HintException) {
$data['Hint'] = $exception->getHint();
@@ -362,7 +363,7 @@ class Log implements ILogger {
* @return string
* @internal
*/
- public static function getLogClass($logType) {
+ public static function getLogClass(string $logType): string {
switch (strtolower($logType)) {
case 'errorlog':
return \OC\Log\Errorlog::class;
diff --git a/lib/private/Session/CryptoSessionData.php b/lib/private/Session/CryptoSessionData.php
index 530bd9063c3..b63b568875e 100644
--- a/lib/private/Session/CryptoSessionData.php
+++ b/lib/private/Session/CryptoSessionData.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -55,7 +56,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
*/
public function __construct(ISession $session,
ICrypto $crypto,
- $passphrase) {
+ string $passphrase) {
$this->crypto = $crypto;
$this->session = $session;
$this->passphrase = $passphrase;
@@ -92,7 +93,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* @param string $key
* @param mixed $value
*/
- public function set($key, $value) {
+ public function set(string $key, $value) {
$this->sessionValues[$key] = $value;
$this->isModified = true;
}
@@ -103,7 +104,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* @param string $key
* @return string|null Either the value or null
*/
- public function get($key) {
+ public function get(string $key) {
if(isset($this->sessionValues[$key])) {
return $this->sessionValues[$key];
}
@@ -117,7 +118,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* @param string $key
* @return bool
*/
- public function exists($key) {
+ public function exists(string $key): bool {
return isset($this->sessionValues[$key]);
}
@@ -126,7 +127,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
*
* @param string $key
*/
- public function remove($key) {
+ public function remove(string $key) {
$this->isModified = true;
unset($this->sessionValues[$key]);
$this->session->remove(self::encryptedSessionName);
@@ -151,7 +152,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* @param bool $deleteOldSession Whether to delete the old associated session file or not.
* @return void
*/
- public function regenerateId($deleteOldSession = true) {
+ public function regenerateId(bool $deleteOldSession = true) {
$this->session->regenerateId($deleteOldSession);
}
@@ -162,7 +163,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* @throws SessionNotAvailableException
* @since 9.1.0
*/
- public function getId() {
+ public function getId(): string {
return $this->session->getId();
}
@@ -182,7 +183,7 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* @param mixed $offset
* @return bool
*/
- public function offsetExists($offset) {
+ public function offsetExists($offset): bool {
return $this->exists($offset);
}
diff --git a/lib/private/Session/Internal.php b/lib/private/Session/Internal.php
index d137d72a048..1d0466ec349 100644
--- a/lib/private/Session/Internal.php
+++ b/lib/private/Session/Internal.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -43,8 +44,8 @@ class Internal extends Session {
* @param string $name
* @throws \Exception
*/
- public function __construct($name) {
- set_error_handler(array($this, 'trapError'));
+ public function __construct(string $name) {
+ set_error_handler([$this, 'trapError']);
$this->invoke('session_name', [$name]);
try {
$this->invoke('session_start');
@@ -61,7 +62,7 @@ class Internal extends Session {
* @param string $key
* @param integer $value
*/
- public function set($key, $value) {
+ public function set(string $key, $value) {
$this->validateSession();
$_SESSION[$key] = $value;
}
@@ -70,7 +71,7 @@ class Internal extends Session {
* @param string $key
* @return mixed
*/
- public function get($key) {
+ public function get(string $key) {
if (!$this->exists($key)) {
return null;
}
@@ -81,14 +82,14 @@ class Internal extends Session {
* @param string $key
* @return bool
*/
- public function exists($key) {
+ public function exists(string $key): bool {
return isset($_SESSION[$key]);
}
/**
* @param string $key
*/
- public function remove($key) {
+ public function remove(string $key) {
if (isset($_SESSION[$key])) {
unset($_SESSION[$key]);
}
@@ -112,7 +113,7 @@ class Internal extends Session {
* @param bool $deleteOldSession Whether to delete the old associated session file or not.
* @return void
*/
- public function regenerateId($deleteOldSession = true) {
+ public function regenerateId(bool $deleteOldSession = true) {
try {
@session_regenerate_id($deleteOldSession);
} catch (\Error $e) {
@@ -127,7 +128,7 @@ class Internal extends Session {
* @throws SessionNotAvailableException
* @since 9.1.0
*/
- public function getId() {
+ public function getId(): string {
$id = $this->invoke('session_id', [], true);
if ($id === '') {
throw new SessionNotAvailableException();
@@ -147,7 +148,7 @@ class Internal extends Session {
* @param string $errorString
* @throws \ErrorException
*/
- public function trapError($errorNumber, $errorString) {
+ public function trapError(int $errorNumber, string $errorString) {
throw new \ErrorException($errorString);
}
@@ -167,7 +168,7 @@ class Internal extends Session {
* @throws \ErrorException via trapError
* @return mixed
*/
- private function invoke($functionName, array $parameters = [], $silence = false) {
+ private function invoke(string $functionName, array $parameters = [], bool $silence = false) {
try {
if($silence) {
return @call_user_func_array($functionName, $parameters);
diff --git a/lib/private/Session/Memory.php b/lib/private/Session/Memory.php
index 22d6ffa0110..79900bc8067 100644
--- a/lib/private/Session/Memory.php
+++ b/lib/private/Session/Memory.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -40,16 +41,16 @@ use OCP\Session\Exceptions\SessionNotAvailableException;
class Memory extends Session {
protected $data;
- public function __construct($name) {
+ public function __construct(string $name) {
//no need to use $name since all data is already scoped to this instance
- $this->data = array();
+ $this->data = [];
}
/**
* @param string $key
* @param integer $value
*/
- public function set($key, $value) {
+ public function set(string $key, $value) {
$this->validateSession();
$this->data[$key] = $value;
}
@@ -58,7 +59,7 @@ class Memory extends Session {
* @param string $key
* @return mixed
*/
- public function get($key) {
+ public function get(string $key) {
if (!$this->exists($key)) {
return null;
}
@@ -69,20 +70,20 @@ class Memory extends Session {
* @param string $key
* @return bool
*/
- public function exists($key) {
+ public function exists(string $key): bool {
return isset($this->data[$key]);
}
/**
* @param string $key
*/
- public function remove($key) {
+ public function remove(string $key) {
$this->validateSession();
unset($this->data[$key]);
}
public function clear() {
- $this->data = array();
+ $this->data = [];
}
/**
@@ -90,7 +91,7 @@ class Memory extends Session {
*
* @param bool $deleteOldSession
*/
- public function regenerateId($deleteOldSession = true) {}
+ public function regenerateId(bool $deleteOldSession = true) {}
/**
* Wrapper around session_id
@@ -99,7 +100,7 @@ class Memory extends Session {
* @throws SessionNotAvailableException
* @since 9.1.0
*/
- public function getId() {
+ public function getId(): string {
throw new SessionNotAvailableException('Memory session does not have an ID');
}
diff --git a/lib/private/Session/Session.php b/lib/private/Session/Session.php
index 49afc564306..cadbb7e7ad4 100644
--- a/lib/private/Session/Session.php
+++ b/lib/private/Session/Session.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -38,13 +39,13 @@ abstract class Session implements \ArrayAccess, ISession {
*
* @param string $name
*/
- abstract public function __construct($name);
+ abstract public function __construct(string $name);
/**
* @param mixed $offset
* @return bool
*/
- public function offsetExists($offset) {
+ public function offsetExists($offset): bool {
return $this->exists($offset);
}
diff --git a/lib/private/Settings/Admin/Sharing.php b/lib/private/Settings/Admin/Sharing.php
index dbdacf78dab..dfc0b11478b 100644
--- a/lib/private/Settings/Admin/Sharing.php
+++ b/lib/private/Settings/Admin/Sharing.php
@@ -28,7 +28,9 @@ namespace OC\Settings\Admin;
use OC\Share\Share;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Constants;
use OCP\IConfig;
+use OCP\IL10N;
use OCP\Settings\ISettings;
use OCP\Util;
@@ -36,11 +38,15 @@ class Sharing implements ISettings {
/** @var IConfig */
private $config;
+ /** @var IL10N */
+ private $l;
+
/**
* @param IConfig $config
*/
- public function __construct(IConfig $config) {
+ public function __construct(IConfig $config, IL10N $l) {
$this->config = $config;
+ $this->l = $l;
}
/**
@@ -53,27 +59,59 @@ class Sharing implements ISettings {
$parameters = [
// Built-In Sharing
- 'allowGroupSharing' => $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes'),
- 'allowLinks' => $this->config->getAppValue('core', 'shareapi_allow_links', 'yes'),
- 'allowPublicUpload' => $this->config->getAppValue('core', 'shareapi_allow_public_upload', 'yes'),
- 'allowResharing' => $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes'),
- 'allowShareDialogUserEnumeration' => $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes'),
- 'enforceLinkPassword' => Util::isPublicLinkPasswordRequired(),
- 'onlyShareWithGroupMembers' => Share::shareWithGroupMembersOnly(),
- 'shareAPIEnabled' => $this->config->getAppValue('core', 'shareapi_enabled', 'yes'),
- 'shareDefaultExpireDateSet' => $this->config->getAppValue('core', 'shareapi_default_expire_date', 'no'),
- 'shareExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_expire_after_n_days', '7'),
- 'shareEnforceExpireDate' => $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no'),
- 'shareExcludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no') === 'yes',
- 'shareExcludedGroupsList' => $excludeGroupsList,
- 'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null),
- 'enableLinkPasswordByDefault' => $this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no'),
+ 'allowGroupSharing' => $this->config->getAppValue('core', 'shareapi_allow_group_sharing', 'yes'),
+ 'allowLinks' => $this->config->getAppValue('core', 'shareapi_allow_links', 'yes'),
+ 'allowPublicUpload' => $this->config->getAppValue('core', 'shareapi_allow_public_upload', 'yes'),
+ 'allowResharing' => $this->config->getAppValue('core', 'shareapi_allow_resharing', 'yes'),
+ 'allowShareDialogUserEnumeration' => $this->config->getAppValue('core', 'shareapi_allow_share_dialog_user_enumeration', 'yes'),
+ 'enforceLinkPassword' => Util::isPublicLinkPasswordRequired(),
+ 'onlyShareWithGroupMembers' => Share::shareWithGroupMembersOnly(),
+ 'shareAPIEnabled' => $this->config->getAppValue('core', 'shareapi_enabled', 'yes'),
+ 'shareDefaultExpireDateSet' => $this->config->getAppValue('core', 'shareapi_default_expire_date', 'no'),
+ 'shareExpireAfterNDays' => $this->config->getAppValue('core', 'shareapi_expire_after_n_days', '7'),
+ 'shareEnforceExpireDate' => $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no'),
+ 'shareExcludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no') === 'yes',
+ 'shareExcludedGroupsList' => $excludeGroupsList,
+ 'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null),
+ 'enableLinkPasswordByDefault' => $this->config->getAppValue('core', 'shareapi_enable_link_password_by_default', 'no'),
+ 'shareApiDefaultPermissions' => $this->config->getAppValue('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL),
+ 'shareApiDefaultPermissionsCheckboxes' => $this->getSharePermissionList(),
];
return new TemplateResponse('settings', 'settings/admin/sharing', $parameters, '');
}
/**
+ * get share permission list for template
+ *
+ * @return array
+ */
+ private function getSharePermissionList() {
+ return [
+ [
+ 'id' => 'cancreate',
+ 'label' => $this->l->t('Create'),
+ 'value' => Constants::PERMISSION_CREATE
+ ],
+ [
+ 'id' => 'canupdate',
+ 'label' => $this->l->t('Change'),
+ 'value' => Constants::PERMISSION_UPDATE
+ ],
+ [
+ 'id' => 'candelete',
+ 'label' => $this->l->t('Delete'),
+ 'value' => Constants::PERMISSION_DELETE
+ ],
+ [
+ 'id' => 'canshare',
+ 'label' => $this->l->t('Share'),
+ 'value' => Constants::PERMISSION_SHARE
+ ],
+ ];
+ }
+
+ /**
* @return string the section ID, e.g. 'sharing'
*/
public function getSection() {
diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php
index 387460852ab..7111511eca2 100644
--- a/lib/private/Settings/Manager.php
+++ b/lib/private/Settings/Manager.php
@@ -271,7 +271,7 @@ class Manager implements IManager {
}
if ($section === 'sharing') {
/** @var ISettings $form */
- $form = new Admin\Sharing($this->config);
+ $form = new Admin\Sharing($this->config, $this->l);
$forms[$form->getPriority()] = [$form];
}
if ($section === 'additional') {
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index c0246a83e46..212deeeba0f 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -325,15 +325,20 @@ class Setup {
$secret = $this->random->generate(48);
//write the config file
- $this->config->setValues([
+ $newConfigValues = [
'passwordsalt' => $salt,
'secret' => $secret,
'trusted_domains' => $trustedDomains,
'datadirectory' => $dataDir,
- 'overwrite.cli.url' => $request->getServerProtocol() . '://' . $request->getInsecureServerHost() . \OC::$WEBROOT,
'dbtype' => $dbType,
'version' => implode('.', \OCP\Util::getVersion()),
- ]);
+ ];
+
+ if ($this->config->getValue('overwrite.cli.url', null) === null) {
+ $newConfigValues['overwrite.cli.url'] = $request->getServerProtocol() . '://' . $request->getInsecureServerHost() . \OC::$WEBROOT;
+ }
+
+ $this->config->setValues($newConfigValues);
try {
$dbSetup->initialize($options);
diff --git a/lib/private/Template/Base.php b/lib/private/Template/Base.php
index 18cf6324089..09be5ab7ddf 100644
--- a/lib/private/Template/Base.php
+++ b/lib/private/Template/Base.php
@@ -166,8 +166,11 @@ class Base {
$l = $this->l10n;
$theme = $this->theme;
- if( !is_null($additionalParams)) {
+ if(!is_null($additionalParams)) {
$_ = array_merge( $additionalParams, $this->vars );
+ foreach ($_ as $var => $value) {
+ ${$var} = $value;
+ }
}
// Include
diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php
index b8bff074200..b691a8a64cb 100644
--- a/lib/private/Template/JSConfigHelper.php
+++ b/lib/private/Template/JSConfigHelper.php
@@ -28,6 +28,7 @@
namespace OC\Template;
use bantu\IniGetWrapper\IniGetWrapper;
+use OC\CapabilitiesManager;
use OCP\App\IAppManager;
use OCP\Defaults;
use OCP\IConfig;
@@ -66,6 +67,9 @@ class JSConfigHelper {
/** @var IURLGenerator */
private $urlGenerator;
+ /** @var CapabilitiesManager */
+ private $capabilitiesManager;
+
/**
* @param IL10N $l
* @param Defaults $defaults
@@ -76,6 +80,7 @@ class JSConfigHelper {
* @param IGroupManager $groupManager
* @param IniGetWrapper $iniWrapper
* @param IURLGenerator $urlGenerator
+ * @param CapabilitiesManager $capabilitiesManager
*/
public function __construct(IL10N $l,
Defaults $defaults,
@@ -85,7 +90,8 @@ class JSConfigHelper {
IConfig $config,
IGroupManager $groupManager,
IniGetWrapper $iniWrapper,
- IURLGenerator $urlGenerator) {
+ IURLGenerator $urlGenerator,
+ CapabilitiesManager $capabilitiesManager) {
$this->l = $l;
$this->defaults = $defaults;
$this->appManager = $appManager;
@@ -95,6 +101,7 @@ class JSConfigHelper {
$this->groupManager = $groupManager;
$this->iniWrapper = $iniWrapper;
$this->urlGenerator = $urlGenerator;
+ $this->capabilitiesManager = $capabilitiesManager;
}
public function getConfig() {
@@ -146,6 +153,8 @@ class JSConfigHelper {
$lastConfirmTimestamp = 0;
}
+ $capabilities = $this->capabilitiesManager->getCapabilities();
+
$array = [
"oc_debug" => $this->config->getSystemValue('debug', false) ? 'true' : 'false',
"oc_isadmin" => $this->groupManager->isAdmin($uid) ? 'true' : 'false',
@@ -252,6 +261,7 @@ class JSConfigHelper {
'longFooter' => $this->defaults->getLongFooter(),
'folder' => \OC_Util::getTheme(),
]),
+ "oc_capabilities" => json_encode($capabilities),
];
if ($this->currentUser !== null) {
diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php
index 8cc235bf818..0f2eb48bef3 100644
--- a/lib/private/TemplateLayout.php
+++ b/lib/private/TemplateLayout.php
@@ -123,6 +123,10 @@ class TemplateLayout extends \OC_Template {
} else if ($renderAs == 'guest') {
parent::__construct('core', 'layout.guest');
$this->assign('bodyid', 'body-login');
+ } else if ($renderAs == 'public') {
+ parent::__construct('core', 'layout.public');
+ $this->assign( 'appid', $appId );
+ $this->assign('bodyid', 'body-public');
} else {
parent::__construct('core', 'layout.base');
@@ -156,7 +160,8 @@ class TemplateLayout extends \OC_Template {
$this->config,
\OC::$server->getGroupManager(),
\OC::$server->getIniWrapper(),
- \OC::$server->getURLGenerator()
+ \OC::$server->getURLGenerator(),
+ \OC::$server->getCapabilitiesManager()
);
$this->assign('inline_ocjs', $jsConfigHelper->getConfig());
} else {
diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php
index c5279bff6b8..a362b581fe2 100644
--- a/lib/private/legacy/template.php
+++ b/lib/private/legacy/template.php
@@ -206,6 +206,12 @@ class OC_Template extends \OC\Template\Base {
if( $this->renderAs ) {
$page = new TemplateLayout($this->renderAs, $this->app);
+ if(is_array($additionalParams)) {
+ foreach ($additionalParams as $key => $value) {
+ $page->assign($key, $value);
+ }
+ }
+
// Add custom headers
$headers = '';
foreach(OC_Util::$headers as $header) {
@@ -226,7 +232,7 @@ class OC_Template extends \OC\Template\Base {
$page->assign('headers', $headers);
$page->assign('content', $data);
- return $page->fetchPage();
+ return $page->fetchPage($additionalParams);
}
return $data;
diff --git a/lib/public/AppFramework/Http/Template/IMenuAction.php b/lib/public/AppFramework/Http/Template/IMenuAction.php
new file mode 100644
index 00000000000..e42d2057981
--- /dev/null
+++ b/lib/public/AppFramework/Http/Template/IMenuAction.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCP\AppFramework\Http\Template;
+
+/**
+ * Interface IMenuAction
+ *
+ * @package OCP\AppFramework\Http\Template
+ * @since 14.0
+ */
+interface IMenuAction {
+
+ /**
+ * @since 14.0.0
+ * @return string
+ */
+ public function getId(): string;
+
+ /**
+ * @since 14.0.0
+ * @return string
+ */
+ public function getLabel(): string;
+
+ /**
+ * @since 14.0.0
+ * @return string
+ */
+ public function getLink(): string;
+
+ /**
+ * @since 14.0.0
+ * @return int
+ */
+ public function getPriority(): int;
+
+ /**
+ * @since 14.0.0
+ * @return string
+ */
+ public function render(): string;
+
+} \ No newline at end of file
diff --git a/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php b/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php
new file mode 100644
index 00000000000..3409d5aae53
--- /dev/null
+++ b/lib/public/AppFramework/Http/Template/PublicTemplateResponse.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCP\AppFramework\Http\Template;
+
+use InvalidArgumentException;
+use OCP\AppFramework\Http\TemplateResponse;
+
+/**
+ * Class PublicTemplateResponse
+ *
+ * @package OCP\AppFramework\Http\Template
+ * @since 14.0.0
+ */
+class PublicTemplateResponse extends TemplateResponse {
+
+ private $headerTitle = '';
+ private $headerDetails = '';
+ private $headerActions = [];
+
+ /**
+ * PublicTemplateResponse constructor.
+ *
+ * @param string $appName
+ * @param string $templateName
+ * @param array $params
+ * @since 14.0.0
+ */
+ public function __construct(string $appName, string $templateName, array $params = array()) {
+ parent::__construct($appName, $templateName, $params, 'public');
+ \OC_Util::addScript('core', 'public/publicpage');
+ }
+
+ /**
+ * @param string $title
+ * @since 14.0.0
+ */
+ public function setHeaderTitle(string $title) {
+ $this->headerTitle = $title;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function getHeaderTitle(): string {
+ return $this->headerTitle;
+ }
+
+ /**
+ * @param string $details
+ * @since 14.0.0
+ */
+ public function setHeaderDetails(string $details) {
+ $this->headerDetails = $details;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function getHeaderDetails(): string {
+ return $this->headerDetails;
+ }
+
+ /**
+ * @param array $actions
+ * @since 14.0.0
+ * @throws InvalidArgumentException
+ */
+ public function setHeaderActions(array $actions) {
+ foreach ($actions as $action) {
+ if ($actions instanceof IMenuAction) {
+ throw new InvalidArgumentException('Actions must be of type IMenuAction');
+ }
+ $this->headerActions[] = $action;
+ }
+ usort($this->headerActions, function(IMenuAction $a, IMenuAction $b) {
+ return $a->getPriority() > $b->getPriority();
+ });
+ }
+
+ /**
+ * @return IMenuAction
+ * @since 14.0.0
+ * @throws \Exception
+ */
+ public function getPrimaryAction(): IMenuAction {
+ if ($this->getActionCount() > 0) {
+ return $this->headerActions[0];
+ }
+ throw new \Exception('No header actions have been set');
+ }
+
+ /**
+ * @return int
+ * @since 14.0.0
+ */
+ public function getActionCount(): int {
+ return count($this->headerActions);
+ }
+
+ /**
+ * @return IMenuAction[]
+ * @since 14.0.0
+ */
+ public function getOtherActions(): array {
+ return array_slice($this->headerActions, 1);
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function render(): string {
+ $params = array_merge($this->getParams(), [
+ 'template' => $this,
+ ]);
+ $this->setParams($params);
+ return parent::render();
+ }
+
+} \ No newline at end of file
diff --git a/lib/public/AppFramework/Http/Template/SimpleMenuAction.php b/lib/public/AppFramework/Http/Template/SimpleMenuAction.php
new file mode 100644
index 00000000000..60bb268661c
--- /dev/null
+++ b/lib/public/AppFramework/Http/Template/SimpleMenuAction.php
@@ -0,0 +1,126 @@
+<?php
+/**
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCP\AppFramework\Http\Template;
+
+use OCP\Util;
+
+/**
+ * Class SimpleMenuAction
+ *
+ * @package OCP\AppFramework\Http\Template
+ * @since 14.0.0
+ */
+class SimpleMenuAction implements IMenuAction {
+
+ /** @var string */
+ private $id;
+
+ /** @var string */
+ private $label;
+
+ /** @var string */
+ private $icon;
+
+ /** @var string */
+ private $link;
+
+ /** @var int */
+ private $priority;
+
+ /** @var string */
+ private $detail;
+
+ /**
+ * SimpleMenuAction constructor.
+ *
+ * @param string $id
+ * @param string $label
+ * @param string $icon
+ * @param string $link
+ * @param int $priority
+ * @param string $detail
+ * @since 14.0.0
+ */
+ public function __construct(string $id, string $label, string $icon, string $link = '', int $priority = 100, string $detail = '') {
+ $this->id = $id;
+ $this->label = $label;
+ $this->icon = $icon;
+ $this->link = $link;
+ $this->priority = $priority;
+ $this->detail = $detail;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function getId(): string {
+ return $this->id;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function getLabel(): string {
+ return $this->label;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function getIcon(): string {
+ return $this->icon;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function getLink(): string {
+ return $this->link;
+ }
+
+ /**
+ * @return int
+ * @since 14.0.0
+ */
+ public function getPriority(): int {
+ return $this->priority;
+ }
+
+ /**
+ * @return string
+ * @since 14.0.0
+ */
+ public function render(): string {
+ $detailContent = ($this->detail !== '') ? '&nbsp;<span class="download-size">(' . Util::sanitizeHTML($this->detail) . ')</span>' : '';
+ return sprintf(
+ '<li id="%s"><a href="%s"><span class="icon %s"></span>%s %s</a></li>',
+ Util::sanitizeHTML($this->id), Util::sanitizeHTML($this->link), Util::sanitizeHTML($this->icon), Util::sanitizeHTML($this->label), $detailContent
+ );
+ }
+
+} \ No newline at end of file
diff --git a/lib/public/AppFramework/Http/TemplateResponse.php b/lib/public/AppFramework/Http/TemplateResponse.php
index ccb0c61bfd4..0e31f780d7a 100644
--- a/lib/public/AppFramework/Http/TemplateResponse.php
+++ b/lib/public/AppFramework/Http/TemplateResponse.php
@@ -154,7 +154,7 @@ class TemplateResponse extends Response {
$template->assign($key, $value);
}
- return $template->fetchPage();
+ return $template->fetchPage($this->params);
}
}
diff --git a/lib/public/ILogger.php b/lib/public/ILogger.php
index 6ee850ee8ae..b6e945546e6 100644
--- a/lib/public/ILogger.php
+++ b/lib/public/ILogger.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -43,7 +44,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function emergency($message, array $context = array());
+ public function emergency(string $message, array $context = []);
/**
* Action must be taken immediately.
@@ -53,7 +54,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function alert($message, array $context = array());
+ public function alert(string $message, array $context = []);
/**
* Critical conditions.
@@ -63,7 +64,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function critical($message, array $context = array());
+ public function critical(string $message, array $context = []);
/**
* Runtime errors that do not require immediate action but should typically
@@ -74,7 +75,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function error($message, array $context = array());
+ public function error(string $message, array $context = []);
/**
* Exceptional occurrences that are not errors.
@@ -84,7 +85,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function warning($message, array $context = array());
+ public function warning(string $message, array $context = []);
/**
* Normal but significant events.
@@ -94,7 +95,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function notice($message, array $context = array());
+ public function notice(string $message, array $context = []);
/**
* Interesting events.
@@ -104,7 +105,7 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function info($message, array $context = array());
+ public function info(string $message, array $context = []);
/**
* Detailed debug information.
@@ -114,18 +115,18 @@ interface ILogger {
* @return null
* @since 7.0.0
*/
- public function debug($message, array $context = array());
+ public function debug(string $message, array $context = []);
/**
* Logs with an arbitrary level.
*
- * @param mixed $level
+ * @param int $level
* @param string $message
* @param array $context
* @return mixed
* @since 7.0.0
*/
- public function log($level, $message, array $context = array());
+ public function log(int $level, string $message, array $context = []);
/**
* Logs an exception very detailed
@@ -143,5 +144,5 @@ interface ILogger {
* @return void
* @since 8.2.0
*/
- public function logException($exception, array $context = array());
+ public function logException(\Throwable $exception, array $context = []);
}
diff --git a/lib/public/IRequest.php b/lib/public/IRequest.php
index b3130207111..05948cd480f 100644
--- a/lib/public/IRequest.php
+++ b/lib/public/IRequest.php
@@ -91,6 +91,16 @@ interface IRequest {
const USER_AGENT_TALK_IOS = '/^Mozilla\/5\.0 \(iOS\) Nextcloud\-Talk v.*$/';
/**
+ * @since 13.0.1
+ */
+ const USER_AGENT_OUTLOOK_ADDON = '/^Mozilla\/5\.0 \([A-Za-z ]+\) Nextcloud\-Outlook v.*$/';
+
+ /**
+ * @since 13.0.1
+ */
+ const USER_AGENT_THUNDERBIRD_ADDON = '/^Mozilla\/5\.0 \([A-Za-z ]+\) Nextcloud\-Thunderbird v.*$/';
+
+ /**
* @param string $name
*
* @return string
diff --git a/lib/public/ISession.php b/lib/public/ISession.php
index 2d234976862..411356b8dcc 100644
--- a/lib/public/ISession.php
+++ b/lib/public/ISession.php
@@ -1,4 +1,5 @@
<?php
+declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@@ -34,6 +35,8 @@
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP;
+use OCP\Session\Exceptions\SessionNotAvailableException;
+
/**
* Interface ISession
*
@@ -49,7 +52,7 @@ interface ISession {
* @param mixed $value
* @since 6.0.0
*/
- public function set($key, $value);
+ public function set(string $key, $value);
/**
* Get a value from the session
@@ -58,7 +61,7 @@ interface ISession {
* @return mixed should return null if $key does not exist
* @since 6.0.0
*/
- public function get($key);
+ public function get(string $key);
/**
* Check if a named key exists in the session
@@ -67,7 +70,7 @@ interface ISession {
* @return bool
* @since 6.0.0
*/
- public function exists($key);
+ public function exists(string $key): bool;
/**
* Remove a $key/$value pair from the session
@@ -75,7 +78,7 @@ interface ISession {
* @param string $key
* @since 6.0.0
*/
- public function remove($key);
+ public function remove(string $key);
/**
* Reset and recreate the session
@@ -96,7 +99,7 @@ interface ISession {
* @return void
* @since 9.0.0
*/
- public function regenerateId($deleteOldSession = true);
+ public function regenerateId(bool $deleteOldSession = true);
/**
* Wrapper around session_id
@@ -105,5 +108,5 @@ interface ISession {
* @throws SessionNotAvailableException
* @since 9.1.0
*/
- public function getId();
+ public function getId(): string;
}
diff --git a/settings/css/settings.scss b/settings/css/settings.scss
index ec7dbd84780..18bc4efa783 100644
--- a/settings/css/settings.scss
+++ b/settings/css/settings.scss
@@ -1055,6 +1055,13 @@ table.grid td.date {
.double-indent {
padding-left: 56px;
}
+ .nocheckbox {
+ padding-left: 20px;
+ }
+}
+
+#shareApiDefaultPermissionsSection label {
+ margin-right: 20px;
}
#fileSharingSettings h3 {
@@ -1130,14 +1137,14 @@ table.grid td.date {
span {
&.success {
- background: #37ce02;
+ background-color: $color-success;
border-radius: $border-radius;
}
&.error {
- background: #ce3702;
+ background-color: $color-error;
}
&.indeterminate {
- background: #e6db00;
+ background-color: $color-warning;
border-radius: 40% 0;
}
}
diff --git a/settings/js/admin.js b/settings/js/admin.js
index 177f6d3f7f4..f637cb64592 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -121,6 +121,28 @@ $(document).ready(function(){
}
});
+ $('#shareApiDefaultPermissionsSection input').change(function(ev) {
+ var $el = $('#shareApiDefaultPermissions');
+ var $target = $(ev.target);
+
+ var value = $el.val();
+ if ($target.is(':checked')) {
+ value = value | $target.val();
+ } else {
+ value = value & ~$target.val();
+ }
+
+ // always set read permission
+ value |= OC.PERMISSION_READ;
+
+ // this will trigger the field's change event and will save it
+ $el.val(value).change();
+
+ ev.preventDefault();
+
+ return false;
+ });
+
var savePublicShareDisclaimerText = _.debounce(function(value) {
var options = {
success: function() {
diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js
index 8501e458dc6..46c51513a76 100644
--- a/settings/l10n/cs.js
+++ b/settings/l10n/cs.js
@@ -37,9 +37,9 @@ OC.L10N.register(
"Well done, %s!" : "Dobře, %s.",
"If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.",
"Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)",
- "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.",
- "Invalid mail address" : "Neplatná emailová adresa",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)",
+ "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
+ "Invalid mail address" : "Neplatná e-mailová adresa",
"No valid group selected" : "Není vybrána platná skupina",
"A user with that name already exists." : "Uživatel tohoto jména již existuje.",
"To send a password link to the user an email address is required." : "Pro zaslání odkazu na heslo uživateli je nutná e-mailová adresa.",
@@ -55,8 +55,8 @@ OC.L10N.register(
"Your full name has been changed." : "Vaše celé jméno bylo změněno.",
"Forbidden" : "Zakázáno",
"Invalid user" : "Neplatný uživatel",
- "Unable to change mail address" : "Nelze změnit emailovou adresu",
- "Email saved" : "Email uložen",
+ "Unable to change mail address" : "Nelze změnit e-mailovou adresu",
+ "Email saved" : "E-mail uložen",
"%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.",
"Your password on %s was changed." : "Vaše heslo na %s bylo změněno.",
"Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.",
@@ -86,7 +86,7 @@ OC.L10N.register(
"Migration started …" : "Migrace spuštěna ...",
"Not saved" : "Neuloženo",
"Sending…" : "Odesílání…",
- "Email sent" : "Email odeslán",
+ "Email sent" : "E-mail odeslán",
"Official" : "Oficiální",
"All" : "Vše",
"Update to %s" : "Aktualizovat na %s",
@@ -177,12 +177,12 @@ OC.L10N.register(
"no group" : "není ve skupině",
"Password successfully changed" : "Heslo úspěšně změněno",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Změna hesla bude mít za následek ztrátu dat, protože jejich obnova není pro tohoto uživatele dostupná.",
- "Could not change the users email" : "Nelze změnit email uživatele",
+ "Could not change the users email" : "Nelze změnit e-mail uživatele",
"Error while changing status of {user}" : "Chyba při změně stavu {user}",
"A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
"Error creating user: {message}" : "Chyba vytvoření uživatele: {message}",
"A valid password must be provided" : "Musíte zadat platné heslo",
- "A valid email must be provided" : "Musíte zadat platný email",
+ "A valid email must be provided" : "Musíte zadat platný e-mail",
"Developer documentation" : "Vývojářská dokumentace",
"View in store" : "Zobrazit v obchodě",
"Limit to groups" : "Omezit na skupiny",
@@ -217,13 +217,13 @@ OC.L10N.register(
"NT LAN Manager" : "Správce NT LAN",
"SSL/TLS" : "SSL/TLS",
"STARTTLS" : "STARTTLS",
- "Email server" : "Emailový server",
+ "Email server" : "E-mailový server",
"Open documentation" : "Otevřít dokumentaci",
"It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je důležité tento server nastavit, aby mohly být odesílány e-maily, jako jsou např. resety hesla a upozornění.",
"Send mode" : "Mód odesílání",
"Encryption" : "Šifrování",
"From address" : "Adresa odesílatele",
- "mail" : "email",
+ "mail" : "e-mail",
"Authentication method" : "Metoda ověření",
"Authentication required" : "Vyžadováno ověření",
"Server address" : "Adresa serveru",
@@ -232,8 +232,8 @@ OC.L10N.register(
"SMTP Username" : "SMTP uživatelské jméno ",
"SMTP Password" : "SMTP heslo",
"Store credentials" : "Ukládat přihlašovací údaje",
- "Test email settings" : "Test nastavení emailu",
- "Send email" : "Odeslat email",
+ "Test email settings" : "Test nastavení e-mailu",
+ "Send email" : "Odeslat e-mail",
"Server-side encryption" : "Šifrování na serveru",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifrování na straně serveru umožňuje zašifrovat soubory, které jsou na tento server nahrávány. To přináší omezení jako třeba výkonnostní omezení, takže to povolte jen pokud je třeba.",
"Enable server-side encryption" : "Povolit šifrování na straně serveru",
@@ -322,9 +322,9 @@ OC.L10N.register(
"Choose as profile picture" : "Vybrat jako profilový obrázek",
"Full name" : "Celé jméno",
"No display name set" : "Jméno pro zobrazení nenastaveno",
- "Email" : "Email",
- "Your email address" : "Vaše emailová adresa",
- "No email address set" : "Emailová adresa není nastavena",
+ "Email" : "E-mail",
+ "Your email address" : "Vaše e-mailová adresa",
+ "No email address set" : "E-mailová adresa není nastavena",
"For password reset and notifications" : "Pro obnovení hesla a upozornění",
"Phone number" : "Telefonní číslo",
"Your phone number" : "Vlastní telefonní číslo",
@@ -361,10 +361,10 @@ OC.L10N.register(
"Show storage location" : "Cesta k datům",
"Show user backend" : "Zobrazit vedení uživatelů",
"Show last login" : "Zobrazit poslední přihlášení",
- "Show email address" : "Zobrazit emailové adresy",
- "Send email to new user" : "Poslat email novému uživateli",
+ "Show email address" : "Zobrazit e-mailové adresy",
+ "Send email to new user" : "Poslat e-mail novému uživateli",
"When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Pokud je heslo nového uživatele prázdné, je mu odeslán aktivační e-mail s odkazem, kde si ho může nastavit.",
- "E-Mail" : "Email",
+ "E-Mail" : "E-mail",
"Create" : "Vytvořit",
"Admin Recovery Password" : "Heslo obnovy správce",
"Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla",
@@ -382,7 +382,7 @@ OC.L10N.register(
"Last login" : "Poslední přihlášení",
"change full name" : "změnit celé jméno",
"set new password" : "nastavit nové heslo",
- "change email address" : "změnit emailovou adresu",
+ "change email address" : "změnit e-mailovou adresu",
"Default" : "Výchozí"
},
"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;");
diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json
index 39b7fb7461a..ebd84be2e37 100644
--- a/settings/l10n/cs.json
+++ b/settings/l10n/cs.json
@@ -35,9 +35,9 @@
"Well done, %s!" : "Dobře, %s.",
"If you received this email, the email configuration seems to be correct." : "Pokud jste obdržel(a) tento e-mail, nastavení e-mailů bude asi správné.",
"Email could not be sent. Check your mail server log" : "E-mail se nepodařilo odeslat. Zkontrolujte protokol vašeho e-mailového serveru.",
- "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání emailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)",
- "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních emailů musíte nejprve nastavit svou emailovou adresu.",
- "Invalid mail address" : "Neplatná emailová adresa",
+ "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Při odesílání e-mailu nastala chyba. Překontrolujte prosím svá nastavení. (Error: %s)",
+ "You need to set your user email before being able to send test emails." : "Pro možnost odeslání zkušebních e-mailů musíte nejprve nastavit svou e-mailovou adresu.",
+ "Invalid mail address" : "Neplatná e-mailová adresa",
"No valid group selected" : "Není vybrána platná skupina",
"A user with that name already exists." : "Uživatel tohoto jména již existuje.",
"To send a password link to the user an email address is required." : "Pro zaslání odkazu na heslo uživateli je nutná e-mailová adresa.",
@@ -53,8 +53,8 @@
"Your full name has been changed." : "Vaše celé jméno bylo změněno.",
"Forbidden" : "Zakázáno",
"Invalid user" : "Neplatný uživatel",
- "Unable to change mail address" : "Nelze změnit emailovou adresu",
- "Email saved" : "Email uložen",
+ "Unable to change mail address" : "Nelze změnit e-mailovou adresu",
+ "Email saved" : "E-mail uložen",
"%1$s changed your password on %2$s." : "%1$s změnil(a) vaše heslo na %2$s.",
"Your password on %s was changed." : "Vaše heslo na %s bylo změněno.",
"Your password on %s was reset by an administrator." : "Vaše heslo na %s bylo resetováno administrátorem.",
@@ -84,7 +84,7 @@
"Migration started …" : "Migrace spuštěna ...",
"Not saved" : "Neuloženo",
"Sending…" : "Odesílání…",
- "Email sent" : "Email odeslán",
+ "Email sent" : "E-mail odeslán",
"Official" : "Oficiální",
"All" : "Vše",
"Update to %s" : "Aktualizovat na %s",
@@ -175,12 +175,12 @@
"no group" : "není ve skupině",
"Password successfully changed" : "Heslo úspěšně změněno",
"Changing the password will result in data loss, because data recovery is not available for this user" : "Změna hesla bude mít za následek ztrátu dat, protože jejich obnova není pro tohoto uživatele dostupná.",
- "Could not change the users email" : "Nelze změnit email uživatele",
+ "Could not change the users email" : "Nelze změnit e-mail uživatele",
"Error while changing status of {user}" : "Chyba při změně stavu {user}",
"A valid username must be provided" : "Musíte zadat platné uživatelské jméno",
"Error creating user: {message}" : "Chyba vytvoření uživatele: {message}",
"A valid password must be provided" : "Musíte zadat platné heslo",
- "A valid email must be provided" : "Musíte zadat platný email",
+ "A valid email must be provided" : "Musíte zadat platný e-mail",
"Developer documentation" : "Vývojářská dokumentace",
"View in store" : "Zobrazit v obchodě",
"Limit to groups" : "Omezit na skupiny",
@@ -215,13 +215,13 @@
"NT LAN Manager" : "Správce NT LAN",
"SSL/TLS" : "SSL/TLS",
"STARTTLS" : "STARTTLS",
- "Email server" : "Emailový server",
+ "Email server" : "E-mailový server",
"Open documentation" : "Otevřít dokumentaci",
"It is important to set up this server to be able to send emails, like for password reset and notifications." : "Je důležité tento server nastavit, aby mohly být odesílány e-maily, jako jsou např. resety hesla a upozornění.",
"Send mode" : "Mód odesílání",
"Encryption" : "Šifrování",
"From address" : "Adresa odesílatele",
- "mail" : "email",
+ "mail" : "e-mail",
"Authentication method" : "Metoda ověření",
"Authentication required" : "Vyžadováno ověření",
"Server address" : "Adresa serveru",
@@ -230,8 +230,8 @@
"SMTP Username" : "SMTP uživatelské jméno ",
"SMTP Password" : "SMTP heslo",
"Store credentials" : "Ukládat přihlašovací údaje",
- "Test email settings" : "Test nastavení emailu",
- "Send email" : "Odeslat email",
+ "Test email settings" : "Test nastavení e-mailu",
+ "Send email" : "Odeslat e-mail",
"Server-side encryption" : "Šifrování na serveru",
"Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Šifrování na straně serveru umožňuje zašifrovat soubory, které jsou na tento server nahrávány. To přináší omezení jako třeba výkonnostní omezení, takže to povolte jen pokud je třeba.",
"Enable server-side encryption" : "Povolit šifrování na straně serveru",
@@ -320,9 +320,9 @@
"Choose as profile picture" : "Vybrat jako profilový obrázek",
"Full name" : "Celé jméno",
"No display name set" : "Jméno pro zobrazení nenastaveno",
- "Email" : "Email",
- "Your email address" : "Vaše emailová adresa",
- "No email address set" : "Emailová adresa není nastavena",
+ "Email" : "E-mail",
+ "Your email address" : "Vaše e-mailová adresa",
+ "No email address set" : "E-mailová adresa není nastavena",
"For password reset and notifications" : "Pro obnovení hesla a upozornění",
"Phone number" : "Telefonní číslo",
"Your phone number" : "Vlastní telefonní číslo",
@@ -359,10 +359,10 @@
"Show storage location" : "Cesta k datům",
"Show user backend" : "Zobrazit vedení uživatelů",
"Show last login" : "Zobrazit poslední přihlášení",
- "Show email address" : "Zobrazit emailové adresy",
- "Send email to new user" : "Poslat email novému uživateli",
+ "Show email address" : "Zobrazit e-mailové adresy",
+ "Send email to new user" : "Poslat e-mail novému uživateli",
"When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Pokud je heslo nového uživatele prázdné, je mu odeslán aktivační e-mail s odkazem, kde si ho může nastavit.",
- "E-Mail" : "Email",
+ "E-Mail" : "E-mail",
"Create" : "Vytvořit",
"Admin Recovery Password" : "Heslo obnovy správce",
"Enter the recovery password in order to recover the users files during password change" : "Zadejte heslo obnovy pro obnovení souborů uživatele při změně hesla",
@@ -380,7 +380,7 @@
"Last login" : "Poslední přihlášení",
"change full name" : "změnit celé jméno",
"set new password" : "nastavit nové heslo",
- "change email address" : "změnit emailovou adresu",
+ "change email address" : "změnit e-mailovou adresu",
"Default" : "Výchozí"
},"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;"
} \ No newline at end of file
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 88e9ac3b63a..0c18760a2a0 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Setze Dein Kennwort",
"Go to %s" : "Gehe zu %s",
"Install Client" : "Installiere den Client",
+ "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Password confirmation is required" : "Passwortbestätigung erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index d57fc88815e..20ad81f2c17 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -75,6 +75,7 @@
"Set your password" : "Setze Dein Kennwort",
"Go to %s" : "Gehe zu %s",
"Install Client" : "Installiere den Client",
+ "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Password confirmation is required" : "Passwortbestätigung erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 00b99873e25..447e5d92846 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Setzen Sie Ihr Passwort",
"Go to %s" : "Gehe zu %s",
"Install Client" : "Installiere den Client",
+ "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Password confirmation is required" : "Passwortbestätigung erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 0435e13404f..0cab0bff351 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -75,6 +75,7 @@
"Set your password" : "Setzen Sie Ihr Passwort",
"Go to %s" : "Gehe zu %s",
"Install Client" : "Installiere den Client",
+ "Logged in user must be a subadmin" : "Der angemeldete Benutzer muss ein Administrator sein",
"Password confirmation is required" : "Passwortbestätigung erforderlich",
"Couldn't remove app." : "Die App konnte nicht entfernt werden.",
"Couldn't update app." : "Die App konnte nicht aktualisiert werden.",
diff --git a/settings/l10n/en_GB.js b/settings/l10n/en_GB.js
index bb40366ef9b..b25f78b4df6 100644
--- a/settings/l10n/en_GB.js
+++ b/settings/l10n/en_GB.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Set your password",
"Go to %s" : "Go to %s",
"Install Client" : "Install Client",
+ "Logged in user must be a subadmin" : "Logged in user must be a subadmin",
"Password confirmation is required" : "Password confirmation is required",
"Couldn't remove app." : "Couldn't remove app.",
"Couldn't update app." : "Couldn't update app.",
diff --git a/settings/l10n/en_GB.json b/settings/l10n/en_GB.json
index 8a449d5470d..f119f6221b5 100644
--- a/settings/l10n/en_GB.json
+++ b/settings/l10n/en_GB.json
@@ -75,6 +75,7 @@
"Set your password" : "Set your password",
"Go to %s" : "Go to %s",
"Install Client" : "Install Client",
+ "Logged in user must be a subadmin" : "Logged in user must be a subadmin",
"Password confirmation is required" : "Password confirmation is required",
"Couldn't remove app." : "Couldn't remove app.",
"Couldn't update app." : "Couldn't update app.",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index a86b15517fc..d17b2d7f256 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Establezca su contraseña",
"Go to %s" : "Vaya a %s",
"Install Client" : "Instalar cliente",
+ "Logged in user must be a subadmin" : "El usuario registrado debe ser un subadministrador",
"Password confirmation is required" : "Se requiere confirmar la contraseña",
"Couldn't remove app." : "No se ha podido eliminar la aplicación.",
"Couldn't update app." : "No se ha podido actualizar la aplicación.",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index d8d754f0418..21c660c656b 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -75,6 +75,7 @@
"Set your password" : "Establezca su contraseña",
"Go to %s" : "Vaya a %s",
"Install Client" : "Instalar cliente",
+ "Logged in user must be a subadmin" : "El usuario registrado debe ser un subadministrador",
"Password confirmation is required" : "Se requiere confirmar la contraseña",
"Couldn't remove app." : "No se ha podido eliminar la aplicación.",
"Couldn't update app." : "No se ha podido actualizar la aplicación.",
diff --git a/settings/l10n/es_MX.js b/settings/l10n/es_MX.js
index 442153bd0a3..49894f21f26 100644
--- a/settings/l10n/es_MX.js
+++ b/settings/l10n/es_MX.js
@@ -384,11 +384,21 @@ OC.L10N.register(
"set new password" : "establecer nueva contraseña",
"change email address" : "cambiar la dirección de correo electrónico",
"Default" : "Predeterminado",
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n actualización de la aplicación pendiente ","Tienes %n actualizaciones de la aplicación pendientes "],
+ "Updating...." : "Actualizando...",
+ "Error while updating app" : "Se presentó un error al actualizar la aplicación ",
+ "Error while removing app" : "Se presentó un error al remover la aplicación ",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "Verifying" : "Verificando",
+ "Personal info" : "Información personal",
+ "Sync clients" : "Síncronizar clientes",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de tu instancia que todo esté configurado correctamente. Para ayudarte con estamos haciendo algunas verificaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información.",
"Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos",
"Desktop client" : "Cliente de escritorio",
"Android app" : "Aplicación Android",
"iOS app" : "Aplicación iOS",
"Follow us on Google+!" : "¡Síguenos en Google+!",
+ "Like our facebook page!" : "¡Da un me gusta en nuestra página de facebook!",
"Follow us on Twitter!" : "¡Síguenos en Twitter!",
"Check out our blog!" : "¡Visita nuestro blog!",
"Subscribe to our newsletter!" : "¡Suscribete a nuestro newsletter!",
diff --git a/settings/l10n/es_MX.json b/settings/l10n/es_MX.json
index a2c3220f805..8a20ad523fe 100644
--- a/settings/l10n/es_MX.json
+++ b/settings/l10n/es_MX.json
@@ -382,11 +382,21 @@
"set new password" : "establecer nueva contraseña",
"change email address" : "cambiar la dirección de correo electrónico",
"Default" : "Predeterminado",
+ "_You have %n app update pending_::_You have %n app updates pending_" : ["Tienes %n actualización de la aplicación pendiente ","Tienes %n actualizaciones de la aplicación pendientes "],
+ "Updating...." : "Actualizando...",
+ "Error while updating app" : "Se presentó un error al actualizar la aplicación ",
+ "Error while removing app" : "Se presentó un error al remover la aplicación ",
+ "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación ha sido habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ",
+ "Verifying" : "Verificando",
+ "Personal info" : "Información personal",
+ "Sync clients" : "Síncronizar clientes",
+ "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de tu instancia que todo esté configurado correctamente. Para ayudarte con estamos haciendo algunas verificaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información.",
"Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos",
"Desktop client" : "Cliente de escritorio",
"Android app" : "Aplicación Android",
"iOS app" : "Aplicación iOS",
"Follow us on Google+!" : "¡Síguenos en Google+!",
+ "Like our facebook page!" : "¡Da un me gusta en nuestra página de facebook!",
"Follow us on Twitter!" : "¡Síguenos en Twitter!",
"Check out our blog!" : "¡Visita nuestro blog!",
"Subscribe to our newsletter!" : "¡Suscribete a nuestro newsletter!",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index de5ea054189..b1d7ec43bc4 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Saisissez votre mot de passe",
"Go to %s" : "Aller à %s",
"Install Client" : "Installer le Client",
+ "Logged in user must be a subadmin" : "L'utilisateur connecté doit être un sous-admin",
"Password confirmation is required" : "Confirmation par mot de passe est requise",
"Couldn't remove app." : "Impossible de supprimer l'application.",
"Couldn't update app." : "Impossible de mettre à jour l'application",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 1b773a36c4a..73504852cfa 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -75,6 +75,7 @@
"Set your password" : "Saisissez votre mot de passe",
"Go to %s" : "Aller à %s",
"Install Client" : "Installer le Client",
+ "Logged in user must be a subadmin" : "L'utilisateur connecté doit être un sous-admin",
"Password confirmation is required" : "Confirmation par mot de passe est requise",
"Couldn't remove app." : "Impossible de supprimer l'application.",
"Couldn't update app." : "Impossible de mettre à jour l'application",
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index 3023b42b3b2..0e25b2c4b01 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Imposta la tua password",
"Go to %s" : "Vai a %s",
"Install Client" : "Installa client",
+ "Logged in user must be a subadmin" : "L'utente che ha eseguito l'accesso deve essere un sotto-amministratore ",
"Password confirmation is required" : "La conferma della password è richiesta",
"Couldn't remove app." : "Impossibile rimuovere l'applicazione.",
"Couldn't update app." : "Impossibile aggiornate l'applicazione.",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 2969ee8e3fc..326b94511f0 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -75,6 +75,7 @@
"Set your password" : "Imposta la tua password",
"Go to %s" : "Vai a %s",
"Install Client" : "Installa client",
+ "Logged in user must be a subadmin" : "L'utente che ha eseguito l'accesso deve essere un sotto-amministratore ",
"Password confirmation is required" : "La conferma della password è richiesta",
"Couldn't remove app." : "Impossibile rimuovere l'applicazione.",
"Couldn't update app." : "Impossibile aggiornate l'applicazione.",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index b10cf461558..658823e6189 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Set your password" : "Defina sua senha",
"Go to %s" : "Ir para 1 %s",
"Install Client" : "Instalar Cliente",
+ "Logged in user must be a subadmin" : "O usuário conectado deve ser um subadministrador",
"Password confirmation is required" : "A confirmação da senha é necessária",
"Couldn't remove app." : "Não foi possível excluir aplicativos.",
"Couldn't update app." : "Não foi possível atualizar o aplicativo",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 48c3c77f0e8..54f544e4cff 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -75,6 +75,7 @@
"Set your password" : "Defina sua senha",
"Go to %s" : "Ir para 1 %s",
"Install Client" : "Instalar Cliente",
+ "Logged in user must be a subadmin" : "O usuário conectado deve ser um subadministrador",
"Password confirmation is required" : "A confirmação da senha é necessária",
"Couldn't remove app." : "Não foi possível excluir aplicativos.",
"Couldn't update app." : "Não foi possível atualizar o aplicativo",
diff --git a/settings/templates/settings/admin/sharing.php b/settings/templates/settings/admin/sharing.php
index 156e8ddd81d..5913524be40 100644
--- a/settings/templates/settings/admin/sharing.php
+++ b/settings/templates/settings/admin/sharing.php
@@ -106,4 +106,15 @@
<br/>
<textarea placeholder="<?php p($l->t('This text will be shown on the public link upload page when the file list is hidden.')) ?>" id="publicShareDisclaimerText" <?php if ($_['publicShareDisclaimerText'] === null) { print_unescaped('class="hidden"'); } ?>><?php p($_['publicShareDisclaimerText']) ?></textarea>
</p>
+
+ <h3><?php p($l->t('Default share permissions'));?></h3>
+ <input type="hidden" name="shareapi_default_permissions" id="shareApiDefaultPermissions" class="checkbox"
+ value="<?php p($_['shareApiDefaultPermissions']) ?>" />
+ <p id="shareApiDefaultPermissionsSection" class="indent <?php if ($_['shareAPIEnabled'] === 'no') p('hidden'); ?>">
+ <?php foreach ($_['shareApiDefaultPermissionsCheckboxes'] as $perm): ?>
+ <input type="checkbox" name="shareapi_default_permission_<?php p($perm['id']) ?>" id="shareapi_default_permission_<?php p($perm['id']) ?>"
+ class="noautosave checkbox" value="<?php p($perm['value']) ?>" <?php if (($_['shareApiDefaultPermissions'] & $perm['value']) !== 0) print_unescaped('checked="checked"'); ?> />
+ <label for="shareapi_default_permission_<?php p($perm['id']) ?>"><?php p($perm['label']);?></label>
+ <?php endforeach ?>
+ </p>
</div>
diff --git a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php
index f3386b46db9..5c5d23887cd 100644
--- a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php
+++ b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php
@@ -55,7 +55,7 @@ class FilesSharingAppContext implements Context, ActorAwareInterface {
* @return Locator
*/
public static function shareMenuButton() {
- return Locator::forThe()->id("share-menutoggle")->
+ return Locator::forThe()->id("header-actions-toggle")->
describedAs("Share menu button in Shared file page");
}
diff --git a/tests/lib/AppFramework/Http/PublicTemplateResponseTest.php b/tests/lib/AppFramework/Http/PublicTemplateResponseTest.php
new file mode 100644
index 00000000000..8aaaec0733c
--- /dev/null
+++ b/tests/lib/AppFramework/Http/PublicTemplateResponseTest.php
@@ -0,0 +1,84 @@
+<?php
+
+/**
+ * @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
+ *
+ * @author Julius Härtl <jus@bitgrid.net>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+namespace Test\AppFramework\Http;
+
+use OCP\AppFramework\Http\Template\PublicTemplateResponse;
+use OCP\AppFramework\Http;
+use Test\TestCase;
+
+class PublicTemplateResponseTest extends TestCase {
+
+ public function testSetParamsConstructor() {
+ $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']);
+ $this->assertContains('core/js/public/publicpage', \OC_Util::$scripts);
+ $this->assertEquals(['key' => 'value'], $template->getParams());
+ }
+
+ public function testAdditionalElements() {
+ $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']);
+ $template->setHeaderTitle('Header');
+ $template->setHeaderDetails('Details');
+ $this->assertEquals(['key' => 'value'], $template->getParams());
+ $this->assertEquals('Header', $template->getHeaderTitle());
+ $this->assertEquals('Details', $template->getHeaderDetails());
+ }
+
+ public function testActionSingle() {
+ $actions = [
+ new Http\Template\SimpleMenuAction('link', 'Download', 'download', 'downloadLink', 0)
+ ];
+ $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']);
+ $template->setHeaderActions($actions);
+ $this->assertEquals(['key' => 'value'], $template->getParams());
+ $this->assertEquals($actions[0], $template->getPrimaryAction());
+ $this->assertEquals(1, $template->getActionCount());
+ $this->assertEquals([], $template->getOtherActions());
+ }
+
+
+ public function testActionMultiple() {
+ $actions = [
+ new Http\Template\SimpleMenuAction('link1', 'Download1', 'download1', 'downloadLink1', 100),
+ new Http\Template\SimpleMenuAction('link2', 'Download2', 'download2', 'downloadLink2', 20),
+ new Http\Template\SimpleMenuAction('link3', 'Download3', 'download3', 'downloadLink3', 0)
+ ];
+ $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']);
+ $template->setHeaderActions($actions);
+ $this->assertEquals(['key' => 'value'], $template->getParams());
+ $this->assertEquals($actions[2], $template->getPrimaryAction());
+ $this->assertEquals(3, $template->getActionCount());
+ $this->assertEquals([$actions[1], $actions[0]], $template->getOtherActions());
+ }
+
+
+ public function testGetRenderAs() {
+ $template = new PublicTemplateResponse('app', 'home', ['key' => 'value']);
+ $this->assertContains('core/js/public/publicpage', \OC_Util::$scripts);
+ $this->assertEquals(['key' => 'value'], $template->getParams());
+ $this->assertEquals('public', $template->getRenderAs());
+ }
+
+}
diff --git a/tests/lib/Settings/Admin/SharingTest.php b/tests/lib/Settings/Admin/SharingTest.php
index 9498a1466d3..79065fb8d21 100644
--- a/tests/lib/Settings/Admin/SharingTest.php
+++ b/tests/lib/Settings/Admin/SharingTest.php
@@ -25,7 +25,9 @@ namespace Test\Settings\Admin;
use OC\Settings\Admin\Sharing;
use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Constants;
use OCP\IConfig;
+use OCP\IL10N;
use Test\TestCase;
class SharingTest extends TestCase {
@@ -33,13 +35,17 @@ class SharingTest extends TestCase {
private $admin;
/** @var IConfig */
private $config;
+ /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
+ private $l10n;
public function setUp() {
parent::setUp();
$this->config = $this->getMockBuilder(IConfig::class)->getMock();
+ $this->l10n = $this->getMockBuilder(IL10N::class)->getMock();
$this->admin = new Sharing(
- $this->config
+ $this->config,
+ $this->l10n
);
}
@@ -109,6 +115,11 @@ class SharingTest extends TestCase {
->method('getAppValue')
->with('core', 'shareapi_enable_link_password_by_default', 'no')
->willReturn('yes');
+ $this->config
+ ->expects($this->at(13))
+ ->method('getAppValue')
+ ->with('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL)
+ ->willReturn(Constants::PERMISSION_ALL);
$expected = new TemplateResponse(
'settings',
@@ -128,7 +139,9 @@ class SharingTest extends TestCase {
'shareExcludeGroups' => false,
'shareExcludedGroupsList' => '',
'publicShareDisclaimerText' => 'Lorem ipsum',
- 'enableLinkPasswordByDefault' => 'yes'
+ 'enableLinkPasswordByDefault' => 'yes',
+ 'shareApiDefaultPermissions' => Constants::PERMISSION_ALL,
+ 'shareApiDefaultPermissionsCheckboxes' => $this->invokePrivate($this->admin, 'getSharePermissionList', [])
],
''
);
@@ -202,6 +215,12 @@ class SharingTest extends TestCase {
->method('getAppValue')
->with('core', 'shareapi_enable_link_password_by_default', 'no')
->willReturn('yes');
+ $this->config
+ ->expects($this->at(13))
+ ->method('getAppValue')
+ ->with('core', 'shareapi_default_permissions', Constants::PERMISSION_ALL)
+ ->willReturn(Constants::PERMISSION_ALL);
+
$expected = new TemplateResponse(
'settings',
@@ -221,7 +240,9 @@ class SharingTest extends TestCase {
'shareExcludeGroups' => true,
'shareExcludedGroupsList' => 'NoSharers|OtherNoSharers',
'publicShareDisclaimerText' => 'Lorem ipsum',
- 'enableLinkPasswordByDefault' => 'yes'
+ 'enableLinkPasswordByDefault' => 'yes',
+ 'shareApiDefaultPermissions' => Constants::PERMISSION_ALL,
+ 'shareApiDefaultPermissionsCheckboxes' => $this->invokePrivate($this->admin, 'getSharePermissionList', [])
],
''
);
diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php
index 577abc7915c..b218a347e85 100644
--- a/tests/lib/Settings/ManagerTest.php
+++ b/tests/lib/Settings/ManagerTest.php
@@ -209,7 +209,7 @@ class ManagerTest extends TestCase {
public function testGetAdminSettings() {
$this->assertEquals([
- 0 => [new Sharing($this->config)],
+ 0 => [new Sharing($this->config, $this->l10n)],
], $this->manager->getAdminSettings('sharing'));
}
diff --git a/tests/lib/TempManagerTest.php b/tests/lib/TempManagerTest.php
index 23d171180fd..c9e069d9d0d 100644
--- a/tests/lib/TempManagerTest.php
+++ b/tests/lib/TempManagerTest.php
@@ -17,7 +17,7 @@ class NullLogger extends Log {
//disable original constructor
}
- public function log($level, $message, array $context = array()) {
+ public function log(int $level, string $message, array $context = array()) {
//noop
}
}