aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/models
diff options
context:
space:
mode:
authorGary Kim <gary@garykim.dev>2020-02-26 23:22:57 +0800
committerGary Kim <gary@garykim.dev>2020-03-22 22:34:49 +0800
commit98eeb57a04726a5cdffac94903f494731c6a782e (patch)
tree9af0241b640c8ce81487c6887a28b5e01e525a4d /apps/files/src/models
parent019ba27943a44a5c3b80ffac02c5568ee47af6cc (diff)
downloadnextcloud-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/models')
-rw-r--r--apps/files/src/models/Setting.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/apps/files/src/models/Setting.js b/apps/files/src/models/Setting.js
new file mode 100644
index 00000000000..64c81ee5013
--- /dev/null
+++ b/apps/files/src/models/Setting.js
@@ -0,0 +1,69 @@
+/**
+ * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>
+ * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @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 Setting {
+
+ #close
+ #el
+ #name
+ #open
+
+ /**
+ * Create a new files app setting
+ *
+ * @since 19.0.0
+ * @param {string} name the name of this setting
+ * @param {Function} component.el function that returns an unmounted dom element to be added
+ * @param {Function} [component.open] callback for when setting is added
+ * @param {Function} [component.close] callback for when setting is closed
+ */
+ constructor(name, { el, open, close }) {
+ this.#name = name
+ this.#el = el
+ this.#open = open
+ this.#close = close
+ if (typeof this.#open !== 'function') {
+ this.#open = () => {}
+ }
+ if (typeof this.#close !== 'function') {
+ this.#close = () => {}
+ }
+ }
+
+ get name() {
+ return this.#name
+ }
+
+ get el() {
+ return this.#el
+ }
+
+ get open() {
+ return this.#open
+ }
+
+ get close() {
+ return this.#close
+ }
+
+}