@ozdao/martyrs 0.2.581 → 0.2.583

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 (86) hide show
  1. package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
  2. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +6 -12
  3. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  4. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
  5. package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js.map +1 -1
  6. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js +182 -89
  7. package/dist/martyrs/src/modules/auth/views/components/pages/UserDashboard.vue.js.map +1 -1
  8. package/dist/martyrs/src/modules/auth/views/configs/navigation.user.config.js +11 -5
  9. package/dist/martyrs/src/modules/auth/views/configs/navigation.user.config.js.map +1 -1
  10. package/dist/martyrs/src/modules/auth/views/router/users.router.js +1 -2
  11. package/dist/martyrs/src/modules/auth/views/router/users.router.js.map +1 -1
  12. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +1 -1
  13. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js +16 -1
  14. package/dist/martyrs/src/modules/core/views/classes/ws.manager.js.map +1 -1
  15. package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
  16. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
  17. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js +7 -0
  18. package/dist/martyrs/src/modules/core/views/utils/vue-app-renderer.js.map +1 -1
  19. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  20. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
  21. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
  22. package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +1 -1
  23. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +3 -3
  24. package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
  25. package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.js +11 -40
  26. package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.js.map +1 -1
  27. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +26 -21
  28. package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js.map +1 -1
  29. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +54 -48
  30. package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
  31. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js +37 -117
  32. package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js.map +1 -1
  33. package/dist/martyrs/src/modules/notifications/notifications.client.js +18 -15
  34. package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
  35. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +90 -175
  36. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
  37. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +6 -6
  38. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
  39. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +41 -28
  40. package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
  41. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
  42. package/dist/martyrs/src/modules/orders/orders.client.js +14 -14
  43. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  44. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  45. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +88 -39
  46. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  47. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
  48. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
  49. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  50. package/dist/style.css +73 -265
  51. package/package.json +1 -1
  52. package/src/modules/TASKS.MD +26 -1
  53. package/src/modules/auth/views/components/pages/Profile.vue +9 -15
  54. package/src/modules/auth/views/components/pages/ProfileEdit.vue +1 -1
  55. package/src/modules/auth/views/components/pages/UserDashboard.vue +214 -125
  56. package/src/modules/auth/views/configs/navigation.user.config.js +17 -11
  57. package/src/modules/auth/views/router/users.router.js +0 -1
  58. package/src/modules/core/views/classes/ws.manager.js +20 -1
  59. package/src/modules/core/views/utils/vue-app-renderer.js +9 -3
  60. package/src/modules/notifications/components/elements/NotificationBadge.vue +1 -1
  61. package/src/modules/notifications/components/layouts/NotificationsLayout.vue +9 -53
  62. package/src/modules/notifications/components/pages/Notifications.vue +21 -22
  63. package/src/modules/notifications/components/sections/NotificationPreferences.vue +41 -180
  64. package/src/modules/notifications/components/sections/NotificationsList.vue +39 -219
  65. package/src/modules/notifications/notifications.client.js +17 -16
  66. package/src/modules/orders/components/blocks/CardOrderUser.vue +88 -190
  67. package/src/modules/orders/components/pages/OrderBackoffice.vue +5 -5
  68. package/src/modules/orders/components/pages/Orders.vue +56 -50
  69. package/src/modules/organizations/components/pages/OrganizationEdit.vue +42 -11
  70. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js +0 -625
  71. package/dist/martyrs/src/components/SelectMulti/SelectMulti.vue.js.map +0 -1
  72. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js +0 -44
  73. package/dist/martyrs/src/modules/auth/views/components/blocks/ProfileCard.vue.js.map +0 -1
  74. package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
  75. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCanceled.vue.js +0 -32
  76. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCanceled.vue.js.map +0 -1
  77. package/dist/martyrs/src/modules/orders/components/icons/IconStatusConfirmed.vue.js +0 -32
  78. package/dist/martyrs/src/modules/orders/components/icons/IconStatusConfirmed.vue.js.map +0 -1
  79. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCreated.vue.js +0 -32
  80. package/dist/martyrs/src/modules/orders/components/icons/IconStatusCreated.vue.js.map +0 -1
  81. package/dist/martyrs/src/modules/orders/components/icons/IconStatusDelay.vue.js +0 -32
  82. package/dist/martyrs/src/modules/orders/components/icons/IconStatusDelay.vue.js.map +0 -1
  83. package/dist/martyrs/src/modules/orders/components/icons/IconStatusFinished.vue.js +0 -32
  84. package/dist/martyrs/src/modules/orders/components/icons/IconStatusFinished.vue.js.map +0 -1
  85. package/dist/martyrs/src/modules/orders/components/icons/IconStatusInUse.vue.js +0 -32
  86. package/dist/martyrs/src/modules/orders/components/icons/IconStatusInUse.vue.js.map +0 -1
@@ -9,7 +9,7 @@ import "vue-i18n";
9
9
  import { actions as actions$1 } from "../../store/categories.js";
10
10
  /* empty css */
11
11
  import Field from "../../../../components/Field/Field.vue.js";
12
- import Filters from "../../../core/views/components/sections/Filters.vue.js";
12
+ import Filters from "../../../core/views/components/sections/Filters.vue2.js";
13
13
  import Calendar from "../../../../components/Calendar/Calendar.vue2.js";
14
14
  import _sfc_main$7 from "../../../../components/Popup/Popup.vue.js";
15
15
  import _sfc_main$6 from "../blocks/CardProduct.vue.js";
package/dist/style.css CHANGED
@@ -1439,21 +1439,21 @@ to {
1439
1439
  margin-left: 0.5rem;
1440
1440
  }
1441
1441
 
1442
- .notification-badge-container[data-v-ce5c73ba] {
1442
+ .notification-badge-container[data-v-bea4263c] {
1443
1443
  position: relative;
1444
1444
  display: inline-block;
1445
1445
  }
1446
- .notification-button[data-v-ce5c73ba] {
1446
+ .notification-button[data-v-bea4263c] {
1447
1447
  background: none;
1448
1448
  border: none;
1449
1449
  cursor: pointer;
1450
1450
  position: relative;
1451
1451
  font-size: 1.2rem;
1452
1452
  }
1453
- .notification-icon[data-v-ce5c73ba] {
1453
+ .notification-icon[data-v-bea4263c] {
1454
1454
  font-size: 1.4rem;
1455
1455
  }
1456
- .button-counter[data-v-ce5c73ba] {
1456
+ .button-counter[data-v-bea4263c] {
1457
1457
  position: absolute;
1458
1458
  right: -8px;
1459
1459
  bottom: -8px;
@@ -1467,8 +1467,8 @@ to {
1467
1467
  line-height: 16px;
1468
1468
  font-size: 10px;
1469
1469
  }
1470
- .notifications-loading[data-v-ce5c73ba],
1471
- .notifications-empty[data-v-ce5c73ba] {
1470
+ .notifications-loading[data-v-bea4263c],
1471
+ .notifications-empty[data-v-bea4263c] {
1472
1472
  padding: 24px;
1473
1473
  text-align: center;
1474
1474
  color: rgb(var(--texfw-light));
@@ -1678,194 +1678,7 @@ to {
1678
1678
  }
1679
1679
  }.cols-3-footer {
1680
1680
  grid-template-columns: 5fr 7fr 4fr;
1681
- }
1682
- .description[data-v-420a3f66] {
1683
- color: #666;
1684
- margin-bottom: 24px;
1685
- }
1686
- .preferences-loading[data-v-420a3f66] {
1687
- display: flex;
1688
- flex-direction: column;
1689
- align-items: center;
1690
- justify-content: center;
1691
- padding: 48px 0;
1692
- }
1693
- .loading-spinner[data-v-420a3f66] {
1694
- font-size: 2rem;
1695
- margin-bottom: 16px;
1696
- animation: spin-420a3f66 2s linear infinite;
1697
- }
1698
- @keyframes spin-420a3f66 {
1699
- 0% { transform: rotate(0deg);
1700
- }
1701
- 100% { transform: rotate(360deg);
1702
- }
1703
- }
1704
- .preference-item[data-v-420a3f66] {
1705
- display: flex;
1706
- align-items: center;
1707
- justify-content: space-between;
1708
- padding: 16px;
1709
- border-bottom: 1px solid #eee;
1710
- }
1711
- .preference-item[data-v-420a3f66]:last-child {
1712
- border-bottom: none;
1713
- }
1714
- .preference-info[data-v-420a3f66] {
1715
- display: flex;
1716
- align-items: center;
1717
- flex: 1;
1718
- }
1719
- .preference-icon[data-v-420a3f66] {
1720
- font-size: 1.5rem;
1721
- margin-right: 16px;
1722
- width: 40px;
1723
- height: 40px;
1724
- display: flex;
1725
- align-items: center;
1726
- justify-content: center;
1727
- }
1728
- .preference-details h3[data-v-420a3f66] {
1729
- margin: 0 0 4px 0;
1730
- font-size: 1rem;
1731
- }
1732
- .preference-details p[data-v-420a3f66] {
1733
- margin: 0;
1734
- color: #666;
1735
- font-size: 0.875rem;
1736
- }
1737
-
1738
- /* Toggle switch styles */
1739
- .toggle-switch[data-v-420a3f66] {
1740
- position: relative;
1741
- display: inline-block;
1742
- width: 50px;
1743
- height: 24px;
1744
- }
1745
- .toggle-switch input[data-v-420a3f66] {
1746
- opacity: 0;
1747
- width: 0;
1748
- height: 0;
1749
- }
1750
- .toggle-slider[data-v-420a3f66] {
1751
- position: absolute;
1752
- cursor: pointer;
1753
- top: 0;
1754
- left: 0;
1755
- right: 0;
1756
- bottom: 0;
1757
- background-color: #ccc;
1758
- transition: .4s;
1759
- border-radius: 24px;
1760
- }
1761
- .toggle-slider[data-v-420a3f66]:before {
1762
- position: absolute;
1763
- content: "";
1764
- height: 16px;
1765
- width: 16px;
1766
- left: 4px;
1767
- bottom: 4px;
1768
- background-color: white;
1769
- transition: .4s;
1770
- border-radius: 50%;
1771
- }
1772
- input:checked + .toggle-slider[data-v-420a3f66] {
1773
- background-color: #2196F3;
1774
- }
1775
- input:checked + .toggle-slider[data-v-420a3f66]:before {
1776
- transform: translateX(26px);
1777
- }
1778
- .form-actions[data-v-420a3f66] {
1779
- margin-top: 24px;
1780
- display: flex;
1781
- justify-content: flex-end;
1782
- gap: 16px;
1783
- }
1784
- .save-btn[data-v-420a3f66], .cancel-btn[data-v-420a3f66] {
1785
- padding: 8px 16px;
1786
- border-radius: 4px;
1787
- cursor: pointer;
1788
- }
1789
- .save-btn[data-v-420a3f66] {
1790
- background-color: #2196F3;
1791
- border: none;
1792
- color: white;
1793
- }
1794
- .save-btn[data-v-420a3f66]:disabled {
1795
- background-color: #ccc;
1796
- cursor: not-allowed;
1797
- }
1798
- .cancel-btn[data-v-420a3f66] {
1799
- background-color: white;
1800
- border: 1px solid #ccc;
1801
- }
1802
-
1803
- .notifications-list-container[data-v-5af8a2ed] {
1804
- width: 100%;
1805
- max-width: 800px;
1806
- margin: 0 auto;
1807
- }
1808
- .notifications-header[data-v-5af8a2ed] {
1809
- display: flex;
1810
- justify-content: space-between;
1811
- align-items: center;
1812
- margin-bottom: 20px;
1813
- }
1814
- .notifications-controls[data-v-5af8a2ed] {
1815
- display: flex;
1816
- align-items: center;
1817
- gap: 16px;
1818
- }
1819
- .notifications-filter select[data-v-5af8a2ed] {
1820
- padding: 6px 12px;
1821
- border-radius: 4px;
1822
- border: 1px solid #ddd;
1823
- }
1824
- .mark-all-read-btn[data-v-5af8a2ed] {
1825
- background-color: #2196f3;
1826
- color: white;
1827
- border: none;
1828
- padding: 6px 12px;
1829
- border-radius: 4px;
1830
- cursor: pointer;
1831
- }
1832
- .notifications-loading[data-v-5af8a2ed],
1833
- .notifications-empty[data-v-5af8a2ed] {
1834
- padding: 40px 0;
1835
- text-align: center;
1836
- color: #666;
1837
- }
1838
- .loading-spinner[data-v-5af8a2ed] {
1839
- font-size: 2rem;
1840
- margin-bottom: 10px;
1841
- animation: spin-5af8a2ed 1s linear infinite;
1842
- }
1843
- @keyframes spin-5af8a2ed {
1844
- from { transform: rotate(0deg);
1845
- }
1846
- to { transform: rotate(360deg);
1847
- }
1848
- }
1849
- .notifications-items[data-v-5af8a2ed] {
1850
- display: flex;
1851
- flex-direction: column;
1852
- gap: 10px;
1853
- }
1854
- .notifications-footer[data-v-5af8a2ed] {
1855
- margin-top: 20px;
1856
- text-align: center;
1857
- }
1858
- .refresh-btn[data-v-5af8a2ed] {
1859
- background: none;
1860
- border: none;
1861
- color: #666;
1862
- cursor: pointer;
1863
- padding: 6px 12px;
1864
- }
1865
- .refresh-btn[data-v-5af8a2ed]:hover {
1866
- color: #2196f3;
1867
- }
1868
- .embla {
1681
+ }.embla {
1869
1682
  overflow: hidden;
1870
1683
  }
1871
1684
  .embla__container {
@@ -1930,6 +1743,66 @@ to { transform: rotate(360deg);
1930
1743
  white-space: pre-line;
1931
1744
  word-wrap: break-word;
1932
1745
  }
1746
+ .icon-search-popup[data-v-3479d8be] {
1747
+ min-height: 500px;
1748
+ }
1749
+ .icon-grid[data-v-3479d8be] {
1750
+ min-height: 400px;
1751
+ }
1752
+ .icon-item[data-v-3479d8be] {
1753
+ transition: all 0.2s ease;
1754
+ }
1755
+ .icon-item[data-v-3479d8be]:hover {
1756
+ background-color: rgb(var(--light-hover));
1757
+ transform: scale(1.05);
1758
+ }
1759
+ .icon-preview[data-v-3479d8be] {
1760
+ background: rgb(var(--light));
1761
+ border-radius: 8px;
1762
+ }
1763
+ .icon-svg[data-v-3479d8be] {
1764
+ filter: none;
1765
+ }
1766
+ .w-max-800[data-v-3479d8be] {
1767
+ max-width: 800px;
1768
+ width: 90vw;
1769
+ }
1770
+ [data-v-3479d8be] .feed-enter-active,[data-v-3479d8be] .feed-leave-active {
1771
+ transition: all 0.3s ease;
1772
+ }
1773
+ [data-v-3479d8be] .feed-enter-from,[data-v-3479d8be] .feed-leave-to {
1774
+ opacity: 0;
1775
+ transform: scale(0.9);
1776
+ }
1777
+
1778
+ .h-60[data-v-ac4d495b] {
1779
+ height: 60%;
1780
+ }
1781
+ .notification[data-v-ac4d495b] {
1782
+ z-index: 100;
1783
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1784
+ transition: all 0.3s ease;
1785
+ animation: fadeIn-ac4d495b 0.3s;
1786
+ }
1787
+ @keyframes fadeIn-ac4d495b {
1788
+ from { opacity: 0; transform: translateY(20px);
1789
+ }
1790
+ to { opacity: 1; transform: translateY(0);
1791
+ }
1792
+ }
1793
+ .icon-card .replace-btn[data-v-ac4d495b] {
1794
+ opacity: 0;
1795
+ transition: opacity 0.2s ease;
1796
+ }
1797
+ .icon-card:hover .replace-btn[data-v-ac4d495b] {
1798
+ opacity: 1;
1799
+ }
1800
+ .flex-justify-between[data-v-ac4d495b] {
1801
+ display: flex;
1802
+ justify-content: space-between;
1803
+ align-items: center;
1804
+ }
1805
+
1933
1806
  fieldset[disabled] .multiselect {
1934
1807
  pointer-events: none;
1935
1808
  }
@@ -2345,66 +2218,6 @@ to {
2345
2218
  }.bg-white-overlay[data-v-0f5877fc] {
2346
2219
  background: linear-gradient(0deg, rgba(var(--white), 1) 0%, rgba(var(--white), 0) 100%);
2347
2220
  }
2348
- .icon-search-popup[data-v-3479d8be] {
2349
- min-height: 500px;
2350
- }
2351
- .icon-grid[data-v-3479d8be] {
2352
- min-height: 400px;
2353
- }
2354
- .icon-item[data-v-3479d8be] {
2355
- transition: all 0.2s ease;
2356
- }
2357
- .icon-item[data-v-3479d8be]:hover {
2358
- background-color: rgb(var(--light-hover));
2359
- transform: scale(1.05);
2360
- }
2361
- .icon-preview[data-v-3479d8be] {
2362
- background: rgb(var(--light));
2363
- border-radius: 8px;
2364
- }
2365
- .icon-svg[data-v-3479d8be] {
2366
- filter: none;
2367
- }
2368
- .w-max-800[data-v-3479d8be] {
2369
- max-width: 800px;
2370
- width: 90vw;
2371
- }
2372
- [data-v-3479d8be] .feed-enter-active,[data-v-3479d8be] .feed-leave-active {
2373
- transition: all 0.3s ease;
2374
- }
2375
- [data-v-3479d8be] .feed-enter-from,[data-v-3479d8be] .feed-leave-to {
2376
- opacity: 0;
2377
- transform: scale(0.9);
2378
- }
2379
-
2380
- .h-60[data-v-ac4d495b] {
2381
- height: 60%;
2382
- }
2383
- .notification[data-v-ac4d495b] {
2384
- z-index: 100;
2385
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
2386
- transition: all 0.3s ease;
2387
- animation: fadeIn-ac4d495b 0.3s;
2388
- }
2389
- @keyframes fadeIn-ac4d495b {
2390
- from { opacity: 0; transform: translateY(20px);
2391
- }
2392
- to { opacity: 1; transform: translateY(0);
2393
- }
2394
- }
2395
- .icon-card .replace-btn[data-v-ac4d495b] {
2396
- opacity: 0;
2397
- transition: opacity 0.2s ease;
2398
- }
2399
- .icon-card:hover .replace-btn[data-v-ac4d495b] {
2400
- opacity: 1;
2401
- }
2402
- .flex-justify-between[data-v-ac4d495b] {
2403
- display: flex;
2404
- justify-content: space-between;
2405
- align-items: center;
2406
- }
2407
-
2408
2221
  /* Existing styles can stay unchanged */
2409
2222
 
2410
2223
  #eventPage {
@@ -2878,14 +2691,7 @@ to { opacity: 1; transform: translateY(0);
2878
2691
  }
2879
2692
  .vue-select-header {
2880
2693
  height: 3rem;
2881
- }.shop-cart-item[data-v-1e6239c6]:first-of-type {
2882
- padding-top: 0;
2883
2694
  }
2884
- /* Добавляем стиль для текста "просрочено" */
2885
- .t-red[data-v-06132302] {
2886
- color: red;
2887
- }
2888
-
2889
2695
  .bg-light[data-v-1239e806] {
2890
2696
  background-color: var(--color-bg-light, #f8f9fa);
2891
2697
  }
@@ -2899,7 +2705,9 @@ to { opacity: 1; transform: translateY(0);
2899
2705
  .bg-danger[data-v-7562ca0a] {
2900
2706
  background-color: #ef4444;
2901
2707
  }
2902
- #map[data-v-e9370e2c]:focus {
2708
+ .shop-cart-item[data-v-1e6239c6]:first-of-type {
2709
+ padding-top: 0;
2710
+ }#map[data-v-e9370e2c]:focus {
2903
2711
  outline: none;
2904
2712
  }
2905
2713
  /* Add styles for the user card component here */
@@ -3596,10 +3404,10 @@ html.barcode-scanner-active-html {
3596
3404
  aspect-ratio: 1/1;
3597
3405
  height: 100%;
3598
3406
  background: #ccc;
3599
- }.blink[data-v-134b043e] {
3600
- animation: blink-animation-134b043e 1s ease infinite;
3407
+ }.blink[data-v-f82cb957] {
3408
+ animation: blink-animation-f82cb957 1s ease infinite;
3601
3409
  }
3602
- @keyframes blink-animation-134b043e {
3410
+ @keyframes blink-animation-f82cb957 {
3603
3411
  0%, 100% {
3604
3412
  opacity: 1;
3605
3413
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ozdao/martyrs",
3
- "version": "0.2.581",
3
+ "version": "0.2.583",
4
4
  "description": "Fullstack framework focused on user experience and ease of development.",
5
5
  "author": "OZ DAO <hello@ozdao.dev>",
6
6
  "license": "GPL-3.0-or-later",
@@ -14,4 +14,29 @@
14
14
  - `/Users/magicofoz/Development/OZDAO/ozdao.dev/app/martyrs/src/modules/core/models/schemas/common.schema.js`
15
15
  - `/Users/magicofoz/Development/OZDAO/ozdao.dev/app/martyrs/src/modules/products/models/category.model.js`
16
16
  - `/Users/magicofoz/Development/OZDAO/ozdao.dev/app/martyrs/src/modules/products/controllers/categories.controller.js`
17
- - Все компоненты фронтенда, использующие статус 'featured'
17
+ - Все компоненты фронтенда, использующие статус 'featured'
18
+
19
+ ---
20
+
21
+ ### Перенос конфигурации модулей в базу данных
22
+
23
+ **Проблема**: Конфигурация модулей (статусы заказов, ставки VAT, fees и т.д.) хранится в `global.config.js`. Это означает:
24
+ - Изменения требуют редеплоя
25
+ - Нет возможности управлять настройками через UI
26
+ - Разные инстансы не могут иметь разные настройки
27
+
28
+ **Решение**: Перенести конфигурацию в базу данных и управлять через бекофис.
29
+
30
+ **Что нужно сделать**:
31
+ 1. Создать модель `ModuleSettings` для хранения настроек модулей в БД
32
+ 2. Создать страницу в бекофисе `/backoffice/settings` для управления параметрами
33
+ 3. Перенести настройки из `global.config.js`:
34
+ - `orders.statuses` - статусы заказов
35
+ - `orders.showFees`, `orders.feesRate` - настройки комиссий
36
+ - `orders.showVat`, `orders.vatRate` - настройки НДС
37
+ - `orders.showDeliveryFee`, `orders.deliveryRate` - настройки доставки
38
+ - Другие параметры модулей
39
+ 4. Загружать настройки при старте приложения и кэшировать
40
+ 5. Обновить компоненты для получения настроек из store вместо config
41
+
42
+ **Приоритет**: Высокий - статусы заказов особенно критичны для разных проектов
@@ -161,13 +161,7 @@
161
161
  <template v-for="(module, moduleName) in modules" :key="moduleName">
162
162
  <MenuItem
163
163
  v-if="isModuleInstalled(moduleName) && (!module.visible || module.visible(auth))"
164
- @click="router.push({
165
- name: `${module.route}`,
166
- params: {
167
- _id: route.params._id,
168
- user: route.params._id
169
- }
170
- })"
164
+ @click="router.push(module.path(route.params._id))"
171
165
  class="profile-menu-item cursor-pointer"
172
166
  >
173
167
  <component
@@ -285,30 +279,30 @@ const { isModuleInstalled } = useGlobalMixins()
285
279
  const modules = {
286
280
  events: {
287
281
  displayName: 'Events',
288
- route: 'User Events',
282
+ path: (_id) => `/users/${_id}/events`,
289
283
  icon: IconEvents,
290
284
  visible: () => true
291
285
  },
292
286
  organizations: {
293
287
  displayName: 'Groups',
294
- route: 'User Organizations',
288
+ path: (_id) => `/users/${_id}/organizations`,
295
289
  icon: IconGroups,
296
290
  visible: () => true
297
291
  },
298
- blogposts: {
292
+ community: {
299
293
  displayName: 'Posts',
300
- route: 'User Posts',
294
+ path: (_id) => `/users/${_id}/blogposts`,
301
295
  icon: IconCommunity,
302
296
  visible: () => true
303
297
  },
304
298
  orders: {
305
299
  displayName: 'Orders',
306
- route: 'UserOrdersList',
300
+ path: (_id) => `/users/${_id}/orders`,
307
301
  icon: IconOrders,
308
302
  visible: (auth) => auth.state.user && (
309
- auth.state.user._id === route.params._id ||
310
- (auth.state.access && auth.state.access.roles &&
311
- (auth.state.access.roles.includes('ROLE_MODERATOR') ||
303
+ auth.state.user._id === route.params._id ||
304
+ (auth.state.access && auth.state.access.roles &&
305
+ (auth.state.access.roles.includes('ROLE_MODERATOR') ||
312
306
  auth.state.access.roles.includes('ROLE_ADMIN'))
313
307
  )
314
308
  )
@@ -7,7 +7,7 @@
7
7
  class="w-m-50r h-40r mobile:h-100 h-m-40r bg-white mobile:radius-zero radius-medium pd-medium"
8
8
  >
9
9
  <div v-if="loading" class="flex-center h-100">
10
- <Loader />
10
+ <Loader :centered="true"/>
11
11
  </div>
12
12
 
13
13
  <div v-else class="flex h-min-100 flex-row mobile:flex-column gap-regular">