Skip to content

Commit a87b286

Browse files
authored
Merge pull request #125 from contre95/fix/file_reorganizer
feat(soulsolid): give config to reorganizer handler, yes
2 parents 768de48 + e875070 commit a87b286

File tree

3 files changed

+48
-8
lines changed

3 files changed

+48
-8
lines changed

src/features/hosting/server.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ func NewServer(cfg *config.Manager, importingService *importing.Service, library
137137
metadata.RegisterRoutes(app, tagService)
138138
lyricsHandler := lyrics.NewHandler(lyricsService, tagService)
139139
lyrics.RegisterRoutes(app, lyricsHandler)
140-
reorganizeHandler := reorganize.NewHandler(reorganizeService)
140+
reorganizeHandler := reorganize.NewHandler(reorganizeService, cfg)
141141
reorganize.RegisterRoutes(app, reorganizeHandler)
142142

143143
return &Server{app: app, port: cfg.Get().Server.Port}

src/features/reorganize/handlers.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,21 @@ package reorganize
33
import (
44
"log/slog"
55

6+
"github.com/contre95/soulsolid/src/features/config"
67
"github.com/gofiber/fiber/v2"
78
)
89

910
// Handler handles HTTP requests for the reorganize feature.
1011
type Handler struct {
1112
service *Service
13+
config *config.Manager
1214
}
1315

1416
// NewHandler creates a new reorganize handler.
15-
func NewHandler(service *Service) *Handler {
17+
func NewHandler(service *Service, config *config.Manager) *Handler {
1618
return &Handler{
1719
service: service,
20+
config: config,
1821
}
1922
}
2023

@@ -46,7 +49,8 @@ func (h *Handler) RenderFilesReorganizationSection(c *fiber.Ctx) error {
4649
slog.Debug("Rendering file paths section")
4750

4851
data := fiber.Map{
49-
"Title": "File Paths",
52+
"Title": "File Paths",
53+
"Config": h.config.Get(),
5054
}
5155

5256
if c.Get("HX-Request") != "true" {

views/sections/analyze_files.html

Lines changed: 41 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<div id="contenido" class="animate__animated animate__fadeIn">
22
<h1 class="text-3xl font-bold text-slate-800 dark:text-white mb-8">File Paths</h1>
33

4-
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-4">
4+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 mb-4">
55
<!-- File Paths Card -->
6-
<div class="bg-white/80 dark:bg-gray-900/70 border border-gray-200 dark:border-gray-700 rounded-2xl p-6 shadow-md backdrop-blur-sm transition-all duration-200 hover:bg-white/90 dark:hover:bg-gray-900/80">
7-
<div class="flex items-center mb-4">
6+
<div class="bg-white/80 dark:bg-gray-900/70 border border-gray-200 dark:border-gray-700 rounded-2xl p-5 shadow-md backdrop-blur-sm transition-all duration-200 hover:bg-white/90 dark:hover:bg-gray-900/80 md:col-span-1 lg:col-span-1">
7+
<div class="flex items-center mb-3">
88
<svg class="w-8 h-8 mr-3 text-green-500 dark:text-green-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
99
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"></path>
1010
</svg>
1111
<h3 class="text-xl font-semibold text-slate-800 dark:text-white">File Paths</h3>
1212
</div>
13-
<p class="text-slate-600 dark:text-slate-400 mb-4">
13+
<p class="text-slate-600 dark:text-slate-400 mb-3">
1414
Reorganize all library files according to the current path configuration. Moves files that don't match the configured paths.
1515
</p>
1616
<button
@@ -25,6 +25,42 @@ <h3 class="text-xl font-semibold text-slate-800 dark:text-white">File Paths</h3>
2525
</span>
2626
</button>
2727
</div>
28+
29+
<!-- Path Templates Card -->
30+
<div class="bg-white/80 dark:bg-gray-900/70 border border-gray-200 dark:border-gray-700 rounded-2xl p-5 shadow-md backdrop-blur-sm transition-all duration-200 hover:bg-white/90 dark:hover:bg-gray-900/80 md:col-span-1 lg:col-span-2">
31+
<div class="flex items-center mb-3">
32+
<i class="fas fa-folder-tree w-8 h-8 mr-3 text-indigo-500 dark:text-indigo-400"></i>
33+
<h3 class="text-xl font-semibold text-slate-800 dark:text-white">Path Templates</h3>
34+
</div>
35+
<p class="text-slate-600 dark:text-slate-400 mb-3">
36+
Current path templates used for organizing files. Configure in <a href="/settings" class="text-blue-500 hover:text-blue-400 underline">Settings</a>.
37+
</p>
38+
<div class="max-h-60 overflow-y-auto space-y-1.5 pr-2">
39+
<div>
40+
<label class="block text-xs font-medium text-slate-600 dark:text-slate-400 mb-0.5">Default Path</label>
41+
<pre class="text-xs font-mono bg-slate-50 dark:bg-slate-800/50 text-slate-700 dark:text-slate-300 p-1.5 rounded border border-slate-200 dark:border-slate-700 overflow-x-auto whitespace-pre-wrap break-all">{{.Config.Import.PathOptions.DefaultPath}}</pre>
42+
</div>
43+
<div>
44+
<label class="block text-xs font-medium text-slate-600 dark:text-slate-400 mb-0.5">Compilations Path</label>
45+
<pre class="text-xs font-mono bg-slate-50 dark:bg-slate-800/50 text-slate-700 dark:text-slate-300 p-1.5 rounded border border-slate-200 dark:border-slate-700 overflow-x-auto whitespace-pre-wrap break-all">{{.Config.Import.PathOptions.Compilations}}</pre>
46+
</div>
47+
<div>
48+
<label class="block text-xs font-medium text-slate-600 dark:text-slate-400 mb-0.5">Soundtrack Path</label>
49+
<pre class="text-xs font-mono bg-slate-50 dark:bg-slate-800/50 text-slate-700 dark:text-slate-300 p-1.5 rounded border border-slate-200 dark:border-slate-700 overflow-x-auto whitespace-pre-wrap break-all">{{.Config.Import.PathOptions.AlbumSoundtrack}}</pre>
50+
</div>
51+
<div>
52+
<label class="block text-xs font-medium text-slate-600 dark:text-slate-400 mb-0.5">Single Path</label>
53+
<pre class="text-xs font-mono bg-slate-50 dark:bg-slate-800/50 text-slate-700 dark:text-slate-300 p-1.5 rounded border border-slate-200 dark:border-slate-700 overflow-x-auto whitespace-pre-wrap break-all">{{.Config.Import.PathOptions.AlbumSingle}}</pre>
54+
</div>
55+
<div>
56+
<label class="block text-xs font-medium text-slate-600 dark:text-slate-400 mb-0.5">EP Path</label>
57+
<pre class="text-xs font-mono bg-slate-50 dark:bg-slate-800/50 text-slate-700 dark:text-slate-300 p-1.5 rounded border border-slate-200 dark:border-slate-700 overflow-x-auto whitespace-pre-wrap break-all">{{.Config.Import.PathOptions.AlbumEP}}</pre>
58+
</div>
59+
</div>
60+
<div class="mt-3 text-xs text-slate-500 dark:text-slate-400">
61+
<a href="https://soulsolid.contre.io/docs/paths/#available-placeholders" target="_blank" class="text-blue-500 hover:text-blue-400 underline">View documentation for placeholders</a>
62+
</div>
63+
</div>
2864
</div>
2965

3066
<h2 class="text-2xl font-bold text-slate-800 dark:text-white mb-6">File Paths Jobs</h2>
@@ -38,4 +74,4 @@ <h2 class="text-2xl font-bold text-slate-800 dark:text-white mb-6">File Paths Jo
3874
<p class="text-sm text-gray-500 dark:text-gray-400">Loading file paths jobs...</p>
3975
</div>
4076
</div>
41-
</div>
77+
</div>

0 commit comments

Comments
 (0)