@ozdao/martyrs 0.2.563 → 0.2.565

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 (207) hide show
  1. package/dist/abac-BPl9Bmf9.js +1527 -0
  2. package/dist/builder.js +51 -39
  3. package/dist/{common.schema-GFSlNJo7.js → common.schema-DswiUXKB.js} +1 -1
  4. package/dist/community.server.js +48 -9
  5. package/dist/core.server.js +6 -4
  6. package/dist/{crud-C7FSTUes.js → crud-q1ye5IhV.js} +7 -7
  7. package/dist/events.server.js +3 -3
  8. package/dist/gallery.server.js +2 -2
  9. package/dist/inventory.server.js +4 -6
  10. package/dist/{main-CmjWiDVF.js → main-B9o1iBAZ.js} +1279 -1287
  11. package/dist/marketplace.server.js +1 -1
  12. package/dist/martyrs/src/components/Button/Button.vue2.js +33 -42
  13. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -1
  14. package/dist/martyrs/src/components/EditImages/{EditImages.vue.js → EditImages.vue2.js} +2 -2
  15. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
  16. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  17. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +1 -1
  18. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  19. package/dist/martyrs/src/components/Loader/Loader.vue.js +1 -2
  20. package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -1
  21. package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
  22. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
  23. package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
  24. package/dist/martyrs/src/components/Tab/Tab.vue2.js.map +1 -0
  25. package/dist/martyrs/src/components/Tree/Tree.vue.js +6 -3
  26. package/dist/martyrs/src/components/Tree/Tree.vue.js.map +1 -1
  27. package/dist/martyrs/src/modules/auth/auth.client.js +10 -7
  28. package/dist/martyrs/src/modules/auth/auth.client.js.map +1 -1
  29. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  30. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +1 -1
  32. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
  33. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  34. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +12 -12
  35. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js.map +1 -1
  36. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  37. package/dist/martyrs/src/modules/auth/views/router/auth.router.js +116 -0
  38. package/dist/martyrs/src/modules/auth/views/router/auth.router.js.map +1 -0
  39. package/dist/martyrs/src/modules/auth/views/router/users.router.js +180 -0
  40. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -0
  41. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +3 -3
  42. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  43. package/dist/martyrs/src/modules/core/locales/en.js +45 -0
  44. package/dist/martyrs/src/modules/core/locales/en.js.map +1 -1
  45. package/dist/martyrs/src/modules/core/locales/ru.js +45 -0
  46. package/dist/martyrs/src/modules/core/locales/ru.js.map +1 -1
  47. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js +9 -0
  48. package/dist/martyrs/src/modules/core/views/classes/i18n.manager.js.map +1 -1
  49. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
  50. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
  51. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
  52. package/dist/martyrs/src/modules/core/views/mixins/mixins.js +1 -2
  53. package/dist/martyrs/src/modules/core/views/mixins/mixins.js.map +1 -1
  54. package/dist/martyrs/src/modules/core/views/router/addRoutes.js +6 -1
  55. package/dist/martyrs/src/modules/core/views/router/addRoutes.js.map +1 -1
  56. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  57. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  58. package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
  59. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  60. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  61. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  62. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  63. package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js +0 -16
  64. package/dist/martyrs/src/modules/marketplace/views/store/marketplace.js.map +1 -1
  65. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +4 -4
  66. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  67. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +1 -1
  68. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js +3 -0
  69. package/dist/martyrs/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue.js.map +1 -1
  70. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  71. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
  72. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  73. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  74. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  76. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  77. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  78. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  80. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  81. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js +1 -1
  82. package/dist/martyrs/src/modules/products/components/blocks/CardCategory.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +15 -2
  84. package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js.map +1 -1
  85. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +9 -6
  86. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js.map +1 -1
  87. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -3
  88. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  89. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +11 -2
  90. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  92. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +2 -2
  93. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
  94. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +11 -8
  95. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
  96. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  97. package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
  98. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +210 -60
  99. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js.map +1 -1
  100. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +3 -3
  101. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js.map +1 -1
  102. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
  103. package/dist/martyrs.css +1 -1
  104. package/dist/martyrs.es.js +1 -1
  105. package/dist/music.server.js +11 -12
  106. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  107. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  108. package/dist/notifications.server.js +0 -3
  109. package/dist/orders.server.js +5 -6
  110. package/dist/organizations.server.js +9 -10
  111. package/dist/products.server.js +27 -26
  112. package/dist/{queryProcessor-CBQgZycY.js → queryProcessor-C_5Iipam.js} +4 -1
  113. package/dist/rents.server.js +2 -3
  114. package/dist/spots.server.js +1 -1
  115. package/dist/style.css +38 -23
  116. package/dist/{web-cNKIl_cL.js → web-BF3ijvEr.js} +1 -1
  117. package/package.json +1 -1
  118. package/src/builder/modes/ssr.rspack.dev.js +4 -3
  119. package/src/builder/rspack/rspack.config.api.js +15 -4
  120. package/src/builder/rspack/rspack.config.base.js +3 -3
  121. package/src/builder/rspack/rspack.config.ssr.client.js +28 -28
  122. package/src/builder/templates/page.js +2 -2
  123. package/src/components/Button/Button.vue +50 -37
  124. package/src/components/FieldPhone/FieldPhone.vue +1 -1
  125. package/src/components/Loader/Loader.vue +1 -1
  126. package/src/components/Tree/Tree.vue +6 -3
  127. package/src/modules/PROCESS.md +0 -0
  128. package/src/modules/TASKS.MD +17 -0
  129. package/src/modules/auth/auth.client.js +11 -7
  130. package/src/modules/auth/views/components/pages/SignIn.vue +1 -1
  131. package/src/modules/auth/views/router/auth.router.js +94 -0
  132. package/src/modules/auth/views/router/users.router.js +153 -0
  133. package/src/modules/backoffice/components/partials/Sidebar.vue +7 -7
  134. package/src/modules/community/community.server.js +8 -0
  135. package/src/modules/community/policies/blog.policies.js +55 -0
  136. package/src/modules/community/routes/blog.routes.js +1 -1
  137. package/src/modules/community/routes/comments.routes.js +1 -1
  138. package/src/modules/community/routes/reactions.routes.js +1 -4
  139. package/src/modules/core/controllers/classes/abac/abac.adapter.express.js +206 -124
  140. package/src/modules/core/controllers/classes/abac/abac.adapter.ws.js +203 -50
  141. package/src/modules/core/controllers/classes/abac/abac.core.js +127 -36
  142. package/src/modules/core/controllers/classes/abac/abac.fields.js +144 -179
  143. package/src/modules/core/controllers/classes/abac/abac.js +201 -10
  144. package/src/modules/core/controllers/classes/abac/abac.policies.js +147 -57
  145. package/src/modules/core/controllers/classes/crud/crud.policies.js +5 -5
  146. package/src/modules/core/controllers/policies/core.policies.js +5 -2
  147. package/src/modules/core/controllers/utils/queryProcessor.js +4 -1
  148. package/src/modules/core/core.server.js +1 -0
  149. package/src/modules/core/locales/en.js +45 -0
  150. package/src/modules/core/locales/ru.js +45 -0
  151. package/src/modules/core/models/schemas/common.schema.js +1 -1
  152. package/src/modules/core/views/classes/i18n.manager.js +13 -0
  153. package/src/modules/core/views/components/sections/filters/FilterPrice.vue +81 -0
  154. package/src/modules/core/views/mixins/mixins.js +1 -2
  155. package/src/modules/core/views/router/addRoutes.js +6 -1
  156. package/src/modules/events/routes/events.routes.js +1 -1
  157. package/src/modules/inventory/components/pages/InventoryEdit.vue +3 -3
  158. package/src/modules/inventory/policies/inventory.policies.js +1 -1
  159. package/src/modules/inventory/routes/inventory.routes.js +1 -1
  160. package/src/modules/marketplace/marketplace.router.js +66 -0
  161. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +363 -0
  162. package/src/modules/marketplace/views/components/pages/Catalog.vue +73 -0
  163. package/src/modules/marketplace/views/store/marketplace.js +0 -16
  164. package/src/modules/music/controllers/stream.controller.js +1 -1
  165. package/src/modules/music/music.server.js +1 -1
  166. package/src/modules/music/policies/music.policies.js +3 -2
  167. package/src/modules/music/router/library.router.js +26 -0
  168. package/src/modules/music/router/music.router.js +176 -0
  169. package/src/modules/notifications/components/elements/NotificationBadge.vue +5 -6
  170. package/src/modules/notifications/notifications.server.js +1 -3
  171. package/src/modules/orders/components/elements/FieldSubscribeNewsletter.vue +5 -0
  172. package/src/modules/orders/orders.server.js +0 -1
  173. package/src/modules/organizations/components/blocks/CardOrganization.vue +2 -2
  174. package/src/modules/organizations/components/pages/DepartmentEdit.vue +2 -2
  175. package/src/modules/organizations/components/pages/OrganizationEdit.vue +2 -2
  176. package/src/modules/organizations/policies/organizations.policies.js +12 -6
  177. package/src/modules/organizations/routes/organizations.routes.js +1 -3
  178. package/src/modules/products/components/blocks/CardCategory.vue +1 -1
  179. package/src/modules/products/components/blocks/CardProduct.vue +16 -2
  180. package/src/modules/products/components/pages/Categories.vue +9 -6
  181. package/src/modules/products/components/pages/CategoryEdit.vue +8 -4
  182. package/src/modules/products/components/pages/Product.vue +11 -5
  183. package/src/modules/products/components/sections/SectionProduct.vue +11 -7
  184. package/src/modules/products/controllers/categories.controller.js +32 -27
  185. package/src/modules/products/routes/categories.routes.js +1 -1
  186. package/src/modules/rents/controllers/routes/rents.routes.js +1 -1
  187. package/src/modules/rents/views/components/pages/RentsEdit.vue +208 -49
  188. package/src/modules/spots/components/pages/Map.vue +2 -2
  189. package/dist/abac-DYoheWuc.js +0 -1031
  190. package/dist/core.abac-DUPBnlk6.js +0 -298
  191. package/dist/core.logger-C3q8A9dl.js +0 -51
  192. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
  193. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
  194. package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
  195. package/dist/martyrs/src/modules/auth/auth.router.js +0 -342
  196. package/dist/martyrs/src/modules/auth/auth.router.js.map +0 -1
  197. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
  198. package/src/modules/auth/auth.router.js +0 -262
  199. package/src/modules/core/controllers/classes/abac/v2/abac-core-fixed.js +0 -313
  200. package/src/modules/core/controllers/classes/abac/v2/abac-express-fixed.js +0 -276
  201. package/src/modules/core/controllers/classes/abac/v2/abac-fields-fixed.js +0 -425
  202. package/src/modules/core/controllers/classes/abac/v2/abac-main-fixed.js +0 -295
  203. package/src/modules/core/controllers/classes/abac/v2/abac-policies-fixed.js +0 -316
  204. package/src/modules/core/controllers/classes/abac/v2/abac-ws-fixed.js +0 -237
  205. package/src/modules/core/controllers/classes/core.abac.js +0 -310
  206. package/src/modules/core/controllers/classes/core.crud.js +0 -89
  207. package/src/modules/governance/reactcode/eslint.config.js +0 -28
@@ -1,342 +0,0 @@
1
- import { state } from "./views/store/auth.js";
2
- import { useGlobalMixins } from "../core/views/mixins/mixins.js";
3
- import _sfc_main from "../icons/navigation/IconPlus.vue.js";
4
- import { navigationItems } from "./views/configs/navigation.user.config.js";
5
- import _sfc_main$1 from "./views/components/blocks/ProfileCard.vue.js";
6
- import HelpCard from "../core/views/components/blocks/HelpCard.vue.js";
7
- const { isPhone, isTablet } = useGlobalMixins();
8
- function getRoutes(options = {}) {
9
- const route = options.route || "Home";
10
- const routes = [];
11
- routes.push({
12
- parentName: route,
13
- config: {
14
- basePath: "auth",
15
- component: () => import(
16
- /* webpackChunkName: "auth-layout" */
17
- "./views/components/layouts/Auth.vue.js"
18
- ),
19
- meta: {
20
- title: {
21
- en: "Аутентификация",
22
- ru: "Authentication"
23
- }
24
- },
25
- routes: [
26
- {
27
- path: "signin",
28
- name: "Sign In",
29
- beforeEnter: [
30
- () => import(
31
- /* webpackChunkName: "auth-validation" */
32
- "./views/middlewares/auth.validation.js"
33
- ).then((m) => m.requiresNoAuth),
34
- () => import(
35
- /* webpackChunkName: "auth-validation" */
36
- "./views/middlewares/auth.validation.js"
37
- ).then((m) => m.resetUser)
38
- ],
39
- meta: {
40
- title: {
41
- en: "Sign In",
42
- ru: "Вход"
43
- }
44
- },
45
- component: () => import(
46
- /* webpackChunkName: "signin" */
47
- "./views/components/pages/SignIn.vue.js"
48
- )
49
- },
50
- {
51
- path: "reset-password",
52
- name: "Reset Password",
53
- beforeEnter: [
54
- () => import(
55
- /* webpackChunkName: "auth-validation" */
56
- "./views/middlewares/auth.validation.js"
57
- ).then((m) => m.requiresNoAuth),
58
- () => import(
59
- /* webpackChunkName: "auth-validation" */
60
- "./views/middlewares/auth.validation.js"
61
- ).then((m) => m.resetUser)
62
- ],
63
- meta: {
64
- title: {
65
- en: "Reset Password",
66
- ru: "Сбросить Пароль"
67
- }
68
- },
69
- component: () => import(
70
- /* webpackChunkName: "reset-password" */
71
- "./views/components/pages/ResetPassword.vue.js"
72
- )
73
- },
74
- {
75
- path: "signup",
76
- name: "Sign Up",
77
- beforeEnter: [
78
- () => import(
79
- /* webpackChunkName: "auth-validation" */
80
- "./views/middlewares/auth.validation.js"
81
- ).then((m) => m.requiresNoAuth),
82
- () => import(
83
- /* webpackChunkName: "auth-validation" */
84
- "./views/middlewares/auth.validation.js"
85
- ).then((m) => m.resetUser)
86
- ],
87
- meta: {
88
- title: {
89
- en: "Sign Up",
90
- ru: "Регистрация"
91
- }
92
- },
93
- component: () => import(
94
- /* webpackChunkName: "signup" */
95
- "./views/components/pages/SignUp.vue.js"
96
- )
97
- },
98
- {
99
- path: "enter-code",
100
- name: "Enter Code",
101
- beforeEnter: [
102
- () => import(
103
- /* webpackChunkName: "auth-validation" */
104
- "./views/middlewares/auth.validation.js"
105
- ).then((m) => m.requiresNoAuth),
106
- () => import(
107
- /* webpackChunkName: "auth-validation" */
108
- "./views/middlewares/auth.validation.js"
109
- ).then((m) => m.checkUser)
110
- ],
111
- meta: {
112
- title: {
113
- en: "Enter Code",
114
- ru: "Введите Код"
115
- }
116
- },
117
- component: () => import(
118
- /* webpackChunkName: "signup" */
119
- "./views/components/pages/EnterCode.vue.js"
120
- )
121
- },
122
- {
123
- path: "enter-password",
124
- name: "Enter Password",
125
- beforeEnter: [
126
- () => import(
127
- /* webpackChunkName: "auth-validation" */
128
- "./views/middlewares/auth.validation.js"
129
- ).then((m) => m.requiresNoAuth),
130
- () => import(
131
- /* webpackChunkName: "auth-validation" */
132
- "./views/middlewares/auth.validation.js"
133
- ).then((m) => m.checkUser)
134
- ],
135
- meta: {
136
- title: {
137
- en: "Enter Password",
138
- ru: "Введите Пароль"
139
- }
140
- },
141
- component: () => import(
142
- /* webpackChunkName: "signup" */
143
- "./views/components/pages/EnterPassword.vue.js"
144
- )
145
- },
146
- {
147
- path: "invite",
148
- name: "Invite",
149
- beforeEnter: [
150
- () => import(
151
- /* webpackChunkName: "auth-validation" */
152
- "./views/middlewares/auth.validation.js"
153
- ).then((m) => m.requiresNoAuth),
154
- () => import(
155
- /* webpackChunkName: "auth-validation" */
156
- "./views/middlewares/auth.validation.js"
157
- ).then((m) => m.resetUser)
158
- ],
159
- meta: {
160
- title: {
161
- en: "Invite",
162
- ru: "Приглашение"
163
- }
164
- },
165
- component: () => import(
166
- /* webpackChunkName: "signup" */
167
- "./views/components/pages/Invite.vue.js"
168
- )
169
- }
170
- ]
171
- }
172
- });
173
- routes.push({
174
- parentName: route,
175
- config: {
176
- basePath: "users",
177
- meta: {
178
- title: {
179
- en: "Users",
180
- ru: "Пользователи"
181
- }
182
- },
183
- routes: [
184
- {
185
- path: ":_id",
186
- name: "User Profile Root",
187
- meta: {
188
- title: {
189
- en: "Profile",
190
- ru: "Профиль"
191
- },
192
- sidebar_hover: false,
193
- sidebar_navigation_items: navigationItems,
194
- sidebar_header_component: _sfc_main$1,
195
- sidebar_footer_component: HelpCard,
196
- sidebarOpenOnEnter: true,
197
- sidebarCloseOnLeave: true
198
- },
199
- children: [
200
- {
201
- path: "",
202
- // Пустой путь для основного профиля
203
- name: "User Profile",
204
- meta: {
205
- title: {
206
- en: "Profile",
207
- ru: "Профиль"
208
- },
209
- title_hide: true,
210
- hideNavigationBar: (route2) => route2.params._id === state.user._id
211
- },
212
- component: () => import(
213
- /* webpackChunkName: "profile" */
214
- "./views/components/pages/Profile.vue.js"
215
- ),
216
- children: [
217
- {
218
- path: "edit",
219
- name: "User Edit Profile",
220
- component: () => import(
221
- /* webpackChunkName: "profile-edit" */
222
- "./views/components/pages/ProfileEdit.vue.js"
223
- ),
224
- children: [
225
- {
226
- path: "profile",
227
- name: "Profile Edit Profile",
228
- component: () => import(
229
- /* webpackChunkName: "profile-edit-profile" */
230
- "./views/components/pages/ProfileEditProfile.vue.js"
231
- )
232
- },
233
- {
234
- path: "account",
235
- name: "Profile Edit Account",
236
- component: () => import(
237
- /* webpackChunkName: "profile-edit-account" */
238
- "./views/components/pages/ProfileEditAccount.vue.js"
239
- )
240
- }
241
- ]
242
- }
243
- ]
244
- },
245
- {
246
- path: "dashboard",
247
- name: "User Dashboard",
248
- meta: {
249
- title: {
250
- en: "Dashboard",
251
- ru: "Дашборд"
252
- }
253
- },
254
- beforeEnter: [
255
- (to) => {
256
- if (to.params._id !== state.user._id) {
257
- return { name: "User Profile", params: { _id: to.params._id } };
258
- }
259
- }
260
- ],
261
- component: () => import(
262
- /* webpackChunkName: "profile-dashboard" */
263
- "./views/components/pages/UserDashboard.vue.js"
264
- )
265
- },
266
- {
267
- path: "blogposts",
268
- name: "User Posts",
269
- meta: {
270
- title: {
271
- en: "Posts",
272
- ru: "Посты"
273
- }
274
- },
275
- component: () => import(
276
- /* webpackChunkName: "profile" */
277
- "./views/components/pages/ProfileBlogposts.vue.js"
278
- )
279
- },
280
- {
281
- path: "events",
282
- name: "User Events",
283
- meta: {
284
- title: {
285
- en: "Events",
286
- ru: "События"
287
- }
288
- },
289
- component: () => import(
290
- /* webpackChunkName: "profile" */
291
- "../events/components/pages/EventsBackoffice.vue.js"
292
- )
293
- },
294
- {
295
- path: "organizations",
296
- name: "User Organizations",
297
- meta: {
298
- title: {
299
- en: "Groups",
300
- ru: "Группы"
301
- },
302
- actions: [
303
- {
304
- component: _sfc_main,
305
- props: {
306
- fill: "rgb(var(--main))"
307
- },
308
- condition: () => state.user && state.user._id,
309
- action: (router) => router.push({ name: "Create Organization" })
310
- }
311
- ]
312
- },
313
- component: () => import(
314
- /* webpackChunkName: "profile" */
315
- "../organizations/components/pages/Organizations.vue.js"
316
- )
317
- },
318
- {
319
- path: "wallet",
320
- name: "User Wallet",
321
- meta: {
322
- title: {
323
- en: "Wallet",
324
- ru: "Кошелек"
325
- }
326
- },
327
- component: () => import(
328
- /* webpackChunkName: "profile" */
329
- "../wallet/views/components/pages/Wallet.vue.js"
330
- )
331
- }
332
- ]
333
- }
334
- ]
335
- }
336
- });
337
- return routes;
338
- }
339
- export {
340
- getRoutes
341
- };
342
- //# sourceMappingURL=auth.router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.router.js","sources":["../../../../../src/modules/auth/auth.router.js"],"sourcesContent":["// auth.meta.js\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\nimport IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';\nimport { navigationItems } from '@martyrs/src/modules/auth/views/configs/navigation.user.config.js';\nimport ProfileCard from '@martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue';\nimport HelpCard from '@martyrs/src/modules/core/views/components/blocks/HelpCard.vue';\n\nconst { isPhone, isTablet } = useGlobalMixins();\n\nexport function getRoutes(options = {}) {\n const route = options.route || 'Home';\n const routes = [];\n \n // Auth routes\n routes.push({\n parentName: route,\n config: {\n basePath: 'auth',\n component: () => import(/* webpackChunkName: \"auth-layout\" */ './views/components/layouts/Auth.vue'),\n meta: {\n title: {\n en: 'Аутентификация',\n ru: 'Authentication',\n },\n },\n routes: [\n {\n path: 'signin',\n name: 'Sign In',\n beforeEnter: [\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),\n ],\n meta: {\n title: {\n en: 'Sign In',\n ru: 'Вход',\n },\n },\n component: () => import(/* webpackChunkName: \"signin\" */ './views/components/pages/SignIn.vue'),\n },\n {\n path: 'reset-password',\n name: 'Reset Password',\n beforeEnter: [\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),\n ],\n meta: {\n title: {\n en: 'Reset Password',\n ru: 'Сбросить Пароль',\n },\n },\n component: () => import(/* webpackChunkName: \"reset-password\" */ './views/components/pages/ResetPassword.vue'),\n },\n {\n path: 'signup',\n name: 'Sign Up',\n beforeEnter: [\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),\n ],\n meta: {\n title: {\n en: 'Sign Up',\n ru: 'Регистрация',\n },\n },\n component: () => import(/* webpackChunkName: \"signup\" */ './views/components/pages/SignUp.vue'),\n },\n {\n path: 'enter-code',\n name: 'Enter Code',\n beforeEnter: [\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.checkUser),\n ],\n meta: {\n title: {\n en: 'Enter Code',\n ru: 'Введите Код',\n },\n },\n component: () => import(/* webpackChunkName: \"signup\" */ './views/components/pages/EnterCode.vue'),\n },\n {\n path: 'enter-password',\n name: 'Enter Password',\n beforeEnter: [\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.checkUser),\n ],\n meta: {\n title: {\n en: 'Enter Password',\n ru: 'Введите Пароль',\n },\n },\n component: () => import(/* webpackChunkName: \"signup\" */ './views/components/pages/EnterPassword.vue'),\n },\n {\n path: 'invite',\n name: 'Invite',\n beforeEnter: [\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),\n () => import(/* webpackChunkName: \"auth-validation\" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),\n ],\n meta: {\n title: {\n en: 'Invite',\n ru: 'Приглашение',\n },\n },\n component: () => import(/* webpackChunkName: \"signup\" */ './views/components/pages/Invite.vue'),\n },\n ],\n }\n });\n \n // Users routes\n routes.push({\n parentName: route,\n config: {\n basePath: 'users',\n meta: {\n title: {\n en: 'Users',\n ru: 'Пользователи',\n },\n },\n routes: [\n {\n path: ':_id',\n name: 'User Profile Root',\n meta: {\n title: {\n en: 'Profile',\n ru: 'Профиль',\n },\n sidebar_hover: false,\n sidebar_navigation_items: navigationItems,\n sidebar_header_component: ProfileCard,\n sidebar_footer_component: HelpCard,\n sidebarOpenOnEnter: true,\n sidebarCloseOnLeave: true\n },\n children: [\n {\n path: '', // Пустой путь для основного профиля\n name: 'User Profile',\n meta: {\n title: {\n en: 'Profile',\n ru: 'Профиль',\n },\n title_hide: true,\n hideNavigationBar: route => route.params._id === auth.state.user._id,\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/components/pages/Profile.vue'),\n children: [\n {\n path: 'edit',\n name: 'User Edit Profile',\n component: () => import(/* webpackChunkName: \"profile-edit\" */ './views/components/pages/ProfileEdit.vue'),\n children: [\n {\n path: 'profile',\n name: 'Profile Edit Profile',\n component: () => import(/* webpackChunkName: \"profile-edit-profile\" */ './views/components/pages/ProfileEditProfile.vue')\n },\n {\n path: 'account', \n name: 'Profile Edit Account',\n component: () => import(/* webpackChunkName: \"profile-edit-account\" */ './views/components/pages/ProfileEditAccount.vue')\n }\n ]\n }\n ]\n },\n {\n path: 'dashboard',\n name: 'User Dashboard',\n meta: {\n title: {\n en: 'Dashboard',\n ru: 'Дашборд',\n },\n },\n beforeEnter: [\n (to) => {\n if (to.params._id !== auth.state.user._id) {\n return { name: 'User Profile', params: { _id: to.params._id } };\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"profile-dashboard\" */ './views/components/pages/UserDashboard.vue'),\n },\n {\n path: 'blogposts',\n name: 'User Posts',\n meta: {\n title: {\n en: 'Posts',\n ru: 'Посты',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ './views/components/pages/ProfileBlogposts.vue'),\n },\n {\n path: 'events',\n name: 'User Events',\n meta: {\n title: {\n en: 'Events',\n ru: 'События',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/events/components/pages/EventsBackoffice.vue'),\n },\n {\n path: 'organizations',\n name: 'User Organizations',\n meta: {\n title: {\n en: 'Groups',\n ru: 'Группы',\n },\n actions: [\n {\n component: IconPlus,\n props: {\n fill: 'rgb(var(--main))',\n },\n condition: () => auth.state.user && auth.state.user._id,\n action: router => router.push({ name: 'Create Organization' }),\n },\n ],\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),\n },\n {\n path: 'wallet',\n name: 'User Wallet',\n meta: {\n title: {\n en: 'Wallet',\n ru: 'Кошелек',\n },\n },\n component: () => import(/* webpackChunkName: \"profile\" */ '@martyrs/src/modules/wallet/views/components/pages/Wallet.vue'),\n },\n ],\n },\n ],\n }\n });\n \n return routes;\n}"],"names":["ProfileCard","route","auth.state","IconPlus"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Filters.vue.js","sources":["../../../../../../../../src/modules/core/views/components/sections/Filters.vue"],"sourcesContent":["<template>\n <div class=\"flex o-x-scroll scroll-hide t-nowrap gap-thin\">\n <!-- All Filters Button -->\n <button\n @click=\"showAllFilters = true\"\n class=\"pd-small radius-medium bg-light flex-v-center flex gap-micro cursor-pointer\"\n :class=\"{ 'bg-main': activeFiltersCount > 0 }\"\n >\n <IconFilter class=\"i-regular\" />\n <span class=\"h-1r\"></span>\n <span v-if=\"activeFiltersCount\">{{ activeFiltersCount }}</span>\n </button>\n\n <!-- Individual Filter Buttons -->\n <button\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n @click=\"openFilter(filter.value)\"\n class=\"pd-small radius-medium bg-light cursor-pointer flex-v-center flex gap-micro\"\n :class=\"{ 'selected bg-main': isFilterActive(filter) }\"\n >\n <IconCalendar v-if=\"filter.type === 'date'\" class=\"mn-r-micro i-regular\" />\n <span class=\"t-nowrap\">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>\n <span v-if=\"getFilterValue(filter) && filter.type !== 'date'\" class=\"mn-l-micro\">\n {{ formatFilterValue(filter) }}\n </span>\n </button>\n\n <!-- All Filters Popup -->\n <Popup\n :isPopupOpen=\"showAllFilters\"\n @close-popup=\"closeAllFilters\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"w-min-20r bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <FiltersGroup\n :filters=\"filters\"\n v-model:selected=\"tempSelected\"\n :immediate=\"false\"\n :showHeader=\"true\"\n :showApplyButton=\"true\"\n :showResetButton=\"true\"\n @update:selected=\"applyAllFilters\"\n />\n </Popup>\n\n <!-- Individual Filter Popups -->\n <Popup\n v-for=\"filter in filters\"\n :key=\"`popup-${filter.value}`\"\n :isPopupOpen=\"individualPopups[filter.value]\"\n @close-popup=\"cancelFilter(filter.value)\"\n :align=\"isPhone() ? 'bottom center' : 'center center'\"\n class=\"bg-white radius-medium mobile:radius-zero mobile:radius-tr-medium mobile:radius-tl-medium mobile:w-100 pd-medium\"\n >\n <h4 class=\"mn-b-medium\">{{ filter.title }}</h4>\n\n <!-- Checkbox Filter -->\n <FilterCheckbox\n v-if=\"filter.type === 'checkbox'\"\n v-model=\"tempSelected[filter.value]\"\n :options=\"filter.options\"\n />\n\n <!-- Range Filter -->\n <FilterRange\n v-else-if=\"filter.type === 'range'\"\n v-model=\"tempSelected[filter.value]\"\n :minPlaceholder=\"filter.minPlaceholder || 'Min'\"\n :maxPlaceholder=\"filter.maxPlaceholder || 'Max'\"\n :label=\"filter.label\"\n />\n\n <!-- Date Filter -->\n <div v-else-if=\"filter.type === 'date'\">\n <div class=\"mn-t-small\">\n <Calendar\n v-model:date=\"tempSelected[filter.value]\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n class=\"bg-light radius-small\"\n />\n </div>\n </div>\n\n <!-- Radio/Options Filter -->\n <FilterOptions\n v-else-if=\"filter.type === 'radio'\"\n v-model=\"tempSelected[filter.value]\"\n :options=\"filter.options\"\n />\n\n <div class=\"flex gap-thin mn-t-medium\">\n <button\n @click=\"cancelFilter(filter.value)\"\n class=\"bg-light button flex-child-full\"\n >\n Cancel\n </button>\n <button\n @click=\"applyFilter(filter.value)\"\n class=\"bg-main w-100 button flex-child-full\"\n >\n Apply\n </button>\n </div>\n </Popup>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed, reactive, watch } from 'vue'\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Calendar from '@martyrs/src/components/Calendar/Calendar.vue'\nimport FiltersGroup from './filters/FiltersGroup.vue'\nimport FilterCheckbox from './filters/FilterCheckbox.vue'\nimport FilterRange from './filters/FilterRange.vue'\nimport FilterDateRange from './filters/FilterDateRange.vue'\nimport FilterOptions from './filters/FilterOptions.vue'\nimport IconFilter from '@martyrs/src/modules/icons/navigation/IconFilter.vue'\nimport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue'\nimport IconCalendar from '@martyrs/src/modules/icons/entities/IconCalendar.vue'\n\nconst filters = defineModel('filters', {\n type: Array,\n required: true\n})\n\nconst selected = defineModel('selected', {\n type: Object,\n default: () => ({})\n})\n\nconst emit = defineEmits(['select'])\n\nconst { formatDate, returnCurrency } = useGlobalMixins()\n\n// State\nconst showAllFilters = ref(false)\nconst individualPopups = reactive({})\nconst tempSelected = reactive({})\nconst tempDateRange = ref(null)\n\n// Initialize popups and temp values\nwatch(filters, (newFilters) => {\n newFilters.forEach(filter => {\n individualPopups[filter.value] = false\n \n if (!tempSelected[filter.value]) {\n if (filter.type === 'checkbox') {\n tempSelected[filter.value] = [...(selected.value[filter.value] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filter.value] = { ...(selected.value[filter.value] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filter.value] = selected.value[filter.value] || null\n } else {\n tempSelected[filter.value] = selected.value[filter.value] || null\n }\n }\n })\n}, { immediate: true, deep: true })\n\n// Sync selected to tempSelected\nwatch(selected, (newSelected) => {\n Object.keys(newSelected).forEach(key => {\n const filter = filters.value.find(f => f.value === key)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[key] = [...(newSelected[key] || [])]\n } else if (filter.type === 'range') {\n tempSelected[key] = { ...(newSelected[key] || { min: '', max: '' }) }\n } else {\n tempSelected[key] = newSelected[key]\n }\n }\n })\n}, { deep: true })\n\n// Computed\nconst activeFiltersCount = computed(() => {\n return Object.entries(selected.value).filter(([key, value]) => {\n if (Array.isArray(value)) return value.length > 0\n if (typeof value === 'object' && value !== null) {\n return value.min || value.max\n }\n return value !== null && value !== undefined\n }).length\n})\n\n// Methods\nconst openFilter = (filterValue) => {\n individualPopups[filterValue] = true\n}\n\nconst isFilterActive = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n if (Array.isArray(value)) return value.length > 0\n if (filter.type === 'range') return value.min || value.max\n return true\n}\n\nconst getFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return false\n \n if (filter.type === 'range') {\n return value.min || value.max\n }\n \n if (filter.type === 'date') {\n return value && value.start && value.end\n }\n \n if (Array.isArray(value)) {\n return value.length > 0\n }\n \n return value\n}\n\nconst formatFilterValue = (filter) => {\n const value = selected.value[filter.value]\n if (!value) return ''\n \n if (Array.isArray(value)) {\n return `(${value.length})`\n }\n \n if (filter.type === 'range') {\n if (!value.min && !value.max) return ''\n return `${value.min || '0'}-${value.max || '∞'}`\n }\n \n if (filter.type === 'date') {\n if (!value || !value.start || !value.end) return ''\n return `${formatDate(value.start, { dayMonth: true, language: 'en' })} - ${formatDate(value.end, { dayMonth: true, language: 'en' })}`\n }\n \n if (filter.type === 'radio') {\n const option = filter.options.find(o => o.value === value)\n return option ? `(${option.label})` : ''\n }\n \n return ''\n}\n\nconst applyFilter = (filterValue) => {\n selected.value[filterValue] = tempSelected[filterValue]\n individualPopups[filterValue] = false\n emit('select', { filter: filterValue, value: tempSelected[filterValue] })\n}\n\nconst cancelFilter = (filterValue) => {\n const filter = filters.value.find(f => f.value === filterValue)\n if (filter) {\n if (filter.type === 'checkbox') {\n tempSelected[filterValue] = [...(selected.value[filterValue] || [])]\n } else if (filter.type === 'range') {\n tempSelected[filterValue] = { ...(selected.value[filterValue] || { min: '', max: '' }) }\n } else if (filter.type === 'date') {\n tempSelected[filterValue] = selected.value[filterValue] || null\n } else {\n tempSelected[filterValue] = selected.value[filterValue] || null\n }\n }\n individualPopups[filterValue] = false\n}\n\nconst applyAllFilters = (newValues) => {\n Object.entries(newValues).forEach(([key, value]) => {\n if (selected.value[key] !== value) {\n selected.value[key] = value\n emit('select', { filter: key, value })\n }\n })\n showAllFilters.value = false\n}\n\nconst closeAllFilters = () => {\n showAllFilters.value = false\n}\n</script>\n\n<style scoped>\n.filters-content {\n max-height: 60vh;\n overflow-y: auto;\n}\n</style>"],"names":["_useModel"],"mappings":"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"}
@@ -1,262 +0,0 @@
1
- // auth.meta.js
2
- import * as auth from '@martyrs/src/modules/auth/views/store/auth.js';
3
- import { useStore } from '@martyrs/src/modules/core/views/store/core.store.js';
4
- import { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';
5
- import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue';
6
- import { navigationItems } from '@martyrs/src/modules/auth/views/configs/navigation.user.config.js';
7
- import ProfileCard from '@martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue';
8
- import HelpCard from '@martyrs/src/modules/core/views/components/blocks/HelpCard.vue';
9
-
10
- const { isPhone, isTablet } = useGlobalMixins();
11
-
12
- export function getRoutes(options = {}) {
13
- const route = options.route || 'Home';
14
- const routes = [];
15
-
16
- // Auth routes
17
- routes.push({
18
- parentName: route,
19
- config: {
20
- basePath: 'auth',
21
- component: () => import(/* webpackChunkName: "auth-layout" */ './views/components/layouts/Auth.vue'),
22
- meta: {
23
- title: {
24
- en: 'Аутентификация',
25
- ru: 'Authentication',
26
- },
27
- },
28
- routes: [
29
- {
30
- path: 'signin',
31
- name: 'Sign In',
32
- beforeEnter: [
33
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),
34
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),
35
- ],
36
- meta: {
37
- title: {
38
- en: 'Sign In',
39
- ru: 'Вход',
40
- },
41
- },
42
- component: () => import(/* webpackChunkName: "signin" */ './views/components/pages/SignIn.vue'),
43
- },
44
- {
45
- path: 'reset-password',
46
- name: 'Reset Password',
47
- beforeEnter: [
48
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),
49
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),
50
- ],
51
- meta: {
52
- title: {
53
- en: 'Reset Password',
54
- ru: 'Сбросить Пароль',
55
- },
56
- },
57
- component: () => import(/* webpackChunkName: "reset-password" */ './views/components/pages/ResetPassword.vue'),
58
- },
59
- {
60
- path: 'signup',
61
- name: 'Sign Up',
62
- beforeEnter: [
63
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),
64
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),
65
- ],
66
- meta: {
67
- title: {
68
- en: 'Sign Up',
69
- ru: 'Регистрация',
70
- },
71
- },
72
- component: () => import(/* webpackChunkName: "signup" */ './views/components/pages/SignUp.vue'),
73
- },
74
- {
75
- path: 'enter-code',
76
- name: 'Enter Code',
77
- beforeEnter: [
78
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),
79
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.checkUser),
80
- ],
81
- meta: {
82
- title: {
83
- en: 'Enter Code',
84
- ru: 'Введите Код',
85
- },
86
- },
87
- component: () => import(/* webpackChunkName: "signup" */ './views/components/pages/EnterCode.vue'),
88
- },
89
- {
90
- path: 'enter-password',
91
- name: 'Enter Password',
92
- beforeEnter: [
93
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),
94
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.checkUser),
95
- ],
96
- meta: {
97
- title: {
98
- en: 'Enter Password',
99
- ru: 'Введите Пароль',
100
- },
101
- },
102
- component: () => import(/* webpackChunkName: "signup" */ './views/components/pages/EnterPassword.vue'),
103
- },
104
- {
105
- path: 'invite',
106
- name: 'Invite',
107
- beforeEnter: [
108
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.requiresNoAuth),
109
- () => import(/* webpackChunkName: "auth-validation" */ './views/middlewares/auth.validation.js').then(m => m.resetUser),
110
- ],
111
- meta: {
112
- title: {
113
- en: 'Invite',
114
- ru: 'Приглашение',
115
- },
116
- },
117
- component: () => import(/* webpackChunkName: "signup" */ './views/components/pages/Invite.vue'),
118
- },
119
- ],
120
- }
121
- });
122
-
123
- // Users routes
124
- routes.push({
125
- parentName: route,
126
- config: {
127
- basePath: 'users',
128
- meta: {
129
- title: {
130
- en: 'Users',
131
- ru: 'Пользователи',
132
- },
133
- },
134
- routes: [
135
- {
136
- path: ':_id',
137
- name: 'User Profile Root',
138
- meta: {
139
- title: {
140
- en: 'Profile',
141
- ru: 'Профиль',
142
- },
143
- sidebar_hover: false,
144
- sidebar_navigation_items: navigationItems,
145
- sidebar_header_component: ProfileCard,
146
- sidebar_footer_component: HelpCard,
147
- sidebarOpenOnEnter: true,
148
- sidebarCloseOnLeave: true
149
- },
150
- children: [
151
- {
152
- path: '', // Пустой путь для основного профиля
153
- name: 'User Profile',
154
- meta: {
155
- title: {
156
- en: 'Profile',
157
- ru: 'Профиль',
158
- },
159
- title_hide: true,
160
- hideNavigationBar: route => route.params._id === auth.state.user._id,
161
- },
162
- component: () => import(/* webpackChunkName: "profile" */ './views/components/pages/Profile.vue'),
163
- children: [
164
- {
165
- path: 'edit',
166
- name: 'User Edit Profile',
167
- component: () => import(/* webpackChunkName: "profile-edit" */ './views/components/pages/ProfileEdit.vue'),
168
- children: [
169
- {
170
- path: 'profile',
171
- name: 'Profile Edit Profile',
172
- component: () => import(/* webpackChunkName: "profile-edit-profile" */ './views/components/pages/ProfileEditProfile.vue')
173
- },
174
- {
175
- path: 'account',
176
- name: 'Profile Edit Account',
177
- component: () => import(/* webpackChunkName: "profile-edit-account" */ './views/components/pages/ProfileEditAccount.vue')
178
- }
179
- ]
180
- }
181
- ]
182
- },
183
- {
184
- path: 'dashboard',
185
- name: 'User Dashboard',
186
- meta: {
187
- title: {
188
- en: 'Dashboard',
189
- ru: 'Дашборд',
190
- },
191
- },
192
- beforeEnter: [
193
- (to) => {
194
- if (to.params._id !== auth.state.user._id) {
195
- return { name: 'User Profile', params: { _id: to.params._id } };
196
- }
197
- }
198
- ],
199
- component: () => import(/* webpackChunkName: "profile-dashboard" */ './views/components/pages/UserDashboard.vue'),
200
- },
201
- {
202
- path: 'blogposts',
203
- name: 'User Posts',
204
- meta: {
205
- title: {
206
- en: 'Posts',
207
- ru: 'Посты',
208
- },
209
- },
210
- component: () => import(/* webpackChunkName: "profile" */ './views/components/pages/ProfileBlogposts.vue'),
211
- },
212
- {
213
- path: 'events',
214
- name: 'User Events',
215
- meta: {
216
- title: {
217
- en: 'Events',
218
- ru: 'События',
219
- },
220
- },
221
- component: () => import(/* webpackChunkName: "profile" */ '@martyrs/src/modules/events/components/pages/EventsBackoffice.vue'),
222
- },
223
- {
224
- path: 'organizations',
225
- name: 'User Organizations',
226
- meta: {
227
- title: {
228
- en: 'Groups',
229
- ru: 'Группы',
230
- },
231
- actions: [
232
- {
233
- component: IconPlus,
234
- props: {
235
- fill: 'rgb(var(--main))',
236
- },
237
- condition: () => auth.state.user && auth.state.user._id,
238
- action: router => router.push({ name: 'Create Organization' }),
239
- },
240
- ],
241
- },
242
- component: () => import(/* webpackChunkName: "profile" */ '@martyrs/src/modules/organizations/components/pages/Organizations.vue'),
243
- },
244
- {
245
- path: 'wallet',
246
- name: 'User Wallet',
247
- meta: {
248
- title: {
249
- en: 'Wallet',
250
- ru: 'Кошелек',
251
- },
252
- },
253
- component: () => import(/* webpackChunkName: "profile" */ '@martyrs/src/modules/wallet/views/components/pages/Wallet.vue'),
254
- },
255
- ],
256
- },
257
- ],
258
- }
259
- });
260
-
261
- return routes;
262
- }