Kevin Midboe c390fcba47 Properly fix mobile torrent table with conditional rendering
Previous fix still rendered all 4 columns in DOM (just hidden with CSS),
causing horizontal overflow. Now actually renders only 2 columns on mobile.

Implementation:
1. Added reactive window width tracking with resize listener
2. Computed isMobile property (windowWidth <= 768px)
3. Computed visibleColumns: ['name', 'add'] on mobile, all 4 on desktop
4. Conditional v-if rendering for seed/size columns
5. Conditional v-if for metadata display in torrent-info cell

Template changes:
- Header: v-for="column in visibleColumns" (not all columns)
- Seed column: v-if="!isMobile" (not rendered on mobile)
- Size column: v-if="!isMobile" (not rendered on mobile)
- Metadata: v-if="isMobile" (only shown on mobile)

CSS cleanup:
- Removed .desktop-only class rules (no longer needed)
- Removed display: none media queries (handled by v-if)
- Removed header nth-child hiding (handled by visibleColumns)

Result:
Mobile (≤768px):
  - Only 2 <td> elements rendered: name + add
  - No horizontal scroll required
  - Metadata shown inline under title
  - Colspan correctly set to 2 for expanded rows

Desktop (>768px):
  - All 4 <td> elements rendered: name + seed + size + add
  - Full table layout
  - Colspan correctly set to 4 for expanded rows

This is the correct solution - don't render unnecessary DOM elements.
2026-02-27 19:21:13 +01:00
2022-08-15 20:17:37 +02:00
2019-10-23 00:43:17 +02:00
2026-02-24 00:22:31 +01:00
2026-02-24 00:22:51 +01:00
2026-02-24 18:43:26 +01:00
2017-03-21 17:12:39 +02:00
2026-02-24 00:22:51 +01:00

Seasoned Request

Seasoned request is frontend vue application for searching, requesting and viewing account watch activity.

Config setup

# make copy of example environment file
cp .env.example .env
# .env sane default values
SEASONED_API=
ELASTIC=
ELASTIC_INDEX=shows,movies
SEASONED_DOMAIN=
  • Leave SEASONED_API empty to request /api from same origin and proxy passed by nginx, set if hosting seasonedShows backend api locally.
  • Elastic is optional and can be used for a instant search feature for all movies and shows registered in tmdb, leave empty to disable.
# .env example values
SEASONED_API=http://localhost:31459
ELASTIC=http://localhost:9200
ELASTIC_INDEX=shows,movies
SEASONED_DOMAIN=request.movie

Build Steps

# install dependencies
yarn

# build vue project using webpack
yarn build

# test or host built files using docker, might require sudo:
docker build -t seasoned .
docker run -d -p 5000:5000 --name seasoned-request --env-file .env seasoned

Development Steps

# serve project with hot reloading at localhost:8080
yarn dev

To proxy requests to /api either update SEASONED_API in .env or run set environment variable, e.g.:

# export and run
export SEASONED_API=http://localhost:31459
yarn dev

# or run with environment variable inline
SEASONED_API=http://localhost:31459 yarn dev

Documentation

All api functions are documented in /docs and found here.
html version also available

License

MIT

Description
No description provided
Readme MIT 9.9 MiB
Languages
Vue 78.2%
TypeScript 17.4%
SCSS 3.5%
JavaScript 0.5%
HTML 0.2%
Other 0.2%