Best way to deal with user-friendly file display names

For one site, I want to be able to upload and select a set of files and display download links in the template. The main issue is, that I obviously want a nice name shown on the website and not just the filename with all its characters restrictions.

I’ve tried various possibilities, but none of them seem very user-friendly for the person having to deal with managing the list of files. So maybe I’m missing something obvious or maybe someone has a great idea.

The Filename

Every file has a filename that you can edit.

Pros

  • Can directly be edited on the panel page
  • The name is saved with the file itself

Cons

  • Your character set is restricted, e.g. no spaces, no capital letters, etc.
  • It’s a filename and not a display name

Kirby Text

When inserting a file in a textarea you can specify a display text (file: wow.pdf text: WoW)

Pros

  • Kind of visible inside the text itself

Cons

  • Can’t insert multiple files at once
  • The display name is only persisted in the text and not actually connected to the file
  • The user has to learn the KirbyText syntax

The File Template

One of the more obvious solutions is to add a file template with a field for a display name.

Pros

  • files field allows selecting of multiple files
  • Display name is saved with the file itself

Cons

  • The user has to learn how to navigate the file detail page
  • Mixes all files of a page and the only selected files
  • The separate page, makes it harder to keep track of what is and isn’t selected
  • The files field isn’t showing the display name in the list

Structure Magic

Using a structure field, we can have a table with the columns “file” and “display name”.

Pros

  • File and display name are shown on the panel page itself
  • Doesn’t need to remember the KirbyText syntax
  • Doesn’t need to navigate away to the file details page

Cons

  • Can’t select multiple files at once
  • The display name is only persisted in the structure and not actually connected to the file

So does anyone have some additional suggestions, some plugin I’ve not discovered yet, or even something natively implemented that I simply missed? :slightly_smiling_face:

I think you have already listed all available options.

It is possible to display more information in the files field, so your last con for the File template option is probably not valid. Also, I think the file view back/next buttons only move between files with the given template, not all files of a page. So while you cannot limit this to only the selected ones, at least it’s not all files. Plus the user can click on a file and will then be redirected to the file view.

If you want to store this data with the files, this is the best option, I think. Second best is probably the structure field, maybe with a hook to also store this information in the file meta data. Although I’m not really a fan of storing bits of information in multiple places.

If your are fluent with Vue, you could extend the files field, add a button and functionality to enter the meta data in a dialog window.