Merge pull request #59208 from nextcloud/jtr/feat-files-external-backend-label-modernization

feat(files_external): modernize storage backend labels and descriptions
This commit is contained in:
Josh 2026-04-29 09:16:55 -04:00 committed by GitHub
commit c8142d544f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 16 additions and 15 deletions

View file

@ -23,7 +23,7 @@ class AmazonS3 extends Backend {
->setIdentifier('amazons3')
->addIdentifierAlias('\OC\Files\Storage\AmazonS3') // legacy compat
->setStorageClass('\OCA\Files_External\Lib\Storage\AmazonS3')
->setText($l->t('S3 Storage'))
->setText($l->t('S3-Compatible Object Storage'))
->addParameters([
new DefinitionParameter('bucket', $l->t('Bucket')),
(new DefinitionParameter('hostname', $l->t('Hostname')))
@ -36,17 +36,17 @@ class AmazonS3 extends Backend {
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('storageClass', $l->t('Storage Class')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),
(new DefinitionParameter('use_ssl', $l->t('Enable SSL')))
(new DefinitionParameter('use_ssl', $l->t('Use HTTPS')))
->setType(DefinitionParameter::VALUE_BOOLEAN)
->setDefaultValue(true),
(new DefinitionParameter('use_path_style', $l->t('Enable Path Style')))
(new DefinitionParameter('use_path_style', $l->t('Use Path Style (https://example.com/bucket)')))
->setType(DefinitionParameter::VALUE_BOOLEAN),
(new DefinitionParameter('legacy_auth', $l->t('Use Legacy S3 signing (v2)')))
->setType(DefinitionParameter::VALUE_BOOLEAN),
(new DefinitionParameter('useMultipartCopy', $l->t('Enable multipart copy')))
->setType(DefinitionParameter::VALUE_BOOLEAN)
->setDefaultValue(true),
(new DefinitionParameter('use_presigned_url', $l->t('Use presigned S3 url')))
(new DefinitionParameter('use_presigned_url', $l->t('Enable Direct Downloads (presigned URLs)')))
->setType(DefinitionParameter::VALUE_BOOLEAN)
->setDefaultValue(false),
(new DefinitionParameter('sse_c_key', $l->t('SSE-C encryption key')))

View file

@ -23,7 +23,7 @@ class FTP extends Backend {
->setIdentifier('ftp')
->addIdentifierAlias('\OC\Files\Storage\FTP') // legacy compat
->setStorageClass('\OCA\Files_External\Lib\Storage\FTP')
->setText($l->t('FTP'))
->setText($l->t('FTP / FTPS'))
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
(new DefinitionParameter('port', $l->t('Port')))

View file

@ -23,7 +23,7 @@ class Local extends Backend {
->setIdentifier('local')
->addIdentifierAlias('\OC\Files\Storage\Local') // legacy compat
->setStorageClass('\OC\Files\Storage\Local')
->setText($l->t('Local'))
->setText($l->t('Local (server storage)'))
->addParameters([
new DefinitionParameter('datadir', $l->t('Location')),
])

View file

@ -20,7 +20,7 @@ class OwnCloud extends Backend {
->setIdentifier('owncloud')
->addIdentifierAlias('\OC\Files\Storage\OwnCloud') // legacy compat
->setStorageClass('\OCA\Files_External\Lib\Storage\OwnCloud')
->setText($l->t('Nextcloud'))
->setText($l->t('Nextcloud (WebDAV)'))
->addParameters([
new DefinitionParameter('host', $l->t('URL')),
(new DefinitionParameter('root', $l->t('Remote subfolder')))

View file

@ -20,7 +20,7 @@ class SFTP extends Backend {
->setIdentifier('sftp')
->addIdentifierAlias('\OC\Files\Storage\SFTP') // legacy compat
->setStorageClass('\OCA\Files_External\Lib\Storage\SFTP')
->setText($l->t('SFTP'))
->setText($l->t('SFTP (SSH file transfer)'))
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
(new DefinitionParameter('port', $l->t('Port')))

View file

@ -19,7 +19,7 @@ class SFTP_Key extends Backend {
$this
->setIdentifier('\OC\Files\Storage\SFTP_Key')
->setStorageClass('\OCA\Files_External\Lib\Storage\SFTP')
->setText($l->t('SFTP with secret key login'))
->setText($l->t('SFTP with public key authentication'))
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
(new DefinitionParameter('root', $l->t('Remote subfolder')))

View file

@ -30,7 +30,7 @@ class SMB extends Backend {
->setIdentifier('smb')
->addIdentifierAlias('\OC\Files\Storage\SMB')// legacy compat
->setStorageClass('\OCA\Files_External\Lib\Storage\SMB')
->setText($l->t('SMB/CIFS'))
->setText($l->t('SMB / CIFS (Windows network share)'))
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
new DefinitionParameter('share', $l->t('Share')),

View file

@ -28,7 +28,7 @@ class SMB_OC extends Backend {
$this
->setIdentifier('\OC\Files\Storage\SMB_OC')
->setStorageClass('\OCA\Files_External\Lib\Storage\SMB')
->setText($l->t('SMB/CIFS using OC login'))
->setText($l->t('SMB / CIFS using Nextcloud login'))
->addParameters([
new DefinitionParameter('host', $l->t('Host')),
(new DefinitionParameter('username_as_share', $l->t('Login as share')))

View file

@ -24,7 +24,7 @@ class Swift extends Backend {
->setIdentifier('swift')
->addIdentifierAlias('\OC\Files\Storage\Swift') // legacy compat
->setStorageClass('\OCA\Files_External\Lib\Storage\Swift')
->setText($l->t('OpenStack Object Storage'))
->setText($l->t('OpenStack Swift Object Storage'))
->addParameters([
(new DefinitionParameter('service_name', $l->t('Service name')))
->setFlag(DefinitionParameter::FLAG_OPTIONAL),

View file

@ -178,7 +178,9 @@ class BackendService {
* @return Backend[]
*/
public function getAvailableBackends() {
return array_filter($this->getBackends(), fn (Backend $backend) => $backend->checkRequiredDependencies() === []);
$backends = array_filter($this->getBackends(), fn (Backend $backend) => $backend->checkRequiredDependencies() === []);
uasort($backends, [Backend::class, 'lexicalCompare']);
return $backends;
}
/**

View file

@ -63,8 +63,7 @@ describe('files_external settings', () => {
.click()
cy.root().closest('body')
.findByRole('option', { name: 'WebDAV' })
.should('be.visible')
.click()
.click({ force: true }) // forced due to ordering + `position: fixed` usage
getComboBox(/Authentication/)
.should('be.visible')