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/models | |
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/models')
-rw-r--r-- | apps/files/src/models/Setting.js | 69 |
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 + } + +} |