[web] Only include icons in bundle that are used in the web interface

This commit is contained in:
chme 2022-04-16 10:14:03 +02:00
parent b3a661cae8
commit 7fff11ef30
68 changed files with 476 additions and 314 deletions

View File

@ -9,13 +9,14 @@
"version": "2.0.0", "version": "2.0.0",
"dependencies": { "dependencies": {
"@aacassandra/vue3-progressbar": "^1.0.3", "@aacassandra/vue3-progressbar": "^1.0.3",
"@mdi/js": "^6.6.96",
"@ts-pro/vue-eternal-loading": "^1.2.0", "@ts-pro/vue-eternal-loading": "^1.2.0",
"@vueform/slider": "github:chme/slider#faff83ed8a77f2cdbcb7252505ef734301efd139", "@vueform/slider": "github:chme/slider#faff83ed8a77f2cdbcb7252505ef734301efd139",
"axios": "^0.26.1", "axios": "^0.26.1",
"bulma": "^0.9.3", "bulma": "^0.9.3",
"bulma-switch": "^2.0.4", "bulma-switch": "^2.0.4",
"luxon": "^2.3.1", "luxon": "^2.3.1",
"mdi": "^2.2.43", "mdi-vue": "^3.0.12",
"reconnectingwebsocket": "^1.0.0", "reconnectingwebsocket": "^1.0.0",
"spotify-web-api-js": "^1.5.2", "spotify-web-api-js": "^1.5.2",
"string-to-color": "^2.2.2", "string-to-color": "^2.2.2",
@ -97,6 +98,11 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true "dev": true
}, },
"node_modules/@mdi/js": {
"version": "6.6.96",
"resolved": "https://registry.npmjs.org/@mdi/js/-/js-6.6.96.tgz",
"integrity": "sha512-ke9PN5DjPCOlMfhioxeZYADz8Yiz6v47W0IYRza01SSJD7y1EwESVpwFnnFUso+eCoWtE1CO9cTIvQF6sEreuA=="
},
"node_modules/@ts-pro/vue-eternal-loading": { "node_modules/@ts-pro/vue-eternal-loading": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ts-pro/vue-eternal-loading/-/vue-eternal-loading-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@ts-pro/vue-eternal-loading/-/vue-eternal-loading-1.2.0.tgz",
@ -1485,11 +1491,17 @@
"sourcemap-codec": "^1.4.8" "sourcemap-codec": "^1.4.8"
} }
}, },
"node_modules/mdi": { "node_modules/mdi-vue": {
"version": "2.2.43", "version": "3.0.12",
"resolved": "https://registry.npmjs.org/mdi/-/mdi-2.2.43.tgz", "resolved": "https://registry.npmjs.org/mdi-vue/-/mdi-vue-3.0.12.tgz",
"integrity": "sha512-g3m6z4303qieltUM20JL2gdsJZvoVzIzO74qa2XxZ2kg9JPwrPEAgooVhRDHZi1vvRh0gB8Dg+c9XqNdz4jcIg==", "integrity": "sha512-rc4rq99Hafa7v1u3KyfzGRr13v7/AzBvNrcXdhcgPQvj8wYafimbLGfNvQcGiAYZMow40KpXlZuG07132XccKw==",
"deprecated": "The mdi package was renamed to @mdi/font after v2.2.43. Please rename in your package.json for future updates." "dependencies": {
"@mdi/js": "*"
},
"peerDependencies": {
"@mdi/js": "*",
"vue": "*"
}
}, },
"node_modules/minimatch": { "node_modules/minimatch": {
"version": "3.1.2", "version": "3.1.2",
@ -2182,6 +2194,11 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true "dev": true
}, },
"@mdi/js": {
"version": "6.6.96",
"resolved": "https://registry.npmjs.org/@mdi/js/-/js-6.6.96.tgz",
"integrity": "sha512-ke9PN5DjPCOlMfhioxeZYADz8Yiz6v47W0IYRza01SSJD7y1EwESVpwFnnFUso+eCoWtE1CO9cTIvQF6sEreuA=="
},
"@ts-pro/vue-eternal-loading": { "@ts-pro/vue-eternal-loading": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ts-pro/vue-eternal-loading/-/vue-eternal-loading-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@ts-pro/vue-eternal-loading/-/vue-eternal-loading-1.2.0.tgz",
@ -3145,10 +3162,13 @@
"sourcemap-codec": "^1.4.8" "sourcemap-codec": "^1.4.8"
} }
}, },
"mdi": { "mdi-vue": {
"version": "2.2.43", "version": "3.0.12",
"resolved": "https://registry.npmjs.org/mdi/-/mdi-2.2.43.tgz", "resolved": "https://registry.npmjs.org/mdi-vue/-/mdi-vue-3.0.12.tgz",
"integrity": "sha512-g3m6z4303qieltUM20JL2gdsJZvoVzIzO74qa2XxZ2kg9JPwrPEAgooVhRDHZi1vvRh0gB8Dg+c9XqNdz4jcIg==" "integrity": "sha512-rc4rq99Hafa7v1u3KyfzGRr13v7/AzBvNrcXdhcgPQvj8wYafimbLGfNvQcGiAYZMow40KpXlZuG07132XccKw==",
"requires": {
"@mdi/js": "*"
}
}, },
"minimatch": { "minimatch": {
"version": "3.1.2", "version": "3.1.2",

View File

@ -11,13 +11,14 @@
}, },
"dependencies": { "dependencies": {
"@aacassandra/vue3-progressbar": "^1.0.3", "@aacassandra/vue3-progressbar": "^1.0.3",
"@mdi/js": "^6.6.96",
"@ts-pro/vue-eternal-loading": "^1.2.0", "@ts-pro/vue-eternal-loading": "^1.2.0",
"@vueform/slider": "github:chme/slider#faff83ed8a77f2cdbcb7252505ef734301efd139", "@vueform/slider": "github:chme/slider#faff83ed8a77f2cdbcb7252505ef734301efd139",
"axios": "^0.26.1", "axios": "^0.26.1",
"bulma": "^0.9.3", "bulma": "^0.9.3",
"bulma-switch": "^2.0.4", "bulma-switch": "^2.0.4",
"luxon": "^2.3.1", "luxon": "^2.3.1",
"mdi": "^2.2.43", "mdi-vue": "^3.0.12",
"reconnectingwebsocket": "^1.0.0", "reconnectingwebsocket": "^1.0.0",
"spotify-web-api-js": "^1.5.2", "spotify-web-api-js": "^1.5.2",
"string-to-color": "^2.2.2", "string-to-color": "^2.2.2",

View File

@ -12,8 +12,8 @@
@click="is_active = !is_active" @click="is_active = !is_active"
> >
<span>{{ modelValue }}</span> <span>{{ modelValue }}</span>
<span class="icon is-small"> <span class="icon">
<i class="mdi mdi-chevron-down" aria-hidden="true" /> <mdicon name="chevron-down" size="16" />
</span> </span>
</button> </button>
</div> </div>

View File

@ -41,7 +41,7 @@
<div class="media-right" style="padding-top: 0.7rem"> <div class="media-right" style="padding-top: 0.7rem">
<a @click.prevent.stop="open_dialog(album.item)"> <a @click.prevent.stop="open_dialog(album.item)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>

View File

@ -22,7 +22,7 @@
<div class="media-right"> <div class="media-right">
<a @click.prevent.stop="open_dialog(artist.item)"> <a @click.prevent.stop="open_dialog(artist.item)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>

View File

@ -22,7 +22,7 @@
<div class="media-right"> <div class="media-right">
<a @click.prevent.stop="open_dialog(composer.item)"> <a @click.prevent.stop="open_dialog(composer.item)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>

View File

@ -6,7 +6,7 @@
> >
<figure class="media-left fd-has-action"> <figure class="media-left fd-has-action">
<span class="icon"> <span class="icon">
<i class="mdi mdi-subdirectory-arrow-left" /> <mdicon name="subdirectory-arrow-left" size="16" />
</span> </span>
</figure> </figure>
<div class="media-content fd-has-action is-clipped"> <div class="media-content fd-has-action is-clipped">
@ -20,7 +20,7 @@
<div class="media" @click="open_directory(directory)"> <div class="media" @click="open_directory(directory)">
<figure class="media-left fd-has-action"> <figure class="media-left fd-has-action">
<span class="icon"> <span class="icon">
<i class="mdi mdi-folder" /> <mdicon name="folder" size="16" />
</span> </span>
</figure> </figure>
<div class="media-content fd-has-action is-clipped"> <div class="media-content fd-has-action is-clipped">
@ -34,7 +34,7 @@
<div class="media-right"> <div class="media-right">
<a @click.prevent.stop="open_dialog(directory)"> <a @click.prevent.stop="open_dialog(directory)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>

View File

@ -18,7 +18,7 @@
<div class="media-right"> <div class="media-right">
<a @click.prevent.stop="open_dialog(genre.item)"> <a @click.prevent.stop="open_dialog(genre.item)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>

View File

@ -2,7 +2,7 @@
<div v-if="is_next || !show_only_next_items" class="media"> <div v-if="is_next || !show_only_next_items" class="media">
<div v-if="edit_mode" class="media-left"> <div v-if="edit_mode" class="media-left">
<span class="icon has-text-grey fd-is-movable handle" <span class="icon has-text-grey fd-is-movable handle"
><i class="mdi mdi-drag-horizontal mdi-18px" ><mdicon name="drag-horizontal" size="16"
/></span> /></span>
</div> </div>

View File

@ -8,14 +8,7 @@
> >
<figure class="media-left fd-has-action"> <figure class="media-left fd-has-action">
<span class="icon"> <span class="icon">
<i <mdicon :name="icon_name(playlist)" size="16" />
class="mdi"
:class="{
'mdi-library-music': playlist.type !== 'folder',
'mdi-rss': playlist.type === 'rss',
'mdi-folder': playlist.type === 'folder'
}"
/>
</span> </span>
</figure> </figure>
<div class="media-content fd-has-action is-clipped"> <div class="media-content fd-has-action is-clipped">
@ -26,7 +19,7 @@
<div class="media-right"> <div class="media-right">
<a @click.prevent.stop="open_dialog(playlist)"> <a @click.prevent.stop="open_dialog(playlist)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>
@ -68,6 +61,16 @@ export default {
open_dialog: function (playlist) { open_dialog: function (playlist) {
this.selected_playlist = playlist this.selected_playlist = playlist
this.show_details_modal = true this.show_details_modal = true
},
icon_name: function (playlist) {
if (playlist.type === 'folder') {
return 'folder'
} else if (playlist.type === 'rss') {
return 'rss'
} else {
return 'music-box-multiple'
}
} }
} }
} }

View File

@ -9,7 +9,7 @@
> >
<figure v-if="show_icon" class="media-left fd-has-action"> <figure v-if="show_icon" class="media-left fd-has-action">
<span class="icon"> <span class="icon">
<i class="mdi mdi-file-outline" /> <mdicon name="file-outline" size="16" />
</span> </span>
</figure> </figure>
<div class="media-content fd-has-action is-clipped"> <div class="media-content fd-has-action is-clipped">
@ -37,7 +37,7 @@
<div class="media-right"> <div class="media-right">
<a @click.prevent.stop="open_dialog(track)"> <a @click.prevent.stop="open_dialog(track)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</div> </div>

View File

@ -13,7 +13,7 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="$emit('close')"> <a class="card-footer-item has-text-dark" @click="$emit('close')">
<span class="icon"><i class="mdi mdi-cancel" /></span> <span class="icon"><mdicon name="cancel" size="16" /></span>
<span class="is-size-7">{{ <span class="is-size-7">{{
close_action ? close_action : 'Cancel' close_action ? close_action : 'Cancel'
}}</span> }}</span>
@ -23,7 +23,7 @@
class="card-footer-item has-background-danger has-text-white has-text-weight-bold" class="card-footer-item has-background-danger has-text-white has-text-weight-bold"
@click="$emit('delete')" @click="$emit('delete')"
> >
<span class="icon"><i class="mdi mdi-delete" /></span> <span class="icon"><mdicon name="delete" size="16" /></span>
<span class="is-size-7">{{ delete_action }}</span> <span class="is-size-7">{{ delete_action }}</span>
</a> </a>
<a <a
@ -31,7 +31,7 @@
class="card-footer-item has-background-info has-text-white has-text-weight-bold" class="card-footer-item has-background-info has-text-white has-text-weight-bold"
@click="$emit('ok')" @click="$emit('ok')"
> >
<span class="icon"><i class="mdi mdi-check" /></span> <span class="icon"><mdicon name="check" size="16" /></span>
<span class="is-size-7">{{ ok_action }}</span> <span class="is-size-7">{{ ok_action }}</span>
</a> </a>
</footer> </footer>

View File

@ -19,7 +19,7 @@
:disabled="loading" :disabled="loading"
/> />
<span class="icon is-left"> <span class="icon is-left">
<i class="mdi mdi-rss" /> <mdicon name="rss" size="16" />
</span> </span>
</p> </p>
<p class="help"> <p class="help">
@ -31,7 +31,7 @@
</div> </div>
<footer v-if="loading" class="card-footer"> <footer v-if="loading" class="card-footer">
<a class="card-footer-item button is-loading"> <a class="card-footer-item button is-loading">
<span class="icon"><i class="mdi mdi-web" /></span> <span class="icon"><mdicon name="web" size="16" /></span>
<span class="is-size-7">Processing ...</span> <span class="is-size-7">Processing ...</span>
</a> </a>
</footer> </footer>
@ -40,14 +40,16 @@
class="card-footer-item has-text-danger" class="card-footer-item has-text-danger"
@click="$emit('close')" @click="$emit('close')"
> >
<span class="icon"><i class="mdi mdi-cancel" /></span> <span class="icon"><mdicon name="cancel" size="16" /></span>
<span class="is-size-7">Cancel</span> <span class="is-size-7">Cancel</span>
</a> </a>
<a <a
class="card-footer-item has-background-info has-text-white has-text-weight-bold" class="card-footer-item has-background-info has-text-white has-text-weight-bold"
@click="add_stream" @click="add_stream"
> >
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
</footer> </footer>

View File

@ -19,7 +19,7 @@
:disabled="loading" :disabled="loading"
/> />
<span class="icon is-left"> <span class="icon is-left">
<i class="mdi mdi-web" /> <mdicon name="web" size="16" />
</span> </span>
</p> </p>
</div> </div>
@ -27,7 +27,7 @@
</div> </div>
<footer v-if="loading" class="card-footer"> <footer v-if="loading" class="card-footer">
<a class="card-footer-item has-text-dark"> <a class="card-footer-item has-text-dark">
<span class="icon"><i class="mdi mdi-web" /></span> <span class="icon"><mdicon name="web" size="16" /></span>
<span class="is-size-7">Loading ...</span> <span class="is-size-7">Loading ...</span>
</a> </a>
</footer> </footer>
@ -36,18 +36,20 @@
class="card-footer-item has-text-danger" class="card-footer-item has-text-danger"
@click="$emit('close')" @click="$emit('close')"
> >
<span class="icon"><i class="mdi mdi-cancel" /></span> <span class="icon"><mdicon name="cancel" size="16" /></span>
<span class="is-size-7">Cancel</span> <span class="is-size-7">Cancel</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="add_stream"> <a class="card-footer-item has-text-dark" @click="add_stream">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a <a
class="card-footer-item has-background-info has-text-white has-text-weight-bold" class="card-footer-item has-background-info has-text-white has-text-weight-bold"
@click="play" @click="play"
> >
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -68,15 +68,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -34,15 +34,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -32,15 +32,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -12,15 +12,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -30,15 +30,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -24,15 +24,19 @@
</div> </div>
<footer v-if="!playlist.folder" class="card-footer"> <footer v-if="!playlist.folder" class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -19,7 +19,7 @@
:disabled="loading" :disabled="loading"
/> />
<span class="icon is-left"> <span class="icon is-left">
<i class="mdi mdi-file-music" /> <mdicon name="file-music" size="16" />
</span> </span>
</p> </p>
</div> </div>
@ -27,7 +27,7 @@
</div> </div>
<footer v-if="loading" class="card-footer"> <footer v-if="loading" class="card-footer">
<a class="card-footer-item has-text-dark"> <a class="card-footer-item has-text-dark">
<span class="icon"><i class="mdi mdi-web" /></span> <span class="icon"><mdicon name="web" size="16" /></span>
<span class="is-size-7">Saving ...</span> <span class="is-size-7">Saving ...</span>
</a> </a>
</footer> </footer>
@ -36,14 +36,16 @@
class="card-footer-item has-text-danger" class="card-footer-item has-text-danger"
@click="$emit('close')" @click="$emit('close')"
> >
<span class="icon"><i class="mdi mdi-cancel" /></span> <span class="icon"><mdicon name="cancel" size="16" /></span>
<span class="is-size-7">Cancel</span> <span class="is-size-7">Cancel</span>
</a> </a>
<a <a
class="card-footer-item has-background-info has-text-white has-text-weight-bold" class="card-footer-item has-background-info has-text-white has-text-weight-bold"
@click="save" @click="save"
> >
<span class="icon"><i class="mdi mdi-content-save" /></span> <span class="icon"
><mdicon name="content-save" size="16"
/></span>
<span class="is-size-7">Save</span> <span class="is-size-7">Save</span>
</a> </a>
</footer> </footer>

View File

@ -92,11 +92,11 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="remove"> <a class="card-footer-item has-text-dark" @click="remove">
<span class="icon"><i class="mdi mdi-delete" /></span> <span class="icon"><mdicon name="delete" size="16" /></span>
<span class="is-size-7">Remove</span> <span class="is-size-7">Remove</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -29,14 +29,14 @@
class="card-footer-item has-text-danger" class="card-footer-item has-text-danger"
@click="$emit('close')" @click="$emit('close')"
> >
<span class="icon"><i class="mdi mdi-cancel" /></span> <span class="icon"><mdicon name="cancel" size="16" /></span>
<span class="is-size-7">Cancel</span> <span class="is-size-7">Cancel</span>
</a> </a>
<a <a
class="card-footer-item has-background-info has-text-white has-text-weight-bold" class="card-footer-item has-background-info has-text-white has-text-weight-bold"
@click="kickoff_pairing" @click="kickoff_pairing"
> >
<span class="icon"><i class="mdi mdi-cellphone-iphone" /></span> <span class="icon"><mdicon name="cellphone" size="16" /></span>
<span class="is-size-7">Pair Remote</span> <span class="is-size-7">Pair Remote</span>
</a> </a>
</footer> </footer>

View File

@ -124,15 +124,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play_track"> <a class="card-footer-item has-text-dark" @click="play_track">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -12,7 +12,7 @@
<div class="navbar-brand fd-expanded"> <div class="navbar-brand fd-expanded">
<!-- Link to queue --> <!-- Link to queue -->
<navbar-item-link to="/" exact> <navbar-item-link to="/" exact>
<span class="icon"><i class="mdi mdi-24px mdi-playlist-play" /></span> <span class="icon"><mdicon name="playlist-play" size="24" /></span>
</navbar-item-link> </navbar-item-link>
<!-- Now playing artist/title (not visible on "now playing" page) --> <!-- Now playing artist/title (not visible on "now playing" page) -->
@ -39,31 +39,31 @@
<player-button-previous <player-button-previous
v-if="is_now_playing_page" v-if="is_now_playing_page"
class="navbar-item fd-margin-left-auto" class="navbar-item fd-margin-left-auto"
icon_style="mdi-24px" :icon_size="24"
/> />
<player-button-seek-back <player-button-seek-back
v-if="is_now_playing_page" v-if="is_now_playing_page"
seek_ms="10000" :seek_ms="10000"
class="navbar-item" class="navbar-item"
icon_style="mdi-24px" :icon_size="24"
/> />
<!-- Play/pause --> <!-- Play/pause -->
<player-button-play-pause <player-button-play-pause
class="navbar-item" class="navbar-item"
icon_style="mdi-36px" :icon_size="36"
show_disabled_message show_disabled_message
/> />
<player-button-seek-forward <player-button-seek-forward
v-if="is_now_playing_page" v-if="is_now_playing_page"
seek_ms="30000" :seek_ms="30000"
class="navbar-item" class="navbar-item"
icon_style="mdi-24px" :icon_size="24"
/> />
<!-- Skip next (not visible on "now playing" page) --> <!-- Skip next (not visible on "now playing" page) -->
<player-button-next <player-button-next
v-if="is_now_playing_page" v-if="is_now_playing_page"
class="navbar-item" class="navbar-item"
icon_style="mdi-24px" :icon_size="24"
/> />
<!-- Player menu button (only visible on mobile and tablet) --> <!-- Player menu button (only visible on mobile and tablet) -->
@ -72,12 +72,9 @@
@click="show_player_menu = !show_player_menu" @click="show_player_menu = !show_player_menu"
> >
<span class="icon" <span class="icon"
><i ><mdicon
class="mdi mdi-18px" :name="show_player_menu ? 'chevron-down' : 'chevron-up'"
:class="{ size="18"
'mdi-chevron-up': !show_player_menu,
'mdi-chevron-down': show_player_menu
}"
/></span> /></span>
</a> </a>
@ -91,12 +88,9 @@
@click="show_player_menu = !show_player_menu" @click="show_player_menu = !show_player_menu"
> >
<span class="icon" <span class="icon"
><i ><mdicon
class="mdi mdi-18px" :name="show_player_menu ? 'chevron-down' : 'chevron-up'"
:class="{ size="18"
'mdi-chevron-up': !show_player_menu,
'mdi-chevron-down': show_player_menu
}"
/></span> /></span>
</a> </a>
@ -114,12 +108,9 @@
@click="toggle_mute_volume" @click="toggle_mute_volume"
> >
<span class="icon" <span class="icon"
><i ><mdicon
class="mdi mdi-18px" :name="player.volume > 0 ? 'volume-high' : 'volume-off'"
:class="{ size="18"
'mdi-volume-off': player.volume <= 0,
'mdi-volume-high': player.volume > 0
}"
/></span> /></span>
</a> </a>
</div> </div>
@ -173,7 +164,7 @@
'is-loading': loading 'is-loading': loading
}" }"
@click="togglePlay" @click="togglePlay"
><i class="mdi mdi-18px mdi-radio-tower" /></span ><mdicon name="radio-tower" size="18" /></span
></a> ></a>
</div> </div>
<div class="level-item fd-expanded"> <div class="level-item fd-expanded">
@ -239,9 +230,9 @@
<!-- Repeat/shuffle/consume --> <!-- Repeat/shuffle/consume -->
<div class="navbar-item"> <div class="navbar-item">
<div class="buttons is-centered"> <div class="buttons is-centered">
<player-button-repeat class="button" icon_style="mdi-18px" /> <player-button-repeat class="button" :icon_size="18" />
<player-button-shuffle class="button" icon_style="mdi-18px" /> <player-button-shuffle class="button" :icon_size="18" />
<player-button-consume class="button" icon_style="mdi-18px" /> <player-button-consume class="button" :icon_size="18" />
</div> </div>
</div> </div>
@ -254,12 +245,9 @@
<div class="level-item" style="flex-grow: 0"> <div class="level-item" style="flex-grow: 0">
<a class="button is-white is-small" @click="toggle_mute_volume"> <a class="button is-white is-small" @click="toggle_mute_volume">
<span class="icon" <span class="icon"
><i ><mdicon
class="mdi mdi-18px" :name="player.volume > 0 ? 'volume-high' : 'volume-off'"
:class="{ size="18"
'mdi-volume-off': player.volume <= 0,
'mdi-volume-high': player.volume > 0
}"
/></span> /></span>
</a> </a>
</div> </div>
@ -313,7 +301,7 @@
'is-loading': loading 'is-loading': loading
}" }"
@click="togglePlay" @click="togglePlay"
><i class="mdi mdi-18px mdi-radio-tower" /> ><mdicon name="radio-tower" size="16" />
</span> </span>
</a> </a>
</div> </div>

View File

@ -9,11 +9,7 @@
:class="{ 'has-text-grey-light': !output.selected }" :class="{ 'has-text-grey-light': !output.selected }"
@click="set_enabled" @click="set_enabled"
> >
<i <mdicon :name="type_class" size="18" :title="output.type" />
class="mdi mdi-18px"
:class="type_class"
:title="output.type"
/>
</span> </span>
</a> </a>
</div> </div>
@ -68,13 +64,13 @@ export default {
computed: { computed: {
type_class() { type_class() {
if (this.output.type.startsWith('AirPlay')) { if (this.output.type.startsWith('AirPlay')) {
return 'mdi-airplay' return 'cast-variant'
} else if (this.output.type === 'Chromecast') { } else if (this.output.type === 'Chromecast') {
return 'mdi-cast' return 'cast'
} else if (this.output.type === 'fifo') { } else if (this.output.type === 'fifo') {
return 'mdi-pipe' return 'pipe'
} else { } else {
return 'mdi-server' return 'server'
} }
}, },

View File

@ -7,25 +7,25 @@
> >
<div class="navbar-brand"> <div class="navbar-brand">
<navbar-item-link v-if="is_visible_playlists" to="/playlists"> <navbar-item-link v-if="is_visible_playlists" to="/playlists">
<span class="icon"><i class="mdi mdi-library-music" /></span> <span class="icon"><mdicon name="music-box-multiple" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link v-if="is_visible_music" to="/music"> <navbar-item-link v-if="is_visible_music" to="/music">
<span class="icon"><i class="mdi mdi-music" /></span> <span class="icon"><mdicon name="music" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link v-if="is_visible_podcasts" to="/podcasts"> <navbar-item-link v-if="is_visible_podcasts" to="/podcasts">
<span class="icon"><i class="mdi mdi-microphone" /></span> <span class="icon"><mdicon name="microphone" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link v-if="is_visible_audiobooks" to="/audiobooks"> <navbar-item-link v-if="is_visible_audiobooks" to="/audiobooks">
<span class="icon"><i class="mdi mdi-book-open-variant" /></span> <span class="icon"><mdicon name="book-open-variant" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link v-if="is_visible_radio" to="/radio"> <navbar-item-link v-if="is_visible_radio" to="/radio">
<span class="icon"><i class="mdi mdi-radio" /></span> <span class="icon"><mdicon name="radio" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link v-if="is_visible_files" to="/files"> <navbar-item-link v-if="is_visible_files" to="/files">
<span class="icon"><i class="mdi mdi-folder-open" /></span> <span class="icon"><mdicon name="folder-open" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link v-if="is_visible_search" to="/search"> <navbar-item-link v-if="is_visible_search" to="/search">
<span class="icon"><i class="mdi mdi-magnify" /></span> <span class="icon"><mdicon name="magnify" size="16" /></span>
</navbar-item-link> </navbar-item-link>
<div <div
@ -51,18 +51,20 @@
> >
<a class="navbar-link is-arrowless"> <a class="navbar-link is-arrowless">
<span class="icon is-hidden-touch" <span class="icon is-hidden-touch"
><i class="mdi mdi-24px mdi-menu" ><mdicon name="menu" size="24"
/></span> /></span>
<span class="is-hidden-desktop has-text-weight-bold">OwnTone</span> <span class="is-hidden-desktop has-text-weight-bold">OwnTone</span>
</a> </a>
<div class="navbar-dropdown is-right"> <div class="navbar-dropdown is-right">
<navbar-item-link to="/playlists"> <navbar-item-link to="/playlists">
<span class="icon"><i class="mdi mdi-library-music" /></span> <span class="icon"
><mdicon name="music-box-multiple" size="16"
/></span>
<b>Playlists</b> <b>Playlists</b>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/music" exact> <navbar-item-link to="/music" exact>
<span class="icon"><i class="mdi mdi-music" /></span> <span class="icon"><mdicon name="music" size="16" /></span>
<b>Music</b> <b>Music</b>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/music/artists"> <navbar-item-link to="/music/artists">
@ -78,23 +80,25 @@
<span class="fd-navbar-item-level2">Spotify</span> <span class="fd-navbar-item-level2">Spotify</span>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/podcasts"> <navbar-item-link to="/podcasts">
<span class="icon"><i class="mdi mdi-microphone" /></span> <span class="icon"><mdicon name="microphone" size="16" /></span>
<b>Podcasts</b> <b>Podcasts</b>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/audiobooks"> <navbar-item-link to="/audiobooks">
<span class="icon"><i class="mdi mdi-book-open-variant" /></span> <span class="icon"
><mdicon name="book-open-variant" size="16"
/></span>
<b>Audiobooks</b> <b>Audiobooks</b>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/radio"> <navbar-item-link to="/radio">
<span class="icon"><i class="mdi mdi-radio" /></span> <span class="icon"><mdicon name="radio" size="16" /></span>
<b>Radio</b> <b>Radio</b>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/files"> <navbar-item-link to="/files">
<span class="icon"><i class="mdi mdi-folder-open" /></span> <span class="icon"><mdicon name="folder-open" size="16" /></span>
<b>Files</b> <b>Files</b>
</navbar-item-link> </navbar-item-link>
<navbar-item-link to="/search"> <navbar-item-link to="/search">
<span class="icon"><i class="mdi mdi-magnify" /></span> <span class="icon"><mdicon name="magnify" size="16" /></span>
<b>Search</b> <b>Search</b>
</navbar-item-link> </navbar-item-link>
<hr class="fd-navbar-divider" /> <hr class="fd-navbar-divider" />

View File

@ -1,6 +1,6 @@
<template> <template>
<a :class="{ 'is-warning': is_consume }" @click="toggle_consume_mode"> <a :class="{ 'is-warning': is_consume }" @click="toggle_consume_mode">
<span class="icon"><i class="mdi mdi-fire" :class="icon_style" /></span> <span class="icon"><mdicon name="fire" :size="icon_size" /></span>
</a> </a>
</template> </template>
@ -11,7 +11,10 @@ export default {
name: 'PlayerButtonConsume', name: 'PlayerButtonConsume',
props: { props: {
icon_style: String icon_size: {
type: Number,
default: 16
}
}, },
computed: { computed: {

View File

@ -1,8 +1,6 @@
<template> <template>
<a :disabled="disabled" @click="play_next"> <a :disabled="disabled" @click="play_next">
<span class="icon" <span class="icon"><mdicon name="skip-forward" :size="icon_size" /></span>
><i class="mdi mdi-skip-forward" :class="icon_style"
/></span>
</a> </a>
</template> </template>
@ -13,7 +11,10 @@ export default {
name: 'PlayerButtonNext', name: 'PlayerButtonNext',
props: { props: {
icon_style: String icon_size: {
type: Number,
default: 16
}
}, },
computed: { computed: {

View File

@ -1,17 +1,6 @@
<template> <template>
<a :disabled="disabled" @click="toggle_play_pause"> <a :disabled="disabled" @click="toggle_play_pause">
<span class="icon" <span class="icon"><mdicon :name="icon_name" :size="icon_size" /></span>
><i
class="mdi"
:class="[
icon_style,
{
'mdi-play': !is_playing,
'mdi-pause': is_playing && is_pause_allowed,
'mdi-stop': is_playing && !is_pause_allowed
}
]"
/></span>
</a> </a>
</template> </template>
@ -22,7 +11,10 @@ export default {
name: 'PlayerButtonPlayPause', name: 'PlayerButtonPlayPause',
props: { props: {
icon_style: String, icon_size: {
type: Number,
default: 16
},
show_disabled_message: Boolean show_disabled_message: Boolean
}, },
@ -40,6 +32,15 @@ export default {
disabled() { disabled() {
return !this.$store.state.queue || this.$store.state.queue.count <= 0 return !this.$store.state.queue || this.$store.state.queue.count <= 0
},
icon_name() {
if (!this.is_playing) {
return 'play'
} else if (this.is_pause_allowed) {
return 'pause'
}
return 'stop'
} }
}, },

View File

@ -1,8 +1,6 @@
<template> <template>
<a :disabled="disabled" @click="play_previous"> <a :disabled="disabled" @click="play_previous">
<span class="icon" <span class="icon"><mdicon name="skip-backward" :size="icon_size" /></span>
><i class="mdi mdi-skip-backward" :class="icon_style"
/></span>
</a> </a>
</template> </template>
@ -13,7 +11,10 @@ export default {
name: 'PlayerButtonPrevious', name: 'PlayerButtonPrevious',
props: { props: {
icon_style: String icon_size: {
type: Number,
default: 16
}
}, },
computed: { computed: {

View File

@ -1,17 +1,6 @@
<template> <template>
<a :class="{ 'is-warning': !is_repeat_off }" @click="toggle_repeat_mode"> <a :class="{ 'is-warning': !is_repeat_off }" @click="toggle_repeat_mode">
<span class="icon" <span class="icon"><mdicon :name="icon_name" :size="icon_size" /></span>
><i
class="mdi"
:class="[
icon_style,
{
'mdi-repeat': is_repeat_all,
'mdi-repeat-once': is_repeat_single,
'mdi-repeat-off': is_repeat_off
}
]"
/></span>
</a> </a>
</template> </template>
@ -22,7 +11,10 @@ export default {
name: 'PlayerButtonRepeat', name: 'PlayerButtonRepeat',
props: { props: {
icon_style: String icon_size: {
type: Number,
default: 16
}
}, },
computed: { computed: {
@ -34,6 +26,14 @@ export default {
}, },
is_repeat_off() { is_repeat_off() {
return !this.is_repeat_all && !this.is_repeat_single return !this.is_repeat_all && !this.is_repeat_single
},
icon_name() {
if (this.is_repeat_all) {
return 'repeat'
} else if (this.is_repeat_single) {
return 'repeat-once'
}
return 'repeat-off'
} }
}, },

View File

@ -1,6 +1,6 @@
<template> <template>
<a v-if="visible" :disabled="disabled" @click="seek"> <a v-if="visible" :disabled="disabled" @click="seek">
<span class="icon"><i class="mdi mdi-rewind" :class="icon_style" /></span> <span class="icon"><mdicon name="rewind" :size="icon_size" /></span>
</a> </a>
</template> </template>
@ -9,7 +9,13 @@ import webapi from '@/webapi'
export default { export default {
name: 'PlayerButtonSeekBack', name: 'PlayerButtonSeekBack',
props: ['seek_ms', 'icon_style'], props: {
seek_ms: Number,
icon_size: {
type: Number,
default: 16
}
},
computed: { computed: {
now_playing() { now_playing() {

View File

@ -1,8 +1,6 @@
<template> <template>
<a v-if="visible" :disabled="disabled" @click="seek"> <a v-if="visible" :disabled="disabled" @click="seek">
<span class="icon" <span class="icon"><mdicon name="fast-forward" :size="icon_size" /></span>
><i class="mdi mdi-fast-forward" :class="icon_style"
/></span>
</a> </a>
</template> </template>
@ -11,7 +9,13 @@ import webapi from '@/webapi'
export default { export default {
name: 'PlayerButtonSeekForward', name: 'PlayerButtonSeekForward',
props: ['seek_ms', 'icon_style'], props: {
seek_ms: Number,
icon_size: {
type: Number,
default: 16
}
},
computed: { computed: {
now_playing() { now_playing() {

View File

@ -1,13 +1,6 @@
<template> <template>
<a :class="{ 'is-warning': is_shuffle }" @click="toggle_shuffle_mode"> <a :class="{ 'is-warning': is_shuffle }" @click="toggle_shuffle_mode">
<span class="icon" <span class="icon"><mdicon :name="icon_name" :size="icon_size" /></span>
><i
class="mdi"
:class="[
icon_style,
{ 'mdi-shuffle': is_shuffle, 'mdi-shuffle-disabled': !is_shuffle }
]"
/></span>
</a> </a>
</template> </template>
@ -18,12 +11,21 @@ export default {
name: 'PlayerButtonShuffle', name: 'PlayerButtonShuffle',
props: { props: {
icon_style: String icon_size: {
type: Number,
default: 16
}
}, },
computed: { computed: {
is_shuffle() { is_shuffle() {
return this.$store.state.player.shuffle return this.$store.state.player.shuffle
},
icon_name() {
if (this.is_shuffle) {
return 'shuffle'
}
return 'shuffle-disabled'
} }
}, },

View File

@ -43,15 +43,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -27,15 +27,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -30,15 +30,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -51,15 +51,19 @@
</div> </div>
<footer class="card-footer"> <footer class="card-footer">
<a class="card-footer-item has-text-dark" @click="queue_add"> <a class="card-footer-item has-text-dark" @click="queue_add">
<span class="icon"><i class="mdi mdi-playlist-plus" /></span> <span class="icon"
><mdicon name="playlist-plus" size="16"
/></span>
<span class="is-size-7">Add</span> <span class="is-size-7">Add</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="queue_add_next"> <a class="card-footer-item has-text-dark" @click="queue_add_next">
<span class="icon"><i class="mdi mdi-playlist-play" /></span> <span class="icon"
><mdicon name="playlist-play" size="16"
/></span>
<span class="is-size-7">Add Next</span> <span class="is-size-7">Add Next</span>
</a> </a>
<a class="card-footer-item has-text-dark" @click="play"> <a class="card-footer-item has-text-dark" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span class="is-size-7">Play</span> <span class="is-size-7">Play</span>
</a> </a>
</footer> </footer>

View File

@ -13,7 +13,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-artist" ><mdicon name="account-music" size="16"
/></span> /></span>
<span class="">Authors</span> <span class="">Authors</span>
</a> </a>
@ -27,7 +27,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-album" ><mdicon name="album" size="16"
/></span> /></span>
<span class="">Audiobooks</span> <span class="">Audiobooks</span>
</a> </a>

View File

@ -12,7 +12,9 @@
> >
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small"><i class="mdi mdi-web" /></span> <span class="icon is-small"
><mdicon name="web" size="16"
/></span>
<span class="">Browse</span> <span class="">Browse</span>
</a> </a>
</li> </li>
@ -25,7 +27,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-artist" ><mdicon name="account-music" size="16"
/></span> /></span>
<span class="">Artists</span> <span class="">Artists</span>
</a> </a>
@ -39,7 +41,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-album" ><mdicon name="album" size="16"
/></span> /></span>
<span class="">Albums</span> <span class="">Albums</span>
</a> </a>
@ -53,7 +55,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-speaker" ><mdicon name="speaker" size="16"
/></span> /></span>
<span class="">Genres</span> <span class="">Genres</span>
</a> </a>
@ -67,7 +69,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-book-open-page-variant" ><mdicon name="book-open-page-variant" size="16"
/></span> /></span>
<span class="">Composers</span> <span class="">Composers</span>
</a> </a>
@ -82,7 +84,7 @@
<li :class="{ 'is-active': isActive }"> <li :class="{ 'is-active': isActive }">
<a @click="navigate" @keypress.enter="navigate"> <a @click="navigate" @keypress.enter="navigate">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-spotify" ><mdicon name="spotify" size="16"
/></span> /></span>
<span class="">Spotify</span> <span class="">Spotify</span>
</a> </a>

View File

@ -5,18 +5,26 @@
<div class="column is-four-fifths"> <div class="column is-four-fifths">
<div class="tabs is-centered is-small is-toggle is-toggle-rounded"> <div class="tabs is-centered is-small is-toggle is-toggle-rounded">
<ul> <ul>
<li :class="{ 'is-active': $store.state.search_path === '/search/library' }"> <li
:class="{
'is-active': $store.state.search_path === '/search/library'
}"
>
<a @click="search_library"> <a @click="search_library">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-library-books" ><mdicon name="bookshelf" size="16"
/></span> /></span>
<span class="">Library</span> <span class="">Library</span>
</a> </a>
</li> </li>
<li :class="{ 'is-active': $store.state.search_path === '/search/spotify' }"> <li
:class="{
'is-active': $store.state.search_path === '/search/spotify'
}"
>
<a @click="search_spotify"> <a @click="search_spotify">
<span class="icon is-small" <span class="icon is-small"
><i class="mdi mdi-spotify" ><mdicon name="spotify" size="16"
/></span> /></span>
<span class="">Spotify</span> <span class="">Spotify</span>
</a> </a>

117
web-src/src/icons.js Normal file
View File

@ -0,0 +1,117 @@
import {
mdiAccountMusic,
mdiAlbum,
mdiArrowCollapseDown,
mdiBookOpenVariant,
mdiBookOpenPageVariant,
mdiBookshelf,
mdiCancel,
mdiCast,
mdiCastVariant,
mdiCellphone,
mdiCheck,
mdiChevronDown,
mdiChevronUp,
mdiContentSave,
mdiDelete,
mdiDeleteEmpty,
mdiDotsHorizontal,
mdiDotsVertical,
mdiDragHorizontal,
mdiFastForward,
mdiFileMusic,
mdiFileOutline,
mdiFire,
mdiFolder,
mdiFolderOpen,
mdiMagnify,
mdiMenu,
mdiMicrophone,
mdiMusic,
mdiMusicBoxMultiple,
mdiPause,
mdiPencil,
mdiPipe,
mdiPlay,
mdiPlaylistPlay,
mdiPlaylistPlus,
mdiRadio,
mdiRadioTower,
mdiRefresh,
mdiRepeat,
mdiRepeatOff,
mdiRepeatOnce,
mdiRewind,
mdiRss,
mdiServer,
mdiShuffle,
mdiShuffleDisabled,
mdiSkipBackward,
mdiSkipForward,
mdiSpeaker,
mdiSpotify,
mdiStop,
mdiSubdirectoryArrowLeft,
mdiVolumeHigh,
mdiVolumeOff,
mdiWeb
} from '@mdi/js'
export const icons = {
mdiAccountMusic,
mdiAlbum,
mdiArrowCollapseDown,
mdiBookOpenVariant,
mdiBookOpenPageVariant,
mdiBookshelf,
mdiCancel,
mdiCast,
mdiCastVariant,
mdiCellphone,
mdiCheck,
mdiChevronDown,
mdiChevronUp,
mdiContentSave,
mdiDelete,
mdiDeleteEmpty,
mdiDotsHorizontal,
mdiDotsVertical,
mdiDragHorizontal,
mdiFastForward,
mdiFileMusic,
mdiFileOutline,
mdiFire,
mdiFolder,
mdiFolderOpen,
mdiMagnify,
mdiMenu,
mdiMicrophone,
mdiMusic,
mdiMusicBoxMultiple,
mdiPause,
mdiPencil,
mdiPipe,
mdiPlay,
mdiPlaylistPlay,
mdiPlaylistPlus,
mdiRadio,
mdiRadioTower,
mdiRefresh,
mdiRepeat,
mdiRepeatOff,
mdiRepeatOnce,
mdiRewind,
mdiRss,
mdiServer,
mdiShuffle,
mdiShuffleDisabled,
mdiSkipBackward,
mdiSkipForward,
mdiSpeaker,
mdiSpotify,
mdiStop,
mdiSubdirectoryArrowLeft,
mdiVolumeHigh,
mdiVolumeOff,
mdiWeb
}

View File

@ -1,31 +0,0 @@
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import { router } from './router'
import store from './store'
import './filter'
import './progress'
import vClickOutside from 'v-click-outside'
import VueTinyLazyloadImg from 'vue-tiny-lazyload-img'
import VueObserveVisibility from 'vue-observe-visibility'
import VueScrollTo from 'vue-scrollto'
import 'mdi/css/materialdesignicons.css'
import 'vue-range-slider/dist/vue-range-slider.css'
import './mystyles.scss'
Vue.config.productionTip = false
Vue.use(vClickOutside)
Vue.use(VueTinyLazyloadImg)
Vue.use(VueObserveVisibility)
Vue.use(VueScrollTo)
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
store,
components: { App },
template: '<App/>'
})

View File

@ -5,11 +5,12 @@ import VueProgressBar from '@aacassandra/vue3-progressbar'
import VueClickAway from 'vue3-click-away' import VueClickAway from 'vue3-click-away'
import VueLazyLoad from 'vue3-lazyload' import VueLazyLoad from 'vue3-lazyload'
import VueScrollTo from 'vue-scrollto' import VueScrollTo from 'vue-scrollto'
import mdiVue from 'mdi-vue/v3'
import { filters } from './filter' import { filters } from './filter'
import { icons } from './icons'
import App from './App.vue' import App from './App.vue'
import './mystyles.scss' import './mystyles.scss'
import 'mdi/css/materialdesignicons.css'
import '@vueform/slider/themes/default.css' import '@vueform/slider/themes/default.css'
const app = createApp(App) const app = createApp(App)
@ -26,6 +27,9 @@ const app = createApp(App)
log: false log: false
}) })
.use(VueScrollTo) .use(VueScrollTo)
.use(mdiVue, {
icons: icons
})
app.config.globalProperties.$filters = filters app.config.globalProperties.$filters = filters
app.mount('#app') app.mount('#app')

View File

@ -10,16 +10,14 @@
<div class="buttons fd-is-centered-mobile fd-has-margin-top"> <div class="buttons fd-is-centered-mobile fd-has-margin-top">
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
<a <a
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_album_details_modal = true" @click="show_album_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
</div> </div>
</template> </template>

View File

@ -22,12 +22,10 @@
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_artist_details_modal = true" @click="show_artist_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -16,11 +16,11 @@
@click="show_artist_details_modal = true" @click="show_artist_details_modal = true"
> >
<span class="icon" <span class="icon"
><i class="mdi mdi-dots-horizontal mdi-18px" ><mdicon name="dots-horizontal" size="16"
/></span> /></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -10,16 +10,14 @@
<div class="buttons fd-is-centered-mobile fd-has-margin-top"> <div class="buttons fd-is-centered-mobile fd-has-margin-top">
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span>Play</span> <span>Play</span>
</a> </a>
<a <a
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_album_details_modal = true" @click="show_album_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
</div> </div>
</template> </template>

View File

@ -11,12 +11,10 @@
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_artist_details_modal = true" @click="show_artist_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -13,11 +13,11 @@
@click="show_composer_details_modal = true" @click="show_composer_details_modal = true"
> >
<span class="icon" <span class="icon"
><i class="mdi mdi-dots-horizontal mdi-18px" ><mdicon name="dots-horizontal" size="16"
/></span> /></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -13,11 +13,11 @@
@click="show_composer_details_modal = true" @click="show_composer_details_modal = true"
> >
<span class="icon" <span class="icon"
><i class="mdi mdi-dots-horizontal mdi-18px" ><mdicon name="dots-horizontal" size="16"
/></span> /></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -14,11 +14,11 @@
@click="open_directory_dialog({ path: current_directory })" @click="open_directory_dialog({ path: current_directory })"
> >
<span class="icon" <span class="icon"
><i class="mdi mdi-dots-horizontal mdi-18px" ><mdicon name="dots-horizontal" size="16"
/></span> /></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-play" /></span> <span class="icon"><mdicon name="play" size="16" /></span>
<span>Play</span> <span>Play</span>
</a> </a>
</div> </div>

View File

@ -16,11 +16,11 @@
@click="show_genre_details_modal = true" @click="show_genre_details_modal = true"
> >
<span class="icon" <span class="icon"
><i class="mdi mdi-dots-horizontal mdi-18px" ><mdicon name="dots-horizontal" size="16"
/></span> /></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -16,11 +16,11 @@
@click="show_genre_details_modal = true" @click="show_genre_details_modal = true"
> >
<span class="icon" <span class="icon"
><i class="mdi mdi-dots-horizontal mdi-18px" ><mdicon name="dots-horizontal" size="16"
/></span> /></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -11,12 +11,10 @@
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_playlist_details_modal = true" @click="show_playlist_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>

View File

@ -11,13 +11,11 @@
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_album_details_modal = true" @click="show_album_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"> <span class="icon">
<i class="mdi mdi-play" /> <mdicon name="play" size="16" />
</span> </span>
<span>Play</span> <span>Play</span>
</a> </a>

View File

@ -8,7 +8,7 @@
<div class="buttons is-centered"> <div class="buttons is-centered">
<a class="button is-small" @click="mark_all_played"> <a class="button is-small" @click="mark_all_played">
<span class="icon"> <span class="icon">
<i class="mdi mdi-pencil" /> <mdicon name="pencil" size="16" />
</span> </span>
<span>Mark All Played</span> <span>Mark All Played</span>
</a> </a>
@ -32,13 +32,13 @@
<div class="buttons is-centered"> <div class="buttons is-centered">
<a v-if="rss.tracks > 0" class="button is-small" @click="update_rss"> <a v-if="rss.tracks > 0" class="button is-small" @click="update_rss">
<span class="icon"> <span class="icon">
<i class="mdi mdi-refresh" /> <mdicon name="refresh" size="16" />
</span> </span>
<span>Update</span> <span>Update</span>
</a> </a>
<a class="button is-small" @click="open_add_podcast_dialog"> <a class="button is-small" @click="open_add_podcast_dialog">
<span class="icon"> <span class="icon">
<i class="mdi mdi-rss" /> <mdicon name="rss" size="16" />
</span> </span>
<span>Add Podcast</span> <span>Add Podcast</span>
</a> </a>

View File

@ -12,13 +12,13 @@
@click="update_show_next_items" @click="update_show_next_items"
> >
<span class="icon"> <span class="icon">
<i class="mdi mdi-arrow-collapse-down" /> <mdicon name="arrow-collapse-down" size="16" />
</span> </span>
<span>Hide previous</span> <span>Hide previous</span>
</a> </a>
<a class="button is-small" @click="open_add_stream_dialog"> <a class="button is-small" @click="open_add_stream_dialog">
<span class="icon"> <span class="icon">
<i class="mdi mdi-web" /> <mdicon name="web" size="16" />
</span> </span>
<span>Add Stream</span> <span>Add Stream</span>
</a> </a>
@ -28,13 +28,13 @@
@click="edit_mode = !edit_mode" @click="edit_mode = !edit_mode"
> >
<span class="icon"> <span class="icon">
<i class="mdi mdi-pencil" /> <mdicon name="pencil" size="16" />
</span> </span>
<span>Edit</span> <span>Edit</span>
</a> </a>
<a class="button is-small" @click="queue_clear"> <a class="button is-small" @click="queue_clear">
<span class="icon"> <span class="icon">
<i class="mdi mdi-delete-empty" /> <mdicon name="delete-empty" size="16" />
</span> </span>
<span>Clear</span> <span>Clear</span>
</a> </a>
@ -45,7 +45,7 @@
@click="save_dialog" @click="save_dialog"
> >
<span class="icon"> <span class="icon">
<i class="mdi mdi-content-save" /> <mdicon name="content-save" size="16" />
</span> </span>
<span>Save</span> <span>Save</span>
</a> </a>
@ -69,7 +69,7 @@
<template #actions> <template #actions>
<a v-if="!edit_mode" @click.prevent.stop="open_dialog(element)"> <a v-if="!edit_mode" @click.prevent.stop="open_dialog(element)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
<a <a
@ -77,7 +77,7 @@
@click.prevent.stop="remove(element)" @click.prevent.stop="remove(element)"
> >
<span class="icon has-text-grey" <span class="icon has-text-grey"
><i class="mdi mdi-delete mdi-18px" ><mdicon name="delete" size="18"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -17,7 +17,7 @@
autocomplete="off" autocomplete="off"
/> />
<span class="icon is-left"> <span class="icon is-left">
<i class="mdi mdi-magnify" /> <mdicon name="magnify" size="16" />
</span> </span>
</p> </p>
<p class="help has-text-centered"> <p class="help has-text-centered">

View File

@ -12,16 +12,14 @@
<div class="buttons fd-is-centered-mobile fd-has-margin-top"> <div class="buttons fd-is-centered-mobile fd-has-margin-top">
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
<a <a
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_album_details_modal = true" @click="show_album_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
</div> </div>
</template> </template>
@ -52,7 +50,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_track_dialog(track)"> <a @click.prevent.stop="open_track_dialog(track)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -11,12 +11,10 @@
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_artist_details_modal = true" @click="show_artist_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>
@ -43,7 +41,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_dialog(album)"> <a @click.prevent.stop="open_dialog(album)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -28,7 +28,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_album_dialog(album)"> <a @click.prevent.stop="open_album_dialog(album)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>
@ -67,7 +67,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_playlist_dialog(playlist)"> <a @click.prevent.stop="open_playlist_dialog(playlist)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -15,7 +15,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_playlist_dialog(playlist)"> <a @click.prevent.stop="open_playlist_dialog(playlist)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -27,7 +27,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_album_dialog(album)"> <a @click.prevent.stop="open_album_dialog(album)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -11,12 +11,10 @@
class="button is-small is-light is-rounded" class="button is-small is-light is-rounded"
@click="show_playlist_details_modal = true" @click="show_playlist_details_modal = true"
> >
<span class="icon" <span class="icon"><mdicon name="dots-horizontal" size="16" /></span>
><i class="mdi mdi-dots-horizontal mdi-18px"
/></span>
</a> </a>
<a class="button is-small is-dark is-rounded" @click="play"> <a class="button is-small is-dark is-rounded" @click="play">
<span class="icon"><i class="mdi mdi-shuffle" /></span> <span class="icon"><mdicon name="shuffle" size="16" /></span>
<span>Shuffle</span> <span>Shuffle</span>
</a> </a>
</div> </div>
@ -36,7 +34,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_track_dialog(item.track)"> <a @click.prevent.stop="open_track_dialog(item.track)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -17,7 +17,7 @@
autocomplete="off" autocomplete="off"
/> />
<span class="icon is-left"> <span class="icon is-left">
<i class="mdi mdi-magnify" /> <mdicon name="magnify" size="16" />
</span> </span>
</p> </p>
</div> </div>
@ -55,7 +55,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_track_dialog(track)"> <a @click.prevent.stop="open_track_dialog(track)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>
@ -105,7 +105,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_artist_dialog(artist)"> <a @click.prevent.stop="open_artist_dialog(artist)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>
@ -166,7 +166,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_album_dialog(album)"> <a @click.prevent.stop="open_album_dialog(album)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>
@ -215,7 +215,7 @@
<template #actions> <template #actions>
<a @click.prevent.stop="open_playlist_dialog(playlist)"> <a @click.prevent.stop="open_playlist_dialog(playlist)">
<span class="icon has-text-dark" <span class="icon has-text-dark"
><i class="mdi mdi-dots-vertical mdi-18px" ><mdicon name="dots-vertical" size="16"
/></span> /></span>
</a> </a>
</template> </template>

View File

@ -15,14 +15,14 @@
class="button is-small is-white" class="button is-small is-white"
@click="scroll_to_top" @click="scroll_to_top"
><span class="icon is-small" ><span class="icon is-small"
><i class="mdi mdi-chevron-up" /></span ><mdicon name="chevron-up" size="16" /></span
></a> ></a>
<a <a
v-else v-else
class="button is-small is-white" class="button is-small is-white"
@click="scroll_to_content" @click="scroll_to_content"
><span class="icon is-small" ><span class="icon is-small"
><i class="mdi mdi-chevron-down" /></span ><mdicon name="chevron-down" size="16" /></span
></a> ></a>
</nav> </nav>
</section> </section>