Merge pull request #50464 from nextcloud/fix/50215/hideCreateTemplateFolder

Hide "Create templates folder" option if templates are disabled
This commit is contained in:
Andy Scherzinger 2025-01-27 17:18:05 +01:00 committed by GitHub
commit c4161548f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 14 additions and 12 deletions

View file

@ -194,6 +194,7 @@ class ViewController extends Controller {
$this->eventDispatcher->dispatchTyped(new LoadViewer());
}
$this->initialState->provideInitialState('templates_enabled', ($this->config->getSystemValueString('skeletondirectory', '') !== '') || ($this->config->getSystemValueString('templatedirectory', '') !== ''));
$this->initialState->provideInitialState('templates_path', $this->templateManager->hasTemplateDirectory() ? $this->templateManager->getTemplatePath() : false);
$this->initialState->provideInitialState('templates', $this->templateManager->listCreators());

View file

@ -17,7 +17,9 @@ import PlusSvg from '@mdi/svg/svg/plus.svg?raw'
import axios from '@nextcloud/axios'
import logger from '../logger.ts'
const templatesEnabled = loadState<boolean>('files', 'templates_enabled', true)
let templatesPath = loadState<string|false>('files', 'templates_path', false)
logger.debug('Templates folder enabled', { templatesEnabled })
logger.debug('Initial templates folder', { templatesPath })
/**
@ -57,8 +59,8 @@ export const entry = {
iconSvgInline: PlusSvg,
order: 30,
enabled(context: Folder): boolean {
// Templates folder already initialized
if (templatesPath) {
// Templates disabled or templates folder already initialized
if (!templatesEnabled || templatesPath) {
return false
}
// Allow creation on your own folders only

View file

@ -288,8 +288,9 @@ $CONFIG = [
/**
* The directory where the skeleton files are located. These files will be
* copied to the data directory of new users. Leave empty to not copy any
* skeleton files.
* copied to the data directory of new users. Set empty string to not copy any
* skeleton files. If unset and templatedirectory is empty string, shipped
* templates will be used to create a template directory for the user.
* ``{lang}`` can be used as a placeholder for the language of the user.
* If the directory does not exist, it falls back to non dialect (from ``de_DE``
* to ``de``). If that does not exist either, it falls back to ``default``
@ -298,18 +299,16 @@ $CONFIG = [
*/
'skeletondirectory' => '/path/to/nextcloud/core/skeleton',
/**
* The directory where the template files are located. These files will be
* copied to the template directory of new users. Leave empty to not copy any
* copied to the template directory of new users. Set empty string to not copy any
* template files.
* ``{lang}`` can be used as a placeholder for the language of the user.
* If the directory does not exist, it falls back to non dialect (from ``de_DE``
* to ``de``). If that does not exist either, it falls back to ``default``
*
* If this is not set creating a template directory will only happen if no custom
* ``skeletondirectory`` is defined, otherwise the shipped templates will be used
* to create a template directory for the user.
* To disable creating a template directory, set both skeletondirectory and
* templatedirectory to empty strings.
*/
'templatedirectory' => '/path/to/nextcloud/templates',

4
dist/files-init.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long