diff options
Diffstat (limited to 'apps/files/src/services/Settings.js')
-rw-r--r-- | apps/files/src/services/Settings.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/apps/files/src/services/Settings.js b/apps/files/src/services/Settings.js new file mode 100644 index 00000000000..7f04aa82fda --- /dev/null +++ b/apps/files/src/services/Settings.js @@ -0,0 +1,40 @@ +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +export default class Settings { + + _settings + + constructor() { + this._settings = [] + console.debug('OCA.Files.Settings initialized') + } + + /** + * Register a new setting + * + * @since 19.0.0 + * @param {OCA.Files.Settings.Setting} view element to add to settings + * @return {boolean} whether registering was successful + */ + register(view) { + if (this._settings.filter(e => e.name === view.name).length > 0) { + console.error('A setting with the same name is already registered') + return false + } + this._settings.push(view) + return true + } + + /** + * All settings elements + * + * @return {OCA.Files.Settings.Setting[]} All currently registered settings + */ + get settings() { + return this._settings + } + +} |