diff --git a/resources/cider-ui/views/components/lyrics-view.ejs b/resources/cider-ui/views/components/lyrics-view.ejs
index ff8a7d13..5a6d9320 100644
--- a/resources/cider-ui/views/components/lyrics-view.ejs
+++ b/resources/cider-ui/views/components/lyrics-view.ejs
@@ -154,7 +154,6 @@
return relativeTime >= verseTime && relativeTime <= timeEnd - timeStart
},
getVerseLine(index) {
-
if (this.richlyrics[index] != null && this.richlyrics[index].l != null) {
return this.richlyrics[index].l
}
diff --git a/resources/cider-ui/views/components/mediaitem-square-large.ejs b/resources/cider-ui/views/components/mediaitem-square-large.ejs
index 76f235ff..dddc3836 100644
--- a/resources/cider-ui/views/components/mediaitem-square-large.ejs
+++ b/resources/cider-ui/views/components/mediaitem-square-large.ejs
@@ -1,8 +1,8 @@
\ No newline at end of file
diff --git a/resources/cider-ui/views/components/mediaitem-square-sp.ejs b/resources/cider-ui/views/components/mediaitem-square-sp.ejs
index f070e9cd..b1a79d03 100644
--- a/resources/cider-ui/views/components/mediaitem-square-sp.ejs
+++ b/resources/cider-ui/views/components/mediaitem-square-sp.ejs
@@ -1,8 +1,8 @@
@@ -58,6 +81,99 @@
Vue.component('mediaitem-square-sp', {
template: '#mediaitem-square-sp',
props: ['item'],
- methods: {}
+ methods: { clickContext() {
+ var evt = document.createEvent('MouseEvent');
+ var rect = this.$refs.main2.getBoundingClientRect();
+ evt.initMouseEvent(
+ "contextmenu",
+ true /* bubble */, true /* cancelable */,
+ window, null,
+ 0, 0, rect.x + 100, rect.y +100, /* coordinates */
+ false, false, false, false, /* modifier keys */
+ 0 /*left*/, null
+ );
+ this.$refs.main.dispatchEvent(evt);
+ }
+ ,contextMenu(event) {
+ if (!event){event = this.$refs.main} else {console.log(event)}
+ let self = this
+ let useMenu = "normal"
+ if (app.selectedMediaItems.length <= 1) {
+ app.selectedMediaItems = []
+ app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid)
+ } else {
+ useMenu = "multiple"
+ }
+ let menus = {
+ multiple: {
+ items: [
+ {
+ name: `Play ${app.selectedMediaItems.length} tracks next`,
+ action: () => {
+ let itemsToPlay = {}
+ app.selectedMediaItems.forEach(item => {
+ if (!itemsToPlay[item.kind]) {
+ itemsToPlay[item.kind] = []
+ }
+ itemsToPlay[item.kind].push(item.id)
+ })
+ // loop through itemsToPlay
+ for (let kind in itemsToPlay) {
+ let ids = itemsToPlay[kind]
+ if (ids.length > 0) {
+ app.mk.playNext({[kind + "s"]: itemsToPlay[kind]})
+ }
+ }
+ console.log(itemsToPlay)
+ app.selectedMediaItems = []
+ }
+ },
+ {
+ name: `Play ${app.selectedMediaItems.length} tracks later`,
+ action: () => {
+ let itemsToPlay = {}
+ app.selectedMediaItems.forEach(item => {
+ if (!itemsToPlay[item.kind]) {
+ itemsToPlay[item.kind] = []
+ }
+ itemsToPlay[item.kind].push(item.id)
+ })
+ // loop through itemsToPlay
+ for (let kind in itemsToPlay) {
+ let ids = itemsToPlay[kind]
+ if (ids.length > 0) {
+ app.mk.playLater({[kind + "s"]: itemsToPlay[kind]})
+ }
+ }
+ app.selectedMediaItems = []
+ }
+ },
+ ]
+ },
+ normal: {
+ items: [
+
+ {
+ "name": "Play Next",
+ "action": function () {
+ app.mk.playNext({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
+ app.mk.queue._reindex()
+ app.selectedMediaItems = []
+ }
+ },
+ {
+ "name": "Play Later",
+ "action": function () {
+ app.mk.playLater({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
+ app.mk.queue._reindex()
+ app.selectedMediaItems = []
+ }
+ },
+
+ ]
+ }
+ }
+ CiderContextMenu.Create(event, menus[useMenu])
+ },}
});
\ No newline at end of file
diff --git a/resources/cider-ui/views/svg/more.svg b/resources/cider-ui/views/svg/more.svg
new file mode 100644
index 00000000..8abcf599
--- /dev/null
+++ b/resources/cider-ui/views/svg/more.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file