@ozdao/martyrs 0.2.429 → 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/components/Block/Block.vue.cjs +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.cjs → Tooltip.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.js → Tooltip.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue.cjs.map → Tooltip.vue2.js.map} +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +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/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/CardOrderUser.vue.cjs +19 -13
- 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 +19 -13
- 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 +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.cjs +1 -1
- 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 +1 -1
- 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/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +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/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +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/store/spots.cjs +4 -11
- package/dist/martyrs/src/modules/spots/store/spots.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/store/spots.js +4 -11
- package/dist/martyrs/src/modules/spots/store/spots.js.map +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/orders.server.js +5 -4
- package/dist/orders.server.mjs +4 -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 +4 -16
- package/dist/spots.server.mjs +4 -16
- package/dist/style.css +40 -48
- package/dist/wallet.server.js +1 -1
- package/dist/wallet.server.mjs +1 -1
- package/package.json +1 -1
- package/src/modules/globals/controllers/utils/queryProcessor.js +2 -1
- 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/orders/components/blocks/CardOrderBackoffice.vue +106 -0
- package/src/modules/orders/components/blocks/CardOrderUser.vue +16 -9
- package/src/modules/orders/components/pages/OrderCreate.vue +2 -2
- 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/controllers/orders.controller.js +2 -1
- 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/controllers/spots.controller.js +3 -17
- package/src/modules/spots/routes/spots.routes.js +1 -4
- package/src/modules/spots/store/spots.js +4 -12
- package/src/styles/base/shadow_transitions_hover_refactor.scss +1 -0
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +0 -1
- package/src/modules/landing/components/sections/HowToBuyWDR.vue +0 -130
- package/src/modules/landing/components/sections/WhatIsWDRSection.vue +0 -116
|
@@ -118,64 +118,68 @@ const _sfc_main = {
|
|
|
118
118
|
]),
|
|
119
119
|
_: 1
|
|
120
120
|
}),
|
|
121
|
-
tabOrganization.value === "products" && _ctx.hasAccess(vue.unref(route).params._id, null, null, auth.state.accesses, auth.state.access.roles) ? (vue.openBlock(), vue.createBlock(Block.default, {
|
|
122
|
-
key: 0,
|
|
123
|
-
class: "o-scroll mn-b-small"
|
|
124
|
-
}, {
|
|
125
|
-
default: vue.withCtx(() => [
|
|
126
|
-
vue.createElementVNode("div", _hoisted_3, [
|
|
127
|
-
vue.createVNode(_component_router_link, {
|
|
128
|
-
class: "bg-black t-nowrap t-white uppercase t-semi pd-thin radius-extra",
|
|
129
|
-
to: {
|
|
130
|
-
name: "Organization_ProductAdd",
|
|
131
|
-
params: {
|
|
132
|
-
_id: vue.unref(route).params._id
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}, {
|
|
136
|
-
default: vue.withCtx(() => _cache[2] || (_cache[2] = [
|
|
137
|
-
vue.createTextVNode(" Add Product ")
|
|
138
|
-
])),
|
|
139
|
-
_: 1
|
|
140
|
-
}, 8, ["to"]),
|
|
141
|
-
vue.createVNode(_component_router_link, {
|
|
142
|
-
class: "uppercase t-nowrap t-semi pd-thin radius-extra",
|
|
143
|
-
to: {
|
|
144
|
-
name: "Leftovers",
|
|
145
|
-
params: {
|
|
146
|
-
_id: vue.unref(route).params._id
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}, {
|
|
150
|
-
default: vue.withCtx(() => _cache[3] || (_cache[3] = [
|
|
151
|
-
vue.createTextVNode(" Change Invetory ")
|
|
152
|
-
])),
|
|
153
|
-
_: 1
|
|
154
|
-
}, 8, ["to"]),
|
|
155
|
-
vue.createVNode(_component_router_link, {
|
|
156
|
-
class: "d-block t-nowrap mn-l-auto uppercase t-semi bg-white pd-thin radius-extra",
|
|
157
|
-
to: {
|
|
158
|
-
name: "Backoffice",
|
|
159
|
-
params: {
|
|
160
|
-
_id: vue.unref(route).params._id
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}, {
|
|
164
|
-
default: vue.withCtx(() => _cache[4] || (_cache[4] = [
|
|
165
|
-
vue.createTextVNode(" Go to Backoffice ")
|
|
166
|
-
])),
|
|
167
|
-
_: 1
|
|
168
|
-
}, 8, ["to"])
|
|
169
|
-
])
|
|
170
|
-
]),
|
|
171
|
-
_: 1
|
|
172
|
-
})) : vue.createCommentVNode("", true),
|
|
173
121
|
vue.createVNode(vue.Transition, { name: "slide-fade" }, {
|
|
174
122
|
default: vue.withCtx(() => [
|
|
175
123
|
tabOrganization.value === "products" ? (vue.openBlock(), vue.createBlock(Products.default, {
|
|
176
124
|
key: 0,
|
|
177
125
|
organization: organizations.state.current
|
|
178
|
-
},
|
|
126
|
+
}, {
|
|
127
|
+
default: vue.withCtx(() => [
|
|
128
|
+
_ctx.hasAccess(vue.unref(route).params._id, null, null, auth.state.accesses, auth.state.access.roles) ? (vue.openBlock(), vue.createBlock(Block.default, {
|
|
129
|
+
key: 0,
|
|
130
|
+
class: "o-y-scroll w-100 pos-relative mn-b-small"
|
|
131
|
+
}, {
|
|
132
|
+
default: vue.withCtx(() => [
|
|
133
|
+
vue.createElementVNode("div", _hoisted_3, [
|
|
134
|
+
vue.createVNode(_component_router_link, {
|
|
135
|
+
class: "bg-black t-nowrap t-white uppercase t-semi pd-thin radius-extra",
|
|
136
|
+
to: {
|
|
137
|
+
name: "Organization_ProductAdd",
|
|
138
|
+
params: {
|
|
139
|
+
_id: vue.unref(route).params._id
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}, {
|
|
143
|
+
default: vue.withCtx(() => _cache[2] || (_cache[2] = [
|
|
144
|
+
vue.createTextVNode(" Add Product ")
|
|
145
|
+
])),
|
|
146
|
+
_: 1
|
|
147
|
+
}, 8, ["to"]),
|
|
148
|
+
vue.createVNode(_component_router_link, {
|
|
149
|
+
class: "uppercase t-nowrap t-semi pd-thin radius-extra",
|
|
150
|
+
to: {
|
|
151
|
+
name: "Leftovers",
|
|
152
|
+
params: {
|
|
153
|
+
_id: vue.unref(route).params._id
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}, {
|
|
157
|
+
default: vue.withCtx(() => _cache[3] || (_cache[3] = [
|
|
158
|
+
vue.createTextVNode(" Change Invetory ")
|
|
159
|
+
])),
|
|
160
|
+
_: 1
|
|
161
|
+
}, 8, ["to"]),
|
|
162
|
+
vue.createVNode(_component_router_link, {
|
|
163
|
+
class: "d-block t-nowrap mn-l-auto uppercase t-semi bg-white pd-thin radius-extra",
|
|
164
|
+
to: {
|
|
165
|
+
name: "Backoffice",
|
|
166
|
+
params: {
|
|
167
|
+
_id: vue.unref(route).params._id
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
171
|
+
default: vue.withCtx(() => _cache[4] || (_cache[4] = [
|
|
172
|
+
vue.createTextVNode(" Go to Backoffice ")
|
|
173
|
+
])),
|
|
174
|
+
_: 1
|
|
175
|
+
}, 8, ["to"])
|
|
176
|
+
])
|
|
177
|
+
]),
|
|
178
|
+
_: 1
|
|
179
|
+
})) : vue.createCommentVNode("", true)
|
|
180
|
+
]),
|
|
181
|
+
_: 1
|
|
182
|
+
}, 8, ["organization"])) : vue.createCommentVNode("", true)
|
|
179
183
|
]),
|
|
180
184
|
_: 1
|
|
181
185
|
}),
|
|
@@ -190,13 +194,12 @@ const _sfc_main = {
|
|
|
190
194
|
}
|
|
191
195
|
},
|
|
192
196
|
store: {
|
|
193
|
-
read: (options) => spots.actions.read(
|
|
197
|
+
read: (options) => spots.actions.read(options),
|
|
194
198
|
state: organizations.state
|
|
195
199
|
},
|
|
196
200
|
options: {
|
|
197
201
|
user: auth.state.user._id,
|
|
198
|
-
|
|
199
|
-
contain: ["blogposts"],
|
|
202
|
+
organization: vue.unref(route).params._id,
|
|
200
203
|
limit: 10
|
|
201
204
|
}
|
|
202
205
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Organization.vue.cjs","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.cjs","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":["useRouter","useRoute","ref","onMounted","organization.actions","auth.state","memberships.actions","watch"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+MC,UAAM,SAAUA,UAAS,UAAA;AACzB,UAAM,QAASC,UAAQ,SAAA;AAEvB,QAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM;AAE9C,UAAM,mBAAmBC,IAAAA,IAAI,IAAI;AAEjC,UAAM,kBAAkBA,IAAAA,IAAI,GAAG;AAE/B,UAAM,MAAM,MAAM,gBAAgB;AAElCC,QAAAA,UAAU,YAAY;AAErB,uBAAiB,QAAQ,MAAMC,cAAoB,QAAC,KAAK;AAAA,QACxD,KAAK,MAAM,OAAO;AAAA,QAClB,MAAMC,KAAAA,MAAW,KAAK;AAAA,QACtB,QAAQ,CAAC,aAAa;AAAA,MACtB,CAAA;AAEA,YAAMC,YAAAA,QAAoB,KAAK,EAAC,QAAQ,MAAM,OAAO,IAAG,CAAC;AAAA,IAC1D,CAAA;AAEDC,cAAM,iBAAiB,CAAC,aAAa;AACnC,aAAO,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,KAAK,SAAQ,GAAI;AAAA,IAC9D,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ref, onMounted, watch, resolveComponent, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode,
|
|
1
|
+
import { ref, onMounted, watch, resolveComponent, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, Transition, withCtx, createBlock, unref, Fragment, renderList, createTextVNode } from "vue";
|
|
2
2
|
import { useRouter, useRoute } from "vue-router";
|
|
3
3
|
import "vue-i18n";
|
|
4
4
|
/* empty css */
|
|
5
5
|
import _sfc_main$2 from "../../../../components/Tab/Tab.vue.js";
|
|
6
|
-
import _sfc_main$
|
|
6
|
+
import _sfc_main$7 from "../../../../components/Block/Block.vue.js";
|
|
7
7
|
import _sfc_main$3 from "../../../../components/Feed/Feed.vue.js";
|
|
8
8
|
import _sfc_main$4 from "../../../community/components/blocks/CardBlogpost.vue.js";
|
|
9
9
|
/* empty css */
|
|
@@ -11,7 +11,7 @@ import "../../../../components/Menu/MenuItem.vue.js";
|
|
|
11
11
|
import _sfc_main$1 from "../sections/DetailsTabSection.vue.js";
|
|
12
12
|
import _sfc_main$5 from "../../../events/components/sections/Feed.vue.js";
|
|
13
13
|
import CardSpot from "../../../spots/components/blocks/CardSpot.vue.js";
|
|
14
|
-
import _sfc_main$
|
|
14
|
+
import _sfc_main$6 from "../../../products/components/pages/Products.vue.js";
|
|
15
15
|
import { state } from "../../../auth/views/store/auth.js";
|
|
16
16
|
import { actions, state as state$1 } from "../../store/organizations.js";
|
|
17
17
|
import { actions as actions$1 } from "../../store/memberships.js";
|
|
@@ -116,64 +116,68 @@ const _sfc_main = {
|
|
|
116
116
|
]),
|
|
117
117
|
_: 1
|
|
118
118
|
}),
|
|
119
|
-
tabOrganization.value === "products" && _ctx.hasAccess(unref(route).params._id, null, null, state.accesses, state.access.roles) ? (openBlock(), createBlock(_sfc_main$6, {
|
|
120
|
-
key: 0,
|
|
121
|
-
class: "o-scroll mn-b-small"
|
|
122
|
-
}, {
|
|
123
|
-
default: withCtx(() => [
|
|
124
|
-
createElementVNode("div", _hoisted_3, [
|
|
125
|
-
createVNode(_component_router_link, {
|
|
126
|
-
class: "bg-black t-nowrap t-white uppercase t-semi pd-thin radius-extra",
|
|
127
|
-
to: {
|
|
128
|
-
name: "Organization_ProductAdd",
|
|
129
|
-
params: {
|
|
130
|
-
_id: unref(route).params._id
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}, {
|
|
134
|
-
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
135
|
-
createTextVNode(" Add Product ")
|
|
136
|
-
])),
|
|
137
|
-
_: 1
|
|
138
|
-
}, 8, ["to"]),
|
|
139
|
-
createVNode(_component_router_link, {
|
|
140
|
-
class: "uppercase t-nowrap t-semi pd-thin radius-extra",
|
|
141
|
-
to: {
|
|
142
|
-
name: "Leftovers",
|
|
143
|
-
params: {
|
|
144
|
-
_id: unref(route).params._id
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}, {
|
|
148
|
-
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
149
|
-
createTextVNode(" Change Invetory ")
|
|
150
|
-
])),
|
|
151
|
-
_: 1
|
|
152
|
-
}, 8, ["to"]),
|
|
153
|
-
createVNode(_component_router_link, {
|
|
154
|
-
class: "d-block t-nowrap mn-l-auto uppercase t-semi bg-white pd-thin radius-extra",
|
|
155
|
-
to: {
|
|
156
|
-
name: "Backoffice",
|
|
157
|
-
params: {
|
|
158
|
-
_id: unref(route).params._id
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}, {
|
|
162
|
-
default: withCtx(() => _cache[4] || (_cache[4] = [
|
|
163
|
-
createTextVNode(" Go to Backoffice ")
|
|
164
|
-
])),
|
|
165
|
-
_: 1
|
|
166
|
-
}, 8, ["to"])
|
|
167
|
-
])
|
|
168
|
-
]),
|
|
169
|
-
_: 1
|
|
170
|
-
})) : createCommentVNode("", true),
|
|
171
119
|
createVNode(Transition, { name: "slide-fade" }, {
|
|
172
120
|
default: withCtx(() => [
|
|
173
|
-
tabOrganization.value === "products" ? (openBlock(), createBlock(_sfc_main$
|
|
121
|
+
tabOrganization.value === "products" ? (openBlock(), createBlock(_sfc_main$6, {
|
|
174
122
|
key: 0,
|
|
175
123
|
organization: state$1.current
|
|
176
|
-
},
|
|
124
|
+
}, {
|
|
125
|
+
default: withCtx(() => [
|
|
126
|
+
_ctx.hasAccess(unref(route).params._id, null, null, state.accesses, state.access.roles) ? (openBlock(), createBlock(_sfc_main$7, {
|
|
127
|
+
key: 0,
|
|
128
|
+
class: "o-y-scroll w-100 pos-relative mn-b-small"
|
|
129
|
+
}, {
|
|
130
|
+
default: withCtx(() => [
|
|
131
|
+
createElementVNode("div", _hoisted_3, [
|
|
132
|
+
createVNode(_component_router_link, {
|
|
133
|
+
class: "bg-black t-nowrap t-white uppercase t-semi pd-thin radius-extra",
|
|
134
|
+
to: {
|
|
135
|
+
name: "Organization_ProductAdd",
|
|
136
|
+
params: {
|
|
137
|
+
_id: unref(route).params._id
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}, {
|
|
141
|
+
default: withCtx(() => _cache[2] || (_cache[2] = [
|
|
142
|
+
createTextVNode(" Add Product ")
|
|
143
|
+
])),
|
|
144
|
+
_: 1
|
|
145
|
+
}, 8, ["to"]),
|
|
146
|
+
createVNode(_component_router_link, {
|
|
147
|
+
class: "uppercase t-nowrap t-semi pd-thin radius-extra",
|
|
148
|
+
to: {
|
|
149
|
+
name: "Leftovers",
|
|
150
|
+
params: {
|
|
151
|
+
_id: unref(route).params._id
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}, {
|
|
155
|
+
default: withCtx(() => _cache[3] || (_cache[3] = [
|
|
156
|
+
createTextVNode(" Change Invetory ")
|
|
157
|
+
])),
|
|
158
|
+
_: 1
|
|
159
|
+
}, 8, ["to"]),
|
|
160
|
+
createVNode(_component_router_link, {
|
|
161
|
+
class: "d-block t-nowrap mn-l-auto uppercase t-semi bg-white pd-thin radius-extra",
|
|
162
|
+
to: {
|
|
163
|
+
name: "Backoffice",
|
|
164
|
+
params: {
|
|
165
|
+
_id: unref(route).params._id
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}, {
|
|
169
|
+
default: withCtx(() => _cache[4] || (_cache[4] = [
|
|
170
|
+
createTextVNode(" Go to Backoffice ")
|
|
171
|
+
])),
|
|
172
|
+
_: 1
|
|
173
|
+
}, 8, ["to"])
|
|
174
|
+
])
|
|
175
|
+
]),
|
|
176
|
+
_: 1
|
|
177
|
+
})) : createCommentVNode("", true)
|
|
178
|
+
]),
|
|
179
|
+
_: 1
|
|
180
|
+
}, 8, ["organization"])) : createCommentVNode("", true)
|
|
177
181
|
]),
|
|
178
182
|
_: 1
|
|
179
183
|
}),
|
|
@@ -188,13 +192,12 @@ const _sfc_main = {
|
|
|
188
192
|
}
|
|
189
193
|
},
|
|
190
194
|
store: {
|
|
191
|
-
read: (options) => actions$2.read(
|
|
195
|
+
read: (options) => actions$2.read(options),
|
|
192
196
|
state: state$1
|
|
193
197
|
},
|
|
194
198
|
options: {
|
|
195
199
|
user: state.user._id,
|
|
196
|
-
|
|
197
|
-
contain: ["blogposts"],
|
|
200
|
+
organization: unref(route).params._id,
|
|
198
201
|
limit: 10
|
|
199
202
|
}
|
|
200
203
|
}, {
|
|
@@ -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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"}
|
|
@@ -6,7 +6,7 @@ const mixins = require("../../../../globals/views/mixins/mixins.cjs");
|
|
|
6
6
|
const pages = require("../../store/pages.cjs");
|
|
7
7
|
const Button = require("../../../../../components/Button/Button.vue.cjs");
|
|
8
8
|
;/* empty css */
|
|
9
|
-
;/* empty css
|
|
9
|
+
;/* empty css */
|
|
10
10
|
const Constructor = require("../../../../constructor/components/sections/Constructor.vue.cjs");
|
|
11
11
|
const _hoisted_1 = { key: 0 };
|
|
12
12
|
const _hoisted_2 = {
|
|
@@ -4,7 +4,7 @@ import { useGlobalMixins } from "../../../../globals/views/mixins/mixins.js";
|
|
|
4
4
|
import { actions, state } from "../../store/pages.js";
|
|
5
5
|
import _sfc_main$2 from "../../../../../components/Button/Button.vue.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
/* empty css
|
|
7
|
+
/* empty css */
|
|
8
8
|
import _sfc_main$1 from "../../../../constructor/components/sections/Constructor.vue.js";
|
|
9
9
|
const _hoisted_1 = { key: 0 };
|
|
10
10
|
const _hoisted_2 = {
|
|
@@ -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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"}
|