LT-67: Adding validation error tooltips when focusing fields

This commit is contained in:
Bruno Alves de Faria committed 2016-09-01 08:49:36 -03:00
1 parent 33e7297064
commit 34a16930ef
3 files changed
+56 -13

No files matched your search

@@ -65,14 +65,25 @@ OHIF.mixins.formItem = new OHIF.Mixin({
// Set or remove the error message
if (errorMessage) {
component.$element.trigger('errorin');
component.$wrapper.attr('data-error', errorMessage);
} else {
component.$element.trigger('errorout');
component.$wrapper.removeAttr('data-error', errorMessage);
}
};
// Toggle the state over the component
component.toggleTooltip = (isShow, message) => {
if (isShow) {
console.warn('>>>>message', message);
component.$wrapper.tooltip({
trigger: 'manual',
title: message
}).tooltip('show');
} else {
component.$wrapper.tooltip('destroy');
}
};
// Search for the parent form component
component.getForm = () => {
let currentComponent = component;
@@ -184,15 +195,28 @@ OHIF.mixins.formItem = new OHIF.Mixin({
}
},
// TODO: [design] remove log, show error box/hint over the wrapper
errorin(event, instance) {
focus(event, instance) {
const component = instance.component;
// Prevent event bubbling
event.stopPropagation();
console.log('ERROR when validating component', instance.component);
// Check for error state and message
const errorMessage = component.$wrapper.attr('data-error');
if (errorMessage) {
// Show the tooltip with the error message
component.toggleTooltip(true, errorMessage);
}
},
// TODO: [design] hide error box/hint
errorout(event, instance) {
blur(event, instance) {
const component = instance.component;
// Prevent event bubbling
event.stopPropagation();
// Hide any tooltips
component.toggleTooltip(false);
}
}
@@ -65,7 +65,9 @@ OHIF.mixins.select2 = new OHIF.Mixin({
},
events: {
'focus .select2-hidden-accessible'(event, instance) {
'focusin .select2-hidden-accessible'(event, instance) {
event.preventDefault();
// Redirect the focus to select2 focus control in case of hidden
// accessible being focused (e.g. clicking on outer label)
$(event.currentTarget).nextAll('.select2:first').find('.select2-selection').focus();