1.1.7 - cli, sorting, maximize, bugs...
This commit is contained in:
parent
8648e6df41
commit
0a467966cb
46 changed files with 940 additions and 426 deletions
|
|
@ -5,6 +5,23 @@
|
|||
<v-progress-circular indeterminate></v-progress-circular>
|
||||
</v-overlay>
|
||||
|
||||
<!-- Sort -->
|
||||
<div class='px-4 d-flex' style='max-height: 50px;' v-if='!loading'>
|
||||
<div class='text-overline pt-1 mx-2'>
|
||||
{{albums.length}} {{$t("Albums")}}
|
||||
</div>
|
||||
<div style="max-width: 200px;" class='mx-2'>
|
||||
<v-select class='px-2' dense solo :items='sortTypes' @change='sort' :label='$t("Sort by")'>
|
||||
</v-select>
|
||||
</div>
|
||||
<div class='px-2' @click='reverseSort'>
|
||||
<v-btn icon>
|
||||
<v-icon v-if='isReversed'>mdi-sort-reverse-variant</v-icon>
|
||||
<v-icon v-if='!isReversed'>mdi-sort-variant</v-icon>
|
||||
</v-btn>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<v-lazy max-height="100" v-for='(album, index) in albums' :key='album.id'>
|
||||
<AlbumTile :album='album' @remove='removed(index)'></AlbumTile>
|
||||
</v-lazy>
|
||||
|
|
@ -20,7 +37,16 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
albums: [],
|
||||
loading: false
|
||||
loading: false,
|
||||
|
||||
//Sort
|
||||
isReversed: false,
|
||||
sortTypes: [
|
||||
this.$t('Date Added'),
|
||||
this.$t('Name (A-Z)'),
|
||||
this.$t('Artist (A-Z)')
|
||||
],
|
||||
unsorted: null
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -35,7 +61,35 @@ export default {
|
|||
},
|
||||
removed(index) {
|
||||
this.albums.splice(index, 1);
|
||||
}
|
||||
},
|
||||
//Sort changed
|
||||
async sort(type) {
|
||||
let index = this.sortTypes.indexOf(type);
|
||||
//Copy original
|
||||
if (!this.unsorted)
|
||||
this.unsorted = JSON.parse(JSON.stringify(this.albums));
|
||||
|
||||
//Using indexes, so it can be translated later
|
||||
this.isReversed = false;
|
||||
switch (index) {
|
||||
//Default
|
||||
case 0:
|
||||
this.albums = JSON.parse(JSON.stringify(this.unsorted));
|
||||
break;
|
||||
//Name
|
||||
case 1:
|
||||
this.albums = this.albums.sort((a, b) => {return a.title.localeCompare(b.title);});
|
||||
break;
|
||||
//Artist
|
||||
case 2:
|
||||
this.albums = this.albums.sort((a, b) => {return a.artistString.localeCompare(b.artistString);});
|
||||
break;
|
||||
}
|
||||
},
|
||||
async reverseSort() {
|
||||
this.isReversed = !this.isReversed;
|
||||
this.albums.reverse();
|
||||
},
|
||||
},
|
||||
components: {
|
||||
AlbumTile
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue