107 lines
4.6 KiB
Plaintext
107 lines
4.6 KiB
Plaintext
@model WritingScheduleSetupViewModel
|
|
@{
|
|
ViewData["Title"] = "Schedule Setup";
|
|
var selectedDays = Model.SelectedWritingDays.ToHashSet(StringComparer.OrdinalIgnoreCase);
|
|
}
|
|
|
|
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
|
|
<a asp-controller="Writer" asp-action="Index">Writer Workspace</a>
|
|
<span>Schedule Setup</span>
|
|
</nav>
|
|
|
|
<div class="page-heading compact">
|
|
<div>
|
|
<p class="eyebrow">Writing schedule</p>
|
|
<h1>Schedule Setup</h1>
|
|
<p class="lead-text">Create a writing plan and generate its first schedule.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<section class="story-bible-section">
|
|
<form asp-action="ScheduleSetup" method="post" class="story-bible-card chapter-goal-form">
|
|
<div asp-validation-summary="ModelOnly" class="alert alert-warning"></div>
|
|
|
|
<div class="row g-3">
|
|
<div class="col-md-6">
|
|
<label asp-for="PlanName" class="form-label">Plan Name</label>
|
|
<input asp-for="PlanName" class="form-control" />
|
|
<span asp-validation-for="PlanName" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="GoalType" class="form-label">Goal Type</label>
|
|
<select asp-for="GoalType" asp-items="Model.GoalTypeOptions" class="form-select"></select>
|
|
<span asp-validation-for="GoalType" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="ProjectID" class="form-label">Project</label>
|
|
<select asp-for="ProjectID" asp-items="Model.ProjectOptions" class="form-select">
|
|
<option value="">Select project</option>
|
|
</select>
|
|
<span asp-validation-for="ProjectID" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="BookID" class="form-label">Book</label>
|
|
<select asp-for="BookID" asp-items="Model.BookOptions" class="form-select">
|
|
<option value="">All Books</option>
|
|
</select>
|
|
<span asp-validation-for="BookID" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="StartDate" class="form-label">Start Date</label>
|
|
<input asp-for="StartDate" class="form-control" type="date" />
|
|
<span asp-validation-for="StartDate" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="DeadlineDate" class="form-label">Deadline Date</label>
|
|
<input asp-for="DeadlineDate" class="form-control" type="date" />
|
|
<span asp-validation-for="DeadlineDate" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="SessionLengthMinutes" class="form-label">Session Length Minutes</label>
|
|
<input asp-for="SessionLengthMinutes" class="form-control" type="number" min="1" />
|
|
<span asp-validation-for="SessionLengthMinutes" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-md-6">
|
|
<label asp-for="RebalanceMode" class="form-label">Rebalance Mode</label>
|
|
<select asp-for="RebalanceMode" asp-items="Model.RebalanceModeOptions" class="form-select"></select>
|
|
<span asp-validation-for="RebalanceMode" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-12">
|
|
<label class="form-label">Writing Days</label>
|
|
<div class="writer-checkbox-grid">
|
|
@foreach (var day in Model.WritingDayOptions)
|
|
{
|
|
<label>
|
|
<input type="checkbox" name="SelectedWritingDays" value="@day" checked="@selectedDays.Contains(day)" />
|
|
@day
|
|
</label>
|
|
}
|
|
</div>
|
|
<span asp-validation-for="SelectedWritingDays" class="text-danger"></span>
|
|
</div>
|
|
|
|
<div class="col-12 writer-checkbox-grid">
|
|
<label>
|
|
<input asp-for="IncludeBlockedScenes" />
|
|
Include Blocked Scenes
|
|
</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="button-row mt-3">
|
|
<button class="btn btn-primary" type="submit">Create Plan and Generate Schedule</button>
|
|
<a class="btn btn-outline-secondary" asp-action="SchedulePreview">Schedule Preview</a>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
|
|
<partial name="_ValidationScriptsPartial" />
|