@ozdao/martyrs 0.2.582 → 0.2.584

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 (226) hide show
  1. package/dist/{main-vq1_XpmQ.js → main-fmp55tJF.js} +11 -11
  2. package/dist/martyrs/dist/{main-vq1_XpmQ.js → main-fmp55tJF.js} +2 -2
  3. package/dist/martyrs/dist/main-fmp55tJF.js.map +1 -0
  4. package/dist/martyrs/dist/{web-BNJDRie_.js → web-BDuQSQKS.js} +2 -2
  5. package/dist/martyrs/dist/{web-BNJDRie_.js.map → web-BDuQSQKS.js.map} +1 -1
  6. package/dist/martyrs/src/components/Button/{Button.vue.js → Button.vue2.js} +2 -2
  7. package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -0
  8. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +5 -5
  9. package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
  10. package/dist/martyrs/src/components/EditImages/{EditImages.vue.js → EditImages.vue2.js} +2 -2
  11. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
  12. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  13. package/dist/martyrs/src/components/Field/Field.vue.js +2 -2
  14. package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -1
  15. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
  16. package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js.map +1 -1
  17. package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js +2 -2
  18. package/dist/martyrs/src/components/FieldDate/FieldDate.vue.js.map +1 -1
  19. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  20. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  21. package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
  22. package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.js.map +1 -0
  23. package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
  24. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
  25. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +7 -13
  26. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  27. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
  28. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
  29. package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
  30. package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
  31. package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
  32. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +182 -89
  33. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  34. package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
  35. package/dist/martyrs/src/modules/auth/views/configs/navigation.user.config.js +9 -2
  36. package/dist/martyrs/src/modules/auth/views/configs/navigation.user.config.js.map +1 -1
  37. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  38. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  39. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +1 -1
  40. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  41. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +2 -2
  42. package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js.map +1 -1
  43. package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
  44. package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +1 -1
  45. package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +1 -1
  46. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +3 -3
  47. package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js.map +1 -1
  48. package/dist/martyrs/src/modules/core/views/components/partials/Navigation.vue.js +1 -1
  49. package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
  50. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js +2 -2
  51. package/dist/martyrs/src/modules/core/views/components/partials/Sidebar.vue.js.map +1 -1
  52. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +5 -5
  53. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
  54. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js +1 -1
  55. package/dist/martyrs/src/modules/core/views/components/sections/SectionPageTitle.vue.js.map +1 -1
  56. package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
  57. package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  58. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
  59. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +3 -3
  60. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  61. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  62. package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +1 -1
  63. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +4 -4
  64. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js.map +1 -1
  65. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
  66. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
  67. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
  68. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
  69. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +4 -4
  70. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +2 -2
  72. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  73. package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
  74. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  75. package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
  76. package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
  77. package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
  78. package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
  79. package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
  80. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
  81. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
  82. package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
  83. package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
  84. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
  85. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  86. package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
  87. package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
  88. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +6 -6
  89. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
  90. package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
  91. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  92. package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
  93. package/dist/martyrs/src/modules/music/components/player/FullscreenPlayer.vue.js +1 -1
  94. package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
  95. package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
  96. package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
  97. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +3 -3
  98. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +1 -1
  100. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +90 -175
  101. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  102. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
  103. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
  104. package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +1 -1
  105. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +8 -8
  106. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
  108. package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
  109. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +41 -28
  110. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
  112. package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
  113. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  114. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  115. package/dist/martyrs/src/modules/orders/orders.client.js +14 -14
  116. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  117. package/dist/martyrs/src/modules/orders/router/orders.router.js +23 -0
  118. package/dist/martyrs/src/modules/orders/router/orders.router.js.map +1 -1
  119. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +1 -1
  120. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  121. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js.map +1 -1
  122. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  123. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
  124. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
  125. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
  126. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +1 -1
  127. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +89 -40
  128. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
  130. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
  131. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
  132. package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
  133. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +3 -3
  134. package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js.map +1 -1
  135. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +2 -2
  136. package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
  138. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
  139. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  140. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +3 -3
  141. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +3 -3
  142. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
  144. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
  145. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js.map +1 -1
  146. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +3 -3
  147. package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  148. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +2 -2
  149. package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js.map +1 -1
  150. package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
  151. package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  152. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  153. package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
  154. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
  155. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  156. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  157. package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
  158. package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
  159. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
  160. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +1 -1
  161. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  162. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
  163. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
  164. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js.map +1 -1
  165. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
  166. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js.map +1 -1
  167. package/dist/martyrs.css +1 -1
  168. package/dist/martyrs.es.js +1 -1
  169. package/dist/style.css +105 -110
  170. package/dist/{web-BNJDRie_.js → web-BDuQSQKS.js} +1 -1
  171. package/package.json +1 -1
  172. package/src/components/Calendar/Calendar.vue +4 -4
  173. package/src/components/Completion/Completion.vue +3 -3
  174. package/src/components/Field/Field.vue +1 -1
  175. package/src/components/FieldBig/FieldBig.vue +1 -1
  176. package/src/components/FieldDate/FieldDate.vue +1 -1
  177. package/src/modules/TASKS.MD +26 -1
  178. package/src/modules/auth/views/components/pages/Profile.vue +9 -15
  179. package/src/modules/auth/views/components/pages/UserDashboard.vue +214 -125
  180. package/src/modules/auth/views/configs/navigation.user.config.js +8 -2
  181. package/src/modules/community/components/layouts/Community.vue +2 -2
  182. package/src/modules/core/views/components/blocks/CardHeader.vue +1 -1
  183. package/src/modules/core/views/components/partials/Header.vue +1 -1
  184. package/src/modules/core/views/components/partials/Sidebar.vue +1 -1
  185. package/src/modules/core/views/components/sections/Filters.vue +2 -2
  186. package/src/modules/core/views/components/sections/SectionPageTitle.vue +1 -1
  187. package/src/modules/events/components/pages/EditEventTickets.vue +2 -2
  188. package/src/modules/gallery/components/sections/BackofficeGallery.vue +1 -1
  189. package/src/modules/inventory/components/pages/Inventory.vue +4 -4
  190. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  191. package/src/modules/music/components/pages/Playlist.vue +5 -5
  192. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  193. package/src/modules/orders/components/blocks/CardOrderUser.vue +88 -190
  194. package/src/modules/orders/components/pages/OrderBackoffice.vue +5 -5
  195. package/src/modules/orders/components/pages/Orders.vue +56 -50
  196. package/src/modules/orders/router/orders.router.js +33 -0
  197. package/src/modules/organizations/components/blocks/CardOrganization.vue +1 -1
  198. package/src/modules/organizations/components/pages/OrganizationEdit.vue +42 -11
  199. package/src/modules/pages/views/components/pages/PageEdit.vue +2 -2
  200. package/src/modules/pages/views/components/partials/SidebarPages.vue +1 -1
  201. package/src/modules/products/components/pages/Products.vue +1 -1
  202. package/src/modules/products/components/sections/EditDiscounts.vue +1 -1
  203. package/src/modules/products/components/sections/ProductConfigurator.vue +1 -1
  204. package/src/modules/spots/components/pages/Spots.vue +1 -1
  205. package/src/modules/wallet/views/components/blocks/CryptoDeposit.vue +1 -1
  206. package/src/modules/wallet/views/components/pages/Wallet.vue +1 -1
  207. package/dist/martyrs/dist/main-vq1_XpmQ.js.map +0 -1
  208. package/dist/martyrs/src/components/Button/Button.vue.js.map +0 -1
  209. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
  210. package/dist/martyrs/src/components/Select/Select.vue2.js.map +0 -1
  211. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js +0 -625
  212. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue2.js.map +0 -1
  213. package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
  214. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
  215. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCanceled.vue.js +0 -32
  216. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCanceled.vue.js.map +0 -1
  217. package/dist/martyrs/src/modules/orders/components/icons/IconStatusConfirmed.vue.js +0 -32
  218. package/dist/martyrs/src/modules/orders/components/icons/IconStatusConfirmed.vue.js.map +0 -1
  219. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCreated.vue.js +0 -32
  220. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCreated.vue.js.map +0 -1
  221. package/dist/martyrs/src/modules/orders/components/icons/IconStatusDelay.vue.js +0 -32
  222. package/dist/martyrs/src/modules/orders/components/icons/IconStatusDelay.vue.js.map +0 -1
  223. package/dist/martyrs/src/modules/orders/components/icons/IconStatusFinished.vue.js +0 -32
  224. package/dist/martyrs/src/modules/orders/components/icons/IconStatusFinished.vue.js.map +0 -1
  225. package/dist/martyrs/src/modules/orders/components/icons/IconStatusInUse.vue.js +0 -32
  226. package/dist/martyrs/src/modules/orders/components/icons/IconStatusInUse.vue.js.map +0 -1
@@ -1,160 +1,249 @@
1
1
  <template>
2
- <div class="pd-medium bg-white">
3
- <h2 class="mn-b-small">Overview</h2>
4
- <div class="mn-b-medium cols-3 mobile:cols-1 gap-thin">
5
- <Block class="pos-relative">
6
- <span class="t-green fw-semi pos-absolute pos-t-small pos-r-small">+12.5%</span>
7
- <div class="mn-b-medium radius-small w-max bg-main"><IconGroups class="i-medium mn-small"/></div>
8
- <p class="h3 mn-b-thin">{{ stats.organizations || 0 }}</p>
9
- <p>My Groups</p>
10
- </Block>
11
-
12
- <Block class="pos-relative">
13
- <span class="t-green fw-semi pos-absolute pos-t-small pos-r-small">+14.8%</span>
14
- <div class="mn-b-medium radius-small w-max bg-main"><IconOrders class="i-medium mn-small"/></div>
15
- <p class="h3 mn-b-thin">{{ stats.orders || 0 }}</p>
16
- <p>My Orders</p>
17
- </Block>
18
-
19
- <Block class="pos-relative">
20
- <span class="t-green fw-semi pos-absolute pos-t-small pos-r-small">+25.1%</span>
21
- <div class="mn-b-medium radius-small w-max bg-main"><IconEvents class="i-medium mn-small"/></div>
22
- <p class="h3 mn-b-thin">{{ stats.events || 0 }}</p>
23
- <p>My Events</p>
24
- </Block>
2
+ <div class="pd-medium">
3
+ <h2 class="mn-b-medium">Overview</h2>
4
+
5
+ <!-- Stats Cards -->
6
+ <div class="mn-b-medium cols-3 mobile:cols-1 gap-small">
7
+ <router-link
8
+ :to="`/users/${auth.state.user._id}/organizations`"
9
+ class="d-block bg-light pd-medium radius-medium hover-scale-1 transition-default"
10
+ >
11
+ <div class="flex flex-v-center gap-small mn-b-small">
12
+ <div class="radius-small bg-main flex flex-center">
13
+ <IconGroups class="i-medium mn-small" :fill="'rgb(var(--white))'"/>
14
+ </div>
15
+ <span class="t-grey t-small">My Groups</span>
16
+ </div>
17
+ <p class="h2 fw-semi">{{ stats.organizations || 0 }}</p>
18
+ </router-link>
19
+
20
+ <router-link
21
+ :to="`/users/${auth.state.user._id}/orders`"
22
+ class="d-block bg-light pd-medium radius-medium hover-scale-1 transition-default"
23
+ >
24
+ <div class="flex flex-v-center gap-small mn-b-small">
25
+ <div class="radius-small bg-main flex flex-center">
26
+ <IconOrders class="i-medium mn-small" :fill="'rgb(var(--white))'"/>
27
+ </div>
28
+ <span class="t-grey t-small">My Orders</span>
29
+ </div>
30
+ <p class="h2 fw-semi">{{ stats.orders || 0 }}</p>
31
+ </router-link>
32
+
33
+ <router-link
34
+ :to="`/users/${auth.state.user._id}/events`"
35
+ class="d-block bg-light pd-medium radius-medium hover-scale-1 transition-default"
36
+ >
37
+ <div class="flex flex-v-center gap-small mn-b-small">
38
+ <div class="radius-small bg-main flex flex-center">
39
+ <IconEvents class="i-medium mn-small" :fill="'rgb(var(--white))'"/>
40
+ </div>
41
+ <span class="t-grey t-small">My Events</span>
42
+ </div>
43
+ <p class="h2 fw-semi">{{ stats.events || 0 }}</p>
44
+ </router-link>
25
45
  </div>
26
46
 
27
- <div class="cols-2 mobile:cols-1 gap-thin">
28
- <Block
29
- title="Recent Orders"
30
- class="pos-relative"
31
- >
47
+ <!-- Content Grid -->
48
+ <div class="cols-2 mobile:cols-1 gap-small">
49
+ <!-- Recent Orders -->
50
+ <Block title="Recent Orders">
32
51
  <Feed
33
- :showLoadMore="false"
34
- :LoadMore="false"
35
- :states="{
36
- empty: {
37
- title: 'No Orders',
38
- description: 'You have no orders yet.'
39
- }
40
- }"
41
- :store="{
42
- read: (options) => orders.actions.read(options),
43
- state: orders.state
44
- }"
45
- :options="{
46
- customer: auth.state.user._id,
47
- limit: 5,
48
- page: 1
49
- }"
50
- v-slot="{
51
- items
52
- }"
53
- class="cols-1 gap-thin"
54
- >
52
+ :showLoadMore="false"
53
+ :states="{
54
+ empty: {
55
+ title: 'No Orders',
56
+ description: 'You have no orders yet.'
57
+ }
58
+ }"
59
+ :store="{
60
+ read: (options) => orders.actions.read(options),
61
+ state: orders.state
62
+ }"
63
+ :options="{
64
+ customer: auth.state.user._id,
65
+ limit: 5,
66
+ page: 1
67
+ }"
68
+ v-slot="{ items }"
69
+ >
55
70
  <Table
56
- class="radius-semi bg-white"
71
+ class="radius-small bg-white"
57
72
  :items="items"
58
- :columns="[{
59
- key: '_id',
60
- label: 'ID',
61
- formatter: (value) => `#${value.slice(0, 4)}...${value.slice(-4)}`
62
- },
63
- {
64
- key: 'positions',
65
- label: 'Items',
66
- formatter: (value) => value?.length || 0
67
- },
68
- {
69
- key: 'status',
70
- label: 'Status',
71
- component: StatusBadge
72
- },
73
- {
74
- key: 'createdAt',
75
- label: 'Date',
76
- formatter: (value) => new Date(value).toLocaleDateString()
77
- }]"
78
- />
79
- </Feed>
80
-
73
+ :columns="columns.orders"
74
+ >
75
+ <template #cell-_id="{ value }">
76
+ <span class="t-dark fw-medium">#{{ formatId(value) }}</span>
77
+ </template>
78
+ <template #cell-positions="{ value }">
79
+ <span class="t-dark">{{ value?.length || 0 }} items</span>
80
+ </template>
81
+ <template #cell-status="{ value }">
82
+ <span
83
+ class="pd-thin pd-l-small pd-r-small radius-small t-small fw-medium"
84
+ :class="getStatusClass(value)"
85
+ >
86
+ {{ value }}
87
+ </span>
88
+ </template>
89
+ <template #cell-createdAt="{ value }">
90
+ <span class="t-grey t-small">{{ formatDate(value) }}</span>
91
+ </template>
92
+ </Table>
93
+ </Feed>
81
94
  </Block>
82
95
 
83
- <Block
84
- title="Upcoming Events"
85
- class="pos-relative"
86
- >
96
+ <!-- Upcoming Events -->
97
+ <Block title="Upcoming Events">
87
98
  <Feed
88
- :showLoadMore="false"
89
- :LoadMore="false"
90
- :states="{
91
- empty: {
92
- title: 'No Events',
93
- description: 'You have no upcoming events.'
94
- }
95
- }"
96
- :store="{
97
- read: (options) => events.read(options),
98
- }"
99
- :options="{
100
- creator: auth.state.user._id,
101
- sortParam: 'date.start',
102
- sortOrder: 'asc',
103
- limit: 5,
104
- page: 1
105
- }"
106
- v-slot="{
107
- items
108
- }"
109
- class="cols-1 gap-thin"
110
- >
111
- <CardEvent
112
- v-for="event in items"
113
- :key="event._id"
114
- :event="event"
115
- :user="auth.state.user._id"
116
- :type="'compact'"
117
- class="bg-light radius-medium"
118
- />
119
- </Feed>
99
+ :showLoadMore="false"
100
+ :states="{
101
+ empty: {
102
+ title: 'No Events',
103
+ description: 'You have no upcoming events.'
104
+ }
105
+ }"
106
+ :store="{
107
+ read: (options) => events.read(options)
108
+ }"
109
+ :options="{
110
+ creator: auth.state.user._id,
111
+ sortParam: 'date.start',
112
+ sortOrder: 'asc',
113
+ limit: 5,
114
+ page: 1
115
+ }"
116
+ v-slot="{ items }"
117
+ class="flex flex-column gap-thin"
118
+ >
119
+ <router-link
120
+ v-for="event in items"
121
+ :key="event._id"
122
+ :to="`/events/${event._id}`"
123
+ class="d-block bg-white pd-small radius-small hover-scale-1 transition-default"
124
+ >
125
+ <div class="flex flex-v-center gap-small">
126
+ <div
127
+ class="flex-none w-3r h-3r radius-small bg-main-transp flex flex-center o-hidden"
128
+ >
129
+ <img
130
+ v-if="event.cover"
131
+ :src="(FILE_SERVER_URL || '') + event.cover"
132
+ class="w-100 h-100 object-fit-cover"
133
+ alt=""
134
+ />
135
+ <IconEvents v-else class="i-regular" :fill="'rgb(var(--main))'"/>
136
+ </div>
137
+ <div class="flex-child o-hidden">
138
+ <p class="fw-medium t-truncate mn-b-nano">{{ event.name }}</p>
139
+ <p class="t-grey t-small">{{ formatEventDate(event.date) }}</p>
140
+ </div>
141
+ <div class="flex-none">
142
+ <span
143
+ class="pd-thin pd-l-small pd-r-small radius-small t-small fw-medium"
144
+ :class="getEventStatusClass(event.date)"
145
+ >
146
+ {{ getEventStatus(event.date) }}
147
+ </span>
148
+ </div>
149
+ </div>
150
+ </router-link>
151
+ </Feed>
120
152
  </Block>
121
153
  </div>
122
-
123
154
  </div>
124
-
125
-
126
155
  </template>
127
156
 
128
157
  <script setup>
129
- import { ref, onMounted } from 'vue';
130
- import { useRoute, useRouter } from 'vue-router'
158
+ import { ref, onMounted, inject } from 'vue'
159
+ import { useRouter } from 'vue-router'
131
160
 
132
161
  import Block from '@martyrs/src/components/Block/Block.vue'
133
162
  import Feed from '@martyrs/src/components/Feed/Feed.vue'
134
163
  import Table from '@martyrs/src/components/Table/Table.vue'
135
- import StatusBadge from '@martyrs/src/components/Table/StatusBadge.vue'
136
-
137
- import CardEvent from '@martyrs/src/modules/events/components/blocks/CardEvent.vue';
138
164
 
139
165
  import IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue'
140
166
  import IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue'
141
167
  import IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue'
142
168
 
143
- import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'
144
- import * as orders from '@martyrs/src/modules/orders/store/orders.js'
169
+ import * as auth from '@martyrs/src/modules/auth/views/store/auth.js'
170
+ import * as orders from '@martyrs/src/modules/orders/store/orders.js'
145
171
  import * as events from '@martyrs/src/modules/events/store/events.js'
146
172
 
147
- const route = useRoute()
173
+ const FILE_SERVER_URL = inject('FILE_SERVER_URL', '')
148
174
  const router = useRouter()
149
175
 
150
176
  const stats = ref({
151
- organizations: 0,
152
- orders: 0,
153
- events: 0
177
+ organizations: 0,
178
+ orders: 0,
179
+ events: 0
154
180
  })
155
181
 
182
+ const columns = {
183
+ orders: [
184
+ { key: '_id', label: 'Order' },
185
+ { key: 'positions', label: 'Items' },
186
+ { key: 'status', label: 'Status' },
187
+ { key: 'createdAt', label: 'Date' }
188
+ ]
189
+ }
190
+
191
+ // Formatters
192
+ const formatId = (id) => id ? `${id.slice(0, 4)}...${id.slice(-4)}` : ''
193
+
194
+ const formatDate = (date) => {
195
+ if (!date) return ''
196
+ return new Date(date).toLocaleDateString()
197
+ }
198
+
199
+ const formatEventDate = (date) => {
200
+ if (!date?.start) return ''
201
+ const start = new Date(date.start)
202
+ return start.toLocaleDateString(undefined, { day: '2-digit', month: 'short', year: 'numeric' })
203
+ }
204
+
205
+ const getStatusClass = (status) => {
206
+ const classes = {
207
+ pending: 'bg-second-transp t-second',
208
+ processing: 'bg-main-transp t-main',
209
+ completed: 'bg-green-transp t-green',
210
+ cancelled: 'bg-red-transp t-red'
211
+ }
212
+ return classes[status] || 'bg-light t-grey'
213
+ }
214
+
215
+ const getEventStatus = (date) => {
216
+ if (!date?.start) return 'No date'
217
+ const now = new Date()
218
+ const start = new Date(date.start)
219
+ const end = date.end ? new Date(date.end) : start
220
+
221
+ if (now > end) return 'Finished'
222
+ if (now >= start && now <= end) return 'Live'
223
+
224
+ const diffDays = Math.ceil((start - now) / (1000 * 60 * 60 * 24))
225
+ if (diffDays <= 1) return 'Tomorrow'
226
+ if (diffDays <= 7) return `In ${diffDays} days`
227
+ return 'Upcoming'
228
+ }
229
+
230
+ const getEventStatusClass = (date) => {
231
+ const status = getEventStatus(date)
232
+ if (status === 'Finished') return 'bg-light t-grey'
233
+ if (status === 'Live') return 'bg-green-transp t-green'
234
+ if (status === 'Tomorrow') return 'bg-second-transp t-second'
235
+ return 'bg-main-transp t-main'
236
+ }
237
+
156
238
  onMounted(async () => {
157
- // Load user stats if needed
239
+ // Load stats
240
+ try {
241
+ const [orgsData, ordersData, eventsData] = await Promise.all([
242
+ // Load counts if needed
243
+ ])
244
+ } catch (e) {
245
+ console.error('Failed to load dashboard stats:', e)
246
+ }
158
247
  })
159
248
  </script>
160
249
 
@@ -3,6 +3,7 @@ import IconHome from '@martyrs/src/modules/icons/entities/IconHome.vue';
3
3
  import IconEvents from '@martyrs/src/modules/icons/entities/IconEvents.vue';
4
4
  import IconGroups from '@martyrs/src/modules/icons/entities/IconGroups.vue';
5
5
  import IconOrders from '@martyrs/src/modules/icons/entities/IconOrders.vue';
6
+ import IconCommunity from '@martyrs/src/modules/icons/entities/IconCommunity.vue';
6
7
  import IconBell from '@martyrs/src/modules/icons/entities/IconBell.vue';
7
8
  import IconSettings from '@martyrs/src/modules/icons/entities/IconSettings.vue';
8
9
  import IconProfile from '@martyrs/src/modules/icons/entities/IconProfile.vue';
@@ -60,6 +61,12 @@ export const navigationItems = [
60
61
  route: (auth, route) => `/users/${route.params._id}/organizations`,
61
62
  visible: () => isModuleInstalled('organizations')
62
63
  },
64
+ {
65
+ title: 'Posts',
66
+ iconComponent: IconCommunity,
67
+ route: (auth, route) => `/users/${route.params._id}/blogposts`,
68
+ visible: () => isModuleInstalled('community')
69
+ },
63
70
  ]
64
71
  },
65
72
  {
@@ -77,8 +84,7 @@ export const navigationItems = [
77
84
  {
78
85
  title: 'Orders',
79
86
  iconComponent: IconOrders,
80
- route: (auth, route) => `/users/${route.params._id}/orders`,
81
-
87
+ route: (auth, route) => `/users/${route.params._id}/orders`
82
88
  },
83
89
  ]
84
90
  },
@@ -4,7 +4,7 @@
4
4
 
5
5
  <div style="flex: 1 1 auto" class="w-100 h-100 pos-relative">
6
6
  <header v-if="!route.params.url && route.name !== 'Create BlogPost'" class="bg-light pd-medium radius-medium mobile:radius-zero scroll-hide o-y-visible t-black pos-relative mn-b-thin flex-v-center t-left flex-nowrap flex">
7
- <h2 class="pos-relative t-nowrap flex-v-center flex-nowrap flex">
7
+ <h2 class="pos-relative ws-nowrap flex-v-center flex-nowrap flex">
8
8
  <span class="mn-r-thin">Posts for </span>
9
9
 
10
10
  <Select
@@ -29,7 +29,7 @@
29
29
  </header>
30
30
 
31
31
  <div v-if="!route.params.url && route.name !=='Create BlogPost'" class="w-100 pos-relative">
32
- <ul class="align-self-start pos-sticky pos-t-0 w-100 bg-light radius-medium mobile:radius-zero mn-b-thin pd-medium p-regular gap-thin flex-row flex-nowrap flex z-index-2 o-scroll t-nowrap scroll-hide">
32
+ <ul class="align-self-start pos-sticky pos-t-0 w-100 bg-light radius-medium mobile:radius-zero mn-b-thin pd-medium p-regular gap-thin flex-row flex-nowrap flex z-index-2 o-scroll ws-nowrap scroll-hide">
33
33
  <li
34
34
  :class="{'t-black bg-white': route.params.category === 'featured' }"
35
35
  @click="() => { blog.state.sort.param = 'createdAt'; router.push({name: 'Blog', params: { category: 'featured' } })}"
@@ -8,7 +8,7 @@
8
8
  >
9
9
 
10
10
  <div
11
- class="w-100 gap-thin p-regular t-nowrap flex-nowrap flex-v-center flex"
11
+ class="w-100 gap-thin p-regular ws-nowrap flex-nowrap flex-v-center flex"
12
12
  >
13
13
  <img loading="lazy"
14
14
  v-if="owner.target?.profile?.photo?.length > 0 && type !== 'short'"
@@ -122,7 +122,7 @@
122
122
 
123
123
  br-2px
124
124
  ease-linear
125
- t-nowrap
125
+ ws-nowrap
126
126
 
127
127
  "
128
128
  :class="{
@@ -139,7 +139,7 @@ router.beforeEach((to, from) => {
139
139
  ]"
140
140
  >
141
141
  <span
142
- class="w-100 t-nowrap ease-quint-out t-left fw-medium mn-r-thin"
142
+ class="w-100 ws-nowrap ease-quint-out t-left fw-medium mn-r-thin"
143
143
  :class="{ 'hidden': !stateSidebar, 'visible': stateSidebar }"
144
144
  >
145
145
  Dark Mode
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="flex o-x-scroll scroll-hide t-nowrap gap-thin">
2
+ <div class="flex o-x-scroll scroll-hide ws-nowrap gap-thin">
3
3
  <!-- All Filters Button -->
4
4
  <button
5
5
  @click="showAllFilters = true"
@@ -20,7 +20,7 @@
20
20
  :class="{ 'selected bg-main': isFilterActive(filter) }"
21
21
  >
22
22
  <IconCalendar v-if="filter.type === 'date'" class="mn-r-micro i-regular" />
23
- <span class="t-nowrap">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>
23
+ <span class="ws-nowrap">{{ filter.type === 'date' && getFilterValue(filter) ? formatFilterValue(filter) : filter.title }}</span>
24
24
  <span v-if="getFilterValue(filter) && filter.type !== 'date'" class="mn-l-micro">
25
25
  {{ formatFilterValue(filter) }}
26
26
  </span>
@@ -31,7 +31,7 @@
31
31
  :selected="tabs_current"
32
32
  @update:selected="updateTabsCurrent"
33
33
  :tabs="tabs"
34
- class="mn-t-small pd-thin bg-light radius-small w-max t-nowrap o-scroll p-regular"
34
+ class="mn-t-small pd-thin bg-light radius-small w-max ws-nowrap o-scroll p-regular"
35
35
  />
36
36
  </div>
37
37
  </template>
@@ -69,7 +69,7 @@
69
69
  v-else
70
70
  class="bg-light radius-micro w-2r h-thin"
71
71
  ></div>
72
- <p class="p-nano fw-medium t-nowrap">{{ slot.time }}</p>
72
+ <p class="p-nano fw-medium ws-nowrap">{{ slot.time }}</p>
73
73
  </div>
74
74
  </div>
75
75
  </div>
@@ -195,7 +195,7 @@
195
195
  <section class="bg-black flex-column flex gap-thin pd-thin radius-small">
196
196
  <button
197
197
  @click="sendTicketEmail(ticket._id)"
198
- class="w-100 t-nowrap bg-black br-1px br-white-transp-20 t-white button-small button"
198
+ class="w-100 ws-nowrap bg-black br-1px br-white-transp-20 t-white button-small button"
199
199
  >
200
200
  Send Email
201
201
  </button>
@@ -128,7 +128,7 @@
128
128
  <Button
129
129
  :submit="() => createPhoto('draft')"
130
130
  :callback="closePhotoPopup"
131
- class="t-nowrap bg-second w-100"
131
+ class="ws-nowrap bg-second w-100"
132
132
  >
133
133
  To drafts
134
134
  </Button>
@@ -51,7 +51,7 @@
51
51
  class="w-3r h-3r radius-small bg-light object-fit-cover"
52
52
  />
53
53
  <PlaceholderImage v-else class="w-3r h-3r radius-small" />
54
- <p class="truncate t-nowrap">{{ row.name || 'Unknown Product' }}</p>
54
+ <p class="truncate ws-nowrap">{{ row.name || 'Unknown Product' }}</p>
55
55
  </div>
56
56
  </template>
57
57
 
@@ -127,13 +127,13 @@
127
127
  align="right"
128
128
  >
129
129
  <div class="bg-white radius-small">
130
- <button @click="openStockAudit(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
130
+ <button @click="openStockAudit(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
131
131
  Audit Stock
132
132
  </button>
133
- <button @click="openStockHistory(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
133
+ <button @click="openStockHistory(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
134
134
  Stock History
135
135
  </button>
136
- <button @click="openReorderSettings(row)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
136
+ <button @click="openReorderSettings(row)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
137
137
  Set Alerts
138
138
  </button>
139
139
  </div>
@@ -175,7 +175,7 @@
175
175
  align="right"
176
176
  >
177
177
  <div class="bg-white radius-small">
178
- <button @click="leftovers.state.current.positions.splice(index, 1)" class="cursor-pointer t-left t-nowrap w-100 pd-small">
178
+ <button @click="leftovers.state.current.positions.splice(index, 1)" class="cursor-pointer t-left ws-nowrap w-100 pd-small">
179
179
  Delete
180
180
  </button>
181
181
  </div>
@@ -374,8 +374,8 @@ const actionButtons = computed(() => {
374
374
  {
375
375
  type: 'dropdown',
376
376
  items: [
377
- { text: 'Add to Queue', action: addToQueue, class: 't-nowrap' },
378
- { text: 'Copy Link', action: copyLink, class: 't-nowrap' }
377
+ { text: 'Add to Queue', action: addToQueue, class: 'ws-nowrap' },
378
+ { text: 'Copy Link', action: copyLink, class: 'ws-nowrap' }
379
379
  ]
380
380
  }
381
381
  ];
@@ -383,19 +383,19 @@ const actionButtons = computed(() => {
383
383
  if (isOwner.value || isCollaborator.value) {
384
384
  const items = buttons[3].items;
385
385
  items.push({ separator: true });
386
- items.push({ text: 'Edit Playlist', action: editPlaylist, class: 't-nowrap' });
386
+ items.push({ text: 'Edit Playlist', action: editPlaylist, class: 'ws-nowrap' });
387
387
 
388
388
  if (isOwner.value) {
389
389
  items.push({
390
390
  text: playlist.value?.isCollaborative ? 'Make Private' : 'Make Collaborative',
391
391
  action: toggleCollaborative,
392
- class: 't-nowrap'
392
+ class: 'ws-nowrap'
393
393
  });
394
394
  items.push({
395
395
  text: 'Delete Playlist',
396
396
  action: deletePlaylist,
397
397
  color: 'danger',
398
- class: 't-nowrap'
398
+ class: 'ws-nowrap'
399
399
  });
400
400
  }
401
401
  }
@@ -47,7 +47,7 @@
47
47
  Mark all read
48
48
  </button>
49
49
 
50
- <router-link class="w-100 bg-black t-white radius-small button" to="/notifications" @click="closeNotifications">
50
+ <router-link class="w-100 bg-black t-white radius-small button" :to="`/users/${auth.state.user?._id}/notifications`" @click="closeNotifications">
51
51
  View all
52
52
  </router-link>
53
53
  </div>