@raclettejs/core 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -1
- package/package.json +2 -2
- package/services/backend/package.json +2 -2
- package/services/backend/src/core/backgroundTasks/taskManager.ts +1 -1
- package/services/backend/src/core/config/configService.ts +4 -0
- package/services/backend/src/core/sockets/socketManager.ts +2 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/account/account.service.ts +7 -3
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/account/routes/route.account.hardDelete.ts +16 -11
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/composition.service.ts +11 -3
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/routes/index.ts +2 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/routes/route.composition.hardDelete.ts +16 -11
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/routes/route.composition.restore.ts +55 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/interactionLink.service.ts +14 -6
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/routes/index.ts +2 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/routes/route.interactionLink.hardDelete.ts +14 -7
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/routes/route.interactionLink.restore.ts +55 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/project.model.ts +17 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/project.schema.ts +18 -6
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/project.service.ts +8 -4
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/routes/index.ts +5 -5
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/routes/index.ts +2 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/routes/route.tag.hardDelete.ts +14 -7
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/routes/route.tag.restore.ts +55 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/tag.service.ts +12 -3
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/routes/index.ts +4 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/routes/route.user.hardDelete.ts +55 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/routes/route.user.restore.ts +55 -0
- package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/user.service.ts +33 -0
- package/services/backend/src/domains/system/routes/route.user.login.ts +4 -2
- package/services/backend/src/shared/types/core/ProjectUpdate.types.ts +1 -0
- package/services/backend/src/shared/types/dataTypes/tags.ts +1 -0
- package/services/frontend/package.json +8 -8
- package/services/frontend/src/core/lib/configService.ts +1 -1
- package/services/frontend/src/core/lib/data/fetchDataHandler.ts +7 -19
- package/services/frontend/src/core/lib/data/responseTypeHandler.ts +1 -1
- package/services/frontend/src/core/lib/data/writeDataHandler.ts +8 -13
- package/services/frontend/src/core/lib/dataHelper.ts +15 -0
- package/services/frontend/src/core/lib/eventWhitelist.ts +4 -13
- package/services/frontend/src/core/lib/userNotifier.ts +2 -1
- package/services/frontend/src/core/main.ts +7 -1
- package/services/frontend/src/orchestrator/LoginApp.vue +0 -1
- package/services/frontend/src/orchestrator/ProductOrchestrator.vue +40 -5
- package/services/frontend/src/orchestrator/components/composition/CompositionOverlay.vue +7 -3
- package/services/frontend/src/orchestrator/components/composition/WidgetsLayoutLoader.vue +12 -24
- package/services/frontend/src/orchestrator/components/input/SimpleSearchInput.vue +16 -4
- package/services/frontend/src/orchestrator/components/menu/AppBarMenu.vue +184 -0
- package/services/frontend/src/orchestrator/components/menu/UserMenu.vue +62 -46
- package/services/frontend/src/orchestrator/components/navigation/PageNavigationSidebar.vue +11 -1
- package/services/frontend/src/orchestrator/composables/usePageNavigation.ts +10 -1
- package/services/frontend/src/orchestrator/i18n/de-DE.json +1 -0
- package/services/frontend/src/orchestrator/i18n/en-EU.json +1 -0
- package/services/frontend/src/orchestrator/i18n/sk.json +1 -0
- package/services/frontend/src/orchestrator/router/index.ts +16 -0
- package/yarn.lock +4 -4
- package/services/frontend/src/orchestrator/setup/loginApp.ts +0 -27
|
@@ -19,17 +19,23 @@ export type NavigationItem = {
|
|
|
19
19
|
|
|
20
20
|
export default () => {
|
|
21
21
|
const { locale } = useUiState()
|
|
22
|
-
const { state } = useInteractionLinks([
|
|
22
|
+
const { state } = useInteractionLinks([
|
|
23
|
+
"page-navigation",
|
|
24
|
+
"user-menu",
|
|
25
|
+
"app-bar",
|
|
26
|
+
])
|
|
23
27
|
const { triggerInteractionLink } = useRouteState()
|
|
24
28
|
|
|
25
29
|
const navigationItems = computed<{
|
|
26
30
|
navigationItems: NavigationItem[]
|
|
27
31
|
footerItems: NavigationItem[]
|
|
28
32
|
userMenuItems: NavigationItem[]
|
|
33
|
+
appBarItems: NavigationItem[]
|
|
29
34
|
}>(() => {
|
|
30
35
|
const navigationItems: NavigationItem[] = []
|
|
31
36
|
const footerItems: NavigationItem[] = []
|
|
32
37
|
const userMenuItems: NavigationItem[] = []
|
|
38
|
+
const appBarItems: NavigationItem[] = []
|
|
33
39
|
locale.value
|
|
34
40
|
state.value.forEach((interactionLink) =>
|
|
35
41
|
interactionLink.triggers
|
|
@@ -60,6 +66,8 @@ export default () => {
|
|
|
60
66
|
}
|
|
61
67
|
} else if (type === "user-menu") {
|
|
62
68
|
userMenuItems.push(item)
|
|
69
|
+
} else if (type === "app-bar") {
|
|
70
|
+
appBarItems.push(item)
|
|
63
71
|
}
|
|
64
72
|
}
|
|
65
73
|
}),
|
|
@@ -69,6 +77,7 @@ export default () => {
|
|
|
69
77
|
navigationItems,
|
|
70
78
|
footerItems,
|
|
71
79
|
userMenuItems,
|
|
80
|
+
appBarItems,
|
|
72
81
|
}
|
|
73
82
|
})
|
|
74
83
|
return {
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { createRouter, createWebHistory } from "vue-router"
|
|
5
5
|
import { afterEach, beforeEach } from "./routerHooks"
|
|
6
6
|
import routes from "./routes"
|
|
7
|
+
import { $eventbus } from "@racletteCore/main"
|
|
7
8
|
|
|
8
9
|
// create router instance
|
|
9
10
|
|
|
@@ -15,5 +16,20 @@ const router = createRouter({
|
|
|
15
16
|
/* Rooter hooks */
|
|
16
17
|
router.beforeEach(beforeEach)
|
|
17
18
|
router.afterEach(afterEach)
|
|
19
|
+
$eventbus.on("backend/error", (error) => {
|
|
20
|
+
if (error.name === "AxiosError") {
|
|
21
|
+
const errorResponse = error.response?.data
|
|
22
|
+
if (errorResponse?.code === "FST_JWT_AUTHORIZATION_TOKEN_EXPIRED") {
|
|
23
|
+
// Capture current route path (including query and hash)
|
|
24
|
+
const currentUrl = router.currentRoute.value.fullPath
|
|
25
|
+
// Redirect to login with the current URL as a query param
|
|
26
|
+
if (window.location.href !== window.location.origin + "/login") {
|
|
27
|
+
window.location.href =
|
|
28
|
+
window.location.origin + "/login?redirect=" + currentUrl
|
|
29
|
+
}
|
|
18
30
|
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
})
|
|
19
35
|
export default router
|
package/yarn.lock
CHANGED
|
@@ -295,10 +295,10 @@
|
|
|
295
295
|
resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b"
|
|
296
296
|
integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==
|
|
297
297
|
|
|
298
|
-
"@raclettejs/types@^0.1.
|
|
299
|
-
version "0.1.
|
|
300
|
-
resolved "https://registry.yarnpkg.com/@raclettejs/types/-/types-0.1.
|
|
301
|
-
integrity sha512-
|
|
298
|
+
"@raclettejs/types@^0.1.18":
|
|
299
|
+
version "0.1.18"
|
|
300
|
+
resolved "https://registry.yarnpkg.com/@raclettejs/types/-/types-0.1.18.tgz#7df0eb1b86db015694fabfafa089a277e654b350"
|
|
301
|
+
integrity sha512-mvQI2sO48z6+QKj/s5A5JMBKnY8piE+8D8N0soctfsU7tAKg8nEwlxOiQHZiqJyR1k+gX2p+VBMRGbxHCYAGFw==
|
|
302
302
|
dependencies:
|
|
303
303
|
"@types/node" "24.5.2"
|
|
304
304
|
fastify "5.6.0"
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// TODO: check if this file can be deleted
|
|
2
|
-
export const createLoginApp = async (
|
|
3
|
-
el: string,
|
|
4
|
-
loginMethod: Function,
|
|
5
|
-
noUsers: boolean,
|
|
6
|
-
) => {
|
|
7
|
-
const [{ createApp }, { default: LoginApp }, { i18n }, { default: vuetify }] =
|
|
8
|
-
await Promise.all([
|
|
9
|
-
import("vue"),
|
|
10
|
-
import("../LoginApp.vue"),
|
|
11
|
-
import("./i18n"),
|
|
12
|
-
import("./vuetify"),
|
|
13
|
-
])
|
|
14
|
-
|
|
15
|
-
await Promise.all([
|
|
16
|
-
import("../assets/styles/main.scss"),
|
|
17
|
-
import("../assets/styles/tailwindStyles.css"),
|
|
18
|
-
import("../assets/styles/vuetifyStyles.scss"),
|
|
19
|
-
])
|
|
20
|
-
|
|
21
|
-
const app = createApp(LoginApp, { loginMethod, noUsers })
|
|
22
|
-
app.use(i18n)
|
|
23
|
-
app.use(vuetify)
|
|
24
|
-
app.mount(el)
|
|
25
|
-
|
|
26
|
-
return app
|
|
27
|
-
}
|