<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">

<p>
    This module scans extensions for usage of deprecated and removed TYPO3 API calls.
    The module can be a great help for extension developers and site maintainers when
    upgrading to new core versions. However, the detection approach - based on static
    code analysis - is limited by concept: false positives/negatives are impossible to avoid.
    Further details can be found at
    <a style="text-decoration: underline;" target="_blank" rel="noreferrer" href="https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/ExtensionScanner/Index.html">
        the official docs.
    </a>
</p>

<div style="display: none">
    <div id="t3js-extensionScanner-file-hit-template">
        <div class="panel t3js-extensionScanner-hit-panel risk-medium">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <a href="#collapse" class="collapsed t3js-extensionScanner-hit-file-panel-head" data-bs-toggle="collapse">
                        <span class="caret"></span>
                        <span class="float-end badges"></span>
                        <span class="t3js-extensionScanner-hit-filename file">aFile</span>
                        <span class="t3js-extensionScanner-hit-message message">aMessage</span>
                    </a>
                </h3>
            </div>
            <div id="collapse" class="panel-collapse collapse t3js-extensionScanner-hit-file-panel-body">
                <div class="panel-body">
                    <pre class="language-php"><strong class="t3js-extensionScanner-hit-file-line"></strong><span class="t3js-extensionScanner-hit-file-lineContent"></span></pre>
                    <div class="panel-group t3js-extensionScanner-hit-file-rest-container"></div>
                </div>
            </div>
        </div>
    </div>
    <div id="t3js-extensionScanner-file-hit-rest-template">
        <div class="panel t3js-extensionScanner-hit-rest-panel risk-medium">
            <div class="panel-heading">
                <h3 class="panel-title">
                    <a href="#collapse-rest"
                        class="collapsed t3js-extensionScanner-hit-rest-panel-head"
                        data-bs-toggle="collapse"
                    >
                        <span class="badge float-end">aBadge</span>
                        <span class="caret"></span>
                        <strong class="t3js-extensionScanner-hit-rest-headline">restFileHeadline</strong>
                    </a>
                </h3>
            </div>
            <div id="collapse-rest" class="panel-collapse collapse t3js-extensionScanner-hit-rest-panel-body">
                <pre class="panel-body t3js-extensionScanner-hit-rest-body">restFileContent</pre>
            </div>
        </div>
    </div>
</div>

<div
    class="t3js-module-content"
    data-extension-scanner-files-token="{extensionScannerFilesToken}"
    data-extension-scanner-scan-file-token="{extensionScannerScanFileToken}"
    data-extension-scanner-mark-fully-scanned-rest-files-token="{extensionScannerMarkFullyScannedRestFilesToken}"
>
    <div class="progress t3js-extensionScanner-progress-all-extension mb-4" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
        <div class="progress-bar progress-bar-info" style="width: 0;">
            <span class="text-nowrap"></span>
        </div>
    </div>

    <h2>Extensions</h2>

    <div class="panel-group panel-group-scanner-extensions">
        <f:for each="{extensionScannerExtensionList}" as="extension" iteration="iterator">
            <div
                class="panel panel-default t3js-extensionScanner-extension t3js-extensionScanner-extension-{extension}"
                data-extension="{extension}">
                <div class="panel-progress">
                    <div class="panel-progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0;"><span class="visually-hidden"></span></div>
                </div>
                <div class="panel-heading">
                    <h2 class="panel-title">
                        <a href="#extension-{iterator.index}" class="collapsed" data-bs-toggle="collapse">
                            <span class="caret"></span>
                            Extension: <strong>{extension}</strong>
                            <span class="float-end t3js-extensionScanner-number-of-files"></span>
                        </a>
                    </h2>
                </div>
                <div class="panel-collapse collapse" id="extension-{iterator.index}">
                    <div class="panel-body hide t3js-extensionScanner-extension-body"></div>
                    <div class="panel-footer">
                        <p>
                            <span>Effective lines of code: <span class="t3js-extensionScanner-extension-body-loc">0</span></span><br>
                            <span>Files ignored by scanner: <span class="t3js-extensionScanner-extension-body-ignored-files">0</span></span><br>
                            <span>Code lines ignored by scanner: <span class="t3js-extensionScanner-extension-body-ignored-lines">0</span></span>
                        </p>
                        <button class="btn btn-default t3js-extensionScanner-scan-single" type="submit">
                            Scanning…
                        </button>
                    </div>
                </div>
            </div>
        </f:for>
    </div>
</div>

</html>
