diff --git a/src/components/Graph.vue b/src/components/Graph.vue
index 58272e7..1d4be69 100644
--- a/src/components/Graph.vue
+++ b/src/components/Graph.vue
@@ -106,6 +106,12 @@
const graphOptions = {
maintainAspectRatio: false,
+ elements: {
+ point: {
+ radius: 2,
+
+ }
+ },
plugins: {
tooltip: {
callbacks: {
diff --git a/src/components/admin/AdminStats.vue b/src/components/admin/AdminStats.vue
index c74038a..b1e047a 100644
--- a/src/components/admin/AdminStats.vue
+++ b/src/components/admin/AdminStats.vue
@@ -439,13 +439,12 @@
padding: 1rem 0;
@include mobile-only {
- font-size: 1.25rem;
margin-bottom: 0.1rem;
}
}
&__label {
- font-size: 0.75rem;
+ font-size: 0.8rem;
color: $text-color-70;
text-transform: uppercase;
letter-spacing: 0.4px;
@@ -455,7 +454,6 @@
line-height: 1.2;
@include mobile-only {
- font-size: 0.65rem;
margin-bottom: 0.3rem;
letter-spacing: 0.2px;
}
diff --git a/src/components/torrent/TorrentTable.vue b/src/components/torrent/TorrentTable.vue
index 1981fa6..2edc0a5 100644
--- a/src/components/torrent/TorrentTable.vue
+++ b/src/components/torrent/TorrentTable.vue
@@ -22,18 +22,26 @@
class="table__content"
>
- {{ torrent.name }}
+ {{ torrent.name }}
+
+ {{ torrent.size }}
+ •
+ {{ torrent.seed }} seeders
+
|
{{ torrent.seed }}
|
@@ -177,6 +185,13 @@
}
}
+ // Hide seed and size columns on mobile
+ .desktop-only {
+ @include mobile {
+ display: none;
+ }
+ }
+
thead {
position: relative;
user-select: none;
@@ -194,34 +209,81 @@
th:last-of-type {
padding-right: 0.4rem;
}
+
+ // Hide seed and size headers on mobile
+ @include mobile {
+ th:nth-child(2),
+ th:nth-child(3) {
+ display: none;
+ }
+ }
}
tbody {
- // first column
- tr td:first-of-type {
+ // first column - torrent info
+ .torrent-info {
position: relative;
- padding: 0 0.3rem;
+ padding: 0.5rem 0.6rem;
cursor: default;
- word-break: break-all;
+ word-break: break-word;
border-left: 1px solid var(--table-background-color);
@include mobile {
- max-width: 40vw;
- overflow-x: hidden;
+ width: 100%;
+ padding: 0.75rem 0.5rem;
+ }
+
+ .torrent-title {
+ font-weight: 500;
+ margin-bottom: 0.25rem;
+ line-height: 1.3;
+
+ @include mobile {
+ font-size: 0.95rem;
+ }
+ }
+
+ .torrent-meta {
+ display: none; // Hidden on desktop, shown on mobile
+ font-size: 0.85rem;
+ color: var(--text-color-60);
+
+ @include mobile {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ flex-wrap: wrap;
+ }
+
+ .meta-item {
+ white-space: nowrap;
+ }
+
+ .meta-separator {
+ color: var(--text-color-40);
+ }
}
}
- // all columns except first
- tr td:not(td:first-of-type) {
+ // seed and size columns (desktop only)
+ .torrent-seed,
+ .torrent-size {
text-align: center;
white-space: nowrap;
+ padding: 0.5rem;
}
- // last column
+ // last column - action
tr td:last-of-type {
vertical-align: middle;
cursor: pointer;
border-right: 1px solid var(--table-background-color);
+ width: 60px;
+ text-align: center;
+
+ @include mobile {
+ width: 50px;
+ }
svg {
width: 21px;
@@ -229,6 +291,10 @@
margin: auto;
padding: 0.3rem 0;
fill: var(--text-color);
+
+ @include mobile {
+ width: 18px;
+ }
}
}
diff --git a/src/composables/usePlexApi.ts b/src/composables/usePlexApi.ts
index 6f6a269..7490284 100644
--- a/src/composables/usePlexApi.ts
+++ b/src/composables/usePlexApi.ts
@@ -26,7 +26,6 @@ export function usePlexApi() {
}
const data = await response.json();
- console.log("[PlexAPI] Raw Plex API response:", data);
// Convert Unix timestamp to ISO date string if needed
let joinedDate = null;
@@ -62,7 +61,6 @@ export function usePlexApi() {
created_at: new Date().toISOString()
};
- console.log("[PlexAPI] Processed user data:", userData);
localStorage.setItem("plex_user_data", JSON.stringify(userData));
return userData;
} catch (error) {
diff --git a/src/composables/useTautulliStats.ts b/src/composables/useTautulliStats.ts
index 175a7c5..d77f646 100644
--- a/src/composables/useTautulliStats.ts
+++ b/src/composables/useTautulliStats.ts
@@ -108,7 +108,8 @@ export function useTautulliStats() {
.map(([date, stats]) => ({
date,
plays: stats.plays,
- duration: Math.round(stats.duration / 60) // Convert to minutes
+ duration: stats.duration
+ // duration: Math.round(stats.duration / 60) // Convert to minutes
}))
.sort((a, b) => a.date.localeCompare(b.date));
}
diff --git a/src/pages/GenPasswordPage.vue b/src/pages/GenPasswordPage.vue
index 9e3b442..212aa2e 100644
--- a/src/pages/GenPasswordPage.vue
+++ b/src/pages/GenPasswordPage.vue
@@ -1,11 +1,11 @@
-
- Password gen
+
+ Password Generator
-
diff --git a/src/pages/TorrentsPage.vue b/src/pages/TorrentsPage.vue
index 561edc1..a99125b 100644
--- a/src/pages/TorrentsPage.vue
+++ b/src/pages/TorrentsPage.vue
@@ -1,28 +1,25 @@
-
-
+
+ Torrent Search
-
-
-
- Search
-
+
+
+ Search
+
-
+
-
-
+
|