@ozdao/martyrs 0.2.469 → 0.2.470
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/{Media-DwVcRIAX.mjs → Media-C4Ges_Sd.mjs} +1 -1
- package/dist/{Media-DCGbUujy.js → Media-CR0V1zvB.js} +1 -1
- package/dist/chats.server.js +14 -13
- package/dist/chats.server.mjs +14 -13
- package/dist/globals.server.js +20 -12
- package/dist/globals.server.mjs +20 -12
- package/dist/{main-DEHjtgLs.mjs → main-CTcal9qN.mjs} +900 -884
- package/dist/{main-UVdexuMN.js → main-CsZAG5Wz.js} +5 -5
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Popup/{Popup.vue2.cjs → Popup.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js.map → Popup.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Popup/{Popup.vue2.js → Popup.vue.js} +2 -2
- package/dist/martyrs/src/components/Popup/Popup.vue.js.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue.cjs → Tab.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Tab/Tab.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Tab/{Tab.vue.js → Tab.vue2.js} +2 -2
- package/dist/martyrs/src/components/Tab/{Tab.vue.cjs.map → Tab.vue2.js.map} +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileBlogposts.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +47 -16
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +47 -16
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Blog.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +6 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +6 -3
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +4 -4
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/sections/HotPosts.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/VideoPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs +9 -9
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js +9 -9
- package/dist/martyrs/src/modules/constructor/components/sections/Constructor.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EventsBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/EventsHot.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/pages/Gallery.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/globals.client.cjs +0 -9
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +0 -9
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.cjs +40 -97
- 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 +40 -97
- package/dist/martyrs/src/modules/globals/views/classes/globals.websocket.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/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/SectionPageTitle.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/plugins/AlertDialog.vue.js +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/icons/skeletons/SkeletonBlogpost.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs +35 -9
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +35 -9
- package/dist/martyrs/src/modules/notifications/notifications.client.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/OrderCreateBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/Orders.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ImagesThumbnails.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/EditLeftover.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/GanttChart.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/notifications.server.js +69 -13
- package/dist/notifications.server.mjs +69 -13
- package/dist/orders.server.js +1 -0
- package/dist/orders.server.mjs +1 -0
- package/package.json +1 -1
- package/src/components/Shader/Shader.vue +44 -25
- package/src/modules/chats/routes/chats.routes.js +21 -17
- package/src/modules/chats/store/chat.store.js +55 -28
- package/src/modules/community/components/blocks/CardBlogpost.vue +1 -1
- package/src/modules/community/components/pages/Blog.vue +1 -1
- package/src/modules/community/components/pages/BlogPost.vue +1 -0
- package/src/modules/community/components/pages/CreateBlogPost.vue +3 -3
- package/src/modules/constructor/components/elements/VideoPlayer.vue +1 -1
- package/src/modules/constructor/components/sections/Constructor.vue +9 -9
- package/src/modules/events/components/pages/EditEvent.vue +1 -1
- package/src/modules/globals/controllers/classes/globals.websocket.js +29 -21
- package/src/modules/globals/globals.client.js +0 -12
- package/src/modules/globals/views/classes/globals.websocket.js +46 -146
- package/src/modules/icons/skeletons/SkeletonBlogpost.vue +2 -2
- package/src/modules/notifications/controllers/notifications.controller.js +2 -2
- package/src/modules/notifications/notifications.client.js +57 -19
- package/src/modules/notifications/notifications.server.js +3 -1
- package/src/modules/notifications/routes/notifications.routes.js +2 -2
- package/src/modules/notifications/services/notification.service.js +34 -15
- package/src/modules/notifications/services/web-push.service.js +7 -6
- package/src/modules/orders/controllers/orders.controller.js +2 -0
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Popup/Popup.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Tab/Tab.vue.js.map +0 -1
- package/src/modules/notifications/notifications2.client.js +0 -256
- package/src/modules/notifications/services/websocket.service.js +0 -100
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateBlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"w-100 h-100 pos-relative\"\n >\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 bg-white pd-big radius-medium\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n\n </section>\n\n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport FieldTags from '@martyrs/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.read","auth.state","blog.clean","blog.state","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreateBlogPost.vue.js","sources":["../../../../../../../src/modules/community/components/pages/CreateBlogPost.vue"],"sourcesContent":["<template>\n <article \n class=\"w-100 bg-light radius-medium pos-relative\"\n >\n <section \n style=\"min-height: 100%;\"\n class=\"w-100 pd-big\"\n >\n <!-- Title -->\n <div \n class=\"w-full h-full\"\n >\n <!-- <Textarea \n v-if=\"post\" \n :prop=\"post\" \n :setFocus=\"true\"\n content=\"name\" \n placeholder=\"Enter post title\" \n class=\"h2\"\n /> -->\n </div>\n\n <Constructor \n v-if=\"post\" \n :content=\"post.content\"\n @update=\"update => post.content = update\"\n />\n\n </section>\n\n <transition name=\"scaleIn\" >\n <section v-if=\"post\" class=\"pd-small pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPulicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n </transition>\n\n <Popup \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n >\n <h3 class=\"mn-b-small\">Final Touches</h3>\n \n <BlockTags\n @tags-changed=\"newTags => post.tags = newTags\"\n :tags=\"post.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add source:</h5>\n <Field \n v-model:field=\"post.source\" \n placeholder=\"Add full link to the source\" \n class=\"mn-b-medium bg-light radius-medium pd-small\" \n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"post.creator.hidden\"\n @update:radio=\"event => post.creator.hidden = event\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n \n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n \n </article>\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport FieldTags from '@martyrs/src/components/FieldTags/FieldTags.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue'\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport { ref, onMounted, watchEffect, nextTick, computed } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport { VueDraggableNext } from 'vue-draggable-next';\n// Store & Router\nimport * as blog from '@martyrs/src/modules/community/store/blogposts.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth'\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations'\n \nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nconst { hasAccess } = useGlobalMixins()\n\nconst route = useRoute();\nconst router = useRouter();\n\nlet post = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await blog.read({ user: auth.state.user._id, url: route.params.url });\n \n post.value = data.pop();\n\n if (!post.value) {\n router.push({name: 'notfound'})\n }\n\n if (post.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(post.value.owner.target._id, 'posts', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (post.value.owner.type === 'user' && post.value.creator.target._id !== auth.state.user._id) {\n router.push({name: 'unauthorized'})\n }\n } else {\n blog.clean();\n post.value = blog.state.current;\n }\n\n if (!post.value.owner) post.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!post.value.creator) post.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n\n if (post.value.owner.type === 'organization') selectedOrganization.value = {\n _id: post.value.owner.target._id,\n name: post.value.owner.target.profile.name,\n photo: post.value.owner.target.profile.photo\n }\n})\n// /////////////////////////////////////////\n// Publication Form\n// /////////////////////////////////////////\nconst tag = ref('');\nconst autocompleteItems = ref([\n { text: 'story' },\n { text: 'news' },\n { text: 'guide' },\n { text: 'discussion' },\n { text: 'photos' },\n]);\n\nconst filteredItems = computed(() => {\n return autocompleteItems.value.filter(i => {\n return i.text.toLowerCase().includes(tag.value.toLowerCase());\n });\n});\n\nconst filteredSuggestedItems = computed(() => {\n return autocompleteItems.value.filter(item => {\n return !selectedTags.value.some(tag => tag.text === item.text);\n });\n })\n\nfunction addTag (tag) {\n selectedTags.value.push(tag)\n}\n// /////////////////////////////////////////\n// Publication Popup\n// /////////////////////////////////////////\nconst isPublicationPopup = ref(false)\n\nfunction openPulicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n post.value.status = \"draft\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) post.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) post.value.creator.hidden = false\n if (!selectedOrganization.value) post.value.organization = post.value.creator\n\n post.value.status = \"published\"\n post.value.name = post.value.content[0].content\n\n if (route.params.url) {\n blog.update(post.value)\n .then(response => {\n console.log(post.value)\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n } else {\n blog.create(post.value)\n .then(response => {\n router.push({ name: 'BlogPost', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this post?')) {\n blog.remove(post.value._id)\n .then(response => {\n router.push({ name: 'User Posts', params: { _id: post.value.creator.target._id } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["blog.read","auth.state","blog.clean","blog.state","tag","blog.update","blog.create","blog.remove"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.cjs");
|
|
5
5
|
;/* empty css */
|
|
6
|
-
;/* empty css
|
|
6
|
+
;/* empty css */
|
|
7
7
|
;/* empty css */
|
|
8
8
|
;/* empty css */
|
|
9
9
|
const Slider_native = require("../../../../components/Slider/Slider.native.vue.cjs");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createBlock, openBlock, withCtx } from "vue";
|
|
2
2
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
3
3
|
/* empty css */
|
|
4
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
6
|
/* empty css */
|
|
7
7
|
import SliderNative from "../../../../components/Slider/Slider.native.vue.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
require("axios");
|
|
5
|
-
const _hoisted_1 = { class: "mn-b-thin w-100
|
|
5
|
+
const _hoisted_1 = { class: "mn-b-thin w-100 o-hidden bg-black radius-medium" };
|
|
6
6
|
const _hoisted_2 = {
|
|
7
7
|
key: 0,
|
|
8
8
|
class: "flex-center flex"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.vue.cjs","sources":["../../../../../../../src/modules/constructor/components/elements/VideoPlayer.vue"],"sourcesContent":["<template>\n <div \n class=\"mn-b-thin w-100
|
|
1
|
+
{"version":3,"file":"VideoPlayer.vue.cjs","sources":["../../../../../../../src/modules/constructor/components/elements/VideoPlayer.vue"],"sourcesContent":["<template>\n <div \n class=\"mn-b-thin w-100 o-hidden bg-black radius-medium\"\n >\n \n <div v-if=\"prop.content\" class=\"flex-center flex\">\n <video controls class=\"w-100 h-max-30r\">\n <source :src=\"prop.content\" type=\"video/mp4\">\n Your browser does not support the video tag.\n </video>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport Upload from '@martyrs/src/components/Upload/Upload.vue'\n\nconst imageUrl = ref(null);\nconst fileInput = ref(null);\n\nconst props = defineProps([\n 'label',\n 'value',\n 'prop'\n]);\n\nconst emit = defineEmits(['input', 'updateBlock']);\n\nfunction isValidEmbedCode(code) {\n const allowedSources = [/youtube\\.com/, /soundcloud\\.com/, /vimeo\\.com/];\n return allowedSources.some(pattern => pattern.test(code));\n}\n\n\nfunction updateBlock(updatedBlock) {\n const index = post.value.content.findIndex(block => block === updatedBlock);\n if (index !== -1) {\n post.value.content.splice(index, 1, updatedBlock);\n }\n}\n\n\nfunction onComponentSave(url) {\n console.log(imageUrl.value )\n\n imageUrl.value = url\n\n if (imageUrl.value ) {\n emit('input', imageUrl.value);\n emit('updateBlock', props.prop, { content: imageUrl.value });\n } else {\n alert('Invalid embed code or source not allowed.');\n }\n}\n\n</script>\n\n"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmBiBA,QAAAA,IAAI,IAAI;AACPA,QAAAA,IAAI,IAAI;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ref, createElementBlock, openBlock, createCommentVNode, createElementVNode, createTextVNode } from "vue";
|
|
2
2
|
import "axios";
|
|
3
|
-
const _hoisted_1 = { class: "mn-b-thin w-100
|
|
3
|
+
const _hoisted_1 = { class: "mn-b-thin w-100 o-hidden bg-black radius-medium" };
|
|
4
4
|
const _hoisted_2 = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "flex-center flex"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VideoPlayer.vue.js","sources":["../../../../../../../src/modules/constructor/components/elements/VideoPlayer.vue"],"sourcesContent":["<template>\n <div \n class=\"mn-b-thin w-100
|
|
1
|
+
{"version":3,"file":"VideoPlayer.vue.js","sources":["../../../../../../../src/modules/constructor/components/elements/VideoPlayer.vue"],"sourcesContent":["<template>\n <div \n class=\"mn-b-thin w-100 o-hidden bg-black radius-medium\"\n >\n \n <div v-if=\"prop.content\" class=\"flex-center flex\">\n <video controls class=\"w-100 h-max-30r\">\n <source :src=\"prop.content\" type=\"video/mp4\">\n Your browser does not support the video tag.\n </video>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref } from 'vue';\n\nimport Upload from '@martyrs/src/components/Upload/Upload.vue'\n\nconst imageUrl = ref(null);\nconst fileInput = ref(null);\n\nconst props = defineProps([\n 'label',\n 'value',\n 'prop'\n]);\n\nconst emit = defineEmits(['input', 'updateBlock']);\n\nfunction isValidEmbedCode(code) {\n const allowedSources = [/youtube\\.com/, /soundcloud\\.com/, /vimeo\\.com/];\n return allowedSources.some(pattern => pattern.test(code));\n}\n\n\nfunction updateBlock(updatedBlock) {\n const index = post.value.content.findIndex(block => block === updatedBlock);\n if (index !== -1) {\n post.value.content.splice(index, 1, updatedBlock);\n }\n}\n\n\nfunction onComponentSave(url) {\n console.log(imageUrl.value )\n\n imageUrl.value = url\n\n if (imageUrl.value ) {\n emit('input', imageUrl.value);\n emit('updateBlock', props.prop, { content: imageUrl.value });\n } else {\n alert('Invalid embed code or source not allowed.');\n }\n}\n\n</script>\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAmBiB,QAAI,IAAI;AACP,QAAI,IAAI;;;;;;;;;;;;;;;;"}
|
|
@@ -18,7 +18,7 @@ const _hoisted_3 = {
|
|
|
18
18
|
};
|
|
19
19
|
const _hoisted_4 = {
|
|
20
20
|
key: 0,
|
|
21
|
-
class: "z-index-5 radius-thin pd-thin bg-
|
|
21
|
+
class: "z-index-5 radius-thin pd-thin bg-white w-max mn-b-small flex-nowrap flex-column flex"
|
|
22
22
|
};
|
|
23
23
|
const _hoisted_5 = ["onClick"];
|
|
24
24
|
const _hoisted_6 = ["onClick"];
|
|
@@ -147,37 +147,37 @@ const _sfc_main = {
|
|
|
147
147
|
showControls.value === index ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
148
148
|
vue.createElementVNode("button", {
|
|
149
149
|
onClick: _cache[0] || (_cache[0] = ($event) => showMenu.value = !showMenu.value),
|
|
150
|
-
class: "mn-b-small cursor-pointer w-100 i-semi bg-
|
|
150
|
+
class: "mn-b-small cursor-pointer w-100 i-semi bg-white radius-thin"
|
|
151
151
|
}, vue.toDisplayString(block.content ? "⋯" : "+"), 1),
|
|
152
152
|
showMenu.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
|
|
153
153
|
index !== 0 ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
154
154
|
key: 0,
|
|
155
155
|
onClick: ($event) => handleDeleteBlock(block),
|
|
156
|
-
class: "mn-b-thin w-max t-red bg-
|
|
156
|
+
class: "mn-b-thin w-max t-red bg-white button-small button"
|
|
157
157
|
}, " Remove ", 8, _hoisted_5)) : vue.createCommentVNode("", true),
|
|
158
158
|
vue.createElementVNode("span", {
|
|
159
159
|
onClick: ($event) => handleAddBlock("ImageUpload", "", index),
|
|
160
|
-
class: "mn-b-thin w-max t-black bg-
|
|
160
|
+
class: "mn-b-thin w-max t-black bg-white button-small button"
|
|
161
161
|
}, " Add Image ", 8, _hoisted_6),
|
|
162
162
|
vue.createElementVNode("span", {
|
|
163
163
|
onClick: ($event) => handleAddBlock("H2", "", index),
|
|
164
|
-
class: "w-max button-small t-black bg-
|
|
164
|
+
class: "w-max button-small t-black bg-white button"
|
|
165
165
|
}, " Add Title ", 8, _hoisted_7),
|
|
166
166
|
vue.createElementVNode("span", {
|
|
167
167
|
onClick: ($event) => handleAddBlock("Card", { photo: "", title: "", subtitle: "" }, index),
|
|
168
|
-
class: "w-max button-small t-black bg-
|
|
168
|
+
class: "w-max button-small t-black bg-white button"
|
|
169
169
|
}, " Add Card ", 8, _hoisted_8),
|
|
170
170
|
vue.createElementVNode("span", {
|
|
171
171
|
onClick: ($event) => handleAddBlock("Embed", "", index),
|
|
172
|
-
class: "w-max button-small t-black bg-
|
|
172
|
+
class: "w-max button-small t-black bg-white button"
|
|
173
173
|
}, " Add Embed ", 8, _hoisted_9),
|
|
174
174
|
vue.createElementVNode("span", {
|
|
175
175
|
onClick: ($event) => handleAddBlock("Audio", "", index),
|
|
176
|
-
class: "w-max button-small t-black bg-
|
|
176
|
+
class: "w-max button-small t-black bg-white button"
|
|
177
177
|
}, " Add Audio ", 8, _hoisted_10),
|
|
178
178
|
vue.createElementVNode("span", {
|
|
179
179
|
onClick: ($event) => handleAddBlock("Video", "", index),
|
|
180
|
-
class: "w-max button-small t-black bg-
|
|
180
|
+
class: "w-max button-small t-black bg-white button"
|
|
181
181
|
}, " Add Video ", 8, _hoisted_11)
|
|
182
182
|
])) : vue.createCommentVNode("", true)
|
|
183
183
|
])) : vue.createCommentVNode("", true)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constructor.vue.cjs","sources":["../../../../../../../src/modules/constructor/components/sections/Constructor.vue"],"sourcesContent":["<template>\n <!-- Content -->\n <section>\n <Draggable \n :list=\"post.content\" \n @update:list=\"updateContent\" \n @start=\"handleDragStart\" \n @end=\"handleDragEnd\" \n disabledClass=\"no-drag\"\n >\n <div\n v-for=\"(block, index) in post.content\"\n :key=\"block.id\" \n :data-index=\"index\"\n draggable=\"true\"\n class=\"draggable-item pos-relative\"\n >\n <div \n @mouseover=\"showControls = index, showMenu = false\"\n class=\"pos-relative w-full h-full\"\n >\n <component\n v-model=\"block.content\"\n :is=\"ComponentMap[block.type]\"\n :index=\"index\"\n :component=\"block\"\n :prop=\"block\"\n :placeholder=\"block.placeholder\"\n :class=\"block.class\"\n :setFocus=\"block.setFocus\"\n @deleteBlock=\"handleDeleteBlock\"\n @addBlock=\"handleAddBlock\"\n @updateBlock=\"handleUpdateBlock\"\n />\n </div>\n\n <transition name=\"fade\">\n <div \n v-if=\"showControls === index\" \n class=\"pos-absolute z-index-4 i-semi\" \n style=\"right: calc(100% + 0.5rem); top: calc(50% - 1.125rem);\"\n >\n <button \n @click=\"showMenu = !showMenu\" \n class=\"mn-b-small cursor-pointer w-100 i-semi bg-
|
|
1
|
+
{"version":3,"file":"Constructor.vue.cjs","sources":["../../../../../../../src/modules/constructor/components/sections/Constructor.vue"],"sourcesContent":["<template>\n <!-- Content -->\n <section>\n <Draggable \n :list=\"post.content\" \n @update:list=\"updateContent\" \n @start=\"handleDragStart\" \n @end=\"handleDragEnd\" \n disabledClass=\"no-drag\"\n >\n <div\n v-for=\"(block, index) in post.content\"\n :key=\"block.id\" \n :data-index=\"index\"\n draggable=\"true\"\n class=\"draggable-item pos-relative\"\n >\n <div \n @mouseover=\"showControls = index, showMenu = false\"\n class=\"pos-relative w-full h-full\"\n >\n <component\n v-model=\"block.content\"\n :is=\"ComponentMap[block.type]\"\n :index=\"index\"\n :component=\"block\"\n :prop=\"block\"\n :placeholder=\"block.placeholder\"\n :class=\"block.class\"\n :setFocus=\"block.setFocus\"\n @deleteBlock=\"handleDeleteBlock\"\n @addBlock=\"handleAddBlock\"\n @updateBlock=\"handleUpdateBlock\"\n />\n </div>\n\n <transition name=\"fade\">\n <div \n v-if=\"showControls === index\" \n class=\"pos-absolute z-index-4 i-semi\" \n style=\"right: calc(100% + 0.5rem); top: calc(50% - 1.125rem);\"\n >\n <button \n @click=\"showMenu = !showMenu\" \n class=\"mn-b-small cursor-pointer w-100 i-semi bg-white radius-thin\"\n >\n {{ block.content ? '⋯' : '+' }}\n </button>\n \n <div \n v-if=\"showMenu\" \n class=\"z-index-5 radius-thin pd-thin bg-white w-max mn-b-small flex-nowrap flex-column flex\"\n >\n <span \n v-if=\"index !== 0\"\n @click=\"handleDeleteBlock(block)\" \n class=\"mn-b-thin w-max t-red bg-white button-small button\"\n >\n Remove\n </span>\n <span \n @click=\"handleAddBlock('ImageUpload', '', index)\" \n class=\"mn-b-thin w-max t-black bg-white button-small button\"\n >\n Add Image\n </span>\n <span \n @click=\"handleAddBlock('H2', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Title\n </span>\n <span \n @click=\"handleAddBlock('Card', { photo: '', title: '', subtitle: '', }, index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Card\n </span>\n <span \n @click=\"handleAddBlock('Embed', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Embed\n </span>\n <span \n @click=\"handleAddBlock('Audio', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Audio\n </span>\n <span \n @click=\"handleAddBlock('Video', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Video\n </span>\n </div>\n </div>\n </transition>\n </div>\n </Draggable>\n </section>\n</template>\n\n\n<script setup>\nimport Textarea from '../elements/Textarea.vue';\nimport ImageUpload from '../elements/ImageUpload.vue';\nimport Embed from '../elements/Embed.vue';\nimport Card from '../elements/Card.vue';\nimport Audio from '../elements/Audio.vue';\nimport Video from '../elements/Video.vue';\n\nimport Draggable from '@martyrs/src/components/Draggable/Draggable.vue';\n\nimport { ref, onMounted, watchEffect, computed } from 'vue';\nimport { v4 as uuidv4 } from 'uuid'\n\nconst props = defineProps({\n content: {\n type: Array\n },\n notitle: {\n type: Boolean\n }\n});\n\nconst emits = defineEmits(['update'])\n\nlet publics = ref(null);\nlet post = ref(null); \n\nconst showControls = ref(null)\nconst showMenu = ref(false)\n\nconst ComponentMap = {\n 'Textarea': Textarea,\n 'H2': Textarea,\n 'Card': Card,\n 'ImageUpload': ImageUpload,\n 'Embed': Embed,\n 'Audio': Audio,\n 'Video': Video,\n};\n\npost.value = { content: props.content }; \n\nonMounted(() => {\n if (post.value && post.value.content.length === 0) {\n handleAddBlock('Textarea', '', 0, null, 'h2', 'Enter title');\n }\n})\n\nconst updateContent = (newContent) => {\n post.value.content = newContent;\n};\n\nconst handleDragStart = (startIndex) => {\n console.log('Drag started from index:', startIndex);\n};\n\nconst handleDragEnd = (startIndex, endIndex) => {\n console.log('Drag ended. Start index:', startIndex, 'End index:', endIndex);\n};\n\nfunction handleAddBlock(type = 'Textarea', content = '', index, data, classBlock = '', placeholder = '', id = uuidv4()) {\n let blockNew = {\n id: id,\n type: type,\n style: '',\n class: classBlock,\n placeholder: placeholder,\n content: content,\n blocks: [],\n setFocus: true,\n };\n \n if (index !== undefined) {\n post.value.content.splice(index + 1, 0, blockNew);\n } else {\n post.value.content.push(blockNew);\n }\n \n showControls.value = null\n emits('update', post.value.content);\n}\n\nfunction handleUpdateBlock(block, update) {\n const index = post.value.content.findIndex(item => item === block);\n\n if (index !== -1) {\n post.value.content[index] = { ...post.value.content[index], ...update };\n }\n emits('update', post.value.content);\n}\n\nfunction handleDeleteBlock(blockToDelete, options = {}) {\n const index = post.value.content.findIndex(block => block.id === blockToDelete.id)\n\n if (index !== -1 && index !== 0) {\n post.value.content.splice(index, 1)\n \n if (index > 0) {\n const previousBlock = post.value.content[index - 1]\n previousBlock.setFocus = true\n previousBlock.setCaretToEnd = true\n }\n }\n \n emits('update', post.value.content)\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["ref","Textarea","Card","ImageUpload","Embed","Audio","Video","onMounted","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsHA,UAAM,QAAQ;AASd,UAAM,QAAQ;AAEAA,QAAAA,IAAI,IAAI;AACtB,QAAI,OAAOA,IAAAA,IAAI,IAAI;AAEnB,UAAM,eAAeA,IAAG,IAAC,IAAI;AAC7B,UAAM,WAAWA,IAAG,IAAC,KAAK;AAE1B,UAAM,eAAe;AAAA,MACnB,YAAYC,SAAQ;AAAA,MACpB,MAAMA,SAAQ;AAAA,MACd,QAAQC,KAAI;AAAA,MACZ,eAAeC,YAAW;AAAA,MAC1B,SAASC,MAAK;AAAA,MACd,SAASC,MAAK;AAAA,MACd,SAASC,MAAK;AAAA,IAChB;AAEA,SAAK,QAAQ,EAAE,SAAS,MAAM,QAAO;AAErCC,QAAAA,UAAU,MAAM;AACd,UAAI,KAAK,SAAS,KAAK,MAAM,QAAQ,WAAW,GAAG;AACjD,uBAAe,YAAY,IAAI,GAAG,MAAM,MAAM,aAAa;AAAA,MAC/D;AAAA,IACA,CAAC;AAED,UAAM,gBAAgB,CAAC,eAAe;AACpC,WAAK,MAAM,UAAU;AAAA,IACvB;AAEA,UAAM,kBAAkB,CAAC,eAAe;AACtC,cAAQ,IAAI,4BAA4B,UAAU;AAAA,IACpD;AAEA,UAAM,gBAAgB,CAAC,YAAY,aAAa;AAC9C,cAAQ,IAAI,4BAA4B,YAAY,cAAc,QAAQ;AAAA,IAC5E;AAEA,aAAS,eAAe,OAAO,YAAY,UAAU,IAAI,OAAO,MAAM,aAAa,IAAI,cAAc,IAAI,KAAKC,GAAM,QAAA,GAAI;AACtH,UAAI,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,QAAQ,CAAE;AAAA,QACV,UAAU;AAAA,MACX;AAED,UAAI,UAAU,QAAW;AACvB,aAAK,MAAM,QAAQ,OAAO,QAAQ,GAAG,GAAG,QAAQ;AAAA,MACpD,OAAS;AACL,aAAK,MAAM,QAAQ,KAAK,QAAQ;AAAA,MACpC;AAEE,mBAAa,QAAQ;AACrB,YAAM,UAAU,KAAK,MAAM,OAAO;AAAA,IACpC;AAEA,aAAS,kBAAkB,OAAO,QAAQ;AACxC,YAAM,QAAQ,KAAK,MAAM,QAAQ,UAAU,UAAQ,SAAS,KAAK;AAEjE,UAAI,UAAU,IAAI;AAChB,aAAK,MAAM,QAAQ,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,QAAQ,KAAK,GAAG,GAAG,OAAQ;AAAA,MAC3E;AACE,YAAM,UAAU,KAAK,MAAM,OAAO;AAAA,IACpC;AAEA,aAAS,kBAAkB,eAAe,UAAU,IAAI;AACtD,YAAM,QAAQ,KAAK,MAAM,QAAQ,UAAU,WAAS,MAAM,OAAO,cAAc,EAAE;AAEjF,UAAI,UAAU,MAAM,UAAU,GAAG;AAC/B,aAAK,MAAM,QAAQ,OAAO,OAAO,CAAC;AAElC,YAAI,QAAQ,GAAG;AACb,gBAAM,gBAAgB,KAAK,MAAM,QAAQ,QAAQ,CAAC;AAClD,wBAAc,WAAW;AACzB,wBAAc,gBAAgB;AAAA,QACpC;AAAA,MACA;AAEE,YAAM,UAAU,KAAK,MAAM,OAAO;AAAA,IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -16,7 +16,7 @@ const _hoisted_3 = {
|
|
|
16
16
|
};
|
|
17
17
|
const _hoisted_4 = {
|
|
18
18
|
key: 0,
|
|
19
|
-
class: "z-index-5 radius-thin pd-thin bg-
|
|
19
|
+
class: "z-index-5 radius-thin pd-thin bg-white w-max mn-b-small flex-nowrap flex-column flex"
|
|
20
20
|
};
|
|
21
21
|
const _hoisted_5 = ["onClick"];
|
|
22
22
|
const _hoisted_6 = ["onClick"];
|
|
@@ -145,37 +145,37 @@ const _sfc_main = {
|
|
|
145
145
|
showControls.value === index ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
146
146
|
createElementVNode("button", {
|
|
147
147
|
onClick: _cache[0] || (_cache[0] = ($event) => showMenu.value = !showMenu.value),
|
|
148
|
-
class: "mn-b-small cursor-pointer w-100 i-semi bg-
|
|
148
|
+
class: "mn-b-small cursor-pointer w-100 i-semi bg-white radius-thin"
|
|
149
149
|
}, toDisplayString(block.content ? "⋯" : "+"), 1),
|
|
150
150
|
showMenu.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
151
151
|
index !== 0 ? (openBlock(), createElementBlock("span", {
|
|
152
152
|
key: 0,
|
|
153
153
|
onClick: ($event) => handleDeleteBlock(block),
|
|
154
|
-
class: "mn-b-thin w-max t-red bg-
|
|
154
|
+
class: "mn-b-thin w-max t-red bg-white button-small button"
|
|
155
155
|
}, " Remove ", 8, _hoisted_5)) : createCommentVNode("", true),
|
|
156
156
|
createElementVNode("span", {
|
|
157
157
|
onClick: ($event) => handleAddBlock("ImageUpload", "", index),
|
|
158
|
-
class: "mn-b-thin w-max t-black bg-
|
|
158
|
+
class: "mn-b-thin w-max t-black bg-white button-small button"
|
|
159
159
|
}, " Add Image ", 8, _hoisted_6),
|
|
160
160
|
createElementVNode("span", {
|
|
161
161
|
onClick: ($event) => handleAddBlock("H2", "", index),
|
|
162
|
-
class: "w-max button-small t-black bg-
|
|
162
|
+
class: "w-max button-small t-black bg-white button"
|
|
163
163
|
}, " Add Title ", 8, _hoisted_7),
|
|
164
164
|
createElementVNode("span", {
|
|
165
165
|
onClick: ($event) => handleAddBlock("Card", { photo: "", title: "", subtitle: "" }, index),
|
|
166
|
-
class: "w-max button-small t-black bg-
|
|
166
|
+
class: "w-max button-small t-black bg-white button"
|
|
167
167
|
}, " Add Card ", 8, _hoisted_8),
|
|
168
168
|
createElementVNode("span", {
|
|
169
169
|
onClick: ($event) => handleAddBlock("Embed", "", index),
|
|
170
|
-
class: "w-max button-small t-black bg-
|
|
170
|
+
class: "w-max button-small t-black bg-white button"
|
|
171
171
|
}, " Add Embed ", 8, _hoisted_9),
|
|
172
172
|
createElementVNode("span", {
|
|
173
173
|
onClick: ($event) => handleAddBlock("Audio", "", index),
|
|
174
|
-
class: "w-max button-small t-black bg-
|
|
174
|
+
class: "w-max button-small t-black bg-white button"
|
|
175
175
|
}, " Add Audio ", 8, _hoisted_10),
|
|
176
176
|
createElementVNode("span", {
|
|
177
177
|
onClick: ($event) => handleAddBlock("Video", "", index),
|
|
178
|
-
class: "w-max button-small t-black bg-
|
|
178
|
+
class: "w-max button-small t-black bg-white button"
|
|
179
179
|
}, " Add Video ", 8, _hoisted_11)
|
|
180
180
|
])) : createCommentVNode("", true)
|
|
181
181
|
])) : createCommentVNode("", true)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constructor.vue.js","sources":["../../../../../../../src/modules/constructor/components/sections/Constructor.vue"],"sourcesContent":["<template>\n <!-- Content -->\n <section>\n <Draggable \n :list=\"post.content\" \n @update:list=\"updateContent\" \n @start=\"handleDragStart\" \n @end=\"handleDragEnd\" \n disabledClass=\"no-drag\"\n >\n <div\n v-for=\"(block, index) in post.content\"\n :key=\"block.id\" \n :data-index=\"index\"\n draggable=\"true\"\n class=\"draggable-item pos-relative\"\n >\n <div \n @mouseover=\"showControls = index, showMenu = false\"\n class=\"pos-relative w-full h-full\"\n >\n <component\n v-model=\"block.content\"\n :is=\"ComponentMap[block.type]\"\n :index=\"index\"\n :component=\"block\"\n :prop=\"block\"\n :placeholder=\"block.placeholder\"\n :class=\"block.class\"\n :setFocus=\"block.setFocus\"\n @deleteBlock=\"handleDeleteBlock\"\n @addBlock=\"handleAddBlock\"\n @updateBlock=\"handleUpdateBlock\"\n />\n </div>\n\n <transition name=\"fade\">\n <div \n v-if=\"showControls === index\" \n class=\"pos-absolute z-index-4 i-semi\" \n style=\"right: calc(100% + 0.5rem); top: calc(50% - 1.125rem);\"\n >\n <button \n @click=\"showMenu = !showMenu\" \n class=\"mn-b-small cursor-pointer w-100 i-semi bg-
|
|
1
|
+
{"version":3,"file":"Constructor.vue.js","sources":["../../../../../../../src/modules/constructor/components/sections/Constructor.vue"],"sourcesContent":["<template>\n <!-- Content -->\n <section>\n <Draggable \n :list=\"post.content\" \n @update:list=\"updateContent\" \n @start=\"handleDragStart\" \n @end=\"handleDragEnd\" \n disabledClass=\"no-drag\"\n >\n <div\n v-for=\"(block, index) in post.content\"\n :key=\"block.id\" \n :data-index=\"index\"\n draggable=\"true\"\n class=\"draggable-item pos-relative\"\n >\n <div \n @mouseover=\"showControls = index, showMenu = false\"\n class=\"pos-relative w-full h-full\"\n >\n <component\n v-model=\"block.content\"\n :is=\"ComponentMap[block.type]\"\n :index=\"index\"\n :component=\"block\"\n :prop=\"block\"\n :placeholder=\"block.placeholder\"\n :class=\"block.class\"\n :setFocus=\"block.setFocus\"\n @deleteBlock=\"handleDeleteBlock\"\n @addBlock=\"handleAddBlock\"\n @updateBlock=\"handleUpdateBlock\"\n />\n </div>\n\n <transition name=\"fade\">\n <div \n v-if=\"showControls === index\" \n class=\"pos-absolute z-index-4 i-semi\" \n style=\"right: calc(100% + 0.5rem); top: calc(50% - 1.125rem);\"\n >\n <button \n @click=\"showMenu = !showMenu\" \n class=\"mn-b-small cursor-pointer w-100 i-semi bg-white radius-thin\"\n >\n {{ block.content ? '⋯' : '+' }}\n </button>\n \n <div \n v-if=\"showMenu\" \n class=\"z-index-5 radius-thin pd-thin bg-white w-max mn-b-small flex-nowrap flex-column flex\"\n >\n <span \n v-if=\"index !== 0\"\n @click=\"handleDeleteBlock(block)\" \n class=\"mn-b-thin w-max t-red bg-white button-small button\"\n >\n Remove\n </span>\n <span \n @click=\"handleAddBlock('ImageUpload', '', index)\" \n class=\"mn-b-thin w-max t-black bg-white button-small button\"\n >\n Add Image\n </span>\n <span \n @click=\"handleAddBlock('H2', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Title\n </span>\n <span \n @click=\"handleAddBlock('Card', { photo: '', title: '', subtitle: '', }, index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Card\n </span>\n <span \n @click=\"handleAddBlock('Embed', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Embed\n </span>\n <span \n @click=\"handleAddBlock('Audio', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Audio\n </span>\n <span \n @click=\"handleAddBlock('Video', '', index)\"\n class=\"w-max button-small t-black bg-white button\"\n >\n Add Video\n </span>\n </div>\n </div>\n </transition>\n </div>\n </Draggable>\n </section>\n</template>\n\n\n<script setup>\nimport Textarea from '../elements/Textarea.vue';\nimport ImageUpload from '../elements/ImageUpload.vue';\nimport Embed from '../elements/Embed.vue';\nimport Card from '../elements/Card.vue';\nimport Audio from '../elements/Audio.vue';\nimport Video from '../elements/Video.vue';\n\nimport Draggable from '@martyrs/src/components/Draggable/Draggable.vue';\n\nimport { ref, onMounted, watchEffect, computed } from 'vue';\nimport { v4 as uuidv4 } from 'uuid'\n\nconst props = defineProps({\n content: {\n type: Array\n },\n notitle: {\n type: Boolean\n }\n});\n\nconst emits = defineEmits(['update'])\n\nlet publics = ref(null);\nlet post = ref(null); \n\nconst showControls = ref(null)\nconst showMenu = ref(false)\n\nconst ComponentMap = {\n 'Textarea': Textarea,\n 'H2': Textarea,\n 'Card': Card,\n 'ImageUpload': ImageUpload,\n 'Embed': Embed,\n 'Audio': Audio,\n 'Video': Video,\n};\n\npost.value = { content: props.content }; \n\nonMounted(() => {\n if (post.value && post.value.content.length === 0) {\n handleAddBlock('Textarea', '', 0, null, 'h2', 'Enter title');\n }\n})\n\nconst updateContent = (newContent) => {\n post.value.content = newContent;\n};\n\nconst handleDragStart = (startIndex) => {\n console.log('Drag started from index:', startIndex);\n};\n\nconst handleDragEnd = (startIndex, endIndex) => {\n console.log('Drag ended. Start index:', startIndex, 'End index:', endIndex);\n};\n\nfunction handleAddBlock(type = 'Textarea', content = '', index, data, classBlock = '', placeholder = '', id = uuidv4()) {\n let blockNew = {\n id: id,\n type: type,\n style: '',\n class: classBlock,\n placeholder: placeholder,\n content: content,\n blocks: [],\n setFocus: true,\n };\n \n if (index !== undefined) {\n post.value.content.splice(index + 1, 0, blockNew);\n } else {\n post.value.content.push(blockNew);\n }\n \n showControls.value = null\n emits('update', post.value.content);\n}\n\nfunction handleUpdateBlock(block, update) {\n const index = post.value.content.findIndex(item => item === block);\n\n if (index !== -1) {\n post.value.content[index] = { ...post.value.content[index], ...update };\n }\n emits('update', post.value.content);\n}\n\nfunction handleDeleteBlock(blockToDelete, options = {}) {\n const index = post.value.content.findIndex(block => block.id === blockToDelete.id)\n\n if (index !== -1 && index !== 0) {\n post.value.content.splice(index, 1)\n \n if (index > 0) {\n const previousBlock = post.value.content[index - 1]\n previousBlock.setFocus = true\n previousBlock.setCaretToEnd = true\n }\n }\n \n emits('update', post.value.content)\n}\n</script>\n\n\n<style lang=\"scss\">\n\n</style>\n"],"names":["Textarea","Card","ImageUpload","Embed","Audio","Video","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsHA,UAAM,QAAQ;AASd,UAAM,QAAQ;AAEA,QAAI,IAAI;AACtB,QAAI,OAAO,IAAI,IAAI;AAEnB,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,WAAW,IAAI,KAAK;AAE1B,UAAM,eAAe;AAAA,MACnB,YAAYA;AAAAA,MACZ,MAAMA;AAAAA,MACN,QAAQC;AAAAA,MACR,eAAeC;AAAAA,MACf,SAASC;AAAAA,MACT,SAASC;AAAAA,MACT,SAASC;AAAAA,IACX;AAEA,SAAK,QAAQ,EAAE,SAAS,MAAM,QAAO;AAErC,cAAU,MAAM;AACd,UAAI,KAAK,SAAS,KAAK,MAAM,QAAQ,WAAW,GAAG;AACjD,uBAAe,YAAY,IAAI,GAAG,MAAM,MAAM,aAAa;AAAA,MAC/D;AAAA,IACA,CAAC;AAED,UAAM,gBAAgB,CAAC,eAAe;AACpC,WAAK,MAAM,UAAU;AAAA,IACvB;AAEA,UAAM,kBAAkB,CAAC,eAAe;AACtC,cAAQ,IAAI,4BAA4B,UAAU;AAAA,IACpD;AAEA,UAAM,gBAAgB,CAAC,YAAY,aAAa;AAC9C,cAAQ,IAAI,4BAA4B,YAAY,cAAc,QAAQ;AAAA,IAC5E;AAEA,aAAS,eAAe,OAAO,YAAY,UAAU,IAAI,OAAO,MAAM,aAAa,IAAI,cAAc,IAAI,KAAKC,GAAM,GAAI;AACtH,UAAI,WAAW;AAAA,QACb;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,QAAQ,CAAE;AAAA,QACV,UAAU;AAAA,MACX;AAED,UAAI,UAAU,QAAW;AACvB,aAAK,MAAM,QAAQ,OAAO,QAAQ,GAAG,GAAG,QAAQ;AAAA,MACpD,OAAS;AACL,aAAK,MAAM,QAAQ,KAAK,QAAQ;AAAA,MACpC;AAEE,mBAAa,QAAQ;AACrB,YAAM,UAAU,KAAK,MAAM,OAAO;AAAA,IACpC;AAEA,aAAS,kBAAkB,OAAO,QAAQ;AACxC,YAAM,QAAQ,KAAK,MAAM,QAAQ,UAAU,UAAQ,SAAS,KAAK;AAEjE,UAAI,UAAU,IAAI;AAChB,aAAK,MAAM,QAAQ,KAAK,IAAI,EAAE,GAAG,KAAK,MAAM,QAAQ,KAAK,GAAG,GAAG,OAAQ;AAAA,MAC3E;AACE,YAAM,UAAU,KAAK,MAAM,OAAO;AAAA,IACpC;AAEA,aAAS,kBAAkB,eAAe,UAAU,IAAI;AACtD,YAAM,QAAQ,KAAK,MAAM,QAAQ,UAAU,WAAS,MAAM,OAAO,cAAc,EAAE;AAEjF,UAAI,UAAU,MAAM,UAAU,GAAG;AAC/B,aAAK,MAAM,QAAQ,OAAO,OAAO,CAAC;AAElC,YAAI,QAAQ,GAAG;AACb,gBAAM,gBAAgB,KAAK,MAAM,QAAQ,QAAQ,CAAC;AAClD,wBAAc,WAAW;AACzB,wBAAc,gBAAgB;AAAA,QACpC;AAAA,MACA;AAEE,YAAM,UAAU,KAAK,MAAM,OAAO;AAAA,IACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
|
-
;/* empty css
|
|
4
|
+
;/* empty css */
|
|
5
5
|
const IconEdit = require("../../../icons/navigation/IconEdit.vue.cjs");
|
|
6
6
|
const CardHeader = require("../../../globals/views/components/blocks/CardHeader.vue.cjs");
|
|
7
7
|
require("../../../community/store/reactions.cjs");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, computed, createElementBlock, openBlock, normalizeClass, createVNode, createCommentVNode, createElementVNode, createBlock, renderSlot, withModifiers, toDisplayString, Fragment, renderList } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
import _sfc_main$2 from "../../../icons/navigation/IconEdit.vue.js";
|
|
4
4
|
import _sfc_main$1 from "../../../globals/views/components/blocks/CardHeader.vue.js";
|
|
5
5
|
import "../../../community/store/reactions.js";
|
|
@@ -7,7 +7,7 @@ const Constructor = require("../../../constructor/components/sections/Constructo
|
|
|
7
7
|
const vueDatepicker = require("../../../../../../node_modules/.pnpm/@vuepic_vue-datepicker@11.0.2_vue@3.5.13_typescript@5.8.3_/node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.cjs");
|
|
8
8
|
;/* empty css */
|
|
9
9
|
const Block = require("../../../../components/Block/Block.vue.cjs");
|
|
10
|
-
const Popup = require("../../../../components/Popup/Popup.
|
|
10
|
+
const Popup = require("../../../../components/Popup/Popup.vue.cjs");
|
|
11
11
|
const Field = require("../../../../components/Field/Field.vue.cjs");
|
|
12
12
|
const BlockTags = require("../../../../components/FieldTags/BlockTags.vue.cjs");
|
|
13
13
|
const Checkbox = require("../../../../components/Checkbox/Checkbox.vue.cjs");
|
|
@@ -35,7 +35,7 @@ const _hoisted_3 = { class: "mn-b-thin radius-small w-100 h-10r bg-white flex-ce
|
|
|
35
35
|
const _hoisted_4 = ["onClick"];
|
|
36
36
|
const _hoisted_5 = {
|
|
37
37
|
key: 0,
|
|
38
|
-
class: "pd-b-extra w-100 bg-light pd-big radius-
|
|
38
|
+
class: "pd-b-extra w-100 bg-light pd-big radius-medium"
|
|
39
39
|
};
|
|
40
40
|
const _hoisted_6 = {
|
|
41
41
|
key: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditEvent.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/EditEvent.vue"],"sourcesContent":["<template>\n <article v-if=\"event\" class=\"h-min-100 pd-thin\">\n <div class=\"pd-medium radius-semi mn-b-thin bg-light\">\n <h4 class=\"mn-b-small\">Basic Info</h4>\n \t<div class=\"mn-b-thin radius-small w-100 h-10r bg-white flex-center flex-column flex\">\n \t<UploadImage \n v-model:photo=\"event.cover\"\n :uploadPath=\"'specials'\"\n class=\"h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra\" \n />\n <h4>Upload Event Cover</h4>\n </div>\n\n \t<Field \n v-model:field=\"event.name\" \n label=\"Name\"\n placeholder=\"Event name\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.description\" \n type=\"textarea\" \n placeholder=\"Enter short description\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.location\" \n label=\"Location\"\n placeholder=\"Event location\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <VueDatePicker v-model=\"date\" range class=\"z-index-3 radius-small mn-b-semi bg-white\" />\n </div>\n\n <!-- <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"false\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n /> -->\n\n <Block\n title=\"Tickets\"\n placeholder=\"No line ups added yet\"\n :actions=\"[{\n label: '+',\n function: () => event.ticketsTypes.push({name: null, description: null, photo: null, main: false})\n }]\"\n class=\"cols-1 mn-b-thin t-black gap-thin\"\n >\n <div \n class=\"mn-b-thin gap-small flex-nowrap flex\" \n v-for=\"(item, index) in event.ticketsTypes\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.price\"\n placeholder=\"Price\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div @click=\"() => event.ticketsTypes.splice(index, 1)\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\">\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n\t\t<section v-if=\"event\" class=\"pd-b-extra w-100 bg-light pd-big radius-big\">\n <Constructor \n :content=\"event.content\"\n @update=\"update => event.content = update\"\n />\n </section>\n\n <section v-if=\"event\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPublicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n\n <Popup \n title=\"Final Touches\" \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n > \n <BlockTags\n @tags-changed=\"newTags => event.tags = newTags\"\n :tags=\"event.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n \n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"event.creator.hidden\"\n @update:radio=\"updateEvent => event.creator.hidden = updateEvent\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n </article>\n\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport VueDatePicker from '@vuepic/vue-datepicker';\nimport '@vuepic/vue-datepicker/dist/main.css'\n\n\n\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport SelectMulti from '@martyrs/src/components/SelectMulti/SelectMulti.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport { ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst { hasAccess } = useGlobalMixins()\n\nlet event = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nconst date = ref(new Date);\nconst customPosition = () => ({ top: 0, left: 0 });\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await events.read({ user: auth.state.user._id, url: route.params.url });\n\n event.value = data.pop();\n\n if (!event.value) {\n router.push({name: 'notfound'})\n }\n\n if (event.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(event.value.owner.target._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (event.value.owner.type === 'user' && event.value.creator.target._id !== auth.state.user._id) {\n console.log(event.value.creator.target)\n console.log(auth.state.user._id)\n router.push({name: 'unauthorized'})\n }\n\n const startDate = event.value.date.start;\n const endDate = event.value.date.end;\n\n date.value = [startDate, endDate];\n\n } else {\n events.clean();\n event.value = events.state.current;\n\n const startDate = new Date();\n const endDate = new Date();\n date.value = [startDate, endDate];\n }\n\n if (!event.value.owner) event.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!event.value.creator) event.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n if (event.value.owner.type === 'organization') selectedOrganization.value = {\n _id: event.value.owner.target._id,\n profile: {\n name: event.value.owner.target.profile.name,\n photo: event.value.owner.target.profile.photo\n }\n }\n})\n\nconst isPublicationPopup = ref(false)\n\nfunction openPublicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n event.value.status = \"draft\"\n \n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n if (route.params.url) {\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) event.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) event.value.creator.hidden = false\n if (!selectedOrganization.value) event.value.organization = event.value.creator\n\n event.value.status = \"published\"\n\n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n console.log(date.value)\n if (route.params.url) {\n console.log(event.value)\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this event?')) {\n events.remove(event.value._id)\n .then(response => {\n router.push({ name: 'User Events', params: { user: event.value.creator.target._id } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n</script>\n\n<style lang=\"scss\">\n .dp__input {\n border: 0;\n padding: var(--medium);\n padding-left: 3rem;\n background: rgb(var(--white)) !important;\n border-radius: var(--small);\n }\n</style>"],"names":["useRoute","useRouter","useGlobalMixins","ref","onMounted","events.read","auth.state","events.clean","events.state","events.update","events.create","events.remove"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2MA,UAAM,QAAQA,UAAAA,SAAU;AACxB,UAAM,SAASC,UAAAA,UAAW;AAE1B,UAAM,EAAE,UAAW,IAAGC,OAAe,gBAAA;AAErC,QAAI,QAAQC,IAAG,IAAC,IAAI;AACNA,QAAAA,IAAI,IAAI;AAEtB,UAAM,eAAeA,IAAG,IAAC,EAAE;AAC3B,UAAM,uBAAuBA,IAAG,IAAC,IAAI;AAErC,UAAM,OAAOA,IAAAA,IAAI,oBAAI,MAAI;AAGzBC,QAAAA,UAAU,YAAW;AAEnB,UAAI,MAAM,OAAO,KAAK;AACpB,cAAM,OAAO,MAAMC,YAAY,EAAE,MAAMC,KAAU,MAAC,KAAK,KAAK,KAAK,MAAM,OAAO,IAAG,CAAE;AAEnF,cAAM,QAAQ,KAAK,IAAK;AAExB,YAAI,CAAC,MAAM,OAAO;AACjB,iBAAO,KAAK,EAAC,MAAM,WAAU,CAAC;AAAA,QACnC;AAEI,YAAI,MAAM,MAAM,MAAM,SAAS,gBAAgB;AAE7C,gBAAM,WAAW,UAAU,MAAM,MAAM,MAAM,OAAO,KAAK,UAAU,QAAQA,KAAAA,MAAW,UAAUA,KAAAA,MAAW,OAAO,KAAK;AAEvH,cAAI,CAAC,UAAU;AACb,mBAAO,KAAK,EAAC,MAAM,eAAc,CAAC;AAAA,UAC1C;AAAA,QACA;AAEK,YAAI,MAAM,MAAM,MAAM,SAAS,UAAU,MAAM,MAAM,QAAQ,OAAO,QAAQA,KAAAA,MAAW,KAAK,KAAK;AAChG,kBAAQ,IAAI,MAAM,MAAM,QAAQ,MAAM;AACtC,kBAAQ,IAAIA,WAAW,KAAK,GAAG;AAC/B,iBAAO,KAAK,EAAC,MAAM,eAAc,CAAC;AAAA,QACxC;AAEI,cAAM,YAAY,MAAM,MAAM,KAAK;AACnC,cAAM,UAAU,MAAM,MAAM,KAAK;AAEjC,aAAK,QAAQ,CAAC,WAAW,OAAO;AAAA,MAEpC,OAAS;AACLC,qBAAc;AACd,cAAM,QAAQC,OAAAA,MAAa;AAE3B,cAAM,YAAY,oBAAI,KAAM;AAC5B,cAAM,UAAU,oBAAI,KAAM;AAC1B,aAAK,QAAQ,CAAC,WAAW,OAAO;AAAA,MACpC;AAEE,UAAI,CAAC,MAAM,MAAM,MAAO,OAAM,MAAM,QAAQ;AAAA,QAC1C,QAAQF,KAAAA,MAAW,KAAK;AAAA,QACxB,MAAM;AAAA,MACV;AAEE,UAAI,CAAC,MAAM,MAAM,QAAS,OAAM,MAAM,UAAU;AAAA,QAC9C,QAAQA,KAAAA,MAAW,KAAK;AAAA,QACxB,MAAM;AAAA,QACN,QAAQ;AAAA,MACZ;AAEE,UAAI,MAAM,MAAM,MAAM,SAAS,eAAgB,sBAAqB,QAAQ;AAAA,QAC1E,KAAK,MAAM,MAAM,MAAM,OAAO;AAAA,QAC9B,SAAS;AAAA,UACP,MAAM,MAAM,MAAM,MAAM,OAAO,QAAQ;AAAA,UACvC,OAAO,MAAM,MAAM,MAAM,OAAO,QAAQ;AAAA,QAC9C;AAAA,MACA;AAAA,IACA,CAAC;AAED,UAAM,qBAAqBH,IAAG,IAAC,KAAK;AAEpC,aAAS,uBAAuB;AAC9B,yBAAmB,QAAQ;AAAA,IAC7B;AACA,aAAS,wBAAwB;AAC/B,yBAAmB,QAAQ;AAAA,IAC7B;AAEA,aAAS,WAAW;AAElB,UAAI,aAAa,MAAM,SAAS,EAAG,cAAa,MAAM,IAAI,SAAQ,IAAI,IAAK;AAE3E,YAAM,MAAM,SAAS;AAErB,YAAM,MAAM,OAAO;AAAA,QACjB,OAAO,KAAK,MAAM,CAAC;AAAA,QACnB,KAAK,KAAK,MAAM,CAAC;AAAA,MACrB;AAEE,UAAI,MAAM,OAAO,KAAK;AACpBM,eAAa,OAAC,MAAM,KAAK,EACtB,KAAK,cAAY;AAChB,iBAAO,KAAK,EAAE,MAAM,SAAS,QAAQ,EAAE,KAAK,SAAS,IAAG,GAAI;AAAA,QAC7D,CAAA,EACA,MAAM,WAAS;AACd,kBAAQ,MAAM,KAAK;AAAA,QACpB,CAAA;AAAA,MACP,OAAS;AACLC,eAAa,OAAC,MAAM,KAAK,EACtB,KAAK,cAAY;AAChB,iBAAO,KAAK,EAAE,MAAM,SAAS,QAAQ,EAAE,KAAK,SAAS,IAAG,GAAI;AAAA,QAC7D,CAAA,EACA,MAAM,WAAS;AACd,kBAAQ,MAAM,KAAK;AAAA,QACpB,CAAA;AAAA,MACP;AAAA,IACA;AAEA,aAAS,WAAW;AAElB,UAAI,qBAAqB,MAAO,OAAM,MAAM,QAAQ;AAAA,QAClD,QAAQ,qBAAqB,MAAM;AAAA,QACnC,MAAM;AAAA,MACV;AAEE,UAAI,CAAC,qBAAqB,MAAO,OAAM,MAAM,QAAQ,SAAS;AAC9D,UAAI,CAAC,qBAAqB,MAAO,OAAM,MAAM,eAAe,MAAM,MAAM;AAExE,YAAM,MAAM,SAAS;AAErB,YAAM,MAAM,OAAO;AAAA,QACjB,OAAO,KAAK,MAAM,CAAC;AAAA,QACnB,KAAK,KAAK,MAAM,CAAC;AAAA,MACrB;AAEE,cAAQ,IAAI,KAAK,KAAK;AACtB,UAAI,MAAM,OAAO,KAAK;AACpB,gBAAQ,IAAI,MAAM,KAAK;AACvBD,eAAa,OAAC,MAAM,KAAK,EACtB,KAAK,cAAY;AAChB,iBAAO,KAAK,EAAE,MAAM,SAAS,QAAQ,EAAE,KAAK,SAAS,IAAG,GAAI;AAAA,QAC7D,CAAA,EACA,MAAM,WAAS;AACd,kBAAQ,IAAI,KAAK;AAAA,QACzB,CAAO;AAAA,MACP,OAAS;AACLC,eAAa,OAAC,MAAM,KAAK,EACtB,KAAK,cAAY;AAChB,iBAAO,KAAK,EAAE,MAAM,SAAS,QAAQ,EAAE,KAAK,SAAS,IAAG,GAAI;AAAA,QAC7D,CAAA,EACA,MAAM,WAAS;AACd,kBAAQ,IAAI,KAAK;AAAA,QACzB,CAAO;AAAA,MACP;AAAA,IACA;AAEA,aAAS,WAAW;AAClB,UAAI,QAAQ,6CAA6C,GAAG;AAC1DC,sBAAc,MAAM,MAAM,GAAG,EAC1B,KAAK,cAAY;AAChB,iBAAO,KAAK,EAAE,MAAM,eAAe,QAAQ,EAAE,MAAM,MAAM,MAAM,QAAQ,OAAO,IAAK,EAAA,CAAE;AAAA,QACtF,CAAA,EACA,MAAM,WAAS;AACd,kBAAQ,MAAM,KAAK;AAAA,QACpB,CAAA;AAAA,MACP;AAAA,IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"EditEvent.vue.cjs","sources":["../../../../../../../src/modules/events/components/pages/EditEvent.vue"],"sourcesContent":["<template>\n <article v-if=\"event\" class=\"h-min-100 pd-thin\">\n <div class=\"pd-medium radius-semi mn-b-thin bg-light\">\n <h4 class=\"mn-b-small\">Basic Info</h4>\n \t<div class=\"mn-b-thin radius-small w-100 h-10r bg-white flex-center flex-column flex\">\n \t<UploadImage \n v-model:photo=\"event.cover\"\n :uploadPath=\"'specials'\"\n class=\"h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra\" \n />\n <h4>Upload Event Cover</h4>\n </div>\n\n \t<Field \n v-model:field=\"event.name\" \n label=\"Name\"\n placeholder=\"Event name\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.description\" \n type=\"textarea\" \n placeholder=\"Enter short description\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.location\" \n label=\"Location\"\n placeholder=\"Event location\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <VueDatePicker v-model=\"date\" range class=\"z-index-3 radius-small mn-b-semi bg-white\" />\n </div>\n\n <!-- <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"false\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n /> -->\n\n <Block\n title=\"Tickets\"\n placeholder=\"No line ups added yet\"\n :actions=\"[{\n label: '+',\n function: () => event.ticketsTypes.push({name: null, description: null, photo: null, main: false})\n }]\"\n class=\"cols-1 mn-b-thin t-black gap-thin\"\n >\n <div \n class=\"mn-b-thin gap-small flex-nowrap flex\" \n v-for=\"(item, index) in event.ticketsTypes\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.price\"\n placeholder=\"Price\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div @click=\"() => event.ticketsTypes.splice(index, 1)\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\">\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n\t\t<section v-if=\"event\" class=\"pd-b-extra w-100 bg-light pd-big radius-medium\">\n <Constructor \n :content=\"event.content\"\n @update=\"update => event.content = update\"\n />\n </section>\n\n <section v-if=\"event\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPublicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n\n <Popup \n title=\"Final Touches\" \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n > \n <BlockTags\n @tags-changed=\"newTags => event.tags = newTags\"\n :tags=\"event.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n \n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"event.creator.hidden\"\n @update:radio=\"updateEvent => event.creator.hidden = updateEvent\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n </article>\n\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport VueDatePicker from '@vuepic/vue-datepicker';\nimport '@vuepic/vue-datepicker/dist/main.css'\n\n\n\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport SelectMulti from '@martyrs/src/components/SelectMulti/SelectMulti.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport { ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst { hasAccess } = useGlobalMixins()\n\nlet event = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nconst date = ref(new Date);\nconst customPosition = () => ({ top: 0, left: 0 });\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await events.read({ user: auth.state.user._id, url: route.params.url });\n\n event.value = data.pop();\n\n if (!event.value) {\n router.push({name: 'notfound'})\n }\n\n if (event.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(event.value.owner.target._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (event.value.owner.type === 'user' && event.value.creator.target._id !== auth.state.user._id) {\n console.log(event.value.creator.target)\n console.log(auth.state.user._id)\n router.push({name: 'unauthorized'})\n }\n\n const startDate = event.value.date.start;\n const endDate = event.value.date.end;\n\n date.value = [startDate, endDate];\n\n } else {\n events.clean();\n event.value = events.state.current;\n\n const startDate = new Date();\n const endDate = new Date();\n date.value = [startDate, endDate];\n }\n\n if (!event.value.owner) event.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!event.value.creator) event.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n if (event.value.owner.type === 'organization') selectedOrganization.value = {\n _id: event.value.owner.target._id,\n profile: {\n name: event.value.owner.target.profile.name,\n photo: event.value.owner.target.profile.photo\n }\n }\n})\n\nconst isPublicationPopup = ref(false)\n\nfunction openPublicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n event.value.status = \"draft\"\n \n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n if (route.params.url) {\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) event.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) event.value.creator.hidden = false\n if (!selectedOrganization.value) event.value.organization = event.value.creator\n\n event.value.status = \"published\"\n\n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n console.log(date.value)\n if (route.params.url) {\n console.log(event.value)\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this event?')) {\n events.remove(event.value._id)\n .then(response => {\n router.push({ name: 'User Events', params: { user: event.value.creator.target._id } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n</script>\n\n<style lang=\"scss\">\n .dp__input {\n border: 0;\n padding: var(--medium);\n padding-left: 3rem;\n background: rgb(var(--white)) !important;\n border-radius: var(--small);\n }\n</style>"],"names":["useRoute","useRouter","useGlobalMixins","ref","onMounted","events.read","auth.state","events.clean","events.state","events.update","events.create","events.remove"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import _sfc_main$4 from "../../../constructor/components/sections/Constructor.vu
|
|
|
5
5
|
import Qn from "../../../../../../node_modules/.pnpm/@vuepic_vue-datepicker@11.0.2_vue@3.5.13_typescript@5.8.3_/node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js";
|
|
6
6
|
/* empty css */
|
|
7
7
|
import _sfc_main$2 from "../../../../components/Block/Block.vue.js";
|
|
8
|
-
import _sfc_main$5 from "../../../../components/Popup/Popup.
|
|
8
|
+
import _sfc_main$5 from "../../../../components/Popup/Popup.vue.js";
|
|
9
9
|
import Field from "../../../../components/Field/Field.vue.js";
|
|
10
10
|
import _sfc_main$6 from "../../../../components/FieldTags/BlockTags.vue.js";
|
|
11
11
|
import _sfc_main$9 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
@@ -33,7 +33,7 @@ const _hoisted_3 = { class: "mn-b-thin radius-small w-100 h-10r bg-white flex-ce
|
|
|
33
33
|
const _hoisted_4 = ["onClick"];
|
|
34
34
|
const _hoisted_5 = {
|
|
35
35
|
key: 0,
|
|
36
|
-
class: "pd-b-extra w-100 bg-light pd-big radius-
|
|
36
|
+
class: "pd-b-extra w-100 bg-light pd-big radius-medium"
|
|
37
37
|
};
|
|
38
38
|
const _hoisted_6 = {
|
|
39
39
|
key: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditEvent.vue.js","sources":["../../../../../../../src/modules/events/components/pages/EditEvent.vue"],"sourcesContent":["<template>\n <article v-if=\"event\" class=\"h-min-100 pd-thin\">\n <div class=\"pd-medium radius-semi mn-b-thin bg-light\">\n <h4 class=\"mn-b-small\">Basic Info</h4>\n \t<div class=\"mn-b-thin radius-small w-100 h-10r bg-white flex-center flex-column flex\">\n \t<UploadImage \n v-model:photo=\"event.cover\"\n :uploadPath=\"'specials'\"\n class=\"h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra\" \n />\n <h4>Upload Event Cover</h4>\n </div>\n\n \t<Field \n v-model:field=\"event.name\" \n label=\"Name\"\n placeholder=\"Event name\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.description\" \n type=\"textarea\" \n placeholder=\"Enter short description\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.location\" \n label=\"Location\"\n placeholder=\"Event location\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <VueDatePicker v-model=\"date\" range class=\"z-index-3 radius-small mn-b-semi bg-white\" />\n </div>\n\n <!-- <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"false\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n /> -->\n\n <Block\n title=\"Tickets\"\n placeholder=\"No line ups added yet\"\n :actions=\"[{\n label: '+',\n function: () => event.ticketsTypes.push({name: null, description: null, photo: null, main: false})\n }]\"\n class=\"cols-1 mn-b-thin t-black gap-thin\"\n >\n <div \n class=\"mn-b-thin gap-small flex-nowrap flex\" \n v-for=\"(item, index) in event.ticketsTypes\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.price\"\n placeholder=\"Price\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div @click=\"() => event.ticketsTypes.splice(index, 1)\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\">\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n\t\t<section v-if=\"event\" class=\"pd-b-extra w-100 bg-light pd-big radius-big\">\n <Constructor \n :content=\"event.content\"\n @update=\"update => event.content = update\"\n />\n </section>\n\n <section v-if=\"event\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPublicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n\n <Popup \n title=\"Final Touches\" \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n > \n <BlockTags\n @tags-changed=\"newTags => event.tags = newTags\"\n :tags=\"event.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n \n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"event.creator.hidden\"\n @update:radio=\"updateEvent => event.creator.hidden = updateEvent\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n </article>\n\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport VueDatePicker from '@vuepic/vue-datepicker';\nimport '@vuepic/vue-datepicker/dist/main.css'\n\n\n\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport SelectMulti from '@martyrs/src/components/SelectMulti/SelectMulti.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport { ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst { hasAccess } = useGlobalMixins()\n\nlet event = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nconst date = ref(new Date);\nconst customPosition = () => ({ top: 0, left: 0 });\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await events.read({ user: auth.state.user._id, url: route.params.url });\n\n event.value = data.pop();\n\n if (!event.value) {\n router.push({name: 'notfound'})\n }\n\n if (event.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(event.value.owner.target._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (event.value.owner.type === 'user' && event.value.creator.target._id !== auth.state.user._id) {\n console.log(event.value.creator.target)\n console.log(auth.state.user._id)\n router.push({name: 'unauthorized'})\n }\n\n const startDate = event.value.date.start;\n const endDate = event.value.date.end;\n\n date.value = [startDate, endDate];\n\n } else {\n events.clean();\n event.value = events.state.current;\n\n const startDate = new Date();\n const endDate = new Date();\n date.value = [startDate, endDate];\n }\n\n if (!event.value.owner) event.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!event.value.creator) event.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n if (event.value.owner.type === 'organization') selectedOrganization.value = {\n _id: event.value.owner.target._id,\n profile: {\n name: event.value.owner.target.profile.name,\n photo: event.value.owner.target.profile.photo\n }\n }\n})\n\nconst isPublicationPopup = ref(false)\n\nfunction openPublicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n event.value.status = \"draft\"\n \n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n if (route.params.url) {\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) event.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) event.value.creator.hidden = false\n if (!selectedOrganization.value) event.value.organization = event.value.creator\n\n event.value.status = \"published\"\n\n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n console.log(date.value)\n if (route.params.url) {\n console.log(event.value)\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this event?')) {\n events.remove(event.value._id)\n .then(response => {\n router.push({ name: 'User Events', params: { user: event.value.creator.target._id } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n</script>\n\n<style lang=\"scss\">\n .dp__input {\n border: 0;\n padding: var(--medium);\n padding-left: 3rem;\n background: rgb(var(--white)) !important;\n border-radius: var(--small);\n }\n</style>"],"names":["events.read","auth.state","events.clean","events.state","events.update","events.create","events.remove"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditEvent.vue.js","sources":["../../../../../../../src/modules/events/components/pages/EditEvent.vue"],"sourcesContent":["<template>\n <article v-if=\"event\" class=\"h-min-100 pd-thin\">\n <div class=\"pd-medium radius-semi mn-b-thin bg-light\">\n <h4 class=\"mn-b-small\">Basic Info</h4>\n \t<div class=\"mn-b-thin radius-small w-100 h-10r bg-white flex-center flex-column flex\">\n \t<UploadImage \n v-model:photo=\"event.cover\"\n :uploadPath=\"'specials'\"\n class=\"h-4r w-4r aspect-1x1 o-hidden mn-b-thin radius-extra\" \n />\n <h4>Upload Event Cover</h4>\n </div>\n\n \t<Field \n v-model:field=\"event.name\" \n label=\"Name\"\n placeholder=\"Event name\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.description\" \n type=\"textarea\" \n placeholder=\"Enter short description\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <Field \n v-model:field=\"event.location\" \n label=\"Location\"\n placeholder=\"Event location\" \n class=\"mn-b-thin w-100 bg-white pd-medium radius-small\" \n />\n <VueDatePicker v-model=\"date\" range class=\"z-index-3 radius-small mn-b-semi bg-white\" />\n </div>\n\n <!-- <Calendar\n v-model:date=\"date\"\n :locale=\"$i18n.locale\"\n :allowRange=\"false\"\n class=\"radius-semi w-100 o-hidden bg-light\"\n /> -->\n\n <Block\n title=\"Tickets\"\n placeholder=\"No line ups added yet\"\n :actions=\"[{\n label: '+',\n function: () => event.ticketsTypes.push({name: null, description: null, photo: null, main: false})\n }]\"\n class=\"cols-1 mn-b-thin t-black gap-thin\"\n >\n <div \n class=\"mn-b-thin gap-small flex-nowrap flex\" \n v-for=\"(item, index) in event.ticketsTypes\" \n :key=\"index\"\n > \n <Field\n v-model:field=\"item.name\"\n placeholder=\"Name\"\n class=\"w-100 bg-white radius-small pd-medium\"\n /> \n <Field\n v-model:field=\"item.price\"\n placeholder=\"Price\"\n class=\"w-100 bg-white radius-small pd-medium\"\n />\n <div @click=\"() => event.ticketsTypes.splice(index, 1)\" class=\"radius-small h-100 i-big flex-center flex aspect-1x1 bg-red\">\n <IconDelete \n class=\"i-medium\"\n />\n </div>\n </div>\n </Block>\n\n\t\t<section v-if=\"event\" class=\"pd-b-extra w-100 bg-light pd-big radius-medium\">\n <Constructor \n :content=\"event.content\"\n @update=\"update => event.content = update\"\n />\n </section>\n\n <section v-if=\"event\" class=\"pd-thin pos-sticky pos-l-0 pos-b-0 w-100 \">\n <div class=\"pd-thin radius-big bg-main w-100 flex-nowrap flex\">\n <a v-if=\"route.params.url\" @click=\"onDelete()\" class=\"mn-r-auto bg-red t-white t-black button\">Delete</a>\n <a @click=\"onDrafts()\" class=\"mn-l-auto bg-white t-black button\">To Drafts</a>\n <a @click=\"openPublicationPopup()\" class=\"mn-l-thin bg-black t-white button\">Publish</a>\n </div>\n </section>\n\n <Popup \n title=\"Final Touches\" \n @close-popup=\"closePublicationPopup\" \n :isPopupOpen=\"isPublicationPopup\"\n class=\"w-m-33r t-left pd-big bg-white radius-big\"\n > \n <BlockTags\n @tags-changed=\"newTags => event.tags = newTags\"\n :tags=\"event.tags\"\n class=\"mn-b-small\"\n />\n\n <h5 class=\"mn-b-thin\">Add to public</h5>\n <Card\n v-if=\"selectedOrganization\"\n :photo=\"selectedOrganization.profile?.photo\"\n :title=\"selectedOrganization.profile?.name\"\n @click=\"() => { \n selectedOrganization = null\n }\"\n class=\"h-4r w-100 bg-light pd-thin radius-medium mn-b-thin\"\n />\n\n <section v-else class=\"mn-b-thin h-25r o-x-hidden o-y-scroll bg-light radius-big pd-small \">\n <Feed\n :showLoadMore=\"false\" \n :search=\"{\n placeholder: 'Search organization...',\n class: 'bg-white mn-b-thin'\n }\"\n :states=\"{\n empty: {\n title: 'No organizations Found',\n description: 'Currently, there are no such organizations available.'\n }\n }\"\n :store=\"{\n read: (options) => organizations.actions.read(options),\n state: null\n }\"\n :options=\"{\n user: auth.state.user._id,\n postable: auth.state.user._id,\n lookup: ['memberships']\n }\"\n v-slot=\"{ \n items \n }\"\n >\n <Card\n v-for=\"(organization, index) in items\" \n v-memo=\"[organization._id, organization.profile.name]\"\n :photo=\"organization.profile?.photo\"\n :title=\"organization.profile?.name\"\n @click=\"() => { \n selectedOrganization = organization\n }\"\n class=\"h-4r bg-white pd-thin radius-medium w-100 mn-b-thin\"\n />\n </Feed>\n </section>\n\n \n <h5 v-if=\"selectedOrganization\" class=\"mn-b-thin\">Options:</h5>\n <div v-if=\"selectedOrganization\" class=\"mn-b-medium br-grey-transp-25 br-2px br-solid pd-small radius-big\">\n <Checkbox \n :label=\"'Hide Author'\"\n :radio=\"event.creator.hidden\"\n @update:radio=\"updateEvent => event.creator.hidden = updateEvent\"\n name=\"prices\"\n class=\"w-100\"\n />\n </div>\n <Button :submit=\"onSubmit\" :callback=\"redirectTo\" class=\"w-100 bg-black t-white\">Publish</Button>\n </Popup>\n </article>\n\n</template>\n\n<script setup>\nimport Textarea from '@martyrs/src/modules/constructor/components/elements/Textarea.vue';\nimport Constructor from '@martyrs/src/modules/constructor/components/sections/Constructor.vue';\n\nimport VueDatePicker from '@vuepic/vue-datepicker';\nimport '@vuepic/vue-datepicker/dist/main.css'\n\n\n\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\n\nimport Block from '@martyrs/src/components/Block/Block.vue';\nimport Popup from '@martyrs/src/components/Popup/Popup.vue';\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport BlockTags from '@martyrs/src/components/FieldTags/BlockTags.vue';\nimport Checkbox from '@martyrs/src/components/Checkbox/Checkbox.vue';\nimport SelectMulti from '@martyrs/src/components/SelectMulti/SelectMulti.vue';\nimport Upload from '@martyrs/src/components/Upload/Upload.vue';\nimport UploadImage from '@martyrs/src/components/UploadImage/UploadImage.vue';\nimport EditImages from '@martyrs/src/components/EditImages/EditImages.vue';\nimport Feed from '@martyrs/src/components/Feed/Feed.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'; \n\nimport Card from '@martyrs/src/modules/globals/views/components/blocks/Card.vue';\n\nimport IconDelete from '@martyrs/src/modules/icons/navigation/IconDelete.vue';\n\nimport { ref, onMounted } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\n\nimport { useGlobalMixins } from \"@martyrs/src/modules/globals/views/mixins/mixins.js\"\n\nimport * as events from '@martyrs/src/modules/events/store/events.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth';\nimport * as organizations from '@martyrs/src/modules/organizations/store/organizations';\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst { hasAccess } = useGlobalMixins()\n\nlet event = ref(null);\nlet publics = ref(null);\n\nconst selectedTags = ref([]);\nconst selectedOrganization = ref(null);\n\nconst date = ref(new Date);\nconst customPosition = () => ({ top: 0, left: 0 });\n\nonMounted(async () =>{\n \n if (route.params.url) {\n const data = await events.read({ user: auth.state.user._id, url: route.params.url });\n\n event.value = data.pop();\n\n if (!event.value) {\n router.push({name: 'notfound'})\n }\n\n if (event.value.owner.type === 'organization') {\n // Если пост принадлежит организации, проверяем права на редактирование через `hasAccess`\n const isAccess = hasAccess(event.value.owner.target._id, 'events', 'edit', auth.state.accesses, auth.state.access.roles);\n\n if (!isAccess) {\n router.push({name: 'unauthorized'})\n }\n }\n\n if (event.value.owner.type === 'user' && event.value.creator.target._id !== auth.state.user._id) {\n console.log(event.value.creator.target)\n console.log(auth.state.user._id)\n router.push({name: 'unauthorized'})\n }\n\n const startDate = event.value.date.start;\n const endDate = event.value.date.end;\n\n date.value = [startDate, endDate];\n\n } else {\n events.clean();\n event.value = events.state.current;\n\n const startDate = new Date();\n const endDate = new Date();\n date.value = [startDate, endDate];\n }\n\n if (!event.value.owner) event.value.owner = {\n target: auth.state.user._id,\n type: 'user'\n }\n\n if (!event.value.creator) event.value.creator = {\n target: auth.state.user._id,\n type: 'user',\n hidden: false\n }\n\n if (event.value.owner.type === 'organization') selectedOrganization.value = {\n _id: event.value.owner.target._id,\n profile: {\n name: event.value.owner.target.profile.name,\n photo: event.value.owner.target.profile.photo\n }\n }\n})\n\nconst isPublicationPopup = ref(false)\n\nfunction openPublicationPopup() {\n isPublicationPopup.value = true;\n}\nfunction closePublicationPopup() {\n isPublicationPopup.value = false;\n}\n\nfunction onDrafts() {\n\n if (selectedTags.value.length > 0) selectedTags.value.map(tag => (tag.text))\n\n event.value.status = \"draft\"\n \n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n if (route.params.url) {\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n\nfunction onSubmit() {\n\n if (selectedOrganization.value) event.value.owner = {\n target: selectedOrganization.value._id,\n type: 'organization'\n }\n\n if (!selectedOrganization.value) event.value.creator.hidden = false\n if (!selectedOrganization.value) event.value.organization = event.value.creator\n\n event.value.status = \"published\"\n\n event.value.date = {\n start: date.value[0],\n end: date.value[1]\n }\n\n console.log(date.value)\n if (route.params.url) {\n console.log(event.value)\n events.update(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n } else {\n events.create(event.value)\n .then(response => {\n router.push({ name: 'Event', params: { url: response.url } });\n })\n .catch(error => {\n console.log(error);\n });\n }\n}\n\nfunction onDelete() {\n if (confirm('Are you sure you want to delete this event?')) {\n events.remove(event.value._id)\n .then(response => {\n router.push({ name: 'User Events', params: { user: event.value.creator.target._id } });\n })\n .catch(error => {\n console.error(error);\n })\n }\n}\n</script>\n\n<style lang=\"scss\">\n .dp__input {\n border: 0;\n padding: var(--medium);\n padding-left: 3rem;\n background: rgb(var(--white)) !important;\n border-radius: var(--small);\n }\n</style>"],"names":["events.read","auth.state","events.clean","events.state","events.update","events.create","events.remove"],"mappings":"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"}
|