Files
soroush.asadi 1b3a8b493e
deploy / deploy (push) Failing after 1m21s
Rewrite: Next.js → ASP.NET Core 10 Razor Pages
Full rewrite of the portfolio site from Next.js 14 to .NET 10:

- ASP.NET Core 10 Razor Pages, no Node.js dependency
- EF Core 10 + SQLite (same schema as before — data survives upgrade)
- Cookie authentication (same single-password model)
- Resend contact form via HttpClient
- Bilingual FA/EN via locale cookie + BasePageModel
- All UI ported to Razor Pages with Tailwind CDN + custom CSS
- Vanilla JS: particles, typewriter, cursor, animations, portfolio modal
- Dockerfile: SDK 10.0-alpine → aspnet 10.0-alpine (no npm/Node needed)
- CI/CD: dropped NPM_TOKEN, ADMIN_SESSION_SECRET — pure dotnet publish

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 07:46:56 +03:30

38 lines
1.4 KiB
Plaintext

@page "/Admin/Sections"
@model SoroushAsadi.Pages.Admin.Sections.SectionsIndexModel
@{
Layout = "_AdminLayout";
ViewData["Title"] = "Sections";
var all = new[]{ "hero","services","dataflow","stack","expertise","portfolio","blog","contact","footer" };
}
<div class="mb-6 flex items-center justify-between">
<h1 class="font-display text-2xl font-bold text-white">Sections</h1>
</div>
<div class="space-y-2">
@foreach (var key in all)
{
var hasOverride = Model.OverrideKeys.Contains(key);
<div class="glass flex items-center justify-between p-4">
<div class="flex items-center gap-3">
<span class="font-mono text-sm text-white">@key</span>
@if (hasOverride)
{
<span class="rounded-full bg-electric/10 px-2 py-0.5 font-mono text-[.65rem] text-electric">customized</span>
}
</div>
<div class="flex gap-2">
<a href="/Admin/Sections/@key" class="btn-ghost text-xs py-1.5 px-3">Edit</a>
@if (hasOverride)
{
<form method="post" asp-page-handler="Reset" class="inline">
<input type="hidden" name="key" value="@key" />
<button type="submit" class="rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-1.5 text-xs text-red-400 hover:bg-red-500/20 transition-colors">Reset</button>
</form>
}
</div>
</div>
}
</div>