diff options
author | Gary Kim <gary@garykim.dev> | 2020-02-26 23:22:57 +0800 |
---|---|---|
committer | Gary Kim <gary@garykim.dev> | 2020-03-22 22:34:49 +0800 |
commit | 98eeb57a04726a5cdffac94903f494731c6a782e (patch) | |
tree | 9af0241b640c8ce81487c6887a28b5e01e525a4d /apps/files/src/services | |
parent | 019ba27943a44a5c3b80ffac02c5568ee47af6cc (diff) | |
download | nextcloud-server-98eeb57a04726a5cdffac94903f494731c6a782e.tar.gz nextcloud-server-98eeb57a04726a5cdffac94903f494731c6a782e.zip |
Add OCA.Files.Settings for Files Settings
Signed-off-by: Gary Kim <gary@garykim.dev>
Diffstat (limited to 'apps/files/src/services')
-rw-r--r-- | apps/files/src/services/Settings.js | 56 |
1 files changed, 56 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..7d8961b35ab --- /dev/null +++ b/apps/files/src/services/Settings.js @@ -0,0 +1,56 @@ +/** + * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev> + * + * @author Gary Kim <gary@garykim.dev> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +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 + * @returns {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 + * @returns {OCA.Files.Settings.Setting[]} All currently registered settings + */ + get settings() { + return this.#settings + } + +} |