1 line
6.2 KiB
Plaintext
1 line
6.2 KiB
Plaintext
{"version":3,"file":"AlbumsView-ch-kscP4.chunk.mjs","sources":["../src/views/AlbumsView.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<div>\n\t\t<CollectionsList\n\t\t\t:collections=\"albums\"\n\t\t\t:loading=\"loadingCollections\"\n\t\t\t:error=\"errorFetchingCollections\"\n\t\t\tclass=\"albums-list\">\n\t\t\t<template #header>\n\t\t\t\t<HeaderNavigation\n\t\t\t\t\tkey=\"navigation\"\n\t\t\t\t\t:loading=\"loadingCollections\"\n\t\t\t\t\t:title=\"t('photos', 'Albums')\"\n\t\t\t\t\t:root-title=\"t('photos', 'Albums')\"\n\t\t\t\t\t@refresh=\"fetchAlbums\">\n\t\t\t\t\t<NcButton\n\t\t\t\t\t\t:aria-label=\"isMobile ? t('photos', 'New album') : undefined\"\n\t\t\t\t\t\t@click=\"showAlbumCreationForm = true\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-if=\"!isMobile\" #default>\n\t\t\t\t\t\t\t{{ t('photos', 'New album') }}\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</HeaderNavigation>\n\t\t\t</template>\n\n\t\t\t<template #default=\"{ collection }\">\n\t\t\t\t<CollectionCover\n\t\t\t\t\t:key=\"collection.basename\"\n\t\t\t\t\tparent-route=\"/albums\"\n\t\t\t\t\t:collection-name=\"collection.basename\"\n\t\t\t\t\t:alt-img=\"t('photos', 'Cover photo for album {albumName}', { albumName: collection.basename })\"\n\t\t\t\t\t:cover-url=\"collection.attributes['last-photo'] | coverUrl\">\n\t\t\t\t\t<template #default>\n\t\t\t\t\t\t<span class=\"album__name\">\n\t\t\t\t\t\t\t{{ collection.basename }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<CogOutline v-if=\"Object.keys(collection.attributes.filters).length !== 0\" fill-color=\"var(--color-text-lighter)\" />\n\t\t\t\t\t</template>\n\n\t\t\t\t\t<template #subtitle>\n\t\t\t\t\t\t<div class=\"album__details\">\n\t\t\t\t\t\t\t{{ collection.attributes.date }} ⸱ {{ n('photos', '%n item', '%n photos and videos', collection.attributes.nbItems) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</CollectionCover>\n\t\t\t</template>\n\n\t\t\t<template #empty-collections-list>\n\t\t\t\t<NcEmptyContent :name=\"t('photos', 'There is no album yet!')\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ImageMultipleOutline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</template>\n\t\t</CollectionsList>\n\n\t\t<NcModal\n\t\t\tv-if=\"showAlbumCreationForm\"\n\t\t\tlabel-id=\"new-album-form\"\n\t\t\t@close=\"showAlbumCreationForm = false\">\n\t\t\t<h2 class=\"album-creation__heading\">\n\t\t\t\t{{ t('photos', 'New album') }}\n\t\t\t</h2>\n\t\t\t<AlbumForm @done=\"handleAlbumCreated\" />\n\t\t</NcModal>\n\t</div>\n</template>\n\n<script lang='ts'>\nimport { translate, translatePlural } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { useIsSmallMobile } from '@nextcloud/vue/composables/useIsMobile'\nimport { defineComponent } from 'vue'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcModal from '@nextcloud/vue/components/NcModal'\nimport CogOutline from 'vue-material-design-icons/Cog.vue'\nimport ImageMultipleOutline from 'vue-material-design-icons/ImageMultipleOutline.vue'\nimport Plus from 'vue-material-design-icons/Plus.vue'\nimport AlbumForm from '../components/Albums/AlbumForm.vue'\nimport CollectionCover from '../components/Collection/CollectionCover.vue'\nimport CollectionsList from '../components/Collection/CollectionsList.vue'\nimport HeaderNavigation from '../components/HeaderNavigation.vue'\nimport FetchCollectionsMixin from '../mixins/FetchCollectionsMixin.js'\nimport { albumsExtraProps, albumsPrefix } from '../store/albums.js'\n\nexport default defineComponent({\n\tname: 'AlbumsView',\n\tcomponents: {\n\t\tPlus,\n\t\tImageMultipleOutline,\n\t\tNcModal,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t\tCollectionsList,\n\t\tCollectionCover,\n\t\tHeaderNavigation,\n\t\tAlbumForm,\n\t\tCogOutline,\n\t},\n\n\tfilters: {\n\t\tcoverUrl(lastPhoto: number): string {\n\t\t\tif (lastPhoto === -1) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn generateUrl(`/apps/photos/api/v1/preview/${lastPhoto}?x=${512}&y=${512}`)\n\t\t},\n\t},\n\n\tmixins: [FetchCollectionsMixin],\n\n\tsetup() {\n\t\tconst isMobile = useIsSmallMobile()\n\t\treturn {\n\t\t\tisMobile,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowAlbumCreationForm: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\talbums() {\n\t\t\treturn this.$store.getters.albums\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\tthis.fetchAlbums()\n\t},\n\n\tmethods: {\n\t\tfetchAlbums() {\n\t\t\tthis.fetchCollections(\n\t\t\t\talbumsPrefix,\n\t\t\t\talbumsExtraProps,\n\t\t\t)\n\t\t},\n\n\t\thandleAlbumCreated({ album }) {\n\t\t\tthis.showAlbumCreationForm = false\n\t\t\tthis.$router.push(`/albums/${album.basename}`)\n\t\t},\n\n\t\tt: translate,\n\t\tn: translatePlural,\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.albums-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t.album__name {\n\t\tfont-weight: normal;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tfont-size: 20px;\n\t\tcolor: var(--color-main-text);\n\t}\n}\n\n.album-creation__heading {\n\tpadding: calc(var(--default-grid-baseline) * 4);\n\tmargin-bottom: 0px;\n\tpadding-bottom: 0px;\n}\n</style>\n"],"names":["_sfc_main","defineComponent","Plus","ImageMultipleOutline","NcModal","NcButton","NcEmptyContent","CollectionsList","CollectionCover","HeaderNavigation","AlbumForm","CogOutline","lastPhoto","generateUrl","FetchCollectionsMixin","useIsSmallMobile","albumsPrefix","albumsExtraProps","album","translate","translatePlural"],"mappings":"+wCA4FA,MAAAA,EAAAC,EAAA,CACA,KAAA,aACA,WAAA,CACA,KAAAC,EACA,qBAAAC,EACA,QAAAC,EACA,SAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,UAAAC,EACA,WAAAC,CACA,EAEA,QAAA,CACA,SAAAC,EAAA,CACA,OAAAA,IAAA,GACA,GAGAC,EAAA,+BAAAD,CAAA,cAAA,CAAA,CAEA,EAEA,OAAA,CAAAE,CAAA,EAEA,OAAA,CAEA,MAAA,CACA,SAFAC,EAAA,CAGA,CACA,EAEA,MAAA,CACA,MAAA,CACA,sBAAA,EACA,CACA,EAEA,SAAA,CACA,QAAA,CACA,OAAA,KAAA,OAAA,QAAA,MAAA,CAEA,EAEA,MAAA,aAAA,CACA,KAAA,YAAA,CACA,EAEA,QAAA,CACA,aAAA,CACA,KAAA,iBACAC,EACAC,CACA,CACA,EAEA,mBAAA,CAAA,MAAAC,GAAA,CACA,KAAA,sBAAA,GACA,KAAA,QAAA,KAAA,WAAAA,EAAA,QAAA,EAAA,CACA,EAEA,EAAAC,EACA,EAAAC,CAAA,CAEA,CAAA"} |