diff --git a/resources/assets/v3/js/api/preferences/index.js b/resources/assets/v3/js/api/preferences/index.js
new file mode 100644
index 0000000000..c53862c7c3
--- /dev/null
+++ b/resources/assets/v3/js/api/preferences/index.js
@@ -0,0 +1,34 @@
+/*
+ * basic.js
+ * Copyright (c) 2021 james@firefly-iii.org
+ *
+ * This file is part of Firefly III (https://github.com/firefly-iii).
+ *
+ * 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 .
+ */
+
+import {api} from "../../boot/axios";
+
+export default class Preferences {
+ getByName(name) {
+ return api.get('/api/v1/preferences/' + name);
+ }
+ getByNameNow(name) {
+ return api.get('/api/v1/preferences/' + name);
+ }
+
+ postByName(name, value) {
+ return api.post('/api/v1/preferences', {name: name, data: value});
+ }
+}
diff --git a/resources/assets/v3/js/api/preferences/post.js b/resources/assets/v3/js/api/preferences/post.js
new file mode 100644
index 0000000000..fa375c0975
--- /dev/null
+++ b/resources/assets/v3/js/api/preferences/post.js
@@ -0,0 +1,28 @@
+/*
+ * post.js
+ * Copyright (c) 2022 james@firefly-iii.org
+ *
+ * This file is part of Firefly III (https://github.com/firefly-iii).
+ *
+ * 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 .
+ */
+
+import {api} from "../../boot/axios";
+
+export default class Post {
+ post(name, value) {
+ let url = '/api/v1/preferences';
+ return api.post(url, {name: name, data: value});
+ }
+}
diff --git a/resources/assets/v3/js/api/summary/index.js b/resources/assets/v3/js/api/summary/index.js
index 7ca126eaf3..0744ce9070 100644
--- a/resources/assets/v3/js/api/summary/index.js
+++ b/resources/assets/v3/js/api/summary/index.js
@@ -19,7 +19,7 @@
*/
-import {api} from "../../../boot/axios.js";
+import {api} from "../../boot/axios.js";
export default class Summary {
get(start, end, code) {
diff --git a/resources/assets/v3/js/pages/dashboard/dashboard.js b/resources/assets/v3/js/pages/dashboard/dashboard.js
index 9fe008c966..7269b8972a 100644
--- a/resources/assets/v3/js/pages/dashboard/dashboard.js
+++ b/resources/assets/v3/js/pages/dashboard/dashboard.js
@@ -27,7 +27,7 @@ import "bootstrap-icons/font/bootstrap-icons.css"
import '../../boot/bootstrap.js';
import sidebar from '../../pages/shared/sidebar.js';
-import boxes from 'boxes.js';
+import boxes from './boxes.js';
let index = function () {
return {
diff --git a/resources/assets/v3/js/store/get-variable.js b/resources/assets/v3/js/store/get-variable.js
index b3010827b0..1462d1ce0b 100644
--- a/resources/assets/v3/js/store/get-variable.js
+++ b/resources/assets/v3/js/store/get-variable.js
@@ -18,8 +18,8 @@
* along with this program. If not, see .
*/
-import Get from "../api/v1/preferences/index.js";
-import Post from "../api/v1/preferences/post.js";
+import Get from "../api/preferences/index.js";
+import Post from "../api/preferences/post.js";
export function getVariable(name, defaultValue = null) {
const validCache = window.store.get('cacheValid');
diff --git a/resources/assets/v3/js/util/cleanup-cache.js b/resources/assets/v3/js/support/cleanup-cache.js
similarity index 100%
rename from resources/assets/v3/js/util/cleanup-cache.js
rename to resources/assets/v3/js/support/cleanup-cache.js
diff --git a/resources/assets/v3/vite.config.js b/resources/assets/v3/vite.config.js
index 619181bcbe..71dddfe4d6 100644
--- a/resources/assets/v3/vite.config.js
+++ b/resources/assets/v3/vite.config.js
@@ -41,6 +41,7 @@ export default defineConfig(({command, mode, isSsrBuild, isPreview}) => {
'sass/app.scss',
// dashboard
+ 'js/pages/dashboard/boxes.js',
'js/pages/dashboard/dashboard.js'
],
buildDirectory: '../../../../public/build',