@ozdao/prometheus-framework 0.2.48 → 0.2.50

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. package/dist/auth.server.js +27 -25
  2. package/dist/auth.server.mjs +27 -25
  3. package/dist/community.server.js +1 -1
  4. package/dist/community.server.mjs +1 -1
  5. package/dist/events.server.js +1 -1
  6. package/dist/events.server.mjs +1 -1
  7. package/dist/files.server.js +1 -1
  8. package/dist/files.server.mjs +1 -1
  9. package/dist/gallery.server.js +1 -1
  10. package/dist/gallery.server.mjs +1 -1
  11. package/dist/index-3981e903.mjs +217 -0
  12. package/dist/index-4eecfdb9.js +216 -0
  13. package/dist/main-203b36b6.mjs +13628 -0
  14. package/dist/main-_b1_i8mt.mjs +13606 -0
  15. package/dist/main-a7ae4ce5.js +91 -0
  16. package/dist/main-uiQFxEks.js +91 -0
  17. package/dist/middlewares.server.js +1 -1
  18. package/dist/middlewares.server.mjs +1 -1
  19. package/dist/node_modules/vue-select/dist/vue-select.es.cjs +1 -3
  20. package/dist/node_modules/vue-select/dist/vue-select.es.js +49 -645
  21. package/dist/organizations.server.js +13 -27
  22. package/dist/organizations.server.mjs +13 -27
  23. package/dist/products.server.js +95 -15
  24. package/dist/products.server.mjs +95 -15
  25. package/dist/prometheus-framework/src/components/Button/Button.vue.cjs +1 -1
  26. package/dist/prometheus-framework/src/components/Button/Button.vue.js +2 -225
  27. package/dist/prometheus-framework/src/components/Button/Button.vue2.cjs +1 -1
  28. package/dist/prometheus-framework/src/components/Button/Button.vue2.js +225 -2
  29. package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue.cjs +1 -1
  30. package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue.js +61 -2
  31. package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue2.cjs +1 -1
  32. package/dist/prometheus-framework/src/components/Checkbox/Checkbox.vue2.js +2 -61
  33. package/dist/prometheus-framework/src/components/Field/Field.vue.cjs +1 -1
  34. package/dist/prometheus-framework/src/components/Field/Field.vue.js +2 -76
  35. package/dist/prometheus-framework/src/components/Field/Field.vue2.cjs +1 -1
  36. package/dist/prometheus-framework/src/components/Field/Field.vue2.js +76 -2
  37. package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.cjs +1 -1
  38. package/dist/prometheus-framework/src/components/FieldBig/FieldBig.vue.js +1 -1
  39. package/dist/prometheus-framework/src/components/SelectMulti/SelectMulti.vue.cjs +1 -1
  40. package/dist/prometheus-framework/src/components/SelectMulti/SelectMulti.vue.js +6 -6
  41. package/dist/prometheus-framework/src/components/Tab/Tab.vue.cjs +1 -1
  42. package/dist/prometheus-framework/src/components/Tab/Tab.vue.js +2 -44
  43. package/dist/prometheus-framework/src/components/Tab/Tab.vue2.cjs +1 -1
  44. package/dist/prometheus-framework/src/components/Tab/Tab.vue2.js +44 -2
  45. package/dist/prometheus-framework/src/modules/auth/components/layouts/Auth.vue.cjs +1 -1
  46. package/dist/prometheus-framework/src/modules/auth/components/layouts/Auth.vue.js +3 -3
  47. package/dist/prometheus-framework/src/modules/auth/components/pages/EnterCode.vue.cjs +1 -1
  48. package/dist/prometheus-framework/src/modules/auth/components/pages/EnterCode.vue.js +1 -1
  49. package/dist/prometheus-framework/src/modules/auth/components/pages/EnterPassword.vue.cjs +1 -1
  50. package/dist/prometheus-framework/src/modules/auth/components/pages/EnterPassword.vue.js +3 -3
  51. package/dist/prometheus-framework/src/modules/auth/components/pages/Invite.vue.cjs +1 -1
  52. package/dist/prometheus-framework/src/modules/auth/components/pages/Invite.vue.js +44 -32
  53. package/dist/prometheus-framework/src/modules/auth/components/pages/ResetPassword.vue.cjs +1 -1
  54. package/dist/prometheus-framework/src/modules/auth/components/pages/ResetPassword.vue.js +3 -3
  55. package/dist/prometheus-framework/src/modules/auth/components/pages/SignIn.vue.cjs +1 -1
  56. package/dist/prometheus-framework/src/modules/auth/components/pages/SignIn.vue.js +3 -3
  57. package/dist/prometheus-framework/src/modules/auth/components/pages/SignUp.vue.cjs +1 -1
  58. package/dist/prometheus-framework/src/modules/auth/components/pages/SignUp.vue.js +3 -3
  59. package/dist/prometheus-framework/src/modules/auth/store/auth.cjs +1 -1
  60. package/dist/prometheus-framework/src/modules/auth/store/auth.js +45 -44
  61. package/dist/prometheus-framework/src/modules/auth/store/invites.cjs +1 -1
  62. package/dist/prometheus-framework/src/modules/auth/store/invites.js +5 -5
  63. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.cjs +1 -1
  64. package/dist/prometheus-framework/src/modules/backoffice/components/pages/Dashboard.vue.js +1 -1
  65. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  66. package/dist/prometheus-framework/src/modules/community/components/pages/CreateBlogPost.vue.js +3 -3
  67. package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
  68. package/dist/prometheus-framework/src/modules/constructor/components/elements/Embed.vue.js +1 -1
  69. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.cjs +1 -1
  70. package/dist/prometheus-framework/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
  71. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  72. package/dist/prometheus-framework/src/modules/events/components/pages/EditEvent.vue.js +3 -3
  73. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.cjs +1 -1
  74. package/dist/prometheus-framework/src/modules/events/components/pages/Events.vue.js +1 -1
  75. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
  76. package/dist/prometheus-framework/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
  77. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.cjs +1 -1
  78. package/dist/prometheus-framework/src/modules/gallery/components/sections/GalleryWithCategories.vue.js +2 -2
  79. package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.cjs +1 -1
  80. package/dist/prometheus-framework/src/modules/globals/components/blocks/CardHeader.vue.js +1 -1
  81. package/dist/prometheus-framework/src/modules/globals/store/globals.cjs +1 -1
  82. package/dist/prometheus-framework/src/modules/globals/store/globals.js +22 -21
  83. package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.cjs +1 -1
  84. package/dist/prometheus-framework/src/modules/legal/components/pages/Legal.vue.js +3 -3
  85. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.cjs +1 -1
  86. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue.js +11 -2
  87. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.cjs +1 -1
  88. package/dist/prometheus-framework/src/modules/mobile/components/Menu/Menu.vue2.js +2 -11
  89. package/dist/prometheus-framework/src/modules/orders/components/pages/EditOrder.vue.cjs +1 -1
  90. package/dist/prometheus-framework/src/modules/orders/components/pages/EditOrder.vue.js +1 -1
  91. package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
  92. package/dist/prometheus-framework/src/modules/orders/components/pages/Orders.vue.js +1 -1
  93. package/dist/prometheus-framework/src/modules/orders/components/sections/FormOrderDetails.vue.cjs +1 -1
  94. package/dist/prometheus-framework/src/modules/orders/components/sections/FormOrderDetails.vue.js +1 -1
  95. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +1 -1
  96. package/dist/prometheus-framework/src/modules/organizations/components/blocks/CardDepartment.vue.js +17 -17
  97. package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.cjs +1 -1
  98. package/dist/prometheus-framework/src/modules/organizations/components/blocks/DepartmentMemberModify.vue.js +49 -42
  99. package/dist/prometheus-framework/src/modules/organizations/components/blocks/User.vue.cjs +1 -1
  100. package/dist/prometheus-framework/src/modules/organizations/components/blocks/User.vue.js +47 -15
  101. package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +1 -1
  102. package/dist/prometheus-framework/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
  103. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.cjs +1 -1
  104. package/dist/prometheus-framework/src/modules/organizations/components/pages/Department.vue.js +38 -37
  105. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
  106. package/dist/prometheus-framework/src/modules/organizations/components/pages/DepartmentEdit.vue.js +249 -61
  107. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  108. package/dist/prometheus-framework/src/modules/organizations/components/pages/Members.vue.js +78 -45
  109. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  110. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organization.vue.js +161 -86
  111. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +1 -1
  112. package/dist/prometheus-framework/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
  113. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  114. package/dist/prometheus-framework/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  115. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
  116. package/dist/prometheus-framework/src/modules/organizations/components/sections/Documents.vue.js +2 -2
  117. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  118. package/dist/prometheus-framework/src/modules/organizations/components/sections/MembersAdd.vue.js +52 -54
  119. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
  120. package/dist/prometheus-framework/src/modules/organizations/components/sections/Organizations.vue.js +20 -26
  121. package/dist/prometheus-framework/src/modules/organizations/organizations.client.cjs +1 -1
  122. package/dist/prometheus-framework/src/modules/organizations/organizations.client.js +40 -46
  123. package/dist/prometheus-framework/src/modules/organizations/store/departments.cjs +1 -1
  124. package/dist/prometheus-framework/src/modules/organizations/store/departments.js +34 -30
  125. package/dist/prometheus-framework/src/modules/organizations/store/memberships.cjs +1 -1
  126. package/dist/prometheus-framework/src/modules/organizations/store/memberships.js +30 -28
  127. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.cjs +1 -1
  128. package/dist/prometheus-framework/src/modules/products/components/blocks/CardPosition.vue.js +18 -18
  129. package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.cjs +1 -1
  130. package/dist/prometheus-framework/src/modules/products/components/blocks/LeftoverPositions.vue.js +1 -1
  131. package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.cjs +1 -1
  132. package/dist/prometheus-framework/src/modules/products/components/blocks/ListPositions.vue.js +1 -1
  133. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
  134. package/dist/prometheus-framework/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
  135. package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
  136. package/dist/prometheus-framework/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  137. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.cjs +1 -1
  138. package/dist/prometheus-framework/src/modules/products/components/pages/Product.vue.js +33 -28
  139. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.cjs +1 -1
  140. package/dist/prometheus-framework/src/modules/products/components/pages/ProductEdit.vue.js +123 -113
  141. package/dist/prometheus-framework/src/modules/products/components/pages/ProductsBackoffice.vue.cjs +1 -1
  142. package/dist/prometheus-framework/src/modules/products/components/pages/ProductsBackoffice.vue.js +1 -1
  143. package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.cjs +1 -1
  144. package/dist/prometheus-framework/src/modules/products/components/sections/EditModifications.vue.js +1 -1
  145. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.cjs +1 -1
  146. package/dist/prometheus-framework/src/modules/products/components/sections/EditProductInfo.vue.js +2 -2
  147. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
  148. package/dist/prometheus-framework/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
  149. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
  150. package/dist/prometheus-framework/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
  151. package/dist/prometheus-framework/src/modules/products/store/products.cjs +1 -1
  152. package/dist/prometheus-framework/src/modules/products/store/products.js +1 -1
  153. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  154. package/dist/prometheus-framework/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  155. package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.cjs +1 -1
  156. package/dist/prometheus-framework/src/modules/users/components/pages/Profile.vue.js +3 -3
  157. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileBlogposts.vue.cjs +1 -1
  158. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileBlogposts.vue.js +1 -1
  159. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.cjs +1 -1
  160. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEdit.vue.js +3 -3
  161. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEvents.vue.cjs +1 -1
  162. package/dist/prometheus-framework/src/modules/users/components/pages/ProfileEvents.vue.js +1 -1
  163. package/dist/prometheus-framework/src/modules/wallet/components/pages/Wallet.vue.cjs +1 -1
  164. package/dist/prometheus-framework/src/modules/wallet/components/pages/Wallet.vue.js +1 -1
  165. package/dist/prometheus-framework.cjs.js +1 -1
  166. package/dist/prometheus-framework.es.js +1 -1
  167. package/dist/reports.server.js +1 -1
  168. package/dist/reports.server.mjs +1 -1
  169. package/dist/style.css +1 -1
  170. package/dist/web-7p76PGnO.mjs +55 -0
  171. package/dist/web-c63f0ecc.js +1 -0
  172. package/dist/web-d8173758.mjs +55 -0
  173. package/dist/web-dn8vgptQ.js +1 -0
  174. package/package.json +1 -1
  175. package/src/components/SelectMulti/SelectMulti.vue +1 -1
  176. package/src/modules/auth/components/pages/Invite.vue +17 -6
  177. package/src/modules/auth/controllers/auth.controller.js +24 -16
  178. package/src/modules/auth/controllers/invites.controller.js +17 -8
  179. package/src/modules/auth/store/auth.js +8 -1
  180. package/src/modules/auth/store/invites.js +1 -0
  181. package/src/modules/globals/store/globals.js +5 -1
  182. package/src/modules/landing/components/blocks/MapBlock.vue +37 -0
  183. package/src/modules/landing/components/pages/404.vue +3 -0
  184. package/src/modules/landing/components/pages/Governance.vue +155 -0
  185. package/src/modules/landing/components/pages/Home.vue +52 -0
  186. package/src/modules/landing/components/pages/Hotel.vue +54 -0
  187. package/src/modules/landing/components/pages/Page.vue +184 -0
  188. package/src/modules/landing/components/sections/AboutSection.vue +69 -0
  189. package/src/modules/landing/components/sections/Examples.vue +90 -0
  190. package/src/modules/landing/components/sections/FeatureSection.vue +80 -0
  191. package/src/modules/landing/components/sections/GiftSection.vue +63 -0
  192. package/src/modules/landing/components/sections/HeroSection.vue +74 -0
  193. package/src/modules/landing/components/sections/HowItWorksSection.vue +88 -0
  194. package/src/modules/landing/components/sections/HowToBuyWDR.vue +131 -0
  195. package/src/modules/landing/components/sections/InstagramSection.vue +181 -0
  196. package/src/modules/landing/components/sections/MapSection.vue +91 -0
  197. package/src/modules/landing/components/sections/SectionsSection.vue +69 -0
  198. package/src/modules/landing/components/sections/SliderFeatures.vue +131 -0
  199. package/src/modules/landing/components/sections/WhatIsWDRSection.vue +116 -0
  200. package/src/modules/landing/router/landing.js +34 -0
  201. package/src/modules/middlewares/server/verifySignUp.js +4 -0
  202. package/src/modules/organizations/components/blocks/CardDepartment.vue +3 -3
  203. package/src/modules/organizations/components/blocks/DepartmentMemberModify.vue +52 -44
  204. package/src/modules/organizations/components/blocks/User.vue +42 -10
  205. package/src/modules/organizations/components/pages/Department.vue +7 -6
  206. package/src/modules/organizations/components/pages/DepartmentEdit.vue +110 -134
  207. package/src/modules/organizations/components/pages/Members.vue +85 -26
  208. package/src/modules/organizations/components/pages/Organization.vue +60 -4
  209. package/src/modules/organizations/components/sections/MembersAdd.vue +27 -34
  210. package/src/modules/organizations/components/sections/Organizations.vue +0 -1
  211. package/src/modules/organizations/controllers/memberships.controller.js +6 -2
  212. package/src/modules/organizations/controllers/organizations.controller.js +1 -1
  213. package/src/modules/organizations/models/department.model.js +0 -19
  214. package/src/modules/organizations/models/membership.model.js +4 -0
  215. package/src/modules/organizations/organizations.client.js +1 -6
  216. package/src/modules/organizations/store/departments.js +48 -44
  217. package/src/modules/organizations/store/memberships.js +11 -3
  218. package/src/modules/products/components/blocks/CardPosition.vue +2 -2
  219. package/src/modules/products/components/pages/Product.vue +6 -1
  220. package/src/modules/products/components/pages/ProductEdit.vue +48 -28
  221. package/src/modules/products/controllers/products.controller.js +87 -24
  222. package/src/modules/products/models/product.model.js +16 -1
  223. package/src/modules/products/store/products.js +1 -1
  224. package/src/modules/users/components/pages/ProfileOrganizations.vue +41 -7
  225. package/src/modules/organizations/components/sections/FeedDepartments.vue +0 -64
  226. package/src/modules/organizations/components/sections/MembersList.vue +0 -85
  227. package/src/modules/organizations/store/invites.js +0 -93
@@ -1,67 +1,126 @@
1
1
  <template>
2
2
  <transition name="slide-fade">
3
- <div>
4
- <section class="mn-b-medium radius-medium pd-semi bg-white">
5
- <h2 class="mn-b-regular">Участники</h2>
6
- <p class="t-transp p-big">Добавляйте новых участников организации и настраивайте права доступа.</p>
3
+ <div class="pd-thin">
4
+ <section class="mn-b-medium radius-medium pd-semi bg-grey">
5
+ <h2 class="mn-b-regular">Members</h2>
6
+ <p class="t-transp p-big">Add new memberships to the group and configure access rights.</p>
7
7
  </section>
8
-
9
- <FeedDepartments
10
- :organization="organization.state.current"
11
- :memberships="members.state.memberships"
12
- />
13
-
8
+
14
9
  <MembersAdd
15
10
  :organization="organizationData"
16
11
  @send-invite="handleSendInvite"
17
12
  />
18
13
 
19
- <MembersList
20
- :organization="organization"
21
- :memberships="memberships"
22
- :invites="invites.state.invites"
23
- @removeInvite="removeInvite"
24
- @removeMember="removeMember"
14
+ <Tab
15
+ v-model:selected="tabMemberships"
16
+ class="mn-b-medium bg-grey radius-small"
17
+ :tabs="[
18
+ { name: 'Members', value: 'members' },
19
+ { name: 'Invites', value: 'invites' },
20
+ ]"
25
21
  />
22
+
23
+ <section class="mn-b-big radius-medium bg-white">
24
+ <!-- Members -->
25
+ <div
26
+ v-if="tabMemberships === 'members'"
27
+ class="cols-1 gap-thin"
28
+ >
29
+ <User
30
+ v-for="(member, index) in memberships.state.memberships"
31
+ :key="index"
32
+ :user="member"
33
+ @click="$router.push(`/app/profile/${member._id}`)"
34
+ class="bg-grey radius-small flex-nowrap flex pd-medium"
35
+
36
+ />
37
+ </div>
38
+ <!-- Invites -->
39
+ <div
40
+ v-if="tabMemberships === 'invites'"
41
+ >
42
+ <span v-if="invites.length < 1">В организации нет приглашений</span>
43
+ <div
44
+ v-for="(invite, index) in invites.state.invites"
45
+ class="br-grey br-1px br-solid radius-small mn-b-thin flex-nowrap flex-v-center flex pd-medium"
46
+ >
47
+
48
+ <span class="w-100 mn-r-small">{{invite.invitedEmail}} {{invite.invitedPhone}}</span>
49
+ <span class="t-transp">{{invite.status}}</span>
50
+
51
+ <div class="mn-l-medium flex-v-center flex">
52
+ <button @click="removeInvite(index,invite)" class="button-small button">×</button>
53
+ </div>
54
+
55
+ </div>
56
+ </div>
57
+
58
+
59
+ </section>
26
60
  </div>
27
61
  </transition>
28
62
  </template>
29
63
 
30
64
  <script setup>
31
- import { ref,onMounted } from 'vue';
65
+ import { ref, computed, onMounted } from 'vue';
32
66
  import { useRoute, useRouter } from 'vue-router'
33
67
 
34
- import FeedDepartments from '@pf/src/modules/organizations/components/sections/FeedDepartments.vue'
68
+ import Feed from '@pf/src/components/Feed/Feed.vue'
69
+ import Tab from '@pf/src/components/Tab/Tab.vue'
70
+ import Block from '@pf/src/components/Block/Block.vue'
71
+
72
+ import PlaceholderUserpic from '@pf/src/modules/icons/placeholders/PlaceholderUserpic.vue'
73
+
35
74
  import MembersAdd from '@pf/src/modules/organizations/components/sections/MembersAdd.vue';
36
- import MembersList from '@pf/src/modules/organizations/components/sections/MembersList.vue';
75
+
37
76
  // Mobile Module
38
77
  import Menu from '@pf/src/modules/mobile/components/Menu/Menu.vue'
39
78
  import MenuItem from '@pf/src/modules/mobile/components/Menu/MenuItem.vue'
40
79
 
80
+ import User from '@pf/src/modules/organizations/components/blocks/User.vue';
81
+
82
+
41
83
  import * as auth from '@pf/src/modules/auth/store/auth'
42
- import * as invites from '@pf/src/modules/organizations/store/invites';
43
- import * as members from '@pf/src/modules/organizations/store/memberships';
84
+ import * as invites from '@pf/src/modules/auth/store/invites';
85
+ import * as memberships from '@pf/src/modules/organizations/store/memberships';
44
86
  import * as organization from '@pf/src/modules/organizations/store/organizations'
87
+ import * as departments from '@pf/src/modules/organizations/store/departments';
45
88
 
46
89
  const route = useRoute()
47
-
90
+ const router = useRouter()
48
91
  const organizationData = ref(null)
49
92
 
93
+ const tabMemberships = ref('members')
94
+
50
95
  onMounted(async () => {
51
96
  organizationData.value = (await organization.actions.read({_id: route.params._id, user: auth.state.user._id}))[0]
52
- await members.actions.read(route.params._id)
97
+ await memberships.actions.read({target: route.params._id});
53
98
  await invites.actions.read(organizationData.value._id);
54
99
  })
55
100
 
101
+ const FirstLevelDepartments = computed(() => {
102
+ const departmentsState = departments.state.departments;
103
+
104
+ const subdepartmentIds = departmentsState.flatMap(department =>
105
+ department.subdepartments.map(subdepartment => subdepartment._id)
106
+ );
107
+
108
+ return departmentsState.filter(department =>
109
+ !subdepartmentIds.includes(department._id)
110
+ );
111
+ });
112
+
56
113
  async function handleSendInvite(invite) {
57
114
  await invites.actions.create(organizationData.value._id, invite);
58
115
  }
59
116
 
60
- async function removeMember(member) {
61
- await members.actions.delete(member._id);
117
+ async function removeMember(index,member) {
118
+ memberships.state.memberships.splice(index, 1);
119
+ await memberships.actions.delete(member._id);
62
120
  }
63
121
 
64
- async function removeInvite(invite) {
122
+ async function removeInvite(index,invite) {
123
+ invites.state.invites.splice(index, 1);
65
124
  await invites.actions.delete(invite._id);
66
125
  }
67
126
  </script>
@@ -11,8 +11,7 @@
11
11
  />
12
12
 
13
13
  <!-- MEMBERS TAB -->
14
-
15
- <!-- <Menu
14
+ <Menu
16
15
  class="mn-b-regular bg-grey"
17
16
  >
18
17
  <MenuItem
@@ -29,7 +28,59 @@
29
28
  {{organization.state.current.numberOfMembers}} members
30
29
  </span>
31
30
  </MenuItem>
32
- </Menu> -->
31
+ </Menu>
32
+
33
+ <div class="cols-2 pd-medium bg-grey radius-bg">
34
+
35
+ <Block
36
+ title="Departments"
37
+ :actions="[{
38
+ label: '+',
39
+ function: () => $router.push(`/organizations/${route.params._id}/departments/create`)
40
+ }]"
41
+ >
42
+ <Feed
43
+ :states="{
44
+ empty: {
45
+ title: 'No Departments Found',
46
+ description: 'Currently, there are no departments available.'
47
+ }
48
+ }"
49
+ :store="{
50
+ read: (options) => departments.actions.read(route.params._id),
51
+ state: null
52
+ }"
53
+ :options="{
54
+ user: auth.state.user._id,
55
+ sort: 'numberOfMemberships',
56
+ limit: 10
57
+ }"
58
+ v-slot="{
59
+ items
60
+ }"
61
+ >
62
+ <CardDepartment
63
+ v-for="(department, index) in items"
64
+ :key="index"
65
+ :department="department"
66
+ :organization="route.params._id"
67
+ class="radius-big bg-white pos-relative mn-b-thin"
68
+ />
69
+ </Feed>
70
+ </Block>
71
+ <div>
72
+ <User
73
+ v-for="(member, index) in organization.state.current.memberships"
74
+ :key="index"
75
+ :user="member"
76
+ :position="member.position"
77
+ @click="$router.push(`/app/profile/${member.user._id}`)"
78
+ class="bg-grey radius-small flex-nowrap flex pd-medium"
79
+ />
80
+
81
+ </div>
82
+ </div>
83
+
33
84
 
34
85
  <Tab
35
86
  v-model:selected="tabOrganization"
@@ -114,7 +165,6 @@
114
165
 
115
166
  </transition>
116
167
 
117
-
118
168
  <transition name="slide-fade">
119
169
  <div v-if="tabOrganization === 'spots'">
120
170
  <Feed
@@ -173,6 +223,11 @@
173
223
  // Mobile Module
174
224
  import Menu from '@pf/src/modules/mobile/components/Menu/Menu.vue'
175
225
  import MenuItem from '@pf/src/modules/mobile/components/Menu/MenuItem.vue'
226
+ // Organizations
227
+ import DepartmentSub from '@pf/src/modules/organizations/components/blocks/DepartmentSub.vue';
228
+ import User from '@pf/src/modules/organizations/components/blocks/User.vue';
229
+ // Ssds
230
+ import CardDepartment from '@pf/src/modules/organizations/components/blocks/CardDepartment.vue';
176
231
  // Feeds
177
232
  import FeedEvents from '@pf/src/modules/events/components/sections/Feed.vue';
178
233
  import FeedCommunity from '@pf/src/modules/community/components/sections/Feed.vue';
@@ -185,6 +240,7 @@
185
240
  import * as auth from '@pf/src/modules/auth/store/auth'
186
241
  import * as organization from '@pf/src/modules/organizations/store/organizations'
187
242
  import * as memberships from '@pf/src/modules/organizations/store/memberships'
243
+ import * as departments from '@pf/src/modules/organizations/store/departments';
188
244
  // Spots
189
245
  import * as spots from '@pf/src/modules/spots/store/spots';
190
246
  // Init router
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
- <section class="mn-b-medium radius-medium pd-semi bg-white">
4
- <h3 class="mn-b-medium">Добавить участников</h3>
3
+ <section class="mn-b-medium radius-medium pd-semi bg-grey">
4
+ <h3 class="mn-b-medium">Add members</h3>
5
5
  <p class="mn-b-small t-transp p-medium">Укажите email или телефон, чтобы отправить ссылку с приглашением:</p>
6
6
 
7
7
  <div
@@ -10,49 +10,42 @@
10
10
  class="
11
11
  br-1px br-solid br-grey
12
12
  flex
13
+ gap-thin
13
14
  radius-small
14
15
  mn-b-thin
15
16
  ">
16
-
17
- <div class="w-100 flex-nowrap flex">
18
17
  <Field
19
18
  v-model:field="member.contact"
20
- placeholder="Email или телефон"
21
- class="w-100 bg-white"
19
+ placeholder="Enter email or phone"
20
+ class="pd-small radius-small w-100 bg-white"
22
21
  :validation="contactValidation"
23
22
  />
24
-
23
+ <Select
24
+ v-model:select="member.role"
25
+ label="Role"
26
+ :options="[
27
+ 'owner',
28
+ 'manager',
29
+ 'member'
30
+ ]"
31
+ placeholder="Select"
32
+ class="pos-relative w-100 bg-white radius-small pd-small"
33
+ />
25
34
  <div v-if="index > 0" class="mn-r-medium flex-v-center flex">
26
- <button @click="removeMember(index)" class="button-small button">×</button>
35
+ <button @click="removeMember(index)" class="button-small button">×</button>
27
36
  </div>
28
37
  </div>
29
38
 
30
- <Select
31
- :options="[
32
- {name: 'Директор', value: 'director'},
33
- {name: 'Менеджер', value: 'manager'},
34
- {name: 'Сотрудник', value: 'member'},
35
- ]"
36
- :prop="member"
37
- content="role"
38
- placeholder="Роль"
39
- size="small"
40
- class="w-80"
41
- />
42
-
43
- </div>
44
-
45
- <div @click="addMember" class="mn-b-small flex-v-center flex-nowrap flex">
46
- <p class="t-blue mn-r-small">+ Добавить приглашение</p>
47
- </div>
48
-
49
- <Button
50
- :submit="a = () => handleSendInvite(invites.state.invites)"
51
- :callback="reloadPage"
52
- class="mn-t-medium">
53
- <span >Отправить приглашения </span>
54
- </Button>
39
+ <div @click="addMember" class="mn-b-small flex-v-center flex-nowrap flex">
40
+ <p class="t-blue mn-r-small">+ Добавить приглашение</p>
41
+ </div>
55
42
 
43
+ <Button
44
+ :submit="a = () => handleSendInvite(invites.state.invites)"
45
+ :callback="reloadPage"
46
+ class="w-100 bg-main">
47
+ <span>Invite to organization</span>
48
+ </Button>
56
49
  </section>
57
50
  </div>
58
51
  </template>
@@ -65,7 +58,7 @@
65
58
  import Button from '@pf/src/components/Button/Button.vue'
66
59
  // Import validation
67
60
  import * as inputsValidation from '@pf/src/modules/middlewares/client/inputs.validation'
68
- import * as invites from '@pf/src/modules/organizations/store/invites';
61
+ import * as invites from '@pf/src/modules/auth/store/invites';
69
62
  // Props
70
63
  const props = defineProps({
71
64
  organization: Object,
@@ -37,7 +37,6 @@
37
37
  import Button from '@pf/src/components/Button/Button.vue'
38
38
  // Local
39
39
  import DetailsTab from '@pf/src/modules/organizations/components/sections/DetailsTab.vue'
40
- import FeedDepartments from '@pf/src/modules/organizations/components/sections/FeedDepartments.vue'
41
40
  import CardOrganization from '@pf/src/modules/organizations/components/blocks/CardOrganization.vue'
42
41
  // Blocks
43
42
  import EmptyState from '@pf/src/modules/organizations/components/blocks/EmptyState.vue'
@@ -1,3 +1,5 @@
1
+ const ObjectId = require('mongoose').Types.ObjectId;
2
+
1
3
  const controllerFactory = (db) => {
2
4
  const Membership = db.membership;
3
5
 
@@ -64,13 +66,15 @@ const controllerFactory = (db) => {
64
66
  };
65
67
 
66
68
  const deleteMembership = async (req, res) => {
67
- const { type, target, user, role } = req.body;
69
+ // const { type, target, user, role } = req.body;
68
70
 
69
71
 
70
72
  console.log(req.body)
71
73
 
72
74
  try {
73
- const membership = await Membership.findOne({ type, target, user, role });
75
+ // const membership = await Membership.findOne({ type, target, user, role });
76
+ const membership = await Membership.findOneAndDelete({ _id: new ObjectId(req.body._id)})
77
+ // const membership = await Membership.findOne({ type, target, user, role });
74
78
 
75
79
  if (!membership) {
76
80
  return res.status(404).send({ errorCode: 'MEMBERSHIP_NOT_FOUND' });
@@ -61,7 +61,7 @@ const controllerFactory = (db) => {
61
61
  const matchConditions = [
62
62
  ...(req.query._id ? [{ _id: new ObjectId(req.query._id) }] : []),
63
63
  ...(req.query.owner ? [{ owner: new ObjectId(req.query.owner) }] : []),
64
- ...(req.query.member ? [{"memberships.user": new ObjectId(req.query.member), "memberships.role": { $nin: ['subscriber', 'owner'] } } ] : [] ),
64
+ ...(req.query.member ? [{"memberships.user": new ObjectId(req.query.member), "memberships.role": 'member' } ] : [] ),
65
65
  ...(req.query.subscriber ? [{"memberships.user": new ObjectId(req.query.subscriber), "memberships.role": 'subscriber'} ] : [] ),
66
66
  ...(req.query.postable ? [{$or: [{$and: [{ types: { $elemMatch: { $eq: 'public' } } }, { "memberships.user": new ObjectId(req.query.postable) } ] }, {$and: [{types: {$elemMatch: {$in: ['exclusive', 'hidden'] } } }, { "memberships.user": new ObjectId(req.query.postable) }, { "memberships.role": { $ne: 'subscriber' } } ] } ] } ] : [] ),
67
67
  ...(req.query.types ? [{ types: { $in: req.query.types } }] : []), // Если req.query.types - строка
@@ -15,22 +15,6 @@ module.exports = (mongoose) => {
15
15
  description: { type: String },
16
16
  categories: [String]
17
17
  },
18
- // Working hours
19
- address: String,
20
- // Position on map
21
- location: {
22
- lat: Number,
23
- lng: Number,
24
- type: {
25
- type: String,
26
- enum: ['Point'], // 'location.type' must be 'Point'
27
- required: true
28
- },
29
- coordinates: {
30
- type: [Number],
31
- required: true
32
- }
33
- },
34
18
  worktime: [{
35
19
  day: String,
36
20
  time: {
@@ -63,9 +47,6 @@ module.exports = (mongoose) => {
63
47
 
64
48
  departmentSchema.index({ organization: 1 })
65
49
 
66
- departmentSchema.index({ location: '2dsphere' });
67
-
68
-
69
50
  const Department = mongoose.model('Department', departmentSchema);
70
51
 
71
52
  return Department
@@ -15,6 +15,10 @@ module.exports = (mongoose) => {
15
15
  type: String,
16
16
  default: 'subscriber'
17
17
  },
18
+ label: {
19
+ type: String,
20
+ default: 'subscriber'
21
+ },
18
22
  target: { // заменяем 'organization' на 'target', так как это может быть или User, или Organization
19
23
  type: mongoose.Schema.Types.ObjectId,
20
24
  ref: function (value) {
@@ -18,17 +18,15 @@ import Contacts from './components/blocks/Contacts.vue';
18
18
  import Socials from './components/blocks/Socials.vue';
19
19
 
20
20
  import MembersAdd from './components/sections/MembersAdd.vue';
21
- import FeedDepartments from './components/sections/FeedDepartments.vue';
22
21
  import DetailsTab from './components/sections/DetailsTab.vue';
23
22
  import OrganizationsSection from './components/sections/Organizations.vue';
24
23
  import Publics from './components/sections/Publics.vue';
25
24
  import Documents from './components/sections/Documents.vue';
26
- import MembersList from './components/sections/MembersList.vue';
27
25
 
28
26
  import ButtonToggleMembership from './components/elements/ButtonToggleMembership.vue';
29
27
 
30
28
  // Import Vuex store modules
31
- import * as invitesStore from './store/invites.js';
29
+
32
30
  import * as departmentsStore from './store/departments.js';
33
31
  import * as membershipsStore from './store/memberships.js';
34
32
  import * as organizationStore from './store/organizations.js';
@@ -55,14 +53,11 @@ EmptyState,
55
53
  Contacts,
56
54
  Socials,
57
55
  MembersAdd,
58
- FeedDepartments,
59
56
  DetailsTab,
60
57
  OrganizationsSection,
61
58
  Publics,
62
59
  Documents,
63
- MembersList,
64
60
  ButtonToggleMembership,
65
- invitesStore,
66
61
  departmentsStore,
67
62
  membershipsStore,
68
63
  organizationStore,
@@ -37,58 +37,62 @@ const state = reactive({
37
37
  // Methods
38
38
  const actions = {
39
39
  async readOne(departmentID) {
40
- await $axios
41
- .get(`/api/departments/get/${departmentID}`)
42
- .then(response => {
43
- state.department = response.data;
44
- state.error = null;
45
- })
46
- .catch(error => {
47
- setError(error)
48
- });
40
+ try {
41
+ const response = await $axios.get(`/api/departments/get/${departmentID}`);
42
+ state.department = response.data;
43
+ state.error = null;
44
+ return response.data; // Return the response data
45
+ } catch (error) {
46
+ setError(error);
47
+ return null; // Return null or appropriate error response
48
+ }
49
49
  },
50
+
50
51
  async read(organizationId) {
51
- await $axios
52
- .get(`/api/departments/${organizationId}`)
53
- .then(response => {
54
- console.log('Response:', response);
55
- state.departments = response.data;
56
- state.error = null;
57
- })
58
- .catch(error => {
59
- setError(error)
60
- });
52
+ try {
53
+ const response = await $axios.get(`/api/departments/${organizationId}`);
54
+ console.log('Response:', response);
55
+ state.departments = response.data;
56
+ state.error = null;
57
+ return response.data; // Return the response data
58
+ } catch (error) {
59
+ setError(error);
60
+ return null; // Return null or appropriate error response
61
+ }
61
62
  },
63
+
62
64
  async create(organizationId, department) {
63
- await $axios
64
- .post(`/api/departments/${organizationId}/create`, department)
65
- .then(response => {
66
- state.error = null;
67
- state.department = response.data;
68
- })
69
- .catch(error => {
70
- setError(error)
71
- });
65
+ try {
66
+ const response = await $axios.post(`/api/departments/${organizationId}/create`, department);
67
+ state.error = null;
68
+ state.department = response.data;
69
+ return response.data; // Return the response data
70
+ } catch (error) {
71
+ setError(error);
72
+ return null; // Return null or appropriate error response
73
+ }
72
74
  },
75
+
73
76
  async update(organizationId, department) {
74
- await $axios
75
- .post(`/api/departments/${organizationId}/update`, department)
76
- .then(() => {
77
- state.error = null;
78
- })
79
- .catch(error => {
80
- setError(error)
81
- });
77
+ try {
78
+ const response = await $axios.post(`/api/departments/${organizationId}/update`, department);
79
+ state.error = null;
80
+ return response; // Return the response for update operations, might not have body data
81
+ } catch (error) {
82
+ setError(error);
83
+ return null; // Return null or appropriate error response
84
+ }
82
85
  },
86
+
83
87
  async delete(organizationId, departmentId) {
84
- await $axios
85
- .delete(`/api/departments/${organizationId}/delete`, { data: { _id: departmentId } })
86
- .then(() => {
87
- state.error = null;
88
- })
89
- .catch(error => {
90
- setError(error)
91
- });
88
+ try {
89
+ await $axios.delete(`/api/departments/${organizationId}/delete`, { data: { _id: departmentId } });
90
+ state.error = null;
91
+ return true; // Return true to indicate successful deletion
92
+ } catch (error) {
93
+ setError(error);
94
+ return false; // Return false or appropriate error response
95
+ }
92
96
  },
93
97
  };
94
98
 
@@ -21,9 +21,17 @@ const state = reactive({
21
21
 
22
22
  // Methods
23
23
  const actions = {
24
- async read({ user, type, target, role }) {
24
+ async read(options = {}) {
25
+
26
+ let params = {}
27
+
28
+ if (options._id) params._id = options._id;
29
+ if (options.user) params.user = options.user;
30
+ if (options.target) params.target = options.target;
31
+ if (options.roles) params.roles = options.roles;
32
+
25
33
  try {
26
- const response = await $axios.get(`/api/memberships`, { params: { user, type, target, role } });
34
+ const response = await $axios.get(`/api/memberships`, { params: params });
27
35
  state.error = null;
28
36
  state.memberships = response.data;
29
37
  return Promise.resolve(response.data);
@@ -54,7 +62,7 @@ const actions = {
54
62
  },
55
63
  async delete(membership) {
56
64
  try {
57
- const response = await $axios.post(`/api/memberships/delete`, membership);
65
+ const response = await $axios.post(`/api/memberships/delete`, {_id: membership});
58
66
  state.error = null;
59
67
  return Promise.resolve(response.data);
60
68
  } catch (error) {
@@ -7,7 +7,7 @@
7
7
  :multiple="false"
8
8
  :taggable="false"
9
9
  placeholder="Select a product"
10
- class="bg-white h-100 pd-small radius-small"
10
+ class="bg-white pd-small radius-small"
11
11
  />
12
12
  <Field
13
13
  v-model:field="productPrice"
@@ -29,7 +29,7 @@
29
29
  'g',
30
30
  'ml'
31
31
  ]"
32
- class="h-100 bg-grey pd-thin radius-thin"
32
+ class="bg-grey pd-thin radius-thin"
33
33
  />
34
34
 
35
35
  </Field>
@@ -1,7 +1,12 @@
1
1
  <template>
2
2
  <div class="flex flex-column w-100 o-hidden gap-thin pd-thin">
3
3
  <!-- <Breadcrumbs class="bg-grey radius-big pd-small"/> -->
4
- <!-- {{product.quantity}} -->
4
+ {{product.quantity}}
5
+ <div v-if="product.ingredients">
6
+ {{product?.ingredients[0]?._id}}
7
+ {{product?.ingredients[0]?.quantity}}
8
+ {{product?.ingredients[1]?.quantity}}
9
+ </div>
5
10
  <SectionProduct v-if="product" :product="product" :user="auth.state.user" class="pos-relative"/>
6
11
 
7
12
  <PopularProducts />