Skip to content

Commit 8c276a5

Browse files
committed
feat: added soloist to transcriptions
1 parent e813895 commit 8c276a5

File tree

2 files changed

+69
-4
lines changed

2 files changed

+69
-4
lines changed

server.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1490,7 +1490,8 @@ const runServer = async () => {
14901490
given_name: 1,
14911491
audioID: 1,
14921492
instrumentation: 1,
1493-
explicitPermissions: 1
1493+
explicitPermissions: 1,
1494+
soloist: 1
14941495
}
14951496
const result = await transcriptions.find(query).project(proj).toArray();
14961497
res.json(result)

src/comps/collections/MiniTranscriptions.vue

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,11 @@
7575

7676
<script lang='ts'>
7777
import { defineComponent, PropType } from 'vue';
78-
import { getTranscriptionsFromIds } from '@/js/serverCalls.ts';
79-
import { TransMetadataType } from '@/ts/types.ts';
78+
import {
79+
getTranscriptionsFromIds,
80+
getSortedMusicians
81+
} from '@/js/serverCalls.ts';
82+
import { TransMetadataType, MusicianNameType } from '@/ts/types.ts';
8083
8184
8285
// title, transcriber, raga, created, modified, permissions
@@ -95,6 +98,7 @@ type MiniTranscriptionsDataType = {
9598
initialMouseX?: number,
9699
selectedSortIdx: number,
97100
labelRowHeight: number,
101+
allMusicians?: MusicianNameType[],
98102
}
99103
export default defineComponent({
100104
name: 'MiniTranscriptions',
@@ -120,6 +124,15 @@ export default defineComponent({
120124
sortType: 'transcriber',
121125
sortState: 'down'
122126
},
127+
{
128+
name: 'Soloist',
129+
func: (t: TransMetadataType) => {
130+
console.log(t)
131+
return t.soloist || ''
132+
},
133+
sortType: 'Soloist',
134+
sortState: 'down'
135+
},
123136
{
124137
name: 'Raga',
125138
func: (t: TransMetadataType) => t.raga.name,
@@ -169,6 +182,7 @@ export default defineComponent({
169182
try {
170183
const userID = this.$store.state.userID!;
171184
this.trans = await getTranscriptionsFromIds(this.tIds, userID);
185+
this.allMusicians = await getSortedMusicians(true)
172186
} catch (err) {
173187
console.error(err);
174188
}
@@ -186,6 +200,54 @@ export default defineComponent({
186200
187201
methods: {
188202
203+
soloistSorter(a: TransMetadataType, b: TransMetadataType) {
204+
const aObj = this.allMusicians!.find(m => {
205+
return m['Initial Name'] === a.soloist;
206+
});
207+
const bObj = this.allMusicians!.find(m => {
208+
return m['Initial Name'] === b.soloist;
209+
});
210+
const aLastName = aObj ? aObj['Last Name'] : '';
211+
const bLastName = bObj ? bObj['Last Name'] : '';
212+
const aFirstName = aObj ? aObj['First Name'] : '';
213+
const bFirstName = bObj ? bObj['First Name'] : '';
214+
const aMidName = aObj ? aObj['Middle Name'] : '';
215+
const bMidName = bObj ? bObj['Middle Name'] : '';
216+
217+
if (aLastName === undefined && bLastName === undefined) {
218+
return 0;
219+
} else if (aLastName === undefined) {
220+
return -1;
221+
} else if (bLastName === undefined) {
222+
return 1;
223+
} else if (aLastName < bLastName) {
224+
return -1;
225+
} else if (aLastName > bLastName) {
226+
return 1;
227+
} else if (aFirstName === undefined && bFirstName === undefined) {
228+
return 0;
229+
} else if (aFirstName === undefined) {
230+
return -1;
231+
} else if (bFirstName === undefined) {
232+
return 1;
233+
} else if (aFirstName < bFirstName) {
234+
return -1;
235+
} else if (aFirstName > bFirstName) {
236+
return 1;
237+
} else if (aMidName === undefined && bMidName === undefined) {
238+
return 0;
239+
} else if (aMidName === undefined) {
240+
return -1;
241+
} else if (bMidName === undefined) {
242+
return 1;
243+
} else if (aMidName < bMidName) {
244+
return -1;
245+
} else if (aMidName > bMidName) {
246+
return 1;
247+
}
248+
return 0;
249+
},
250+
189251
handleDblClick(t: TransMetadataType) {
190252
this.$store.commit('update_id', t._id);
191253
this.$cookies.set('currentPieceId', t._id);
@@ -398,7 +460,9 @@ export default defineComponent({
398460
sorter = this.modifiedSorter;
399461
} else if (sort === 'permissions') {
400462
sorter = this.permissionsSorter;
401-
}
463+
} else if (sort === 'Soloist') {
464+
sorter = this.soloistSorter;
465+
}
402466
this.trans.sort(sorter);
403467
if (!fromTop) {
404468
this.trans.reverse();

0 commit comments

Comments
 (0)