3897 |
delphine |
1 |
export const findFieldset = fieldIndex => $(`fieldset.new-field[data-id=${fieldIndex}]`);
|
|
|
2 |
// effet d'affichage
|
|
|
3 |
export const showField = $field => $field.hide().show(200);
|
|
|
4 |
export const hideNRemove = ($element, $elemenToRemove = $element) => $element.hide(200, () => {
|
|
|
5 |
$elemenToRemove.remove();
|
|
|
6 |
});
|
|
|
7 |
|
|
|
8 |
// JSON.stringify : Gestion des apostrophes dans les valeurs :
|
|
|
9 |
export const replacer = (key, value) => {
|
|
|
10 |
if ('fieldValues' === key && 'object' === typeof value) {
|
|
|
11 |
for (let i in value) {
|
|
|
12 |
if (typeof value[i] === 'string') {
|
|
|
13 |
// value[i] = value[i].replace( /\u0027/g, "''" );
|
|
|
14 |
// La solution ci-dessus convient pour stockage dans la base mais pas pour la lecture dans saisie
|
|
|
15 |
// du coup astuce moisie:
|
|
|
16 |
value[i] = value[i].replace(/\u0027/g, "@apos@").replace(/\u0022/g, '@quot@')
|
|
|
17 |
}
|
|
|
18 |
}
|
|
|
19 |
} else if (typeof value === 'string') {
|
|
|
20 |
// value = value.replace( /\u0027/g, "''" );
|
|
|
21 |
// La solution ci-dessus convient pour stockage dans la base mais pas pour la lecture dans saisie
|
|
|
22 |
// du coup astuce moisie:
|
|
|
23 |
value = value.replace(/\u0027/g, "@apos@").replace(/\u0022/g, '@quot@')
|
|
|
24 |
}
|
|
|
25 |
return value;
|
|
|
26 |
}
|
|
|
27 |
|
|
|
28 |
/**
|
|
|
29 |
* Permet à la fois de vérifier qu'une valeur ou objet existe et n'est pas vide
|
|
|
30 |
* et de comparer à une autre valeur :
|
|
|
31 |
* Vérifie qu'une variable ou objet n'est pas : vide, null, undefined, NaN
|
|
|
32 |
* Si comparer est défini on le compare à valeur en fonction de sensComparaison
|
|
|
33 |
* Un booléen est une variable valide : on retourne true
|
|
|
34 |
* @param { string || number || object || undefined } valeur
|
|
|
35 |
* @param { boolean } sensComparaison : true = rechercher, false = refuser
|
|
|
36 |
* @param { string || number || object || undefined || boolean } comparer :valeur à comparer
|
|
|
37 |
* @returns {boolean}
|
|
|
38 |
*/
|
|
|
39 |
export const valeurOk = (
|
|
|
40 |
valeur,
|
|
|
41 |
sensComparaison = true,
|
|
|
42 |
comparer = undefined
|
|
|
43 |
) => {
|
|
|
44 |
let retour;
|
|
|
45 |
|
|
|
46 |
if ('boolean' !== typeof valeur) {
|
|
|
47 |
switch(typeof valeur) {
|
|
|
48 |
case 'string' :
|
|
|
49 |
retour = ('' !== valeur);
|
|
|
50 |
break;
|
|
|
51 |
case 'number' :
|
|
|
52 |
retour = (NaN !== valeur);
|
|
|
53 |
break;
|
|
|
54 |
case 'object' :
|
|
|
55 |
retour = (null !== valeur && undefined !== valeur && !$.isEmptyObject(valeur));
|
|
|
56 |
if (retour && undefined !== valeur.length) {
|
|
|
57 |
retour = (retour && 0 < valeur.length);
|
|
|
58 |
}
|
|
|
59 |
break;
|
|
|
60 |
case 'undefined' :
|
|
|
61 |
default :
|
|
|
62 |
retour = false;
|
|
|
63 |
}
|
|
|
64 |
if (retour && comparer !== undefined) {
|
|
|
65 |
const resultComparaison = (comparer === valeur);
|
|
|
66 |
|
|
|
67 |
retour = (sensComparaison) ? resultComparaison : !resultComparaison;
|
|
|
68 |
}
|
|
|
69 |
return retour;
|
|
|
70 |
} else {
|
|
|
71 |
// Un booléen est une valeur valable
|
|
|
72 |
return true;
|
|
|
73 |
}
|
|
|
74 |
};
|
|
|
75 |
|
|
|
76 |
export const potDeMiel = () => {
|
|
|
77 |
const $submit = $('#signup_submit');
|
|
|
78 |
|
|
|
79 |
if (!valeurOk($('#basic-widget-form #email').val())) {
|
|
|
80 |
$submit.prop('disabled', false);
|
|
|
81 |
}
|
|
|
82 |
$submit.off().on('click dblclick mousedown submit focus keydown keypress keyup touchstart touchend', () => {
|
|
|
83 |
if (valeurOk($('#basic-widget-form #email').val())) {
|
|
|
84 |
return false;
|
|
|
85 |
}
|
|
|
86 |
});
|
|
|
87 |
$('#basic-widget-form #email').css({position: 'absolute', left: '-2000px'}).on('input blur change', function(event) {
|
|
|
88 |
event.preventDefault();
|
|
|
89 |
if (valeurOk($(this).val())) {
|
|
|
90 |
$('form').each(function() {
|
|
|
91 |
$(this)[0].reset();
|
|
|
92 |
});
|
|
|
93 |
$submit.prop('disabled', true);
|
|
|
94 |
}
|
|
|
95 |
});
|
|
|
96 |
};
|