diff --git a/users/Profpatsch/whatcd-resolver/src/WhatcdResolver.hs b/users/Profpatsch/whatcd-resolver/src/WhatcdResolver.hs
index cf54ad735..419e0feb9 100644
--- a/users/Profpatsch/whatcd-resolver/src/WhatcdResolver.hs
+++ b/users/Profpatsch/whatcd-resolver/src/WhatcdResolver.hs
@@ -135,37 +135,43 @@ htmlUi = do
counterHtml <- counterHtmlM
mainHtml counterHtml uniqueRunId span
),
- ( "snips/redacted/search",
- Html $
- \span -> do
- dat <-
- parseMultipartOrThrow
- span
- req
- ( do
- label @"searchstr" <$> Multipart.field "redacted-search" Cat.id
- )
- t <- redactedSearchAndInsert [("searchstr", dat.searchstr)]
+ ( "redacted-search",
+ HtmlWithQueryArgs (singleQueryArgument "searchstr" Cat.id) $
+ \searchstr _span -> do
+ t <- redactedSearchAndInsert [("searchstr", searchstr)]
runTransaction $ do
res <- t
- table <-
- getBestTorrentsTable
- (label @"groupByReleaseType" True)
- ( Just (E21 (label @"onlyTheseTorrents" res.newTorrents)) ::
- ( Maybe
- ( E2
- "onlyTheseTorrents"
- [Label "torrentId" Int]
- "artistRedactedId"
- Natural
- )
+ (table, settings) <-
+ concurrentlyTraced
+ ( getBestTorrentsTable
+ (label @"groupByReleaseType" True)
+ ( Just
+ ( E21
+ (label @"onlyTheseTorrents" res.newTorrents)
+ ) ::
+ Maybe
+ ( E2
+ "onlyTheseTorrents"
+ [Label "torrentId" Int]
+ "artistRedactedId"
+ Natural
+ )
)
)
- pure
- [hsx|
-
Search results for {dat.searchstr}
- {table}
- |]
+ (getSettings)
+ pure $
+ mainHtml'
+ ( MainHtml
+ { pageTitle = [fmt|whatcd-resolver – Search – {searchstr & bytesToTextUtf8Lenient}|],
+ counterHtml = "",
+ mainContent =
+ [hsx|Search results for {searchstr}
{table}|],
+ uniqueRunId,
+ searchFieldContent = searchstr & bytesToTextUtf8Lenient,
+ settings
+ }
+ )
+ _span
),
( "snips/redacted/torrentDataJson",
Html $ \span -> do
@@ -337,28 +343,52 @@ htmlUi = do
(getBestTorrentsTable (label @"groupByReleaseType" False) Nothing)
(getSettings)
-- transmissionTorrentsTable <- lift @Transaction getTransmissionTorrentsTable
- let returnUrl = (label @"returnUrl" "/")
pure $
- htmlPageChrome
- "whatcd-resolver"
- ( [hsx|
- {counterHtml}
- {settingButtons returnUrl settings}
+ mainHtml'
+ ( MainHtml
+ { pageTitle = "whatcd-resolver",
+ counterHtml,
+ mainContent = bestTorrentsTable,
+ uniqueRunId,
+ settings,
+ searchFieldContent = ""
+ }
+ )
+ _span
+
+data MainHtml = MainHtml
+ { pageTitle :: Text,
+ counterHtml :: Html,
+ mainContent :: Html,
+ searchFieldContent :: Text,
+ uniqueRunId :: Text,
+ settings :: Settings
+ }
+
+mainHtml' :: MainHtml -> Otel.Span -> Html
+mainHtml' dat _span = do
+ -- transmissionTorrentsTable <- lift @Transaction getTransmissionTorrentsTable
+ let returnUrl = (label @"returnUrl" "/")
+
+ htmlPageChrome
+ dat.pageTitle
+ ( [hsx|
+ {dat.counterHtml}
+ {settingButtons returnUrl dat.settings}
|]
- <> [hsx|
-
-
- {bestTorrentsTable}
+
+ {dat.mainContent}
|]
- )
+ )
-- | Run two actions concurrently, and add them to the current Otel trace
concurrentlyTraced :: (MonadUnliftIO m) => m a -> m b -> m (a, b)