Search by

mediaessenz / diskusage

Alexander Grein

Extension to visualize disk usage of TYPO3 storages

Package info

gitlab.com/mediaessenz/diskusage

Homepage

Issues

Type:typo3-cms-extension

pkg:composer/mediaessenz/diskusage

Statistics

Installs: 47

Dependents: 0

Suggesters: 0

Stars: 1

v5.1.1 2026-10-24 14:29 UTC

This package is auto-updated.

Last update: 2026-10-24 12:32:45 UTC


README

What does it do?

Disk Usage visualizes the disk usage of the TYPO3 file storages. It adds a button to the file list module, which opens a treemap of the current folder. Files without references can be deleted directly from the chart.

JavaScript

The treemap is written in TypeScript (Resources/Private/TypeScript) and uses Apache ECharts. It is built with Vite and vite-plugin-typo3 in the mode target: 'extension' (see vite.config.ts, the entrypoints are listed in Build/ViteEntrypoints.json). The result is committed to Resources/Public/JavaScript/diskusage.js and Resources/Public/Css/diskusage.css, so the extension doesn't need EXT:vite_asset_collector or Node.js at runtime. The JavaScript is an ES module, which is loaded with the import map of the TYPO3 backend (Configuration/JavaScriptModules.php) and imports the backend modules like @typo3/backend/modal.js.

npm ci
npm run build   # type check and build
npm run watch   # rebuild on changes

The CI job assets checks that the committed files match a build of the sources.

Running the tests

The unit tests live in Tests/Unit and use the TYPO3 testing framework. The development dependencies are installed into .Build (ignored by git):

composer install
composer test:unit

In a DDEV project the commands can be executed in the extension directory:

ddev exec -d /var/www/html/vendor/mediaessenz/diskusage composer install
ddev exec -d /var/www/html/vendor/mediaessenz/diskusage composer test:unit

Releasing

A release is published to the TYPO3 Extension Repository (TER) by the GitLab CI (.gitlab-ci.yml).

  1. Raise the version in ext_emconf.php and in composer.json (extra.typo3/cms.version).
  2. Add the changelog entry - v.<major>.<minor>.<patch>: <changes> to Documentation/Changelog/Index.rst.
  3. Commit, create an annotated tag and push it. The tag message is used as upload comment in the TER:
    git tag -a v5.0.1 -m "Added unit tests and the TER release automation"
    git push origin v5.0.1
    
  4. The pipeline of the tag runs the tests and the job release-checks (version of the tag equals ext_emconf.php and composer.json, changelog entry exists), then ter-package builds diskusage_<version>.zip: the tag without the files listed in .gitattributes (e.g. Tests/, Build/). The package is available as job artifact.
  5. Check the package, then start the manual job ter-publish. A version published to the TER can't be changed or deleted. After the upload the job gitlab-release creates the GitLab release of the tag.

Required setup in GitLab: the CI/CD variable TYPO3_API_TOKEN (a TER access token, see typo3/tailor, flags masked and protected) and the protected tags v*.

The package can be built locally with sh Build/ci/build-ter-package.sh v5.0.1 /tmp (needs a committed tag).