summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/css/files.css11
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/l10n/oc.js1
-rw-r--r--apps/files/l10n/oc.json1
-rw-r--r--apps/files/templates/list.php2
-rw-r--r--apps/files_external/l10n/et_EE.js10
-rw-r--r--apps/files_external/l10n/et_EE.json10
-rw-r--r--apps/files_external/l10n/pt_PT.js2
-rw-r--r--apps/files_external/l10n/pt_PT.json2
-rw-r--r--apps/files_sharing/ajax/publicpreview.php4
-rw-r--r--apps/files_sharing/css/public.css10
-rw-r--r--apps/files_sharing/js/public.js12
-rw-r--r--apps/files_sharing/l10n/et_EE.js2
-rw-r--r--apps/files_sharing/l10n/et_EE.json2
-rw-r--r--apps/files_sharing/l10n/oc.js1
-rw-r--r--apps/files_sharing/l10n/oc.json1
-rw-r--r--apps/files_sharing/templates/public.php2
-rw-r--r--apps/files_trashbin/js/filelist.js4
-rw-r--r--apps/files_trashbin/lib/trashbin.php2
-rw-r--r--apps/user_ldap/l10n/oc.js168
-rw-r--r--apps/user_ldap/l10n/oc.json168
-rw-r--r--apps/user_ldap/l10n/pt_PT.js6
-rw-r--r--apps/user_ldap/l10n/pt_PT.json6
-rw-r--r--config/config.sample.php53
-rw-r--r--core/ajax/preview.php6
-rw-r--r--core/css/fixes.css4
-rw-r--r--core/css/styles.css1
-rw-r--r--core/l10n/cs_CZ.js1
-rw-r--r--core/l10n/cs_CZ.json1
-rw-r--r--core/l10n/da.js2
-rw-r--r--core/l10n/da.json2
-rw-r--r--core/l10n/fi_FI.js2
-rw-r--r--core/l10n/fi_FI.json2
-rw-r--r--core/l10n/hu_HU.js6
-rw-r--r--core/l10n/hu_HU.json6
-rw-r--r--core/l10n/it.js2
-rw-r--r--core/l10n/it.json2
-rw-r--r--core/l10n/nl.js2
-rw-r--r--core/l10n/nl.json2
-rw-r--r--core/l10n/pt_BR.js2
-rw-r--r--core/l10n/pt_BR.json2
-rw-r--r--core/l10n/pt_PT.js1
-rw-r--r--core/l10n/pt_PT.json1
-rw-r--r--core/l10n/th_TH.js2
-rw-r--r--core/l10n/th_TH.json2
-rw-r--r--lib/l10n/et_EE.js1
-rw-r--r--lib/l10n/et_EE.json1
-rw-r--r--lib/private/appframework/http/request.php2
-rw-r--r--lib/private/files/storage/wrapper/encryption.php26
-rw-r--r--lib/private/helper.php8
-rw-r--r--lib/private/l10n.php26
-rw-r--r--lib/private/preview.php27
-rw-r--r--lib/private/preview/txt.php2
-rw-r--r--lib/private/repair.php2
-rw-r--r--lib/repair/repairinvalidshares.php79
-rw-r--r--settings/admin.php2
-rw-r--r--settings/l10n/oc.js5
-rw-r--r--settings/l10n/oc.json5
-rw-r--r--settings/personal.php2
-rw-r--r--tests/lib/appframework/http/RequestTest.php87
-rw-r--r--tests/lib/files/storage/wrapper/encryption.php23
-rw-r--r--tests/lib/preview.php78
-rw-r--r--tests/lib/repair/repairinvalidsharestest.php123
-rw-r--r--version.php2
64 files changed, 725 insertions, 311 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index b86aee89674..2ba1f774d49 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -330,10 +330,6 @@ table td.filename .nametext {
max-width: 800px;
height: 100%;
}
-/* IE8 text-overflow: ellipsis support */
-.ie8 table td.filename .nametext {
- min-width: 50%;
-}
.has-favorites #fileList td.filename a.name {
left: 50px;
margin-right: 50px;
@@ -346,13 +342,6 @@ table td.filename .nametext .innernametext {
display: inline-block;
vertical-align: top;
}
-/* IE8 text-overflow: ellipsis support */
-.ie8 table td.filename .nametext .innernametext {
- white-space: nowrap;
- word-wrap: normal;
- -ms-text-overflow: ellipsis;
- max-width: 47%;
-}
@media only screen and (min-width: 1500px) {
table td.filename .nametext .innernametext {
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 7a025e772c5..9c4e43b3b8b 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -1411,10 +1411,10 @@
generatePreviewUrl: function(urlSpec) {
urlSpec = urlSpec || {};
if (!urlSpec.x) {
- urlSpec.x = this.$table.data('preview-x') || 36;
+ urlSpec.x = this.$table.data('preview-x') || 32;
}
if (!urlSpec.y) {
- urlSpec.y = this.$table.data('preview-y') || 36;
+ urlSpec.y = this.$table.data('preview-y') || 32;
}
urlSpec.x *= window.devicePixelRatio;
urlSpec.y *= window.devicePixelRatio;
diff --git a/apps/files/l10n/oc.js b/apps/files/l10n/oc.js
index bd44479b285..6e82e5c5dff 100644
--- a/apps/files/l10n/oc.js
+++ b/apps/files/l10n/oc.js
@@ -71,6 +71,7 @@ OC.L10N.register(
"Favorite" : "Favorit",
"Upload" : "Cargament",
"Text file" : "Fichièr tèxte",
+ "New text file.txt" : "Novèl fichièr tèxte .txt",
"Folder" : "Dorsièr",
"New folder" : "Novèl dorsièr",
"An error occurred while trying to update the tags" : "Una error s'es produsida al moment de la mesa a jorn de las etiquetas",
diff --git a/apps/files/l10n/oc.json b/apps/files/l10n/oc.json
index 89843ea85c2..b75d26a5ad3 100644
--- a/apps/files/l10n/oc.json
+++ b/apps/files/l10n/oc.json
@@ -69,6 +69,7 @@
"Favorite" : "Favorit",
"Upload" : "Cargament",
"Text file" : "Fichièr tèxte",
+ "New text file.txt" : "Novèl fichièr tèxte .txt",
"Folder" : "Dorsièr",
"New folder" : "Novèl dorsièr",
"An error occurred while trying to update the tags" : "Una error s'es produsida al moment de la mesa a jorn de las etiquetas",
diff --git a/apps/files/templates/list.php b/apps/files/templates/list.php
index bbbce8473de..7ebf80ee8b2 100644
--- a/apps/files/templates/list.php
+++ b/apps/files/templates/list.php
@@ -51,7 +51,7 @@
<p></p>
</div>
-<table id="filestable" data-allow-public-upload="<?php p($_['publicUploadEnabled'])?>" data-preview-x="36" data-preview-y="36">
+<table id="filestable" data-allow-public-upload="<?php p($_['publicUploadEnabled'])?>" data-preview-x="32" data-preview-y="32">
<thead>
<tr>
<th id='headerName' class="hidden column-name">
diff --git a/apps/files_external/l10n/et_EE.js b/apps/files_external/l10n/et_EE.js
index ecb40dbc003..69ddf1a9ab2 100644
--- a/apps/files_external/l10n/et_EE.js
+++ b/apps/files_external/l10n/et_EE.js
@@ -22,11 +22,14 @@ OC.L10N.register(
"All users. Type to select user or group." : "Kõik kasutajad. Kirjuta, et valida kasutaja või grupp.",
"(group)" : "(grupp)",
"Saved" : "Salvestatud",
+ "Builtin" : "Sisseehitatud",
"None" : "Pole",
+ "OAuth1" : "OAuth1",
"App key" : "Rakenduse võti",
"App secret" : "Rakenduse salasõna",
"Client ID" : "Kliendi ID",
"Client secret" : "Kliendi salasõna",
+ "OpenStack" : "OpenStack",
"Username" : "Kasutajanimi",
"Password" : "Parool",
"API key" : "API võti",
@@ -43,17 +46,23 @@ OC.L10N.register(
"Remote subfolder" : "Mujahl olev alamkaust",
"Secure https://" : "Turvaline https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Host" : "Host",
"Secure ftps://" : "Turvaline ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Kohalik",
"Location" : "Asukoht",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Juur",
"SFTP with secret key login" : "SFTP koos salajase võtmega logimisega",
+ "SMB / CIFS" : "SMB / CIFS",
"Share" : "Jaga",
+ "Domain" : "Domeen",
"SMB / CIFS using OC login" : "SMB / CIFS kasutades OC logimist",
"Username as share" : "Kasutajanimi kui jagamine",
"OpenStack Object Storage" : "OpenStack Object Storage",
+ "Service name" : "Teenuse nimi",
"<b>Note:</b> " : "<b>Märkus:</b>",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Märkus:</b> cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Märkus:</b> FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.",
@@ -65,6 +74,7 @@ OC.L10N.register(
"Scope" : "Skoop",
"External Storage" : "Väline salvestuskoht",
"Folder name" : "Kausta nimi",
+ "Authentication" : "Autentimine",
"Configuration" : "Seadistamine",
"Available for" : "Saadaval",
"Advanced settings" : "Lisavalikud",
diff --git a/apps/files_external/l10n/et_EE.json b/apps/files_external/l10n/et_EE.json
index 3ab8610f6cc..3538ef2e7ad 100644
--- a/apps/files_external/l10n/et_EE.json
+++ b/apps/files_external/l10n/et_EE.json
@@ -20,11 +20,14 @@
"All users. Type to select user or group." : "Kõik kasutajad. Kirjuta, et valida kasutaja või grupp.",
"(group)" : "(grupp)",
"Saved" : "Salvestatud",
+ "Builtin" : "Sisseehitatud",
"None" : "Pole",
+ "OAuth1" : "OAuth1",
"App key" : "Rakenduse võti",
"App secret" : "Rakenduse salasõna",
"Client ID" : "Kliendi ID",
"Client secret" : "Kliendi salasõna",
+ "OpenStack" : "OpenStack",
"Username" : "Kasutajanimi",
"Password" : "Parool",
"API key" : "API võti",
@@ -41,17 +44,23 @@
"Remote subfolder" : "Mujahl olev alamkaust",
"Secure https://" : "Turvaline https://",
"Dropbox" : "Dropbox",
+ "FTP" : "FTP",
"Host" : "Host",
"Secure ftps://" : "Turvaline ftps://",
+ "Google Drive" : "Google Drive",
"Local" : "Kohalik",
"Location" : "Asukoht",
"ownCloud" : "ownCloud",
+ "SFTP" : "SFTP",
"Root" : "Juur",
"SFTP with secret key login" : "SFTP koos salajase võtmega logimisega",
+ "SMB / CIFS" : "SMB / CIFS",
"Share" : "Jaga",
+ "Domain" : "Domeen",
"SMB / CIFS using OC login" : "SMB / CIFS kasutades OC logimist",
"Username as share" : "Kasutajanimi kui jagamine",
"OpenStack Object Storage" : "OpenStack Object Storage",
+ "Service name" : "Teenuse nimi",
"<b>Note:</b> " : "<b>Märkus:</b>",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Märkus:</b> cURL tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata cURL tugi.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Märkus:</b> FTP tugi puudub PHP paigalduses. FTP %s hoidla ühendamine pole võimalik. Palu oma süsteemihalduril paigaldata FTP tugi.",
@@ -63,6 +72,7 @@
"Scope" : "Skoop",
"External Storage" : "Väline salvestuskoht",
"Folder name" : "Kausta nimi",
+ "Authentication" : "Autentimine",
"Configuration" : "Seadistamine",
"Available for" : "Saadaval",
"Advanced settings" : "Lisavalikud",
diff --git a/apps/files_external/l10n/pt_PT.js b/apps/files_external/l10n/pt_PT.js
index 37a6d35471e..6ea55871262 100644
--- a/apps/files_external/l10n/pt_PT.js
+++ b/apps/files_external/l10n/pt_PT.js
@@ -67,9 +67,11 @@ OC.L10N.register(
"Root" : "Root",
"SMB / CIFS" : "SMB / CIFS",
"Share" : "Compartilhar",
+ "Domain" : "Domínio",
"SMB / CIFS using OC login" : "SMB / CIFS utilizando o início de sessão OC",
"Username as share" : "Nome de utilizador como partilha",
"OpenStack Object Storage" : "Armazenamento de Objetos OpenStack",
+ "Service name" : "Nome do serviço",
"<b>Note:</b> " : "<b>Nota:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
diff --git a/apps/files_external/l10n/pt_PT.json b/apps/files_external/l10n/pt_PT.json
index 90c863334a5..8711356815f 100644
--- a/apps/files_external/l10n/pt_PT.json
+++ b/apps/files_external/l10n/pt_PT.json
@@ -65,9 +65,11 @@
"Root" : "Root",
"SMB / CIFS" : "SMB / CIFS",
"Share" : "Compartilhar",
+ "Domain" : "Domínio",
"SMB / CIFS using OC login" : "SMB / CIFS utilizando o início de sessão OC",
"Username as share" : "Nome de utilizador como partilha",
"OpenStack Object Storage" : "Armazenamento de Objetos OpenStack",
+ "Service name" : "Nome do serviço",
"<b>Note:</b> " : "<b>Nota:</b> ",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte cURL no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Aviso:</b> O suporte FTP no PHP não está activo ou instalado. Não é possível montar %s. Peça ao seu administrador para instalar.",
diff --git a/apps/files_sharing/ajax/publicpreview.php b/apps/files_sharing/ajax/publicpreview.php
index 6ddd4786c2a..69894bb8da5 100644
--- a/apps/files_sharing/ajax/publicpreview.php
+++ b/apps/files_sharing/ajax/publicpreview.php
@@ -28,8 +28,8 @@ OCP\JSON::checkAppEnabled('files_sharing');
\OC_User::setIncognitoMode(true);
$file = array_key_exists('file', $_GET) ? (string) $_GET['file'] : '';
-$maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '36';
-$maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '36';
+$maxX = array_key_exists('x', $_GET) ? (int) $_GET['x'] : '32';
+$maxY = array_key_exists('y', $_GET) ? (int) $_GET['y'] : '32';
$scalingUp = array_key_exists('scalingup', $_GET) ? (bool) $_GET['scalingup'] : true;
$token = array_key_exists('t', $_GET) ? (string) $_GET['t'] : '';
$keepAspect = array_key_exists('a', $_GET) ? true : false;
diff --git a/apps/files_sharing/css/public.css b/apps/files_sharing/css/public.css
index a5cf57d0ac5..2b7e84c987d 100644
--- a/apps/files_sharing/css/public.css
+++ b/apps/files_sharing/css/public.css
@@ -134,9 +134,19 @@ thead {
margin: 2px 0 !important;
}
+#save-button-confirm:disabled,
+#save-button-confirm:disabled:hover,
+#save-button-confirm:disabled:focus {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";
+ filter: alpha(opacity=20);
+ opacity: .2;
+ cursor: default;
+}
+
#save-button-confirm:hover,
#save-button-confirm:focus {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
+ cursor: pointer;
}
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 6a6095317af..16b4f1589b1 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -161,10 +161,10 @@ OCA.Sharing.PublicApp = {
this.fileList.generatePreviewUrl = function (urlSpec) {
urlSpec = urlSpec || {};
if (!urlSpec.x) {
- urlSpec.x = 36;
+ urlSpec.x = 32;
}
if (!urlSpec.y) {
- urlSpec.y = 36;
+ urlSpec.y = 32;
}
urlSpec.x *= window.devicePixelRatio;
urlSpec.y *= window.devicePixelRatio;
@@ -228,6 +228,14 @@ OCA.Sharing.PublicApp = {
OCA.Sharing.PublicApp._saveToOwnCloud(remote, token, owner, name, isProtected);
});
+ $('#remote_address').on("keyup paste", function() {
+ if ($(this).val() === '') {
+ $('#save-button-confirm').prop('disabled', true);
+ } else {
+ $('#save-button-confirm').prop('disabled', false);
+ }
+ });
+
$('#save #save-button').click(function () {
$(this).hide();
$('.save-form').css('display', 'inline');
diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js
index ada0a548162..6d02bdd6ced 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -32,6 +32,7 @@ OC.L10N.register(
"You shared %1$s via link" : "Jagasid %1$s lingiga",
"Shares" : "Jagamised",
"Accept" : "Nõustu",
+ "Decline" : "Lükka tagasi",
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
"Password" : "Parool",
@@ -52,6 +53,7 @@ OC.L10N.register(
"Allow users on this server to send shares to other servers" : "Luba selle serveri kasutajatel saata faile teistesse serveritesse",
"Allow users on this server to receive shares from other servers" : "Luba selle serveri kasutajatel võtta vastu jagamisi teistest serveritest",
"Share it:" : "Jaga seda:",
+ "Add to your website" : "Lisa oma veebisaidile",
"Share with me via ownCloud" : "Jaga minuga läbi ownCloudiga",
"HTML Code:" : "HTML kood:"
},
diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json
index afa7fc6884d..481a75210ee 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -30,6 +30,7 @@
"You shared %1$s via link" : "Jagasid %1$s lingiga",
"Shares" : "Jagamised",
"Accept" : "Nõustu",
+ "Decline" : "Lükka tagasi",
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
"Password" : "Parool",
@@ -50,6 +51,7 @@
"Allow users on this server to send shares to other servers" : "Luba selle serveri kasutajatel saata faile teistesse serveritesse",
"Allow users on this server to receive shares from other servers" : "Luba selle serveri kasutajatel võtta vastu jagamisi teistest serveritest",
"Share it:" : "Jaga seda:",
+ "Add to your website" : "Lisa oma veebisaidile",
"Share with me via ownCloud" : "Jaga minuga läbi ownCloudiga",
"HTML Code:" : "HTML kood:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js
index b554192fafc..54924e11121 100644
--- a/apps/files_sharing/l10n/oc.js
+++ b/apps/files_sharing/l10n/oc.js
@@ -40,6 +40,7 @@ OC.L10N.register(
"You shared %1$s with group %2$s" : "Avètz partejat %1$s amb lo grop %2$s",
"%2$s shared %1$s with %3$s" : "%2$s partejat %1$s amb %3$s",
"%2$s shared %1$s with group %3$s" : "%2$s partejat %1$s amb lo grop %3$s",
+ "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public",
"%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos",
"You shared %1$s via link" : "Avètz partejat %1$s per ligam public",
"Shares" : "Partiments",
diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json
index 326d804a055..2194f0aa1d2 100644
--- a/apps/files_sharing/l10n/oc.json
+++ b/apps/files_sharing/l10n/oc.json
@@ -38,6 +38,7 @@
"You shared %1$s with group %2$s" : "Avètz partejat %1$s amb lo grop %2$s",
"%2$s shared %1$s with %3$s" : "%2$s partejat %1$s amb %3$s",
"%2$s shared %1$s with group %3$s" : "%2$s partejat %1$s amb lo grop %3$s",
+ "%2$s shared %1$s via link" : "%2$s a partejat %1$s per ligam public",
"%2$s shared %1$s with you" : "%2$s a partejat %1$s amb vos",
"You shared %1$s via link" : "Avètz partejat %1$s per ligam public",
"Shares" : "Partiments",
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php
index cde28c80fc4..06d797c3c6f 100644
--- a/apps/files_sharing/templates/public.php
+++ b/apps/files_sharing/templates/public.php
@@ -76,7 +76,7 @@ $thumbSize = 1024;
<button id="save-button"><?php p($l->t('Add to your ownCloud')) ?></button>
<form class="save-form hidden" action="#">
<input type="text" id="remote_address" placeholder="example.com/owncloud"/>
- <button id="save-button-confirm" class="icon-confirm svg"></button>
+ <button id="save-button-confirm" class="icon-confirm svg" disabled></button>
</form>
</span>
<?php } ?>
diff --git a/apps/files_trashbin/js/filelist.js b/apps/files_trashbin/js/filelist.js
index febe3a45be3..6b624e333a0 100644
--- a/apps/files_trashbin/js/filelist.js
+++ b/apps/files_trashbin/js/filelist.js
@@ -268,12 +268,12 @@
enableActions: function() {
this.$el.find('.action').css('display', 'inline');
- this.$el.find(':input:checkbox').css('display', 'inline');
+ this.$el.find('input:checkbox').removeClass('u-hidden');
},
disableActions: function() {
this.$el.find('.action').css('display', 'none');
- this.$el.find(':input:checkbox').css('display', 'none');
+ this.$el.find('input:checkbox').addClass('u-hidden');
},
updateStorageStatistics: function() {
diff --git a/apps/files_trashbin/lib/trashbin.php b/apps/files_trashbin/lib/trashbin.php
index 2a9df94988d..840fd4fa146 100644
--- a/apps/files_trashbin/lib/trashbin.php
+++ b/apps/files_trashbin/lib/trashbin.php
@@ -908,6 +908,6 @@ class Trashbin {
* @return string
*/
public static function preview_icon($path) {
- return \OCP\Util::linkToRoute('core_ajax_trashbin_preview', array('x' => 36, 'y' => 36, 'file' => $path));
+ return \OCP\Util::linkToRoute('core_ajax_trashbin_preview', array('x' => 32, 'y' => 32, 'file' => $path));
}
}
diff --git a/apps/user_ldap/l10n/oc.js b/apps/user_ldap/l10n/oc.js
index 450e1403c8c..16a136649d7 100644
--- a/apps/user_ldap/l10n/oc.js
+++ b/apps/user_ldap/l10n/oc.js
@@ -5,46 +5,46 @@ OC.L10N.register(
"Failed to delete the server configuration" : "Fracàs de la supression de la configuracion del servidor",
"The configuration is invalid: anonymous bind is not allowed." : "La configuracion es pas valida : lo ligam anonim es pas autorizat.",
"The configuration is valid and the connection could be established!" : "La configuracion es valida e la connexion pòt èsser establida !",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valable, mas lo bind a fracassat. Verificatz los paramètres del servidor ainsi que vos identificants de connexion.",
- "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valable. Consultatz les logs per mai de detalhs.",
- "No action specified" : "Aucune action especificada",
- "No configuration specified" : "Aucune configuration especificada",
- "No data specified" : "Aucune donada especificada",
- " Could not set configuration %s" : "Impossible de especificar la configuracion %s",
- "Action does not exist" : "L'action n'existe pas",
- "The Base DN appears to be wrong" : "Lo DN de base es erroné",
- "Configuration incorrect" : "Configuracion incorrecte",
- "Configuration incomplete" : "Configuracion incomplète",
+ "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valabla, mas lo bind a fracassat. Verificatz los paramètres del servidor e tanben vòstres identificants de connexion.",
+ "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valabla. Consultatz los logs per mai de detalhs.",
+ "No action specified" : "Cap d'accion pas especificada",
+ "No configuration specified" : "Cap de configuration pas especificada",
+ "No data specified" : "Cap de donada pas especificada",
+ " Could not set configuration %s" : "Impossible d'especificar la configuracion %s",
+ "Action does not exist" : "L'accion existís pas",
+ "The Base DN appears to be wrong" : "Lo DN de basa es erronèu",
+ "Configuration incorrect" : "Configuracion incorrècta",
+ "Configuration incomplete" : "Configuracion incompleta",
"Configuration OK" : "Configuracion OK",
- "Select groups" : "Seleccionnez los gropes",
- "Select object classes" : "Seleccionar les classes d'objècte",
- "Please check the credentials, they seem to be wrong." : "Verificatz vos informations d'identification",
- "Please specify the port, it could not be auto-detected." : "Veuillez especificar lo pòrt, il n'a pu èsser detectat automaticament",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de base n'a pu èsser detectat automaticament. Verificatz les informations d'identification, l'hôte e lo pòrt.",
- "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de base, veuillez lo especificar manualament",
+ "Select groups" : "Seleccionatz los gropes",
+ "Select object classes" : "Seleccionar las classas d'objècte",
+ "Please check the credentials, they seem to be wrong." : "Verificatz vòstras informacions d'identificacion",
+ "Please specify the port, it could not be auto-detected." : "Especificatz lo pòrt, a pas pogut èsser detectat automaticament",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de basa a pas pogut èsser detectat automaticament. Verificatz las informacions d'identificacion, l'òste e lo pòrt.",
+ "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de basa, especificatz-lo manualament",
"{nthServer}. Server" : "{nthServer}. Servidor",
- "No object found in the given Base DN. Please revise." : "Aucun objècte trobat dins lo DN de base especificat. Veuillez lo verificar.",
- "More than 1.000 directory entries available." : "I a plus de 1000 entradas de repertòri disponibles.",
- " entries available within the provided Base DN" : "entradas disponibles dins lo DN de base especificat",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error es survenue. Verificatz lo DN de base, ainsi que los paramètres de connexion e les informations d'identification",
+ "No object found in the given Base DN. Please revise." : "Cap d'objècte pas trobat dins lo DN de basa especificat. Verificatz-lo.",
+ "More than 1.000 directory entries available." : "I a mai de 1000 entradas de repertòri disponiblas.",
+ " entries available within the provided Base DN" : "entradas disponiblas dins lo DN de basa especificat",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error s'es produsida. Verificatz lo DN de basa, e tanben los paramètres de connexion e las informacions d'identificacion.",
"Do you really want to delete the current Server Configuration?" : "Sètz segur que volètz escafar la configuracion servidor actuala ?",
- "Confirm Deletion" : "Confirmer la supression",
- "Mappings cleared successfully!" : "Associations suprimidas amb succès !",
- "Error while clearing the mappings." : "Error al moment de la supression des associations.",
+ "Confirm Deletion" : "Confirmar la supression",
+ "Mappings cleared successfully!" : "Associacions suprimidas amb succès !",
+ "Error while clearing the mappings." : "Error al moment de la supression de las associacions.",
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Lo ligam anonim es pas autorizat. Mercé de provesir lo DN d'un utilizaire e un senhal.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonyme al servidor n'est probablement pas acceptada.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "La salvament a fracassat. Verificatz que la banca de donadas es opérationnelle. Rechargez avant de contunhar.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Changer de mode activera las requèstas LDAP automatiques. Selon la taille de votre annuaire LDAP, cela pòt prendre del temps. Volètz toujours changer de mode ?",
- "Mode switch" : "Changer de mode",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonima al servidor es probablament pas acceptada.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lo salvament a fracassat. Verificatz que la banca de donadas es operacionala. Recargatz abans de contunhar.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar de mòde activarà las requèstas LDAP automaticas. Segon la talha de vòstre annuari LDAP, aquò pòt préner del temps. Volètz totjorn cambiar de mòde ?",
+ "Mode switch" : "Cambiar de mòde",
"Select attributes" : "Seleccionar los atributs",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introuvable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre effectif (à copier-coller per valider en ligne de commande):<br/>",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introbable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre efectiu (de copiar-pegar per validar en linha de comanda):<br/>",
"User found and settings verified." : "Utilizaire trobat e paramètres verificats.",
- "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas seul lo premier utilizaire pourra se connecter. Utilizatz plutôt un filtre mens restrictif.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas sol lo primièr utilizaire se poirà connectar. Utilizatz puslèu un filtre mens restrictiu.",
"An unspecified error occurred. Please check the settings and the log." : "Una error desconeguda s'es produsida. Verificatz los paramètres e lo log.",
- "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valide, probablement a cause de problèmas de syntaxe tels que des parenthèses manquantes. Veuillez lo corriger.",
- "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'hôte, lo pòrt e les informations d'identification.",
- "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La chaîne %uid es manquante. Aquesta chaîne es remplacée per l'identificant de connexion al moment des requèstas LDAP / AD.",
- "Please provide a login name to test against" : "Veuillez indiquer un identificant de connexion amb lequel tester.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valid, probablament a causa de problèmas de sintaxi tals coma de parentèsis mancantas. Corregissètz-los.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'òste, lo pòrt e las informacions d'identificacion.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La cadena %uid es mancanta. Aquesta cadena es remplaçada per l'identificant de connexion al moment de las requèstas LDAP / AD.",
+ "Please provide a login name to test against" : "Indicatz un identificant de connexion amb lo qual cal testar.",
"The group box was disabled, because the LDAP / AD server does not support memberOf." : "Los gropes son desactivats perque lo servidor LDAP / AD pren pas en carga memberOf.",
"_%s group found_::_%s groups found_" : ["%s grop trobat","%s gropes trobats"],
"_%s user found_::_%s users found_" : ["%s utilizaire trobat","%s utilizaires trobats"],
@@ -65,15 +65,15 @@ OC.L10N.register(
"Selected groups" : "Gropes seleccionats",
"Edit LDAP Query" : "Modificar la requèsta LDAP",
"LDAP Filter:" : "Filtre LDAP :",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre spécifie quels gropes LDAP ont accès a l'instància %s.",
- "Verify settings and count groups" : "Verificar los paramètres e compter los gropes",
- "When logging in, %s will find the user based on the following attributes:" : "Au login, %s cercarà l'utilizaire sus base de ces attributs :",
+ "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre especifica quins gropes LDAP an accès a l'instància %s.",
+ "Verify settings and count groups" : "Verificar los paramètres e comptar los gropes",
+ "When logging in, %s will find the user based on the following attributes:" : "Al login, %s cercarà l'utilizaire sus basa d'aquestes atributs :",
"LDAP / AD Username:" : "Nom d'utilizaire LDAP / AD :",
- "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la détection es automatique). ",
- "LDAP / AD Email Address:" : "Adresse mail LDAP / AD :",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la deteccion es automatica). ",
+ "LDAP / AD Email Address:" : "Adreça mail LDAP / AD :",
"Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autorizar lo login amb una adreça mail. Mail e mailPrimaryAddress son autorizats.",
- "Other Attributes:" : "Autres attributs :",
- "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Définit lo filtre a aplicar al moment d'una tentative de connexion. %%uid remplace lo nom d'utilizaire. Exemple : \"uid=%%uid\"",
+ "Other Attributes:" : "Autres atributs :",
+ "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definís lo filtre d'aplicar al moment d'una temptativa de connexion. %%uid remplaça lo nom d'utilizaire. Exemple : \"uid=%%uid\"",
"Test Loginname" : "Loginname de tèst",
"Verify settings" : "Testar los paramètres",
"1. Server" : "1. Servidor",
@@ -82,77 +82,77 @@ OC.L10N.register(
"Copy current configuration into new directory binding" : "Copiar la configuracion actuala cap a una novèla",
"Delete the current configuration" : "Suprimir la configuracion actuala",
"Host" : "Òste",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz omettre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://",
+ "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz ometre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://",
"Port" : "Pòrt",
"Detect Port" : "Detectar lo pòrt",
"User DN" : "DN Utilizaire",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client per lequel la liaison deu se faire, per exemple uid=agent,dc=example,dc=com. Per un accès anonyme, laisser lo DN e lo senhal vides.",
+ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client pel qual la ligason se deu far, per exemple uid=agent,dc=example,dc=com. Per un accès anonim, daissar lo DN e lo senhal voids.",
"Password" : "Senhal",
- "For anonymous access, leave DN and Password empty." : "Per un accès anonyme, laisser lo DN utilizaire e lo senhal vides.",
- "One Base DN per line" : "Un DN de base per linha",
- "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar les DN de base de vos utilizaires e gropes via l'onglet Avançat",
- "Detect Base DN" : "Detectar lo DN de base",
- "Test Base DN" : "Testar lo DN de base",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Évite las requèstas LDAP automaticas. Mieux per las installacions de grande ampleur, mas demande des coneissenças en LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat per les annuaires de grande ampleur)",
- "Limit %s access to users meeting these criteria:" : "Limiter l'accès a %s als utilizaires respectant ces critèris :",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les classes d'objèctes fréquentes per los utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classe a utiliser, demandez a l'administrator de l'annuaire.",
- "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre spécifie quels utilizaires LDAP auront accès a l'instància %s.",
- "Verify settings and count users" : "Verificar los paramètres e compter los utilizaires",
+ "For anonymous access, leave DN and Password empty." : "Per un accès anonim, daissar lo DN utilizaire e lo senhal voids.",
+ "One Base DN per line" : "Un DN de basa per linha",
+ "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar los DN de basa de vòstres utilizaires e gropes via l'onglet Avançat",
+ "Detect Base DN" : "Detectar lo DN de basa",
+ "Test Base DN" : "Testar lo DN de basa",
+ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita las requèstas LDAP automaticas. Melhor per las installacions de grand ample, mas demanda de coneissenças en LDAP.",
+ "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat pels annuaris de grand ample)",
+ "Limit %s access to users meeting these criteria:" : "Limitar l'accès a %s als utilizaires que respèctan aquestes critèris :",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las classas d'objèctes frequentas pels utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classa d'utilizar, demandatz a l'administrator de l'annuari.",
+ "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre especifica quins utilizaires LDAP auràn accès a l'instància %s.",
+ "Verify settings and count users" : "Verificar los paramètres e comptar los utilizaires",
"Saving" : "Enregistrament...",
"Back" : "Retorn",
"Continue" : "Contunhar",
"LDAP" : "LDAP",
"Expert" : "Expèrt",
"Advanced" : "Avançat",
- "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap e user_webdavauth son incompatibles. Des dysfoncionaments pòdon survenir. Contactez vòstre administrator sistèma per qu'il en désactive une.",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo module php LDAP es pas installat, per conséquent aquesta extension ne pourra fonctionner. Contactatz vòstre administrator sistèma afin qu'il l'installe.",
+ "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertiment :</b> Las aplicacions user_ldap e user_webdavauth son incompatiblas. De disfoncionaments se pòdon provesir. Contactatz vòstre administrator sistèma per que ne desactive una.",
+ "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo modul php LDAP es pas installat, per consequéncia aquesta extension poirà pas foncionar. Contactatz vòstre administrator sistèma per tal que l'installe.",
"Connection Settings" : "Paramètres de connexion",
- "Configuration Active" : "Configuracion active",
- "When unchecked, this configuration will be skipped." : "Quand non cochée, la configuracion serà ignorada.",
+ "Configuration Active" : "Configuracion activa",
+ "When unchecked, this configuration will be skipped." : "Quand pas marcada, la configuracion serà ignorada.",
"Backup (Replica) Host" : "Servidor de backup (replica)",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Fournir un servidor de backup opcional. Il deu s'agir d'una replica del servidor LDAP/AD principal.",
+ "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Provesir un servidor de backup opcional. Se deu agir d'una replica del servidor LDAP/AD principal.",
"Backup (Replica) Port" : "Pòrt del servidor de backup (replica)",
"Disable Main Server" : "Desactivar lo servidor principal",
- "Only connect to the replica server." : "Se connecter unicament a la replica",
- "Turn off SSL certificate validation." : "Desactivar la validacion des certificats SSL",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Non recomandat, a utiliser a des fins de tests unicament. Se la connexion ne fonctionne qu'amb aquesta option, importez lo certificat SSL del servidor LDAP dins lo servidor %s.",
- "Cache Time-To-Live" : "Durada de vie de l'escondedor (TTL)",
- "in seconds. A change empties the cache." : "en segondas. Tot cambiament vide l'escondedor.",
+ "Only connect to the replica server." : "Se connectar unicament a la replica",
+ "Turn off SSL certificate validation." : "Desactivar la validacion dels certificats SSL",
+ "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Pas recomandat, d'utilizar amb d'objectius de tèsts unicament. Se la connexion fonciona pas qu'amb aquesta opcion, importatz lo certificat SSL del servidor LDAP dins lo servidor %s.",
+ "Cache Time-To-Live" : "Durada de vida de l'escondedor (TTL)",
+ "in seconds. A change empties the cache." : "en segondas. Tot cambiament voida l'escondedor.",
"Directory Settings" : "Paramètres del repertòri",
"User Display Name Field" : "Camp \"nom d'afichatge\" de l'utilizaire",
"The LDAP attribute to use to generate the user's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge de l'utilizaire.",
"Base User Tree" : "DN raiç de l'arbre utilizaires",
- "One User Base DN per line" : "Un DN de base utilizaire per linha",
+ "One User Base DN per line" : "Un DN de basa utilizaire per linha",
"User Search Attributes" : "Atributs de recèrca utilizaires",
"Optional; one attribute per line" : "Opcional, un atribut per linha",
"Group Display Name Field" : "Camp \"nom d'afichatge\" del grop",
"The LDAP attribute to use to generate the groups's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge del grop.",
"Base Group Tree" : "DN raiç de l'arbre gropes",
- "One Group Base DN per line" : "Un DN de base grop per linha",
+ "One Group Base DN per line" : "Un DN de basa grop per linha",
"Group Search Attributes" : "Atributs de recèrca des gropes",
- "Group-Member association" : "Association grop-membre",
- "Nested Groups" : "Gropes imbriqués",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes contenant d'autres gropes son pris en charge (fonctionne unicament se l'atribut membre del grop conten des DNs).",
+ "Group-Member association" : "Associacion grop-membre",
+ "Nested Groups" : "Gropes imbricats",
+ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes que contenon d'autres gropes son preses en carga (fonciona unicament se l'atribut membre del grop conten de DNs).",
"Paging chunksize" : "Paging chunksize",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per les recherches LDAP paginées qui pòdon retourner des résultats per lots coma una énumération d'utilizaires o de gropes. (Configurar a 0 per desactivar les recherches LDAP paginées)",
- "Special Attributes" : "Atributs spéciaux",
- "Quota Field" : "Camp del quota",
- "Quota Default" : "Quota per defaut",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per las recèrcas LDAP paginadas que pòdon tornar de resultats per lòts coma una enumeracion d'utilizaires o de gropes. (Configurar a 0 per desactivar las recèrcas LDAP paginadas)",
+ "Special Attributes" : "Atributs especials",
+ "Quota Field" : "Camp del quòta",
+ "Quota Default" : "Quòta per defaut",
"in bytes" : "en octets",
"Email Field" : "Camp Email",
- "User Home Folder Naming Rule" : "Règla de nommage del repertòri utilizaire",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Laisser vide per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.",
- "Internal Username" : "Nom d'utilizaire interne",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire interne serà créé a partir de l'atribut UUID. Ceci permet d'assurer que lo nom d'utilizaire es unique e que les caractèrs ne nécessitent pas de conversion. Lo nom d'utilizaire interne deu contenir unicament les caractèrs seguents : [ a-zA-Z0-9_.@- ]. Les autres caractèrs son remplacés per lor correspondance ASCII o simplement omis. En cas de collision, un nombre es ajouté/incrémenté. Lo nom d'utilizaire interne es utilizat per identifier l'utilizaire al sein del sistèma. C'est tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Il fait tanben partie de certains URL de services, per exemple per tous les services *DAV. Lo comportement per defaut pòt èsser modificat a l'aide de ce paramètre. Per obtenir un comportement similaire aux versions precedentas a ownCloud 5, saisir lo nom d'utilizaire a afichar dins lo camp seguent. Laisser a blanc per lo comportement per defaut. Les modifications prendront effet solament per les nouveaux (ajoutés) utilizaires LDAP.",
- "Internal Username Attribute:" : "Nom d'utilizaire interne :",
- "Override UUID detection" : "Passer outre la détection des UUID",
- "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es automaticament detectat. Aqueste attribut es utilizat per identifier los utilizaires e gropes de façon fiable. Un nom d'utilizaire interne basé sus l'UUID serà automaticament créé, sauf s'il es especificat autrement çaisús. Podètz modificar ce comportement e définir l'atribut de votre choix. Vos cal alors vous assurer que l'atribut de votre choix pòt èsser recuperat per los utilizaires ainsi que per los gropes e qu'il soit unique. Laisser a blanc per lo comportement per defaut. Les modifications seront effectives unicament per les nouveaux (ajoutés) utilizaires e gropes LDAP.",
- "UUID Attribute for Users:" : "Atribut UUID per les Utilizaires :",
- "UUID Attribute for Groups:" : "Atribut UUID per los Gropes :",
- "Username-LDAP User Mapping" : "Association Nom d'utilizaire-Utilizaire LDAP",
- "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilizaires son utilizats per lo stockage e l'assignation de (meta) donadas. Per identifier e reconéisser précisément los utilizaires, cada utilizaire LDAP aura un nom interne spécifique. Cela requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire créé es associat a l'atribut UUID de l'utilizaire LDAP. Per ailleurs, lo DN es mémorisé en cache per limiter les interactions LDAP mas il es pas utilizat per l'identification. Se lo DN es modificat, ces modifications seront retrobadas. Seul lo nom interne a ownCloud es utilizat al sein del produit. Suprimir les associations creara des orphelins e l'action affectera totas les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mas unicament sus des environaments de tests e d'expérimentations.",
- "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire interne-utilizaire LDAP",
+ "User Home Folder Naming Rule" : "Règla de nomenatge del repertòri utilizaire",
+ "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Daissar void per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.",
+ "Internal Username" : "Nom d'utilizaire intèrne",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire intèrne serà creat a partir de l'atribut UUID. Aquò permet d'assegurar que lo nom d'utilizaire es unic e que los caractèrs necessitan pas de conversion. Lo nom d'utilizaire intèrne deu contenir unicament los caractèrs seguents : [ a-zA-Z0-9_.@- ]. Los autres caractèrs son remplaçats per lor correspondéncia ASCII o simplament omeses. En cas de collision, un nombre es apondut/incrementat. Lo nom d'utilizaire intèrne es utilizat per identificar l'utilizaire al dintre del sistèma. Es tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Fa tanben partida de certans URL de servicis, per exemple per totes los servicis *DAV. Lo comportament per defaut pòt èsser modificat amb l'ajuda d'aqueste paramètre. Per obtenir un comportament similar a las versions precedentas a ownCloud 5, sasir lo nom d'utilizaire d'afichar dins lo camp seguent. Daissar a blanc pel comportement per defaut. Las modificacions prendràn efièch solament pels novèls (aponduts) utilizaires LDAP.",
+ "Internal Username Attribute:" : "Nom d'utilizaire intèrne :",
+ "Override UUID detection" : "Passar outra la deteccion des UUID",
+ "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es detectat automaticament. Aqueste atribut es utilizat per identificar los utilizaires e gropes de faiçon fisabla. Un nom d'utilizaire intèrne basat sus l'UUID serà automaticament creat, levat s'es especificat autrament çaisús. Podètz modificar aqueste comportament e definir l'atribut que volètz. Vos cal alara vos assegurar que l'atribut que volètz pòt èsser recuperat pels utilizaires e tanben pels gropes e que siá unic. Daissar a blanc pel comportament per defaut. Las modificacions seràn efectivas unicament pels novèls (aponduts) utilizaires e gropes LDAP.",
+ "UUID Attribute for Users:" : "Atribut UUID pels Utilizaires :",
+ "UUID Attribute for Groups:" : "Atribut UUID pels Gropes :",
+ "Username-LDAP User Mapping" : "Associacion Nom d'utilizaire-Utilizaire LDAP",
+ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los noms d'utilizaires son utilizats per l'emmagazinatge e l'assignacion de (meta) donadas. Per identificar e reconéisser precisament los utilizaires, cada utilizaire LDAP aurà un nom intèrne especific. Aquò requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire creat es associat a l'atribut UUID de l'utilizaire LDAP. Amai, lo DN es memorizat en escondedor per limitar las interaccions LDAP mas es pas utilizat per l'identificacion. Se lo DN es modificat, aquelas modificacions seràn retrobadas. Sol lo nom intèrne a ownCloud es utilizat al dintre del produch. Suprimir las associacions crearà d'orfanèls e l'accion afectarà totas las configuracions LDAP. SUPRIMISSÈTZ PAS JAMAI LAS ASSOCIACIONS EN ENVIRONAMENT DE PRODUCCION, mas unicament sus d'environaments de tèsts e d'experimentacions.",
+ "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire intèrne-utilizaire LDAP",
"Clear Groupname-LDAP Group Mapping" : "Suprimir l'associacion nom de grop-grop LDAP"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/user_ldap/l10n/oc.json b/apps/user_ldap/l10n/oc.json
index e39a43a6594..c7489f3f2b4 100644
--- a/apps/user_ldap/l10n/oc.json
+++ b/apps/user_ldap/l10n/oc.json
@@ -3,46 +3,46 @@
"Failed to delete the server configuration" : "Fracàs de la supression de la configuracion del servidor",
"The configuration is invalid: anonymous bind is not allowed." : "La configuracion es pas valida : lo ligam anonim es pas autorizat.",
"The configuration is valid and the connection could be established!" : "La configuracion es valida e la connexion pòt èsser establida !",
- "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valable, mas lo bind a fracassat. Verificatz los paramètres del servidor ainsi que vos identificants de connexion.",
- "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valable. Consultatz les logs per mai de detalhs.",
- "No action specified" : "Aucune action especificada",
- "No configuration specified" : "Aucune configuration especificada",
- "No data specified" : "Aucune donada especificada",
- " Could not set configuration %s" : "Impossible de especificar la configuracion %s",
- "Action does not exist" : "L'action n'existe pas",
- "The Base DN appears to be wrong" : "Lo DN de base es erroné",
- "Configuration incorrect" : "Configuracion incorrecte",
- "Configuration incomplete" : "Configuracion incomplète",
+ "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "La configuracion es valabla, mas lo bind a fracassat. Verificatz los paramètres del servidor e tanben vòstres identificants de connexion.",
+ "The configuration is invalid. Please have a look at the logs for further details." : "La configuracion es pas valabla. Consultatz los logs per mai de detalhs.",
+ "No action specified" : "Cap d'accion pas especificada",
+ "No configuration specified" : "Cap de configuration pas especificada",
+ "No data specified" : "Cap de donada pas especificada",
+ " Could not set configuration %s" : "Impossible d'especificar la configuracion %s",
+ "Action does not exist" : "L'accion existís pas",
+ "The Base DN appears to be wrong" : "Lo DN de basa es erronèu",
+ "Configuration incorrect" : "Configuracion incorrècta",
+ "Configuration incomplete" : "Configuracion incompleta",
"Configuration OK" : "Configuracion OK",
- "Select groups" : "Seleccionnez los gropes",
- "Select object classes" : "Seleccionar les classes d'objècte",
- "Please check the credentials, they seem to be wrong." : "Verificatz vos informations d'identification",
- "Please specify the port, it could not be auto-detected." : "Veuillez especificar lo pòrt, il n'a pu èsser detectat automaticament",
- "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de base n'a pu èsser detectat automaticament. Verificatz les informations d'identification, l'hôte e lo pòrt.",
- "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de base, veuillez lo especificar manualament",
+ "Select groups" : "Seleccionatz los gropes",
+ "Select object classes" : "Seleccionar las classas d'objècte",
+ "Please check the credentials, they seem to be wrong." : "Verificatz vòstras informacions d'identificacion",
+ "Please specify the port, it could not be auto-detected." : "Especificatz lo pòrt, a pas pogut èsser detectat automaticament",
+ "Base DN could not be auto-detected, please revise credentials, host and port." : "Lo DN de basa a pas pogut èsser detectat automaticament. Verificatz las informacions d'identificacion, l'òste e lo pòrt.",
+ "Could not detect Base DN, please enter it manually." : "Impossible de detectar lo DN de basa, especificatz-lo manualament",
"{nthServer}. Server" : "{nthServer}. Servidor",
- "No object found in the given Base DN. Please revise." : "Aucun objècte trobat dins lo DN de base especificat. Veuillez lo verificar.",
- "More than 1.000 directory entries available." : "I a plus de 1000 entradas de repertòri disponibles.",
- " entries available within the provided Base DN" : "entradas disponibles dins lo DN de base especificat",
- "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error es survenue. Verificatz lo DN de base, ainsi que los paramètres de connexion e les informations d'identification",
+ "No object found in the given Base DN. Please revise." : "Cap d'objècte pas trobat dins lo DN de basa especificat. Verificatz-lo.",
+ "More than 1.000 directory entries available." : "I a mai de 1000 entradas de repertòri disponiblas.",
+ " entries available within the provided Base DN" : "entradas disponiblas dins lo DN de basa especificat",
+ "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Una error s'es produsida. Verificatz lo DN de basa, e tanben los paramètres de connexion e las informacions d'identificacion.",
"Do you really want to delete the current Server Configuration?" : "Sètz segur que volètz escafar la configuracion servidor actuala ?",
- "Confirm Deletion" : "Confirmer la supression",
- "Mappings cleared successfully!" : "Associations suprimidas amb succès !",
- "Error while clearing the mappings." : "Error al moment de la supression des associations.",
+ "Confirm Deletion" : "Confirmar la supression",
+ "Mappings cleared successfully!" : "Associacions suprimidas amb succès !",
+ "Error while clearing the mappings." : "Error al moment de la supression de las associacions.",
"Anonymous bind is not allowed. Please provide a User DN and Password." : "Lo ligam anonim es pas autorizat. Mercé de provesir lo DN d'un utilizaire e un senhal.",
- "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonyme al servidor n'est probablement pas acceptada.",
- "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "La salvament a fracassat. Verificatz que la banca de donadas es opérationnelle. Rechargez avant de contunhar.",
- "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Changer de mode activera las requèstas LDAP automatiques. Selon la taille de votre annuaire LDAP, cela pòt prendre del temps. Volètz toujours changer de mode ?",
- "Mode switch" : "Changer de mode",
+ "LDAP Operations error. Anonymous bind might not be allowed." : "Error LDAP. La connexion anonima al servidor es probablament pas acceptada.",
+ "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Lo salvament a fracassat. Verificatz que la banca de donadas es operacionala. Recargatz abans de contunhar.",
+ "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar de mòde activarà las requèstas LDAP automaticas. Segon la talha de vòstre annuari LDAP, aquò pòt préner del temps. Volètz totjorn cambiar de mòde ?",
+ "Mode switch" : "Cambiar de mòde",
"Select attributes" : "Seleccionar los atributs",
- "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introuvable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre effectif (à copier-coller per valider en ligne de commande):<br/>",
+ "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Utilizaire introbable. Verificatz los atributs de login e lo nom d'utilizaire. Filtre efectiu (de copiar-pegar per validar en linha de comanda):<br/>",
"User found and settings verified." : "Utilizaire trobat e paramètres verificats.",
- "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas seul lo premier utilizaire pourra se connecter. Utilizatz plutôt un filtre mens restrictif.",
+ "Settings verified, but one user found. Only the first will be able to login. Consider a more narrow filter." : "Paramètres verificats, mas sol lo primièr utilizaire se poirà connectar. Utilizatz puslèu un filtre mens restrictiu.",
"An unspecified error occurred. Please check the settings and the log." : "Una error desconeguda s'es produsida. Verificatz los paramètres e lo log.",
- "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valide, probablement a cause de problèmas de syntaxe tels que des parenthèses manquantes. Veuillez lo corriger.",
- "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'hôte, lo pòrt e les informations d'identification.",
- "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La chaîne %uid es manquante. Aquesta chaîne es remplacée per l'identificant de connexion al moment des requèstas LDAP / AD.",
- "Please provide a login name to test against" : "Veuillez indiquer un identificant de connexion amb lequel tester.",
+ "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Lo filtre de recèrca es pas valid, probablament a causa de problèmas de sintaxi tals coma de parentèsis mancantas. Corregissètz-los.",
+ "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Una error s'es produsida al moment de la connexion al LDAP / AD. Verificatz l'òste, lo pòrt e las informacions d'identificacion.",
+ "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "La cadena %uid es mancanta. Aquesta cadena es remplaçada per l'identificant de connexion al moment de las requèstas LDAP / AD.",
+ "Please provide a login name to test against" : "Indicatz un identificant de connexion amb lo qual cal testar.",
"The group box was disabled, because the LDAP / AD server does not support memberOf." : "Los gropes son desactivats perque lo servidor LDAP / AD pren pas en carga memberOf.",
"_%s group found_::_%s groups found_" : ["%s grop trobat","%s gropes trobats"],
"_%s user found_::_%s users found_" : ["%s utilizaire trobat","%s utilizaires trobats"],
@@ -63,15 +63,15 @@
"Selected groups" : "Gropes seleccionats",
"Edit LDAP Query" : "Modificar la requèsta LDAP",
"LDAP Filter:" : "Filtre LDAP :",
- "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre spécifie quels gropes LDAP ont accès a l'instància %s.",
- "Verify settings and count groups" : "Verificar los paramètres e compter los gropes",
- "When logging in, %s will find the user based on the following attributes:" : "Au login, %s cercarà l'utilizaire sus base de ces attributs :",
+ "The filter specifies which LDAP groups shall have access to the %s instance." : "Lo filtre especifica quins gropes LDAP an accès a l'instància %s.",
+ "Verify settings and count groups" : "Verificar los paramètres e comptar los gropes",
+ "When logging in, %s will find the user based on the following attributes:" : "Al login, %s cercarà l'utilizaire sus basa d'aquestes atributs :",
"LDAP / AD Username:" : "Nom d'utilizaire LDAP / AD :",
- "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la détection es automatique). ",
- "LDAP / AD Email Address:" : "Adresse mail LDAP / AD :",
+ "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Autorizar lo login amb lo nom d'utilizaire LDAP / AD (uid o samaccountname, la deteccion es automatica). ",
+ "LDAP / AD Email Address:" : "Adreça mail LDAP / AD :",
"Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Autorizar lo login amb una adreça mail. Mail e mailPrimaryAddress son autorizats.",
- "Other Attributes:" : "Autres attributs :",
- "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Définit lo filtre a aplicar al moment d'una tentative de connexion. %%uid remplace lo nom d'utilizaire. Exemple : \"uid=%%uid\"",
+ "Other Attributes:" : "Autres atributs :",
+ "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Definís lo filtre d'aplicar al moment d'una temptativa de connexion. %%uid remplaça lo nom d'utilizaire. Exemple : \"uid=%%uid\"",
"Test Loginname" : "Loginname de tèst",
"Verify settings" : "Testar los paramètres",
"1. Server" : "1. Servidor",
@@ -80,77 +80,77 @@
"Copy current configuration into new directory binding" : "Copiar la configuracion actuala cap a una novèla",
"Delete the current configuration" : "Suprimir la configuracion actuala",
"Host" : "Òste",
- "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz omettre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://",
+ "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Podètz ometre lo protocòl, levat se avètz besonh de SSL. Dins aqueste cas, prefixatz amb ldaps://",
"Port" : "Pòrt",
"Detect Port" : "Detectar lo pòrt",
"User DN" : "DN Utilizaire",
- "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client per lequel la liaison deu se faire, per exemple uid=agent,dc=example,dc=com. Per un accès anonyme, laisser lo DN e lo senhal vides.",
+ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN de l'utilizaire client pel qual la ligason se deu far, per exemple uid=agent,dc=example,dc=com. Per un accès anonim, daissar lo DN e lo senhal voids.",
"Password" : "Senhal",
- "For anonymous access, leave DN and Password empty." : "Per un accès anonyme, laisser lo DN utilizaire e lo senhal vides.",
- "One Base DN per line" : "Un DN de base per linha",
- "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar les DN de base de vos utilizaires e gropes via l'onglet Avançat",
- "Detect Base DN" : "Detectar lo DN de base",
- "Test Base DN" : "Testar lo DN de base",
- "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Évite las requèstas LDAP automaticas. Mieux per las installacions de grande ampleur, mas demande des coneissenças en LDAP.",
- "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat per les annuaires de grande ampleur)",
- "Limit %s access to users meeting these criteria:" : "Limiter l'accès a %s als utilizaires respectant ces critèris :",
- "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Les classes d'objèctes fréquentes per los utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classe a utiliser, demandez a l'administrator de l'annuaire.",
- "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre spécifie quels utilizaires LDAP auront accès a l'instància %s.",
- "Verify settings and count users" : "Verificar los paramètres e compter los utilizaires",
+ "For anonymous access, leave DN and Password empty." : "Per un accès anonim, daissar lo DN utilizaire e lo senhal voids.",
+ "One Base DN per line" : "Un DN de basa per linha",
+ "You can specify Base DN for users and groups in the Advanced tab" : "Podètz especificar los DN de basa de vòstres utilizaires e gropes via l'onglet Avançat",
+ "Detect Base DN" : "Detectar lo DN de basa",
+ "Test Base DN" : "Testar lo DN de basa",
+ "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita las requèstas LDAP automaticas. Melhor per las installacions de grand ample, mas demanda de coneissenças en LDAP.",
+ "Manually enter LDAP filters (recommended for large directories)" : "Sasir los filtres LDAP manualament (recomandat pels annuaris de grand ample)",
+ "Limit %s access to users meeting these criteria:" : "Limitar l'accès a %s als utilizaires que respèctan aquestes critèris :",
+ "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las classas d'objèctes frequentas pels utilizaires son : organizationalPerson, person, user e inetOrgPerson. Se sètz pas segur de la classa d'utilizar, demandatz a l'administrator de l'annuari.",
+ "The filter specifies which LDAP users shall have access to the %s instance." : "Lo filtre especifica quins utilizaires LDAP auràn accès a l'instància %s.",
+ "Verify settings and count users" : "Verificar los paramètres e comptar los utilizaires",
"Saving" : "Enregistrament...",
"Back" : "Retorn",
"Continue" : "Contunhar",
"LDAP" : "LDAP",
"Expert" : "Expèrt",
"Advanced" : "Avançat",
- "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertissement :</b> Les applications user_ldap e user_webdavauth son incompatibles. Des dysfoncionaments pòdon survenir. Contactez vòstre administrator sistèma per qu'il en désactive une.",
- "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo module php LDAP es pas installat, per conséquent aquesta extension ne pourra fonctionner. Contactatz vòstre administrator sistèma afin qu'il l'installe.",
+ "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Avertiment :</b> Las aplicacions user_ldap e user_webdavauth son incompatiblas. De disfoncionaments se pòdon provesir. Contactatz vòstre administrator sistèma per que ne desactive una.",
+ "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Atencion :</b> Lo modul php LDAP es pas installat, per consequéncia aquesta extension poirà pas foncionar. Contactatz vòstre administrator sistèma per tal que l'installe.",
"Connection Settings" : "Paramètres de connexion",
- "Configuration Active" : "Configuracion active",
- "When unchecked, this configuration will be skipped." : "Quand non cochée, la configuracion serà ignorada.",
+ "Configuration Active" : "Configuracion activa",
+ "When unchecked, this configuration will be skipped." : "Quand pas marcada, la configuracion serà ignorada.",
"Backup (Replica) Host" : "Servidor de backup (replica)",
- "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Fournir un servidor de backup opcional. Il deu s'agir d'una replica del servidor LDAP/AD principal.",
+ "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Provesir un servidor de backup opcional. Se deu agir d'una replica del servidor LDAP/AD principal.",
"Backup (Replica) Port" : "Pòrt del servidor de backup (replica)",
"Disable Main Server" : "Desactivar lo servidor principal",
- "Only connect to the replica server." : "Se connecter unicament a la replica",
- "Turn off SSL certificate validation." : "Desactivar la validacion des certificats SSL",
- "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Non recomandat, a utiliser a des fins de tests unicament. Se la connexion ne fonctionne qu'amb aquesta option, importez lo certificat SSL del servidor LDAP dins lo servidor %s.",
- "Cache Time-To-Live" : "Durada de vie de l'escondedor (TTL)",
- "in seconds. A change empties the cache." : "en segondas. Tot cambiament vide l'escondedor.",
+ "Only connect to the replica server." : "Se connectar unicament a la replica",
+ "Turn off SSL certificate validation." : "Desactivar la validacion dels certificats SSL",
+ "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Pas recomandat, d'utilizar amb d'objectius de tèsts unicament. Se la connexion fonciona pas qu'amb aquesta opcion, importatz lo certificat SSL del servidor LDAP dins lo servidor %s.",
+ "Cache Time-To-Live" : "Durada de vida de l'escondedor (TTL)",
+ "in seconds. A change empties the cache." : "en segondas. Tot cambiament voida l'escondedor.",
"Directory Settings" : "Paramètres del repertòri",
"User Display Name Field" : "Camp \"nom d'afichatge\" de l'utilizaire",
"The LDAP attribute to use to generate the user's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge de l'utilizaire.",
"Base User Tree" : "DN raiç de l'arbre utilizaires",
- "One User Base DN per line" : "Un DN de base utilizaire per linha",
+ "One User Base DN per line" : "Un DN de basa utilizaire per linha",
"User Search Attributes" : "Atributs de recèrca utilizaires",
"Optional; one attribute per line" : "Opcional, un atribut per linha",
"Group Display Name Field" : "Camp \"nom d'afichatge\" del grop",
"The LDAP attribute to use to generate the groups's display name." : "L'atribut LDAP utilizat per generar lo nom d'afichatge del grop.",
"Base Group Tree" : "DN raiç de l'arbre gropes",
- "One Group Base DN per line" : "Un DN de base grop per linha",
+ "One Group Base DN per line" : "Un DN de basa grop per linha",
"Group Search Attributes" : "Atributs de recèrca des gropes",
- "Group-Member association" : "Association grop-membre",
- "Nested Groups" : "Gropes imbriqués",
- "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes contenant d'autres gropes son pris en charge (fonctionne unicament se l'atribut membre del grop conten des DNs).",
+ "Group-Member association" : "Associacion grop-membre",
+ "Nested Groups" : "Gropes imbricats",
+ "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Se activat, los gropes que contenon d'autres gropes son preses en carga (fonciona unicament se l'atribut membre del grop conten de DNs).",
"Paging chunksize" : "Paging chunksize",
- "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per les recherches LDAP paginées qui pòdon retourner des résultats per lots coma una énumération d'utilizaires o de gropes. (Configurar a 0 per desactivar les recherches LDAP paginées)",
- "Special Attributes" : "Atributs spéciaux",
- "Quota Field" : "Camp del quota",
- "Quota Default" : "Quota per defaut",
+ "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Chunksize utilizada per las recèrcas LDAP paginadas que pòdon tornar de resultats per lòts coma una enumeracion d'utilizaires o de gropes. (Configurar a 0 per desactivar las recèrcas LDAP paginadas)",
+ "Special Attributes" : "Atributs especials",
+ "Quota Field" : "Camp del quòta",
+ "Quota Default" : "Quòta per defaut",
"in bytes" : "en octets",
"Email Field" : "Camp Email",
- "User Home Folder Naming Rule" : "Règla de nommage del repertòri utilizaire",
- "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Laisser vide per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.",
- "Internal Username" : "Nom d'utilizaire interne",
- "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire interne serà créé a partir de l'atribut UUID. Ceci permet d'assurer que lo nom d'utilizaire es unique e que les caractèrs ne nécessitent pas de conversion. Lo nom d'utilizaire interne deu contenir unicament les caractèrs seguents : [ a-zA-Z0-9_.@- ]. Les autres caractèrs son remplacés per lor correspondance ASCII o simplement omis. En cas de collision, un nombre es ajouté/incrémenté. Lo nom d'utilizaire interne es utilizat per identifier l'utilizaire al sein del sistèma. C'est tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Il fait tanben partie de certains URL de services, per exemple per tous les services *DAV. Lo comportement per defaut pòt èsser modificat a l'aide de ce paramètre. Per obtenir un comportement similaire aux versions precedentas a ownCloud 5, saisir lo nom d'utilizaire a afichar dins lo camp seguent. Laisser a blanc per lo comportement per defaut. Les modifications prendront effet solament per les nouveaux (ajoutés) utilizaires LDAP.",
- "Internal Username Attribute:" : "Nom d'utilizaire interne :",
- "Override UUID detection" : "Passer outre la détection des UUID",
- "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es automaticament detectat. Aqueste attribut es utilizat per identifier los utilizaires e gropes de façon fiable. Un nom d'utilizaire interne basé sus l'UUID serà automaticament créé, sauf s'il es especificat autrement çaisús. Podètz modificar ce comportement e définir l'atribut de votre choix. Vos cal alors vous assurer que l'atribut de votre choix pòt èsser recuperat per los utilizaires ainsi que per los gropes e qu'il soit unique. Laisser a blanc per lo comportement per defaut. Les modifications seront effectives unicament per les nouveaux (ajoutés) utilizaires e gropes LDAP.",
- "UUID Attribute for Users:" : "Atribut UUID per les Utilizaires :",
- "UUID Attribute for Groups:" : "Atribut UUID per los Gropes :",
- "Username-LDAP User Mapping" : "Association Nom d'utilizaire-Utilizaire LDAP",
- "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Les noms d'utilizaires son utilizats per lo stockage e l'assignation de (meta) donadas. Per identifier e reconéisser précisément los utilizaires, cada utilizaire LDAP aura un nom interne spécifique. Cela requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire créé es associat a l'atribut UUID de l'utilizaire LDAP. Per ailleurs, lo DN es mémorisé en cache per limiter les interactions LDAP mas il es pas utilizat per l'identification. Se lo DN es modificat, ces modifications seront retrobadas. Seul lo nom interne a ownCloud es utilizat al sein del produit. Suprimir les associations creara des orphelins e l'action affectera totas les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mas unicament sus des environaments de tests e d'expérimentations.",
- "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire interne-utilizaire LDAP",
+ "User Home Folder Naming Rule" : "Règla de nomenatge del repertòri utilizaire",
+ "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Daissar void per user name (defaut). Podètz tanben especificar un atribut LDAP / AD.",
+ "Internal Username" : "Nom d'utilizaire intèrne",
+ "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Per defaut lo nom d'utilizaire intèrne serà creat a partir de l'atribut UUID. Aquò permet d'assegurar que lo nom d'utilizaire es unic e que los caractèrs necessitan pas de conversion. Lo nom d'utilizaire intèrne deu contenir unicament los caractèrs seguents : [ a-zA-Z0-9_.@- ]. Los autres caractèrs son remplaçats per lor correspondéncia ASCII o simplament omeses. En cas de collision, un nombre es apondut/incrementat. Lo nom d'utilizaire intèrne es utilizat per identificar l'utilizaire al dintre del sistèma. Es tanben lo nom per defaut del repertòri utilizaire dins ownCloud. Fa tanben partida de certans URL de servicis, per exemple per totes los servicis *DAV. Lo comportament per defaut pòt èsser modificat amb l'ajuda d'aqueste paramètre. Per obtenir un comportament similar a las versions precedentas a ownCloud 5, sasir lo nom d'utilizaire d'afichar dins lo camp seguent. Daissar a blanc pel comportement per defaut. Las modificacions prendràn efièch solament pels novèls (aponduts) utilizaires LDAP.",
+ "Internal Username Attribute:" : "Nom d'utilizaire intèrne :",
+ "Override UUID detection" : "Passar outra la deteccion des UUID",
+ "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Per defaut, l'atribut UUID es detectat automaticament. Aqueste atribut es utilizat per identificar los utilizaires e gropes de faiçon fisabla. Un nom d'utilizaire intèrne basat sus l'UUID serà automaticament creat, levat s'es especificat autrament çaisús. Podètz modificar aqueste comportament e definir l'atribut que volètz. Vos cal alara vos assegurar que l'atribut que volètz pòt èsser recuperat pels utilizaires e tanben pels gropes e que siá unic. Daissar a blanc pel comportament per defaut. Las modificacions seràn efectivas unicament pels novèls (aponduts) utilizaires e gropes LDAP.",
+ "UUID Attribute for Users:" : "Atribut UUID pels Utilizaires :",
+ "UUID Attribute for Groups:" : "Atribut UUID pels Gropes :",
+ "Username-LDAP User Mapping" : "Associacion Nom d'utilizaire-Utilizaire LDAP",
+ "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los noms d'utilizaires son utilizats per l'emmagazinatge e l'assignacion de (meta) donadas. Per identificar e reconéisser precisament los utilizaires, cada utilizaire LDAP aurà un nom intèrne especific. Aquò requerís l'associacion d'un nom d'utilizaire ownCloud a un nom d'utilizaire LDAP. Lo nom d'utilizaire creat es associat a l'atribut UUID de l'utilizaire LDAP. Amai, lo DN es memorizat en escondedor per limitar las interaccions LDAP mas es pas utilizat per l'identificacion. Se lo DN es modificat, aquelas modificacions seràn retrobadas. Sol lo nom intèrne a ownCloud es utilizat al dintre del produch. Suprimir las associacions crearà d'orfanèls e l'accion afectarà totas las configuracions LDAP. SUPRIMISSÈTZ PAS JAMAI LAS ASSOCIACIONS EN ENVIRONAMENT DE PRODUCCION, mas unicament sus d'environaments de tèsts e d'experimentacions.",
+ "Clear Username-LDAP User Mapping" : "Suprimir l'associacion utilizaire intèrne-utilizaire LDAP",
"Clear Groupname-LDAP Group Mapping" : "Suprimir l'associacion nom de grop-grop LDAP"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/l10n/pt_PT.js b/apps/user_ldap/l10n/pt_PT.js
index 2170def2922..d323732e061 100644
--- a/apps/user_ldap/l10n/pt_PT.js
+++ b/apps/user_ldap/l10n/pt_PT.js
@@ -44,8 +44,11 @@ OC.L10N.register(
"Test Configuration" : "Testar a configuração",
"Help" : "Ajuda",
"Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:",
+ "Available groups" : "Grupos disponiveis",
"Selected groups" : "Grupos seleccionados",
+ "LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância %s.",
+ "LDAP / AD Username:" : "Nome de Utilizador LDAP / AD:",
"Other Attributes:" : "Outros Atributos:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a aplicar, quando se tenta uma sessão. %%uid substitui o nome de utilizador na ação de início de sessão. Exemplo: \"uid=%%uid\"",
"Verify settings" : "Verificar definições",
@@ -62,10 +65,13 @@ OC.L10N.register(
"For anonymous access, leave DN and Password empty." : "Para acesso anónimo, deixe DN e a Palavra-passe vazios.",
"One Base DN per line" : "Uma base DN por linho",
"You can specify Base DN for users and groups in the Advanced tab" : "Pode especificar o ND Base para utilizadores e grupos no separador Avançado",
+ "Detect Base DN" : "Detectar Base DN",
+ "Test Base DN" : "Testar Base DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita pedidos LDAP automáticos. Melhor para grandes configurações, mas requer conhecimentos LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Introduzir filtros LDAP manualmente (recomendado para directórios grandes)",
"Limit %s access to users meeting these criteria:" : "Limitar o acesso a %s de utilizadores com estes critérios:",
"The filter specifies which LDAP users shall have access to the %s instance." : "O filtro especifica quais utilizadores do LDAP devem ter acesso à instância %s.",
+ "Verify settings and count users" : "Verificar definições e contar utilizadores",
"Saving" : "Guardando",
"Back" : "Voltar",
"Continue" : "Continuar",
diff --git a/apps/user_ldap/l10n/pt_PT.json b/apps/user_ldap/l10n/pt_PT.json
index f6fd6e48067..409b1873d10 100644
--- a/apps/user_ldap/l10n/pt_PT.json
+++ b/apps/user_ldap/l10n/pt_PT.json
@@ -42,8 +42,11 @@
"Test Configuration" : "Testar a configuração",
"Help" : "Ajuda",
"Groups meeting these criteria are available in %s:" : "Grupos que satisfazerem estes critérios estão disponíveis em %s:",
+ "Available groups" : "Grupos disponiveis",
"Selected groups" : "Grupos seleccionados",
+ "LDAP Filter:" : "Filtro LDAP:",
"The filter specifies which LDAP groups shall have access to the %s instance." : "O filtro especifica quais grupos LDAP devem ter acesso à instância %s.",
+ "LDAP / AD Username:" : "Nome de Utilizador LDAP / AD:",
"Other Attributes:" : "Outros Atributos:",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Define o filtro a aplicar, quando se tenta uma sessão. %%uid substitui o nome de utilizador na ação de início de sessão. Exemplo: \"uid=%%uid\"",
"Verify settings" : "Verificar definições",
@@ -60,10 +63,13 @@
"For anonymous access, leave DN and Password empty." : "Para acesso anónimo, deixe DN e a Palavra-passe vazios.",
"One Base DN per line" : "Uma base DN por linho",
"You can specify Base DN for users and groups in the Advanced tab" : "Pode especificar o ND Base para utilizadores e grupos no separador Avançado",
+ "Detect Base DN" : "Detectar Base DN",
+ "Test Base DN" : "Testar Base DN",
"Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita pedidos LDAP automáticos. Melhor para grandes configurações, mas requer conhecimentos LDAP.",
"Manually enter LDAP filters (recommended for large directories)" : "Introduzir filtros LDAP manualmente (recomendado para directórios grandes)",
"Limit %s access to users meeting these criteria:" : "Limitar o acesso a %s de utilizadores com estes critérios:",
"The filter specifies which LDAP users shall have access to the %s instance." : "O filtro especifica quais utilizadores do LDAP devem ter acesso à instância %s.",
+ "Verify settings and count users" : "Verificar definições e contar utilizadores",
"Saving" : "Guardando",
"Back" : "Voltar",
"Continue" : "Continuar",
diff --git a/config/config.sample.php b/config/config.sample.php
index e0c486d75c1..cf4b25b0674 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -417,19 +417,21 @@ $CONFIG = array(
*
* Available values:
*
- * * ``auto`` default setting. keeps files and folders in the trash bin
- * for 30 days and automatically deletes anytime after that
- * if space is needed (note: files may not be deleted if space
- * is not needed).
- * * ``D, auto`` keeps files and folders in the trash bin for D+ days,
- * delete anytime if space needed (note: files may not be deleted
- * if space is not needed)
- * * ``auto, D`` delete all files in the trash bin that are older than D days
- * automatically, delete other files anytime if space needed
- * * ``D1, D2`` keep files and folders the in trash bin for at least D1 days
- * and delete when exceeds D2 days
- * * ``disabled`` trash bin auto clean disabled, files and folders will be
- * kept forever
+ * * ``auto``
+ * default setting. keeps files and folders in the trash bin for 30 days
+ * and automatically deletes anytime after that if space is needed (note:
+ * files may not be deleted if space is not needed).
+ * * ``D, auto``
+ * keeps files and folders in the trash bin for D+ days, delete anytime if
+ * space needed (note: files may not be deleted if space is not needed)
+ * * ``auto, D``
+ * delete all files in the trash bin that are older than D days
+ * automatically, delete other files anytime if space needed
+ * * ``D1, D2``
+ * keep files and folders the in trash bin for at least D1 days and
+ * delete when exceeds D2 days
+ * * ``disabled``
+ * trash bin auto clean disabled, files and folders will be kept forever
*/
'trashbin_retention_obligation' => 'auto',
@@ -448,19 +450,24 @@ $CONFIG = array(
* ownCloud 8.1 and before.
*
* Available values:
- * ``auto`` default setting. Automatically expire versions according to
- * expire rules. Please refer to Files_versions online documentation
- * for more info.
- * ``D, auto`` keep versions at least for D days, apply expire rules to all
- * versions that are older than D days
- * * ``auto, D`` delete all versions that are older than D days automatically,
- * delete other versions according to expire rules
- * * ``D1, D2`` keep versions for at least D1 days and delete when exceeds D2 days
- * ``disabled`` versions auto clean disabled, versions will be kept forever
+ *
+ * * ``auto``
+ * default setting. Automatically expire versions according to expire
+ * rules. Please refer to Files_versions online documentation for more
+ * info.
+ * * ``D, auto``
+ * keep versions at least for D days, apply expire rules to all versions
+ * that are older than D days
+ * * ``auto, D``
+ * delete all versions that are older than D days automatically, delete
+ * other versions according to expire rules
+ * * ``D1, D2``
+ * keep versions for at least D1 days and delete when exceeds D2 days
+ * * ``disabled``
+ * versions auto clean disabled, versions will be kept forever
*/
'versions_retention_obligation' => 'auto',
-
/**
* ownCloud Verifications
*
diff --git a/core/ajax/preview.php b/core/ajax/preview.php
index baa0ed4ec61..b6362fb3a70 100644
--- a/core/ajax/preview.php
+++ b/core/ajax/preview.php
@@ -26,8 +26,8 @@
\OC::$server->getSession()->close();
$file = array_key_exists('file', $_GET) ? (string)$_GET['file'] : '';
-$maxX = array_key_exists('x', $_GET) ? (int)$_GET['x'] : '36';
-$maxY = array_key_exists('y', $_GET) ? (int)$_GET['y'] : '36';
+$maxX = array_key_exists('x', $_GET) ? (int)$_GET['x'] : '32';
+$maxY = array_key_exists('y', $_GET) ? (int)$_GET['y'] : '32';
$scalingUp = array_key_exists('scalingup', $_GET) ? (bool)$_GET['scalingup'] : true;
$keepAspect = array_key_exists('a', $_GET) ? true : false;
$always = array_key_exists('forceIcon', $_GET) ? (bool)$_GET['forceIcon'] : true;
@@ -53,7 +53,7 @@ if (!$info instanceof OCP\Files\FileInfo || !$always && !\OC::$server->getPrevie
\OC_Response::setStatus(404);
} else {
$preview = new \OC\Preview(\OC_User::getUser(), 'files');
- $preview->setFile($file);
+ $preview->setFile($file, $info);
$preview->setMaxX($maxX);
$preview->setMaxY($maxY);
$preview->setScalingUp($scalingUp);
diff --git a/core/css/fixes.css b/core/css/fixes.css
index 54852eb9beb..5f917dbbe81 100644
--- a/core/css/fixes.css
+++ b/core/css/fixes.css
@@ -24,6 +24,10 @@ select {
background-image: url('../img/actions/checkmark.png');
}
+.ie8 .icon-close {
+ background-image: url('../img/actions/close.png');
+}
+
.lte9 .icon-triangle-e {
background-image: url('../img/actions/triangle-e.png');
}
diff --git a/core/css/styles.css b/core/css/styles.css
index be53580283d..df533aab318 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -186,6 +186,7 @@ html:not(.ie8) input[type="checkbox"].checkbox + label:before {
html:not(.ie8) input[type="checkbox"].checkbox:disabled +label:before { opacity: .6; }
html:not(.ie8) input[type="checkbox"].checkbox.u-left +label:before { float: left; }
+html:not(.ie8) input[type="checkbox"].checkbox.u-hidden + label:before { display: none; }
html:not(.ie8) input[type="checkbox"].checkbox--white + label:before {
background-image: url('../img/actions/checkbox-white.svg');
diff --git a/core/l10n/cs_CZ.js b/core/l10n/cs_CZ.js
index 6661318154b..3ee5bdf13db 100644
--- a/core/l10n/cs_CZ.js
+++ b/core/l10n/cs_CZ.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Aktualizováno z \"%s\" na %s",
"Repair warning: " : "Upozornění opravy:",
"Repair error: " : "Chyba opravy:",
+ "Reset log level to \"%s\"" : "Vrátit úroveň logování na \"%s\"",
"Following incompatible apps have been disabled: %s" : "Následující nekompatibilní aplikace byly zakázány: %s",
"Following apps have been disabled: %s" : "Následující aplikace byly vypnuty: %s",
"Already up to date" : "Je již aktuální",
diff --git a/core/l10n/cs_CZ.json b/core/l10n/cs_CZ.json
index bb7e050231c..5f7ed392629 100644
--- a/core/l10n/cs_CZ.json
+++ b/core/l10n/cs_CZ.json
@@ -10,6 +10,7 @@
"Updated \"%s\" to %s" : "Aktualizováno z \"%s\" na %s",
"Repair warning: " : "Upozornění opravy:",
"Repair error: " : "Chyba opravy:",
+ "Reset log level to \"%s\"" : "Vrátit úroveň logování na \"%s\"",
"Following incompatible apps have been disabled: %s" : "Následující nekompatibilní aplikace byly zakázány: %s",
"Following apps have been disabled: %s" : "Následující aplikace byly vypnuty: %s",
"Already up to date" : "Je již aktuální",
diff --git a/core/l10n/da.js b/core/l10n/da.js
index 4e689973872..f7dcb9c6836 100644
--- a/core/l10n/da.js
+++ b/core/l10n/da.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Opdaterede \"%s\" til %s",
"Repair warning: " : "Reparationsadvarsel:",
"Repair error: " : "Reparationsfejl:",
+ "Set log level to debug - current level: \"%s\"" : "Sæt log niveau til fejlfinding - nuværende niveau: \"%s\"",
+ "Reset log level to \"%s\"" : "Nulstil log niveau til \"%s\"",
"Following incompatible apps have been disabled: %s" : "Følgende inkompatible apps er blevet deaktiveret: %s",
"Following apps have been disabled: %s" : "Følgende apps er blevet deaktiveret: %s",
"Already up to date" : "Allerede opdateret",
diff --git a/core/l10n/da.json b/core/l10n/da.json
index 639f387af15..f8cfe728226 100644
--- a/core/l10n/da.json
+++ b/core/l10n/da.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "Opdaterede \"%s\" til %s",
"Repair warning: " : "Reparationsadvarsel:",
"Repair error: " : "Reparationsfejl:",
+ "Set log level to debug - current level: \"%s\"" : "Sæt log niveau til fejlfinding - nuværende niveau: \"%s\"",
+ "Reset log level to \"%s\"" : "Nulstil log niveau til \"%s\"",
"Following incompatible apps have been disabled: %s" : "Følgende inkompatible apps er blevet deaktiveret: %s",
"Following apps have been disabled: %s" : "Følgende apps er blevet deaktiveret: %s",
"Already up to date" : "Allerede opdateret",
diff --git a/core/l10n/fi_FI.js b/core/l10n/fi_FI.js
index a2ea55857c7..311b1b3555a 100644
--- a/core/l10n/fi_FI.js
+++ b/core/l10n/fi_FI.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Päivitetty \"%s\" versioon %s",
"Repair warning: " : "Korjausvaroitus:",
"Repair error: " : "Korjausvirhe:",
+ "Set log level to debug - current level: \"%s\"" : "Aseta lokitasoksi vianjäljitys - nykyinen taso: \"%s\"",
+ "Reset log level to \"%s\"" : "Palauta lokitasoksi \"%s\"",
"Following incompatible apps have been disabled: %s" : "Seuraavat yhteensopimattomat sovellukset on poistettu käytöstä: %s",
"Following apps have been disabled: %s" : "Seuraavat sovellukset on poistettu käytöstä: %s",
"Already up to date" : "Kaikki on jo ajan tasalla",
diff --git a/core/l10n/fi_FI.json b/core/l10n/fi_FI.json
index 4d74b0dd393..1ded17dc019 100644
--- a/core/l10n/fi_FI.json
+++ b/core/l10n/fi_FI.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "Päivitetty \"%s\" versioon %s",
"Repair warning: " : "Korjausvaroitus:",
"Repair error: " : "Korjausvirhe:",
+ "Set log level to debug - current level: \"%s\"" : "Aseta lokitasoksi vianjäljitys - nykyinen taso: \"%s\"",
+ "Reset log level to \"%s\"" : "Palauta lokitasoksi \"%s\"",
"Following incompatible apps have been disabled: %s" : "Seuraavat yhteensopimattomat sovellukset on poistettu käytöstä: %s",
"Following apps have been disabled: %s" : "Seuraavat sovellukset on poistettu käytöstä: %s",
"Already up to date" : "Kaikki on jo ajan tasalla",
diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js
index 91859d31998..04a71f813b8 100644
--- a/core/l10n/hu_HU.js
+++ b/core/l10n/hu_HU.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Frissítettük \"%s\"-t erre: %s",
"Repair warning: " : "Javítás figyelmeztetés:",
"Repair error: " : "Javítás hiba:",
+ "Set log level to debug - current level: \"%s\"" : "Hibakeresési naplózási szint beállítása - jelenlegi szint: \"%s\"",
+ "Reset log level to \"%s\"" : "Naplózási szint visszaállítása \"%s\"-re",
"Following incompatible apps have been disabled: %s" : "A következő nem kompatibilis applikációk lettek tiltva: %s",
"Following apps have been disabled: %s" : "A következő applikációk lettek tiltva: %s",
"Already up to date" : "Már a legfrissebb változat",
@@ -105,6 +107,7 @@ OC.L10N.register(
"No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Nem lett gyorsítótár memória beállítva. A teljesítmény növeléséhez kérem állítson be gyorsítótárat, ha lehetséges. További információ található az alábbi <a href=\"{docLink}\">dokumentációban</a>.",
"/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "a /dev/urandom eszköz nem elérhető PHP-ből, ami nagyon nagy biztonsági problémát jelent. További információ található az alábbi <a href=\"{docLink}\">dokumentációban</a>.",
"Your PHP version ({version}) is no longer <a href=\"{phpLink}\">supported by PHP</a>. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by PHP." : "A PHP verziód ({version}) már nem <a href=\"{phpLink}\">támogatott a PHP által</a>. Javasoljuk, hogy frissítsd a PHP verziót, hogy kihasználd a teljesítménybeli és biztonsági javításokat.",
+ "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "A fordított proxy fejlécek konfigurációs beállításai helytelenek, vagy egy megbízható proxy-ból próbálja az ownCloud-ot elérni. Ha nem megbízható proxy-ból próbálja elérni az ownCloud-ot, akkor ez egy biztonsági probléma, a támadó az ownCloud számára látható IP cím csalást tud végrehajtani. További információ található a <a href=\"{docLink}\">dokumentációban</a>.",
"Error occurred while checking server setup" : "Hiba történt a szerver beállítások ellenőrzése közben",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "A \"{header}\" HTTP fejléc nincs beállítva, hogy megegyezzen az elvárttal \"{expected}\". Ez egy potenciális biztonsági kockázat és kérjük, hogy változtassa meg a beállításokat.",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\">security tips</a>." : "A \"Strict-Transport-Security\" HTTP fejléc nincs beállítva hogy \"{seconds}\" másodpercig tartson. Biztonsági okokból ajánljuk, hogy engedélyezze a HSTS, ahogyan ezt részletezzük a <a href=\"{docUrl}\">biztonsági tippek</a> dokumentációban.",
@@ -144,6 +147,7 @@ OC.L10N.register(
"change" : "változtatás",
"delete" : "töröl",
"access control" : "jogosultság",
+ "Share details could not be loaded for this item." : "A megosztás részletei nem lehet betölteni ehhez az elemhez.",
"An error occured. Please try again" : "Hiba történt. Kérjük, próbáld újra!",
"Share" : "Megosztás",
"Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Megosztás más ownCloud szerverekkel, a következő formátum használatával felhasznalo@példa.com/owncloud",
@@ -180,6 +184,8 @@ OC.L10N.register(
"New Password" : "Új jelszó",
"Reset password" : "Jelszó-visszaállítás",
"Searching other places" : "Keresés más helyeken",
+ "No search results in other folders" : "Nincs keresési eredmény a másik könyvtárakban",
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} keresési eredmény egy másik könyvtárban","{count} keresési eredmény más könyvtárakban"],
"Personal" : "Személyes",
"Users" : "Felhasználók",
"Apps" : "Alkalmazások",
diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json
index 48bd6dc8f92..ba30dfe1c8c 100644
--- a/core/l10n/hu_HU.json
+++ b/core/l10n/hu_HU.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "Frissítettük \"%s\"-t erre: %s",
"Repair warning: " : "Javítás figyelmeztetés:",
"Repair error: " : "Javítás hiba:",
+ "Set log level to debug - current level: \"%s\"" : "Hibakeresési naplózási szint beállítása - jelenlegi szint: \"%s\"",
+ "Reset log level to \"%s\"" : "Naplózási szint visszaállítása \"%s\"-re",
"Following incompatible apps have been disabled: %s" : "A következő nem kompatibilis applikációk lettek tiltva: %s",
"Following apps have been disabled: %s" : "A következő applikációk lettek tiltva: %s",
"Already up to date" : "Már a legfrissebb változat",
@@ -103,6 +105,7 @@
"No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "Nem lett gyorsítótár memória beállítva. A teljesítmény növeléséhez kérem állítson be gyorsítótárat, ha lehetséges. További információ található az alábbi <a href=\"{docLink}\">dokumentációban</a>.",
"/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "a /dev/urandom eszköz nem elérhető PHP-ből, ami nagyon nagy biztonsági problémát jelent. További információ található az alábbi <a href=\"{docLink}\">dokumentációban</a>.",
"Your PHP version ({version}) is no longer <a href=\"{phpLink}\">supported by PHP</a>. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by PHP." : "A PHP verziód ({version}) már nem <a href=\"{phpLink}\">támogatott a PHP által</a>. Javasoljuk, hogy frissítsd a PHP verziót, hogy kihasználd a teljesítménybeli és biztonsági javításokat.",
+ "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a href=\"{docLink}\">documentation</a>." : "A fordított proxy fejlécek konfigurációs beállításai helytelenek, vagy egy megbízható proxy-ból próbálja az ownCloud-ot elérni. Ha nem megbízható proxy-ból próbálja elérni az ownCloud-ot, akkor ez egy biztonsági probléma, a támadó az ownCloud számára látható IP cím csalást tud végrehajtani. További információ található a <a href=\"{docLink}\">dokumentációban</a>.",
"Error occurred while checking server setup" : "Hiba történt a szerver beállítások ellenőrzése közben",
"The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "A \"{header}\" HTTP fejléc nincs beállítva, hogy megegyezzen az elvárttal \"{expected}\". Ez egy potenciális biztonsági kockázat és kérjük, hogy változtassa meg a beállításokat.",
"The \"Strict-Transport-Security\" HTTP header is not configured to least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\">security tips</a>." : "A \"Strict-Transport-Security\" HTTP fejléc nincs beállítva hogy \"{seconds}\" másodpercig tartson. Biztonsági okokból ajánljuk, hogy engedélyezze a HSTS, ahogyan ezt részletezzük a <a href=\"{docUrl}\">biztonsági tippek</a> dokumentációban.",
@@ -142,6 +145,7 @@
"change" : "változtatás",
"delete" : "töröl",
"access control" : "jogosultság",
+ "Share details could not be loaded for this item." : "A megosztás részletei nem lehet betölteni ehhez az elemhez.",
"An error occured. Please try again" : "Hiba történt. Kérjük, próbáld újra!",
"Share" : "Megosztás",
"Share with people on other ownClouds using the syntax username@example.com/owncloud" : "Megosztás más ownCloud szerverekkel, a következő formátum használatával felhasznalo@példa.com/owncloud",
@@ -178,6 +182,8 @@
"New Password" : "Új jelszó",
"Reset password" : "Jelszó-visszaállítás",
"Searching other places" : "Keresés más helyeken",
+ "No search results in other folders" : "Nincs keresési eredmény a másik könyvtárakban",
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} keresési eredmény egy másik könyvtárban","{count} keresési eredmény más könyvtárakban"],
"Personal" : "Személyes",
"Users" : "Felhasználók",
"Apps" : "Alkalmazások",
diff --git a/core/l10n/it.js b/core/l10n/it.js
index b031dfe9ab5..d10b8711976 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Aggiornato \"%s\" a %s",
"Repair warning: " : "Avviso di riparazione",
"Repair error: " : "Errore di riparazione:",
+ "Set log level to debug - current level: \"%s\"" : "Imposta il livello del log a debug - livello attuale: \"%s\"",
+ "Reset log level to \"%s\"" : "Ripristina il livello del log a \"%s\"",
"Following incompatible apps have been disabled: %s" : "Le seguenti applicazioni incompatibili sono state disabilitate: %s",
"Following apps have been disabled: %s" : "Le seguenti applicazioni sono state disabilitate: %s",
"Already up to date" : "Già aggiornato",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index 380c31b8ecb..9a49de0d76b 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "Aggiornato \"%s\" a %s",
"Repair warning: " : "Avviso di riparazione",
"Repair error: " : "Errore di riparazione:",
+ "Set log level to debug - current level: \"%s\"" : "Imposta il livello del log a debug - livello attuale: \"%s\"",
+ "Reset log level to \"%s\"" : "Ripristina il livello del log a \"%s\"",
"Following incompatible apps have been disabled: %s" : "Le seguenti applicazioni incompatibili sono state disabilitate: %s",
"Following apps have been disabled: %s" : "Le seguenti applicazioni sono state disabilitate: %s",
"Already up to date" : "Già aggiornato",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index a18d79596b5..068dd12ff98 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Bijgewerkt \"%s\" naar %s",
"Repair warning: " : "Reparatiewaarschuwing:",
"Repair error: " : "Reparatiefout:",
+ "Set log level to debug - current level: \"%s\"" : "Instellen logniveau op debug - huidige niveau: \"%s\"",
+ "Reset log level to \"%s\"" : "Terugzetten logniveau op \"#%s\"",
"Following incompatible apps have been disabled: %s" : "De volgende incompatibele apps zijn uitgeschakeld: %s",
"Following apps have been disabled: %s" : "De volgende apps zijn gedeactiveerd: %s",
"Already up to date" : "Al bijgewerkt",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index fc221886e41..a2c18a59ed1 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "Bijgewerkt \"%s\" naar %s",
"Repair warning: " : "Reparatiewaarschuwing:",
"Repair error: " : "Reparatiefout:",
+ "Set log level to debug - current level: \"%s\"" : "Instellen logniveau op debug - huidige niveau: \"%s\"",
+ "Reset log level to \"%s\"" : "Terugzetten logniveau op \"#%s\"",
"Following incompatible apps have been disabled: %s" : "De volgende incompatibele apps zijn uitgeschakeld: %s",
"Following apps have been disabled: %s" : "De volgende apps zijn gedeactiveerd: %s",
"Already up to date" : "Al bijgewerkt",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index e61218e465e..dbbd7ce2308 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Atualizado \"%s\" para %s",
"Repair warning: " : "Aviso de reparação:",
"Repair error: " : "Reparação de erro:",
+ "Set log level to debug - current level: \"%s\"" : "Configure o nível de log para debug - nível corrente: \"%s\"",
+ "Reset log level to \"%s\"" : "Reconfigurar o nível de log para \"%s\"",
"Following incompatible apps have been disabled: %s" : "Seguir aplicativos incompatíveis foi desativado: %s",
"Following apps have been disabled: %s" : "Os seguintes aplicativos foram desabilitados: %s",
"Already up to date" : "Já está atualizado",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index b11ed053b63..ef7d1bb8ec7 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "Atualizado \"%s\" para %s",
"Repair warning: " : "Aviso de reparação:",
"Repair error: " : "Reparação de erro:",
+ "Set log level to debug - current level: \"%s\"" : "Configure o nível de log para debug - nível corrente: \"%s\"",
+ "Reset log level to \"%s\"" : "Reconfigurar o nível de log para \"%s\"",
"Following incompatible apps have been disabled: %s" : "Seguir aplicativos incompatíveis foi desativado: %s",
"Following apps have been disabled: %s" : "Os seguintes aplicativos foram desabilitados: %s",
"Already up to date" : "Já está atualizado",
diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js
index c47731d17fa..94690c68a9a 100644
--- a/core/l10n/pt_PT.js
+++ b/core/l10n/pt_PT.js
@@ -149,6 +149,7 @@ OC.L10N.register(
"Share with users or groups …" : "Partilhar com utilizadores ou grupos...",
"Share with users, groups or remote users …" : "Partilhar com utilizadores, grupos ou utilizadores remotos...",
"Warning" : "Aviso",
+ "Error while sending notification" : "Erro enquanto estava a enviar a notificação",
"The object type is not specified." : "O tipo de objeto não está especificado.",
"Enter new" : "Introduza novo",
"Delete" : "Apagar",
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index fdafd1c3c01..3b6e031e26a 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -147,6 +147,7 @@
"Share with users or groups …" : "Partilhar com utilizadores ou grupos...",
"Share with users, groups or remote users …" : "Partilhar com utilizadores, grupos ou utilizadores remotos...",
"Warning" : "Aviso",
+ "Error while sending notification" : "Erro enquanto estava a enviar a notificação",
"The object type is not specified." : "O tipo de objeto não está especificado.",
"Enter new" : "Introduza novo",
"Delete" : "Apagar",
diff --git a/core/l10n/th_TH.js b/core/l10n/th_TH.js
index a7398d8eaef..e356d50c1f5 100644
--- a/core/l10n/th_TH.js
+++ b/core/l10n/th_TH.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "อัพเดท \"%s\" ไปยัง %s",
"Repair warning: " : "เตือนการซ่อมแซม:",
"Repair error: " : "เกิดข้อผิดพลาดในการซ่อมแซม:",
+ "Set log level to debug - current level: \"%s\"" : "การตั้งค่าระดับของการบันทึกเพื่อแก้ปัญหา - ระดับปัจจุบันคือ: \"%s\"",
+ "Reset log level to \"%s\"" : "รีเซ็ทระดับการบันทึกเป็น \"%s\"",
"Following incompatible apps have been disabled: %s" : "แอพพลิเคชันต่อไปนี้เข้ากันไม่ได้มันจะถูกปิดการใช้งาน: %s",
"Following apps have been disabled: %s" : "แอพฯดังต่อไปนี้ถูกปิดการใช้งาน: %s",
"Already up to date" : "มีอยู่แล้วถึงวันที่",
diff --git a/core/l10n/th_TH.json b/core/l10n/th_TH.json
index 9ff015ea8b9..a2056abd1f1 100644
--- a/core/l10n/th_TH.json
+++ b/core/l10n/th_TH.json
@@ -10,6 +10,8 @@
"Updated \"%s\" to %s" : "อัพเดท \"%s\" ไปยัง %s",
"Repair warning: " : "เตือนการซ่อมแซม:",
"Repair error: " : "เกิดข้อผิดพลาดในการซ่อมแซม:",
+ "Set log level to debug - current level: \"%s\"" : "การตั้งค่าระดับของการบันทึกเพื่อแก้ปัญหา - ระดับปัจจุบันคือ: \"%s\"",
+ "Reset log level to \"%s\"" : "รีเซ็ทระดับการบันทึกเป็น \"%s\"",
"Following incompatible apps have been disabled: %s" : "แอพพลิเคชันต่อไปนี้เข้ากันไม่ได้มันจะถูกปิดการใช้งาน: %s",
"Following apps have been disabled: %s" : "แอพฯดังต่อไปนี้ถูกปิดการใช้งาน: %s",
"Already up to date" : "มีอยู่แล้วถึงวันที่",
diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js
index c821776dfe9..378693d4538 100644
--- a/lib/l10n/et_EE.js
+++ b/lib/l10n/et_EE.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"The library %s is not available." : "Teek %s pole saadaval.",
"Following platforms are supported: %s" : "Toetatud on järgnevad platformid: %s",
"ownCloud %s or higher is required." : "ownCloud %s või uuem on nõutav.",
+ "ownCloud %s or lower is required." : "ownCloud %s või vanem on nõutav.",
"Help" : "Abiinfo",
"Personal" : "Isiklik",
"Users" : "Kasutajad",
diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json
index 9ab7cd7e2ac..e5bfae2a91d 100644
--- a/lib/l10n/et_EE.json
+++ b/lib/l10n/et_EE.json
@@ -12,6 +12,7 @@
"The library %s is not available." : "Teek %s pole saadaval.",
"Following platforms are supported: %s" : "Toetatud on järgnevad platformid: %s",
"ownCloud %s or higher is required." : "ownCloud %s või uuem on nõutav.",
+ "ownCloud %s or lower is required." : "ownCloud %s või vanem on nõutav.",
"Help" : "Abiinfo",
"Personal" : "Isiklik",
"Users" : "Kasutajad",
diff --git a/lib/private/appframework/http/request.php b/lib/private/appframework/http/request.php
index b430673f9a9..af6015b0eef 100644
--- a/lib/private/appframework/http/request.php
+++ b/lib/private/appframework/http/request.php
@@ -603,7 +603,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
if (strpos($pathInfo, $name) === 0) {
$pathInfo = substr($pathInfo, strlen($name));
}
- if($pathInfo === '/'){
+ if($pathInfo === false || $pathInfo === '/'){
return '';
} else {
return $pathInfo;
diff --git a/lib/private/files/storage/wrapper/encryption.php b/lib/private/files/storage/wrapper/encryption.php
index 805a2bc1ad0..c80e935b982 100644
--- a/lib/private/files/storage/wrapper/encryption.php
+++ b/lib/private/files/storage/wrapper/encryption.php
@@ -232,7 +232,11 @@ class Encryption extends Wrapper {
$result = $this->storage->rename($path1, $path2);
- if ($result && $this->encryptionManager->isEnabled()) {
+ if ($result &&
+ // versions always use the keys from the original file, so we can skip
+ // this step for versions
+ $this->isVersion($path2) === false &&
+ $this->encryptionManager->isEnabled()) {
$source = $this->getFullPath($path1);
if (!$this->util->isExcluded($source)) {
$target = $this->getFullPath($path2);
@@ -449,7 +453,7 @@ class Encryption extends Wrapper {
public function copyFromStorage(Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime = false) {
// TODO clean this up once the underlying moveFromStorage in OC\Files\Storage\Wrapper\Common is fixed:
- // - call $this->storage->moveFromStorage() instead of $this->copyBetweenStorage
+ // - call $this->storage->copyFromStorage() instead of $this->copyBetweenStorage
// - copy the file cache update from $this->copyBetweenStorage to this method
// - copy the copyKeys() call from $this->copyBetweenStorage to this method
// - remove $this->copyBetweenStorage
@@ -469,6 +473,13 @@ class Encryption extends Wrapper {
*/
private function copyBetweenStorage(Storage $sourceStorage, $sourceInternalPath, $targetInternalPath, $preserveMtime, $isRename) {
+ // for versions we have nothing to do, because versions should always use the
+ // key from the original file. Just create a 1:1 copy and done
+ if ($this->isVersion($targetInternalPath) ||
+ $this->isVersion($sourceInternalPath)) {
+ return $this->storage->copyFromStorage($sourceStorage, $sourceInternalPath, $targetInternalPath);
+ }
+
// first copy the keys that we reuse the existing file key on the target location
// and don't create a new one which would break versions for example.
$mount = $this->mountManager->findByStorageId($sourceStorage->getId());
@@ -741,4 +752,15 @@ class Encryption extends Wrapper {
return false;
}
+ /**
+ * check if path points to a files version
+ *
+ * @param $path
+ * @return bool
+ */
+ protected function isVersion($path) {
+ $normalized = Filesystem::normalizePath($path);
+ return substr($normalized, 0, strlen('/files_versions/')) === '/files_versions/';
+ }
+
}
diff --git a/lib/private/helper.php b/lib/private/helper.php
index b8e4b451835..ba1240a5218 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -193,11 +193,11 @@ class OC_Helper {
* Returns the path to the preview of the file.
*/
public static function previewIcon($path) {
- return self::linkToRoute( 'core_ajax_preview', array('x' => 36, 'y' => 36, 'file' => $path ));
+ return self::linkToRoute( 'core_ajax_preview', array('x' => 32, 'y' => 32, 'file' => $path ));
}
public static function publicPreviewIcon( $path, $token ) {
- return self::linkToRoute( 'core_ajax_public_preview', array('x' => 36, 'y' => 36, 'file' => $path, 't' => $token));
+ return self::linkToRoute( 'core_ajax_public_preview', array('x' => 32, 'y' => 32, 'file' => $path, 't' => $token));
}
/**
@@ -274,7 +274,7 @@ class OC_Helper {
/**
* Make a computer file size
* @param string $str file size in human readable format
- * @return int a file size in bytes
+ * @return float a file size in bytes
*
* Makes 2kB to 2048.
*
@@ -283,7 +283,7 @@ class OC_Helper {
public static function computerFileSize($str) {
$str = strtolower($str);
if (is_numeric($str)) {
- return $str;
+ return floatval($str);
}
$bytes_array = array(
diff --git a/lib/private/l10n.php b/lib/private/l10n.php
index 168011cfcec..89ce2bc8d72 100644
--- a/lib/private/l10n.php
+++ b/lib/private/l10n.php
@@ -102,16 +102,11 @@ class OC_L10N implements \OCP\IL10N {
}
/**
- * @param $app
* @return string
*/
- public static function setLanguageFromRequest($app = null) {
+ public static function setLanguageFromRequest() {
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
- if (is_array($app)) {
- $available = $app;
- } else {
- $available = self::findAvailableLanguages($app);
- }
+ $available = self::findAvailableLanguages();
// E.g. make sure that 'de' is before 'de_DE'.
sort($available);
@@ -122,17 +117,13 @@ class OC_L10N implements \OCP\IL10N {
$preferred_language = str_replace('-', '_', $preferred_language);
foreach ($available as $available_language) {
if ($preferred_language === strtolower($available_language)) {
- if (!is_array($app)) {
- self::$language = $available_language;
- }
+ self::$language = $available_language;
return $available_language;
}
}
foreach ($available as $available_language) {
if (substr($preferred_language, 0, 2) === $available_language) {
- if (!is_array($app)) {
- self::$language = $available_language;
- }
+ self::$language = $available_language;
return $available_language;
}
}
@@ -469,7 +460,7 @@ class OC_L10N implements \OCP\IL10N {
return $default_language;
}
- $lang = self::setLanguageFromRequest($app);
+ $lang = self::setLanguageFromRequest();
if($userId && !$config->getUserValue($userId, 'core', 'lang')) {
$config->setUserValue($userId, 'core', 'lang', $lang);
}
@@ -503,8 +494,9 @@ class OC_L10N implements \OCP\IL10N {
* @return array an array of available languages
*/
public static function findAvailableLanguages($app=null) {
- if(!empty(self::$availableLanguages)) {
- return self::$availableLanguages;
+ // also works with null as key
+ if(isset(self::$availableLanguages[$app]) && !empty(self::$availableLanguages[$app])) {
+ return self::$availableLanguages[$app];
}
$available=array('en');//english is always available
$dir = self::findI18nDir($app);
@@ -518,7 +510,7 @@ class OC_L10N implements \OCP\IL10N {
}
}
- self::$availableLanguages = $available;
+ self::$availableLanguages[$app] = $available;
return $available;
}
diff --git a/lib/private/preview.php b/lib/private/preview.php
index 1127048b7fd..b2accdfd00f 100644
--- a/lib/private/preview.php
+++ b/lib/private/preview.php
@@ -252,12 +252,13 @@ class Preview {
* Sets the path of the file you want a preview of
*
* @param string $file
+ * @param \OCP\Files\FileInfo|null $info
*
* @return \OC\Preview
*/
- public function setFile($file) {
+ public function setFile($file, $info = null) {
$this->file = $file;
- $this->info = null;
+ $this->info = $info;
if ($file !== '') {
$this->getFileInfo();
@@ -374,7 +375,7 @@ class Preview {
return false;
}
- if (!$this->fileView->file_exists($file)) {
+ if (!$this->getFileInfo() instanceof FileInfo) {
\OCP\Util::writeLog('core', 'File:"' . $file . '" not found', \OCP\Util::DEBUG);
return false;
@@ -478,7 +479,7 @@ class Preview {
$preview = $this->buildCachePath($fileId, $previewWidth, $previewHeight);
// This checks if we have a preview of those exact dimensions in the cache
- if ($this->userView->file_exists($preview)) {
+ if ($this->thumbnailSizeExists($allThumbnails, basename($preview))) {
return $preview;
}
@@ -524,6 +525,24 @@ class Preview {
}
/**
+ * Check if a specific thumbnail size is cached
+ *
+ * @param FileInfo[] $allThumbnails the list of all our cached thumbnails
+ * @param string $name
+ * @return bool
+ */
+ private function thumbnailSizeExists(array $allThumbnails, $name) {
+
+ foreach ($allThumbnails as $thumbnail) {
+ if ($name === $thumbnail->getName()) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
* Determines the size of the preview we should be looking for in the cache
*
* @return int[]
diff --git a/lib/private/preview/txt.php b/lib/private/preview/txt.php
index 0bba570a8c9..2fdc86d9546 100644
--- a/lib/private/preview/txt.php
+++ b/lib/private/preview/txt.php
@@ -53,7 +53,7 @@ class TXT extends Provider {
$lines = preg_split("/\r\n|\n|\r/", $content);
- $fontSize = ($maxX) ? (int) ((5 / 36) * $maxX) : 5; //5px
+ $fontSize = ($maxX) ? (int) ((5 / 32) * $maxX) : 5; //5px
$lineSize = ceil($fontSize * 1.25);
$image = imagecreate($maxX, $maxY);
diff --git a/lib/private/repair.php b/lib/private/repair.php
index 3639440a518..20219e313fd 100644
--- a/lib/private/repair.php
+++ b/lib/private/repair.php
@@ -44,6 +44,7 @@ use OC\Repair\RepairLegacyStorages;
use OC\Repair\RepairMimeTypes;
use OC\Repair\SearchLuceneTables;
use OC\Repair\UpdateOutdatedOcsIds;
+use OC\Repair\RepairInvalidShares;
class Repair extends BasicEmitter {
/**
@@ -113,6 +114,7 @@ class Repair extends BasicEmitter {
new DropOldJobs(\OC::$server->getJobList()),
new RemoveGetETagEntries(\OC::$server->getDatabaseConnection()),
new UpdateOutdatedOcsIds(\OC::$server->getConfig()),
+ new RepairInvalidShares(\OC::$server->getConfig(), \OC::$server->getDatabaseConnection()),
];
}
diff --git a/lib/repair/repairinvalidshares.php b/lib/repair/repairinvalidshares.php
new file mode 100644
index 00000000000..21b4d8013e7
--- /dev/null
+++ b/lib/repair/repairinvalidshares.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * @author Vincent Petry <pvince81@owncloud.com>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Repair;
+
+use OC\Hooks\BasicEmitter;
+
+/**
+ * Repairs shares with invalid data
+ */
+class RepairInvalidShares extends BasicEmitter implements \OC\RepairStep {
+
+ /**
+ * @var \OCP\IConfig
+ */
+ protected $config;
+
+ /**
+ * @var \OCP\IDBConnection
+ */
+ protected $connection;
+
+ /**
+ * @param \OCP\IConfig $config
+ * @param \OCP\IDBConnection $connection
+ */
+ public function __construct($config, $connection) {
+ $this->connection = $connection;
+ $this->config = $config;
+ }
+
+ public function getName() {
+ return 'Repair invalid shares';
+ }
+
+ /**
+ * Past bugs would make it possible to set an expiration date on user shares even
+ * though it is not supported. This functions removes the expiration date from such entries.
+ */
+ private function removeExpirationDateFromNonLinkShares() {
+ $builder = $this->connection->getQueryBuilder();
+ $builder
+ ->update('share')
+ ->set('expiration', 'null')
+ ->where($builder->expr()->isNotNull('expiration'))
+ ->andWhere($builder->expr()->neq('share_type', $builder->expr()->literal(\OC\Share\Constants::SHARE_TYPE_LINK)));
+
+ $updatedEntries = $builder->execute();
+ if ($updatedEntries > 0) {
+ $this->emit('\OC\Repair', 'info', array('Removed invalid expiration date from ' . $updatedEntries . ' shares'));
+ }
+ }
+
+ public function run() {
+ $ocVersionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0');
+ if (version_compare($ocVersionFromBeforeUpdate, '8.2.0.7', '<')) {
+ // this situation was only possible before 8.2
+ $this->removeExpirationDateFromNonLinkShares();
+ }
+ }
+}
diff --git a/settings/admin.php b/settings/admin.php
index c8bf1d32749..31c9b8c1376 100644
--- a/settings/admin.php
+++ b/settings/admin.php
@@ -37,7 +37,7 @@ OC_Util::checkAdminUser();
OC_App::setActiveNavigationEntry("admin");
$template = new OC_Template('settings', 'admin', 'user');
-$l = OC_L10N::get('settings');
+$l = \OC::$server->getL10N('settings');
$showLog = (\OC::$server->getConfig()->getSystemValue('log_type', 'owncloud') === 'owncloud');
$numEntriesToLoad = 3;
diff --git a/settings/l10n/oc.js b/settings/l10n/oc.js
index 3fce61d224b..ac741571911 100644
--- a/settings/l10n/oc.js
+++ b/settings/l10n/oc.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"settings",
{
+ "APCu" : "APCu",
"Security & setup warnings" : "Avertiments de seguretat & configuracion",
"Sharing" : "Partiment",
"Server-side encryption" : "Chiframent costat servidor",
@@ -54,6 +55,9 @@ OC.L10N.register(
"Migration in progress. Please wait until the migration is finished" : "Migracion en cors. Esperatz qu'aquela s'acabe",
"Migration started …" : "Migracion aviada...",
"Sending..." : "Mandadís en cors...",
+ "Official" : "Oficial",
+ "Approved" : "Aprovat",
+ "Experimental" : "Experimental",
"All" : "Totes",
"Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Las aplicacions oficialas son desvolopadas per e amb la comunautat ownCloud. Ofrisson sas foncionalitats principalas a ownCloud e son prèstas per una utilizacion en produccion. ",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicacions aprovadas son creadas per de desvolopaires de fisança e an passat los tèst de seguretat. Son activament mantengudas dins un depaus dobèrt e lors desvolopaires pensan que son establas per una utilizacion normala.",
@@ -69,6 +73,7 @@ OC.L10N.register(
"Uninstalling ...." : "Desinstallacion...",
"Error while uninstalling app" : "Error al moment de la desinstallacion de l'aplicacion",
"Uninstall" : "Desinstallar",
+ "An error occurred: {message}" : "Una error s'es produsida : {message}",
"Select a profile picture" : "Seleccionar una fòto de perfil ",
"Very weak password" : "Senhal de fòrt febla seguretat",
"Weak password" : "Senhal de febla seguretat",
diff --git a/settings/l10n/oc.json b/settings/l10n/oc.json
index b1df1e9bd24..11a67d294e7 100644
--- a/settings/l10n/oc.json
+++ b/settings/l10n/oc.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "APCu" : "APCu",
"Security & setup warnings" : "Avertiments de seguretat & configuracion",
"Sharing" : "Partiment",
"Server-side encryption" : "Chiframent costat servidor",
@@ -52,6 +53,9 @@
"Migration in progress. Please wait until the migration is finished" : "Migracion en cors. Esperatz qu'aquela s'acabe",
"Migration started …" : "Migracion aviada...",
"Sending..." : "Mandadís en cors...",
+ "Official" : "Oficial",
+ "Approved" : "Aprovat",
+ "Experimental" : "Experimental",
"All" : "Totes",
"Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use." : "Las aplicacions oficialas son desvolopadas per e amb la comunautat ownCloud. Ofrisson sas foncionalitats principalas a ownCloud e son prèstas per una utilizacion en produccion. ",
"Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicacions aprovadas son creadas per de desvolopaires de fisança e an passat los tèst de seguretat. Son activament mantengudas dins un depaus dobèrt e lors desvolopaires pensan que son establas per una utilizacion normala.",
@@ -67,6 +71,7 @@
"Uninstalling ...." : "Desinstallacion...",
"Error while uninstalling app" : "Error al moment de la desinstallacion de l'aplicacion",
"Uninstall" : "Desinstallar",
+ "An error occurred: {message}" : "Una error s'es produsida : {message}",
"Select a profile picture" : "Seleccionar una fòto de perfil ",
"Very weak password" : "Senhal de fòrt febla seguretat",
"Weak password" : "Senhal de febla seguretat",
diff --git a/settings/personal.php b/settings/personal.php
index 0cfdc9ed371..26e730d8089 100644
--- a/settings/personal.php
+++ b/settings/personal.php
@@ -148,7 +148,7 @@ sort($groups2);
$tmpl->assign('groups', $groups2);
// add hardcoded forms from the template
-$l = OC_L10N::get('settings');
+$l = \OC::$server->getL10N('settings');
$formsAndMore = [];
$formsAndMore[]= ['anchor' => 'clientsbox', 'section-name' => $l->t('Sync clients')];
$formsAndMore[]= ['anchor' => 'passwordform', 'section-name' => $l->t('Personal info')];
diff --git a/tests/lib/appframework/http/RequestTest.php b/tests/lib/appframework/http/RequestTest.php
index deb28909869..e9a0755d1f8 100644
--- a/tests/lib/appframework/http/RequestTest.php
+++ b/tests/lib/appframework/http/RequestTest.php
@@ -60,18 +60,18 @@ class RequestTest extends \Test\TestCase {
);
// Countable
- $this->assertEquals(2, count($request));
+ $this->assertSame(2, count($request));
// Array access
- $this->assertEquals('Joey', $request['nickname']);
+ $this->assertSame('Joey', $request['nickname']);
// "Magic" accessors
- $this->assertEquals('Joey', $request->{'nickname'});
+ $this->assertSame('Joey', $request->{'nickname'});
$this->assertTrue(isset($request['nickname']));
$this->assertTrue(isset($request->{'nickname'}));
- $this->assertEquals(false, isset($request->{'flickname'}));
+ $this->assertFalse(isset($request->{'flickname'}));
// Only testing 'get', but same approach for post, files etc.
- $this->assertEquals('Joey', $request->get['nickname']);
+ $this->assertSame('Joey', $request->get['nickname']);
// Always returns null if variable not set.
- $this->assertEquals(null, $request->{'flickname'});
+ $this->assertSame(null, $request->{'flickname'});
}
@@ -92,9 +92,9 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals(3, count($request));
- $this->assertEquals('Janey', $request->{'nickname'});
- $this->assertEquals('Johnny Weissmüller', $request->{'name'});
+ $this->assertSame(3, count($request));
+ $this->assertSame('Janey', $request->{'nickname'});
+ $this->assertSame('Johnny Weissmüller', $request->{'name'});
}
@@ -172,10 +172,10 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('GET', $request->method);
+ $this->assertSame('GET', $request->method);
$result = $request->get;
- $this->assertEquals('John Q. Public', $result['name']);
- $this->assertEquals('Joey', $result['nickname']);
+ $this->assertSame('John Q. Public', $result['name']);
+ $this->assertSame('Joey', $result['nickname']);
}
public function testJsonPost() {
@@ -194,12 +194,12 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('POST', $request->method);
+ $this->assertSame('POST', $request->method);
$result = $request->post;
- $this->assertEquals('John Q. Public', $result['name']);
- $this->assertEquals('Joey', $result['nickname']);
- $this->assertEquals('Joey', $request->params['nickname']);
- $this->assertEquals('Joey', $request['nickname']);
+ $this->assertSame('John Q. Public', $result['name']);
+ $this->assertSame('Joey', $result['nickname']);
+ $this->assertSame('Joey', $request->params['nickname']);
+ $this->assertSame('Joey', $request['nickname']);
}
public function testPatch() {
@@ -219,11 +219,11 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('PATCH', $request->method);
+ $this->assertSame('PATCH', $request->method);
$result = $request->patch;
- $this->assertEquals('John Q. Public', $result['name']);
- $this->assertEquals('Joey', $result['nickname']);
+ $this->assertSame('John Q. Public', $result['name']);
+ $this->assertSame('Joey', $result['nickname']);
}
public function testJsonPatchAndPut() {
@@ -244,11 +244,11 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('PUT', $request->method);
+ $this->assertSame('PUT', $request->method);
$result = $request->put;
- $this->assertEquals('John Q. Public', $result['name']);
- $this->assertEquals('Joey', $result['nickname']);
+ $this->assertSame('John Q. Public', $result['name']);
+ $this->assertSame('Joey', $result['nickname']);
// PATCH content
$data = '{"name": "John Q. Public", "nickname": null}';
@@ -265,11 +265,11 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('PATCH', $request->method);
+ $this->assertSame('PATCH', $request->method);
$result = $request->patch;
- $this->assertEquals('John Q. Public', $result['name']);
- $this->assertEquals(null, $result['nickname']);
+ $this->assertSame('John Q. Public', $result['name']);
+ $this->assertSame(null, $result['nickname']);
}
public function testPutStream() {
@@ -290,10 +290,10 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('PUT', $request->method);
+ $this->assertSame('PUT', $request->method);
$resource = $request->put;
$contents = stream_get_contents($resource);
- $this->assertEquals($data, $contents);
+ $this->assertSame($data, $contents);
try {
$resource = $request->put;
@@ -322,7 +322,7 @@ class RequestTest extends \Test\TestCase {
$newParams = array('id' => '3', 'test' => 'test2');
$request->setUrlParameters($newParams);
- $this->assertEquals('test2', $request->getParam('test'));
+ $this->assertSame('test2', $request->getParam('test'));
$this->assertEquals('3', $request->getParam('id'));
$this->assertEquals('3', $request->getParams()['id']);
}
@@ -660,7 +660,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals($matches, $request->isUserAgent($userAgent));
+ $this->assertSame($matches, $request->isUserAgent($userAgent));
}
/**
@@ -749,7 +749,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('from.server.name:8080', $request->getInsecureServerHost());
+ $this->assertSame('from.server.name:8080', $request->getInsecureServerHost());
}
public function testInsecureServerHostHttpHostHeader() {
@@ -766,7 +766,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('from.host.header:8080', $request->getInsecureServerHost());
+ $this->assertSame('from.host.header:8080', $request->getInsecureServerHost());
}
public function testInsecureServerHostHttpFromForwardedHeaderSingle() {
@@ -784,7 +784,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('from.forwarded.host:8080', $request->getInsecureServerHost());
+ $this->assertSame('from.forwarded.host:8080', $request->getInsecureServerHost());
}
public function testInsecureServerHostHttpFromForwardedHeaderStacked() {
@@ -802,7 +802,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('from.forwarded.host2:8080', $request->getInsecureServerHost());
+ $this->assertSame('from.forwarded.host2:8080', $request->getInsecureServerHost());
}
public function testGetServerHostWithOverwriteHost() {
@@ -830,7 +830,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('my.overwritten.host', $request->getServerHost());
+ $this->assertSame('my.overwritten.host', $request->getServerHost());
}
public function testGetServerHostWithTrustedDomain() {
@@ -852,7 +852,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('my.trusted.host', $request->getServerHost());
+ $this->assertSame('my.trusted.host', $request->getServerHost());
}
public function testGetServerHostWithUntrustedDomain() {
@@ -879,7 +879,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('my.trusted.host', $request->getServerHost());
+ $this->assertSame('my.trusted.host', $request->getServerHost());
}
public function testGetServerHostWithNoTrustedDomain() {
@@ -906,7 +906,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('', $request->getServerHost());
+ $this->assertSame('', $request->getServerHost());
}
public function testGetOverwriteHostDefaultNull() {
@@ -967,7 +967,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals('apps/files/', $request->getPathInfo());
+ $this->assertSame('apps/files/', $request->getPathInfo());
}
/**
@@ -1032,7 +1032,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals($expected, $request->getPathInfo());
+ $this->assertSame($expected, $request->getPathInfo());
}
/**
@@ -1055,7 +1055,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals($expected, $request->getRawPathInfo());
+ $this->assertSame($expected, $request->getRawPathInfo());
}
/**
@@ -1078,7 +1078,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals($expected, $request->getRawPathInfo());
+ $this->assertSame($expected, $request->getRawPathInfo());
}
/**
@@ -1101,7 +1101,7 @@ class RequestTest extends \Test\TestCase {
$this->stream
);
- $this->assertEquals($expected, $request->getPathInfo());
+ $this->assertSame($expected, $request->getPathInfo());
}
/**
@@ -1109,6 +1109,7 @@ class RequestTest extends \Test\TestCase {
*/
public function genericPathInfoProvider() {
return [
+ ['/core/index.php?XDEBUG_SESSION_START=14600', '/core/index.php', ''],
['/index.php/apps/files/', 'index.php', '/apps/files/'],
['/index.php/apps/files/../&amp;/&?someQueryParameter=QueryParam', 'index.php', '/apps/files/../&amp;/&'],
['/remote.php/漢字編碼方法 / 汉字编码方法', 'remote.php', '/漢字編碼方法 / 汉字编码方法'],
diff --git a/tests/lib/files/storage/wrapper/encryption.php b/tests/lib/files/storage/wrapper/encryption.php
index 44e910b901f..095405462df 100644
--- a/tests/lib/files/storage/wrapper/encryption.php
+++ b/tests/lib/files/storage/wrapper/encryption.php
@@ -558,4 +558,27 @@ class Encryption extends \Test\Files\Storage\Storage {
$this->assertFalse(false);
}
+
+ /**
+ * @dataProvider dataTestIsVersion
+ * @param string $path
+ * @param bool $expected
+ */
+ public function testIsVersion($path, $expected) {
+ $this->assertSame($expected,
+ $this->invokePrivate($this->instance, 'isVersion', [$path])
+ );
+ }
+
+ public function dataTestIsVersion() {
+ return [
+ ['files_versions/foo', true],
+ ['/files_versions/foo', true],
+ ['//files_versions/foo', true],
+ ['files/versions/foo', false],
+ ['files/files_versions/foo', false],
+ ['files_versions_test/foo', false],
+ ];
+ }
+
}
diff --git a/tests/lib/preview.php b/tests/lib/preview.php
index a135ed40d0a..e4c599c66cf 100644
--- a/tests/lib/preview.php
+++ b/tests/lib/preview.php
@@ -22,7 +22,15 @@
namespace Test;
+use OC\Files\FileInfo;
+use OC\Files\Storage\Temporary;
+use OC\Files\View;
+use Test\Traits\MountProviderTrait;
+use Test\Traits\UserTrait;
+
class Preview extends TestCase {
+ use UserTrait;
+ use MountProviderTrait;
const TEST_PREVIEW_USER1 = "test-preview-user1";
@@ -59,11 +67,7 @@ class Preview extends TestCase {
protected function setUp() {
parent::setUp();
- $userManager = \OC::$server->getUserManager();
- $userManager->clearBackends();
- $backend = new \Test\Util\User\Dummy();
- $userManager->registerBackend($backend);
- $backend->createUser(self::TEST_PREVIEW_USER1, self::TEST_PREVIEW_USER1);
+ $this->createUser(self::TEST_PREVIEW_USER1, self::TEST_PREVIEW_USER1);
$this->loginAsUser(self::TEST_PREVIEW_USER1);
$storage = new \OC\Files\Storage\Temporary([]);
@@ -75,13 +79,13 @@ class Preview extends TestCase {
// We simulate the max dimension set in the config
\OC::$server->getConfig()
- ->setSystemValue('preview_max_x', $this->configMaxWidth);
+ ->setSystemValue('preview_max_x', $this->configMaxWidth);
\OC::$server->getConfig()
- ->setSystemValue('preview_max_y', $this->configMaxHeight);
+ ->setSystemValue('preview_max_y', $this->configMaxHeight);
// Used to test upscaling
$this->maxScaleFactor = 2;
\OC::$server->getConfig()
- ->setSystemValue('preview_max_scale_factor', $this->maxScaleFactor);
+ ->setSystemValue('preview_max_scale_factor', $this->maxScaleFactor);
// We need to enable the providers we're going to use in the tests
$providers = [
@@ -92,7 +96,7 @@ class Preview extends TestCase {
'OC\\Preview\\Postscript'
];
\OC::$server->getConfig()
- ->setSystemValue('enabledPreviewProviders', $providers);
+ ->setSystemValue('enabledPreviewProviders', $providers);
// Sample is 1680x1050 JPEG
$this->prepareSample('testimage.jpg', 1680, 1050);
@@ -161,7 +165,7 @@ class Preview extends TestCase {
$fileId = $fileInfo['fileid'];
$thumbCacheFolder = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER .
- '/' . $fileId . '/';
+ '/' . $fileId . '/';
$this->assertSame(true, $this->rootView->is_dir($thumbCacheFolder), "$thumbCacheFolder \n");
@@ -318,7 +322,7 @@ class Preview extends TestCase {
// There should be no cached thumbnails
$thumbnailFolder = '/' . self::TEST_PREVIEW_USER1 . '/' . \OC\Preview::THUMBNAILS_FOLDER .
- '/' . $sampleFileId;
+ '/' . $sampleFileId;
$this->assertSame(false, $this->rootView->is_dir($thumbnailFolder));
$image = $preview->getPreview();
@@ -534,10 +538,10 @@ class Preview extends TestCase {
// Small thumbnails are always cropped
$this->keepAspect = false;
// Smaller previews should be based on the previous, larger preview, with the correct aspect ratio
- $this->createThumbnailFromBiggerCachedPreview($fileId, 36, 36);
+ $this->createThumbnailFromBiggerCachedPreview($fileId, 32, 32);
// 2nd cache query should indicate that we have a cached copy of the exact dimension
- $this->getCachedSmallThumbnail($fileId, 36, 36);
+ $this->getCachedSmallThumbnail($fileId, 32, 32);
// We create a preview in order to be able to delete the cache
$preview = $this->createPreview(rand(), rand());
@@ -611,7 +615,7 @@ class Preview extends TestCase {
// Need to take care of special postfix added to the dimensions
$postfix = '';
$isMaxPreview = ($width === $this->maxPreviewWidth
- && $height === $this->maxPreviewHeight) ? true : false;
+ && $height === $this->maxPreviewHeight) ? true : false;
if ($isMaxPreview) {
$postfix = '-max';
}
@@ -731,7 +735,7 @@ class Preview extends TestCase {
}
return $userPath . \OC\Preview::THUMBNAILS_FOLDER . '/' . $fileId
- . '/' . $width . '-' . $height . $postfix . '.png';
+ . '/' . $width . '-' . $height . $postfix . '.png';
}
/**
@@ -752,11 +756,11 @@ class Preview extends TestCase {
$this->samples[] =
[
- 'sampleFileId' => $fileInfo['fileid'],
- 'sampleFileName' => $fileName,
- 'sampleWidth' => $sampleWidth,
- 'sampleHeight' => $sampleHeight,
- 'maxPreviewWidth' => $maxPreviewWidth,
+ 'sampleFileId' => $fileInfo['fileid'],
+ 'sampleFileName' => $fileName,
+ 'sampleWidth' => $sampleWidth,
+ 'sampleHeight' => $sampleHeight,
+ 'maxPreviewWidth' => $maxPreviewWidth,
'maxPreviewHeight' => $maxPreviewHeight
];
}
@@ -915,4 +919,38 @@ class Preview extends TestCase {
$this->assertGreaterThanOrEqual(150, $image->width());
$this->assertGreaterThanOrEqual(150, $image->height());
}
+
+ public function testSetFileWithInfo() {
+ $info = new FileInfo('/foo', null, '/foo', ['mimetype' => 'foo/bar'], null);
+ $preview = new \OC\Preview();
+ $preview->setFile('/foo', $info);
+ $this->assertEquals($info, $this->invokePrivate($preview, 'getFileInfo'));
+ }
+
+ public function testIsCached() {
+ $sourceFile = __DIR__ . '/../data/testimage.png';
+ $userId = $this->getUniqueID();
+ $this->createUser($userId, 'pass');
+
+ $storage = new Temporary();
+ $storage->mkdir('files');
+ $this->registerMount($userId, $storage, '/' . $userId);
+
+ \OC_Util::tearDownFS();
+ \OC_Util::setupFS($userId);
+ $preview = new \OC\Preview($userId, 'files');
+ $view = new View('/' . $userId . '/files');
+ $view->file_put_contents('test.png', file_get_contents($sourceFile));
+ $info = $view->getFileInfo('test.png');
+ $preview->setFile('test.png', $info);
+
+ $preview->setMaxX(64);
+ $preview->setMaxY(64);
+
+ $this->assertFalse($preview->isCached($info->getId()));
+
+ $preview->getPreview();
+
+ $this->assertEquals('thumbnails/' . $info->getId() . '/64-64.png', $preview->isCached($info->getId()));
+ }
}
diff --git a/tests/lib/repair/repairinvalidsharestest.php b/tests/lib/repair/repairinvalidsharestest.php
new file mode 100644
index 00000000000..89a5ba470e1
--- /dev/null
+++ b/tests/lib/repair/repairinvalidsharestest.php
@@ -0,0 +1,123 @@
+<?php
+/**
+ * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Repair;
+
+
+use OC\Repair\RepairInvalidShares;
+use OC\Share\Constants;
+use Test\TestCase;
+
+/**
+ * Tests for repairing invalid shares
+ *
+ * @see \OC\Repair\RepairInvalidShares
+ */
+class RepairInvalidSharesTest extends TestCase {
+
+ /** @var \OC\RepairStep */
+ private $repair;
+
+ /** @var \OCP\IDBConnection */
+ private $connection;
+
+ protected function setUp() {
+ parent::setUp();
+
+ $config = $this->getMockBuilder('OCP\IConfig')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $config->expects($this->any())
+ ->method('getSystemValue')
+ ->with('version')
+ ->will($this->returnValue('8.0.0.0'));
+
+ $this->connection = \OC::$server->getDatabaseConnection();
+ $this->deleteAllShares();
+
+ /** @var \OCP\IConfig $config */
+ $this->repair = new RepairInvalidShares($config, $this->connection);
+ }
+
+ protected function tearDown() {
+ $this->deleteAllShares();
+
+ parent::tearDown();
+ }
+
+ protected function deleteAllShares() {
+ $qb = $this->connection->getQueryBuilder();
+ $qb->delete('share')->execute();
+ }
+
+ /**
+ * Test remove expiration date for non-link shares
+ */
+ public function testRemoveExpirationDateForNonLinkShares() {
+ // user share with bogus expiration date
+ $qb = $this->connection->getQueryBuilder();
+ $qb->insert('share')
+ ->values([
+ 'share_type' => $qb->expr()->literal(Constants::SHARE_TYPE_USER),
+ 'share_with' => $qb->expr()->literal('recipientuser1'),
+ 'uid_owner' => $qb->expr()->literal('user1'),
+ 'item_type' => $qb->expr()->literal('folder'),
+ 'item_source' => $qb->expr()->literal(123),
+ 'item_target' => $qb->expr()->literal('/123'),
+ 'file_source' => $qb->expr()->literal(123),
+ 'file_target' => $qb->expr()->literal('/test'),
+ 'permissions' => $qb->expr()->literal(1),
+ 'stime' => $qb->expr()->literal(time()),
+ 'expiration' => $qb->expr()->literal('2015-09-25 00:00:00')
+ ])
+ ->execute();
+
+ // select because lastInsertId does not work with OCI
+ $results = $this->connection->getQueryBuilder()
+ ->select('id')
+ ->from('share')
+ ->execute()
+ ->fetchAll();
+ $bogusShareId = $results[0]['id'];
+
+ // link share with expiration date
+ $qb = $this->connection->getQueryBuilder();
+ $qb->insert('share')
+ ->values([
+ 'share_type' => $qb->expr()->literal(Constants::SHARE_TYPE_LINK),
+ 'uid_owner' => $qb->expr()->literal('user1'),
+ 'item_type' => $qb->expr()->literal('folder'),
+ 'item_source' => $qb->expr()->literal(123),
+ 'item_target' => $qb->expr()->literal('/123'),
+ 'file_source' => $qb->expr()->literal(123),
+ 'file_target' => $qb->expr()->literal('/test'),
+ 'permissions' => $qb->expr()->literal(1),
+ 'stime' => $qb->expr()->literal(time()),
+ 'expiration' => $qb->expr()->literal('2015-09-25 00:00:00'),
+ 'token' => $qb->expr()->literal('abcdefg')
+ ])->execute();
+
+ $this->repair->run();
+
+ $results = $this->connection->getQueryBuilder()
+ ->select('*')
+ ->from('share')
+ ->orderBy('share_type', 'ASC')
+ ->execute()
+ ->fetchAll();
+
+ $this->assertCount(2, $results);
+
+ $userShare = $results[0];
+ $linkShare = $results[1];
+ $this->assertEquals($bogusShareId, $userShare['id'], 'sanity check');
+ $this->assertNull($userShare['expiration'], 'bogus expiration date was removed');
+ $this->assertNotNull($linkShare['expiration'], 'valid link share expiration date still there');
+ }
+}
+
diff --git a/version.php b/version.php
index 711d82f1ca1..925e897d1ab 100644
--- a/version.php
+++ b/version.php
@@ -23,7 +23,7 @@
// We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
// when updating major/minor version number.
-$OC_Version = array(8, 2, 0, 6);
+$OC_Version = array(8, 2, 0, 7);
// The human readable string
$OC_VersionString = '8.2 beta1';