@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.
Files changed (55) hide show
  1. package/CHANGELOG.md +28 -1
  2. package/package.json +2 -2
  3. package/services/backend/package.json +2 -2
  4. package/services/backend/src/core/backgroundTasks/taskManager.ts +1 -1
  5. package/services/backend/src/core/config/configService.ts +4 -0
  6. package/services/backend/src/core/sockets/socketManager.ts +2 -0
  7. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/account/account.service.ts +7 -3
  8. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/account/routes/route.account.hardDelete.ts +16 -11
  9. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/composition.service.ts +11 -3
  10. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/routes/index.ts +2 -0
  11. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/routes/route.composition.hardDelete.ts +16 -11
  12. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/composition/routes/route.composition.restore.ts +55 -0
  13. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/interactionLink.service.ts +14 -6
  14. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/routes/index.ts +2 -0
  15. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/routes/route.interactionLink.hardDelete.ts +14 -7
  16. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/interactionLink/routes/route.interactionLink.restore.ts +55 -0
  17. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/project.model.ts +17 -0
  18. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/project.schema.ts +18 -6
  19. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/project.service.ts +8 -4
  20. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/project/routes/index.ts +5 -5
  21. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/routes/index.ts +2 -0
  22. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/routes/route.tag.hardDelete.ts +14 -7
  23. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/routes/route.tag.restore.ts +55 -0
  24. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/tag/tag.service.ts +12 -3
  25. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/routes/index.ts +4 -0
  26. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/routes/route.user.hardDelete.ts +55 -0
  27. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/routes/route.user.restore.ts +55 -0
  28. package/services/backend/src/corePlugins/raclette__core/backend/datatypes/user/user.service.ts +33 -0
  29. package/services/backend/src/domains/system/routes/route.user.login.ts +4 -2
  30. package/services/backend/src/shared/types/core/ProjectUpdate.types.ts +1 -0
  31. package/services/backend/src/shared/types/dataTypes/tags.ts +1 -0
  32. package/services/frontend/package.json +8 -8
  33. package/services/frontend/src/core/lib/configService.ts +1 -1
  34. package/services/frontend/src/core/lib/data/fetchDataHandler.ts +7 -19
  35. package/services/frontend/src/core/lib/data/responseTypeHandler.ts +1 -1
  36. package/services/frontend/src/core/lib/data/writeDataHandler.ts +8 -13
  37. package/services/frontend/src/core/lib/dataHelper.ts +15 -0
  38. package/services/frontend/src/core/lib/eventWhitelist.ts +4 -13
  39. package/services/frontend/src/core/lib/userNotifier.ts +2 -1
  40. package/services/frontend/src/core/main.ts +7 -1
  41. package/services/frontend/src/orchestrator/LoginApp.vue +0 -1
  42. package/services/frontend/src/orchestrator/ProductOrchestrator.vue +40 -5
  43. package/services/frontend/src/orchestrator/components/composition/CompositionOverlay.vue +7 -3
  44. package/services/frontend/src/orchestrator/components/composition/WidgetsLayoutLoader.vue +12 -24
  45. package/services/frontend/src/orchestrator/components/input/SimpleSearchInput.vue +16 -4
  46. package/services/frontend/src/orchestrator/components/menu/AppBarMenu.vue +184 -0
  47. package/services/frontend/src/orchestrator/components/menu/UserMenu.vue +62 -46
  48. package/services/frontend/src/orchestrator/components/navigation/PageNavigationSidebar.vue +11 -1
  49. package/services/frontend/src/orchestrator/composables/usePageNavigation.ts +10 -1
  50. package/services/frontend/src/orchestrator/i18n/de-DE.json +1 -0
  51. package/services/frontend/src/orchestrator/i18n/en-EU.json +1 -0
  52. package/services/frontend/src/orchestrator/i18n/sk.json +1 -0
  53. package/services/frontend/src/orchestrator/router/index.ts +16 -0
  54. package/yarn.lock +4 -4
  55. 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(["page-navigation", "user-menu"])
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 {
@@ -72,6 +72,7 @@
72
72
  "noAccountYet": "Noch kein Konto?",
73
73
  "moreInformation": "Weitere Informationen"
74
74
  },
75
+ "openInFloatingWindow": "In extrafenster öffnen",
75
76
  "showDeleted": "Zeige gelöschte",
76
77
  "hideDeleted": "Verstecke gelöschte",
77
78
  "cancel": "Abbrechen",
@@ -72,6 +72,7 @@
72
72
  "noAccountYet": "Don't have an account yet?",
73
73
  "moreInformation": "More information"
74
74
  },
75
+ "openInFloatingWindow": "Open in floating window",
75
76
  "showDeleted": "Show deleted",
76
77
  "hideDeleted": "Hide deleted",
77
78
  "cancel": "Cancel",
@@ -72,6 +72,7 @@
72
72
  "noAccountYet": "Ešte nemáte účet?",
73
73
  "moreInformation": "Viac informácií"
74
74
  },
75
+ "openInFloatingWindow": "Otvoriť v plávajúcom okne",
75
76
  "showDeleted": "relácia vymazaná",
76
77
  "hideDeleted": "skryť odstránené",
77
78
  "cancel": "Zrušiť",
@@ -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.16":
299
- version "0.1.16"
300
- resolved "https://registry.yarnpkg.com/@raclettejs/types/-/types-0.1.16.tgz#9b8e6122c831b98822ec35bf90430dfb9a482aa6"
301
- integrity sha512-HUkh4CP5yny3IwgYIHSh3zbpzakJgzmuRO3obtutVADO8tmRi9SAnQQMXK5X+3A51ZicdB9VPuhmw1r/Iv1SZA==
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
- }