@ozdao/martyrs 0.2.492 → 0.2.494
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/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/builder.cjs +53 -90
- package/dist/builder.js +54 -91
- package/dist/{crud-B-kQw3Z5.cjs → crud-JN_LFj01.cjs} +3 -0
- package/dist/{crud-Cwx5VlSm.js → crud-sE7GLPbj.js} +3 -0
- package/dist/globals.server.cjs +322 -3
- package/dist/globals.server.js +303 -1
- package/dist/{globals.verifier-D68mHEBl.cjs → globals.verifier-C0zj_LLo.cjs} +8 -1
- package/dist/{globals.verifier-CWFz5Gh2.js → globals.verifier-DFqKQ7hK.js} +8 -1
- package/dist/inventory.server.cjs +2 -2
- package/dist/inventory.server.js +2 -2
- package/dist/{main-SZQ1QjeP.js → main-CJm5myDI.js} +631 -607
- package/dist/{main-MzmGbSxs.cjs → main-DTaE01lg.cjs} +6 -6
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js +1 -1
- package/dist/martyrs/src/components/Calendar/Calendar.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +33 -7
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +33 -7
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js +2 -2
- package/dist/martyrs/src/components/Menu/MenuItem.vue.js.map +1 -1
- package/dist/martyrs/src/components/PhotoViewer/PhotoViewer.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.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/ProfileEditProfile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.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/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +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/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +5 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +5 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/dist/martyrs/src/modules/icons/entities/IconTime.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/entities/IconTime.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronLeft.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.cjs +2 -2
- package/dist/martyrs/src/modules/icons/navigation/IconChevronRight.vue.js +2 -2
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js +6 -6
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs +22 -15
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +23 -16
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/cards/ArtistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs +31 -13
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +33 -15
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs +39 -22
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +39 -22
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +385 -125
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +391 -131
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs +24 -7
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +25 -8
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +99 -87
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +111 -99
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs +21 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js +21 -0
- package/dist/martyrs/src/modules/music/components/layouts/MusicBottomPlayer.vue.js.map +1 -0
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +442 -210
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +445 -213
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +92 -117
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +93 -118
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs +72 -113
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js +78 -119
- package/dist/martyrs/src/modules/music/components/pages/MusicHome.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs +15 -12
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +15 -12
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +558 -429
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +560 -431
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +146 -284
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +149 -287
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +460 -63
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +462 -65
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs +126 -136
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +129 -139
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs +18 -15
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js +18 -15
- package/dist/martyrs/src/modules/music/components/player/TrackProgress.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs +28 -23
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +29 -24
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.cjs +3 -6
- package/dist/martyrs/src/modules/music/music.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/music.client.js +9 -12
- package/dist/martyrs/src/modules/music/music.client.js.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +27 -1
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.js +27 -1
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/artists.cjs +6 -4
- package/dist/martyrs/src/modules/music/store/artists.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/artists.js +6 -4
- package/dist/martyrs/src/modules/music/store/artists.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/player.cjs +5 -0
- package/dist/martyrs/src/modules/music/store/player.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/player.js +5 -0
- package/dist/martyrs/src/modules/music/store/player.js.map +1 -1
- package/dist/martyrs/src/modules/music/store/tracks.cjs +22 -0
- package/dist/martyrs/src/modules/music/store/tracks.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/store/tracks.js +22 -0
- package/dist/martyrs/src/modules/music/store/tracks.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormAddCustomer.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormCustomerDetails.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.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- 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 +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +1 -1
- 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/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.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/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/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/ProductEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs +4 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js +4 -3
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttBar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs +37 -70
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js +38 -71
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttChart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +2 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +6 -5
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs +45 -52
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js +46 -53
- package/dist/martyrs/src/modules/rents/views/components/pages/Rents.vue.js.map +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/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.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 +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.cjs +124 -31
- package/dist/music.server.js +124 -31
- package/dist/organizations.server.cjs +1 -1
- package/dist/organizations.server.js +1 -1
- package/dist/products.server.cjs +2 -2
- package/dist/products.server.js +2 -2
- package/dist/rents.server.cjs +3 -3
- package/dist/rents.server.js +3 -3
- package/dist/style.css +373 -80
- package/dist/{web-D7lZjuC0.js → web-Dkk0_7TA.js} +1 -1
- package/dist/{web-D-YZ9KHz.cjs → web-stVkXd0l.cjs} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.prod.js +21 -5
- package/src/builder/rspack/rspack.config.spa.client.js +0 -44
- package/src/builder/rspack/rspack.config.ssr.client.js +40 -40
- package/src/components/Calendar/Calendar.vue +378 -377
- package/src/components/Feed/Feed.vue +28 -2
- package/src/modules/globals/controllers/classes/crud/crud.policies.js +5 -0
- package/src/modules/globals/controllers/classes/globals.validator.js +8 -1
- package/src/modules/globals/views/components/layouts/Client.vue +7 -0
- package/src/modules/music/README.md +8 -0
- package/src/modules/music/components/SidebarMusic.vue +6 -9
- package/src/modules/music/components/cards/AlbumCard.vue +20 -14
- package/src/modules/music/components/cards/ArtistCard.vue +1 -1
- package/src/modules/music/components/cards/PlaylistCard.vue +31 -11
- package/src/modules/music/components/cards/TrackListCard.vue +24 -13
- package/src/modules/music/components/forms/PlaylistForm.vue +417 -107
- package/src/modules/music/components/forms/SearchForm.vue +31 -8
- package/src/modules/music/components/forms/TrackForm.vue +50 -32
- package/src/modules/music/components/layouts/MusicBottomPlayer.vue +17 -0
- package/src/modules/music/components/pages/Album.vue +373 -186
- package/src/modules/music/components/pages/Artist.vue +54 -94
- package/src/modules/music/components/pages/MusicHome.vue +59 -56
- package/src/modules/music/components/pages/MusicLibrary.vue +13 -11
- package/src/modules/music/components/pages/Playlist.vue +495 -379
- package/src/modules/music/components/pages/SearchResults.vue +185 -313
- package/src/modules/music/components/pages/Track.vue +363 -69
- package/src/modules/music/components/player/MusicPlayer.vue +368 -97
- package/src/modules/music/components/player/TrackProgress.vue +76 -22
- package/src/modules/music/components/player/VolumeControl.vue +61 -28
- package/src/modules/music/controllers/search.controller.js +3 -0
- package/src/modules/music/controllers/stream.controller.js +11 -3
- package/src/modules/music/middlewares/playlists.verifier.js +1 -1
- package/src/modules/music/music.client.js +3 -6
- package/src/modules/music/music.server.js +8 -4
- package/src/modules/music/router/music.js +8 -1
- package/src/modules/music/routes/albums.routes.js +37 -5
- package/src/modules/music/routes/artists.routes.js +14 -4
- package/src/modules/music/routes/genres.routes.js +5 -1
- package/src/modules/music/routes/playlists.routes.js +42 -9
- package/src/modules/music/routes/tracks.routes.js +27 -2
- package/src/modules/music/store/artists.js +6 -2
- package/src/modules/music/store/player.js +6 -0
- package/src/modules/music/store/tracks.js +31 -0
- package/src/modules/music/websocket/streaming.handler.js +7 -1
- package/src/modules/rents/controllers/services/rents.services.js +2 -2
- package/src/modules/rents/views/components/pages/Gant/GanttBar.vue +4 -3
- package/src/modules/rents/views/components/pages/Gant/GanttChart.vue +42 -40
- package/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue +3 -1
- package/src/modules/rents/views/components/pages/Rents.vue +60 -56
- package/dist/globals.websocket-DzvdIBf6.js +0 -306
- package/dist/globals.websocket-k6_B1T7k.cjs +0 -322
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs +0 -69
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js +0 -69
- package/dist/martyrs/src/modules/music/components/cards/TrackCard.vue.js.map +0 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs +0 -104
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +0 -104
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js.map +0 -1
- package/src/modules/music/components/cards/TrackCard.vue +0 -86
- package/src/modules/music/components/layouts/MusicLayout.vue +0 -83
|
@@ -97,7 +97,11 @@ export const actions = {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// Log play via WebSocket if connected
|
|
100
|
+
console.log('Player: Attempting to log play event for track:', track._id);
|
|
101
|
+
console.log('Player: WebSocket connected?', globalWebSocket.isSocketConnected());
|
|
102
|
+
|
|
100
103
|
if (globalWebSocket.isSocketConnected()) {
|
|
104
|
+
console.log('Player: Sending startPlaying event via WebSocket');
|
|
101
105
|
globalWebSocket.send({
|
|
102
106
|
module: 'music-streaming',
|
|
103
107
|
action: 'startPlaying',
|
|
@@ -107,6 +111,8 @@ export const actions = {
|
|
|
107
111
|
deviceInfo: navigator.userAgent,
|
|
108
112
|
},
|
|
109
113
|
});
|
|
114
|
+
} else {
|
|
115
|
+
console.log('Player: WebSocket not connected, play count will not be incremented');
|
|
110
116
|
}
|
|
111
117
|
},
|
|
112
118
|
|
|
@@ -13,6 +13,7 @@ export const state = reactive({
|
|
|
13
13
|
featured: [],
|
|
14
14
|
userTracks: [],
|
|
15
15
|
currentTrack: null,
|
|
16
|
+
relatedTracks: [],
|
|
16
17
|
isLoading: false,
|
|
17
18
|
loadingPopular: false,
|
|
18
19
|
loadingRecent: false,
|
|
@@ -229,4 +230,34 @@ export const actions = {
|
|
|
229
230
|
return [];
|
|
230
231
|
}
|
|
231
232
|
},
|
|
233
|
+
|
|
234
|
+
async fetchRelatedTracks(trackUrl) {
|
|
235
|
+
try {
|
|
236
|
+
// Если есть currentTrack, ищем треки того же артиста
|
|
237
|
+
if (state.currentTrack && state.currentTrack.artist) {
|
|
238
|
+
const artistId = typeof state.currentTrack.artist === 'object'
|
|
239
|
+
? state.currentTrack.artist._id
|
|
240
|
+
: state.currentTrack.artist;
|
|
241
|
+
|
|
242
|
+
const queryParams = new URLSearchParams();
|
|
243
|
+
queryParams.append('artist', artistId);
|
|
244
|
+
queryParams.append('limit', '5');
|
|
245
|
+
|
|
246
|
+
const response = await fetch(`${process.env.API_URL}/api/tracks/read?${queryParams.toString()}`);
|
|
247
|
+
const tracks = await response.json();
|
|
248
|
+
|
|
249
|
+
// Исключаем текущий трек
|
|
250
|
+
const relatedTracks = tracks.filter(track => track._id !== state.currentTrack._id);
|
|
251
|
+
state.relatedTracks = relatedTracks;
|
|
252
|
+
return relatedTracks;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
state.relatedTracks = [];
|
|
256
|
+
return [];
|
|
257
|
+
} catch (error) {
|
|
258
|
+
console.error('Error fetching related tracks:', error);
|
|
259
|
+
state.relatedTracks = [];
|
|
260
|
+
return [];
|
|
261
|
+
}
|
|
262
|
+
},
|
|
232
263
|
};
|
|
@@ -5,9 +5,11 @@ export default (function (db) {
|
|
|
5
5
|
// Handle WebSocket messages for music streaming
|
|
6
6
|
handleStreamingMessage: async (ws, message) => {
|
|
7
7
|
try {
|
|
8
|
+
console.log('StreamingHandler: Received message:', { action: message.action, data: message.data });
|
|
8
9
|
const { action, data } = message;
|
|
9
10
|
switch (action) {
|
|
10
11
|
case 'startPlaying':
|
|
12
|
+
console.log('StreamingHandler: Processing startPlaying event for track:', data.trackId, 'user:', ws.userId);
|
|
11
13
|
// Log play event
|
|
12
14
|
if (ws.userId && data.trackId) {
|
|
13
15
|
await db.playHistory.create({
|
|
@@ -18,8 +20,12 @@ export default (function (db) {
|
|
|
18
20
|
playedFrom: data.from || 'other',
|
|
19
21
|
contextId: data.contextId || null,
|
|
20
22
|
});
|
|
23
|
+
console.log('StreamingHandler: Created play history record');
|
|
24
|
+
|
|
21
25
|
// Increment play count
|
|
22
|
-
await db.track.findByIdAndUpdate(data.trackId, { $inc: { playCount: 1 } });
|
|
26
|
+
const trackUpdate = await db.track.findByIdAndUpdate(data.trackId, { $inc: { playCount: 1 } }, { new: true });
|
|
27
|
+
console.log('StreamingHandler: Updated track playCount to:', trackUpdate?.playCount);
|
|
28
|
+
|
|
23
29
|
// Acknowledge
|
|
24
30
|
ws.send(
|
|
25
31
|
JSON.stringify({
|
|
@@ -21,8 +21,8 @@ const queryValidatorConfig = {
|
|
|
21
21
|
skip: { rule: 'optional', validator: Validator.schema().number().integer().min(0), default: 0 },
|
|
22
22
|
limit: {
|
|
23
23
|
rule: 'optional',
|
|
24
|
-
validator: Validator.schema().number().integer().min(1).max(
|
|
25
|
-
default:
|
|
24
|
+
validator: Validator.schema().number().integer().min(1).max(1000),
|
|
25
|
+
default: 1000,
|
|
26
26
|
},
|
|
27
27
|
productId: { rule: 'optional', validator: Validator.schema().string(), default: null },
|
|
28
28
|
variantId: { rule: 'optional', validator: Validator.schema().string(), default: null },
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@click="$emit('click')"
|
|
7
7
|
>
|
|
8
8
|
<div class="pd-micro t-micro t-white t-truncate">
|
|
9
|
-
{{ bar.item.
|
|
9
|
+
{{ bar.item.productDetails.name || 'Task' }}
|
|
10
10
|
</div>
|
|
11
11
|
</div>
|
|
12
12
|
</template>
|
|
@@ -25,9 +25,10 @@ const emit = defineEmits(['click'])
|
|
|
25
25
|
const barClass = computed(() => {
|
|
26
26
|
const statusMap = {
|
|
27
27
|
active: 'bg-main',
|
|
28
|
-
completed: 'bg-
|
|
28
|
+
completed: 'bg-green',
|
|
29
29
|
canceled: 'bg-red',
|
|
30
|
-
|
|
30
|
+
pending : 'bg-grey',
|
|
31
|
+
default: 'bg-second'
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
return statusMap[props.bar.status] || statusMap.default
|
|
@@ -7,18 +7,19 @@
|
|
|
7
7
|
@update:view="$emit('update:view', $event)"
|
|
8
8
|
@update:date="$emit('update:date', $event)"
|
|
9
9
|
@today="$emit('today')"
|
|
10
|
+
@load-more="$emit('load-more', $event)"
|
|
10
11
|
/>
|
|
11
12
|
|
|
12
13
|
<div
|
|
13
|
-
class="gantt-container scroller o-scroll bg-white radius-small br-solid br-1px br-
|
|
14
|
+
class="gantt-container scroller o-scroll bg-white radius-small br-solid br-1px br-black-transp-10"
|
|
14
15
|
ref="container"
|
|
15
16
|
@scroll="handleScroll"
|
|
16
17
|
>
|
|
17
18
|
<div class="gantt-content">
|
|
18
19
|
<!-- Header -->
|
|
19
|
-
<div class="gantt-header pos-sticky top-0 z-index-2 bg-white br-b br-solid br-
|
|
20
|
+
<div class="gantt-header pos-sticky top-0 z-index-2 bg-white br-b br-solid br-black-transp-10">
|
|
20
21
|
<div class="flex">
|
|
21
|
-
<div class="gantt-product-col pos-sticky left-0 z-index-3 bg-light pd-small br-r br-solid br-
|
|
22
|
+
<div class="gantt-product-col pos-sticky left-0 z-index-3 bg-light pd-small br-r br-solid br-black-transp-10">
|
|
22
23
|
Product
|
|
23
24
|
</div>
|
|
24
25
|
|
|
@@ -26,7 +27,7 @@
|
|
|
26
27
|
<div
|
|
27
28
|
v-for="(cell, i) in visibleCells"
|
|
28
29
|
:key="cell.key"
|
|
29
|
-
class="gantt-cell br-r br-solid br-
|
|
30
|
+
class="gantt-cell br-r br-solid br-black-transp-10 t-center pd-small"
|
|
30
31
|
:class="getCellClass(cell)"
|
|
31
32
|
:style="{ width: cellWidth + 'px' }"
|
|
32
33
|
>
|
|
@@ -41,11 +42,11 @@
|
|
|
41
42
|
<div
|
|
42
43
|
v-for="(group, i) in groups"
|
|
43
44
|
:key="group.key"
|
|
44
|
-
class="gantt-row flex br-b br-solid br-
|
|
45
|
+
class="gantt-row flex br-b br-solid br-black-transp-10"
|
|
45
46
|
:class="i % 2 === 0 ? 'bg-light-transp' : ''"
|
|
46
47
|
:style="{ height: rowHeight + 'px' }"
|
|
47
48
|
>
|
|
48
|
-
<div class="gantt-product-col pos-sticky left-0 z-index-1 bg-white pd-small br-r br-solid br-
|
|
49
|
+
<div class="gantt-product-col pos-sticky left-0 z-index-1 bg-white pd-small br-r br-solid br-black-transp-10">
|
|
49
50
|
<div class="t-medium mn-b-micro">{{ group.title }}</div>
|
|
50
51
|
<div class="t-micro" :class="statusClass(group)">{{ group.status }}</div>
|
|
51
52
|
</div>
|
|
@@ -56,7 +57,7 @@
|
|
|
56
57
|
<div
|
|
57
58
|
v-for="cell in visibleCells"
|
|
58
59
|
:key="cell.key + '-bg'"
|
|
59
|
-
class="gantt-cell h-100 br-r br-solid br-
|
|
60
|
+
class="gantt-cell h-100 br-r br-solid br-black-transp-10"
|
|
60
61
|
:class="getCellClass(cell)"
|
|
61
62
|
:style="{ width: cellWidth + 'px' }"
|
|
62
63
|
/>
|
|
@@ -128,7 +129,6 @@ const emit = defineEmits([
|
|
|
128
129
|
// State
|
|
129
130
|
const container = ref(null)
|
|
130
131
|
const scrollLeft = ref(0)
|
|
131
|
-
const loadPromise = ref(null)
|
|
132
132
|
|
|
133
133
|
// Cell width
|
|
134
134
|
const cellWidth = computed(() => {
|
|
@@ -200,19 +200,24 @@ const visibleCells = computed(() => {
|
|
|
200
200
|
// Cache for bars calculation
|
|
201
201
|
const barsCache = new WeakMap()
|
|
202
202
|
|
|
203
|
+
// Helper function to get nested property value
|
|
204
|
+
const getNestedValue = (obj, path) => {
|
|
205
|
+
return path.split('.').reduce((current, key) => current?.[key], obj)
|
|
206
|
+
}
|
|
207
|
+
|
|
203
208
|
// Groups
|
|
204
209
|
const groups = computed(() => {
|
|
205
210
|
const map = new Map()
|
|
206
211
|
|
|
207
212
|
props.items.forEach(item => {
|
|
208
|
-
const key = item
|
|
213
|
+
const key = getNestedValue(item, props.groupBy) || 'Ungrouped'
|
|
209
214
|
|
|
210
215
|
if (!map.has(key)) {
|
|
211
216
|
map.set(key, {
|
|
212
217
|
key,
|
|
213
218
|
title: key,
|
|
214
219
|
items: [],
|
|
215
|
-
status: item
|
|
220
|
+
status: getNestedValue(item, props.statusKey)
|
|
216
221
|
})
|
|
217
222
|
}
|
|
218
223
|
|
|
@@ -271,8 +276,8 @@ const getBars = (group) => {
|
|
|
271
276
|
|
|
272
277
|
group.items.forEach(item => {
|
|
273
278
|
try {
|
|
274
|
-
const start = item
|
|
275
|
-
const end = item
|
|
279
|
+
const start = getNestedValue(item, props.startKey)
|
|
280
|
+
const end = getNestedValue(item, props.endKey)
|
|
276
281
|
|
|
277
282
|
if (!start || !end) return
|
|
278
283
|
|
|
@@ -280,12 +285,22 @@ const getBars = (group) => {
|
|
|
280
285
|
const e = end instanceof Date ? new Date(end) : dayjs(end).toDate()
|
|
281
286
|
|
|
282
287
|
if (isNaN(s.getTime()) || isNaN(e.getTime())) {
|
|
283
|
-
console.warn(`Invalid dates for item ${item
|
|
288
|
+
console.warn(`Invalid dates for item ${getNestedValue(item, props.idKey)}:`, { start, end })
|
|
284
289
|
return
|
|
285
290
|
}
|
|
286
291
|
|
|
292
|
+
console.log('Processing item:', {
|
|
293
|
+
id: getNestedValue(item, props.idKey),
|
|
294
|
+
start: s,
|
|
295
|
+
end: e,
|
|
296
|
+
dateRange: props.dateRange
|
|
297
|
+
})
|
|
298
|
+
|
|
287
299
|
// Skip if completely outside visible range
|
|
288
|
-
if (e < props.dateRange.start || s > props.dateRange.end)
|
|
300
|
+
if (e < props.dateRange.start || s > props.dateRange.end) {
|
|
301
|
+
console.log('Item skipped - outside visible range')
|
|
302
|
+
return
|
|
303
|
+
}
|
|
289
304
|
|
|
290
305
|
// Calculate position
|
|
291
306
|
let left = 0
|
|
@@ -410,18 +425,19 @@ const getBars = (group) => {
|
|
|
410
425
|
}
|
|
411
426
|
|
|
412
427
|
result.push({
|
|
413
|
-
key: `${item
|
|
428
|
+
key: `${getNestedValue(item, props.idKey)}-${s.getTime()}`,
|
|
414
429
|
item,
|
|
415
430
|
left,
|
|
416
431
|
width,
|
|
417
432
|
row,
|
|
418
|
-
status: item
|
|
433
|
+
status: getNestedValue(item, props.statusKey) || 'default'
|
|
419
434
|
})
|
|
420
435
|
} catch (error) {
|
|
421
|
-
console.error(`Error processing item ${item
|
|
436
|
+
console.error(`Error processing item ${getNestedValue(item, props.idKey)}:`, error)
|
|
422
437
|
}
|
|
423
438
|
})
|
|
424
439
|
|
|
440
|
+
console.log('Final bars result:', result)
|
|
425
441
|
return result
|
|
426
442
|
}
|
|
427
443
|
|
|
@@ -463,36 +479,16 @@ const throttle = (fn, delay) => {
|
|
|
463
479
|
}
|
|
464
480
|
|
|
465
481
|
// Scroll handling
|
|
466
|
-
const handleScroll =
|
|
482
|
+
const handleScroll = (event) => {
|
|
467
483
|
if (!container.value) return
|
|
468
484
|
|
|
469
485
|
const el = event.target
|
|
470
486
|
scrollLeft.value = el.scrollLeft
|
|
471
|
-
|
|
472
|
-
const scrollWidth = el.scrollWidth
|
|
473
|
-
const clientWidth = el.clientWidth
|
|
474
|
-
const currentScrollLeft = el.scrollLeft
|
|
475
|
-
|
|
476
|
-
const threshold = 100
|
|
477
|
-
|
|
478
|
-
if (currentScrollLeft < threshold && !props.loading && !loadPromise.value) {
|
|
479
|
-
loadPromise.value = emit('load-more', 'backward')
|
|
480
|
-
if (loadPromise.value?.then) {
|
|
481
|
-
await loadPromise.value
|
|
482
|
-
loadPromise.value = null
|
|
483
|
-
}
|
|
484
|
-
} else if (scrollWidth - (currentScrollLeft + clientWidth) < threshold && !props.loading && !loadPromise.value) {
|
|
485
|
-
loadPromise.value = emit('load-more', 'forward')
|
|
486
|
-
if (loadPromise.value?.then) {
|
|
487
|
-
await loadPromise.value
|
|
488
|
-
loadPromise.value = null
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
}, 100)
|
|
487
|
+
}
|
|
492
488
|
|
|
493
489
|
// Cleanup
|
|
494
490
|
onUnmounted(() => {
|
|
495
|
-
|
|
491
|
+
// No cleanup needed
|
|
496
492
|
})
|
|
497
493
|
|
|
498
494
|
// Center view on specific date
|
|
@@ -543,6 +539,12 @@ watch(() => props.view, () => {
|
|
|
543
539
|
centerOnDate(props.date)
|
|
544
540
|
})
|
|
545
541
|
|
|
542
|
+
// Watch for date changes (e.g., when Today button is clicked)
|
|
543
|
+
watch(() => props.date, (newDate) => {
|
|
544
|
+
// Center on the new date, especially important for hours view
|
|
545
|
+
centerOnDate(newDate)
|
|
546
|
+
})
|
|
547
|
+
|
|
546
548
|
watch(() => props.dateRange, () => {
|
|
547
549
|
// Reset scroll position when date range changes significantly
|
|
548
550
|
if (container.value) {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<Dropdown
|
|
22
22
|
:label="dateLabel"
|
|
23
23
|
align="left"
|
|
24
|
-
class="pos-relative h-100 bg-white radius-small pd-thin"
|
|
24
|
+
class="pos-relative z-index-3 h-100 bg-white radius-small pd-thin"
|
|
25
25
|
>
|
|
26
26
|
<Calendar
|
|
27
27
|
v-model:date="selectedDate"
|
|
@@ -153,6 +153,8 @@ const updateDate = (newSelectedDate) => {
|
|
|
153
153
|
if (newSelectedDate) {
|
|
154
154
|
const newDate = new Date(newSelectedDate)
|
|
155
155
|
emit('update:date', newDate)
|
|
156
|
+
// Emit load-more event to trigger data loading for new date
|
|
157
|
+
emit('load-more', 'refresh')
|
|
156
158
|
}
|
|
157
159
|
}
|
|
158
160
|
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
<Feed
|
|
22
22
|
:search="true"
|
|
23
|
+
:keepSlotVisible="true"
|
|
23
24
|
:states="{
|
|
24
25
|
empty: {
|
|
25
26
|
title: 'No Rents Found',
|
|
@@ -28,9 +29,9 @@
|
|
|
28
29
|
}"
|
|
29
30
|
:store="{ read: (options) => rents.actions.read(options) }"
|
|
30
31
|
:options="{
|
|
31
|
-
limit: 15,
|
|
32
32
|
owner: route.params._id,
|
|
33
|
-
|
|
33
|
+
startDate: dateRange.start.toISOString(),
|
|
34
|
+
endDate: dateRange.end.toISOString()
|
|
34
35
|
}"
|
|
35
36
|
v-slot="{ items }"
|
|
36
37
|
>
|
|
@@ -38,13 +39,18 @@
|
|
|
38
39
|
v-model:view="view"
|
|
39
40
|
v-model:date="date"
|
|
40
41
|
v-model:dateRange="dateRange"
|
|
41
|
-
:items="
|
|
42
|
+
:items="items"
|
|
42
43
|
:loading="loading"
|
|
44
|
+
:title-key="'productDetails.name'"
|
|
45
|
+
:start-key="'startDate'"
|
|
46
|
+
:end-key="'endDate'"
|
|
47
|
+
:status-key="'status'"
|
|
48
|
+
:id-key="'_id'"
|
|
49
|
+
:group-by="'productDetails.name'"
|
|
43
50
|
@load-more="handleLoadMore"
|
|
44
51
|
@item-click="handleItemClick"
|
|
45
52
|
@today="handleToday"
|
|
46
53
|
/>
|
|
47
|
-
{{items}}
|
|
48
54
|
|
|
49
55
|
<!-- <CardRent
|
|
50
56
|
v-else
|
|
@@ -77,45 +83,6 @@ const router = useRouter();
|
|
|
77
83
|
|
|
78
84
|
const isCalendarView = ref(true);
|
|
79
85
|
|
|
80
|
-
// Sample data
|
|
81
|
-
const sampleData = ref([
|
|
82
|
-
{
|
|
83
|
-
id: 2,
|
|
84
|
-
title: 'Product A',
|
|
85
|
-
startDate: dayjs().add(1, 'days').toDate(),
|
|
86
|
-
endDate: dayjs().add(5, 'days').toDate(),
|
|
87
|
-
status: 'active'
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
id: 3,
|
|
91
|
-
title: 'Product B',
|
|
92
|
-
startDate: dayjs().subtract(1, 'days').toDate(),
|
|
93
|
-
endDate: dayjs().add(2, 'days').toDate(),
|
|
94
|
-
status: 'completed'
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
id: 4,
|
|
98
|
-
title: 'Product C',
|
|
99
|
-
startDate: dayjs().toDate(),
|
|
100
|
-
endDate: dayjs().add(4, 'days').toDate(),
|
|
101
|
-
status: 'canceled'
|
|
102
|
-
},
|
|
103
|
-
// Additional test data for hour view
|
|
104
|
-
{
|
|
105
|
-
id: 5,
|
|
106
|
-
title: 'Product D',
|
|
107
|
-
startDate: dayjs().add(2, 'days').add(8, 'hours').toDate(),
|
|
108
|
-
endDate: dayjs().add(2, 'days').add(16, 'hours').toDate(),
|
|
109
|
-
status: 'active'
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
id: 6,
|
|
113
|
-
title: 'Product E',
|
|
114
|
-
startDate: dayjs().add(1, 'days').add(14, 'hours').toDate(),
|
|
115
|
-
endDate: dayjs().add(2, 'days').add(10, 'hours').toDate(),
|
|
116
|
-
status: 'completed'
|
|
117
|
-
}
|
|
118
|
-
])
|
|
119
86
|
|
|
120
87
|
// Set initial date range - current month plus 15 days before and 45 days after
|
|
121
88
|
const view = ref('days')
|
|
@@ -127,9 +94,10 @@ const dateRange = computed(() => {
|
|
|
127
94
|
|
|
128
95
|
switch (view.value) {
|
|
129
96
|
case 'hours':
|
|
97
|
+
// Show only the current day in hours view
|
|
130
98
|
return {
|
|
131
|
-
start: d.
|
|
132
|
-
end: d.
|
|
99
|
+
start: d.startOf('day').toDate(),
|
|
100
|
+
end: d.endOf('day').toDate()
|
|
133
101
|
}
|
|
134
102
|
|
|
135
103
|
case 'days':
|
|
@@ -158,14 +126,44 @@ const handleLoadMore = async (direction) => {
|
|
|
158
126
|
|
|
159
127
|
loading.value = true
|
|
160
128
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
129
|
+
try {
|
|
130
|
+
// Only update date if it's navigation (not refresh)
|
|
131
|
+
if (direction !== 'refresh') {
|
|
132
|
+
const d = dayjs(date.value)
|
|
133
|
+
let newDate
|
|
134
|
+
|
|
135
|
+
switch (view.value) {
|
|
136
|
+
case 'hours':
|
|
137
|
+
newDate = direction === 'forward'
|
|
138
|
+
? d.add(1, 'day').toDate()
|
|
139
|
+
: d.subtract(1, 'day').toDate()
|
|
140
|
+
break
|
|
141
|
+
case 'days':
|
|
142
|
+
newDate = direction === 'forward'
|
|
143
|
+
? d.add(1, 'month').toDate()
|
|
144
|
+
: d.subtract(1, 'month').toDate()
|
|
145
|
+
break
|
|
146
|
+
case 'weeks':
|
|
147
|
+
newDate = direction === 'forward'
|
|
148
|
+
? d.add(1, 'month').toDate()
|
|
149
|
+
: d.subtract(1, 'month').toDate()
|
|
150
|
+
break
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
date.value = newDate
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Load data for the current date range
|
|
157
|
+
await rents.actions.read({
|
|
158
|
+
owner: route.params._id,
|
|
159
|
+
startDate: dateRange.value.start.toISOString(),
|
|
160
|
+
endDate: dateRange.value.end.toISOString()
|
|
161
|
+
})
|
|
162
|
+
} catch (error) {
|
|
163
|
+
console.error('Error loading more data:', error)
|
|
164
|
+
} finally {
|
|
165
|
+
loading.value = false
|
|
166
|
+
}
|
|
169
167
|
}
|
|
170
168
|
|
|
171
169
|
// Handle item click
|
|
@@ -175,7 +173,14 @@ const handleItemClick = (item) => {
|
|
|
175
173
|
|
|
176
174
|
// Handle today
|
|
177
175
|
const handleToday = () => {
|
|
178
|
-
|
|
176
|
+
const now = new Date()
|
|
177
|
+
date.value = now
|
|
178
|
+
|
|
179
|
+
// For hours view, ensure we're showing the current hour
|
|
180
|
+
if (view.value === 'hours') {
|
|
181
|
+
// Update date to current time to trigger proper centering
|
|
182
|
+
date.value = new Date()
|
|
183
|
+
}
|
|
179
184
|
}
|
|
180
185
|
|
|
181
186
|
const today = new Date();
|
|
@@ -218,8 +223,7 @@ const loadMoreData = async ({ direction, date }) => {
|
|
|
218
223
|
await rents.actions.read({
|
|
219
224
|
owner: route.params._id,
|
|
220
225
|
startDate: startDateParam.toISOString(),
|
|
221
|
-
endDate: endDateParam.toISOString()
|
|
222
|
-
...(tab.value !== 'all' && { status: tab.value })
|
|
226
|
+
endDate: endDateParam.toISOString()
|
|
223
227
|
});
|
|
224
228
|
} catch (error) {
|
|
225
229
|
console.error('Error loading additional rent data:', error);
|