<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">
            <h2 class="panel-heading" role="tab">
                <div class="panel-heading-row">
                    <button
                        type="button"
                        class="panel-button collapsed t3js-extensionScanner-hit-file-panel-head"
                        data-bs-toggle="collapse"
                        data-bs-target="#collapse"
                        aria-controls="collapse"
                        aria-expanded="false"
                        id="heading-not-affected"
                    >
                        <div class="panel-title">
                            <div><strong class="t3js-extensionScanner-hit-filename">aFile</strong></div>
                            <div class="t3js-extensionScanner-hit-message">aMessage</div>
                        </div>
                        <div class="panel-badge t3js-extensionScanner-hit-badges">
                        </div>
                        <span class="caret"></span>
                    </button>
                </div>
            </h2>
            <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">
            <h2 class="panel-heading" role="tab">
                <div class="panel-heading-row">
                    <button
                        type="button"
                        class="panel-button collapsed t3js-extensionScanner-hit-rest-panel-head"
                        data-bs-toggle="collapse"
                        data-bs-target="#collapse-rest"
                        aria-controls="collapse-rest"
                        aria-expanded="false"
                    >
                        <div class="panel-title">
                            <strong class="t3js-extensionScanner-hit-rest-headline">restFileHeadline</strong>
                        </div>
                        <div class="panel-badge">
                            <span class="badge badge-default t3js-extensionScanner-hit-rest-badge">aBadge</span>
                        </div>
                        <span class="caret"></span>
                    </button>
                </div>
            </h2>
            <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}"
>
    <typo3-backend-progress-bar class="t3js-extensionScanner-progress-all-extension" value="0" hidden></typo3-backend-progress-bar>

    <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">0%</span>
                    </div>
                </div>
                <div class="panel-heading" role="tab">
                    <div class="panel-heading-row">
                        <button
                            type="button"
                            class="panel-button collapsed"
                            data-bs-toggle="collapse"
                            data-bs-target="#extension-{iterator.index}"
                            aria-controls="extension-{iterator.index}"
                            aria-expanded="false"
                        >
                            <div class="panel-title">
                                Extension: <strong>{extension}</strong>
                            </div>
                            <div class="panel-heading-text t3js-extensionScanner-number-of-files">
                            </div>
                            <span class="caret"></span>
                        </button>
                    </div>
                </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 type="submit" class="btn btn-default t3js-extensionScanner-scan-single">
                            Scanning…
                        </button>
                    </div>
                </div>
            </div>
        </f:for>
    </div>
</div>

</html>
