diff --git a/apps/passwords/img/warning.png b/apps/passwords/img/warning.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ca55733b0dc3de8adf09412f16b604ce66d8029
Binary files /dev/null and b/apps/passwords/img/warning.png differ
diff --git a/apps/passwords/js/Static/compatibility.js b/apps/passwords/js/Static/compatibility.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7970f56aed2597b19f7faf73a7e90702589618c
--- /dev/null
+++ b/apps/passwords/js/Static/compatibility.js
@@ -0,0 +1,73 @@
+function isCompatibleBrowser() {
+ try {
+ if(!window.hasOwnProperty('crypto') || typeof window.crypto.subtle !== "object") {
+ console.error('Web Crypto API not supported');
+ return false;
+ }
+
+ if(!window.hasOwnProperty('TextEncoder')) {
+ console.error('TextEncoder not supported');
+ return false;
+ }
+
+ if(!window.hasOwnProperty('WebAssembly') || typeof window.WebAssembly.instantiate !== "function") {
+ console.error('WebAssembly not supported');
+ return false;
+ }
+ } catch(e) {
+ console.error(e);
+
+ return false;
+ }
+
+ return true;
+}
+
+function showBrowserCompatibilityWarning() {
+
+ var imgpath = OC.filePath('passwords', 'img', 'browser/'),
+ container = document.getElementById('main');
+ container.innerHTML =
+ '
' +
+ '
'+t('passwords', 'Your Browser is outdated')+'
' +
+ '
'+t('passwords', 'Your browser is outdated and does not provide the necessary functionality to display this page.') +
+ '
'+t('passwords', 'Please check if an update is available for your browser or choose a modern and compatible browser from the list below.') +
+ '
';
+ container.setAttribute('class', '');
+
+ throw new Error('Browser does not suport ECMAScript 2017 / ES2017');
+}
+
+function isWebAssemblyEnable(){
+ if(!window.hasOwnProperty('WebAssembly') || typeof window.WebAssembly.instantiate !== "function") {
+ console.error('WebAssembly not supported');
+ return false;
+ }
+}
+
+function showWebAssemblyCompatibilityWarning() {
+
+ var imgpath = OC.generateUrl('themes/eCloud/apps/passwords/img/warning.png'),
+ container = document.getElementById('main');
+ container.innerHTML =
+ '' +
+ '
'+t('passwords', 'To view this website properly, please enable Javascript JIT.') +
+ '
' +
+ '
' + t('passwords', 'How to enable it') + '
' +
+ '
' + t('passwords', 'JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.') + '
' +
+ '
';
+ container.setAttribute('class', '');
+
+ throw new Error('Browser does not suport WebAssembly');
+}
+
+function checkSystem() {
+ // if(!isWebAssemblyEnable()) showWebAssemblyCompatibilityWarning();
+ if(!isCompatibleBrowser()) showBrowserCompatibilityWarning();
+}
+
+window.addEventListener('DOMContentLoaded', checkSystem, false);
diff --git a/apps/passwords/l10n/de.js b/apps/passwords/l10n/de.js
new file mode 100644
index 0000000000000000000000000000000000000000..04553f95519bbfae69a160cb584b94afd777806e
--- /dev/null
+++ b/apps/passwords/l10n/de.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "passwords",
+ {
+ "Your Browser is outdated": "Ihr Browser ist veraltet",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Ihr Browser ist veraltet und bietet nicht die notwendigen Funktionen, um diese Seite anzuzeigen.",
+ "To view this website properly, please enable Javascript JIT.": "Um diese Website korrekt anzuzeigen, aktivieren Sie bitte Javascript JIT.",
+ "How to enable it": "Wie man sie aktiviert",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Bitte prüfen Sie, ob ein Update für Ihren Browser verfügbar ist, oder wählen Sie einen modernen und kompatiblen Browser aus der untenstehenden Liste.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "Javascript JIT ist im Browser standardmäßig deaktiviert, um Webinhalte in einer sichereren Konfiguration zu rendern. Sie können Javascript JIT jederzeit in den Einstellungen aktivieren.
Schritte für den eOS-Browser: Klicken Sie auf das 3-Punkte-Symbol in der oberen linken Ecke und gehen Sie zu:
Einstellungen > Website-Einstellungen
Aktivieren Sie dann Javascript JIT am Ende der Liste."
+ },
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/passwords/l10n/de.json b/apps/passwords/l10n/de.json
new file mode 100644
index 0000000000000000000000000000000000000000..bfd120c398695c711600f2230d17f7e735d0c0bc
--- /dev/null
+++ b/apps/passwords/l10n/de.json
@@ -0,0 +1,11 @@
+{
+ "translations": {
+ "Your Browser is outdated": "Ihr Browser ist veraltet",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Ihr Browser ist veraltet und bietet nicht die notwendigen Funktionen, um diese Seite anzuzeigen.",
+ "To view this website properly, please enable Javascript JIT.": "Um diese Website korrekt anzuzeigen, aktivieren Sie bitte Javascript JIT.",
+ "How to enable it": "Wie man sie aktiviert",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Bitte prüfen Sie, ob ein Update für Ihren Browser verfügbar ist, oder wählen Sie einen modernen und kompatiblen Browser aus der untenstehenden Liste.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "Javascript JIT ist im Browser standardmäßig deaktiviert, um Webinhalte in einer sichereren Konfiguration zu rendern. Sie können Javascript JIT jederzeit in den Einstellungen aktivieren.
Schritte für den eOS-Browser: Klicken Sie auf das 3-Punkte-Symbol in der oberen linken Ecke und gehen Sie zu:
Einstellungen > Website-Einstellungen
Aktivieren Sie dann Javascript JIT am Ende der Liste."
+ },
+ "pluralForm": "nplurals=2; plural=(n != 1);"
+}
diff --git a/apps/passwords/l10n/en.js b/apps/passwords/l10n/en.js
new file mode 100755
index 0000000000000000000000000000000000000000..5f4edd33250fba6d4b0955e0ac69e859049e14c2
--- /dev/null
+++ b/apps/passwords/l10n/en.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "passwords",
+ {
+ "Your Browser is outdated": "Your Browser is outdated",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Your browser is outdated and does not provide the necessary functionality to display this page.",
+ "To view this website properly, please enable Javascript JIT.": "To view this website properly, please enable Javascript JIT",
+ "How to enable it": "How to enable it",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT is disabled by default in the browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings.
Steps for eOS browser: Click on the 3 dots icon at the top left corner and go to:
Settings > Site settings
Then, enable Javascript JIT at the bottom of the list."
+ },
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/passwords/l10n/en.json b/apps/passwords/l10n/en.json
new file mode 100755
index 0000000000000000000000000000000000000000..4956bbca2ae20bd259e8ae8b983825fb7908a8a8
--- /dev/null
+++ b/apps/passwords/l10n/en.json
@@ -0,0 +1,11 @@
+{
+ "translations": {
+ "Your Browser is outdated": "Your Browser is outdated",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Your browser is outdated and does not provide the necessary functionality to display this page.",
+ "To view this website properly, please enable Javascript JIT.": "To view this website properly, please enable Javascript JIT",
+ "How to enable it": "How to enable it",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT is disabled by default in the browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings.
Steps for eOS browser: Click on the 3 dots icon at the top left corner and go to:
Settings > Site settings
Then, enable Javascript JIT at the bottom of the list."
+ },
+ "pluralForm": "nplurals=2; plural=(n != 1);"
+}
diff --git a/apps/passwords/l10n/es.js b/apps/passwords/l10n/es.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbcef2835a6f1493f9facd06e9632bf77b2994a7
--- /dev/null
+++ b/apps/passwords/l10n/es.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "passwords",
+ {
+ "Your Browser is outdated": "Su navegador está anticuado",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Su navegador no está actualizado y no ofrece la funcionalidad necesaria para mostrar esta página.",
+ "To view this website properly, please enable Javascript JIT.": "Para ver correctamente este sitio web, active Javascript JIT.",
+ "How to enable it": "Cómo activarlo",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Por favor, compruebe si hay una actualización disponible para su navegador o elija un navegador moderno y compatible de la siguiente lista.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT está desactivado por defecto en el navegador para mostrar el contenido web en una configuración más segura. You can always enable Javascript JIT in the settings.
Pasos para el navegador eOS: Haga clic en el icono de los 3 puntos en la esquina superior izquierda y vaya a
Configuración > Configuración del sitio
A continuación, active Javascript JIT en la parte inferior de la lista."
+ },
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/passwords/l10n/es.json b/apps/passwords/l10n/es.json
new file mode 100644
index 0000000000000000000000000000000000000000..e3f9439e30e518e6d56314ab35aa8779fbed84c1
--- /dev/null
+++ b/apps/passwords/l10n/es.json
@@ -0,0 +1,11 @@
+{
+ "translations": {
+ "Your Browser is outdated": "Su navegador está anticuado",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Su navegador no está actualizado y no ofrece la funcionalidad necesaria para mostrar esta página.",
+ "To view this website properly, please enable Javascript JIT.": "Para ver correctamente este sitio web, active Javascript JIT.",
+ "How to enable it": "Cómo activarlo",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Por favor, compruebe si hay una actualización disponible para su navegador o elija un navegador moderno y compatible de la siguiente lista.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT está desactivado por defecto en el navegador para mostrar el contenido web en una configuración más segura. You can always enable Javascript JIT in the settings.
Pasos para el navegador eOS: Haga clic en el icono de los 3 puntos en la esquina superior izquierda y vaya a
Configuración > Configuración del sitio
A continuación, active Javascript JIT en la parte inferior de la lista."
+ },
+ "pluralForm": "nplurals=2; plural=(n != 1);"
+}
diff --git a/apps/passwords/l10n/fr.js b/apps/passwords/l10n/fr.js
new file mode 100755
index 0000000000000000000000000000000000000000..b765652d282a6179caca69419bed20ba5897a81e
--- /dev/null
+++ b/apps/passwords/l10n/fr.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "passwords",
+ {
+ "Your Browser is outdated": "Votre navigateur n'est pas à jour",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Votre navigateur n'est pas assez récent et ne fourni pas les fonctionnalités nécessaires pour afficher cette page.",
+ "To view this website properly, please enable Javascript JIT.": "Pour afficher ce site correctement, veuillez activer Javascript JIT.",
+ "How to enable it": "Comment l'activer",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Vérifiez si des mise à jours sont disponibles ou choisissez un navigateur moderne et compatible dans la liste ci-dessous",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT est désactivé par défaut sur le navigateur pour de manière plus sécurisée. Vous pouvez toujours réactiver JavaScript JIT dans les paramètres.
Étapes pour le navigateur eOS: Appuyez sur l'icone à 3 points en haut à gauche puis:
Paramètres > paramètres Site
Puis, activez Javascript JIT en bas de la liste."
+ },
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/passwords/l10n/fr.json b/apps/passwords/l10n/fr.json
new file mode 100755
index 0000000000000000000000000000000000000000..1bc2b38f8291237d0b1af627dd468c19d79275b6
--- /dev/null
+++ b/apps/passwords/l10n/fr.json
@@ -0,0 +1,11 @@
+{
+ "translations": {
+ "Your Browser is outdated": "Votre navigateur n'est pas à jour",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Votre navigateur n'est pas assez récent et ne fourni pas les fonctionnalités nécessaires pour afficher cette page.",
+ "To view this website properly, please enable Javascript JIT.": "Pour afficher ce site correctement, veuillez activer Javascript JIT.",
+ "How to enable it": "Comment l'activer",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Vérifiez si des mise à jours sont disponibles ou choisissez un navigateur moderne et compatible dans la liste ci-dessous",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT est désactivé par défaut sur le navigateur pour de manière plus sécurisée. Vous pouvez toujours réactiver JavaScript JIT dans les paramètres.
Étapes pour le navigateur eOS: Appuyez sur l'icone à 3 points en haut à gauche puis:
Paramètres > paramètres Site
Puis, activez Javascript JIT en bas de la liste."
+ },
+ "pluralForm": "nplurals=2; plural=(n != 1);"
+}
diff --git a/apps/passwords/l10n/it.js b/apps/passwords/l10n/it.js
new file mode 100644
index 0000000000000000000000000000000000000000..05945c0f2dd870677476fa3e06408c6c5a21bc4c
--- /dev/null
+++ b/apps/passwords/l10n/it.js
@@ -0,0 +1,11 @@
+OC.L10N.register(
+ "passwords",
+ {
+ "Your Browser is outdated": "Il browser è obsoleto",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Il vostro browser è obsoleto e non fornisce le funzionalità necessarie per visualizzare questa pagina.",
+ "To view this website properly, please enable Javascript JIT.": "Per visualizzare correttamente questo sito web, abilitare Javascript JIT.",
+ "How to enable it": "Come attivarlo",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Verificate se è disponibile un aggiornamento per il vostro browser o scegliete un browser moderno e compatibile dall'elenco seguente.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT è disabilitato per impostazione predefinita nel browser, al fine di eseguire il rendering dei contenuti web in una configurazione più sicura. È sempre possibile attivare Javascript JIT nelle impostazioni.
Passi per il browser eOS: Fare clic sull'icona con i tre puntini in alto a sinistra e andare su:
Impostazioni > Impostazioni del sito
Quindi, attivate Javascript JIT in fondo all'elenco."
+ },
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/passwords/l10n/it.json b/apps/passwords/l10n/it.json
new file mode 100644
index 0000000000000000000000000000000000000000..127430c9ee9cf2e10d046c8ed24b87c4c28164ef
--- /dev/null
+++ b/apps/passwords/l10n/it.json
@@ -0,0 +1,11 @@
+{
+ "translations": {
+ "Your Browser is outdated": "Il browser è obsoleto",
+ "Your browser is outdated and does not provide the necessary functionality to display this page.": "Il vostro browser è obsoleto e non fornisce le funzionalità necessarie per visualizzare questa pagina.",
+ "To view this website properly, please enable Javascript JIT.": "Per visualizzare correttamente questo sito web, abilitare Javascript JIT.",
+ "How to enable it": "Come attivarlo",
+ "Please check if an update is available for your browser or choose a modern and compatible browser from the list below.": "Verificate se è disponibile un aggiornamento per il vostro browser o scegliete un browser moderno e compatibile dall'elenco seguente.",
+ "JavaScript JIT might be disabled in your browser in order to render web content in a more secure configuration. You can always enable Javascript JIT in the settings, depending on your web browser.": "JavaScript JIT è disabilitato per impostazione predefinita nel browser, al fine di eseguire il rendering dei contenuti web in una configurazione più sicura. È sempre possibile attivare Javascript JIT nelle impostazioni.
Passi per il browser eOS: Fare clic sull'icona con i tre puntini in alto a sinistra e andare su:
Impostazioni > Impostazioni del sito
Quindi, attivate Javascript JIT in fondo all'elenco."
+ },
+ "pluralForm": "nplurals=2; plural=(n != 1);"
+}
diff --git a/core/css/server.css b/core/css/server.css
index 41a995506abd85ea2f0082a45c387b5e6bbf3f01..2ea85253894c6b028fbce55ba2cdb68e0c12e34e 100644
--- a/core/css/server.css
+++ b/core/css/server.css
@@ -1798,4 +1798,36 @@ textarea {
.unified-search__result .unified-search__result-icon,.unified-search__result .unified-search__result-icon img,.v-popper__popper .icon-filter {
filter :var(--inactive-icon-filter);
-}
\ No newline at end of file
+}
+
+
+/* Nextcloud passwords compatibility error style */
+
+.passwords-jit-compatibility .info {
+ max-width: 400px;
+ margin: auto;
+ color: var(--color-main-text);
+ padding: 0px 24px 24px 24px;
+}
+
+.passwords-jit-compatibility .quote {
+ padding: 8px 8px 8px 8px;
+ background: #D0D0D036;
+ margin-top: 8px;
+ margin-bottom: 8px;
+}
+.passwords-jit-compatibility .howto{
+ color: var(--color-main-text);
+ font-weight: bold;
+ font-size: 20px;
+}
+
+.passwords-jit-compatibility .warning-icon{
+ margin-right: 4px;
+ height: 24px;
+}
+
+.passwords-jit-compatibility .message{
+ display: flex;
+ justify-content: center;
+}