added shift multi select to list item
This commit is contained in:
parent
3ad4665ee2
commit
92e7035ff8
2 changed files with 34 additions and 13 deletions
|
@ -419,7 +419,7 @@ const app = new Vue({
|
|||
}
|
||||
},
|
||||
select_removeMediaItem(id) {
|
||||
this.selectedMediaItems.filter(item => item.id == id).forEach(item => {
|
||||
this.selectedMediaItems.filter(item => item.guid == id).forEach(item => {
|
||||
this.selectedMediaItems.splice(this.selectedMediaItems.indexOf(item), 1)
|
||||
})
|
||||
},
|
||||
|
|
|
@ -85,20 +85,41 @@
|
|||
methods: {
|
||||
select(e) {
|
||||
if (e.shiftKey) {
|
||||
if(this.index != -1) {
|
||||
if (this.index != -1) {
|
||||
let allMediaItems = document.querySelectorAll(".cd-mediaitem-list-item[data-index]")
|
||||
// select everything between the last selected item from app.selectedMediaItems and this one
|
||||
|
||||
for (let i = start; i <= end; i++) {
|
||||
let mediaItem = allMediaItems[i];
|
||||
app.select_selectMediaItem(mediaItem.getAttribute("data-id"), mediaItem.getAttribute("data-type"));
|
||||
let startIndex = Math.min(...app.selectedMediaItems.map(item => item.index))
|
||||
let endIndex = Math.max(...app.selectedMediaItems.map(item => item.index))
|
||||
if (this.index < startIndex) {
|
||||
for (let i = this.index; i <= endIndex; i++) {
|
||||
let item = allMediaItems[i]
|
||||
if (item) {
|
||||
app.select_selectMediaItem(item.getAttribute("data-id"),
|
||||
item.getAttribute("data-type"),
|
||||
item.getAttribute("data-index"),
|
||||
item.getAttribute("data-guid"))
|
||||
}
|
||||
}
|
||||
} else if (this.index > endIndex) {
|
||||
for (let i = startIndex; i <= this.index; i++) {
|
||||
let item = allMediaItems[i]
|
||||
if (item) {
|
||||
app.select_selectMediaItem(item.getAttribute("data-id"),
|
||||
item.getAttribute("data-type"),
|
||||
item.getAttribute("data-index"),
|
||||
item.getAttribute("data-guid"))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (let i = startIndex; i <= endIndex; i++) {
|
||||
let item = allMediaItems[i]
|
||||
if (item) {
|
||||
app.select_selectMediaItem(item.getAttribute("data-id"),
|
||||
item.getAttribute("data-type"),
|
||||
item.getAttribute("data-index"),
|
||||
item.getAttribute("data-guid"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (app.select_hasMediaItem(this.guid)) {
|
||||
app.select_removeMediaItem(this.guid)
|
||||
} else {
|
||||
app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid)
|
||||
}
|
||||
} else if (e.ctrlKey) {
|
||||
if (app.select_hasMediaItem(this.guid)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue