Admin: Ask for IMAP login credentials when testing, idea for #477

This commit is contained in:
the-djmaze 2022-08-04 14:58:13 +02:00
parent db95565b70
commit aff9ba29e7
66 changed files with 214 additions and 62 deletions

View file

@ -11,6 +11,8 @@ export class AskPopupView extends AbstractViewPopup {
askDesc: '', askDesc: '',
yesButton: '', yesButton: '',
noButton: '', noButton: '',
username: '',
askUsername: false,
passphrase: '', passphrase: '',
askPass: false askPass: false
}); });
@ -40,15 +42,19 @@ export class AskPopupView extends AbstractViewPopup {
* @param {boolean=} focusOnShow = true * @param {boolean=} focusOnShow = true
* @returns {void} * @returns {void}
*/ */
onShow(sAskDesc, fYesFunc = null, fNoFunc = null, focusOnShow = true, askPass = false, btnText = '') { onShow(sAskDesc, fYesFunc = null, fNoFunc = null, focusOnShow = true, ask = 0, btnText = '') {
this.askDesc(sAskDesc || ''); this.askDesc(sAskDesc || '');
this.askPass(askPass); this.askUsername(ask & 2);
this.askPass(ask & 1);
this.username('');
this.passphrase(''); this.passphrase('');
this.yesButton(i18n(btnText || 'GLOBAL/YES')); this.yesButton(i18n(btnText || 'GLOBAL/YES'));
this.noButton(i18n(askPass ? 'GLOBAL/CANCEL' : 'GLOBAL/NO')); this.noButton(i18n(ask ? 'GLOBAL/CANCEL' : 'GLOBAL/NO'));
this.fYesAction = fYesFunc; this.fYesAction = fYesFunc;
this.fNoAction = fNoFunc; this.fNoAction = fNoFunc;
this.focusOnShow = focusOnShow ? (askPass ? 'input[type="password"]' : '.buttonYes') : ''; this.focusOnShow = focusOnShow
? (ask ? 'input[type="'+(ask&2?'text':'password')+'"]' : '.buttonYes')
: '';
} }
afterShow() { afterShow() {
@ -80,7 +86,20 @@ AskPopupView.password = function(sAskDesc, btnText) {
() => resolve(this.__vm.passphrase()), () => resolve(this.__vm.passphrase()),
() => resolve(null), () => resolve(null),
true, true,
true, 1,
btnText
]);
});
}
AskPopupView.credentials = function(sAskDesc, btnText) {
return new Promise(resolve => {
this.showModal([
sAskDesc,
() => resolve({username:this.__vm.username(), password:this.__vm.passphrase()}),
() => resolve(null),
true,
3,
btnText btnText
]); ]);
}); });

View file

@ -8,6 +8,8 @@ import { AbstractViewPopup } from 'Knoin/AbstractViews';
import { DomainAdminStore } from 'Stores/Admin/Domain'; import { DomainAdminStore } from 'Stores/Admin/Domain';
import { AskPopupView } from 'View/Popup/Ask';
const domainToParams = oDomain => ({ const domainToParams = oDomain => ({
Name: oDomain.name(), Name: oDomain.name(),
@ -179,39 +181,46 @@ export class DomainPopupView extends AbstractViewPopup {
testConnectionCommand() { testConnectionCommand() {
this.clearTesting(false); this.clearTesting(false);
this.testing(true); // https://github.com/the-djmaze/snappymail/issues/477
AskPopupView.credentials('IMAP', 'GLOBAL/TEST').then(credentials => {
if (credentials) {
this.testing(true);
const params = domainToParams(this);
params.username = credentials.username;
params.password = credentials.password;
Remote.request('AdminDomainTest',
(iError, oData) => {
this.testing(false);
if (iError) {
this.testingImapError(true);
this.testingSieveError(true);
this.testingSmtpError(true);
} else {
this.testingDone(true);
this.testingImapError(true !== oData.Result.Imap);
this.testingSieveError(true !== oData.Result.Sieve);
this.testingSmtpError(true !== oData.Result.Smtp);
Remote.request('AdminDomainTest', if (this.testingImapError() && oData.Result.Imap) {
(iError, oData) => { this.testingImapErrorDesc('');
this.testing(false); this.testingImapErrorDesc(oData.Result.Imap);
if (iError) { }
this.testingImapError(true);
this.testingSieveError(true);
this.testingSmtpError(true);
} else {
this.testingDone(true);
this.testingImapError(true !== oData.Result.Imap);
this.testingSieveError(true !== oData.Result.Sieve);
this.testingSmtpError(true !== oData.Result.Smtp);
if (this.testingImapError() && oData.Result.Imap) { if (this.testingSieveError() && oData.Result.Sieve) {
this.testingImapErrorDesc(''); this.testingSieveErrorDesc('');
this.testingImapErrorDesc(oData.Result.Imap); this.testingSieveErrorDesc(oData.Result.Sieve);
} }
if (this.testingSieveError() && oData.Result.Sieve) { if (this.testingSmtpError() && oData.Result.Smtp) {
this.testingSieveErrorDesc(''); this.testingSmtpErrorDesc('');
this.testingSieveErrorDesc(oData.Result.Sieve); this.testingSmtpErrorDesc(oData.Result.Smtp);
} }
}
if (this.testingSmtpError() && oData.Result.Smtp) { },
this.testingSmtpErrorDesc(''); params
this.testingSmtpErrorDesc(oData.Result.Smtp); );
} }
} });
},
domainToParams(this)
);
} }
onDomainCreateOrSaveResponse(iError) { onDomainCreateOrSaveResponse(iError) {

View file

@ -300,6 +300,14 @@ class ActionsAdmin extends Actions
$oSettings->type = $oDomain->IncSecure(); $oSettings->type = $oDomain->IncSecure();
$oImapClient->Connect($oSettings); $oImapClient->Connect($oSettings);
$sUsername = $this->GetActionParam('username', '');
if ($sUsername) {
$oImapClient->Login([
'Login' => $sUsername,
'Password' => $this->GetActionParam('password', '')
]);
}
$oImapClient->Disconnect(); $oImapClient->Disconnect();
$bImapResult = true; $bImapResult = true;
} }

View file

@ -20,6 +20,7 @@
"NAME": "البريد الوارد", "NAME": "البريد الوارد",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "ليست رسائل غير مرغوب فيها", "NOT_SPAM": "ليست رسائل غير مرغوب فيها",
"USERNAME": "Username",
"PASSWORD": "كلمة السر", "PASSWORD": "كلمة السر",
"REPLY_TO": "الرد-الى", "REPLY_TO": "الرد-الى",
"SAVE": "حفظ", "SAVE": "حفظ",

View file

@ -20,6 +20,7 @@
"NAME": "Вх. кутия", "NAME": "Вх. кутия",
"NONE": "Няма", "NONE": "Няма",
"NOT_SPAM": "Не е спам", "NOT_SPAM": "Не е спам",
"USERNAME": "Username",
"PASSWORD": "Парола", "PASSWORD": "Парола",
"REPLY_TO": "Отговори на", "REPLY_TO": "Отговори на",
"SAVE": "Запази", "SAVE": "Запази",

View file

@ -4,7 +4,10 @@
"CLOSE": "Zavřít", "CLOSE": "Zavřít",
"SAVE": "Uložit", "SAVE": "Uložit",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Aktualizovat" "UPDATE": "Aktualizovat",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Login", "LABEL_LOGIN": "Login",

View file

@ -20,6 +20,7 @@
"NAME": "Přijaté", "NAME": "Přijaté",
"NONE": "Žádný", "NONE": "Žádný",
"NOT_SPAM": "Není to spam", "NOT_SPAM": "Není to spam",
"USERNAME": "Username",
"PASSWORD": "Heslo", "PASSWORD": "Heslo",
"REPLY_TO": "Adresa odpovědi", "REPLY_TO": "Adresa odpovědi",
"SAVE": "Uložit", "SAVE": "Uložit",

View file

@ -4,7 +4,10 @@
"CLOSE": "Luk", "CLOSE": "Luk",
"SAVE": "Gem", "SAVE": "Gem",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Opdater" "UPDATE": "Opdater",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Log ind", "LABEL_LOGIN": "Log ind",

View file

@ -20,6 +20,7 @@
"NAME": "Indbakke", "NAME": "Indbakke",
"NONE": "Ingen", "NONE": "Ingen",
"NOT_SPAM": "Ikke uønsket", "NOT_SPAM": "Ikke uønsket",
"USERNAME": "Username",
"PASSWORD": "Adgangskode", "PASSWORD": "Adgangskode",
"REPLY_TO": "Svar til", "REPLY_TO": "Svar til",
"SAVE": "Gem", "SAVE": "Gem",

View file

@ -4,7 +4,10 @@
"CLOSE": "Schließen", "CLOSE": "Schließen",
"SAVE": "Speichern", "SAVE": "Speichern",
"TEST": "Testen", "TEST": "Testen",
"UPDATE": "Aktualisieren" "UPDATE": "Aktualisieren",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Benutzer", "LABEL_LOGIN": "Benutzer",

View file

@ -20,6 +20,7 @@
"NAME": "Name", "NAME": "Name",
"NONE": "Keine", "NONE": "Keine",
"NOT_SPAM": "Kein Spam", "NOT_SPAM": "Kein Spam",
"USERNAME": "Username",
"PASSWORD": "Passwort", "PASSWORD": "Passwort",
"REPLY_TO": "Antwort an", "REPLY_TO": "Antwort an",
"SAVE": "Speichern", "SAVE": "Speichern",

View file

@ -20,6 +20,7 @@
"NAME": "Εισερχόμενα", "NAME": "Εισερχόμενα",
"NONE": "Κανένα", "NONE": "Κανένα",
"NOT_SPAM": "Όχι ανεπιθύμητο", "NOT_SPAM": "Όχι ανεπιθύμητο",
"USERNAME": "Username",
"PASSWORD": "Κωδικός πρόσβασης", "PASSWORD": "Κωδικός πρόσβασης",
"REPLY_TO": "Απάντηση στον", "REPLY_TO": "Απάντηση στον",
"SAVE": "Αποθήκευση", "SAVE": "Αποθήκευση",

View file

@ -20,6 +20,7 @@
"NAME": "Name", "NAME": "Name",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Not Spam", "NOT_SPAM": "Not Spam",
"USERNAME": "Username",
"PASSWORD": "Password", "PASSWORD": "Password",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "Save", "SAVE": "Save",

View file

@ -4,7 +4,10 @@
"CLOSE": "Close", "CLOSE": "Close",
"SAVE": "Save", "SAVE": "Save",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Update" "UPDATE": "Update",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Login", "LABEL_LOGIN": "Login",

View file

@ -20,6 +20,7 @@
"NAME": "Name", "NAME": "Name",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Not Spam", "NOT_SPAM": "Not Spam",
"USERNAME": "Username",
"PASSWORD": "Password", "PASSWORD": "Password",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "Save", "SAVE": "Save",

View file

@ -4,7 +4,10 @@
"CLOSE": "Cerrar", "CLOSE": "Cerrar",
"SAVE": "Guardar", "SAVE": "Guardar",
"TEST": "Probar", "TEST": "Probar",
"UPDATE": "Actualizar" "UPDATE": "Actualizar",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Ingresar", "LABEL_LOGIN": "Ingresar",

View file

@ -20,6 +20,7 @@
"NAME": "Nombre", "NAME": "Nombre",
"NONE": "Ninguno", "NONE": "Ninguno",
"NOT_SPAM": "Correo no deseado", "NOT_SPAM": "Correo no deseado",
"USERNAME": "Username",
"PASSWORD": "Contraseña", "PASSWORD": "Contraseña",
"REPLY_TO": "Responder", "REPLY_TO": "Responder",
"SAVE": "Guardar", "SAVE": "Guardar",

View file

@ -20,6 +20,7 @@
"NAME": "Saabunud kirjad", "NAME": "Saabunud kirjad",
"NONE": "Puuduvad", "NONE": "Puuduvad",
"NOT_SPAM": "Ei ole rämpspost", "NOT_SPAM": "Ei ole rämpspost",
"USERNAME": "Username",
"PASSWORD": "Salasõna", "PASSWORD": "Salasõna",
"REPLY_TO": "Vastuse saaja", "REPLY_TO": "Vastuse saaja",
"SAVE": "Salvesta", "SAVE": "Salvesta",

View file

@ -4,7 +4,10 @@
"CLOSE": "بستن", "CLOSE": "بستن",
"SAVE": "ذخیره", "SAVE": "ذخیره",
"TEST": "تست", "TEST": "تست",
"UPDATE": "بروزرسانی" "UPDATE": "بروزرسانی",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "ورود", "LABEL_LOGIN": "ورود",

View file

@ -20,6 +20,7 @@
"NAME": "صندوق ورودی", "NAME": "صندوق ورودی",
"NONE": "هیچ‌کدام", "NONE": "هیچ‌کدام",
"NOT_SPAM": "هرزنامه نیست", "NOT_SPAM": "هرزنامه نیست",
"USERNAME": "Username",
"PASSWORD": "گذرواژه", "PASSWORD": "گذرواژه",
"REPLY_TO": "پاسخ به", "REPLY_TO": "پاسخ به",
"SAVE": "ذخیره کن", "SAVE": "ذخیره کن",

View file

@ -4,7 +4,10 @@
"CLOSE": "Sulje", "CLOSE": "Sulje",
"SAVE": "Tallenna", "SAVE": "Tallenna",
"TEST": "Testi", "TEST": "Testi",
"UPDATE": "Päivitä" "UPDATE": "Päivitä",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Tunnus", "LABEL_LOGIN": "Tunnus",

View file

@ -20,6 +20,7 @@
"NAME": "Postilaatikko", "NAME": "Postilaatikko",
"NONE": "Ei mitään", "NONE": "Ei mitään",
"NOT_SPAM": "Ei roskapostia", "NOT_SPAM": "Ei roskapostia",
"USERNAME": "Username",
"PASSWORD": "Salasana", "PASSWORD": "Salasana",
"REPLY_TO": "Vastaa", "REPLY_TO": "Vastaa",
"SAVE": "Tallenna", "SAVE": "Tallenna",

View file

@ -4,7 +4,10 @@
"CLOSE": "Fermer", "CLOSE": "Fermer",
"SAVE": "Enregistrer", "SAVE": "Enregistrer",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Mettre à jour" "UPDATE": "Mettre à jour",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Identifiant", "LABEL_LOGIN": "Identifiant",

View file

@ -20,6 +20,7 @@
"NAME": "Nom", "NAME": "Nom",
"NONE": "Aucun", "NONE": "Aucun",
"NOT_SPAM": "Acceptable", "NOT_SPAM": "Acceptable",
"USERNAME": "Username",
"PASSWORD": "Mot de passe", "PASSWORD": "Mot de passe",
"REPLY_TO": "Répondre à", "REPLY_TO": "Répondre à",
"SAVE": "Enregistrer", "SAVE": "Enregistrer",

View file

@ -4,7 +4,10 @@
"CLOSE": "Bezár", "CLOSE": "Bezár",
"SAVE": "Mentés", "SAVE": "Mentés",
"TEST": "Teszt", "TEST": "Teszt",
"UPDATE": "Frissítés" "UPDATE": "Frissítés",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Belépés", "LABEL_LOGIN": "Belépés",

View file

@ -20,6 +20,7 @@
"NAME": "Beérkező levelek", "NAME": "Beérkező levelek",
"NONE": "Semmi", "NONE": "Semmi",
"NOT_SPAM": "Nem szemét", "NOT_SPAM": "Nem szemét",
"USERNAME": "Username",
"PASSWORD": "Jelszó", "PASSWORD": "Jelszó",
"REPLY_TO": "Válaszcím", "REPLY_TO": "Válaszcím",
"SAVE": "Mentés", "SAVE": "Mentés",

View file

@ -4,7 +4,10 @@
"CLOSE": "Tutup", "CLOSE": "Tutup",
"SAVE": "Simpan", "SAVE": "Simpan",
"TEST": "Ujicoba", "TEST": "Ujicoba",
"UPDATE": "Pembaruan" "UPDATE": "Pembaruan",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Login", "LABEL_LOGIN": "Login",

View file

@ -20,6 +20,7 @@
"NAME": "Kotak Masuk", "NAME": "Kotak Masuk",
"NONE": "Tidak ada", "NONE": "Tidak ada",
"NOT_SPAM": "Bukan Spam", "NOT_SPAM": "Bukan Spam",
"USERNAME": "Username",
"PASSWORD": "Sandi", "PASSWORD": "Sandi",
"REPLY_TO": "Balas-Ke", "REPLY_TO": "Balas-Ke",
"SAVE": "Simpan", "SAVE": "Simpan",

View file

@ -20,6 +20,7 @@
"NAME": "Innhólf", "NAME": "Innhólf",
"NONE": "Ekkert", "NONE": "Ekkert",
"NOT_SPAM": "Ekki ruslpóstur", "NOT_SPAM": "Ekki ruslpóstur",
"USERNAME": "Username",
"PASSWORD": "Lykilorð", "PASSWORD": "Lykilorð",
"REPLY_TO": "Svara-til", "REPLY_TO": "Svara-til",
"SAVE": "Vista", "SAVE": "Vista",

View file

@ -4,7 +4,10 @@
"CLOSE": "Close", "CLOSE": "Close",
"SAVE": "Save", "SAVE": "Save",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Aggiorna" "UPDATE": "Aggiorna",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Login", "LABEL_LOGIN": "Login",

View file

@ -20,6 +20,7 @@
"NAME": "Nome", "NAME": "Nome",
"NONE": "Nessuno", "NONE": "Nessuno",
"NOT_SPAM": "Segnala come non spam", "NOT_SPAM": "Segnala come non spam",
"USERNAME": "Username",
"PASSWORD": "Password", "PASSWORD": "Password",
"REPLY_TO": "Rispondi a", "REPLY_TO": "Rispondi a",
"SAVE": "Salva", "SAVE": "Salva",

View file

@ -4,7 +4,10 @@
"CLOSE": "閉じる", "CLOSE": "閉じる",
"SAVE": "保存", "SAVE": "保存",
"TEST": "テスト", "TEST": "テスト",
"UPDATE": "更新" "UPDATE": "更新",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "ログイン", "LABEL_LOGIN": "ログイン",

View file

@ -20,6 +20,7 @@
"NAME": "受信トレイ", "NAME": "受信トレイ",
"NONE": "なし", "NONE": "なし",
"NOT_SPAM": "迷惑メールを解除", "NOT_SPAM": "迷惑メールを解除",
"USERNAME": "Username",
"PASSWORD": "パスワード", "PASSWORD": "パスワード",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "保存", "SAVE": "保存",

View file

@ -20,6 +20,7 @@
"NAME": "받은 편지함", "NAME": "받은 편지함",
"NONE": "없음", "NONE": "없음",
"NOT_SPAM": "스팸 아님", "NOT_SPAM": "스팸 아님",
"USERNAME": "Username",
"PASSWORD": "비밀번호", "PASSWORD": "비밀번호",
"REPLY_TO": "회신 주소", "REPLY_TO": "회신 주소",
"SAVE": "저장", "SAVE": "저장",

View file

@ -4,7 +4,10 @@
"CLOSE": "Uždaryti", "CLOSE": "Uždaryti",
"SAVE": "Saugoti", "SAVE": "Saugoti",
"TEST": "Bandymas", "TEST": "Bandymas",
"UPDATE": "Atnaujinti" "UPDATE": "Atnaujinti",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Prisijungimo vardas", "LABEL_LOGIN": "Prisijungimo vardas",

View file

@ -20,6 +20,7 @@
"NAME": "Gautieji", "NAME": "Gautieji",
"NONE": "Nieko", "NONE": "Nieko",
"NOT_SPAM": "Ne šlamštas", "NOT_SPAM": "Ne šlamštas",
"USERNAME": "Username",
"PASSWORD": "Slaptažodis", "PASSWORD": "Slaptažodis",
"REPLY_TO": "Kam atsakyti", "REPLY_TO": "Kam atsakyti",
"SAVE": "Išsaugoti", "SAVE": "Išsaugoti",

View file

@ -20,6 +20,7 @@
"NAME": "Iesūtne", "NAME": "Iesūtne",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Not Spam", "NOT_SPAM": "Not Spam",
"USERNAME": "Username",
"PASSWORD": "Parole", "PASSWORD": "Parole",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "Saglabāt", "SAVE": "Saglabāt",

View file

@ -4,7 +4,10 @@
"CLOSE": "Lukk", "CLOSE": "Lukk",
"SAVE": "Lagre", "SAVE": "Lagre",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Oppdater" "UPDATE": "Oppdater",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Brukernavn", "LABEL_LOGIN": "Brukernavn",

View file

@ -20,6 +20,7 @@
"NAME": "Innboks", "NAME": "Innboks",
"NONE": "Ingen", "NONE": "Ingen",
"NOT_SPAM": "Ikke søppelpost", "NOT_SPAM": "Ikke søppelpost",
"USERNAME": "Username",
"PASSWORD": "Passord", "PASSWORD": "Passord",
"REPLY_TO": "Svar til", "REPLY_TO": "Svar til",
"SAVE": "Lagre", "SAVE": "Lagre",

View file

@ -4,7 +4,10 @@
"CLOSE": "Sluiten", "CLOSE": "Sluiten",
"SAVE": "Opslaan", "SAVE": "Opslaan",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Updaten" "UPDATE": "Updaten",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Inlognaam", "LABEL_LOGIN": "Inlognaam",

View file

@ -20,6 +20,7 @@
"NAME": "Naam", "NAME": "Naam",
"NONE": "Geen", "NONE": "Geen",
"NOT_SPAM": "Geen ongewenste e-mail", "NOT_SPAM": "Geen ongewenste e-mail",
"USERNAME": "Username",
"PASSWORD": "Wachtwoord", "PASSWORD": "Wachtwoord",
"REPLY_TO": "Antwoordadres", "REPLY_TO": "Antwoordadres",
"SAVE": "Opslaan", "SAVE": "Opslaan",

View file

@ -4,7 +4,10 @@
"CLOSE": "Zamknij", "CLOSE": "Zamknij",
"SAVE": "Zapisz", "SAVE": "Zapisz",
"TEST": "Testuj", "TEST": "Testuj",
"UPDATE": "Zaktualizuj" "UPDATE": "Zaktualizuj",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Login", "LABEL_LOGIN": "Login",

View file

@ -20,6 +20,7 @@
"NAME": "Odebrane", "NAME": "Odebrane",
"NONE": "Brak", "NONE": "Brak",
"NOT_SPAM": "Oznacz jako pożądane", "NOT_SPAM": "Oznacz jako pożądane",
"USERNAME": "Username",
"PASSWORD": "Hasło", "PASSWORD": "Hasło",
"REPLY_TO": "Odpisz do", "REPLY_TO": "Odpisz do",
"SAVE": "Zapisz", "SAVE": "Zapisz",

View file

@ -4,7 +4,10 @@
"CLOSE": "Fechar", "CLOSE": "Fechar",
"SAVE": "Salvar", "SAVE": "Salvar",
"TEST": "Testar", "TEST": "Testar",
"UPDATE": "Atualizar" "UPDATE": "Atualizar",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Usuário", "LABEL_LOGIN": "Usuário",

View file

@ -20,6 +20,7 @@
"NAME": "Caixa de Entrada", "NAME": "Caixa de Entrada",
"NONE": "Nenhum", "NONE": "Nenhum",
"NOT_SPAM": "Não é Lixo Eletrônico", "NOT_SPAM": "Não é Lixo Eletrônico",
"USERNAME": "Username",
"PASSWORD": "Senha", "PASSWORD": "Senha",
"REPLY_TO": "Responder para", "REPLY_TO": "Responder para",
"SAVE": "Salvar", "SAVE": "Salvar",

View file

@ -4,7 +4,10 @@
"CLOSE": "Fechar", "CLOSE": "Fechar",
"SAVE": "Guardar", "SAVE": "Guardar",
"TEST": "Testar", "TEST": "Testar",
"UPDATE": "Atualizar" "UPDATE": "Atualizar",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Utilizador", "LABEL_LOGIN": "Utilizador",

View file

@ -20,6 +20,7 @@
"NAME": "Nome", "NAME": "Nome",
"NONE": "Nenhum", "NONE": "Nenhum",
"NOT_SPAM": "Não é spam", "NOT_SPAM": "Não é spam",
"USERNAME": "Username",
"PASSWORD": "Palavra-passe", "PASSWORD": "Palavra-passe",
"REPLY_TO": "Resp.-Para", "REPLY_TO": "Resp.-Para",
"SAVE": "Guardar", "SAVE": "Guardar",

View file

@ -4,7 +4,10 @@
"CLOSE": "Fechar", "CLOSE": "Fechar",
"SAVE": "Guardar", "SAVE": "Guardar",
"TEST": "Testar", "TEST": "Testar",
"UPDATE": "Atualizar" "UPDATE": "Atualizar",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Utilizador", "LABEL_LOGIN": "Utilizador",

View file

@ -20,6 +20,7 @@
"NAME": "Nome", "NAME": "Nome",
"NONE": "Nenhum", "NONE": "Nenhum",
"NOT_SPAM": "Não é spam", "NOT_SPAM": "Não é spam",
"USERNAME": "Username",
"PASSWORD": "Palavra-passe", "PASSWORD": "Palavra-passe",
"REPLY_TO": "Resp.-Para", "REPLY_TO": "Resp.-Para",
"SAVE": "Guardar", "SAVE": "Guardar",

View file

@ -20,6 +20,7 @@
"NAME": "Intrări", "NAME": "Intrări",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Not SPAM", "NOT_SPAM": "Not SPAM",
"USERNAME": "Username",
"PASSWORD": "Parolă", "PASSWORD": "Parolă",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "Salvează", "SAVE": "Salvează",

View file

@ -4,7 +4,10 @@
"CLOSE": "Закрыть", "CLOSE": "Закрыть",
"SAVE": "Сохранить", "SAVE": "Сохранить",
"TEST": "Тест", "TEST": "Тест",
"UPDATE": "Обновить" "UPDATE": "Обновить",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Логин", "LABEL_LOGIN": "Логин",

View file

@ -20,6 +20,7 @@
"NAME": "Входящие", "NAME": "Входящие",
"NONE": "Ничего", "NONE": "Ничего",
"NOT_SPAM": "Не спам", "NOT_SPAM": "Не спам",
"USERNAME": "Username",
"PASSWORD": "Пароль", "PASSWORD": "Пароль",
"REPLY_TO": "Ответить-на", "REPLY_TO": "Ответить-на",
"SAVE": "Сохранить", "SAVE": "Сохранить",

View file

@ -4,7 +4,10 @@
"CLOSE": "Zatvoriť", "CLOSE": "Zatvoriť",
"SAVE": "Uložiť", "SAVE": "Uložiť",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Aktualizovať" "UPDATE": "Aktualizovať",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Prihlasovanie", "LABEL_LOGIN": "Prihlasovanie",

View file

@ -20,6 +20,7 @@
"NAME": "Prijaté", "NAME": "Prijaté",
"NONE": "Žiadny", "NONE": "Žiadny",
"NOT_SPAM": "Nie je spam", "NOT_SPAM": "Nie je spam",
"USERNAME": "Username",
"PASSWORD": "Heslo", "PASSWORD": "Heslo",
"REPLY_TO": "Adresa pre odpoveď", "REPLY_TO": "Adresa pre odpoveď",
"SAVE": "Uložiť", "SAVE": "Uložiť",

View file

@ -4,7 +4,10 @@
"CLOSE": "Zapri", "CLOSE": "Zapri",
"SAVE": "Shrani", "SAVE": "Shrani",
"TEST": "Preizkus", "TEST": "Preizkus",
"UPDATE": "Posodobi" "UPDATE": "Posodobi",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Prijava", "LABEL_LOGIN": "Prijava",

View file

@ -20,6 +20,7 @@
"NAME": "Prejeto", "NAME": "Prejeto",
"NONE": "Nobeno", "NONE": "Nobeno",
"NOT_SPAM": "Ni vsiljena pošta", "NOT_SPAM": "Ni vsiljena pošta",
"USERNAME": "Username",
"PASSWORD": "Geslo", "PASSWORD": "Geslo",
"REPLY_TO": "Odgovor na", "REPLY_TO": "Odgovor na",
"SAVE": "Shrani", "SAVE": "Shrani",

View file

@ -4,7 +4,10 @@
"CLOSE": "Stäng", "CLOSE": "Stäng",
"SAVE": "Spara", "SAVE": "Spara",
"TEST": "Test", "TEST": "Test",
"UPDATE": "Uppdatera" "UPDATE": "Uppdatera",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Logga in", "LABEL_LOGIN": "Logga in",

View file

@ -20,6 +20,7 @@
"NAME": "Inkorg", "NAME": "Inkorg",
"NONE": "Ingen", "NONE": "Ingen",
"NOT_SPAM": "Inte spam", "NOT_SPAM": "Inte spam",
"USERNAME": "Username",
"PASSWORD": "Lösenord", "PASSWORD": "Lösenord",
"REPLY_TO": "Svara till", "REPLY_TO": "Svara till",
"SAVE": "Spara", "SAVE": "Spara",

View file

@ -20,6 +20,7 @@
"NAME": "Gelen Kutusu", "NAME": "Gelen Kutusu",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Spam Değil", "NOT_SPAM": "Spam Değil",
"USERNAME": "Username",
"PASSWORD": "Şifre", "PASSWORD": "Şifre",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "Kaydet", "SAVE": "Kaydet",

View file

@ -20,6 +20,7 @@
"NAME": "Вхідні", "NAME": "Вхідні",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Не спам", "NOT_SPAM": "Не спам",
"USERNAME": "Username",
"PASSWORD": "Пароль", "PASSWORD": "Пароль",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "Зберегти", "SAVE": "Зберегти",

View file

@ -4,7 +4,10 @@
"CLOSE": "Đóng", "CLOSE": "Đóng",
"SAVE": "Lưu", "SAVE": "Lưu",
"TEST": "Thử", "TEST": "Thử",
"UPDATE": "Cập nhật" "UPDATE": "Cập nhật",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "Đăng nhập", "LABEL_LOGIN": "Đăng nhập",

View file

@ -20,6 +20,7 @@
"NAME": "Tên gọi", "NAME": "Tên gọi",
"NONE": "Trống", "NONE": "Trống",
"NOT_SPAM": "Không phải thư rác", "NOT_SPAM": "Không phải thư rác",
"USERNAME": "Username",
"PASSWORD": "Mật khẩu", "PASSWORD": "Mật khẩu",
"REPLY_TO": "Nhận thư phản hồi về", "REPLY_TO": "Nhận thư phản hồi về",
"SAVE": "Lưu", "SAVE": "Lưu",

View file

@ -4,7 +4,10 @@
"CLOSE": "关闭", "CLOSE": "关闭",
"SAVE": "保存", "SAVE": "保存",
"TEST": "测试", "TEST": "测试",
"UPDATE": "更新" "UPDATE": "更新",
"USERNAME": "Username",
"PASSWORD": "Password",
"CANCEL": "Cancel"
}, },
"LOGIN": { "LOGIN": {
"LABEL_LOGIN": "登录", "LABEL_LOGIN": "登录",

View file

@ -20,6 +20,7 @@
"NAME": "名称", "NAME": "名称",
"NONE": "无", "NONE": "无",
"NOT_SPAM": "这不是垃圾邮件", "NOT_SPAM": "这不是垃圾邮件",
"USERNAME": "Username",
"PASSWORD": "密码", "PASSWORD": "密码",
"REPLY_TO": "回复", "REPLY_TO": "回复",
"SAVE": "保存", "SAVE": "保存",

View file

@ -20,6 +20,7 @@
"NAME": "收件箱", "NAME": "收件箱",
"NONE": "None", "NONE": "None",
"NOT_SPAM": "Not Spam", "NOT_SPAM": "Not Spam",
"USERNAME": "Username",
"PASSWORD": "密碼", "PASSWORD": "密碼",
"REPLY_TO": "Reply-To", "REPLY_TO": "Reply-To",
"SAVE": "保存", "SAVE": "保存",

View file

@ -1,7 +1,11 @@
<div class="modal-body"> <div class="modal-body">
<div data-bind="html: askDesc"></div> <div data-bind="html: askDesc"></div>
<form class="form-horizontal" data-bind="visible: askPass, submit: yesClick" style="margin: 2em 0 0"> <form class="form-horizontal" data-bind="visible: askPass() || askUsername(), submit: yesClick" style="margin: 2em 0 0">
<div class="control-group"> <div class="control-group" data-bind="visible: askUsername">
<label data-i18n="GLOBAL/USERNAME"></label>
<input type="text" data-bind="value: username">
</div>
<div class="control-group" data-bind="visible: askPass">
<label data-i18n="GLOBAL/PASSWORD"></label> <label data-i18n="GLOBAL/PASSWORD"></label>
<input type="password" data-bind="value: passphrase"> <input type="password" data-bind="value: passphrase">
</div> </div>