aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/main.ts
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@protonmail.com>2023-04-20 09:06:34 +0200
committerJohn Molakvoæ <skjnldsv@protonmail.com>2023-04-20 09:14:44 +0200
commit0a2a1b4b526d30ca5e95454559e1c45b8d7c1589 (patch)
tree767b48427a504f7a48a451b1aafb6beadb79dce1 /apps/files/src/main.ts
parentbb4d7969b93c806e4f578ecc5a6d04bb6bebee73 (diff)
downloadnextcloud-server-0a2a1b4b526d30ca5e95454559e1c45b8d7c1589.tar.gz
nextcloud-server-0a2a1b4b526d30ca5e95454559e1c45b8d7c1589.zip
feat(files): expose Files router
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/files/src/main.ts')
-rw-r--r--apps/files/src/main.ts73
1 files changed, 73 insertions, 0 deletions
diff --git a/apps/files/src/main.ts b/apps/files/src/main.ts
new file mode 100644
index 00000000000..976714a8f1f
--- /dev/null
+++ b/apps/files/src/main.ts
@@ -0,0 +1,73 @@
+import './templates.js'
+import './legacy/filelistSearch.js'
+import './actions/deleteAction'
+
+import Vue from 'vue'
+import { createPinia, PiniaVuePlugin } from 'pinia'
+
+import FilesListView from './views/FilesList.vue'
+import NavigationService from './services/Navigation'
+import NavigationView from './views/Navigation.vue'
+import processLegacyFilesViews from './legacy/navigationMapper.js'
+import registerPreviewServiceWorker from './services/ServiceWorker.js'
+import router from './router/router.js'
+import SettingsModel from './models/Setting.js'
+import SettingsService from './services/Settings.js'
+import RouterService from './services/RouterService'
+
+declare global {
+ interface Window {
+ OC: any;
+ OCA: any;
+ OCP: any;
+ }
+}
+
+// Init private and public Files namespace
+window.OCA.Files = window.OCA.Files ?? {}
+window.OCP.Files = window.OCP.Files ?? {}
+
+// Expose router
+const Router = new RouterService(router)
+Object.assign(window.OCP.Files, { Router })
+
+// Init Pinia store
+Vue.use(PiniaVuePlugin)
+const pinia = createPinia()
+
+// Init Navigation Service
+const Navigation = new NavigationService()
+Object.assign(window.OCP.Files, { Navigation })
+Vue.prototype.$navigation = Navigation
+
+// Init Files App Settings Service
+const Settings = new SettingsService()
+Object.assign(window.OCA.Files, { Settings })
+Object.assign(window.OCA.Files.Settings, { Setting: SettingsModel })
+
+// Init Navigation View
+const View = Vue.extend(NavigationView)
+const FilesNavigationRoot = new View({
+ name: 'FilesNavigationRoot',
+ propsData: {
+ Navigation,
+ },
+ router,
+ pinia,
+})
+FilesNavigationRoot.$mount('#app-navigation-files')
+
+// Init content list view
+const ListView = Vue.extend(FilesListView)
+const FilesList = new ListView({
+ name: 'FilesListRoot',
+ router,
+ pinia,
+})
+FilesList.$mount('#app-content-vue')
+
+// Init legacy and new files views
+processLegacyFilesViews()
+
+// Register preview service worker
+registerPreviewServiceWorker()