Jump to content
Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

La documentation pour ce module peut être créée à Module:Pilotes/doc

local aggrid = require('mw.ext.aggrid')

local localeFr = {
    selectAll = '(Sélectionner tout)',
    selectAllSearchResults = '(Sélectionner tous les résultats de recherche)',
    searchOoo = 'Rechercher...',
    blanks = '(Vides)',
    noMatches = 'Aucune correspondance',
    typeToSearchOoo = 'Tapez pour rechercher...',
    filterOoo = 'Filtrer...',
    equals = 'Égal à',
    notEqual = "N'est pas égal à",
    blank = 'Vide',
    notBlank = 'Non vide',
    contains = 'Contient',
    notContains = 'Ne contient pas',
    startsWith = 'Commence par',
    endsWith = 'Se termine par',
    lessThan = 'Moins de',
    greaterThan = 'Plus de',
    lessThanOrEqual = 'Moins de ou égal à',
    greaterThanOrEqual = 'Plus de ou égal à',
    inRange = 'Entre',
    andCondition = 'ET',
    orCondition = 'OU',
    applyFilter = 'Appliquer',
    resetFilter = 'Réinitialiser',
    clearFilter = 'Effacer',
    cancelFilter = 'Annuler',
    textFilter = 'Filtre de texte',
    numberFilter = 'Filtre numérique',
    setFilter = 'Filtre de sélection',
    sortAscending = 'Trier par ordre croissant',
    sortDescending = 'Trier par ordre décroissant',
    sortUnSort = 'Effacer le tri',
    pinColumn = 'Épingler la colonne',
    pinLeft = 'Épingler à gauche',
    pinRight = 'Épingler à droite',
    noPin = "Pas d'épingle",
    autosizeThisColumn = 'Ajuster automatiquement cette colonne',
    autosizeAllColumns = 'Ajuster automatiquement toutes les colonnes',
    resetColumns = 'Réinitialiser les colonnes',
    columnFilter = 'Filtre de colonne',
    chooseColumns = 'Choisir les colonnes',
    page = 'Page',
    to = 'à',
    of = 'de',
    nextPage = 'Page suivante',
    previousPage = 'Page précédente',
    firstPage = 'Première page',
    lastPage = 'Dernière page',
    pageSizeSelectorLabel = 'Taille de la page :',
    loadingOoo = 'Chargement...',
    noRowsToShow = 'Aucune ligne à afficher',
    noMatchingRows = 'Aucune ligne correspondante',
    toolbarQuickFilter = 'Filtrer',
    copy = 'Copier',
    export = 'Exporter',
    csvExport = 'Export CSV',
    excelExport = 'Export Excel',
}

local p = {}

function p.main(frame)
    local args = frame:getParent().args

    local rows = {}
    local i = 1
    while true do
        local nom = args['nom' .. i]
        if not nom or nom == '' then
            break
        end
        local fichier = args['fichier' .. i] or ''
        local row = {
            nom = nom,
            type = args['type' .. i] or '',
            os = args['os' .. i] or '',
            version = args['version' .. i] or '',
            date = args['date' .. i] or '',
        }
if fichier ~= '' then
    if fichier:match('^https?://') then
        row.telechargement = { text = 'Télécharger', href = fichier }
    else
        row.telechargement = aggrid.link('Fichier:' .. fichier, 'Télécharger')
    end
end
        table.insert(rows, row)
        i = i + 1
    end

    if #rows == 0 then
        return ''
    end

    return aggrid.render{
        localeText = localeFr,
        columnDefs = {
            { field = 'nom', headerName = 'Nom du pilote' },
            { field = 'type', headerName = 'Type', filter = 'aggridSet' },
            { field = 'os', headerName = 'Système', filter = 'aggridSet' },
            { field = 'version', headerName = 'Version' },
            { field = 'date', headerName = 'Date' },
            aggrid.linkColumn{ field = 'telechargement', header = 'Téléchargement' },
        },
        rowData = rows,
        quickSearch = { placeholder = 'Rechercher un pilote...', debounceMs = 300 },
        pagination = true,
        paginationPageSize = 10,
    }
end

return p