New file |
0,0 → 1,96 |
export const findFieldset = fieldIndex => $(`fieldset.new-field[data-id=${fieldIndex}]`); |
// effet d'affichage |
export const showField = $field => $field.hide().show(200); |
export const hideNRemove = ($element, $elemenToRemove = $element) => $element.hide(200, () => { |
$elemenToRemove.remove(); |
}); |
|
// JSON.stringify : Gestion des apostrophes dans les valeurs : |
export const replacer = (key, value) => { |
if ('fieldValues' === key && 'object' === typeof value) { |
for (let i in value) { |
if (typeof value[i] === 'string') { |
// value[i] = value[i].replace( /\u0027/g, "''" ); |
// La solution ci-dessus convient pour stockage dans la base mais pas pour la lecture dans saisie |
// du coup astuce moisie: |
value[i] = value[i].replace(/\u0027/g, "@apos@").replace(/\u0022/g, '@quot@') |
} |
} |
} else if (typeof value === 'string') { |
// value = value.replace( /\u0027/g, "''" ); |
// La solution ci-dessus convient pour stockage dans la base mais pas pour la lecture dans saisie |
// du coup astuce moisie: |
value = value.replace(/\u0027/g, "@apos@").replace(/\u0022/g, '@quot@') |
} |
return value; |
} |
|
/** |
* Permet à la fois de vérifier qu'une valeur ou objet existe et n'est pas vide |
* et de comparer à une autre valeur : |
* Vérifie qu'une variable ou objet n'est pas : vide, null, undefined, NaN |
* Si comparer est défini on le compare à valeur en fonction de sensComparaison |
* Un booléen est une variable valide : on retourne true |
* @param { string || number || object || undefined } valeur |
* @param { boolean } sensComparaison : true = rechercher, false = refuser |
* @param { string || number || object || undefined || boolean } comparer :valeur à comparer |
* @returns {boolean} |
*/ |
export const valeurOk = ( |
valeur, |
sensComparaison = true, |
comparer = undefined |
) => { |
let retour; |
|
if ('boolean' !== typeof valeur) { |
switch(typeof valeur) { |
case 'string' : |
retour = ('' !== valeur); |
break; |
case 'number' : |
retour = (NaN !== valeur); |
break; |
case 'object' : |
retour = (null !== valeur && undefined !== valeur && !$.isEmptyObject(valeur)); |
if (retour && undefined !== valeur.length) { |
retour = (retour && 0 < valeur.length); |
} |
break; |
case 'undefined' : |
default : |
retour = false; |
} |
if (retour && comparer !== undefined) { |
const resultComparaison = (comparer === valeur); |
|
retour = (sensComparaison) ? resultComparaison : !resultComparaison; |
} |
return retour; |
} else { |
// Un booléen est une valeur valable |
return true; |
} |
}; |
|
export const potDeMiel = () => { |
const $submit = $('#signup_submit'); |
|
if (!valeurOk($('#basic-widget-form #email').val())) { |
$submit.prop('disabled', false); |
} |
$submit.off().on('click dblclick mousedown submit focus keydown keypress keyup touchstart touchend', () => { |
if (valeurOk($('#basic-widget-form #email').val())) { |
return false; |
} |
}); |
$('#basic-widget-form #email').css({position: 'absolute', left: '-2000px'}).on('input blur change', function(event) { |
event.preventDefault(); |
if (valeurOk($(this).val())) { |
$('form').each(function() { |
$(this)[0].reset(); |
}); |
$submit.prop('disabled', true); |
} |
}); |
}; |