Merge pull request 'fix type "scan"' (#38) from dev into main
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #38
This commit is contained in:
Artem Anufrij 2024-02-22 23:37:10 +01:00
commit dfa44db91f
3 changed files with 79 additions and 81 deletions

View File

@ -3,9 +3,8 @@
<div id="albumViewer" class="flex-row"> <div id="albumViewer" class="flex-row">
<div id="header" class="flex-column grow"> <div id="header" class="flex-column grow">
<div id="background" :style="coverBackground" /> <div id="background" :style="coverBackground" />
<div it="title" class="flex-column pa grow z1"> <div id="title" class="flex-column pa grow z1">
<img class="glow ma" :src="cover" /> <img class="glow ma" :src="cover" />
<span id="stats" class="center"> <span id="stats" class="center">
{{ selectedAlbum.title }} {{ selectedAlbum.title }}
<br /> <br />
@ -18,20 +17,18 @@
<b>{{ album_duration }}</b> <b>{{ album_duration }}</b>
</span> </span>
<div class=" grow"> <div class="grow"> </div>
</div>
<div class="flex-row grow ma-top"> <div class="flex-row grow ma-top">
<button class="flat ma-right" title="Favourite" @click="toggleFavourite"> <button class="flat ma-right" title="Favourite" @click="toggleFavourite">
<awesome-icon :icon="['fas', 'star']" size="2x" class="white-text favourite active" v-if="isFavourite" /> <awesome-icon :icon="['fas', 'star']" size="2x" class="white-text favourite active" v-if="isFavourite" />
<awesome-icon :icon="['far', 'star']" size="2x" class="white-text favourite" v-else /> <awesome-icon :icon="['far', 'star']" size="2x" class="white-text favourite" v-else />
</button> </button>
<button class="flat ma-right" @click="playProgress" v-if="selectedAlbum.progress"> <button class="flat ma-right" title="Keep playing" @click="playProgress" v-if="selectedAlbum.progress">
<awesome-icon icon="play" size="2x" class="primary-text" title="Keep playing" /> <awesome-icon icon="play" size="2x" class="primary-text" />
</button> </button>
<button class="flat ma-right" @click="playAlbum" v-else> <button class="flat ma-right" title="Play" @click="playAlbum" v-else>
<awesome-icon icon="play" size="2x" class="white-text" title="Play" /> <awesome-icon icon="play" size="2x" class="white-text" />
</button> </button>
<button @click="gotoPrevAlbum" class="flat ma-left ma-right" :title="prevAlbum.name" :disabled="!prevAlbum._id"> <button @click="gotoPrevAlbum" class="flat ma-left ma-right" :title="prevAlbum.name" :disabled="!prevAlbum._id">
<awesome-icon icon="angle-left" class="ma4 white-text" /> <awesome-icon icon="angle-left" class="ma4 white-text" />

View File

@ -1,70 +1,81 @@
<template> <template>
<DialogBase ref="dialogWindow" :title="selectedBox.title" @canceled="closed" :showFooter="false" :closeOnEscape="selectedVideo._id == null" :disableXscroll="true" :disableYscroll="true"> <DialogBase ref="dialogWindow" :title="selectedBox.title" @canceled="closed" :showFooter="false" :closeOnEscape="selectedVideo._id == null" :disableXscroll="true" :disableYscroll="true" :flatDialogHeader="true">
<div id="boxViewer" class="flex-row"> <div id="boxViewer" class="flex-row">
<div id="header" class="flex-column"> <div id="header" class="flex-column grow">
<div id="background" :style="coverBackground" /> <div id="background" :style="coverBackground" />
<div class="grow z1 center flex-column"> <div id="title" class="grow z1 pa flex-column">
<img class="glow ma24" :src="cover" @dblclick="dblclick" /> <img class="glow ma" :src="cover" />
</div> <span id="stats" class="center">
<awesome-icon icon="star" size="2x" class="favourite ma4 z2" :class="{ active: isFavourite }" @click="toggleFavourite" /> <b>{{ selectedBox.title }}</b>
<awesome-icon icon="play" size="2x" class="keepPlaying ma4 primary-text" @click="playProgress" v-if="selectedBox.progress" title="Keep playing" /> <br />
<b>{{ box_videos.length }}</b> Videos
</span>
<div id="stats" class="flex-row z1"> <div class="grow"> </div>
<DropDown v-if="$store.getters['user/isAdministrator']"> <div class="flex-row ma-top grow">
<button class="flat center" :title="visibility_text"> <button class="flat ma-right" title="Favourite" @click="toggleFavourite">
<awesome-icon :icon="visibility_icon" /> <awesome-icon :icon="['fas', 'star']" size="2x" class="white-text favourite active" v-if="isFavourite" />
<awesome-icon :icon="['far', 'star']" size="2x" class="white-text favourite" v-else />
</button> </button>
<template v-slot:dropdown-content> <button class="flat ma-right" title="Keep playing" @click="playProgress" v-if="selectedBox.progress">
<div> <awesome-icon icon="play" size="2x" class="primary-text" />
<button v-for="(item, i) in $store.state.system.lists.visibility" :key="i" @click="setVisibility(item)"> </button>
<awesome-icon :icon="getVisibilityIcon(item)" />{{ <button class="flat ma-right" title="Play" @dblclick="dblclick" v-else>
getVisibilityText(item) <awesome-icon icon="play" size="2x" class="white-text" />
}} </button>
</button> <button @click="gotoPrevBox" class="flat ma-left ma-right" :title="prevBox.name" :disabled="!prevBox._id">
<hr /> <awesome-icon icon="angle-left" class="ma4 white-text" />
<button v-if="!selectedBox.share._id" @click="shareEnable"> </button>
<awesome-icon icon="share" />Share this box <button @click="gotoNextBox" class="flat" :title="nextBox.name" :disabled="!nextBox._id">
</button> <awesome-icon icon="angle-right" class="ma4 white-text" />
<button v-if="selectedBox.share._id" @click="addShareUrlToClipboard"> </button>
<awesome-icon icon="clipboard" />Copy url into clipboard <div class="grow"></div>
</button> <DropDown v-if="$store.getters['user/isAdministrator']">
<button v-if="selectedBox.share._id" @click="shareDisable"> <button class="flat center" :title="visibility_text">
<awesome-icon icon="share" />Remove share <awesome-icon :icon="visibility_icon" class="white-text" />
</button> </button>
</div> <template v-slot:dropdown-content>
</template> <div>
</DropDown> <button v-for="(item, i) in $store.state.system.lists.visibility" :key="i" @click="setVisibility(item)">
<div class="grow flex-column"> <awesome-icon :icon="getVisibilityIcon(item)" />{{
<p class="ma4 center"> getVisibilityText(item)
<span class=""> }}
<b>{{ selectedBox.title }}</b> </button>
<br /> <hr />
<b>{{ box_videos.length }}</b> Videos <button v-if="!selectedBox.share._id" @click="shareEnable">
</span> <awesome-icon icon="share" />Share this box
</p> </button>
<button v-if="selectedBox.share._id" @click="addShareUrlToClipboard">
<awesome-icon icon="clipboard" />Copy url into clipboard
</button>
<button v-if="selectedBox.share._id" @click="shareDisable">
<awesome-icon icon="share" />Remove share
</button>
</div>
</template>
</DropDown>
<DropDown v-if="$store.getters['user/isAdministrator']">
<button class="flat center">
<awesome-icon icon="ellipsis-v" class="white-text" />
</button>
<template v-slot:dropdown-content>
<div>
<button @click="uploadNewCover">
<awesome-icon icon="image" />Set new Cover...
</button>
<button @click="resetCover">
<awesome-icon icon="eraser" />Reset Cover
</button>
<hr />
<button @click="mergeBox">
<awesome-icon icon="compress-alt" />Merge Boxes...
</button>
</div>
</template>
</DropDown>
</div> </div>
<DropDown v-if="$store.getters['user/isAdministrator']">
<button class="flat center">
<awesome-icon icon="ellipsis-v" />
</button>
<template v-slot:dropdown-content>
<div>
<button @click="uploadNewCover">
<awesome-icon icon="image" />Set new Cover...
</button>
<button @click="resetCover">
<awesome-icon icon="eraser" />Reset Cover
</button>
<hr />
<button @click="mergeBox">
<awesome-icon icon="compress-alt" />Merge Boxes...
</button>
</div>
</template>
</DropDown>
</div> </div>
</div> </div>
<ul id="videoList" class="videos"> <ul id="videoList" class="videos">
<li v-for="item in selectedBox.videos" :key="item._id"> <li v-for="item in selectedBox.videos" :key="item._id">
<VideoItem :video="item" /> <VideoItem :video="item" />
@ -265,7 +276,7 @@ export default {
<style scoped> <style scoped>
#boxViewer { #boxViewer {
height: 462px; height: 486px;
} }
#header { #header {
@ -280,13 +291,8 @@ export default {
#stats { #stats {
z-index: 2; z-index: 2;
align-items: center;
color: var(--white); color: var(--white);
text-shadow: 0 1px 2px black; text-shadow: 0 1px 2px black;
line-height: 1.4;
background-color: #ffffff40;
border-top: 1px solid #ffffff20;
border-bottom: 1px solid #00000020;
} }
.dropdown-activator button { .dropdown-activator button {
@ -294,11 +300,6 @@ export default {
height: 32px; height: 32px;
} }
#stats p {
max-width: 192px;
align-self: center;
}
#videoList { #videoList {
background-color: var(--white); background-color: var(--white);
z-index: 1; z-index: 1;

View File

@ -81,13 +81,13 @@ export default {
messageCommands: [ messageCommands: [
{ {
title: "Scan for Music files", title: "Scan for Music files",
subtitle: "Scann your server for music files…", subtitle: "Scan your server for music files…",
icon: "music", icon: "music",
command: "scanMusic", command: "scanMusic",
}, },
{ {
title: "Scan for Video files", title: "Scan for Video files",
subtitle: "Scann your server for video files…", subtitle: "Scan your server for video files…",
icon: "video", icon: "video",
command: "scanVideos", command: "scanVideos",
}, },