Update sessions modal to show username & update sessions endpoints to always return username

This commit is contained in:
advplyr 2025-07-16 16:56:07 -05:00
parent 3845940245
commit e678fe6e2f
3 changed files with 23 additions and 13 deletions

View file

@ -81,7 +81,7 @@
</div> </div>
<div class="w-full md:w-1/3"> <div class="w-full md:w-1/3">
<p v-if="!isMediaItemShareSession" class="font-semibold uppercase text-xs text-gray-400 tracking-wide mb-2 mt-6 md:mt-0">{{ $strings.LabelUser }}</p> <p v-if="!isMediaItemShareSession" class="font-semibold uppercase text-xs text-gray-400 tracking-wide mb-2 mt-6 md:mt-0">{{ $strings.LabelUser }}</p>
<p v-if="!isMediaItemShareSession" class="mb-1 text-xs">{{ _session.userId }}</p> <p v-if="!isMediaItemShareSession" class="mb-1 text-xs">{{ username }}</p>
<p class="font-semibold uppercase text-xs text-gray-400 tracking-wide mt-6 mb-2">{{ $strings.LabelMediaPlayer }}</p> <p class="font-semibold uppercase text-xs text-gray-400 tracking-wide mt-6 mb-2">{{ $strings.LabelMediaPlayer }}</p>
<p class="mb-1">{{ playMethodName }}</p> <p class="mb-1">{{ playMethodName }}</p>
@ -132,6 +132,9 @@ export default {
_session() { _session() {
return this.session || {} return this.session || {}
}, },
username() {
return this._session.user?.username || this._session.userId || ''
},
deviceInfo() { deviceInfo() {
return this._session.deviceInfo || {} return this._session.deviceInfo || {}
}, },

View file

@ -57,26 +57,24 @@ class SessionController {
} }
let where = null let where = null
const include = [
{
model: Database.models.device
}
]
if (userId) { if (userId) {
where = { where = {
userId userId
} }
} else {
include.push({
model: Database.userModel,
attributes: ['id', 'username']
})
} }
const { rows, count } = await Database.playbackSessionModel.findAndCountAll({ const { rows, count } = await Database.playbackSessionModel.findAndCountAll({
where, where,
include, include: [
{
model: Database.deviceModel
},
{
model: Database.userModel,
attributes: ['id', 'username']
}
],
order: [[orderKey, orderDesc]], order: [[orderKey, orderDesc]],
limit: itemsPerPage, limit: itemsPerPage,
offset: itemsPerPage * page offset: itemsPerPage * page

View file

@ -439,7 +439,16 @@ class UserController {
const page = toNumber(req.query.page, 0) const page = toNumber(req.query.page, 0)
const start = page * itemsPerPage const start = page * itemsPerPage
const sessions = listeningSessions.slice(start, start + itemsPerPage) // Map user to sessions to match the format of the sessions endpoint
const sessions = listeningSessions.slice(start, start + itemsPerPage).map((session) => {
return {
...session,
user: {
id: req.reqUser.id,
username: req.reqUser.username
}
}
})
const payload = { const payload = {
total: listeningSessions.length, total: listeningSessions.length,