Sweep all .cshtml files for encoding corruption; add pre-commit guard
Replace all corruption variants with HTML entities across 226 view files: - 3-char UTF-8-as-Win1252 sequences (ae-corruption) - Standalone smart/curly quotes that break C# Razor expressions - Partially re-corrupted variants where the 3rd byte was normalised to ASCII tools/Fix-Encoding.ps1: re-runnable sweep; uses [char] code points so the script itself never contains a literal non-ASCII character; supports -DryRun .githooks/pre-commit: blocks commits containing the ae-corruption byte signature (xc3xa2xe2x82xac); git core.hooksPath = .githooks so the hook is repo-committed and active for all future work on this machine. Build clean; 225 unit tests pass. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -222,7 +222,7 @@
|
||||
Due: @job.DueDate.Value.ToString("MMM d, yyyy")
|
||||
@if (job.DueDate < DateTime.Today && !isTerminal)
|
||||
{
|
||||
<strong style="color: #dc2626;"> — OVERDUE</strong>
|
||||
<strong style="color: #dc2626;"> — OVERDUE</strong>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@@ -237,14 +237,14 @@
|
||||
}
|
||||
else if (isOnHold)
|
||||
{
|
||||
@* On hold — offer resume (next logical status after resume by advancing) *@
|
||||
@* On hold — offer resume (next logical status after resume by advancing) *@
|
||||
@if (nextStatus != null)
|
||||
{
|
||||
<form method="post" asp-action="StatusBump" asp-route-id="@jobId">
|
||||
@Html.AntiForgeryToken()
|
||||
<input type="hidden" name="newStatusId" value="@nextStatus.Id" />
|
||||
<button type="submit" class="btn-resume">
|
||||
▶ Resume — Move to @nextStatus.DisplayName
|
||||
▶ Resume — Move to @nextStatus.DisplayName
|
||||
</button>
|
||||
</form>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user