This commit is contained in:
Mateusz Gruszczyński
2026-05-26 08:25:17 +02:00
parent 77a161a7f6
commit 5ab750226a
5 changed files with 62 additions and 11 deletions

View File

@@ -31,11 +31,15 @@ RTORRENT_WRITE_PREFIXES = (
"/api/rss", "/api/rss",
"/api/smart-queue", "/api/smart-queue",
"/api/automations", "/api/automations",
"/api/download-planner",
"/api/poller/settings",
"/api/operation-logs",
"/api/jobs", "/api/jobs",
) )
RTORRENT_CONFIG_PREFIXES = ("/api/rtorrent-config",) RTORRENT_CONFIG_PREFIXES = ("/api/rtorrent-config",)
ADMIN_PREFIXES = ("/api/auth/users", "/api/profiles") ADMIN_PREFIXES = ("/api/auth/users", "/api/profiles")
# Note: API reads that expose rTorrent/profile data must also respect profile permissions. # Note: API reads that expose rTorrent/profile data must also respect profile permissions.
# Note: Planner, poller and operation-log endpoints are profile-scoped and must follow the active profile context.
PROFILE_READ_PREFIXES = ( PROFILE_READ_PREFIXES = (
"/api/torrents", "/api/torrents",
"/api/torrent-stats", "/api/torrent-stats",
@@ -50,6 +54,9 @@ PROFILE_READ_PREFIXES = (
"/api/smart-queue", "/api/smart-queue",
"/api/traffic/history", "/api/traffic/history",
"/api/automations", "/api/automations",
"/api/download-planner",
"/api/poller/settings",
"/api/operation-logs",
) )

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -3077,6 +3077,43 @@ body.mobile-mode .mobile-filter-bar {
margin-bottom: 0.7rem; margin-bottom: 0.7rem;
} }
.planner-current-summary ul {
display: flex;
flex-wrap: wrap;
gap: 0.35rem 1rem;
margin-bottom: 0;
}
.planner-disclosure > summary {
cursor: pointer;
justify-content: space-between;
list-style: none;
margin-bottom: 0;
}
.planner-disclosure > summary::-webkit-details-marker {
display: none;
}
.planner-disclosure[open] > summary {
margin-bottom: 0.7rem;
}
.planner-card-title span {
align-items: center;
display: inline-flex;
gap: 0.45rem;
}
.planner-card-chevron {
color: var(--bs-secondary-color);
transition: transform 0.15s ease;
}
.planner-disclosure[open] .planner-card-chevron {
transform: rotate(180deg);
}
.planner-card-time, .planner-card-time,
.planner-card-protection { .planner-card-protection {
display: grid; display: grid;
@@ -3198,9 +3235,6 @@ body.mobile-mode .mobile-filter-bar {
.planner-hour-row small { .planner-hour-row small {
color: var(--bs-secondary-color); color: var(--bs-secondary-color);
}
.planner-hour-row small {
white-space: nowrap; white-space: nowrap;
} }
@@ -3444,7 +3478,16 @@ body.mobile-mode .mobile-filter-bar {
.profile-diagnostics-card{border:1px solid var(--bs-border-color);border-radius:.5rem;padding:.5rem;background:var(--bs-body-bg);} .profile-diagnostics-card{border:1px solid var(--bs-border-color);border-radius:.5rem;padding:.5rem;background:var(--bs-body-bg);}
.profile-diagnostics-card small{display:block;color:var(--bs-secondary-color);} .profile-diagnostics-card small{display:block;color:var(--bs-secondary-color);}
.labels-manager { display: grid; gap: 0.5rem; } .labels-manager {
display: grid;
gap: 0.5rem;
}
.labels-manager .empty-state {
align-items: flex-start;
justify-self: stretch;
text-align: left;
}
/* UI hygiene: keep long status/footer content inside the app instead of widening the browser viewport. */ /* UI hygiene: keep long status/footer content inside the app instead of widening the browser viewport. */
html, html,
@@ -4311,6 +4354,11 @@ body,
/* Operation logs */ /* Operation logs */
.logs-tools-layout {
display: grid;
gap: 0.85rem;
}
.operation-log-toolbar, .operation-log-toolbar,
.operation-log-toolbar-main, .operation-log-toolbar-main,
.operation-log-settings-grid, .operation-log-settings-grid,
@@ -4336,9 +4384,6 @@ body,
.operation-log-view-settings { .operation-log-view-settings {
align-items: center; align-items: center;
border-top: 1px solid var(--bs-border-color);
margin-top: 1rem;
padding-top: 1rem;
} }
.operation-log-view-settings > div:first-child { .operation-log-view-settings > div:first-child {

File diff suppressed because one or more lines are too long