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| -
- + <> [hsx| + + + name="searchstr" + value={dat.searchFieldContent} />
Search running!
-
- {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)