summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/l10n/fa.js3
-rw-r--r--apps/files/l10n/fa.json3
-rw-r--r--apps/files/l10n/fr.js3
-rw-r--r--apps/files/l10n/fr.json3
-rw-r--r--apps/files_external/l10n/fr.js3
-rw-r--r--apps/files_external/l10n/fr.json3
-rw-r--r--apps/files_sharing/l10n/fr.js2
-rw-r--r--apps/files_sharing/l10n/fr.json2
-rw-r--r--apps/files_sharing/lib/controllers/sharecontroller.php16
-rw-r--r--apps/user_ldap/l10n/fa.js4
-rw-r--r--apps/user_ldap/l10n/fa.json4
-rw-r--r--core/avatar/avatarcontroller.php58
-rw-r--r--core/js/js.js1
-rw-r--r--core/l10n/fa.js1
-rw-r--r--core/l10n/fa.json1
-rw-r--r--core/l10n/fr.js4
-rw-r--r--core/l10n/fr.json4
-rw-r--r--core/l10n/hu_HU.js1
-rw-r--r--core/l10n/hu_HU.json1
-rw-r--r--lib/l10n/fa.js5
-rw-r--r--lib/l10n/fa.json5
-rw-r--r--lib/private/appframework/http/request.php1
-rw-r--r--lib/private/files/utils/scanner.php10
-rw-r--r--lib/public/appframework/controller.php8
-rw-r--r--settings/controller/certificatecontroller.php19
-rw-r--r--settings/js/personal.js46
-rw-r--r--settings/l10n/fa.js6
-rw-r--r--settings/l10n/fa.json6
-rw-r--r--settings/l10n/fr.js1
-rw-r--r--settings/l10n/fr.json1
-rw-r--r--settings/l10n/hu_HU.js1
-rw-r--r--settings/l10n/hu_HU.json1
-rw-r--r--settings/personal.php1
-rw-r--r--settings/templates/personal.php11
34 files changed, 200 insertions, 39 deletions
diff --git a/apps/files/l10n/fa.js b/apps/files/l10n/fa.js
index 1dc459ab584..b053d4af79b 100644
--- a/apps/files/l10n/fa.js
+++ b/apps/files/l10n/fa.js
@@ -94,6 +94,9 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s مورد %1$s را حذف کرد",
"You restored %1$s" : "شما %1$s را بازگردانی کردید",
"%2$s restored %1$s" : "%2$s %1$s را بازگردانی کرد",
+ "Changed by %2$s" : "تغییریافته توسط %2$s",
+ "Deleted by %2$s" : "حذف شده توسط %2$s",
+ "Restored by %2$s" : "بازگردانی شده توسط %2$s",
"%s could not be renamed as it has been deleted" : "امکان تغییر نام %s با توجه به حذف شدن آن وجود ندارد",
"%s could not be renamed" : "%s نمیتواند تغییر نام دهد.",
"Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
diff --git a/apps/files/l10n/fa.json b/apps/files/l10n/fa.json
index 4ea1170c288..0f745e7f243 100644
--- a/apps/files/l10n/fa.json
+++ b/apps/files/l10n/fa.json
@@ -92,6 +92,9 @@
"%2$s deleted %1$s" : "%2$s مورد %1$s را حذف کرد",
"You restored %1$s" : "شما %1$s را بازگردانی کردید",
"%2$s restored %1$s" : "%2$s %1$s را بازگردانی کرد",
+ "Changed by %2$s" : "تغییریافته توسط %2$s",
+ "Deleted by %2$s" : "حذف شده توسط %2$s",
+ "Restored by %2$s" : "بازگردانی شده توسط %2$s",
"%s could not be renamed as it has been deleted" : "امکان تغییر نام %s با توجه به حذف شدن آن وجود ندارد",
"%s could not be renamed" : "%s نمیتواند تغییر نام دهد.",
"Upload (max. %s)" : "آپلود (بیشترین سایز %s)",
diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js
index 665d185cd2d..650401d6fa3 100644
--- a/apps/files/l10n/fr.js
+++ b/apps/files/l10n/fr.js
@@ -96,6 +96,9 @@ OC.L10N.register(
"%2$s deleted %1$s" : "%2$s a supprimé %1$s",
"You restored %1$s" : "Vous avez restauré %1$s",
"%2$s restored %1$s" : "%2$s a restauré %1$s",
+ "Changed by %2$s" : "Modifié par %2$s",
+ "Deleted by %2$s" : "Supprimé par %2$s",
+ "Restored by %2$s" : "Restauré par %2$s",
"%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ",
"%s could not be renamed" : "%s ne peut être renommé",
"Upload (max. %s)" : "Envoi (max. %s)",
diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json
index 02601ee9d9b..5f28b9d12e7 100644
--- a/apps/files/l10n/fr.json
+++ b/apps/files/l10n/fr.json
@@ -94,6 +94,9 @@
"%2$s deleted %1$s" : "%2$s a supprimé %1$s",
"You restored %1$s" : "Vous avez restauré %1$s",
"%2$s restored %1$s" : "%2$s a restauré %1$s",
+ "Changed by %2$s" : "Modifié par %2$s",
+ "Deleted by %2$s" : "Supprimé par %2$s",
+ "Restored by %2$s" : "Restauré par %2$s",
"%s could not be renamed as it has been deleted" : "%s ne peut être renommé car il a été supprimé ",
"%s could not be renamed" : "%s ne peut être renommé",
"Upload (max. %s)" : "Envoi (max. %s)",
diff --git a/apps/files_external/l10n/fr.js b/apps/files_external/l10n/fr.js
index f183bfeef57..c5ceea05566 100644
--- a/apps/files_external/l10n/fr.js
+++ b/apps/files_external/l10n/fr.js
@@ -12,6 +12,8 @@ OC.L10N.register(
"Invalid mount point" : "Point de montage non valide",
"Objectstore forbidden" : "\"Objectstore\" interdit",
"Invalid storage backend \"%s\"" : "Service de stockage non valide : \"%s\"",
+ "Not permitted to use backend \"%s\"" : "Non autorisé à utiliser backend \"%s\"",
+ "Not permitted to use authentication mechanism \"%s\"" : "Non autorisé à utiliser le mécanisme d'authentification \"%s\"",
"Unsatisfied backend parameters" : "Paramètres manquants pour le service",
"Unsatisfied authentication mechanism parameters" : "Paramètres manquants pour la méthode d'authentification",
"Personal" : "Personnel",
@@ -77,6 +79,7 @@ OC.L10N.register(
"SMB / CIFS using OC login" : "SMB / CIFS en utilisant les identifiants OC",
"Username as share" : "Nom d'utilisateur comme nom de partage",
"OpenStack Object Storage" : "OpenStack Object Storage",
+ "Service name" : "Nom du service",
"<b>Note:</b> " : "<b>Attention :</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>Attention :</b> La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<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>Attention : </b> La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
diff --git a/apps/files_external/l10n/fr.json b/apps/files_external/l10n/fr.json
index ed5c397f302..3eab0afee30 100644
--- a/apps/files_external/l10n/fr.json
+++ b/apps/files_external/l10n/fr.json
@@ -10,6 +10,8 @@
"Invalid mount point" : "Point de montage non valide",
"Objectstore forbidden" : "\"Objectstore\" interdit",
"Invalid storage backend \"%s\"" : "Service de stockage non valide : \"%s\"",
+ "Not permitted to use backend \"%s\"" : "Non autorisé à utiliser backend \"%s\"",
+ "Not permitted to use authentication mechanism \"%s\"" : "Non autorisé à utiliser le mécanisme d'authentification \"%s\"",
"Unsatisfied backend parameters" : "Paramètres manquants pour le service",
"Unsatisfied authentication mechanism parameters" : "Paramètres manquants pour la méthode d'authentification",
"Personal" : "Personnel",
@@ -75,6 +77,7 @@
"SMB / CIFS using OC login" : "SMB / CIFS en utilisant les identifiants OC",
"Username as share" : "Nom d'utilisateur comme nom de partage",
"OpenStack Object Storage" : "OpenStack Object Storage",
+ "Service name" : "Nom du service",
"<b>Note:</b> " : "<b>Attention :</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>Attention :</b> La prise en charge de cURL par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"<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>Attention : </b> La prise en charge du FTP par PHP n'est pas activée ou installée. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index 382bc1e69e5..f0c7d6c331c 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -42,6 +42,8 @@ OC.L10N.register(
"%2$s shared %1$s with group %3$s" : "%2$s partagé %1$s avec le groupe %3$s",
"%2$s shared %1$s with you" : "%2$s a partagé %1$s avec vous",
"You shared %1$s via link" : "Vous avez partagé %1$s par lien public",
+ "Downloaded via public link" : "Téléchargé via un lien publique",
+ "Shared via public link" : "Partagé via un lien publique",
"Shares" : "Partages",
"You received %2$s as a remote share from %1$s" : "Vous avez reçu %2$s en tant que partage distant par %1$s",
"Accept" : "Accepter",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 7766b016f3b..524eb382568 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -40,6 +40,8 @@
"%2$s shared %1$s with group %3$s" : "%2$s partagé %1$s avec le groupe %3$s",
"%2$s shared %1$s with you" : "%2$s a partagé %1$s avec vous",
"You shared %1$s via link" : "Vous avez partagé %1$s par lien public",
+ "Downloaded via public link" : "Téléchargé via un lien publique",
+ "Shared via public link" : "Partagé via un lien publique",
"Shares" : "Partages",
"You received %2$s as a remote share from %1$s" : "Vous avez reçu %2$s en tant que partage distant par %1$s",
"Accept" : "Accepter",
diff --git a/apps/files_sharing/lib/controllers/sharecontroller.php b/apps/files_sharing/lib/controllers/sharecontroller.php
index 28feb3110b4..616b64e6c59 100644
--- a/apps/files_sharing/lib/controllers/sharecontroller.php
+++ b/apps/files_sharing/lib/controllers/sharecontroller.php
@@ -233,9 +233,10 @@ class ShareController extends Controller {
* @param string $token
* @param string $files
* @param string $path
+ * @param string $downloadStartSecret
* @return void|RedirectResponse
*/
- public function downloadShare($token, $files = null, $path = '') {
+ public function downloadShare($token, $files = null, $path = '', $downloadStartSecret = '') {
\OC_User::setIncognitoMode(true);
$linkItem = OCP\Share::getShareByToken($token, false);
@@ -288,6 +289,19 @@ class ShareController extends Controller {
}
}
+ /**
+ * this sets a cookie to be able to recognize the start of the download
+ * the content must not be longer than 32 characters and must only contain
+ * alphanumeric characters
+ */
+ if (!empty($downloadStartSecret)
+ && !isset($downloadStartSecret[32])
+ && preg_match('!^[a-zA-Z0-9]+$!', $downloadStartSecret) === 1) {
+
+ // FIXME: set on the response once we use an actual app framework response
+ setcookie('ocDownloadStarted', $downloadStartSecret, time() + 20, '/');
+ }
+
// download selected files
if (!is_null($files)) {
// FIXME: The exit is required here because otherwise the AppFramework is trying to add headers as well
diff --git a/apps/user_ldap/l10n/fa.js b/apps/user_ldap/l10n/fa.js
index 4e3e924d88d..082f297f98f 100644
--- a/apps/user_ldap/l10n/fa.js
+++ b/apps/user_ldap/l10n/fa.js
@@ -45,6 +45,7 @@ OC.L10N.register(
"For anonymous access, leave DN and Password empty." : "برای دسترسی ناشناس، DN را رها نموده و رمزعبور را خالی بگذارید.",
"One Base DN per line" : "یک پایه DN در هر خط",
"You can specify Base DN for users and groups in the Advanced tab" : "شما می توانید پایه DN را برای کاربران و گروه ها در زبانه Advanced مشخص کنید.",
+ "Test Base DN" : "تست DN پایه",
"Saving" : "درحال ذخیره",
"Back" : "بازگشت",
"Continue" : "ادامه",
@@ -58,6 +59,7 @@ OC.L10N.register(
"Backup (Replica) Port" : "پشتیبان گیری (بدل) پورت",
"Disable Main Server" : "غیر فعال کردن سرور اصلی",
"Turn off SSL certificate validation." : "غیرفعال کردن اعتبار گواهی نامه SSL .",
+ "Cache Time-To-Live" : "مدت زمان کش",
"Directory Settings" : "تنظیمات پوشه",
"User Display Name Field" : "فیلد نام کاربر",
"Base User Tree" : "کاربر درخت پایه",
@@ -69,6 +71,7 @@ OC.L10N.register(
"One Group Base DN per line" : "یک گروه پایه DN در هر خط",
"Group Search Attributes" : "گروه صفات جستجو",
"Group-Member association" : "انجمن گروه کاربران",
+ "Nested Groups" : "گروه‌های زیرمجموعه",
"Special Attributes" : "ویژگی های مخصوص",
"Quota Field" : "سهمیه بندی انجام نشد.",
"Quota Default" : "سهمیه بندی پیش فرض",
@@ -79,6 +82,7 @@ OC.L10N.register(
"Internal Username" : "نام کاربری داخلی",
"Internal Username Attribute:" : "ویژگی نام کاربری داخلی:",
"Override UUID detection" : "نادیده گرفتن تشخیص UUID ",
+ "UUID Attribute for Users:" : "UUID ویژگی‌ برای کاربران:",
"Username-LDAP User Mapping" : "نام کاربری - نگاشت کاربر LDAP ",
"Clear Username-LDAP User Mapping" : "پاک کردن نام کاربری- LDAP نگاشت کاربر ",
"Clear Groupname-LDAP Group Mapping" : "پاک کردن نام گروه -LDAP گروه نقشه برداری"
diff --git a/apps/user_ldap/l10n/fa.json b/apps/user_ldap/l10n/fa.json
index 5efa24f0d51..7a8b3e8212e 100644
--- a/apps/user_ldap/l10n/fa.json
+++ b/apps/user_ldap/l10n/fa.json
@@ -43,6 +43,7 @@
"For anonymous access, leave DN and Password empty." : "برای دسترسی ناشناس، DN را رها نموده و رمزعبور را خالی بگذارید.",
"One Base DN per line" : "یک پایه DN در هر خط",
"You can specify Base DN for users and groups in the Advanced tab" : "شما می توانید پایه DN را برای کاربران و گروه ها در زبانه Advanced مشخص کنید.",
+ "Test Base DN" : "تست DN پایه",
"Saving" : "درحال ذخیره",
"Back" : "بازگشت",
"Continue" : "ادامه",
@@ -56,6 +57,7 @@
"Backup (Replica) Port" : "پشتیبان گیری (بدل) پورت",
"Disable Main Server" : "غیر فعال کردن سرور اصلی",
"Turn off SSL certificate validation." : "غیرفعال کردن اعتبار گواهی نامه SSL .",
+ "Cache Time-To-Live" : "مدت زمان کش",
"Directory Settings" : "تنظیمات پوشه",
"User Display Name Field" : "فیلد نام کاربر",
"Base User Tree" : "کاربر درخت پایه",
@@ -67,6 +69,7 @@
"One Group Base DN per line" : "یک گروه پایه DN در هر خط",
"Group Search Attributes" : "گروه صفات جستجو",
"Group-Member association" : "انجمن گروه کاربران",
+ "Nested Groups" : "گروه‌های زیرمجموعه",
"Special Attributes" : "ویژگی های مخصوص",
"Quota Field" : "سهمیه بندی انجام نشد.",
"Quota Default" : "سهمیه بندی پیش فرض",
@@ -77,6 +80,7 @@
"Internal Username" : "نام کاربری داخلی",
"Internal Username Attribute:" : "ویژگی نام کاربری داخلی:",
"Override UUID detection" : "نادیده گرفتن تشخیص UUID ",
+ "UUID Attribute for Users:" : "UUID ویژگی‌ برای کاربران:",
"Username-LDAP User Mapping" : "نام کاربری - نگاشت کاربر LDAP ",
"Clear Username-LDAP User Mapping" : "پاک کردن نام کاربری- LDAP نگاشت کاربر ",
"Clear Groupname-LDAP Group Mapping" : "پاک کردن نام گروه -LDAP گروه نقشه برداری"
diff --git a/core/avatar/avatarcontroller.php b/core/avatar/avatarcontroller.php
index 4841ba00f7a..97b3615c032 100644
--- a/core/avatar/avatarcontroller.php
+++ b/core/avatar/avatarcontroller.php
@@ -140,12 +140,21 @@ class AvatarController extends Controller {
$userId = $this->userSession->getUser()->getUID();
$files = $this->request->getUploadedFile('files');
+ $headers = [];
+ if ($this->request->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE_8])) {
+ // due to upload iframe workaround, need to set content-type to text/plain
+ $headers['Content-Type'] = 'text/plain';
+ }
+
if (isset($path)) {
$path = stripslashes($path);
$node = $this->userFolder->get($path);
if ($node->getSize() > 20*1024*1024) {
- return new DataResponse(['data' => ['message' => $this->l->t('File is too big')]],
- Http::STATUS_BAD_REQUEST);
+ return new DataResponse(
+ ['data' => ['message' => $this->l->t('File is too big')]],
+ Http::STATUS_BAD_REQUEST,
+ $headers
+ );
}
$content = $node->getContent();
} elseif (!is_null($files)) {
@@ -155,20 +164,29 @@ class AvatarController extends Controller {
!\OC\Files\Filesystem::isFileBlacklisted($files['tmp_name'][0])
) {
if ($files['size'][0] > 20*1024*1024) {
- return new DataResponse(['data' => ['message' => $this->l->t('File is too big')]],
- Http::STATUS_BAD_REQUEST);
+ return new DataResponse(
+ ['data' => ['message' => $this->l->t('File is too big')]],
+ Http::STATUS_BAD_REQUEST,
+ $headers
+ );
}
$this->cache->set('avatar_upload', file_get_contents($files['tmp_name'][0]), 7200);
$content = $this->cache->get('avatar_upload');
unlink($files['tmp_name'][0]);
} else {
- return new DataResponse(['data' => ['message' => $this->l->t('Invalid file provided')]],
- Http::STATUS_BAD_REQUEST);
+ return new DataResponse(
+ ['data' => ['message' => $this->l->t('Invalid file provided')]],
+ Http::STATUS_BAD_REQUEST,
+ $headers
+ );
}
} else {
//Add imgfile
- return new DataResponse(['data' => ['message' => $this->l->t('No image or file provided')]],
- Http::STATUS_BAD_REQUEST);
+ return new DataResponse(
+ ['data' => ['message' => $this->l->t('No image or file provided')]],
+ Http::STATUS_BAD_REQUEST,
+ $headers
+ );
}
try {
@@ -179,16 +197,32 @@ class AvatarController extends Controller {
if ($image->valid()) {
$mimeType = $image->mimeType();
if ($mimeType !== 'image/jpeg' && $mimeType !== 'image/png') {
- return new DataResponse(['data' => ['message' => $this->l->t('Unknown filetype')]]);
+ return new DataResponse(
+ ['data' => ['message' => $this->l->t('Unknown filetype')]],
+ Http::STATUS_OK,
+ $headers
+ );
}
$this->cache->set('tmpAvatar', $image->data(), 7200);
- return new DataResponse(['data' => 'notsquare']);
+ return new DataResponse(
+ ['data' => 'notsquare'],
+ Http::STATUS_OK,
+ $headers
+ );
} else {
- return new DataResponse(['data' => ['message' => $this->l->t('Invalid image')]]);
+ return new DataResponse(
+ ['data' => ['message' => $this->l->t('Invalid image')]],
+ Http::STATUS_OK,
+ $headers
+ );
}
} catch (\Exception $e) {
- return new DataResponse(['data' => ['message' => $e->getMessage()]]);
+ return new DataResponse(
+ ['data' => ['message' => $e->getMessage()]],
+ Http::STATUS_OK,
+ $headers
+ );
}
}
diff --git a/core/js/js.js b/core/js/js.js
index 4f0f288bd0c..00a775b8027 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -85,6 +85,7 @@ var OC={
appConfig: window.oc_appconfig || {},
theme: window.oc_defaults || {},
coreApps:['', 'admin','log','core/search','settings','core','3rdparty'],
+ requestToken: oc_requesttoken,
menuSpeed: 50,
/**
diff --git a/core/l10n/fa.js b/core/l10n/fa.js
index e781c67281d..7a1becdbd5f 100644
--- a/core/l10n/fa.js
+++ b/core/l10n/fa.js
@@ -194,6 +194,7 @@ OC.L10N.register(
"Finish setup" : "اتمام نصب",
"Finishing …" : "در حال اتمام ...",
"Need help?" : "کمک لازم دارید ؟",
+ "See the documentation" : "مشاهده‌ی مستندات",
"Log out" : "خروج",
"Search" : "جست‌و‌جو",
"Please contact your administrator." : "لطفا با مدیر وب‌سایت تماس بگیرید.",
diff --git a/core/l10n/fa.json b/core/l10n/fa.json
index 56604614b4f..4f3d4163903 100644
--- a/core/l10n/fa.json
+++ b/core/l10n/fa.json
@@ -192,6 +192,7 @@
"Finish setup" : "اتمام نصب",
"Finishing …" : "در حال اتمام ...",
"Need help?" : "کمک لازم دارید ؟",
+ "See the documentation" : "مشاهده‌ی مستندات",
"Log out" : "خروج",
"Search" : "جست‌و‌جو",
"Please contact your administrator." : "لطفا با مدیر وب‌سایت تماس بگیرید.",
diff --git a/core/l10n/fr.js b/core/l10n/fr.js
index 6e8343a0675..9ab3dc1f1ed 100644
--- a/core/l10n/fr.js
+++ b/core/l10n/fr.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Couldn't send mail to following users: %s " : "Impossible d'envoyer un courriel aux utilisateurs suivants : %s",
"Preparing update" : "Préparation de la mise à jour",
+ "Migration tests are skipped - \"update.skip-migration-test\" is activated in config.php" : "Les tests de migration sont ignorées - \"update.skip-migration-test\" est activée dans le fichier config.php",
"Turned on maintenance mode" : "Mode de maintenance activé",
"Turned off maintenance mode" : "Mode de maintenance désactivé",
"Maintenance mode is kept active" : "Le mode de maintenance est laissé actif",
@@ -12,6 +13,8 @@ OC.L10N.register(
"Updated \"%s\" to %s" : "Mise à jour de « %s » vers %s",
"Repair warning: " : "Avertissement de réparation :",
"Repair error: " : "Erreur de réparation :",
+ "Set log level to debug - current level: \"%s\"" : "Régler le niveau de journal pour le débogage - niveau actuel: \"%s\"",
+ "Reset log level to \"%s\"" : "Réinitialiser le niveau des journaux pour \"%s\"",
"Following incompatible apps have been disabled: %s" : "Les applications incompatibles suivantes ont été désactivées : %s",
"Following apps have been disabled: %s" : "Les applications suivantes ont été désactivées : %s",
"Already up to date" : "Déjà à jour",
@@ -183,6 +186,7 @@ OC.L10N.register(
"New Password" : "Nouveau mot de passe",
"Reset password" : "Réinitialiser le mot de passe",
"Searching other places" : "Recherche en cours dans d'autres emplacements",
+ "No search results in other folders" : "Aucun résultat de recherche dans les autres dossiers",
"Personal" : "Personnel",
"Users" : "Utilisateurs",
"Apps" : "Applications",
diff --git a/core/l10n/fr.json b/core/l10n/fr.json
index 62e6ba164f6..a6c01c55636 100644
--- a/core/l10n/fr.json
+++ b/core/l10n/fr.json
@@ -1,6 +1,7 @@
{ "translations": {
"Couldn't send mail to following users: %s " : "Impossible d'envoyer un courriel aux utilisateurs suivants : %s",
"Preparing update" : "Préparation de la mise à jour",
+ "Migration tests are skipped - \"update.skip-migration-test\" is activated in config.php" : "Les tests de migration sont ignorées - \"update.skip-migration-test\" est activée dans le fichier config.php",
"Turned on maintenance mode" : "Mode de maintenance activé",
"Turned off maintenance mode" : "Mode de maintenance désactivé",
"Maintenance mode is kept active" : "Le mode de maintenance est laissé actif",
@@ -10,6 +11,8 @@
"Updated \"%s\" to %s" : "Mise à jour de « %s » vers %s",
"Repair warning: " : "Avertissement de réparation :",
"Repair error: " : "Erreur de réparation :",
+ "Set log level to debug - current level: \"%s\"" : "Régler le niveau de journal pour le débogage - niveau actuel: \"%s\"",
+ "Reset log level to \"%s\"" : "Réinitialiser le niveau des journaux pour \"%s\"",
"Following incompatible apps have been disabled: %s" : "Les applications incompatibles suivantes ont été désactivées : %s",
"Following apps have been disabled: %s" : "Les applications suivantes ont été désactivées : %s",
"Already up to date" : "Déjà à jour",
@@ -181,6 +184,7 @@
"New Password" : "Nouveau mot de passe",
"Reset password" : "Réinitialiser le mot de passe",
"Searching other places" : "Recherche en cours dans d'autres emplacements",
+ "No search results in other folders" : "Aucun résultat de recherche dans les autres dossiers",
"Personal" : "Personnel",
"Users" : "Utilisateurs",
"Apps" : "Applications",
diff --git a/core/l10n/hu_HU.js b/core/l10n/hu_HU.js
index 17edf5dd286..f90cd8d2b62 100644
--- a/core/l10n/hu_HU.js
+++ b/core/l10n/hu_HU.js
@@ -110,6 +110,7 @@ OC.L10N.register(
"/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>.",
+ "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached be van konfigurálva gyorsítótárnak, de rossz \"memcache\" PHP modul van telepítve. \\OC\\Memcache\\Memcached csak a \"memcached\"-t támogatja, és nem a \"memcache\"-t. Kérjük, nézd meg a <a href=\"{wikiLink}\">memcached wiki oldalt a modulokkal kapcsolatban</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.",
diff --git a/core/l10n/hu_HU.json b/core/l10n/hu_HU.json
index 976fd0050fe..429c5e095ea 100644
--- a/core/l10n/hu_HU.json
+++ b/core/l10n/hu_HU.json
@@ -108,6 +108,7 @@
"/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>.",
+ "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached be van konfigurálva gyorsítótárnak, de rossz \"memcache\" PHP modul van telepítve. \\OC\\Memcache\\Memcached csak a \"memcached\"-t támogatja, és nem a \"memcache\"-t. Kérjük, nézd meg a <a href=\"{wikiLink}\">memcached wiki oldalt a modulokkal kapcsolatban</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.",
diff --git a/lib/l10n/fa.js b/lib/l10n/fa.js
index 8658c4bf7fc..3e77cf40baa 100644
--- a/lib/l10n/fa.js
+++ b/lib/l10n/fa.js
@@ -54,6 +54,9 @@ OC.L10N.register(
"Microsoft Windows Platform is not supported" : "بستر Microsoft Windows پشتیبانی نمی‎‌شود",
"Cannot write into \"config\" directory" : "امکان نوشتن درون شاخه‌ی \"config\" وجود ندارد",
"Please ask your server administrator to install the module." : "لطفا از مدیر سیستم بخواهید تا ماژول را نصب کند.",
- "PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است"
+ "PHP module %s not installed." : "ماژول PHP %s نصب نشده است.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است",
+ "Please upgrade your database version" : "لطفا نسخه‌ی پایگاه‌داده‌ی خود را بروز کنید",
+ "Error occurred while checking PostgreSQL version" : "خطا در هنگام بررسی نسخه‌ی PostgreSQL"
},
"nplurals=1; plural=0;");
diff --git a/lib/l10n/fa.json b/lib/l10n/fa.json
index b1ffa2ac122..ae18861fa8a 100644
--- a/lib/l10n/fa.json
+++ b/lib/l10n/fa.json
@@ -52,6 +52,9 @@
"Microsoft Windows Platform is not supported" : "بستر Microsoft Windows پشتیبانی نمی‎‌شود",
"Cannot write into \"config\" directory" : "امکان نوشتن درون شاخه‌ی \"config\" وجود ندارد",
"Please ask your server administrator to install the module." : "لطفا از مدیر سیستم بخواهید تا ماژول را نصب کند.",
- "PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است"
+ "PHP module %s not installed." : "ماژول PHP %s نصب نشده است.",
+ "PostgreSQL >= 9 required" : "PostgreSQL >= 9 نیاز است",
+ "Please upgrade your database version" : "لطفا نسخه‌ی پایگاه‌داده‌ی خود را بروز کنید",
+ "Error occurred while checking PostgreSQL version" : "خطا در هنگام بررسی نسخه‌ی PostgreSQL"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/private/appframework/http/request.php b/lib/private/appframework/http/request.php
index 3e24eec37c8..77785135162 100644
--- a/lib/private/appframework/http/request.php
+++ b/lib/private/appframework/http/request.php
@@ -43,6 +43,7 @@ use OCP\Security\ISecureRandom;
class Request implements \ArrayAccess, \Countable, IRequest {
const USER_AGENT_IE = '/MSIE/';
+ const USER_AGENT_IE_8 = '/MSIE 8.0/';
// Android Chrome user agent: https://developers.google.com/chrome/mobile/docs/user-agent
const USER_AGENT_ANDROID_MOBILE_CHROME = '#Android.*Chrome/[.0-9]*#';
const USER_AGENT_FREEBOX = '#^Mozilla/5\.0$#';
diff --git a/lib/private/files/utils/scanner.php b/lib/private/files/utils/scanner.php
index 35e36e23cb2..460c8007bf4 100644
--- a/lib/private/files/utils/scanner.php
+++ b/lib/private/files/utils/scanner.php
@@ -31,6 +31,7 @@ use OC\Files\Cache\ChangePropagator;
use OC\Files\Filesystem;
use OC\ForbiddenException;
use OC\Hooks\PublicEmitter;
+use OC\Lock\DBLockingProvider;
/**
* Class Scanner
@@ -156,9 +157,14 @@ class Scanner extends PublicEmitter {
$scanner = $storage->getScanner();
$scanner->setUseTransactions(false);
$this->attachListener($mount);
- $this->db->beginTransaction();
+ $isDbLocking = \OC::$server->getLockingProvider() instanceof DBLockingProvider;
+ if (!$isDbLocking) {
+ $this->db->beginTransaction();
+ }
$scanner->scan($relativePath, \OC\Files\Cache\Scanner::SCAN_RECURSIVE, \OC\Files\Cache\Scanner::REUSE_ETAG | \OC\Files\Cache\Scanner::REUSE_SIZE);
- $this->db->commit();
+ if (!$isDbLocking) {
+ $this->db->commit();
+ }
}
$this->propagator->propagateChanges(time());
}
diff --git a/lib/public/appframework/controller.php b/lib/public/appframework/controller.php
index b8986c0b772..5c7292cd130 100644
--- a/lib/public/appframework/controller.php
+++ b/lib/public/appframework/controller.php
@@ -83,7 +83,13 @@ abstract class Controller {
$data->getData(),
$data->getStatus()
);
- $response->setHeaders(array_merge($data->getHeaders(), $response->getHeaders()));
+ $dataHeaders = $data->getHeaders();
+ $headers = $response->getHeaders();
+ // do not overwrite Content-Type if it already exists
+ if (isset($dataHeaders['Content-Type'])) {
+ unset($headers['Content-Type']);
+ }
+ $response->setHeaders(array_merge($dataHeaders, $headers));
return $response;
} else {
return new JSONResponse($data);
diff --git a/settings/controller/certificatecontroller.php b/settings/controller/certificatecontroller.php
index 8ff9f51a66c..750144e7a2c 100644
--- a/settings/controller/certificatecontroller.php
+++ b/settings/controller/certificatecontroller.php
@@ -68,19 +68,25 @@ class CertificateController extends Controller {
* @return array
*/
public function addPersonalRootCertificate() {
+ $headers = [];
+ if ($this->request->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE_8])) {
+ // due to upload iframe workaround, need to set content-type to text/plain
+ $headers['Content-Type'] = 'text/plain';
+ }
if ($this->isCertificateImportAllowed() === false) {
- return new DataResponse('Individual certificate management disabled', Http::STATUS_FORBIDDEN);
+ return new DataResponse(['message' => 'Individual certificate management disabled'], Http::STATUS_FORBIDDEN, $headers);
}
$file = $this->request->getUploadedFile('rootcert_import');
if(empty($file)) {
- return new DataResponse(['message' => 'No file uploaded'], Http::STATUS_UNPROCESSABLE_ENTITY);
+ return new DataResponse(['message' => 'No file uploaded'], Http::STATUS_UNPROCESSABLE_ENTITY, $headers);
}
try {
$certificate = $this->certificateManager->addCertificate(file_get_contents($file['tmp_name']), $file['name']);
- return new DataResponse([
+ return new DataResponse(
+ [
'name' => $certificate->getName(),
'commonName' => $certificate->getCommonName(),
'organization' => $certificate->getOrganization(),
@@ -90,9 +96,12 @@ class CertificateController extends Controller {
'validTillString' => $this->l10n->l('date', $certificate->getExpireDate()),
'issuer' => $certificate->getIssuerName(),
'issuerOrganization' => $certificate->getIssuerOrganization(),
- ]);
+ ],
+ Http::STATUS_OK,
+ $headers
+ );
} catch (\Exception $e) {
- return new DataResponse('An error occurred.', Http::STATUS_UNPROCESSABLE_ENTITY);
+ return new DataResponse('An error occurred.', Http::STATUS_UNPROCESSABLE_ENTITY, $headers);
}
}
diff --git a/settings/js/personal.js b/settings/js/personal.js
index 33746d22aca..acc1478cd78 100644
--- a/settings/js/personal.js
+++ b/settings/js/personal.js
@@ -5,8 +5,6 @@
* See the COPYING-README file.
*/
-/* global OC, t */
-
/**
* The callback will be fired as soon as enter is pressed by the
* user or 1 second after the last data entry
@@ -156,6 +154,9 @@ function cleanCropper () {
}
function avatarResponseHandler (data) {
+ if (typeof data === 'string') {
+ data = $.parseJSON(data);
+ }
var $warning = $('#avatar .warning');
$warning.hide();
if (data.status === "success") {
@@ -233,7 +234,21 @@ $(document).ready(function () {
var uploadparms = {
done: function (e, data) {
- avatarResponseHandler(data.result);
+ var response = data;
+ if (typeof data.result === 'string') {
+ response = $.parseJSON(data.result);
+ } else if (data.result && data.result.length) {
+ // fetch response from iframe
+ response = $.parseJSON(data.result[0].body.innerText);
+ } else {
+ response = data.result;
+ }
+ avatarResponseHandler(response);
+ },
+ submit: function(e, data) {
+ data.formData = _.extend(data.formData || {}, {
+ requesttoken: OC.requestToken
+ });
},
fail: function (e, data){
var msg = data.jqXHR.statusText + ' (' + data.jqXHR.status + ')';
@@ -251,10 +266,6 @@ $(document).ready(function () {
}
};
- $('#uploadavatarbutton').click(function () {
- $('#uploadavatar').click();
- });
-
$('#uploadavatar').fileupload(uploadparms);
$('#selectavatar').click(function () {
@@ -344,7 +355,24 @@ $(document).ready(function () {
$('#sslCertificate tr > td').tipsy({gravity: 'n', live: true});
$('#rootcert_import').fileupload({
+ submit: function(e, data) {
+ data.formData = _.extend(data.formData || {}, {
+ requesttoken: OC.requestToken
+ });
+ },
success: function (data) {
+ if (typeof data === 'string') {
+ data = $.parseJSON(data);
+ } else if (data && data.length) {
+ // fetch response from iframe
+ data = $.parseJSON(data[0].body.innerText);
+ }
+ if (!data || typeof(data) === 'string') {
+ // IE8 iframe workaround comes here instead of fail()
+ OC.Notification.showTemporary(
+ t('settings', 'An error occurred. Please upload an ASCII-encoded PEM certificate.'));
+ return;
+ }
var issueDate = new Date(data.validFrom * 1000);
var expireDate = new Date(data.validTill * 1000);
var now = new Date();
@@ -374,10 +402,6 @@ $(document).ready(function () {
}
});
- $('#rootcert_import_button').click(function () {
- $('#rootcert_import').click();
- });
-
if ($('#sslCertificate > tbody > tr').length === 0) {
$('#sslCertificate').hide();
}
diff --git a/settings/l10n/fa.js b/settings/l10n/fa.js
index 062e77cbd6a..b6345dbb767 100644
--- a/settings/l10n/fa.js
+++ b/settings/l10n/fa.js
@@ -72,6 +72,7 @@ OC.L10N.register(
"A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
"Error creating user" : "خطا در ایجاد کاربر",
"A valid password must be provided" : "رمز عبور صحیح باید وارد شود",
+ "A valid email must be provided" : "یک ایمیل معتبر باید وارد شود",
"__language_name__" : "__language_name__",
"Sync clients" : "همگام‌سازی مشتریان",
"Personal info" : "مشخصات شخصی",
@@ -88,6 +89,7 @@ OC.L10N.register(
"SSL" : "SSL",
"TLS" : "TLS",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "ماژول 'fileinfo' PHP از کار افتاده است.ما اکیدا توصیه می کنیم که این ماژول را فعال کنید تا نتایج بهتری به وسیله ی mime-type detection دریافت کنید.",
+ "All checks passed." : "تمامی موارد با موفقیت چک شدند.",
"Open documentation" : "بازکردن مستند",
"Allow apps to use the Share API" : "اجازه ی برنامه ها برای استفاده از API اشتراک گذاری",
"Allow users to share via link" : "اجازه دادن به کاربران برای اشتراک گذاری توسط پیوند",
@@ -160,9 +162,13 @@ OC.L10N.register(
"Choose as profile image" : "یک تصویر پروفایل انتخاب کنید",
"Language" : "زبان",
"Help translate" : "به ترجمه آن کمک کنید",
+ "Common Name" : "نام مشترک",
"Valid until" : "متعبر تا",
+ "Issued By" : "صدور توسط",
+ "Valid until %s" : "متعبر تا %s",
"Show storage location" : "نمایش محل ذخیره‌سازی",
"Show last log in" : "نمایش اخرین ورود",
+ "Send email to new user" : "ارسال ایمیل به کاربر جدید",
"Show email address" : "نمایش پست الکترونیکی",
"Username" : "نام کاربری",
"E-Mail" : "ایمیل",
diff --git a/settings/l10n/fa.json b/settings/l10n/fa.json
index c61ad80c655..b9f5e3aca22 100644
--- a/settings/l10n/fa.json
+++ b/settings/l10n/fa.json
@@ -70,6 +70,7 @@
"A valid username must be provided" : "نام کاربری صحیح باید وارد شود",
"Error creating user" : "خطا در ایجاد کاربر",
"A valid password must be provided" : "رمز عبور صحیح باید وارد شود",
+ "A valid email must be provided" : "یک ایمیل معتبر باید وارد شود",
"__language_name__" : "__language_name__",
"Sync clients" : "همگام‌سازی مشتریان",
"Personal info" : "مشخصات شخصی",
@@ -86,6 +87,7 @@
"SSL" : "SSL",
"TLS" : "TLS",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "ماژول 'fileinfo' PHP از کار افتاده است.ما اکیدا توصیه می کنیم که این ماژول را فعال کنید تا نتایج بهتری به وسیله ی mime-type detection دریافت کنید.",
+ "All checks passed." : "تمامی موارد با موفقیت چک شدند.",
"Open documentation" : "بازکردن مستند",
"Allow apps to use the Share API" : "اجازه ی برنامه ها برای استفاده از API اشتراک گذاری",
"Allow users to share via link" : "اجازه دادن به کاربران برای اشتراک گذاری توسط پیوند",
@@ -158,9 +160,13 @@
"Choose as profile image" : "یک تصویر پروفایل انتخاب کنید",
"Language" : "زبان",
"Help translate" : "به ترجمه آن کمک کنید",
+ "Common Name" : "نام مشترک",
"Valid until" : "متعبر تا",
+ "Issued By" : "صدور توسط",
+ "Valid until %s" : "متعبر تا %s",
"Show storage location" : "نمایش محل ذخیره‌سازی",
"Show last log in" : "نمایش اخرین ورود",
+ "Send email to new user" : "ارسال ایمیل به کاربر جدید",
"Show email address" : "نمایش پست الکترونیکی",
"Username" : "نام کاربری",
"E-Mail" : "ایمیل",
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index a7c389aab1e..23cc6357a2a 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -77,6 +77,7 @@ OC.L10N.register(
"Uninstalling ...." : "Désinstallation...",
"Error while uninstalling app" : "Erreur lors de la désinstallation de l'application",
"Uninstall" : "Désinstaller",
+ "App update" : "Mise à jour App",
"An error occurred: {message}" : "Une erreur est survenue : {message}",
"Select a profile picture" : "Selectionnez une photo de profil ",
"Very weak password" : "Mot de passe de très faible sécurité",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 81011944298..b51a82df574 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -75,6 +75,7 @@
"Uninstalling ...." : "Désinstallation...",
"Error while uninstalling app" : "Erreur lors de la désinstallation de l'application",
"Uninstall" : "Désinstaller",
+ "App update" : "Mise à jour App",
"An error occurred: {message}" : "Une erreur est survenue : {message}",
"Select a profile picture" : "Selectionnez une photo de profil ",
"Very weak password" : "Mot de passe de très faible sécurité",
diff --git a/settings/l10n/hu_HU.js b/settings/l10n/hu_HU.js
index 226ce7e01d9..5451728773b 100644
--- a/settings/l10n/hu_HU.js
+++ b/settings/l10n/hu_HU.js
@@ -72,6 +72,7 @@ OC.L10N.register(
"Uninstalling ...." : "Eltávolítás ...",
"Error while uninstalling app" : "Hiba történt az alkalmazás eltávolítása közben",
"Uninstall" : "Eltávolítás",
+ "App update" : "Alkalmazás frissítése",
"An error occurred: {message}" : "Hiba történt: {message}",
"Select a profile picture" : "Válasszon profilképet!",
"Very weak password" : "Nagyon gyenge jelszó",
diff --git a/settings/l10n/hu_HU.json b/settings/l10n/hu_HU.json
index 14577924e94..08a34e158f5 100644
--- a/settings/l10n/hu_HU.json
+++ b/settings/l10n/hu_HU.json
@@ -70,6 +70,7 @@
"Uninstalling ...." : "Eltávolítás ...",
"Error while uninstalling app" : "Hiba történt az alkalmazás eltávolítása közben",
"Uninstall" : "Eltávolítás",
+ "App update" : "Alkalmazás frissítése",
"An error occurred: {message}" : "Hiba történt: {message}",
"Select a profile picture" : "Válasszon profilképet!",
"Very weak password" : "Nagyon gyenge jelszó",
diff --git a/settings/personal.php b/settings/personal.php
index e58e043af50..8cbcf923a58 100644
--- a/settings/personal.php
+++ b/settings/personal.php
@@ -46,6 +46,7 @@ OC_Util::addScript( 'settings', 'personal' );
OC_Util::addStyle( 'settings', 'settings' );
\OC_Util::addVendorScript('strengthify/jquery.strengthify');
\OC_Util::addVendorStyle('strengthify/strengthify');
+\OC_Util::addScript('files', 'jquery.iframe-transport');
\OC_Util::addScript('files', 'jquery.fileupload');
if ($config->getSystemValue('enable_avatars', true) === true) {
\OC_Util::addVendorScript('jcrop/js/jquery.Jcrop');
diff --git a/settings/templates/personal.php b/settings/templates/personal.php
index c0adaf9c5a3..0eba71d77d1 100644
--- a/settings/templates/personal.php
+++ b/settings/templates/personal.php
@@ -155,10 +155,11 @@ if($_['passwordChangeSupported']) {
<div class="avatardiv"></div><br>
<div class="warning hidden"></div>
<?php if ($_['avatarChangeSupported']): ?>
- <div class="inlineblock button" id="uploadavatarbutton"><?php p($l->t('Upload new')); ?></div>
- <input type="file" class="hidden" name="files[]" id="uploadavatar">
+ <label for="uploadavatar" class="inlineblock button" id="uploadavatarbutton"><?php p($l->t('Upload new')); ?></label>
<div class="inlineblock button" id="selectavatar"><?php p($l->t('Select new from Files')); ?></div>
- <div class="inlineblock button" id="removeavatar"><?php p($l->t('Remove image')); ?></div><br>
+ <div class="inlineblock button" id="removeavatar"><?php p($l->t('Remove image')); ?></div>
+ <input type="file" name="files[]" id="uploadavatar" class="hiddenuploadfield">
+ <br>
<?php p($l->t('Either png or jpg. Ideally square but you will be able to crop it. The file is not allowed to exceed the maximum size of 20 MB.')); ?>
<?php else: ?>
<?php p($l->t('Your avatar is provided by your original account.')); ?>
@@ -239,8 +240,8 @@ if($_['passwordChangeSupported']) {
</tbody>
</table>
<form class="uploadButton" method="post" action="<?php p($_['urlGenerator']->linkToRoute('settings.Certificate.addPersonalRootCertificate')); ?>" target="certUploadFrame">
- <input type="file" id="rootcert_import" name="rootcert_import" class="hidden">
- <input type="button" id="rootcert_import_button" value="<?php p($l->t('Import root certificate')); ?>"/>
+ <label for="rootcert_import" class="inlineblock button" id="rootcert_import_button"><?php p($l->t('Import root certificate')); ?></label>
+ <input type="file" id="rootcert_import" name="rootcert_import" class="hiddenuploadfield">
</form>
</div>
<?php endif; ?>