- Enhance the version history in the About modal to match README.md - Add categorized changes (Major, New, Improved, Fixed) for each version - Format version entries for better readability - Ensure consistency between About modal and README.md 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
665 lines
38 KiB
HTML
665 lines
38 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" data-theme="light">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Transmission RSS Manager</title>
|
|
<meta name="description" content="Web interface for the Transmission RSS Manager, automating torrent downloads from RSS feeds">
|
|
<link rel="stylesheet" href="/css/styles.css">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css">
|
|
<!-- Favicon -->
|
|
<link rel="icon" href="/favicon.ico" type="image/x-icon">
|
|
<!-- Add Apple touch icon for iOS devices -->
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
<!-- Theme color for browser UI -->
|
|
<meta name="theme-color" content="#3498db">
|
|
</head>
|
|
<body>
|
|
<!-- Loading Spinner -->
|
|
<div id="loading-spinner" class="loader-overlay">
|
|
<div class="loader"></div>
|
|
</div>
|
|
|
|
<!-- Authentication Form (Hidden by default) -->
|
|
<div id="login-container" class="d-none">
|
|
<div class="auth-container">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-sign-in-alt"></i> Login</h2>
|
|
</div>
|
|
<div class="card-body">
|
|
<form id="login-form">
|
|
<div class="form-group">
|
|
<label class="form-label" for="username">Username</label>
|
|
<input type="text" id="username" class="form-control" required>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="password">Password</label>
|
|
<input type="password" id="password" class="form-control" required>
|
|
</div>
|
|
<div class="mt-3 text-center">
|
|
<button type="submit" class="btn btn-primary btn-lg">
|
|
<i class="fas fa-unlock-alt"></i> Login
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Main App Content -->
|
|
<div id="app-container">
|
|
<header>
|
|
<div class="navbar">
|
|
<a href="#" class="navbar-brand">
|
|
<i class="fas fa-rss"></i> Transmission RSS Manager
|
|
</a>
|
|
|
|
<ul class="navbar-menu">
|
|
<li class="navbar-item">
|
|
<a href="#" class="navbar-link nav-link active" data-tab="home-tab">
|
|
<i class="fas fa-home"></i> Dashboard
|
|
</a>
|
|
</li>
|
|
<li class="navbar-item">
|
|
<a href="#" class="navbar-link nav-link" data-tab="rss-tab">
|
|
<i class="fas fa-rss"></i> RSS Feeds
|
|
</a>
|
|
</li>
|
|
<li class="navbar-item">
|
|
<a href="#" class="navbar-link nav-link" data-tab="torrents-tab">
|
|
<i class="fas fa-download"></i> Torrents
|
|
</a>
|
|
</li>
|
|
<li class="navbar-item">
|
|
<a href="#" class="navbar-link nav-link" data-tab="media-tab">
|
|
<i class="fas fa-photo-video"></i> Media Library
|
|
</a>
|
|
</li>
|
|
<li class="navbar-item">
|
|
<a href="#" class="navbar-link nav-link" data-tab="settings-tab">
|
|
<i class="fas fa-cog"></i> Settings
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
|
|
<div class="navbar-right">
|
|
<span id="user-info"></span>
|
|
<button id="theme-toggle" class="theme-toggle" aria-label="Toggle Theme">
|
|
<i id="theme-toggle-icon" class="fas fa-moon"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="container">
|
|
<!-- Tab Content -->
|
|
<div id="home-tab" class="tab-content active">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-tachometer-alt"></i> Dashboard</h2>
|
|
<button id="btn-refresh-status" class="btn btn-outline">
|
|
<i class="fas fa-sync-alt"></i> Refresh
|
|
</button>
|
|
</div>
|
|
<div class="card-body">
|
|
<div id="status-container">
|
|
<!-- System Status Card -->
|
|
<div class="row">
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4><i class="fas fa-info-circle"></i> System Status</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="status-item">
|
|
<span class="status-label">Version:</span>
|
|
<span id="system-version" class="status-value">Loading...</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="status-label">Running since:</span>
|
|
<span id="uptime" class="status-value">Loading...</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="status-label">Transmission:</span>
|
|
<span id="transmission-status" class="status-value">
|
|
<i class="fas fa-circle-notch fa-spin"></i> Checking...
|
|
</span>
|
|
</div>
|
|
<div class="status-item">
|
|
<span class="status-label">Update:</span>
|
|
<span id="update-status" class="status-value">
|
|
<i class="fas fa-circle-notch fa-spin"></i> Checking...
|
|
</span>
|
|
</div>
|
|
<!-- Testing Controls (hidden in production) -->
|
|
<div class="mt-2 testing-controls">
|
|
<small><a href="#" id="toggle-test-update-button">Toggle Test Update</a></small>
|
|
</div>
|
|
<div id="update-available" class="mt-3 d-none">
|
|
<div class="alert alert-info">
|
|
<i class="fas fa-arrow-circle-up"></i>
|
|
<span>A new version is available!</span>
|
|
<button id="btn-update-now" class="btn btn-sm btn-primary ml-2">
|
|
<i class="fas fa-download"></i> Update Now
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Original Status Content -->
|
|
<p>Loading system status...</p>
|
|
</div>
|
|
|
|
<h3 class="mt-3">Quick Actions</h3>
|
|
<div class="row">
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4><i class="fas fa-rss"></i> RSS Manager</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>Manage your RSS feeds and automatic downloads</p>
|
|
</div>
|
|
<div class="card-footer">
|
|
<button id="btn-update-feeds" class="btn btn-success">
|
|
<i class="fas fa-sync"></i> Update Feeds Now
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4><i class="fas fa-cogs"></i> Post-Processing</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>Process completed downloads to your media library</p>
|
|
</div>
|
|
<div class="card-footer">
|
|
<button id="btn-start-processor" class="btn btn-success">
|
|
<i class="fas fa-play"></i> Start
|
|
</button>
|
|
<button id="btn-stop-processor" class="btn btn-warning">
|
|
<i class="fas fa-stop"></i> Stop
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4 mb-3">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4><i class="fas fa-magnet"></i> Add New Torrent</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<form id="add-torrent-form">
|
|
<div class="form-group">
|
|
<label class="form-label" for="torrent-url">Torrent URL or Magnet Link</label>
|
|
<input type="text" id="torrent-url" class="form-control" placeholder="Enter torrent URL or magnet link">
|
|
</div>
|
|
<div class="form-group">
|
|
<button type="submit" class="btn btn-success">
|
|
<i class="fas fa-plus"></i> Add Torrent
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- RSS Tab -->
|
|
<div id="rss-tab" class="tab-content">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-rss"></i> RSS Feeds</h2>
|
|
<button id="btn-add-feed" class="btn btn-success">
|
|
<i class="fas fa-plus"></i> Add New Feed
|
|
</button>
|
|
</div>
|
|
<div class="card-body">
|
|
<div id="feeds-container">
|
|
<p>Loading feeds...</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mt-3">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-list"></i> Available Items</h2>
|
|
<div>
|
|
<label class="form-check form-check-inline">
|
|
<input type="radio" name="item-filter" value="all" checked class="form-check-input">
|
|
<span class="form-check-label">All Items</span>
|
|
</label>
|
|
<label class="form-check form-check-inline">
|
|
<input type="radio" name="item-filter" value="undownloaded" class="form-check-input">
|
|
<span class="form-check-label">Undownloaded Only</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="card-body">
|
|
<div id="items-container">
|
|
<p>Loading items...</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Torrents Tab -->
|
|
<div id="torrents-tab" class="tab-content">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-download"></i> Active Torrents</h2>
|
|
<button id="refresh-torrents" class="btn btn-primary">
|
|
<i class="fas fa-sync"></i> Refresh
|
|
</button>
|
|
</div>
|
|
<div class="card-body">
|
|
<div id="torrents-container">
|
|
<p>Loading torrents...</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Media Library Tab -->
|
|
<div id="media-tab" class="tab-content">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-photo-video"></i> Media Library</h2>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row mb-3">
|
|
<div class="col-md-8">
|
|
<div class="form-group">
|
|
<label for="library-search" class="form-label">Search Library</label>
|
|
<div class="input-group">
|
|
<span class="input-group-text"><i class="fas fa-search"></i></span>
|
|
<input type="text" id="library-search" class="form-control" placeholder="Search your library...">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<label class="form-label">Filter by Category</label>
|
|
<div class="form-group">
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="all" checked class="form-check-input">
|
|
<span class="form-check-label">All</span>
|
|
</label>
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="movies" class="form-check-input">
|
|
<span class="form-check-label">Movies</span>
|
|
</label>
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="tvShows" class="form-check-input">
|
|
<span class="form-check-label">TV Shows</span>
|
|
</label>
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="music" class="form-check-input">
|
|
<span class="form-check-label">Music</span>
|
|
</label>
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="books" class="form-check-input">
|
|
<span class="form-check-label">Books</span>
|
|
</label>
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="magazines" class="form-check-input">
|
|
<span class="form-check-label">Magazines</span>
|
|
</label>
|
|
<label class="form-check">
|
|
<input type="radio" name="library-filter" value="software" class="form-check-input">
|
|
<span class="form-check-label">Software</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="library-container">
|
|
<p>Loading media library...</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Settings Tab -->
|
|
<div id="settings-tab" class="tab-content">
|
|
<form id="settings-form">
|
|
<div class="row">
|
|
<div class="col-md-6 mb-3">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-exchange-alt"></i> Transmission Settings</h2>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<label class="form-label" for="transmission-host">Host:</label>
|
|
<input type="text" id="transmission-host" class="form-control" placeholder="localhost">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="transmission-port">Port:</label>
|
|
<input type="number" id="transmission-port" class="form-control" placeholder="9091">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="transmission-user">Username:</label>
|
|
<input type="text" id="transmission-user" class="form-control">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="transmission-pass">Password:</label>
|
|
<input type="password" id="transmission-pass" class="form-control">
|
|
</div>
|
|
</div>
|
|
<div class="card-footer">
|
|
<button type="button" id="test-connection" class="btn btn-outline" onclick="testTransmissionConnection()">
|
|
<i class="fas fa-plug"></i> Test Connection
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-6 mb-3">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-shield-alt"></i> Security Settings</h2>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="form-check mb-3">
|
|
<input type="checkbox" id="https-enabled" class="form-check-input">
|
|
<label class="form-check-label" for="https-enabled">
|
|
Enable HTTPS
|
|
</label>
|
|
<small class="text-muted d-block mt-1">
|
|
Requires valid SSL certificate (not self-signed)
|
|
</small>
|
|
</div>
|
|
|
|
<div class="form-check mb-3">
|
|
<input type="checkbox" id="auth-enabled" class="form-check-input">
|
|
<label class="form-check-label" for="auth-enabled">
|
|
Enable Authentication
|
|
</label>
|
|
<small class="text-muted d-block mt-1">
|
|
Requires login to access the application
|
|
</small>
|
|
</div>
|
|
|
|
<div id="auth-settings" class="mt-3 d-none">
|
|
<div class="form-group">
|
|
<label class="form-label" for="admin-username">Admin Username:</label>
|
|
<input type="text" id="admin-username" class="form-control" placeholder="admin">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="admin-password">Admin Password:</label>
|
|
<input type="password" id="admin-password" class="form-control">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-cogs"></i> Post-Processing Settings</h2>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
<h3>Seeding Requirements</h3>
|
|
<div class="form-group">
|
|
<label class="form-label" for="seeding-ratio">Minimum Seeding Ratio:</label>
|
|
<input type="number" id="seeding-ratio" class="form-control" min="0" step="0.1" placeholder="1.0">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="seeding-time">Minimum Seeding Time (minutes):</label>
|
|
<input type="number" id="seeding-time" class="form-control" min="0" placeholder="60">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="check-interval">Check Interval (seconds):</label>
|
|
<input type="number" id="check-interval" class="form-control" min="30" placeholder="300">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<h3>Media Paths</h3>
|
|
<div class="form-group">
|
|
<label class="form-label" for="movies-path">Movies Path:</label>
|
|
<input type="text" id="movies-path" class="form-control" placeholder="/mnt/media/movies">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="tvshows-path">TV Shows Path:</label>
|
|
<input type="text" id="tvshows-path" class="form-control" placeholder="/mnt/media/tvshows">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="music-path">Music Path:</label>
|
|
<input type="text" id="music-path" class="form-control" placeholder="/mnt/media/music">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="books-path">Books Path:</label>
|
|
<input type="text" id="books-path" class="form-control" placeholder="/mnt/media/books">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="magazines-path">Magazines Path:</label>
|
|
<input type="text" id="magazines-path" class="form-control" placeholder="/mnt/media/magazines">
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="form-label" for="software-path">Software Path:</label>
|
|
<input type="text" id="software-path" class="form-control" placeholder="/mnt/media/software">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<h3>Processing Options</h3>
|
|
<div class="form-check mb-2">
|
|
<input type="checkbox" id="extract-archives" class="form-check-input">
|
|
<label class="form-check-label" for="extract-archives">
|
|
Extract Archives
|
|
</label>
|
|
</div>
|
|
<div class="form-check mb-2">
|
|
<input type="checkbox" id="delete-archives" class="form-check-input">
|
|
<label class="form-check-label" for="delete-archives">
|
|
Delete Archives After Extraction
|
|
</label>
|
|
</div>
|
|
<div class="form-check mb-2">
|
|
<input type="checkbox" id="create-category-folders" class="form-check-input">
|
|
<label class="form-check-label" for="create-category-folders">
|
|
Create Category Folders
|
|
</label>
|
|
</div>
|
|
<div class="form-check mb-2">
|
|
<input type="checkbox" id="rename-files" class="form-check-input">
|
|
<label class="form-check-label" for="rename-files">
|
|
Rename Files
|
|
</label>
|
|
</div>
|
|
<div class="form-check mb-2">
|
|
<input type="checkbox" id="ignore-sample" class="form-check-input">
|
|
<label class="form-check-label" for="ignore-sample">
|
|
Ignore Sample Files
|
|
</label>
|
|
</div>
|
|
<div class="form-check mb-2">
|
|
<input type="checkbox" id="ignore-extras" class="form-check-input">
|
|
<label class="form-check-label" for="ignore-extras">
|
|
Ignore Extras Files
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h2><i class="fas fa-rss"></i> RSS Settings</h2>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="form-group">
|
|
<label class="form-label" for="rss-interval">Update Interval (minutes):</label>
|
|
<input type="number" id="rss-interval" class="form-control" min="5" placeholder="60">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label class="form-label" for="notification-type">Notifications:</label>
|
|
<select id="notification-type" class="form-control">
|
|
<option value="none">None</option>
|
|
<option value="email">Email</option>
|
|
<option value="telegram">Telegram</option>
|
|
<option value="discord">Discord</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div id="notification-settings" class="d-none mt-3">
|
|
<!-- This will be populated dynamically based on notification type -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-3">
|
|
<div class="card-footer text-right">
|
|
<button type="submit" class="btn btn-success btn-lg">
|
|
<i class="fas fa-save"></i> Save All Settings
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Footer -->
|
|
<footer class="footer mt-3">
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<p>Transmission RSS Manager v2.0.0</p>
|
|
</div>
|
|
<div class="col-md-6 text-right">
|
|
<p><a href="https://git.powerdata.dk/masterdraco/transmission-rss-manager" target="_blank" rel="noopener noreferrer">GitHub</a> | <a href="#" id="show-about-modal">About</a></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
|
|
<!-- About Modal -->
|
|
<div class="modal-backdrop" id="about-modal" style="display: none;">
|
|
<div class="modal">
|
|
<div class="modal-header">
|
|
<h2><i class="fas fa-info-circle"></i> About Transmission RSS Manager</h2>
|
|
<button class="modal-close" id="close-about-modal">×</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="about-logo text-center mb-4">
|
|
<img src="https://powerdata.dk/wp-content/uploads/2023/08/PowerData-logo-1.png" alt="PowerData Logo" style="max-width: 200px;">
|
|
</div>
|
|
|
|
<h3>Developed by PowerData.dk</h3>
|
|
<p class="lead mb-4">Created by Michael Bay-Laursen, a passionate developer with a dedication to creating elegant, powerful automation solutions.</p>
|
|
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h4>About the Developer</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
<p>Michael Bay-Laursen is the talented founder of PowerData.dk, bringing years of experience in system automation, network management, and web application development to create tools that simplify complex tasks.</p>
|
|
<p>With a focus on user experience and robust functionality, Michael has designed this application to make media management accessible to everyone while providing the power and flexibility that advanced users demand.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<h4>Key Features</h4>
|
|
<ul class="features-list">
|
|
<li><strong>Intelligent RSS Integration</strong> - Automatically download content based on customizable filters</li>
|
|
<li><strong>Smart Media Organization</strong> - Categorize and organize your downloads automatically</li>
|
|
<li><strong>One-Click Updates</strong> - Stay current with the latest features and improvements</li>
|
|
<li><strong>Responsive Interface</strong> - Manage your downloads from any device</li>
|
|
<li><strong>Advanced Content Detection</strong> - Automatic categorization of various media types</li>
|
|
<li><strong>Transmission Integration</strong> - Seamless control of your Transmission client</li>
|
|
</ul>
|
|
|
|
<h4>Version History</h4>
|
|
<div class="version-history">
|
|
<div class="version">
|
|
<h5>v2.0.0 - March 2025</h5>
|
|
<ul>
|
|
<li><strong>Major</strong>: Completely redesigned installation system using git</li>
|
|
<li><strong>New</strong>: One-click update feature with version checking</li>
|
|
<li><strong>New</strong>: Automatic Transmission detection and installation</li>
|
|
<li><strong>New</strong>: System status dashboard with update notifications</li>
|
|
<li><strong>New</strong>: About page with developer information</li>
|
|
<li><strong>Improved</strong>: Better error handling for Transmission connection</li>
|
|
<li><strong>Fixed</strong>: Various UI bugs and responsiveness issues</li>
|
|
</ul>
|
|
</div>
|
|
<div class="version">
|
|
<h5>v1.2.0 - February 2025</h5>
|
|
<ul>
|
|
<li><strong>New</strong>: Enhanced media organization with better content detection</li>
|
|
<li><strong>New</strong>: Improved post-processor with configurable filtering</li>
|
|
<li><strong>Improved</strong>: Transmission client integration with better error handling</li>
|
|
<li><strong>Improved</strong>: UI enhancements for better usability</li>
|
|
<li><strong>Fixed</strong>: RSS feed parsing issues</li>
|
|
<li><strong>Fixed</strong>: Authentication problems in certain configurations</li>
|
|
</ul>
|
|
</div>
|
|
<div class="version">
|
|
<h5>v1.0.0 - January 2025</h5>
|
|
<ul>
|
|
<li><strong>Initial Release</strong>: Basic functionality for RSS feed monitoring</li>
|
|
<li><strong>New</strong>: Integration with Transmission BitTorrent client</li>
|
|
<li><strong>New</strong>: Web interface for managing torrents and feeds</li>
|
|
<li><strong>New</strong>: Post-processing capability for downloaded content</li>
|
|
<li><strong>New</strong>: Basic content categorization by media type</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="text-center mt-4">
|
|
<p><strong>Transmission RSS Manager v2.0.0</strong></p>
|
|
<p>© 2025 PowerData.dk - All Rights Reserved</p>
|
|
<p><a href="https://powerdata.dk" target="_blank">Visit PowerData.dk</a></p>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button class="btn btn-primary" id="close-about-btn">Close</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- JavaScript Files -->
|
|
<script src="/js/system-status.js"></script>
|
|
<script src="/js/app.js"></script>
|
|
|
|
<!-- About Modal Script -->
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Show about modal
|
|
document.getElementById('show-about-modal').addEventListener('click', function(e) {
|
|
e.preventDefault();
|
|
document.getElementById('about-modal').style.display = 'flex';
|
|
});
|
|
|
|
// Close modal handlers
|
|
document.getElementById('close-about-modal').addEventListener('click', closeAboutModal);
|
|
document.getElementById('close-about-btn').addEventListener('click', closeAboutModal);
|
|
|
|
function closeAboutModal() {
|
|
document.getElementById('about-modal').style.display = 'none';
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |