Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3176 → Rev 3177

/trunk/widget/modules/manager/squelettes/js/manager.js
344,37 → 344,50
// Empêcher de créer plus d'une fois la même clé
function onChangeCheckKeyUnique() {
if( 1 < $( '.field-key' ).length ) {
// Marqueur de valeur dupliquée
let notUnique = false;
 
$( '.field-key' ).change( function () {
// On force le type de thisString en number pour comparer à l'index du for (plus bas)
let thisIndex = Number( $( this ).attr( 'data-id' ) ),
thisFieldKey = $( '.field-key[data-id="' + thisIndex + '"]' ),
count = $( '.field-key' ).length;
let count = $( '.field-key' ).length;
 
for(var index = 0 ; index < count ; index++) {
let loopFieldKey = $( '.field-key[data-id="' + index + '"]' );
// Si cet index ne correspond pas à un champ supprimé
// On compare la valeur avec les autres champs
if( 0 < loopFieldKey.length && thisIndex !== index && thisFieldKey.val() === loopFieldKey.val()) {
notUnique = true;
let thisFieldKey = $( '.field-key[data-id="' + index + '"]' );
// Le champ avec cet index paourrait avoir été supprimé
if( 0 < thisFieldKey.length ) {
for( var otherIndex = 0 ; otherIndex < count ; otherIndex++ ) {
let otherFieldKey = $( '.field-key[data-id="' + otherIndex + '"]' );
// Le champ avec cet index pourrait avoir été supprimé
// On vérifie qu'on ne compare pas un champ avec lui-même
// Que les champs ne sont pas vides
// Les champs dupliqués déclanchent le marqueur et les alertes
if(
0 < otherFieldKey.length &&
index !== otherIndex &&
'' !== otherFieldKey.val() &&
'' !== thisFieldKey.val() &&
thisFieldKey.val() === otherFieldKey.val()
) {
// Le marqueur de valeur dupliquée passe à true
notUnique = true;
if( 0 === $( '.invalid-field-key[data-id="' + index + '"]' ).length ) {
// Le champ est signalé en rouge
// Un message d'alerte apparait sous le champ
thisFieldKey.addClass( 'invalid' );
thisFieldKey.after(
'<p class="message invalid-field-key" data-id="' + index + '">' +
'<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i>' +
' Vérifiez qu\'aucune clé n\'ait été utilisée plus d\'une fois' +
'</p>'
);
}
}
}
}
}
if( notUnique ) {
// Le champ est signalé en rouge
thisFieldKey.addClass( 'invalid' );
// Un message d'alerte apparait sous le champ
if( 0 === $( '.invalid-field-key[data-id="' + thisIndex + '"]' ).length ) {
thisFieldKey.after(
'<p class="message invalid-field-key" data-id="' + thisIndex + '">' +
'<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i>' +
' Vous avez déjà utilisé cette clé!' +
'</p>'
);
}
// Un message d'alerte apparait au dessus des boutons prévisualiser/valider
if( 0 === $( '.invalid-field-key-bottom' ).length ) {
$( '#new-fields' ).append(
$( '#new-fields' ).after(
'<p class="message invalid-field-key-bottom">' +
'<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i>' +
' Une clé a été utilisée plusieurs fois' +
383,16 → 396,22
}
// Les boutons prévisualiser/valider sont désactivés et signalés en rouge
$( '#preview-field , #validate-new-fields' ).addClass( 'invalid' ).css( 'pointer-events', 'none' );
// Si on est ok on retire toutes les alertes
} else {
thisFieldKey.removeClass( 'invalid' );
} else {// Si on est ok on retire toutes les alertes
// signalements rouges
$( '.field-key' ).each( function() {
$( this ).removeClass( 'invalid' );
});
$( '#preview-field , #validate-new-fields' ).removeClass( 'invalid' );
$( '.invalid-field-key[data-id="' + thisIndex + '"]' ).hide( 200 , function () {
$( this ).remove();
// messages d'alerte
$( '.invalid-field-key' ).each( function() {
$( this ).hide( 200 , function () {
$( this ).remove();
});
});
$( '.invalid-field-key-bottom' ).hide( 200 , function () {
$( this ).remove();
});
//réactivation des boutons prévisualiser/valider
$( '#preview-field' )[0].style.removeProperty( 'pointer-events' );
$( '#validate-new-fields' )[0].style.removeProperty( 'pointer-events' )
}
461,7 → 480,7
$( '#preview-field , #validate-new-fields' ).addClass( 'invalid' );
// Message pour les options des "listes"
if( invalidElementInfos ) {
$( '#new-fields' ).append(
$( '#new-fields' ).after(
'<p class="validation-warning message">' +
'<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i>' +
'&nbsp;Vérifiez les boutons<br>"<i class="fa fa-puzzle-piece" aria-hidden="true" style="color:#4bbacb"></i>&nbsp;Ajouter une valeur" signalés en rouge:' +
471,7 → 490,7
}
// Message pour les champs
if( invalidTextInfos ) {
$( '#new-fields' ).append(
$( '#new-fields' ).after(
'<p class="validation-warning message">' +
'<i class="fa fa-exclamation-triangle" aria-hidden="true" style="color:#ff5d55"></i>' +
'&nbsp;Des informations sont manquantes pour certains champs,' +