diff --git a/application/ui.passwordwidget.class.inc.php b/application/ui.passwordwidget.class.inc.php
index 9fd8256f4..648c44745 100644
--- a/application/ui.passwordwidget.class.inc.php
+++ b/application/ui.passwordwidget.class.inc.php
@@ -49,6 +49,8 @@ class UIPasswordWidget
*/
public function Display(WebPage $oPage, $aArgs = array())
{
+ $oPage->add_dict_entry('UI:Component:Input:Password:DoesNotMatch');
+
$sCode = $this->sAttCode.$this->sNameSuffix;
$iWidgetIndex = self::$iWidgetIndex;
@@ -57,11 +59,12 @@ class UIPasswordWidget
$sConfirmPasswordValue = $aPasswordValues ? $aPasswordValues['confirm'] : '*****';
$sChangedValue = (($sPasswordValue != '*****') || ($sConfirmPasswordValue != '*****')) ? 1 : 0;
$sHtmlValue = '';
- $sHtmlValue .= '
';
- $sHtmlValue .= '
';
- $sHtmlValue .= '
';
- $sHtmlValue .= '
'.Dict::S('UI:PasswordConfirm').'';
- $sHtmlValue .= '
';
+ $sHtmlValue .= '
';
diff --git a/css/backoffice/components/input/_input-select.scss b/css/backoffice/components/input/_input-select.scss
index 131b0f8b7..8e3ed8dba 100644
--- a/css/backoffice/components/input/_input-select.scss
+++ b/css/backoffice/components/input/_input-select.scss
@@ -110,8 +110,7 @@ $ibo-input-select--autocomplete-item-image--border: 1px solid $ibo-color-grey-60
pointer-events: none;
}
.ibo-input-select-wrapper--with-buttons {
- position: relative;
- display: flex;
+ @extend .ibo-input-wrapper--with-buttons;
}
.ibo-input-select-container {
diff --git a/css/backoffice/components/input/_input.scss b/css/backoffice/components/input/_input.scss
index f967de3a6..44aa3a3eb 100644
--- a/css/backoffice/components/input/_input.scss
+++ b/css/backoffice/components/input/_input.scss
@@ -55,6 +55,10 @@ $ibo-input--margin-x: 5px !default;
border: 1px solid $ibo-input-wrapper--is-error--border-color;
}
}
+.ibo-input-wrapper--with-buttons{
+ position: relative;
+ display: flex;
+}
.ibo-field-validation {
color: $ibo-field-validation;
diff --git a/dictionaries/cs.dictionary.itop.ui.php b/dictionaries/cs.dictionary.itop.ui.php
index 7d9cec41d..1671ca794 100755
--- a/dictionaries/cs.dictionary.itop.ui.php
+++ b/dictionaries/cs.dictionary.itop.ui.php
@@ -1041,7 +1041,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array(
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Nápověda',
- 'UI:PasswordConfirm' => '(Potvrzení)',
+ 'UI:PasswordConfirm' => 'Potvrzení',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Než přidáte další objekty třídy %1$s, uložte tento objekt.',
'UI:DisplayThisMessageAtStartup' => 'Zobrazovat tuto zprávu při spuštění',
'UI:RelationshipGraph' => 'Grafické zobrazení',
diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php
index 92c4ffb9a..4cec527be 100644
--- a/dictionaries/da.dictionary.itop.ui.php
+++ b/dictionaries/da.dictionary.itop.ui.php
@@ -1032,7 +1032,7 @@ Ved tilknytningen til en trigger, bliver hver handling tildelt et "rækkefølge"
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Hjælp',
- 'UI:PasswordConfirm' => '(Bekræft)',
+ 'UI:PasswordConfirm' => 'Bekræft',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Gem dette objekt, før der tilføjes flere %1$s objekter.',
'UI:DisplayThisMessageAtStartup' => 'Vis denne beksed ved start',
'UI:RelationshipGraph' => 'Grafisk visning',
diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php
index a76af6e18..6dfc1c779 100644
--- a/dictionaries/de.dictionary.itop.ui.php
+++ b/dictionaries/de.dictionary.itop.ui.php
@@ -1031,7 +1031,7 @@ Wenn Aktionen mit Trigger verknüpft sind, bekommt jede Aktion eine Auftragsnumm
'UI:Deadline_Hours_Minutes' => '%1$dStunden %2$dMinuten',
'UI:Deadline_Days_Hours_Minutes' => '%1$dTage %2$dStunden %3$dMinuten',
'UI:Help' => 'Hilfe',
- 'UI:PasswordConfirm' => '(Bestätigen)',
+ 'UI:PasswordConfirm' => 'Bestätigen',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Bevor weitere Objekte vom Typ "%1$s" hinzugefügt werden können, speichern Sie bitte dieses Objekt.',
'UI:DisplayThisMessageAtStartup' => 'Diese Meldung beim Start immer anzeigen',
'UI:RelationshipGraph' => 'Grafische Ansicht',
diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php
index bb860ecb9..7bee941f6 100644
--- a/dictionaries/en.dictionary.itop.ui.php
+++ b/dictionaries/en.dictionary.itop.ui.php
@@ -1060,7 +1060,7 @@ When associated with a trigger, each action is given an "order" number, specifyi
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Help',
- 'UI:PasswordConfirm' => '(Confirm)',
+ 'UI:PasswordConfirm' => 'Confirm',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Before adding more %1$s objects, save this object.',
'UI:DisplayThisMessageAtStartup' => 'Display this message at startup',
'UI:RelationshipGraph' => 'Graphical view',
diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php
index fd395be04..5107b6faa 100644
--- a/dictionaries/es_cr.dictionary.itop.ui.php
+++ b/dictionaries/es_cr.dictionary.itop.ui.php
@@ -1045,7 +1045,7 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden",
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Ayuda',
- 'UI:PasswordConfirm' => '(Confirmar)',
+ 'UI:PasswordConfirm' => 'Confirmar',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Antes de Agregar un(a) %1$s, Guarde los Cambios Realizados.',
'UI:DisplayThisMessageAtStartup' => 'Desplegar este Mensaje al Inicio',
'UI:RelationshipGraph' => 'Vista Gráfica',
diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php
index c37cb3fde..c594c19d5 100644
--- a/dictionaries/fr.dictionary.itop.ui.php
+++ b/dictionaries/fr.dictionary.itop.ui.php
@@ -1042,7 +1042,7 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dj %2$dh %3$dmin',
'UI:Help' => 'Aide',
- 'UI:PasswordConfirm' => '(Confirmer)',
+ 'UI:PasswordConfirm' => 'Confirmer',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Enregistrez l\'objet courant avant de créer de nouveaux éléments de type %1$s.',
'UI:DisplayThisMessageAtStartup' => 'Afficher ce message au démarrage',
'UI:RelationshipGraph' => 'Vue graphique',
diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php
index 01ceb05ed..29691d558 100755
--- a/dictionaries/hu.dictionary.itop.ui.php
+++ b/dictionaries/hu.dictionary.itop.ui.php
@@ -1031,7 +1031,7 @@ Akció kiváltó okhoz rendelésekor kap egy sorszámot , amely meghatározza az
'UI:Deadline_Hours_Minutes' => '%1$dóra %2$dperc',
'UI:Deadline_Days_Hours_Minutes' => '%1$nap %2$dóra %3$dperc',
'UI:Help' => 'Segítség',
- 'UI:PasswordConfirm' => '(Jóváhagyás)',
+ 'UI:PasswordConfirm' => 'Jóváhagyás',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => '%1$s objektumok hozzáadása előtt mentse ezt az objektumot',
'UI:DisplayThisMessageAtStartup' => 'Az üzenet megjelenítése indításkor',
'UI:RelationshipGraph' => 'Grafikus nézet',
diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php
index b84ba83a2..320b4343c 100644
--- a/dictionaries/it.dictionary.itop.ui.php
+++ b/dictionaries/it.dictionary.itop.ui.php
@@ -1044,7 +1044,7 @@ Quando è associata a un trigger, ad ogni azione è assegnato un numero "ordine"
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dg %2$dh %3$dmin',
'UI:Help' => 'Aiuto',
- 'UI:PasswordConfirm' => '(Conferma)',
+ 'UI:PasswordConfirm' => 'Conferma',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Prima di aggiungere più %1$s oggetti, salva questo oggetto.',
'UI:DisplayThisMessageAtStartup' => 'Visualizza questo messaggio in fase di avvio',
'UI:RelationshipGraph' => 'Visualizzazione grafica',
diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php
index fdad48091..874bb2d02 100644
--- a/dictionaries/ja.dictionary.itop.ui.php
+++ b/dictionaries/ja.dictionary.itop.ui.php
@@ -1032,7 +1032,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array(
'UI:Deadline_Hours_Minutes' => '%1$d時間%2$d分',
'UI:Deadline_Days_Hours_Minutes' => '%1$d日%2$d時間%3$d分',
'UI:Help' => 'ヘルプ',
- 'UI:PasswordConfirm' => '(確認)',
+ 'UI:PasswordConfirm' => '確認',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => '%1$sオブジェクトをさらに追加する前に、このオブジェクトを保存してください。',
'UI:DisplayThisMessageAtStartup' => '起動時にこのメッセージを表示する',
'UI:RelationshipGraph' => 'グラフィカル表示',
diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php
index 4bc0b1409..420ba4320 100644
--- a/dictionaries/nl.dictionary.itop.ui.php
+++ b/dictionaries/nl.dictionary.itop.ui.php
@@ -1046,7 +1046,7 @@ Bij die koppeling wordt aan elke actie een volgorde-nummer gegeven. Dit bepaalt
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Help',
- 'UI:PasswordConfirm' => '(Bevestig)',
+ 'UI:PasswordConfirm' => 'Bevestig',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Sla dit object op voordat je meer %1$s objecten toevoegt.',
'UI:DisplayThisMessageAtStartup' => 'Geef dit bericht weer bij het opstarten',
'UI:RelationshipGraph' => 'Grafische weergave',
diff --git a/dictionaries/pl.dictionary.itop.ui.php b/dictionaries/pl.dictionary.itop.ui.php
index 3d5f2be0c..f19db4ab4 100644
--- a/dictionaries/pl.dictionary.itop.ui.php
+++ b/dictionaries/pl.dictionary.itop.ui.php
@@ -1045,7 +1045,7 @@ W przypadku powiązania z wyzwalaczem, każde działanie otrzymuje numer "porzą
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Pomoc',
- 'UI:PasswordConfirm' => '(Potwierdenie)',
+ 'UI:PasswordConfirm' => 'Potwierdenie',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Zanim dodasz więcej obiektów %1$s, zapisz ten obiekt.',
'UI:DisplayThisMessageAtStartup' => 'Wyświetl tę wiadomość podczas uruchamiania',
'UI:RelationshipGraph' => 'Widok graficzny',
diff --git a/dictionaries/pt_br.dictionary.itop.ui.php b/dictionaries/pt_br.dictionary.itop.ui.php
index 35171d665..43b962d5c 100644
--- a/dictionaries/pt_br.dictionary.itop.ui.php
+++ b/dictionaries/pt_br.dictionary.itop.ui.php
@@ -1043,7 +1043,7 @@ When associated with a trigger, each action is given an "order" number, specifyi
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Ajuda',
- 'UI:PasswordConfirm' => '(Confirmar)',
+ 'UI:PasswordConfirm' => 'Confirmar',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Antes de adicionar mais %1$s objetos, salvar este objeto.',
'UI:DisplayThisMessageAtStartup' => 'Exibir esta mensagem na inicialização',
'UI:RelationshipGraph' => 'Visualizar gráfico',
diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php
index 2dc362a12..f43048e71 100644
--- a/dictionaries/ru.dictionary.itop.ui.php
+++ b/dictionaries/ru.dictionary.itop.ui.php
@@ -1043,7 +1043,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array(
'UI:Deadline_Hours_Minutes' => '%1$d ч %2$d мин',
'UI:Deadline_Days_Hours_Minutes' => '%1$d д %2$d ч %3$d мин',
'UI:Help' => 'Помощь',
- 'UI:PasswordConfirm' => '(Подтвердить)',
+ 'UI:PasswordConfirm' => 'Подтвердить',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Перед добавлением объекта %1$s сохраните текущий объект.',
'UI:DisplayThisMessageAtStartup' => 'Показать это сообщение при запуске',
'UI:RelationshipGraph' => 'Графический вид',
diff --git a/dictionaries/sk.dictionary.itop.ui.php b/dictionaries/sk.dictionary.itop.ui.php
index 39cde3827..5f3571068 100644
--- a/dictionaries/sk.dictionary.itop.ui.php
+++ b/dictionaries/sk.dictionary.itop.ui.php
@@ -1035,7 +1035,7 @@ Keď sú priradené spúštačom, každej akcii je dané číslo "príkazu", šp
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => 'Pomoc',
- 'UI:PasswordConfirm' => '(Potvrdiť)',
+ 'UI:PasswordConfirm' => 'Potvrdiť',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Pred pridaním viacerých %1$s objektov, uložte tento objekt.',
'UI:DisplayThisMessageAtStartup' => 'Zobraziť túto správu pri spustení',
'UI:RelationshipGraph' => 'Grafický pohľad',
diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php
index de523d28d..bad28bbe4 100644
--- a/dictionaries/tr.dictionary.itop.ui.php
+++ b/dictionaries/tr.dictionary.itop.ui.php
@@ -1043,7 +1043,7 @@ Tetikleme gerçekleştiriğinde işlemler tanımlanan sıra numarası ile gerçe
'UI:Deadline_Hours_Minutes' => '%1$dh %2$ddk',
'UI:Deadline_Days_Hours_Minutes' => '%1$d gün %2$d saat %3$d dk',
'UI:Help' => 'Yardım',
- 'UI:PasswordConfirm' => '(Onay)',
+ 'UI:PasswordConfirm' => 'Onay',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Yeni %1$s nesneleri eklemeden önce bu nesneyi kaydediniz.',
'UI:DisplayThisMessageAtStartup' => 'Bu mesajı başlangıçta göster',
'UI:RelationshipGraph' => 'Grafiksel gösterim',
diff --git a/dictionaries/ui/components/input/en.dictionary.itop.input.php b/dictionaries/ui/components/input/en.dictionary.itop.input.php
new file mode 100644
index 000000000..57abf3d80
--- /dev/null
+++ b/dictionaries/ui/components/input/en.dictionary.itop.input.php
@@ -0,0 +1,23 @@
+ 'Passwords do not match',
+));
\ No newline at end of file
diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php
index 229c739f9..e9939a745 100644
--- a/dictionaries/zh_cn.dictionary.itop.ui.php
+++ b/dictionaries/zh_cn.dictionary.itop.ui.php
@@ -1043,7 +1043,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array(
'UI:Deadline_Hours_Minutes' => '%1$dh %2$dmin',
'UI:Deadline_Days_Hours_Minutes' => '%1$dd %2$dh %3$dmin',
'UI:Help' => '帮助',
- 'UI:PasswordConfirm' => '(确认)',
+ 'UI:PasswordConfirm' => '确认',
'UI:BeforeAdding_Class_ObjectsSaveThisObject' => '在添加更多 %1$s 之前, 保存该对象.',
'UI:DisplayThisMessageAtStartup' => '在启动时显示此消息',
'UI:RelationshipGraph' => '图览',
diff --git a/js/forms-json-utils.js b/js/forms-json-utils.js
index 23b897689..84ed4904b 100644
--- a/js/forms-json-utils.js
+++ b/js/forms-json-utils.js
@@ -422,11 +422,14 @@ function ValidatePasswordField(id, sFormId)
oFormErrors['input_'+sFormId] = id;
}
// Visual feedback
- $('#v_'+id).html('

');
+ $('#v_'+id).html(Dict.S('UI:Component:Input:Password:DoesNotMatch'));
+ $('#field_'+id +' .ibo-input-wrapper').addClass('is-error');
+
return false;
}
}
- $('#v_'+id).html(''); //

');
+ $('#v_'+id).html('');
+ $('#field_'+id +' .ibo-input-wrapper').removeClass('is-error');
return true;
}