diff --git a/apps/files_sharing/src/files_sharing_tab.js b/apps/files_sharing/src/files_sharing_tab.js index 18b4f4d7d1fbb65b2f4cec00c6f2b1c196b1e019..076e4c8f3f250e61c03bbc73c5cc9f3f3897ca4b 100644 --- a/apps/files_sharing/src/files_sharing_tab.js +++ b/apps/files_sharing/src/files_sharing_tab.js @@ -24,6 +24,8 @@ import SharingTab from './views/SharingTab' import ShareSearch from './services/ShareSearch' import ExternalLinkActions from './services/ExternalLinkActions' +import TabSections from './services/TabSections' + if (window.OCA && window.OCA.Sharing) { Object.assign(window.OCA.Sharing, { ShareSearch: new ShareSearch() }) } @@ -32,6 +34,8 @@ if (window.OCA && window.OCA.Sharing) { Object.assign(window.OCA.Sharing, { ExternalLinkActions: new ExternalLinkActions() }) } +Object.assign(window.OCA.Sharing, { ShareTabSections: new TabSections() }) + window.addEventListener('DOMContentLoaded', () => { if (OCA.Files && OCA.Files.Sidebar) { OCA.Files.Sidebar.registerTab(new OCA.Files.Sidebar.Tab('sharing', SharingTab)) diff --git a/apps/files_sharing/src/services/TabSections.js b/apps/files_sharing/src/services/TabSections.js new file mode 100644 index 0000000000000000000000000000000000000000..0750cc707ef585782e8b183f1b908abf2a157964 --- /dev/null +++ b/apps/files_sharing/src/services/TabSections.js @@ -0,0 +1,49 @@ +/** + * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net> + * + * @author Julius Härtl <jus@bitgrid.net> + * + * @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/>. + * + */ + +/** + * Callback for adding two numbers. + * + * @callback registerSectionCallback + * @param {Element} el The DOM element where the section is rendered + * @param {FileInfo} fileInfo current file FileInfo + */ +export default class TabSections { + + #sections; + + constructor() { + this.#sections = [] + } + + /** + * @param {registerSectionCallback} section To be called to mount the section to the sharing sidebar + */ + registerSection(section) { + this.#sections.push(section) + } + + getSections() { + return this.#sections + } + +}