add sorting to voting plugin

This commit is contained in:
janis
2023-10-24 10:14:06 +02:00
parent 0134e984f0
commit 8750ea54a9
2 changed files with 43 additions and 2 deletions

View File

@@ -10,8 +10,41 @@ createApp( {
votedOn: {},
hasLoadedBasics: false,
hasLoadedVotes: false,
sorting: 'newest',
};
},
computed: {
orderedVotes() {
if ( this.sorting === 'oldest' ) {
return Object.values( this.entries );
} else if ( this.sorting === 'newest' ) {
const ent = Object.keys( this.entries ).reverse();
let ret = [];
for ( let entry in ent ) {
ret.push( this.entries[ ent[ entry ] ] );
}
return ret;
} else {
let ent = Object.keys( this.entries ).sort( ( a, b ) => {
if ( this.sorting === 'nameUp' ) {
return this.entries[ a ].title.localeCompare( this.entries[ b ].title );
} else if ( this.sorting === 'nameDown' ) {
return this.entries[ b ].title.localeCompare( this.entries[ a ].title );
} else if ( this.sorting === 'mostVoted' ) {
return this.entries[ b ].count - this.entries[ a ].count;
} else if ( this.sorting === 'leastVoted' ) {
return this.entries[ a ].count - this.entries[ b ].count;
}
} );
console.log( ent );
let ret = [];
for ( let entry in ent ) {
ret.push( this.entries[ ent[ entry ] ] );
}
return ret;
}
}
},
methods: {
getData() {
fetch( '/polls/get/' + location.pathname.substring( 7 ) ).then( response => {