×
Einen neuen Artikel erstellen
Schreibe den Seitennamen hierhin:
Wir haben derzeit 9.055 Artikel auf Vaultpedia. Gib deinen Artikelnamen oberhalb von oder klicke auf einen der unten stehenden Titel und beginne zu schreiben! ein



    Vaultpedia
    9.055Artikel
    Tritt unserem Discord bei und informiere dich auf unserem Twitter-Kanal über die aktuellsten Themen rund um Fallout!

    Die Dokumentation für dieses Modul kann unter Modul:Fortschrittsbalken/Doku erstellt werden

    local p = {}
    
    function p.fortschritt(frame)
        local args = frame:getParent().args
        local maxSeiten = tonumber(args[1])
        
        -- Sicherstellen, dass maxSeiten definiert und eine Zahl ist
        if not maxSeiten then
            return "Fehler: Bitte geben Sie die maximale Seitenanzahl an."
        end
    
        local categoryName = mw.title.getCurrentTitle().text -- Name der aktuellen Kategorie
        local cat = mw.site.stats.pagesInCategory(categoryName)
        local currentSeiten = cat and tonumber(cat) or 0
        
        local prozent = (currentSeiten / maxSeiten) * 100
        if prozent > 100 then prozent = 100 end
        local prozentFormatted = string.format("%.2f", prozent)
    
        -- Farben für den Balken
        local colorStart, colorEnd
        if prozent == 100 then
            colorStart = "#3b9d3e"  -- Grün (Startfarbe)
            colorEnd = "#3b9d3e"    -- Grün (Endfarbe)
        else
            colorStart = "#004775"  -- Blau (Startfarbe)
            colorEnd = "#0072bd"    -- Blau (Endfarbe)
        end
    
        -- Fortschrittsbalken HTML
        local progressBar = string.format(
            '<div style="width: 100%%; background-color: #282828; border-radius: 10px; overflow: hidden; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); margin: 12px auto;">' ..
            '<div style="width: %.2f%%; background: linear-gradient(90deg, %s, %s); color: #fff; white-space: nowrap; text-align: center; padding: 7px 0; border-radius: 10px 0 0 10px; box-shadow: inset 0 -1px 1px rgba(0, 0, 0, 0.1);">' ..
            '<span style="padding:0 15px;">%d / %d Seiten <span style="color:#fff08c">(%s%%)</span></span></div></div>',
            prozent, colorStart, colorEnd, currentSeiten, maxSeiten, prozentFormatted
        )
        
        return progressBar
    end
    
    return p