mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-01 05:29:41 +00:00
Fix multiple bugs
This commit is contained in:
parent
f511e0046d
commit
653db18679
4 changed files with 18 additions and 4 deletions
|
|
@ -72,6 +72,8 @@ POST /api/items/batch/move
|
|||
| `client/pages/item/_id/index.vue` | Single item page context menu integration |
|
||||
| `client/layouts/default.vue` | Modal registration |
|
||||
| `client/strings/en-us.json` | Localization strings |
|
||||
| `client/components/app/LazyBookshelf.vue` | Enhanced selection payload (added libraryId) |
|
||||
| `client/components/app/BookShelfCategorized.vue` | Enhanced selection payload (added libraryId) |
|
||||
|
||||
### Localization Strings Added
|
||||
|
||||
|
|
@ -160,6 +162,13 @@ Following the initial implementation, several critical areas were improved:
|
|||
- **Issue**: Nested paths like `media.coverPath` and `libraryFiles.metadata.relPath` were not being updated during moves.
|
||||
- **Fix**: Improved `handleMoveLibraryItem` to perform recursive path replacement on all associated metadata objects.
|
||||
|
||||
### 8. Improved Library Picker Filtering - FIXED
|
||||
- **Issue**: The "Move to Library" dialog showed all libraries of the same type, including the source library itself, which was redundant and confusing.
|
||||
- **Fix**:
|
||||
- Updated selection logic in `LazyBookshelf.vue` and `BookShelfCategorized.vue` to include the source `libraryId` in the selection payload.
|
||||
- Refactored `MoveToLibraryModal.vue` to compare the source library with available targets and automatically omit the source from the dropdown list.
|
||||
- Added robust media type detection in the modal to ensure compatibility even when items are moved from mixed-content views like search results.
|
||||
|
||||
---
|
||||
|
||||
## Known Limitations / Future Work
|
||||
|
|
|
|||
|
|
@ -135,6 +135,7 @@ export default {
|
|||
if (thisEntity) {
|
||||
const mediaItem = {
|
||||
id: thisEntity.id,
|
||||
libraryId: thisEntity.libraryId,
|
||||
mediaType: thisEntity.mediaType,
|
||||
hasTracks: thisEntity.mediaType === 'podcast' || thisEntity.media.audioFile || thisEntity.media.numTracks || (thisEntity.media.tracks && thisEntity.media.tracks.length)
|
||||
}
|
||||
|
|
@ -146,6 +147,7 @@ export default {
|
|||
} else {
|
||||
const mediaItem = {
|
||||
id: entity.id,
|
||||
libraryId: entity.libraryId,
|
||||
mediaType: entity.mediaType,
|
||||
hasTracks: entity.mediaType === 'podcast' || entity.media.audioFile || entity.media.numTracks || (entity.media.tracks && entity.media.tracks.length)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -293,6 +293,7 @@ export default {
|
|||
|
||||
const mediaItem = {
|
||||
id: thisEntity.id,
|
||||
libraryId: thisEntity.libraryId,
|
||||
mediaType: thisEntity.mediaType,
|
||||
hasTracks: thisEntity.mediaType === 'podcast' || thisEntity.media.audioFile || thisEntity.media.numTracks || (thisEntity.media.tracks && thisEntity.media.tracks.length)
|
||||
}
|
||||
|
|
@ -304,6 +305,7 @@ export default {
|
|||
} else {
|
||||
const mediaItem = {
|
||||
id: entity.id,
|
||||
libraryId: entity.libraryId,
|
||||
mediaType: entity.mediaType,
|
||||
hasTracks: entity.mediaType === 'podcast' || entity.media.audioFile || entity.media.numTracks || (entity.media.tracks && entity.media.tracks.length)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,12 +97,13 @@ export default {
|
|||
if (this.isBatchMode && this.selectedItems.length > 0) {
|
||||
return this.selectedItems[0].libraryId
|
||||
}
|
||||
return this.libraryItem?.libraryId
|
||||
return this.libraryItem?.libraryId || this.$store.state.libraries.currentLibraryId
|
||||
},
|
||||
currentMediaType() {
|
||||
// Get media type from the current library
|
||||
const currentLibrary = this.$store.state.libraries.libraries.find((l) => l.id === this.currentLibraryId)
|
||||
return currentLibrary?.mediaType || 'book'
|
||||
if (this.isBatchMode && this.selectedItems.length > 0) {
|
||||
return this.selectedItems[0].mediaType
|
||||
}
|
||||
return this.libraryItem?.mediaType || 'book'
|
||||
},
|
||||
targetLibraries() {
|
||||
// Filter libraries to only show compatible ones (same media type, different library)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue