aboutsummaryrefslogtreecommitdiffstats
path: root/core/src/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main.js')
-rw-r--r--core/src/main.js65
1 files changed, 33 insertions, 32 deletions
diff --git a/core/src/main.js b/core/src/main.js
index f9d89327a6a..2d88f15562b 100644
--- a/core/src/main.js
+++ b/core/src/main.js
@@ -1,41 +1,25 @@
/**
- * @copyright 2018 Christoph Wurst <christoph@winzerhof-wurst.at>
- *
- * @author Christoph Wurst <christoph@winzerhof-wurst.at>
- * @author John Molakvoæ <skjnldsv@protonmail.com>
- * @author Julius Härtl <jus@bitgrid.net>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0-or-later
- *
- * 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/>.
- *
+ * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-import $ from 'jquery'
-import 'core-js/stable'
-import 'regenerator-runtime/runtime'
-import './Polyfill/index'
+import 'core-js/stable/index.js'
+import 'regenerator-runtime/runtime.js'
// If you remove the line below, tests won't pass
// eslint-disable-next-line no-unused-vars
-import OC from './OC/index'
+import OC from './OC/index.js'
-import './globals'
-import './jquery/index'
-import { initCore } from './init'
-import { registerAppsSlideToggle } from './OC/apps'
+import './globals.js'
+import './jquery/index.js'
+import { initCore } from './init.js'
+import { registerAppsSlideToggle } from './OC/apps.js'
+import { getCSPNonce } from '@nextcloud/auth'
+import { generateUrl } from '@nextcloud/router'
+import Axios from '@nextcloud/axios'
+
+// eslint-disable-next-line camelcase
+__webpack_nonce__ = getCSPNonce()
window.addEventListener('DOMContentLoaded', function() {
initCore()
@@ -45,6 +29,23 @@ window.addEventListener('DOMContentLoaded', function() {
if (window.history.pushState) {
window.onpopstate = _.bind(OC.Util.History._onPopState, OC.Util.History)
} else {
- $(window).on('hashchange', _.bind(OC.Util.History._onPopState, OC.Util.History))
+ window.onhashchange = _.bind(OC.Util.History._onPopState, OC.Util.History)
+ }
+})
+
+// Fix error "CSRF check failed"
+document.addEventListener('DOMContentLoaded', function() {
+ const form = document.getElementById('password-input-form')
+ if (form) {
+ form.addEventListener('submit', async function(event) {
+ event.preventDefault()
+ const requestToken = document.getElementById('requesttoken')
+ if (requestToken) {
+ const url = generateUrl('/csrftoken')
+ const resp = await Axios.get(url)
+ requestToken.value = resp.data.token
+ }
+ form.submit()
+ })
}
})