Brock's call, and it is the right one: this is a utility, not a destination. Nobody opens a speedtest the way they open Files or Mail. The app menu is for places you go; Settings is for things you check. Registers an IIconSection + ISettings pair and drops <navigations> entirely. The settings template is a SEPARATE file with NO #app-content wrapper, and that is deliberate: the settings shell supplies its own layout, so reusing the app-menu template nests two layout containers and breaks the width. Same trap as the frame issue, mirrored — one context needs the wrapper, the other must not have it. Both templates carry a comment saying which is which. /apps/speedtest/ still resolves for anyone who bookmarked it; it just no longer occupies a slot in the menu.
40 lines
1.6 KiB
PHP
40 lines
1.6 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
/**
|
|
* Settings variant. Deliberately has NO #app-content wrapper: the settings
|
|
* shell supplies its own layout, and adding ours nests two layout containers
|
|
* and breaks the width. The app-menu page needs it; this one must not have it.
|
|
*/
|
|
/** @var \OCP\IL10N $l */
|
|
?>
|
|
<div id="speedtest-app">
|
|
<div class="st-wrap">
|
|
<h2 class="st-title"><?php p($l->t('Speedtest')); ?></h2>
|
|
<p class="st-sub"><?php p($l->t('Measured against this server. Nothing is written to disk.')); ?></p>
|
|
|
|
<div class="st-grid">
|
|
<div class="st-tile" id="st-down">
|
|
<div class="st-label"><?php p($l->t('Download')); ?></div>
|
|
<div class="st-value"><span data-v>—</span><span class="st-unit">Mbps</span></div>
|
|
</div>
|
|
<div class="st-tile" id="st-up">
|
|
<div class="st-label"><?php p($l->t('Upload')); ?></div>
|
|
<div class="st-value"><span data-v>—</span><span class="st-unit">Mbps</span></div>
|
|
</div>
|
|
<div class="st-tile" id="st-ping">
|
|
<div class="st-label"><?php p($l->t('Latency')); ?></div>
|
|
<div class="st-value"><span data-v>—</span><span class="st-unit">ms</span></div>
|
|
</div>
|
|
<div class="st-tile" id="st-jitter">
|
|
<div class="st-label"><?php p($l->t('Jitter')); ?></div>
|
|
<div class="st-value"><span data-v>—</span><span class="st-unit">ms</span></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="st-bar"><div class="st-bar-fill" id="st-progress"></div></div>
|
|
<div class="st-status" id="st-status"><?php p($l->t('Ready.')); ?></div>
|
|
|
|
<button class="primary st-go" id="st-go"><?php p($l->t('Start test')); ?></button>
|
|
</div>
|
|
</div>
|