Commit Graph

1562 Commits

Author SHA1 Message Date
5fa12c86c2 Add missing localized string properties for software admin edit panel
Several strings used in AdminSoftwarePage.xaml (external IDs, similar
software, markdown description fields, release management button)
existed in the .resx resources but had no corresponding property on
LocalizedStrings, so the bindings resolved to nothing at runtime.
2026-07-01 21:28:59 +01:00
78dd93cfc2 Fix WinWorldPC suggestion ranking to prioritize exact matches
Platform/genre/company suggestion lists in AdminWwpcImportReviewViewModel
sorted alphabetically after substring filtering, which could push an
exact match (e.g. "Windows") off the visible list when many other
entries shared the same prefix. Now exact matches rank first, followed
by Jaro-Winkler similarity, then alphabetical order.
2026-07-01 19:28:09 +01:00
25084ec88e Fix software duplicates admin page UX in Uno app
Duplicate groups now render as explicit cards instead of relying on
ListView/GroupStyle grouping, which Uno doesn't render reliably across
targets. The merge-target picker no longer loads the entire 170k-row
Software table into memory; it now reuses the existing
SoftwareService.SearchForPickerAsync search endpoint, same as the
sibling similar-software picker. The merge panel also now shows a
"Merging X into Y" summary and locks the target (with a Change link)
when pre-selected from a chosen master, matching the Blazor page's UX.
2026-07-01 19:08:56 +01:00
53f3a7a04e Fix Uno admin photo staging crash and stuck-thumbnail UI
Staging a photo in the Uno admin photo pages (GPU/Machine/Processor/
SoundSynth/Software covers/screenshots) threw ArgumentOutOfRangeException
inside Microsoft.Kiota.Serialization.Json when deserializing the
admin/pending response. Blazor's equivalent dialog never hit this because
it bypasses Kiota entirely for the upload call (raw JS fetch). Replaced
the Kiota-generated PostAsync calls with a manual HttpClient POST +
System.Text.Json deserialization for these endpoints, and hardened
ImageSourceFactory's DispatcherQueue.TryEnqueue calls to surface a real
exception instead of hanging silently if enqueueing fails.

Also fixed the staged-photo cards appearing permanently stuck on
"uploading..." even after a successful stage: their DataTemplates had no
x:DefaultBindMode, so all x:Bind expressions defaulted to OneTime and
never reflected the item's status/thumbnail/progress changes.
2026-07-01 15:55:32 +01:00
0bfd49b382 Replace photo carousels with responsive grids in Uno app
Machine, GPU, Processor, and Sound Synth detail pages now show photos
as a card grid (ItemsRepeater + UniformGridLayout), matching the
Blazor app's style and the grid pattern already used for software
screenshots/promo art. Company logos carousel is unchanged.
2026-07-01 04:09:26 +01:00
9ecca065a9 Paginate the software list on the machine details page
Loads software in fixed-size pages via the existing skip/take API instead
of fetching the entire list at once, with Previous/Next controls.
2026-07-01 04:01:35 +01:00
bcec1b5f37 Fix ResponsiveView not rendering on photo detail pages until rotation
ResponsiveView's Visibility was bound to IsLoading, keeping it Collapsed
during the first layout pass. It only picks its narrow/wide template based
on the width it measures the first time it participates in layout, so it
never rendered until a real SizeChanged (device rotation) forced it to
re-evaluate. Reorder it under the loading/error overlays instead of hiding
it, so it always measures correctly from the start, and drop the ineffective
QueueLayoutRefresh workaround.
2026-07-01 03:48:32 +01:00
b5192902d8 Fix Android release build not loading ApiClient URL
AndroidManifest.xml was missing the INTERNET permission, which .NET
for Android auto-injects only for Debug builds, causing all network
requests to silently fail in signed Release builds. Also make the
embedded appsettings.json fallback in BuildConfiguration always seed
first on Android instead of gating on an unreliable File.Exists check
against APK-packaged content assets.
2026-07-01 03:31:13 +01:00
c56abea35c Fix missing scrollbars in admin description edit/preview panes
StackPanel gives its children infinite height during measurement, so the
inner ScrollViewer/TextBox never received a finite height to scroll
against and the boxes just grew unbounded instead of scrolling. Replace
the StackPanel wrappers with Grid (Auto/*) rows across all admin
description editors, and add a matching edit+preview pane to
AdminSoftwarePage, which previously had no preview and no scrolling.
2026-07-01 02:16:21 +01:00
055249a298 Make software screenshots admin a child page of Software
Screenshots were managed from a standalone admin page listing every
screenshot across all software, with an in-page picker just to choose
upload scope. Convert it to the same child-of-Software pattern used by
Versions/Releases/PromoArt/Videos: reached via a row icon on the
Software admin grid, scoped to that software via navigation params,
with a back button returning to the Software list. Drops the now
redundant Software picker and the standalone sidebar entry.
2026-07-01 00:30:52 +01:00
024b26b0ed Make software releases a child admin page 2026-07-01 00:10:26 +01:00
b282ceaa8c Use Marechai logo for Uno splash screen 2026-06-30 23:58:08 +01:00
b38641b3fb Use Marechai icon for Uno app 2026-06-30 23:51:42 +01:00
9b4856ee45 Add missing magazine issue localization bindings 2026-06-30 23:47:45 +01:00
df0bf54281 Fix magazines admin issues tooltip binding 2026-06-30 23:43:22 +01:00
221ce68821 Fix Uno photo detail pages staying blank until resize 2026-06-30 23:40:07 +01:00
be2e24edb7 Fix machine video admin localization 2026-06-30 23:17:30 +01:00
00f572dd41 Fix Uno machine photo localizer bindings 2026-06-30 23:13:52 +01:00
c59e31c29c Render entity synopses as markdown in Uno app 2026-06-30 23:08:47 +01:00
96a8d7b7f3 Unify app configuration for Prism and Uno 2026-06-30 23:00:32 +01:00
a1346b939a Fix Uno admin pagination search filters 2026-06-30 22:16:00 +01:00
f801382bfa Fix Android appsettings loading 2026-06-30 22:02:15 +01:00
84bc2be03d Roll out server-side pagination in Uno admin pages 2026-06-30 21:58:40 +01:00
ffcbc9c939 Optimize admin software page query 2026-06-30 21:57:05 +01:00
651d03b526 Fix software compilation admin projection 2026-06-30 21:56:23 +01:00
96b211aa77 Fix markdown rendering in Marechai.App via native XAML renderer
MarkdownTextBlock crashed with a NullReferenceException in ThemeListener
under Uno, and the WebView2-based fallback used by description pages
doesn't composite on Linux desktop. Render markdown directly to XAML
elements (TextBlock/Span/Hyperlink/Image trees) via Markdig's AST instead,
shared by MessageMarkdownView and all entity description pages, with no
embedded browser dependency on any platform.
2026-06-30 14:16:22 +01:00
643bf86bed Add Reports tab to Uno Messages page
The Messages page already had an IsAdmin flag and the server already
supported a "reports" folder of system-authored conversations, but
there was no button/command in the Uno app to ever navigate to it, so
admins had no way to see system messages in the Messages area.
2026-06-30 13:08:29 +01:00
42ed8daaa7 Show WinWorldPC screenshot thumbnails in Uno review 2026-06-30 12:53:34 +01:00
569c178ca0 Add pagination to Uno old-dos imports queue 2026-06-30 12:48:19 +01:00
53521e7ae6 Add pagination to Uno WinWorldPC imports queue 2026-06-30 12:41:14 +01:00
81d1e7c1af Use configured API URL in Uno app client 2026-06-30 12:41:10 +01:00
84bcd3aacb Fix responsive main shell sidebar 2026-06-30 11:58:00 +01:00
86245dae81 Fix machine detail sub-item navigation 2026-06-30 08:10:09 +01:00
e394736648 Bring Uno company detail page to parity with Blazor
Add the junction sections that were missing from the Uno app's
read-only company viewer (smartphones, tablets, PDAs, machine
families, GPUs, processors, sound synthesizers, software, books,
documents, magazines), and restructure the page into tabs
(Overview/Hardware/Software & Media/People/Description) following
the app's established detail-page tab pattern.
2026-06-30 08:05:47 +01:00
a44c74c312 Pin Uno.Sdk back to 6.5.36, fixing blank Carousel rendering
The 6.7.0-dev.99 prerelease pulled in by global.json regressed the
CommunityToolkit Carousel control on the Uno desktop/Skia target: item
containers rendered but their content never did, breaking the Logo
History and Photos carousels. 6.5.36 is the documented stable version
and restores correct rendering.
2026-06-30 07:33:28 +01:00
ee9e88f222 Use icon actions in Uno admin grids 2026-06-30 02:03:33 +01:00
d33c482c24 Move company people editor into separate tab 2026-06-30 01:48:45 +01:00
c50eb00bca Fix Uno admin description panel opening 2026-06-30 01:26:57 +01:00
1772b65917 Add Marechai score to Uno software hero 2026-06-30 01:13:03 +01:00
d53c3bcde1 Add random software hero cover in Uno app 2026-06-30 01:06:22 +01:00
625a990d31 Hide empty software version in release detail 2026-06-30 01:00:59 +01:00
c0331a7803 Fix software releases display in Uno app 2026-06-30 00:58:05 +01:00
32f5715bcd Fix Uno back navigation behavior 2026-06-30 00:50:17 +01:00
76c6b35e70 Fix Uno detail page navigation reuse 2026-06-30 00:40:41 +01:00
14f992ffbe Fix Uno list discriminator navigation reuse 2026-06-30 00:32:43 +01:00
4bb5e7131d Replace remaining hardcoded colors in auth/settings/review pages
LoginPage and SettingsPage's amber warning boxes now use
WarningFillColorTertiaryBrush/WarningBorderColorDefaultBrush/
WarningForegroundColorDefaultBrush; DeleteAccountPage and
DeletionPendingPage's red danger banners use SystemFillColorCriticalBrush;
UserReviewEditorControl's gold star rating uses WarningForegroundColorDefaultBrush.
All previously ignored the 11 color palettes.
2026-06-29 21:26:58 +01:00
6b4a9d0d7e Switch browse-grid pages to KeyButton and fix grid cell clipping
Replace the old Button+LetterYearButtonStyle usage with the new KeyButton
control across all letter/year/platform/spec browse grids. Also bump every
UniformGridLayout's MinItemHeight from 44 to 60 — the button's actual
footprint (52px MinHeight + 4px margin per side) was taller than the cell,
so ItemsRepeater was clipping the bottom of every key.
2026-06-29 21:23:21 +01:00
c19e60a23c Add Path-drawn KeyButton control for a real keycap look
Border+CornerRadius kept producing corner-clipping/chamfering artifacts on
this Uno.Sdk build regardless of technique, so the letter/year browse-grid
keys are now a custom KeyButton control whose default style draws the
beveled keycap with Path geometry inside a Viewbox (so the five facet
shapes scale together as one rigid design instead of each independently
warping to fill the tile). Bevel walls use translucent black/white overlays
rather than theme-tier brushes, which read as near-identical flat tones in
several palettes.
2026-06-29 21:23:06 +01:00
a8b75e87c7 Replace hardcoded keyboard-key button style with theme-aware variant
The letter/year browse-grid buttons on Computers/Software/Books/etc pages
used a copy-pasted ControlTemplate with literal hex gradients that ignored
all 11 color palettes. Add LetterYearButtonStyle to SharedStyles.xaml using
the existing CardBackgroundFillColor*/CardStrokeColorDefault theme brushes
and point every page at it instead.
2026-06-29 20:56:47 +01:00
da14d6441b Apply shared interactive-card template to Uno listing pages
Replace the hand-rolled Button.Template+VisualStateManager clickable-card
pattern duplicated across all machine/media/hardware listing pages with the
shared InteractiveCardButtonTemplate. Also convert SoftwareListPage's
hardcoded compilation badge to the semantic ChipInfoStyle.
2026-06-29 20:56:23 +01:00