aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/sidebar.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/files/src/sidebar.ts')
-rw-r--r--apps/files/src/sidebar.ts54
1 files changed, 54 insertions, 0 deletions
diff --git a/apps/files/src/sidebar.ts b/apps/files/src/sidebar.ts
new file mode 100644
index 00000000000..35a379ad649
--- /dev/null
+++ b/apps/files/src/sidebar.ts
@@ -0,0 +1,54 @@
+/**
+ * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import Vue from 'vue'
+import { translate as t } from '@nextcloud/l10n'
+
+import SidebarView from './views/Sidebar.vue'
+import Sidebar from './services/Sidebar.js'
+import Tab from './models/Tab.js'
+
+Vue.prototype.t = t
+
+// Init Sidebar Service
+if (!window.OCA.Files) {
+ window.OCA.Files = {}
+}
+Object.assign(window.OCA.Files, { Sidebar: new Sidebar() })
+Object.assign(window.OCA.Files.Sidebar, { Tab })
+
+window.addEventListener('DOMContentLoaded', function() {
+ const contentElement = document.querySelector('body > .content')
+ || document.querySelector('body > #content')
+
+ let vueParent
+
+ // Make sure we have a proper layout
+ if (contentElement) {
+ // Make sure we have a mountpoint
+ if (!document.getElementById('app-sidebar')) {
+ const sidebarElement = document.createElement('div')
+ sidebarElement.id = 'app-sidebar'
+ contentElement.appendChild(sidebarElement)
+ }
+
+ // Helps with vue debug, as we mount the sidebar to the
+ // content element which is a vue instance itself
+ vueParent = contentElement.__vue__ as Vue
+ }
+
+ // Init vue app
+ const View = Vue.extend(SidebarView)
+ const AppSidebar = new View({
+ name: 'SidebarRoot',
+ parent: vueParent,
+ }).$mount('#app-sidebar')
+
+ // Expose Sidebar methods
+ window.OCA.Files.Sidebar.open = AppSidebar.open
+ window.OCA.Files.Sidebar.close = AppSidebar.close
+ window.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode
+ window.OCA.Files.Sidebar.setShowTagsDefault = AppSidebar.setShowTagsDefault
+})