@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
@@ -163,44 +163,51 @@
163
163
  :product="products.state.current"
164
164
  /> -->
165
165
 
166
- <Block
167
- title="Add Ingridient"
168
- class="mn-b-semi"
169
- >
166
+ <Popup
167
+ title="Add ingredient"
168
+ @close-popup="closeIngredientPopup"
169
+ :isPopupOpen="isOpenIngredientPopup"
170
+ class="bg-white pd-big radius-big"
171
+ >
170
172
  <CardPosition
171
173
  @add="(item) => globals.actions.add(
172
- products.state.current.ingridients,
174
+ products.state.current.ingredients,
173
175
  item
174
176
  )"
175
177
  :products="Products"
178
+ class="flex-column"
176
179
  />
180
+ </Popup>
177
181
 
178
- <Block
179
- placeholder="No positions added yet"
180
- class="pd-zero mn-b-semi"
181
- >
182
+ <Block
183
+ title="Ingredients"
184
+ placeholder="No positions added yet"
185
+ :actions="[{
186
+ label: '+',
187
+ function: () => openIngredientPopup()
188
+ }]"
189
+ >
190
+ <div class="cols-1 gap-thin">
182
191
  <CardPosition
183
- v-for="(product, index) in products.state.current.ingridients"
192
+ v-for="(product, index) in products.state.current.ingredients"
184
193
  :key="product._id"
185
194
  :product="product"
186
- :array="products.state.current.ingridients"
195
+ :array="products.state.current.ingredients"
187
196
  :products="Products"
188
- @add="(item) => globals.actions.add(
189
- products.state.current.ingridients,
190
- item
191
- )"
192
- @update="(item) => globals.actions.update(
193
- products.state.current.ingridients,
194
- item,
195
- index
196
- )"
197
- @delete="(item) => globals.actions.delete(
198
- products.state.current.ingridients,
199
- item,
200
- index
201
- )"
197
+ @add="(item) => {
198
+ globals.actions.add(products.state.current.ingredients, item);
199
+ closeIngredientPopup();
200
+ }"
201
+ @update="(item) => {
202
+ globals.actions.update(products.state.current.ingredients, item, index);
203
+ closeIngredientPopup();
204
+ }"
205
+ @delete="(item) => {
206
+ globals.actions.delete(products.state.current.ingredients, item, index);
207
+ closeIngredientPopup();
208
+ }"
202
209
  />
203
- </Block>
210
+ </div>
204
211
  </Block>
205
212
 
206
213
  </div>
@@ -221,6 +228,7 @@
221
228
  import Checkbox from "@pf/src/components/Checkbox/Checkbox.vue";
222
229
  import Button from "@pf/src/components/Button/Button.vue";
223
230
  import Popup from "@pf/src/components/Popup/Popup.vue";
231
+
224
232
  import EditImages from '@pf/src/components/EditImages/EditImages.vue';
225
233
 
226
234
  import IconDelete from '@pf/src/modules/icons/navigation/IconDelete.vue';
@@ -240,6 +248,18 @@
240
248
  const router = useRouter()
241
249
 
242
250
  const Products = ref(products.state.all);
251
+ const isOpenIngredientPopup = ref(false);
252
+
253
+
254
+ function openIngredientPopup(member) {
255
+ isOpenIngredientPopup.value = true;
256
+ // if (typeof member === "number") selectedMember.value = member;
257
+ }
258
+
259
+ function closeIngredientPopup() {
260
+ isOpenIngredientPopup.value = false;
261
+ // selectedMember.value = null;
262
+ }
243
263
 
244
264
  onMounted(async() => {
245
265
 
@@ -263,8 +283,8 @@
263
283
  // await commit('products/clearProductState')
264
284
  }
265
285
 
266
- if (!products.state.current.ingridients) {
267
- products.state.current.ingridients = []
286
+ if (!products.state.current.ingredients) {
287
+ products.state.current.ingredients = []
268
288
  }
269
289
 
270
290
  })
@@ -119,7 +119,7 @@ const controllerFactory = (db) => {
119
119
  const Update = async (req, res) => {
120
120
  try {
121
121
  const { _id } = req.params;
122
- console.log(_id);
122
+ console.log(req.body.ingredients);
123
123
 
124
124
  const updatedProduct = await Product.findOneAndUpdate(
125
125
  { _id },
@@ -134,7 +134,8 @@ const controllerFactory = (db) => {
134
134
  information: req.body.information,
135
135
  localization: req.body.localization,
136
136
  quantity: req.body.quantity,
137
- quantityDiscount: req.body.quantityDiscount
137
+ quantityDiscount: req.body.quantityDiscount,
138
+ ingredients: req.body.ingredients
138
139
  },
139
140
  { new: true }
140
141
  );
@@ -213,18 +214,18 @@ const controllerFactory = (db) => {
213
214
  "withIngredients": [
214
215
  {
215
216
  $match: {
216
- ingridients: { $exists: true, $not: {$size: 0} } // Продукты с ингредиентами
217
+ ingredients: { $exists: true, $not: {$size: 0} } // Продукты с ингредиентами
217
218
  }
218
219
  },
219
220
  {
220
221
  $lookup: {
221
222
  from: "products",
222
- localField: "ingridients",
223
+ localField: "ingredients",
223
224
  foreignField: "_id",
224
225
  as: "ingredientDetails"
225
226
  }
226
227
  },
227
- { $unwind: "$ingredientDetails" },
228
+ // { $unwind: "$ingredientDetails" },
228
229
  {
229
230
  $lookup: {
230
231
  from: "leftovers",
@@ -259,8 +260,8 @@ const controllerFactory = (db) => {
259
260
  {
260
261
  $match: {
261
262
  $or: [
262
- { ingridients: { $exists: false } }, // Продукты без ингредиентов
263
- { ingridients: { $size: 0 } }
263
+ { ingredients: { $exists: false } }, // Продукты без ингредиентов
264
+ { ingredients: { $size: 0 } }
264
265
  ]
265
266
  }
266
267
  },
@@ -403,22 +404,29 @@ const controllerFactory = (db) => {
403
404
  // Get product
404
405
  const getProduct = async (req, res) => {
405
406
  try {
406
- const product = await Product.aggregate([
407
- {
408
- $match: { "_id": new ObjectId(req.params._id) }
407
+ const product = await Product.aggregate([
408
+ {
409
+ $match: { "_id": new ObjectId(req.params._id) }
409
410
  },
410
411
  {
411
412
  $lookup: {
412
413
  from: "leftovers",
413
- let: { productId: "$_id", ingredients: { $ifNull: ["$ingredients", []] } },
414
+ let: { productId: "$_id", ingredientsIds: "$ingredients._id" },
414
415
  pipeline: [
415
416
  {
416
417
  $unwind: "$positions"
417
418
  },
418
- {
419
- "$match": { "$expr": { "$eq": ["$positions._id", "$$productId"] }}
419
+ {
420
+ $match: {
421
+ $expr: {
422
+ $or: [
423
+ { $eq: ["$positions._id", "$$productId"] },
424
+ { $in: ["$positions._id", { $ifNull: ["$$ingredientsIds", []] }] } // Исправлено
425
+ ]
426
+ }
427
+ }
420
428
  },
421
- {
429
+ {
422
430
  "$addFields": {
423
431
  "positions.quantity": {
424
432
  $cond: {
@@ -429,7 +437,7 @@ const controllerFactory = (db) => {
429
437
  }
430
438
  }
431
439
  },
432
- {
440
+ {
433
441
  "$project": {
434
442
  _id: "$positions._id",
435
443
  quantity: "$positions.quantity",
@@ -437,19 +445,74 @@ const controllerFactory = (db) => {
437
445
  }
438
446
  }
439
447
  ],
440
- as: "variants"
448
+ as: "leftovers"
449
+ }
450
+ },
451
+ {
452
+ $addFields: {
453
+ ingredientsQuantities: {
454
+ $cond: {
455
+ if: { $isArray: "$ingredients" },
456
+ then: {
457
+ $map: {
458
+ input: "$ingredients",
459
+ as: "ingredient",
460
+ in: {
461
+ $let: {
462
+ vars: {
463
+ ingredientId: "$$ingredient._id",
464
+ ingredientQuantity: { $ifNull: ["$$ingredient.quantity", 0] }
465
+ },
466
+ in: {
467
+ $divide: [
468
+ {
469
+ $sum: {
470
+ $map: {
471
+ input: "$leftovers",
472
+ as: "leftover",
473
+ in: {
474
+ $cond: {
475
+ if: { $eq: ["$$leftover._id", "$$ingredientId"] },
476
+ then: "$$leftover.quantity",
477
+ else: 0
478
+ }
479
+ }
480
+ }
481
+ }
482
+ },
483
+ {
484
+ $cond: {
485
+ if: { $eq: ["$$ingredientQuantity", 0] },
486
+ then: 1,
487
+ else: "$$ingredientQuantity"
488
+ }
489
+ }
490
+ ]
491
+ }
492
+ }
493
+ }
494
+ }
495
+ },
496
+ else: []
497
+ }
498
+ }
441
499
  }
442
500
  },
443
- {
444
- $set: {
501
+ {
502
+ $set: {
445
503
  quantity: {
446
- $sum: ["$quantity", {$sum: "$variants.quantity"}]
447
- }
448
- }
504
+ $cond: {
505
+ if: { $gt: [{ $size: { $ifNull: ["$ingredients", []] } }, 0] }, // Снова проверяем, не пустой ли массив ингредиентов
506
+ then: { $floor: { $min: "$ingredientsQuantities" } },
507
+ else: { $sum: "$leftovers.quantity" } // Просто суммируем quantity из leftovers, если ингредиентов нет
508
+ }
509
+ }
510
+ }
449
511
  },
512
+ { $unset: ["leftovers", "ingredientsQuantities"] }
513
+ ]);
450
514
 
451
- { $unset: "variants" }
452
- ]);
515
+ console.log(product)
453
516
 
454
517
  if (!product || product.length < 1) {
455
518
  return res.status(404).send({ message: "Product not found." });
@@ -461,7 +524,7 @@ const controllerFactory = (db) => {
461
524
  { new: true }
462
525
  );
463
526
 
464
- console.log('Popularity updated:', updatedProduct);
527
+ // console.log('Popularity updated:', updatedProduct);
465
528
 
466
529
  res.status(200).send(product);
467
530
  } catch (err) {
@@ -18,7 +18,22 @@ module.exports = (mongoose) => {
18
18
  images: {type: Array},
19
19
  popularity: {type: Number},
20
20
  localization: {type: Array},
21
- ingredients: {type: Array},
21
+ ingredients: [{
22
+ _id: {
23
+ type: mongoose.Schema.Types.ObjectId,
24
+ ref: 'Product',
25
+ },
26
+ price: {
27
+ type: Number,
28
+ required: true,
29
+ min: [0, 'Price cannot be less than 0']
30
+ },
31
+ quantity: {
32
+ type: Number,
33
+ required: true,
34
+ min: [1, 'Quantity cannot be less than 1']
35
+ },
36
+ }],
22
37
  information: [{
23
38
  name: {type: String},
24
39
  value: {type: String}
@@ -26,7 +26,7 @@ const state = reactive({
26
26
  localization: [],
27
27
  modifications: [],
28
28
  quantityDiscount: [],
29
- ingridients: [],
29
+ ingredients: [],
30
30
  description: ''
31
31
  }
32
32
  });
@@ -22,20 +22,49 @@
22
22
  />
23
23
 
24
24
  <transition name="slide-fade">
25
- <Feed
25
+ <Feed
26
26
  v-if="tabOrganization === 'member'"
27
- :user="auth.state.user._id"
28
- :owner="route.params._id"
29
- />
27
+ :states="{
28
+ empty: {
29
+ title: 'No Organization Found',
30
+ description: 'Currently, there are no organization available.'
31
+ }
32
+ }"
33
+ :store="{
34
+ read: (options) => organizations.actions.read(options),
35
+ state: organizations.state
36
+ }"
37
+ :options="{
38
+ user: auth.state.user._id,
39
+ member: auth.state.user._id,
40
+ limit: 10
41
+ }"
42
+ v-slot="{
43
+ items
44
+ }"
45
+ >
46
+ <CardOrganization
47
+ v-for="organization in items"
48
+ :key="organization._id"
49
+ :organization="organization"
50
+ :user="auth.state.user"
51
+ :showProducts="false"
52
+ :showRating="false"
53
+ :showFeatured="false"
54
+ :showFollowers="false"
55
+ @updateMembership="handleMembershipUpdate"
56
+ class="mn-b-thin w-100 pd-0 bg-white radius-big o-hidden"
57
+ />
58
+ </Feed>
30
59
  </transition>
31
60
 
32
- <transition name="slide-fade">
61
+ <!-- <transition name="slide-fade">
33
62
  <Feed
34
63
  v-if="tabOrganization === 'follower'"
35
64
  :user="auth.state.user._id"
36
65
  :subscriber="route.params._id"
37
66
  />
38
- </transition>
67
+ </transition> -->
39
68
  </div>
40
69
  </template>
41
70
 
@@ -44,9 +73,14 @@
44
73
  import { useRoute, useRouter } from 'vue-router'
45
74
  // Components
46
75
  import Tab from '@pf/src/components/Tab/Tab.vue'
47
- import Feed from '@pf/src/modules/organizations/components/sections/Feed.vue';
76
+ import Feed from '@pf/src/components/Feed/Feed.vue'
77
+
78
+ import CardOrganization from '@pf/src/modules/organizations/components/blocks/CardOrganization.vue'
79
+
80
+ // import Feed from '@pf/src/modules/organizations/components/sections/Feed.vue';
48
81
 
49
82
  import * as auth from '@pf/src/modules/auth/store/auth';
83
+ import * as organizations from '@pf/src/modules/organizations/store/organizations'
50
84
  // Accessing router
51
85
  const route = useRoute()
52
86
  const router = useRouter()
@@ -1,64 +0,0 @@
1
- <template>
2
- <transition name="slide-fade">
3
- <div>
4
- <EmptyState
5
- v-if="FirstLevelDepartments.length < 1"
6
- title="You don't have any spots yet."
7
- description="Add spots to your hub."
8
- action="Add spot"
9
- :callback="() => $router.push(`/organizations/${props.organization._id}/departments/create`)"
10
- />
11
-
12
- <div>
13
- <CardDepartment
14
- v-for="(department, index) in FirstLevelDepartments"
15
- :key="index"
16
- :department="department"
17
- :organization="organization"
18
- class="radius-big bg-grey mn-b-thin"
19
- />
20
- <button
21
- v-if="FirstLevelDepartments.length > 0 && auth.state.user._id === organization.owner"
22
- @click="$router.push(`/organizations/${props.organization._id}/departments/create`)"
23
- class="mn-b-thin button w-100"
24
- >
25
- Add spot
26
- </button>
27
- </div>
28
- </div>
29
- </transition>
30
- </template>
31
-
32
- <script setup>
33
- import { ref, computed } from 'vue';
34
- import Tab from '@pf/src/components/Tab/Tab.vue';
35
- import EmptyState from '@pf/src/modules/organizations/components/blocks/EmptyState.vue';
36
- import CardDepartment from '@pf/src/modules/organizations/components/blocks/CardDepartment.vue';
37
- import { state as departmentState, actions as departmentActions } from '@pf/src/modules/organizations/store/departments';
38
- import * as auth from '@pf/src/modules/auth/store/auth'
39
-
40
- const props = defineProps({
41
- organization: Object,
42
- units: Array,
43
- memberships: Array
44
- });
45
-
46
- const tabStructure = ref('departments');
47
-
48
- await departmentActions.read(props.organization._id);
49
-
50
- const FirstLevelDepartments = computed(() => {
51
- const departments = departmentState.departments;
52
-
53
- const subdepartmentIds = departments.flatMap(department =>
54
- department.subdepartments.map(subdepartment => subdepartment._id)
55
- );
56
-
57
- return departments.filter(department =>
58
- !subdepartmentIds.includes(department._id)
59
- );
60
- });
61
- </script>
62
-
63
- <style scoped>
64
- </style>
@@ -1,85 +0,0 @@
1
- <template>
2
- <section class="mn-b-big radius-medium bg-white">
3
- <Tab
4
- v-model:selected="tabMemberships"
5
- class="br-grey br-b br-solid radius-small"
6
- :tabs="[
7
- { name: 'Участники', value: 'members' },
8
- { name: 'Приглашения', value: 'invites' },
9
- ]"
10
- />
11
- <!-- Members -->
12
- <div
13
- v-if="tabMemberships === 'members'"
14
- class="pd-semi"
15
- >
16
- <div
17
- v-for="(member, index) in memberships"
18
- class="br-grey br-1px br-solid radius-small flex-nowrap flex-v-center flex pd-medium"
19
- >
20
- <span class="w-100 mn-r-small">{{member.user.email}} {{member.user.phone}}</span>
21
- <span class="t-transp">{{member.position}}</span>
22
-
23
- <div v-if="member.position !== 'Основатель'" class="mn-l-medium flex-v-center flex">
24
- <button @click="removeMember(index,member)" class="button-small button">×</button>
25
- </div>
26
-
27
- </div>
28
- </div>
29
- <!-- Invites -->
30
- <div
31
- v-if="tabMemberships === 'invites'"
32
- class="pd-semi"
33
- >
34
- <span v-if="invites.length < 1">В организации нет приглашений</span>
35
- <div
36
- v-for="(invite, index) in invites"
37
- class="br-grey br-1px br-solid radius-small mn-b-thin flex-nowrap flex-v-center flex pd-medium"
38
- >
39
-
40
- <span class="w-100 mn-r-small">{{invite.invitedEmail}} {{invite.invitedPhone}}</span>
41
- <span class="t-transp">{{invite.status}}</span>
42
-
43
- <div class="mn-l-medium flex-v-center flex">
44
- <button @click="removeInvite(index,invite)" class="button-small button">×</button>
45
- </div>
46
-
47
- </div>
48
- </div>
49
-
50
-
51
- </section>
52
- </template>
53
-
54
- <script setup>
55
- import { ref } from "vue";
56
- // Import components
57
- // Global
58
- import Tab from '@pf/src/components/Tab/Tab.vue'
59
- // Define props
60
- const props = defineProps({
61
- organization: Object,
62
- memberships: Array,
63
- invites: Array,
64
- });
65
-
66
- const emits = defineEmits([['removeMember','removeInvite']])
67
- // Define emits
68
-
69
- // Accesing state
70
- const tabMemberships = ref('members')
71
-
72
- function removeMember(index,member) {
73
- props.memberships.splice(index, 1);
74
- emits('removeMember', member)
75
- }
76
-
77
- function removeInvite(index,invite) {
78
- props.invites.splice(index, 1);
79
- emits('removeInvite', invite)
80
- }
81
-
82
-
83
-
84
-
85
- </script>
@@ -1,93 +0,0 @@
1
- // Dependencies
2
- import axios from 'axios';
3
- import Cookies from 'js-cookie'
4
- // Vue modules
5
- import { reactive, watch } from "vue";
6
- // Globals
7
- import { setError } from '@pf/src/modules/globals/store/globals'
8
- // State
9
- import * as auth from '@pf/src/modules/auth/store/auth'
10
- // Setup Axios
11
- const $axios = axios.create({baseURL: process.env.API_URL, withCredentials: true})
12
- // Setup Cookies
13
- $axios.defaults.withCredentials = true
14
- // State
15
- const state = reactive({
16
- invites: [],
17
- invite: null,
18
- error: null,
19
- });
20
- // Methods
21
- const actions = {
22
- async read(organizationId) {
23
- await $axios
24
- .get(`/api/invites/${organizationId}`)
25
- .then(response => {
26
- state.invites = response.data;
27
- state.error = null;
28
- })
29
- .catch(error => {
30
- setError(error)
31
- });
32
- },
33
- async readOne(inviteId) {
34
-
35
- await $axios
36
- .get(`/api/invites/get/${inviteId}`) // Измените URL, чтобы использовать inviteId
37
- .then(response => {
38
- state.invite = response.data; // Используйте отдельное свойство для хранения одного инвайта
39
-
40
- auth.state.user.phone = response.data.invitedPhone
41
- auth.state.user.email = response.data.invitedEmail
42
-
43
- })
44
- .catch(error => {
45
- setError(error);
46
- });
47
- },
48
- async create(organizationId, invite) {
49
- await $axios
50
- .post(`/api/invites/${organizationId}/create`, invite)
51
- .then(() => {
52
- state.error = null;
53
- })
54
- .catch(error => {
55
- setError(error)
56
- });
57
- },
58
- async update(organizationId, membership) {
59
- await $axios
60
- .put(`/api/invites/${organizationId}/update`, membership)
61
- .then(() => {
62
- state.error = null;
63
- })
64
- .catch(error => {
65
- setError(error)
66
- });
67
- },
68
- async delete(inviteID) {
69
- await $axios
70
- .delete(`/api/invites/${inviteID}/delete`)
71
- .then(() => {
72
- state.error = null;
73
- })
74
- .catch(error => {
75
- setError(error)
76
- });
77
- },
78
- };
79
-
80
- // // History
81
- const history = []
82
- history.push(state)
83
-
84
- // // Watch
85
- watch(state, (newState, oldState) => {
86
- history.push(newState)
87
- })
88
-
89
- // Module Export
90
- export {
91
- state,
92
- actions,
93
- }