« MediaWiki:Common.js » : différence entre les versions
Aller à la navigation
Aller à la recherche
Aucun résumé des modifications |
Aucun résumé des modifications |
||
| (Une version intermédiaire par le même utilisateur non affichée) | |||
| Ligne 6 : | Ligne 6 : | ||
return $( this ).children( 'td' ).length > 0; | return $( this ).children( 'td' ).length > 0; | ||
} ); | } ); | ||
var selectCols = [ 3, 4 ]; // 3 = Attribution, 4 = Cible | var selectCols = [ 2, 3, 4 ]; // 2 = MOA, 3 = Attribution, 4 = Cible | ||
var $bar = $( '<div>' ).css( { margin: '0 0 .6em', display: 'flex', gap: '.5em', flexWrap: 'wrap' } ); | var $bar = $( '<div>' ).css( { margin: '0 0 .6em', display: 'flex', gap: '.5em', flexWrap: 'wrap' } ); | ||
| Ligne 43 : | Ligne 43 : | ||
$search.on( 'input', apply ); | $search.on( 'input', apply ); | ||
selectCols.forEach( function ( c ) { selects[ c ].on( 'change', apply ); } ); | selectCols.forEach( function ( c ) { selects[ c ].on( 'change', apply ); } ); | ||
} ); | |||
} ); | |||
$( function () { | |||
var $container = $( '#operations-manquantes' ); | |||
if ( !$container.length ) { return; } | |||
var done = {}; | |||
$( 'table.filtrable' ).find( 'tr td:first-child a[title]' ).each( function () { | |||
done[ $( this ).attr( 'title' ).toLowerCase() ] = true; | |||
} ); | |||
$container.find( 'li' ).each( function () { | |||
var $li = $( this ), $a = $li.find( 'a[title]' ).first(); | |||
if ( $a.length && done[ $a.attr( 'title' ).toLowerCase() ] ) { | |||
$li.remove(); | |||
} | |||
} ); | } ); | ||
} ); | } ); | ||
Dernière version du 19 septembre 2026 à 10:53
$( function () {
$( 'table.filtrable' ).each( function () {
var $table = $( this );
var $th = $table.find( 'tr' ).first().find( 'th' );
var $rows = $table.find( 'tr' ).filter( function () {
return $( this ).children( 'td' ).length > 0;
} );
var selectCols = [ 2, 3, 4 ]; // 2 = MOA, 3 = Attribution, 4 = Cible
var $bar = $( '<div>' ).css( { margin: '0 0 .6em', display: 'flex', gap: '.5em', flexWrap: 'wrap' } );
var $search = $( '<input>' ).attr( { type: 'search', placeholder: 'Rechercher…' } )
.css( { padding: '.3em .5em', minWidth: '16em' } );
$bar.append( $search );
var selects = {};
selectCols.forEach( function ( c ) {
var label = $th.eq( c ).text().trim(), vals = {};
$rows.each( function () {
var v = $( this ).children( 'td' ).eq( c ).text().trim();
if ( v ) { vals[ v ] = true; }
} );
var $sel = $( '<select>' ).css( { padding: '.3em' } );
$sel.append( $( '<option>' ).val( '' ).text( label + ' : tous' ) );
Object.keys( vals ).sort().forEach( function ( v ) {
$sel.append( $( '<option>' ).val( v ).text( v ) );
} );
selects[ c ] = $sel;
$bar.append( $sel );
} );
$table.before( $bar );
function apply() {
var q = $search.val().toLowerCase();
$rows.each( function () {
var $row = $( this ), ok = $row.text().toLowerCase().indexOf( q ) !== -1;
selectCols.forEach( function ( c ) {
var want = selects[ c ].val();
if ( ok && want ) { ok = $row.children( 'td' ).eq( c ).text().trim() === want; }
} );
$row.toggle( ok );
} );
}
$search.on( 'input', apply );
selectCols.forEach( function ( c ) { selects[ c ].on( 'change', apply ); } );
} );
} );
$( function () {
var $container = $( '#operations-manquantes' );
if ( !$container.length ) { return; }
var done = {};
$( 'table.filtrable' ).find( 'tr td:first-child a[title]' ).each( function () {
done[ $( this ).attr( 'title' ).toLowerCase() ] = true;
} );
$container.find( 'li' ).each( function () {
var $li = $( this ), $a = $li.find( 'a[title]' ).first();
if ( $a.length && done[ $a.attr( 'title' ).toLowerCase() ] ) {
$li.remove();
}
} );
} );