aboutsummaryrefslogtreecommitdiffstats
path: root/apps/user_status/src/menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/user_status/src/menu.js')
-rw-r--r--apps/user_status/src/menu.js52
1 files changed, 52 insertions, 0 deletions
diff --git a/apps/user_status/src/menu.js b/apps/user_status/src/menu.js
new file mode 100644
index 00000000000..34e5e6eabb1
--- /dev/null
+++ b/apps/user_status/src/menu.js
@@ -0,0 +1,52 @@
+/**
+ * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+
+import { getCSPNonce } from '@nextcloud/auth'
+import { subscribe } from '@nextcloud/event-bus'
+import Vue from 'vue'
+
+import UserStatus from './UserStatus.vue'
+import store from './store/index.js'
+
+// eslint-disable-next-line camelcase
+__webpack_nonce__ = getCSPNonce()
+
+Vue.prototype.t = t
+Vue.prototype.$t = t
+
+const mountPoint = document.getElementById('user_status-menu-entry')
+
+const mountMenuEntry = () => {
+ const mountPoint = document.getElementById('user_status-menu-entry')
+ // eslint-disable-next-line no-new
+ new Vue({
+ el: mountPoint,
+ render: h => h(UserStatus),
+ store,
+ })
+}
+
+if (mountPoint) {
+ mountMenuEntry()
+} else {
+ subscribe('core:user-menu:mounted', mountMenuEntry)
+}
+
+// Register dashboard status
+document.addEventListener('DOMContentLoaded', function() {
+ if (!OCA.Dashboard) {
+ return
+ }
+
+ OCA.Dashboard.registerStatus('status', (el) => {
+ const Dashboard = Vue.extend(UserStatus)
+ return new Dashboard({
+ propsData: {
+ inline: true,
+ },
+ store,
+ }).$mount(el)
+ })
+})