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 .= '
'; + $sHtmlValue .= ''; + $sHtmlValue .= '
'; + $sHtmlValue .= '
'; + $sHtmlValue .= ''; $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; }