@ozdao/martyrs 0.2.428 → 0.2.430
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.
- package/dist/community.server.js +1 -1
- package/dist/community.server.mjs +1 -1
- package/dist/events.server.js +1 -1
- package/dist/events.server.mjs +1 -1
- package/dist/gallery.server.js +1 -1
- package/dist/gallery.server.mjs +1 -1
- package/dist/{globals.logger-Deb_8o7C.mjs → globals.cache-BT6q3vOf.mjs} +0 -33
- package/dist/{globals.logger-BuG0pN80.js → globals.cache-CwWvNGFQ.js} +0 -33
- package/dist/globals.logger-BdjooLaD.js +34 -0
- package/dist/globals.logger-DusiFsxN.mjs +35 -0
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs +13 -3
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js +14 -4
- package/dist/martyrs/src/modules/chats/components/pages/ChatPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +24 -6
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +25 -7
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +7 -8
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +7 -8
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +6 -8
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js +6 -8
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +11 -8
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +11 -8
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +5 -5
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +5 -5
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +17 -9
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +17 -9
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -4
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +16 -4
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs +7 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js +7 -1
- package/dist/martyrs/src/modules/notifications/components/elements/NotificationBadge.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +112 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +112 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -0
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderItem.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +18 -12
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js +18 -12
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +200 -92
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +213 -105
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +9 -12
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +10 -13
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +14 -6
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +23 -15
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +16 -99
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +16 -99
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +99 -99
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +102 -102
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +14 -8
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +15 -9
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.cjs +51 -0
- package/dist/martyrs/src/modules/orders/store/orders.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/store/orders.js +51 -0
- package/dist/martyrs/src/modules/orders/store/orders.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +59 -56
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +63 -60
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/organizations.cjs +0 -2
- package/dist/martyrs/src/modules/organizations/store/organizations.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/organizations.js +1 -3
- package/dist/martyrs/src/modules/organizations/store/organizations.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +4 -3
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +5 -4
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +15 -12
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +15 -12
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.cjs +2 -2
- package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.js +2 -2
- package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/orders.server.js +11 -4
- package/dist/orders.server.mjs +10 -3
- package/dist/organizations.server.js +33 -30
- package/dist/organizations.server.mjs +33 -30
- package/dist/products.server.js +1 -1
- package/dist/products.server.mjs +1 -1
- package/dist/{queryProcessor-CCmHM0yi.mjs → queryProcessor-CWnMIe2U.mjs} +4 -1
- package/dist/{queryProcessor-CwQakZkT.js → queryProcessor-D6GuKfTV.js} +4 -1
- package/dist/rents.server.js +4 -3
- package/dist/rents.server.mjs +3 -2
- package/dist/spots.server.js +41 -12
- package/dist/spots.server.mjs +41 -12
- package/dist/style.css +57 -65
- package/dist/wallet.server.js +1 -1
- package/dist/wallet.server.mjs +1 -1
- package/package.json +1 -1
- package/src/modules/chats/components/pages/ChatPage.vue +18 -23
- package/src/modules/chats/components/sections/ChatWindow.vue +55 -38
- package/src/modules/chats/store/chat.store.js +20 -21
- package/src/modules/globals/controllers/utils/queryProcessor.js +2 -1
- package/src/modules/globals/views/classes/globals.websocket.js +10 -11
- package/src/modules/globals/views/components/layouts/Client.vue +21 -15
- package/src/modules/globals/views/components/partials/Header.vue +3 -4
- package/src/modules/globals/views/components/partials/Navigation.vue +17 -19
- package/src/modules/globals/views/components/partials/Sidebar.vue +20 -9
- package/src/modules/marketplace/views/components/sections/SectionMenu.vue +1 -1
- package/src/modules/notifications/components/elements/NotificationBadge.vue +7 -0
- package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +106 -0
- package/src/modules/orders/components/blocks/CardOrderItem.vue +2 -2
- package/src/modules/orders/components/blocks/CardOrderUser.vue +16 -9
- package/src/modules/orders/components/pages/OrderBackoffice.vue +146 -77
- package/src/modules/orders/components/pages/OrderCreate.vue +7 -12
- package/src/modules/orders/components/pages/OrderCreateBackoffice.vue +15 -3
- package/src/modules/orders/components/pages/Orders.vue +10 -93
- package/src/modules/orders/components/partials/ShopCart.vue +2 -2
- package/src/modules/orders/components/sections/FormDelivery.vue +35 -43
- package/src/modules/orders/components/sections/FormPayment.vue +17 -7
- package/src/modules/orders/controllers/orders.controller.js +12 -1
- package/src/modules/orders/store/orders.js +65 -0
- package/src/modules/organizations/components/pages/Organization.vue +48 -47
- package/src/modules/organizations/controllers/organizations.controller.js +57 -47
- package/src/modules/organizations/store/organizations.js +6 -6
- package/src/modules/products/components/pages/Products.vue +4 -3
- package/src/modules/spots/components/blocks/CardSpot.vue +8 -7
- package/src/modules/spots/controllers/spots.controller.js +47 -14
- package/src/modules/spots/routes/spots.routes.js +2 -3
- package/src/modules/spots/store/spots.js +4 -4
- package/src/styles/base/shadow_transitions_hover_refactor.scss +1 -0
- package/src/modules/landing/components/sections/HowToBuyWDR.vue +0 -130
- package/src/modules/landing/components/sections/WhatIsWDRSection.vue +0 -116
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Organization.vue.js","sources":["../../../../../../../src/modules/organizations/components/pages/Organization.vue"],"sourcesContent":["<template>\n\t<div v-if=\"organizationData\" class=\"pd-thin for-transition w-100\">\n\n\t\t<!-- <Breadcrumbs class=\"mn-b-thin pd-medium bg-light radius-big\"/> -->\n\t\t<!-- <pre>{{organization.state.current}}</pre> -->\n\n\t\t<DetailsTabSection \t\n\t\t\t:organization=\"organization.state.current\" \n\t\t\t:user=\"auth.state.user\"\n\t\t\tclass=\"mn-b-thin\"\n\t\t>\n\n\t\t</DetailsTabSection>\n\n\t\t<Tab \n\t\t\tv-model:selected=\"tabOrganization\"\n\t\t\t:tabs=\"[\n\t\t\t\t{ name: 'Community', value: 'community' },\n\t\t\t\t{ name: 'Menu', value: 'products' },\t\n\t\t\t\t{ name: 'Events', value: 'events' },\n\t\t\t\t{ name: 'Spots', value: 'spots' }\t\n\t\t\t]\"\n\t\t\tclass=\"mn-b-thin flex-child-default o-hidden t-medium p-medium radius-medium pd-thin bg-light\"\n\t\t/>\n\n\t\t<div class=\"h-100 pos-relative\">\n\n\t\t\t<transition name=\"slide-fade\">\n\t\t <Feed\n\t\t \tv-if=\"tabOrganization === 'community'\"\n\t\t\t :showLoadMore=\"false\"\n\t\t\t :states=\"{\n\t\t\t empty: {\n\t\t\t title: 'No Blog Posts Found',\n\t\t\t description: 'Currently, there are no posts available in this blog. Please check back later.'\n\t\t\t }\n\t\t\t }\"\n\t\t\t :store=\"{\n\t\t\t read: (options) => blog.read(options)\n\t\t\t }\"\n\t\t\t :options=\"{\n\t\t\t status: 'published',\n\t\t\t user: auth.state.user._id,\n\t\t\t owner: route.params._id,\n\t\t\t }\"\n\t\t\t v-slot=\"{ \n\t\t\t items \n\t\t\t }\"\n\t\t\t class=\"row-1 gap-thin\"\n\t\t\t >\n\t\t\t <CardBlogpost \n\t\t\t v-for=\"item in items\" \n\t\t\t :key=\"item._id\" \n\t\t\t :blogpost=\"item\" \n\t\t\t :user=\"auth.state.user._id\" \n\t\t\t class=\"h-max-40r mn-b-medium\"\n\t\t\t />\n\t\t\t </Feed>\n\t\t\t</transition>\n\n\t\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<FeedEvents \n\t\t\t\t\tv-if=\"tabOrganization === 'events'\"\n\t\t\t \t:user=\"auth.state.user._id\"\n\t\t\t\t\t:owner=\"route.params._id\"\n\t\t\t\t\t:sortOrder=\"'desc'\"\n\t\t\t\t\t:sortParam=\"'date.start'\"\n\t\t\t\t/>\n\t\t\t</transition>\n\n\t\t\t<
|
|
1
|
+
{"version":3,"file":"Organization.vue.js","sources":["../../../../../../../src/modules/organizations/components/pages/Organization.vue"],"sourcesContent":["<template>\n\t<div v-if=\"organizationData\" class=\"pd-thin for-transition w-100\">\n\n\t\t<!-- <Breadcrumbs class=\"mn-b-thin pd-medium bg-light radius-big\"/> -->\n\t\t<!-- <pre>{{organization.state.current}}</pre> -->\n\n\t\t<DetailsTabSection \t\n\t\t\t:organization=\"organization.state.current\" \n\t\t\t:user=\"auth.state.user\"\n\t\t\tclass=\"mn-b-thin\"\n\t\t>\n\n\t\t</DetailsTabSection>\n\n\t\t<Tab \n\t\t\tv-model:selected=\"tabOrganization\"\n\t\t\t:tabs=\"[\n\t\t\t\t{ name: 'Community', value: 'community' },\n\t\t\t\t{ name: 'Menu', value: 'products' },\t\n\t\t\t\t{ name: 'Events', value: 'events' },\n\t\t\t\t{ name: 'Spots', value: 'spots' }\t\n\t\t\t]\"\n\t\t\tclass=\"mn-b-thin flex-child-default o-hidden t-medium p-medium radius-medium pd-thin bg-light\"\n\t\t/>\n\n\t\t<div class=\"h-100 pos-relative\">\n\n\t\t\t<transition name=\"slide-fade\">\n\t\t <Feed\n\t\t \tv-if=\"tabOrganization === 'community'\"\n\t\t\t :showLoadMore=\"false\"\n\t\t\t :states=\"{\n\t\t\t empty: {\n\t\t\t title: 'No Blog Posts Found',\n\t\t\t description: 'Currently, there are no posts available in this blog. Please check back later.'\n\t\t\t }\n\t\t\t }\"\n\t\t\t :store=\"{\n\t\t\t read: (options) => blog.read(options)\n\t\t\t }\"\n\t\t\t :options=\"{\n\t\t\t status: 'published',\n\t\t\t user: auth.state.user._id,\n\t\t\t owner: route.params._id,\n\t\t\t }\"\n\t\t\t v-slot=\"{ \n\t\t\t items \n\t\t\t }\"\n\t\t\t class=\"row-1 gap-thin\"\n\t\t\t >\n\t\t\t <CardBlogpost \n\t\t\t v-for=\"item in items\" \n\t\t\t :key=\"item._id\" \n\t\t\t :blogpost=\"item\" \n\t\t\t :user=\"auth.state.user._id\" \n\t\t\t class=\"h-max-40r mn-b-medium\"\n\t\t\t />\n\t\t\t </Feed>\n\t\t\t</transition>\n\n\t\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<FeedEvents \n\t\t\t\t\tv-if=\"tabOrganization === 'events'\"\n\t\t\t \t:user=\"auth.state.user._id\"\n\t\t\t\t\t:owner=\"route.params._id\"\n\t\t\t\t\t:sortOrder=\"'desc'\"\n\t\t\t\t\t:sortParam=\"'date.start'\"\n\t\t\t\t/>\n\t\t\t</transition>\n\n\t\t\t\n\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<Products \n\t\t\t\t\tv-if=\"tabOrganization === 'products'\"\n\t\t\t\t\t:organization=\"organization.state.current\"\n\t\t\t\t>\n\t\t\t\t\t<Block\n\t\t\t\t\t\tv-if=\"hasAccess(route.params._id, null, null, auth.state.accesses, auth.state.access.roles)\"\n\t\t\t\t\t\tclass=\"o-y-scroll w-100 pos-relative mn-b-small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"w-100 gap-thin flex flex-nowrap\t o-x-scroll\">\n\t\t\t\t\t\t\t<router-link \n\t\t\t\t\t\t\t\tclass=\"bg-black t-nowrap t-white uppercase t-semi pd-thin radius-extra \"\n\t\t\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\t\t\tname:'Organization_ProductAdd', \n\t\t\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\t\t\t_id: route.params._id\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tAdd Product\n\t\t\t\t\t\t\t</router-link>\n\n\t\t\t\t\t\t\t<router-link \n\t\t\t\t\t\t\t\tclass=\" uppercase t-nowrap t-semi pd-thin radius-extra \"\n\t\t\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\t\t\tname:'Leftovers', \n\t\t\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\t\t\t_id: route.params._id\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tChange Invetory\n\t\t\t\t\t\t\t</router-link>\n\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<router-link \n\t\t\t\t\t\t\t\tclass=\"d-block t-nowrap mn-l-auto uppercase t-semi bg-white pd-thin radius-extra \"\n\t\t\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\t\t\tname:'Backoffice', \n\t\t\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\t\t\t_id: route.params._id\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tGo to Backoffice\n\t\t\t\t\t\t\t</router-link>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Block>\n\t\t\t\t</Products>\n\n\t\t\t</transition>\n\n\t\t\t<transition name=\"slide-fade\">\n\t\t\t\t<div v-if=\"tabOrganization === 'spots'\">\n\t\t\t\t\t<Feed\n\t\t\t :states=\"{\n\t\t\t empty: {\n\t\t\t title: 'No Spots Found',\n\t\t\t description: 'Currently, there are no spots available.'\n\t\t\t }\n\t\t\t }\"\n\t\t\t :store=\"{\n\t\t\t read: (options) => spots.actions.read(options),\n\t\t\t state: organization.state\n\t\t\t }\"\n\t\t\t :options=\"{\n\t\t\t \tuser: auth.state.user._id,\n\t\t\t\t\t\t\t\torganization: route.params._id,\n\t\t\t\t\t\t\t\tlimit: 10\n\t\t\t }\"\n\t\t\t v-slot=\"{ \n\t\t\t items \n\t\t\t }\"\n\t\t\t >\n\t\t\t \t<CardSpot\n\t\t v-for=\"(spot, index) in items\"\n\t\t :key=\"index\"\n\t\t :spot=\"spot\"\n\t\t :organization=\"organization.state.current\"\n\t\t :editAccess=\"hasAccess(route.params._id, 'spots', 'edit', auth.state.accesses, auth.state.access.roles)\"\n\t\t :showDeliveryOptions=\"true\"\n\t\t :showPaymentOptions=\"true\"\n\t\t class=\"radius-big bg-light mn-b-thin\"\n\t\t />\n\t\t\t </Feed>\n\n\t\t\t <button\n\t v-if=\"hasAccess(route.params._id, 'spots', 'create', auth.state.accesses, auth.state.access.roles)\"\n\t @click=\"$router.push(`/spots/${organization.state.current._id}/spots/create`)\"\n\t class=\"mn-b-thin bg-main button w-100\"\n\t >\n\t Add spot\n\t </button>\n\n\t\t\t\t</div>\n\t\t\t</transition>\n\n\t\t</div>\n\t</div>\n</template>\n\n<script setup>\n\timport { computed, reactive, ref, onMounted, watch } from 'vue'\n\timport { useRoute, useRouter } from 'vue-router'\n\t// Import components\n\timport Breadcrumbs \tfrom '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Tab \t\tfrom '@martyrs/src/components/Tab/Tab.vue'\n\timport Block \t\tfrom '@martyrs/src/components/Block/Block.vue'\n\timport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\t// Community\n\t import CardBlogpost from '@martyrs/src/modules/community/components/blocks/CardBlogpost.vue';\n\t// Mobile Module\n\timport Menu from '@martyrs/src/components/Menu/Menu.vue'\n\timport MenuItem from '@martyrs/src/components/Menu/MenuItem.vue'\n\t// Organizations\n\timport DepartmentSub from '@martyrs/src/modules/organizations/components/blocks/DepartmentSub.vue';\n\timport DetailsTabSection from '@martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue'\n\timport User from '@martyrs/src/modules/auth/views/components/blocks/CardUser.vue';\n\t// Feeds\n\timport FeedEvents from '@martyrs/src/modules/events/components/sections/Feed.vue'; \n\t// Spots\n\timport CardSpot from '@martyrs/src/modules/spots/components/blocks/CardSpot.vue';\t\n\t// Local\n\timport Products from '@martyrs/src/modules/products/components/pages/Products.vue';\n\t// Import state\n\timport * as auth from '@martyrs/src/modules/auth/views/store/auth';\n\timport * as organization from '@martyrs/src/modules/organizations/store/organizations';\n\timport * as memberships from '@martyrs/src/modules/organizations/store/memberships';\n\timport * as departments from '@martyrs/src/modules/organizations/store/departments';\n\t// Community\n import * as blog from '@martyrs/src/modules/community/store/blogposts.js';\n\t// Spots\n\timport * as spots from '@martyrs/src/modules/spots/store/spots';\n\t// Init router\n\tconst router \t= useRouter()\n\tconst route \t= useRoute()\n\t// Accesing state\n\tlet tab = route.query.tab ? route.query.tab : 'products';\n\n\tconst organizationData = ref(null)\n\n\tconst tabOrganization = ref(tab)\n\n\troute.query.tab = tabOrganization.value\n\n\tonMounted(async () => {\n\t\t\n\t\torganizationData.value = await organization.actions.read({\n\t\t\t_id: route.params._id, \n\t\t\tuser: auth.state.user._id,\n\t\t\tlookup: ['memberships']\n\t\t})\n\n \t\tawait memberships.actions.read({target: route.params._id})\n\t})\n\n\twatch(tabOrganization, (newValue) => {\n\t router.replace({ query: { ...route.query, tab: newValue } });\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t\tposition: absolute;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n</style>\n"],"names":["organization.actions","auth.state","memberships.actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+MC,UAAM,SAAU,UAAS;AACzB,UAAM,QAAS,SAAQ;AAEvB,QAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AAE9C,UAAM,mBAAmB,IAAI,IAAI;AAEjC,UAAM,kBAAkB,IAAI,GAAG;AAE/B,UAAM,MAAM,MAAM,gBAAgB;AAElC,cAAU,YAAY;AAErB,uBAAiB,QAAQ,MAAMA,QAAqB,KAAK;AAAA,QACxD,KAAK,MAAM,OAAO;AAAA,QAClB,MAAMC,MAAW,KAAK;AAAA,QACtB,QAAQ,CAAC,aAAa;AAAA,MACtB,CAAA;AAEA,YAAMC,UAAoB,KAAK,EAAC,QAAQ,MAAM,OAAO,IAAG,CAAC;AAAA,IAC1D,CAAA;AAED,UAAM,iBAAiB,CAAC,aAAa;AACnC,aAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,KAAK,SAAQ,GAAI;AAAA,IAC9D,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.cjs","sources":["../../../../../../src/modules/organizations/store/organizations.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n all: [],\n current: {\n _id: null,\n profile: {\n tags: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: '',\n youtube: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n});\n\nconst actions = {\n // Create\n async create(organization,owner) {\n organization.owner = owner\n try {\n const response = await $axios.post('/api/organizations/create', organization);\n state.current = response.data;\n return response.data;\n } catch (error) {\n console.log(error);\n setError(error);\n throw error;\n }\n },\n async read(options = {}) {\n\n console.log(options)\n\n try {\n const response = await $axios.get('/api/organizations', { params: options });\n\n if (options._id) {\n Object.assign(state.current || {}, response.data[0])\n } else {\n // state.all = [...state.all, ...response.data]; \n // state.all = response.data; // Assuming that the response.data is an array of organization objects\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n // Update\n async update(_id, updatedData) {\n console.log(_id,updatedData)\n return await $axios\n .post(`/api/organizations/${_id}/update`, updatedData)\n .then(\n (response) => {\n console.log('Organization updated successfully');\n return Promise.resolve(response.data);\n },\n (error) => {\n console.log('Updating organization failed');\n return Promise.reject(error);\n }\n );\n },\n\n // Remove\n async remove(organizationId) {\n await $axios\n .delete(`/api/organizations/${organizationId}/delete`)\n .then(\n (response) => {\n state.error = null;\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error)\n return Promise.reject(error);\n }\n )\n .catch(error => {\n setError(error)\n });\n },\n // Reset\n async reset () {\n state.current = {\n _id: null,\n profile: {\n categories: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n }\n}\n\
|
|
1
|
+
{"version":3,"file":"organizations.cjs","sources":["../../../../../../src/modules/organizations/store/organizations.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n all: [],\n current: {\n _id: null,\n profile: {\n tags: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: '',\n youtube: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n});\n\nconst actions = {\n // Create\n async create(organization,owner) {\n organization.owner = owner\n try {\n const response = await $axios.post('/api/organizations/create', organization);\n state.current = response.data;\n return response.data;\n } catch (error) {\n console.log(error);\n setError(error);\n throw error;\n }\n },\n async read(options = {}) {\n\n console.log(options)\n\n try {\n const response = await $axios.get('/api/organizations', { params: options });\n\n if (options._id) {\n Object.assign(state.current || {}, response.data[0])\n } else {\n // state.all = [...state.all, ...response.data]; \n // state.all = response.data; // Assuming that the response.data is an array of organization objects\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n // Update\n async update(_id, updatedData) {\n console.log(_id,updatedData)\n return await $axios\n .post(`/api/organizations/${_id}/update`, updatedData)\n .then(\n (response) => {\n console.log('Organization updated successfully');\n return Promise.resolve(response.data);\n },\n (error) => {\n console.log('Updating organization failed');\n return Promise.reject(error);\n }\n );\n },\n\n // Remove\n async remove(organizationId) {\n await $axios\n .delete(`/api/organizations/${organizationId}/delete`)\n .then(\n (response) => {\n state.error = null;\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error)\n return Promise.reject(error);\n }\n )\n .catch(error => {\n setError(error)\n });\n },\n // Reset\n async reset () {\n state.current = {\n _id: null,\n profile: {\n categories: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n }\n}\n\n// const history = []\n// history.push(state) \n\n// // // Watch\n// watch(state, (newState, oldState) => {\n// history.push(newState)\n// })\n\n// Module Export\nexport {\n state,\n actions\n}"],"names":["reactive","$axios","setError"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { reactive
|
|
1
|
+
import { reactive } from "vue";
|
|
2
2
|
import { setError } from "../../globals/views/store/globals.js";
|
|
3
3
|
import $axios from "../../globals/views/utils/axios-instance.js";
|
|
4
4
|
const state = reactive({
|
|
@@ -124,8 +124,6 @@ const actions = {
|
|
|
124
124
|
};
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
|
-
watch(state, (newState, oldState) => {
|
|
128
|
-
});
|
|
129
127
|
export {
|
|
130
128
|
actions,
|
|
131
129
|
state
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.js","sources":["../../../../../../src/modules/organizations/store/organizations.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n all: [],\n current: {\n _id: null,\n profile: {\n tags: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: '',\n youtube: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n});\n\nconst actions = {\n // Create\n async create(organization,owner) {\n organization.owner = owner\n try {\n const response = await $axios.post('/api/organizations/create', organization);\n state.current = response.data;\n return response.data;\n } catch (error) {\n console.log(error);\n setError(error);\n throw error;\n }\n },\n async read(options = {}) {\n\n console.log(options)\n\n try {\n const response = await $axios.get('/api/organizations', { params: options });\n\n if (options._id) {\n Object.assign(state.current || {}, response.data[0])\n } else {\n // state.all = [...state.all, ...response.data]; \n // state.all = response.data; // Assuming that the response.data is an array of organization objects\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n // Update\n async update(_id, updatedData) {\n console.log(_id,updatedData)\n return await $axios\n .post(`/api/organizations/${_id}/update`, updatedData)\n .then(\n (response) => {\n console.log('Organization updated successfully');\n return Promise.resolve(response.data);\n },\n (error) => {\n console.log('Updating organization failed');\n return Promise.reject(error);\n }\n );\n },\n\n // Remove\n async remove(organizationId) {\n await $axios\n .delete(`/api/organizations/${organizationId}/delete`)\n .then(\n (response) => {\n state.error = null;\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error)\n return Promise.reject(error);\n }\n )\n .catch(error => {\n setError(error)\n });\n },\n // Reset\n async reset () {\n state.current = {\n _id: null,\n profile: {\n categories: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n }\n}\n\
|
|
1
|
+
{"version":3,"file":"organizations.js","sources":["../../../../../../src/modules/organizations/store/organizations.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n all: [],\n current: {\n _id: null,\n profile: {\n tags: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: '',\n youtube: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n});\n\nconst actions = {\n // Create\n async create(organization,owner) {\n organization.owner = owner\n try {\n const response = await $axios.post('/api/organizations/create', organization);\n state.current = response.data;\n return response.data;\n } catch (error) {\n console.log(error);\n setError(error);\n throw error;\n }\n },\n async read(options = {}) {\n\n console.log(options)\n\n try {\n const response = await $axios.get('/api/organizations', { params: options });\n\n if (options._id) {\n Object.assign(state.current || {}, response.data[0])\n } else {\n // state.all = [...state.all, ...response.data]; \n // state.all = response.data; // Assuming that the response.data is an array of organization objects\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error)\n return Promise.reject(error);\n }\n },\n // Update\n async update(_id, updatedData) {\n console.log(_id,updatedData)\n return await $axios\n .post(`/api/organizations/${_id}/update`, updatedData)\n .then(\n (response) => {\n console.log('Organization updated successfully');\n return Promise.resolve(response.data);\n },\n (error) => {\n console.log('Updating organization failed');\n return Promise.reject(error);\n }\n );\n },\n\n // Remove\n async remove(organizationId) {\n await $axios\n .delete(`/api/organizations/${organizationId}/delete`)\n .then(\n (response) => {\n state.error = null;\n return Promise.resolve(response.data);\n },\n (error) => {\n setError(error)\n return Promise.reject(error);\n }\n )\n .catch(error => {\n setError(error)\n });\n },\n // Reset\n async reset () {\n state.current = {\n _id: null,\n profile: {\n categories: [],\n photo: '',\n name: '',\n description: ''\n },\n structure: [],\n owner: null,\n types: '',\n contacts: {\n email: '',\n website: '',\n phone: '',\n address: '',\n },\n socials: {\n telegram: '',\n line: '',\n facebook: '',\n instagram: ''\n },\n rating: {\n popularity: 0,\n median: 0,\n amount: 0,\n }\n }\n }\n}\n\n// const history = []\n// history.push(state) \n\n// // // Watch\n// watch(state, (newState, oldState) => {\n// history.push(newState)\n// })\n\n// Module Export\nexport {\n state,\n actions\n}"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ const _hoisted_2 = {
|
|
|
24
24
|
const _hoisted_3 = { class: "cols-2-1_3 br-b br-t br-solid br-light h-100 z-index-3 pos-relative radius-big gap-thin" };
|
|
25
25
|
const _hoisted_4 = { class: "o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative" };
|
|
26
26
|
const _hoisted_5 = { class: "z-index-3 bg-white radius-tl-big radius-tr-big" };
|
|
27
|
-
const _hoisted_6 = { class: "
|
|
27
|
+
const _hoisted_6 = { class: "z-index-3 radius-tl-big radius-tr-big" };
|
|
28
28
|
const _sfc_main = {
|
|
29
29
|
__name: "Products",
|
|
30
30
|
setup(__props) {
|
|
@@ -135,11 +135,12 @@ const _sfc_main = {
|
|
|
135
135
|
}, null, 8, ["filter", "options"])
|
|
136
136
|
]),
|
|
137
137
|
vue.createElementVNode("div", _hoisted_5, [
|
|
138
|
+
vue.renderSlot(_ctx.$slots, "default"),
|
|
138
139
|
vue.createElementVNode("div", _hoisted_6, [
|
|
139
140
|
vue.createVNode(BlockSearch.default, {
|
|
140
141
|
onSearch: updateSearch,
|
|
141
142
|
placeholder: "Enter product name",
|
|
142
|
-
class: "bg-light h-4r"
|
|
143
|
+
class: "bg-light mn-b-thin h-4r"
|
|
143
144
|
})
|
|
144
145
|
]),
|
|
145
146
|
vue.createVNode(Feed.default, {
|
|
@@ -167,7 +168,7 @@ const _sfc_main = {
|
|
|
167
168
|
...tabProducts.value !== "all" && { status: tabProducts.value }
|
|
168
169
|
// user: user
|
|
169
170
|
},
|
|
170
|
-
class: "cols-4 rows-1
|
|
171
|
+
class: "cols-4 rows-1 gap-thin"
|
|
171
172
|
}, {
|
|
172
173
|
default: vue.withCtx(({
|
|
173
174
|
items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Products.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-b br-t br-solid br-light h-100 z-index-3 pos-relative radius-big gap-thin\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"z-index-3 bg-white radius-tl-big radius-tr-big\">\n <div class=\"pd-thin z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(marketplace.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 rows-1 pd-t-zero pd-thin gap-thin mn-b-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals';\n import * as products from '@martyrs/src/modules/products/store/products';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace';\n import * as categories from '@martyrs/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n marketplace.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["useRoute","useRouter","ref","marketplace.state","watch","globals.state","IconPlus","auth.state","onMounted","categories.actions","onUnmounted"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Products.vue.cjs","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-b br-t br-solid br-light h-100 z-index-3 pos-relative radius-big gap-thin\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"z-index-3 bg-white radius-tl-big radius-tr-big\">\n <slot></slot>\n <div class=\" z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(marketplace.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals';\n import * as products from '@martyrs/src/modules/products/store/products';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace';\n import * as categories from '@martyrs/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n marketplace.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["useRoute","useRouter","ref","marketplace.state","watch","globals.state","IconPlus","auth.state","onMounted","categories.actions","onUnmounted"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ref, watch, onMounted, onUnmounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createBlock, createElementVNode, unref, createVNode, withCtx, Fragment, renderList } from "vue";
|
|
1
|
+
import { ref, watch, onMounted, onUnmounted, resolveComponent, createElementBlock, openBlock, createCommentVNode, createBlock, createElementVNode, unref, createVNode, renderSlot, withCtx, Fragment, renderList } from "vue";
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import _sfc_main$2 from "../../../../components/Tab/Tab.vue.js";
|
|
4
4
|
import _sfc_main$5 from "../../../../components/Feed/Feed.vue.js";
|
|
@@ -22,7 +22,7 @@ const _hoisted_2 = {
|
|
|
22
22
|
const _hoisted_3 = { class: "cols-2-1_3 br-b br-t br-solid br-light h-100 z-index-3 pos-relative radius-big gap-thin" };
|
|
23
23
|
const _hoisted_4 = { class: "o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative" };
|
|
24
24
|
const _hoisted_5 = { class: "z-index-3 bg-white radius-tl-big radius-tr-big" };
|
|
25
|
-
const _hoisted_6 = { class: "
|
|
25
|
+
const _hoisted_6 = { class: "z-index-3 radius-tl-big radius-tr-big" };
|
|
26
26
|
const _sfc_main = {
|
|
27
27
|
__name: "Products",
|
|
28
28
|
setup(__props) {
|
|
@@ -133,11 +133,12 @@ const _sfc_main = {
|
|
|
133
133
|
}, null, 8, ["filter", "options"])
|
|
134
134
|
]),
|
|
135
135
|
createElementVNode("div", _hoisted_5, [
|
|
136
|
+
renderSlot(_ctx.$slots, "default"),
|
|
136
137
|
createElementVNode("div", _hoisted_6, [
|
|
137
138
|
createVNode(_sfc_main$4, {
|
|
138
139
|
onSearch: updateSearch,
|
|
139
140
|
placeholder: "Enter product name",
|
|
140
|
-
class: "bg-light h-4r"
|
|
141
|
+
class: "bg-light mn-b-thin h-4r"
|
|
141
142
|
})
|
|
142
143
|
]),
|
|
143
144
|
createVNode(_sfc_main$5, {
|
|
@@ -165,7 +166,7 @@ const _sfc_main = {
|
|
|
165
166
|
...tabProducts.value !== "all" && { status: tabProducts.value }
|
|
166
167
|
// user: user
|
|
167
168
|
},
|
|
168
|
-
class: "cols-4 rows-1
|
|
169
|
+
class: "cols-4 rows-1 gap-thin"
|
|
169
170
|
}, {
|
|
170
171
|
default: withCtx(({
|
|
171
172
|
items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-b br-t br-solid br-light h-100 z-index-3 pos-relative radius-big gap-thin\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"z-index-3 bg-white radius-tl-big radius-tr-big\">\n <div class=\"pd-thin z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(marketplace.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 rows-1 pd-t-zero pd-thin gap-thin mn-b-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals';\n import * as products from '@martyrs/src/modules/products/store/products';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace';\n import * as categories from '@martyrs/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n marketplace.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Products.vue.js","sources":["../../../../../../../src/modules/products/components/pages/Products.vue"],"sourcesContent":["<template>\n <div class=\"h-100 pos-relative\">\n <header \n v-if=\"route.name !== 'Organization' && !MOBILE_APP\"\n class=\"pd-medium flex-v-center flex-nowrap flex\"\n >\n <h2 class=\"mn-r-medium\">Products</h2>\n <button \n v-if=\"hasAccess(route.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)\"\n @click=\"$router.push({\n name: route.params?._id ? 'Organization_ProductAdd' : 'ProductAdd'\n })\" \n class=\"radius-100 i-big hover-scale-1 cursor-pointer t-white bg-second\">\n +\n </button>\n </header>\n\n <Tab \n v-if=\"route.name !== 'Organization' && isAdmin\"\n v-model:selected=\"tabProducts\"\n :tabs=\"[\n { name: 'All', value: 'all' },\n { name: 'Published', value: 'published' },\n { name: 'Unpublished', value: 'unpublished' }, \n { name: 'Archivied', value: 'archivied' } \n ]\"\n style=\"flex: 0 0 auto\"\n class=\"\n\n p-medium\n br-t br-solid br-light \n bg-white\n gap-micro pd-medium pd-t-thin pd-b-thin\n z-index-1\n\n \"\n tabClass=\"bg-light uppercase pd-small radius-small w-100\"\n />\n\n <div class=\"cols-2-1_3 br-b br-t br-solid br-light h-100 z-index-3 pos-relative radius-big gap-thin\">\n\n <div class=\"o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative\">\n <BlockFilter\n v-model:filter=\"marketplace.state.filter\"\n :options=\"marketplace.state.filter.options\"\n class=\"h-100 w-100\"\n />\n </div>\n\n <div class=\"z-index-3 bg-white radius-tl-big radius-tr-big\">\n <slot></slot>\n <div class=\" z-index-3 radius-tl-big radius-tr-big\">\n <BlockSearch \n @search=\"updateSearch\"\n placeholder=\"Enter product name\"\n class=\"bg-light mn-b-thin h-4r\"\n />\n </div>\n <Feed\n v-model:filter=\"marketplace.state.filter\"\n :showLoadMore=\"false\"\n :states=\"{\n empty: {\n title: 'No Products Found',\n description: 'Currently, there are no products available.'\n }\n }\"\n :store=\"{\n read: (options) => products.actions.read(options),\n state: products.state\n }\"\n :options=\"{\n limit: 16,\n owner: route.params._id,\n categories: route.query.categories,\n filters: generateFilters(marketplace.state.filter.selected),\n prices: route.query.prices,\n delivery: route.query.delivery,\n search: route.query.search,\n ...(tabProducts !== 'all' && { status: tabProducts })\n // user: user\n }\"\n v-slot=\"{ \n items \n }\"\n class=\"cols-4 rows-1 gap-thin\"\n \n >\n <router-link \n v-for=\"product in items\" \n :to=\"route.params._id ? { name: 'Organization_Product', params: { _id: route.params._id, product: product._id } } : { name: 'Product', params: { product: product._id } }\"\n class=\"pos-relative h-100 w-100\"\n >\n <CardProduct\n :key=\"product._id\"\n :product=\"product\"\n :user=\"auth.state.access\"\n :organization=\"route.params._id\"\n :access=\"hasAccess(route.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)\"\n class=\"pos-relative h-100 w-100 bg-light\"\n />\n </router-link>\n </Feed>\n\n </div>\n </div>\n</div>\n</template>\n\n\n<script setup=\"props\">\n // Import libs\n import { ref, computed, watch, onMounted, onUnmounted } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n // Import components\n import Tab from '@martyrs/src/components/Tab/Tab.vue'\n import Feed from '@martyrs/src/components/Feed/Feed.vue'\n\n import FilterProducts from '@martyrs/src/modules/products/components/sections/FilterProducts.vue'\n import BlockSearch from '@martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue'\n import BlockFilter from '@martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue'\n\n import CardProduct from '@martyrs/src/modules/products/components/blocks/CardProduct.vue'\n\n import IconPlus from '@martyrs/src/modules/icons/navigation/IconPlus.vue'\n\n // Accessing router and store\n import * as auth from '@martyrs/src/modules/auth/views/store/auth';\n import * as globals from '@martyrs/src/modules/globals/views/store/globals';\n import * as products from '@martyrs/src/modules/products/store/products';\n import * as marketplace from '@martyrs/src/modules/marketplace/views/store/marketplace';\n import * as categories from '@martyrs/src/modules/products/store/categories';\n\n const route = useRoute()\n const router = useRouter()\n\n // Tab logic\n const tabProducts = ref(route.query.tabProducts ? route.query.tabProducts : 'all')\n\n if (route.name !== 'Organization') route.query.tabProducts = tabProducts.value\n \n if (route.query) {\n const query = route.query;\n\n marketplace.state.filter.selected.categories = query.categories ? query.categories.split(',') : [];\n marketplace.state.filter.selected.prices = query.prices ? query.prices.split(',') : [];\n marketplace.state.filter.selected.delivery = query.delivery ? query.delivery.split(',') : [];\n marketplace.state.filter.selected.brand = query.brand ? query.brand.split(',') : [];\n }\n\n\n watch(tabProducts, (newValue) => {\n if (route.name !== 'Organization') router.replace({ query: { ...route.query, tabProducts: newValue } });\n });\n\n globals.state.navigation_bar.actions = [{\n component: IconPlus,\n props: {\n fill: \"rgb(var(--main))\" \n },\n condition: () => auth.state.user && auth.state.user._id,\n action: () => route.params._id ? router.push({ name: 'Organization_ProductAdd', params: { _id: route.params._id} }) : router.push({ name: 'ProductAdd' })\n }],\n\n onMounted(async () => {\n let categoriesFilter = await categories.actions.read({rootOnly:true});\n\n categoriesFilter = categoriesFilter.map(category => ({\n value: category._id,\n label: category.name\n }));\n\n const index = marketplace.state.filter.options.findIndex(option => option.value === 'categories');\n\n const categoryOption = {\n title: 'Categories',\n value: 'categories',\n options: categoriesFilter\n };\n\n if (index !== -1) {\n marketplace.state.filter.options[index] = categoryOption;\n } else {\n marketplace.state.filter.options.unshift(categoryOption);\n }\n })\n\n onUnmounted(() => {\n globals.state.navigation_bar.actions = [];\n });\n\n watch(() => marketplace.state.sort, (newSortValue, oldSortValue) => {\n let query = { ...route.query}\n \n query.sortParam = newSortValue.param\n query.sortOrder = newSortValue.order\n \n // replace the current route\n router.replace({ query });\n }, { deep: true });\n\n\n watch(() => marketplace.state.filter.selected, (newFilterValue, oldFilterValue) => {\n // Переводим фильтр в формат query\n const query = { ...route.query };\n\n // Удаляем старые значения фильтра из query\n Object.keys(oldFilterValue).forEach(key => {\n if (query[key]) {\n delete query[key];\n }\n });\n\n // Добавляем новые значения фильтра в query\n const newQueryValues = Object.fromEntries(\n Object.entries(newFilterValue)\n .filter(([key, value]) => Array.isArray(value) && value.length > 0)\n .map(([key, value]) => [key, value.join(',')])\n );\n\n delete query.options;\n Object.assign(query, newQueryValues);\n\n // Обновляем маршрут с новым query\n router.replace({ query });\n }, { deep: true })\n\n\n\n \n function updateSearch(search) {\n let query = { ...route.query}\n \n query.search = search\n \n router.replace({ query });\n }\n</script>\n\n<style lang=\"scss\">\n\n\n</style>\n"],"names":["marketplace.state","globals.state","IconPlus","auth.state","categories.actions"],"mappings":"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"}
|
|
@@ -7,12 +7,13 @@ const Chips = require("../../../../components/Chips/Chips.vue.cjs");
|
|
|
7
7
|
const Map = require("../../../../components/Map/Map.vue.cjs");
|
|
8
8
|
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
9
9
|
const _hoisted_1 = { class: "pos-relative cols-2-1_3" };
|
|
10
|
-
const _hoisted_2 = { class: "pd-
|
|
11
|
-
const _hoisted_3 = { class: "
|
|
12
|
-
const _hoisted_4 =
|
|
13
|
-
const _hoisted_5 =
|
|
14
|
-
const _hoisted_6 = {
|
|
15
|
-
const _hoisted_7 = { key:
|
|
10
|
+
const _hoisted_2 = { class: "pd-small w-100" };
|
|
11
|
+
const _hoisted_3 = { class: "bg-light radius-small pd-thin mn-b-thin radius-small" };
|
|
12
|
+
const _hoisted_4 = { class: "p-small w-100 t-truncate" };
|
|
13
|
+
const _hoisted_5 = ["innerHTML"];
|
|
14
|
+
const _hoisted_6 = { class: "d-block p-big mn-b-semi" };
|
|
15
|
+
const _hoisted_7 = { key: 2 };
|
|
16
|
+
const _hoisted_8 = { key: 4 };
|
|
16
17
|
const _sfc_main = {
|
|
17
18
|
__name: "CardSpot",
|
|
18
19
|
props: {
|
|
@@ -53,18 +54,20 @@ const _sfc_main = {
|
|
|
53
54
|
fill: "rgb(var(--white))",
|
|
54
55
|
class: "z-index-2 pos-absolute pos-t-regular pos-r-regular radius-extra bg-second pd-thin i-semi"
|
|
55
56
|
})) : vue.createCommentVNode("", true),
|
|
56
|
-
vue.createElementVNode("
|
|
57
|
+
vue.createElementVNode("div", _hoisted_3, [
|
|
58
|
+
vue.createElementVNode("p", _hoisted_4, vue.toDisplayString(__props.spot.address), 1)
|
|
59
|
+
]),
|
|
57
60
|
vue.createElementVNode("h3", {
|
|
58
61
|
class: "mn-b-thin w-100",
|
|
59
62
|
innerHTML: __props.spot.profile.name
|
|
60
|
-
}, null, 8,
|
|
61
|
-
vue.createElementVNode("p",
|
|
62
|
-
__props.showDeliveryOptions ? (vue.openBlock(), vue.createElementBlock("h4",
|
|
63
|
+
}, null, 8, _hoisted_5),
|
|
64
|
+
vue.createElementVNode("p", _hoisted_6, vue.toDisplayString(__props.spot.profile.description), 1),
|
|
65
|
+
__props.showDeliveryOptions ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_7, "Delivery:")) : vue.createCommentVNode("", true),
|
|
63
66
|
__props.showDeliveryOptions && __props.spot.delivery.length > 0 ? (vue.openBlock(), vue.createBlock(Chips.default, {
|
|
64
67
|
key: 3,
|
|
65
68
|
chips: __props.spot.delivery
|
|
66
69
|
}, null, 8, ["chips"])) : vue.createCommentVNode("", true),
|
|
67
|
-
__props.showPaymentOptions ? (vue.openBlock(), vue.createElementBlock("h4",
|
|
70
|
+
__props.showPaymentOptions ? (vue.openBlock(), vue.createElementBlock("h4", _hoisted_8, "Accepted Payment:")) : vue.createCommentVNode("", true),
|
|
68
71
|
__props.showPaymentOptions && __props.spot.payment.length > 0 ? (vue.openBlock(), vue.createBlock(Chips.default, {
|
|
69
72
|
key: 5,
|
|
70
73
|
chips: __props.spot.payment
|
|
@@ -74,6 +77,6 @@ const _sfc_main = {
|
|
|
74
77
|
};
|
|
75
78
|
}
|
|
76
79
|
};
|
|
77
|
-
const CardSpot = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-
|
|
80
|
+
const CardSpot = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-be40b3c0"]]);
|
|
78
81
|
exports.default = CardSpot;
|
|
79
82
|
//# sourceMappingURL=CardSpot.vue.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardSpot.vue.cjs","sources":["../../../../../../../src/modules/spots/components/blocks/CardSpot.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative cols-2-1_3\">\n <Map \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :location=\"{\n lat: spot.location.coordinates[1],\n lng: spot.location.coordinates[0]\n }\" \n :locale=\"$i18n.locale\"\n class=\"aspect-1x1 h-100 w-auto\"\n />\n\n <div class=\"pd-
|
|
1
|
+
{"version":3,"file":"CardSpot.vue.cjs","sources":["../../../../../../../src/modules/spots/components/blocks/CardSpot.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative cols-2-1_3\">\n <Map \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :location=\"{\n lat: spot.location.coordinates[1],\n lng: spot.location.coordinates[0]\n }\" \n :locale=\"$i18n.locale\"\n class=\"aspect-1x1 h-100 w-auto\"\n />\n\n <div class=\"pd-small w-100\">\n\n <!-- v-if=\"user === event.creator.target._id\" -->\n <IconEdit\n v-if=\"editAccess\"\n @click=\"$router.push({\n name: 'Spot Edit',\n params: {\n _id: props.organization._id,\n spot: spot._id\n }\n })\" \n class=\"z-index-2 pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n <IconCheckmark\n v-if=\"selected\"\n :fill=\"'rgb(var(--white))'\"\n class=\"z-index-2 pos-absolute pos-t-regular pos-r-regular radius-extra bg-second pd-thin i-semi\"\n />\n \n <div class=\"bg-light radius-small pd-thin mn-b-thin radius-small\">\n <p \n class=\" p-small w-100 t-truncate\"\n >\n {{spot.address}}\n </p>\n </div>\n\n <h3 \n class=\"mn-b-thin w-100\"\n v-html=\"spot.profile.name\"\n />\n\n \n\n <p class=\"d-block p-big mn-b-semi\">{{spot.profile.description}}</p>\n\n <h4 v-if=\"showDeliveryOptions\">Delivery:</h4>\n <Chips \n v-if=\"showDeliveryOptions && spot.delivery.length > 0\" \n :chips=\"spot.delivery\"\n />\n\n <h4 v-if=\"showPaymentOptions\">Accepted Payment:</h4>\n <Chips \n v-if=\"showPaymentOptions && spot.payment.length > 0\" \n :chips=\"spot.payment\"\n />\n\n\n\n </div>\n </div>\n\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Map from '@martyrs/src/components/Map/Map.vue';\n\nconst props = defineProps({\n spot: Object,\n organization: Object,\n editAccess: Boolean,\n showDeliveryOptions: Boolean,\n showPaymentOptions: Boolean,\n selected: Boolean\n});\n</script>\n<style scoped>\n.subspotsartment {\n border: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 1rem;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,UAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -5,12 +5,13 @@ import _sfc_main$3 from "../../../../components/Chips/Chips.vue.js";
|
|
|
5
5
|
import Map from "../../../../components/Map/Map.vue.js";
|
|
6
6
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
7
|
const _hoisted_1 = { class: "pos-relative cols-2-1_3" };
|
|
8
|
-
const _hoisted_2 = { class: "pd-
|
|
9
|
-
const _hoisted_3 = { class: "
|
|
10
|
-
const _hoisted_4 =
|
|
11
|
-
const _hoisted_5 =
|
|
12
|
-
const _hoisted_6 = {
|
|
13
|
-
const _hoisted_7 = { key:
|
|
8
|
+
const _hoisted_2 = { class: "pd-small w-100" };
|
|
9
|
+
const _hoisted_3 = { class: "bg-light radius-small pd-thin mn-b-thin radius-small" };
|
|
10
|
+
const _hoisted_4 = { class: "p-small w-100 t-truncate" };
|
|
11
|
+
const _hoisted_5 = ["innerHTML"];
|
|
12
|
+
const _hoisted_6 = { class: "d-block p-big mn-b-semi" };
|
|
13
|
+
const _hoisted_7 = { key: 2 };
|
|
14
|
+
const _hoisted_8 = { key: 4 };
|
|
14
15
|
const _sfc_main = {
|
|
15
16
|
__name: "CardSpot",
|
|
16
17
|
props: {
|
|
@@ -51,18 +52,20 @@ const _sfc_main = {
|
|
|
51
52
|
fill: "rgb(var(--white))",
|
|
52
53
|
class: "z-index-2 pos-absolute pos-t-regular pos-r-regular radius-extra bg-second pd-thin i-semi"
|
|
53
54
|
})) : createCommentVNode("", true),
|
|
54
|
-
createElementVNode("
|
|
55
|
+
createElementVNode("div", _hoisted_3, [
|
|
56
|
+
createElementVNode("p", _hoisted_4, toDisplayString(__props.spot.address), 1)
|
|
57
|
+
]),
|
|
55
58
|
createElementVNode("h3", {
|
|
56
59
|
class: "mn-b-thin w-100",
|
|
57
60
|
innerHTML: __props.spot.profile.name
|
|
58
|
-
}, null, 8,
|
|
59
|
-
createElementVNode("p",
|
|
60
|
-
__props.showDeliveryOptions ? (openBlock(), createElementBlock("h4",
|
|
61
|
+
}, null, 8, _hoisted_5),
|
|
62
|
+
createElementVNode("p", _hoisted_6, toDisplayString(__props.spot.profile.description), 1),
|
|
63
|
+
__props.showDeliveryOptions ? (openBlock(), createElementBlock("h4", _hoisted_7, "Delivery:")) : createCommentVNode("", true),
|
|
61
64
|
__props.showDeliveryOptions && __props.spot.delivery.length > 0 ? (openBlock(), createBlock(_sfc_main$3, {
|
|
62
65
|
key: 3,
|
|
63
66
|
chips: __props.spot.delivery
|
|
64
67
|
}, null, 8, ["chips"])) : createCommentVNode("", true),
|
|
65
|
-
__props.showPaymentOptions ? (openBlock(), createElementBlock("h4",
|
|
68
|
+
__props.showPaymentOptions ? (openBlock(), createElementBlock("h4", _hoisted_8, "Accepted Payment:")) : createCommentVNode("", true),
|
|
66
69
|
__props.showPaymentOptions && __props.spot.payment.length > 0 ? (openBlock(), createBlock(_sfc_main$3, {
|
|
67
70
|
key: 5,
|
|
68
71
|
chips: __props.spot.payment
|
|
@@ -72,7 +75,7 @@ const _sfc_main = {
|
|
|
72
75
|
};
|
|
73
76
|
}
|
|
74
77
|
};
|
|
75
|
-
const CardSpot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
78
|
+
const CardSpot = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-be40b3c0"]]);
|
|
76
79
|
export {
|
|
77
80
|
CardSpot as default
|
|
78
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardSpot.vue.js","sources":["../../../../../../../src/modules/spots/components/blocks/CardSpot.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative cols-2-1_3\">\n <Map \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :location=\"{\n lat: spot.location.coordinates[1],\n lng: spot.location.coordinates[0]\n }\" \n :locale=\"$i18n.locale\"\n class=\"aspect-1x1 h-100 w-auto\"\n />\n\n <div class=\"pd-
|
|
1
|
+
{"version":3,"file":"CardSpot.vue.js","sources":["../../../../../../../src/modules/spots/components/blocks/CardSpot.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative cols-2-1_3\">\n <Map \n :apiKey=\"GOOGLE_MAPS_API_KEY\" \n :location=\"{\n lat: spot.location.coordinates[1],\n lng: spot.location.coordinates[0]\n }\" \n :locale=\"$i18n.locale\"\n class=\"aspect-1x1 h-100 w-auto\"\n />\n\n <div class=\"pd-small w-100\">\n\n <!-- v-if=\"user === event.creator.target._id\" -->\n <IconEdit\n v-if=\"editAccess\"\n @click=\"$router.push({\n name: 'Spot Edit',\n params: {\n _id: props.organization._id,\n spot: spot._id\n }\n })\" \n class=\"z-index-2 pos-absolute pos-t-regular pos-r-regular i-regular t-transp\"\n />\n\n <IconCheckmark\n v-if=\"selected\"\n :fill=\"'rgb(var(--white))'\"\n class=\"z-index-2 pos-absolute pos-t-regular pos-r-regular radius-extra bg-second pd-thin i-semi\"\n />\n \n <div class=\"bg-light radius-small pd-thin mn-b-thin radius-small\">\n <p \n class=\" p-small w-100 t-truncate\"\n >\n {{spot.address}}\n </p>\n </div>\n\n <h3 \n class=\"mn-b-thin w-100\"\n v-html=\"spot.profile.name\"\n />\n\n \n\n <p class=\"d-block p-big mn-b-semi\">{{spot.profile.description}}</p>\n\n <h4 v-if=\"showDeliveryOptions\">Delivery:</h4>\n <Chips \n v-if=\"showDeliveryOptions && spot.delivery.length > 0\" \n :chips=\"spot.delivery\"\n />\n\n <h4 v-if=\"showPaymentOptions\">Accepted Payment:</h4>\n <Chips \n v-if=\"showPaymentOptions && spot.payment.length > 0\" \n :chips=\"spot.payment\"\n />\n\n\n\n </div>\n </div>\n\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport IconEdit from '@martyrs/src/modules/icons/navigation/IconEdit.vue';\n\nimport IconCheckmark from '@martyrs/src/modules/icons/navigation/IconCheckmark.vue';\n\n\nimport Chips from '@martyrs/src/components/Chips/Chips.vue';\nimport Map from '@martyrs/src/components/Map/Map.vue';\n\nconst props = defineProps({\n spot: Object,\n organization: Object,\n editAccess: Boolean,\n showDeliveryOptions: Boolean,\n showPaymentOptions: Boolean,\n selected: Boolean\n});\n</script>\n<style scoped>\n.subspotsartment {\n border: 1px solid rgba(0, 0, 0, 0.1);\n margin-top: 1rem;\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,UAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -38,9 +38,9 @@ const actions = {
|
|
|
38
38
|
globals.setError(error);
|
|
39
39
|
}
|
|
40
40
|
},
|
|
41
|
-
async read(
|
|
41
|
+
async read(options) {
|
|
42
42
|
try {
|
|
43
|
-
const response = await axiosInstance.default.get(`/api/spots
|
|
43
|
+
const response = await axiosInstance.default.get(`/api/spots`, { params: options });
|
|
44
44
|
state.spots = response.data;
|
|
45
45
|
return response.data;
|
|
46
46
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spots.cjs","sources":["../../../../../../src/modules/spots/store/spots.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n spots: [],\n spot: {\n status: 'unpublished',\n organization: '',\n\n profile: {\n photo: '',\n name: '',\n description: '',\n categories: [],\n },\n position: {\n address: undefined,\n location: undefined,\n hide: false\n },\n\n address: undefined,\n location: undefined,\n\n worktime: [],\n delivery: [],\n payment: [],\n members: [],\n subspots: [],\n },\n error: null,\n});\n\n// Methods\nconst actions = {\n async readOne(spotID) {\n try {\n const response = await $axios.get(`/api/spots/get/${spotID}`);\n\n state.spot = response.data;\n } catch (error) {\n setError(error);\n }\n },\n async read(
|
|
1
|
+
{"version":3,"file":"spots.cjs","sources":["../../../../../../src/modules/spots/store/spots.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n spots: [],\n spot: {\n status: 'unpublished',\n organization: '',\n\n profile: {\n photo: '',\n name: '',\n description: '',\n categories: [],\n },\n position: {\n address: undefined,\n location: undefined,\n hide: false\n },\n\n address: undefined,\n location: undefined,\n\n worktime: [],\n delivery: [],\n payment: [],\n members: [],\n subspots: [],\n },\n error: null,\n});\n\n// Methods\nconst actions = {\n async readOne(spotID) {\n try {\n const response = await $axios.get(`/api/spots/get/${spotID}`);\n\n state.spot = response.data;\n } catch (error) {\n setError(error);\n }\n },\n async read(options) {\n try {\n const response = await $axios.get(`/api/spots`, { params: options });\n state.spots = response.data;\n return response.data;\n } catch (error) {\n setError(error);\n }\n },\n\n async create(organizationId, spot) {\n try {\n const response = await $axios.post(`/api/spots/${organizationId}/create`, spot);\n \n state.spot = response.data;\n } catch (error) {\n setError(error);\n }\n },\n async update(organizationId, spot) {\n try {\n await $axios.post(`/api/spots/${organizationId}/update`, spot);\n } catch (error) {\n setError(error);\n }\n },\n async delete(organizationId, spotId) {\n try {\n await $axios.delete(`/api/spots/${organizationId}/delete`, { data: { _id: spotId } });\n } catch (error) {\n setError(error);\n }\n },\n};\n\n// History\nconst history = []\nhistory.push(state)\n\n// Watch\nwatch(state, (newState, oldState) => {\n history.push(newState)\n})\n\n// Module Export\nexport {\n state,\n actions,\n}"],"names":["reactive","$axios","setError","watch"],"mappings":";;;;;AAOK,MAAC,QAAQA,IAAAA,SAAS;AAAA,EACrB,OAAO,CAAE;AAAA,EACT,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,cAAc;AAAA,IAEd,SAAS;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAE;AAAA,IACf;AAAA,IACD,UAAU;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM;AAAA,IACP;AAAA,IAED,SAAS;AAAA,IACT,UAAU;AAAA,IAEV,UAAU,CAAE;AAAA,IACZ,UAAU,CAAE;AAAA,IACZ,SAAS,CAAE;AAAA,IACX,SAAS,CAAE;AAAA,IACX,UAAU,CAAE;AAAA,EACb;AAAA,EACD,OAAO;AACT,CAAC;AAGI,MAAC,UAAU;AAAA,EACd,MAAM,QAAQ,QAAQ;AACpB,QAAI;AACF,YAAM,WAAW,MAAMC,sBAAO,IAAI,kBAAkB,MAAM,EAAE;AAE5D,YAAM,OAAO,SAAS;AAAA,IACvB,SAAQ,OAAO;AACdC,cAAAA,SAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EACD,MAAM,KAAK,SAAS;AAClB,QAAI;AACF,YAAM,WAAW,MAAMD,cAAAA,QAAO,IAAI,cAAc,EAAE,QAAQ,SAAS;AACnE,YAAM,QAAQ,SAAS;AACvB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACdC,cAAAA,SAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EAED,MAAM,OAAO,gBAAgB,MAAM;AACjC,QAAI;AACF,YAAM,WAAW,MAAMD,cAAAA,QAAO,KAAK,cAAc,cAAc,WAAW,IAAI;AAE9E,YAAM,OAAO,SAAS;AAAA,IACvB,SAAQ,OAAO;AACdC,cAAAA,SAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EACD,MAAM,OAAO,gBAAgB,MAAM;AACjC,QAAI;AACF,YAAMD,cAAAA,QAAO,KAAK,cAAc,cAAc,WAAW,IAAI;AAAA,IAC9D,SAAQ,OAAO;AACdC,cAAAA,SAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EACD,MAAM,OAAO,gBAAgB,QAAQ;AACnC,QAAI;AACF,YAAMD,sBAAO,OAAO,cAAc,cAAc,WAAW,EAAE,MAAM,EAAE,KAAK,OAAQ,EAAA,CAAE;AAAA,IACrF,SAAQ,OAAO;AACdC,cAAAA,SAAS,KAAK;AAAA,IACpB;AAAA,EACG;AACH;AAOAC,IAAAA,MAAM,OAAO,CAAC,UAAU,aAAa;AAErC,CAAC;;;"}
|
|
@@ -36,9 +36,9 @@ const actions = {
|
|
|
36
36
|
setError(error);
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
|
-
async read(
|
|
39
|
+
async read(options) {
|
|
40
40
|
try {
|
|
41
|
-
const response = await $axios.get(`/api/spots
|
|
41
|
+
const response = await $axios.get(`/api/spots`, { params: options });
|
|
42
42
|
state.spots = response.data;
|
|
43
43
|
return response.data;
|
|
44
44
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spots.js","sources":["../../../../../../src/modules/spots/store/spots.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n spots: [],\n spot: {\n status: 'unpublished',\n organization: '',\n\n profile: {\n photo: '',\n name: '',\n description: '',\n categories: [],\n },\n position: {\n address: undefined,\n location: undefined,\n hide: false\n },\n\n address: undefined,\n location: undefined,\n\n worktime: [],\n delivery: [],\n payment: [],\n members: [],\n subspots: [],\n },\n error: null,\n});\n\n// Methods\nconst actions = {\n async readOne(spotID) {\n try {\n const response = await $axios.get(`/api/spots/get/${spotID}`);\n\n state.spot = response.data;\n } catch (error) {\n setError(error);\n }\n },\n async read(
|
|
1
|
+
{"version":3,"file":"spots.js","sources":["../../../../../../src/modules/spots/store/spots.js"],"sourcesContent":["// Vue modules\nimport { reactive, watch } from \"vue\";\n// Globals \nimport { setError } from '@martyrs/src/modules/globals/views/store/globals'\n// Setup Axios\nimport $axios from '@martyrs/src/modules/globals/views/utils/axios-instance.js';\n// State\nconst state = reactive({\n spots: [],\n spot: {\n status: 'unpublished',\n organization: '',\n\n profile: {\n photo: '',\n name: '',\n description: '',\n categories: [],\n },\n position: {\n address: undefined,\n location: undefined,\n hide: false\n },\n\n address: undefined,\n location: undefined,\n\n worktime: [],\n delivery: [],\n payment: [],\n members: [],\n subspots: [],\n },\n error: null,\n});\n\n// Methods\nconst actions = {\n async readOne(spotID) {\n try {\n const response = await $axios.get(`/api/spots/get/${spotID}`);\n\n state.spot = response.data;\n } catch (error) {\n setError(error);\n }\n },\n async read(options) {\n try {\n const response = await $axios.get(`/api/spots`, { params: options });\n state.spots = response.data;\n return response.data;\n } catch (error) {\n setError(error);\n }\n },\n\n async create(organizationId, spot) {\n try {\n const response = await $axios.post(`/api/spots/${organizationId}/create`, spot);\n \n state.spot = response.data;\n } catch (error) {\n setError(error);\n }\n },\n async update(organizationId, spot) {\n try {\n await $axios.post(`/api/spots/${organizationId}/update`, spot);\n } catch (error) {\n setError(error);\n }\n },\n async delete(organizationId, spotId) {\n try {\n await $axios.delete(`/api/spots/${organizationId}/delete`, { data: { _id: spotId } });\n } catch (error) {\n setError(error);\n }\n },\n};\n\n// History\nconst history = []\nhistory.push(state)\n\n// Watch\nwatch(state, (newState, oldState) => {\n history.push(newState)\n})\n\n// Module Export\nexport {\n state,\n actions,\n}"],"names":[],"mappings":";;;AAOK,MAAC,QAAQ,SAAS;AAAA,EACrB,OAAO,CAAE;AAAA,EACT,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,cAAc;AAAA,IAEd,SAAS;AAAA,MACP,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY,CAAE;AAAA,IACf;AAAA,IACD,UAAU;AAAA,MACR,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM;AAAA,IACP;AAAA,IAED,SAAS;AAAA,IACT,UAAU;AAAA,IAEV,UAAU,CAAE;AAAA,IACZ,UAAU,CAAE;AAAA,IACZ,SAAS,CAAE;AAAA,IACX,SAAS,CAAE;AAAA,IACX,UAAU,CAAE;AAAA,EACb;AAAA,EACD,OAAO;AACT,CAAC;AAGI,MAAC,UAAU;AAAA,EACd,MAAM,QAAQ,QAAQ;AACpB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,IAAI,kBAAkB,MAAM,EAAE;AAE5D,YAAM,OAAO,SAAS;AAAA,IACvB,SAAQ,OAAO;AACd,eAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EACD,MAAM,KAAK,SAAS;AAClB,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,IAAI,cAAc,EAAE,QAAQ,SAAS;AACnE,YAAM,QAAQ,SAAS;AACvB,aAAO,SAAS;AAAA,IACjB,SAAQ,OAAO;AACd,eAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EAED,MAAM,OAAO,gBAAgB,MAAM;AACjC,QAAI;AACF,YAAM,WAAW,MAAM,OAAO,KAAK,cAAc,cAAc,WAAW,IAAI;AAE9E,YAAM,OAAO,SAAS;AAAA,IACvB,SAAQ,OAAO;AACd,eAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EACD,MAAM,OAAO,gBAAgB,MAAM;AACjC,QAAI;AACF,YAAM,OAAO,KAAK,cAAc,cAAc,WAAW,IAAI;AAAA,IAC9D,SAAQ,OAAO;AACd,eAAS,KAAK;AAAA,IACpB;AAAA,EACG;AAAA,EACD,MAAM,OAAO,gBAAgB,QAAQ;AACnC,QAAI;AACF,YAAM,OAAO,OAAO,cAAc,cAAc,WAAW,EAAE,MAAM,EAAE,KAAK,OAAQ,EAAA,CAAE;AAAA,IACrF,SAAQ,OAAO;AACd,eAAS,KAAK;AAAA,IACpB;AAAA,EACG;AACH;AAOA,MAAM,OAAO,CAAC,UAAU,aAAa;AAErC,CAAC;"}
|