aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/services/Settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/src/services/Settings.js')
-rw-r--r--apps/files/src/services/Settings.js40
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
+ }
+
+}