Добавил пару новых страниц

This commit is contained in:
2024-10-28 02:46:07 +03:00
parent cb42b553cf
commit d82e68d9a5
11 changed files with 113 additions and 2098 deletions

View File

@@ -1,9 +1,17 @@
@inject NavigationManager Navigation
@code {
private static string _returnClass = "step-primary";
private int _lvl = 0;
private Dictionary<string, string> _links = new()
{
{ "Анкета", "/otchislenie/questionnaire" },
{ "Заявление", "/otchislenie/statement" },
{ "Отправка", "/otchislenie/result" },
{ "Свобода", "/otchislenie/congratulation" }
};
// TODO: Упростить это
protected override void OnInitialized()
{
base.OnInitialized();
@@ -16,9 +24,12 @@
case "otchislenie/statement":
_lvl = 2;
break;
case "otchislenie/congratulation":
case "otchislenie/result":
_lvl = 3;
break;
case "otchislenie/congratulation":
_lvl = 4;
break;
}
}
}
@@ -26,10 +37,28 @@
<footer class="card fixed bottom-0 w-96 h-20 bg-base-200 rounded-badge p-4 mb-3">
<div class="flex justify-center items-center">
<ul class="steps justify-center center">
<a href="/" class="step step-primary">Выбор</a>
<a href="/otchislenie/questionnaire" class="step @((MarkupString)(_lvl >= 1 ? _returnClass : ""))">Анкета</a>
<a href="/otchislenie/statement" class="step @((MarkupString)(_lvl >= 2 ? _returnClass : ""))">Заявление</a>
<a href="/otchislenie/congratulation" class="step @((MarkupString)(_lvl >= 3 ? _returnClass : ""))" data-content="♿">Свобода</a>
<a href="/" class="step step-primary text-gray-500">Выбор</a>
@foreach (int i in Enumerable.Range(1, 4))
{
if (_lvl == 4 && i == 4)
{
<a href="/otchislenie/congratulation" class="step step-primary select-none " data-content="♿">Свобода</a>
continue;
}
if (_lvl == i)
{
<i class="step select-none step-primary">@_links.ElementAt(i - 1).Key</i>
}
else if (_lvl > i)
{
<a href="@_links.ElementAt(i - 1).Value" class="step step-primary select-none text-gray-500">@_links.ElementAt(i - 1).Key</a>
}
else
{
<i class="step select-none"> @_links.ElementAt(i - 1).Key</i>
}
}
</ul>
</div>
</footer>

View File

@@ -1,6 +1,6 @@
@using Microsoft.AspNetCore.Authorization
@inherits LayoutComponentBase
@attribute [Authorize] // НЕ РАБОТАЕТ
@attribute [Authorize]
<div class="flex items-center accent-error justify-center min-h-screen font-roboto text-primary-content">

View File

@@ -6,7 +6,7 @@
<div class="text-center mx-auto mb-4 font-bold text-4xl md:text-5xl w-max justify-center italic">Поздравляем!</div>
<img class="w-96 h-96 mx-auto" src="img/party-popper.svg" alt=""/>
<div class="flex flex-col space-y-4 lg:flex-row lg:space-x-4 lg:space-y-0 mt-4">
<a href="/otchislenie/statement" class="btn w-full lg:w-48 h-12 btn-primary rounded-full text-2xl">
<a href="/otchislenie/result" class="btn w-full lg:w-48 h-12 btn-primary rounded-full text-2xl">
Назад
</a>
<a href="/" class="btn w-full lg:w-48 h-12 btn-primary rounded-full text-2xl">

View File

@@ -2,7 +2,7 @@
@page "/otchislenie/questionnaire"
@using Otchinslator.Components.Layout
@layout OtchislenieLayout
<h3>questionnaire</h3>
<a href="/otchislenie/statement">questionnaire</a>
@code {

View File

@@ -0,0 +1,42 @@
@page "/otchislenie/result"
@using Otchinslator.Components.Layout
@layout OtchislenieLayout
<script>
function showCongratulation() {
document.getElementById('congratulation').classList.remove('hidden');
}
</script>
<div class="w-full">
<div class="flex flex-col space-y-4 w-96 mx-auto">
<div class="card rounded-badge bg-base-200 p-4">
<div class="flex flex-col space-y-4 mt-1">
<button class="btn h-16 btn-primary rounded-full text-2xl relative">
Отправить директору
</button>
<button id="downloadPDF" onclick="showCongratulation()" class="btn h-16 btn-primary rounded-full text-2xl relative">
Скачать PDF
<div class="absolute bg-base-200 rounded-full right-1 w-14 h-14">
<img class="p-3" src="img/pdf.svg" alt=""/>
</div>
</button>
</div>
</div>
</div>
@* TODO: Сделать адаптив *@
@* <div class="mt-9 flex flex-col space-y-4 lg:flex-row lg:space-x-4 lg:space-y-0 w-96 mx-auto" > *@
<div class="mt-9 flex flex-col space-y-4 w-96 mx-auto" >
<a href="/otchislenie/statement" class="btn w-96 h-14 btn-primary rounded-full text-2xl">
Назад
</a>
<a href="/" class="btn w-96 h-14 btn-primary rounded-full text-2xl">
Выход
</a>
</div>
<div class="w-96 mx-auto mt-6">
<a id="congratulation" href="/otchislenie/congratulation" class="btn w-full h-16 btn-primary rounded-full text-2xl hidden">
Страница поздравления
</a>
</div>
</div>

View File

@@ -1,7 +1,7 @@
@page "/otchislenie/statement"
@using Otchinslator.Components.Layout
@layout OtchislenieLayout
<h3>Statement</h3>
<a href="/otchislenie/result">Statement</a>
@code {

View File

@@ -1,67 +0,0 @@
@page "/weather"
@attribute [StreamRendering]
<PageTitle>Weather</PageTitle>
<h1>Weather</h1>
<p>This component demonstrates showing data.</p>
@if (forecasts == null)
{
<p>
<em>Loading...</em>
</p>
}
else
{
<table class="table">
<thead>
<tr>
<th>Date</th>
<th>Temp. (C)</th>
<th>Temp. (F)</th>
<th>Summary</th>
</tr>
</thead>
<tbody>
@foreach (var forecast in forecasts)
{
<tr>
<td>@forecast.Date.ToShortDateString()</td>
<td>@forecast.TemperatureC</td>
<td>@forecast.TemperatureF</td>
<td>@forecast.Summary</td>
</tr>
}
</tbody>
</table>
}
@code {
private WeatherForecast[]? forecasts;
protected override async Task OnInitializedAsync()
{
// Simulate asynchronous loading to demonstrate streaming rendering
await Task.Delay(500);
var startDate = DateOnly.FromDateTime(DateTime.Now);
var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" };
forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = startDate.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
}).ToArray();
}
private class WeatherForecast
{
public DateOnly Date { get; set; }
public int TemperatureC { get; set; }
public string? Summary { get; set; }
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
}