120 lines
5.9 KiB
Plaintext
120 lines
5.9 KiB
Plaintext
@model OnboardingManuscriptBuildResult
|
|
@{
|
|
ViewData["Title"] = "Manuscript imported";
|
|
var coreComplete = string.Equals(Model.Status, "CoreImportComplete", StringComparison.OrdinalIgnoreCase);
|
|
}
|
|
|
|
<section class="onboarding-shell" aria-labelledby="build-complete-title">
|
|
<div class="onboarding-panel onboarding-review-panel">
|
|
<partial name="_OnboardingJourneyHeader" model="@(new OnboardingJourneyHeaderViewModel { CurrentStep = coreComplete ? 10 : 8, TotalSteps = 10 })" />
|
|
<div class="onboarding-copy">
|
|
<p class="eyebrow">@(coreComplete ? "Core Import Complete" : "Scene Detection Complete")</p>
|
|
<div class="onboarding-success-heading">
|
|
<span aria-hidden="true">✓</span>
|
|
<h1 id="build-complete-title">@(coreComplete ? "Core import is complete." : "Scene structure has been detected.")</h1>
|
|
</div>
|
|
<p>
|
|
@if (coreComplete)
|
|
{
|
|
@:PlotDirector created the approved chapters and scenes, saved the Word markers, and applied your character review. Core import is complete.
|
|
}
|
|
else if (Model.AlreadyBuilt)
|
|
{
|
|
@:This manuscript structure has already been created in PlotDirector, so nothing was duplicated. Review characters to complete the core import.
|
|
}
|
|
else
|
|
{
|
|
@:PlotDirector created the approved chapters and detected scenes, persisted their manuscript text, updated the Word markers, and saved the manuscript. Word may now be closed if you wish; keep this browser workflow open to review characters.
|
|
}
|
|
</p>
|
|
@if (!string.IsNullOrWhiteSpace(Model.MarkerWarning))
|
|
{
|
|
<p class="text-warning">@Model.MarkerWarning</p>
|
|
}
|
|
</div>
|
|
|
|
<div class="onboarding-scan-counts onboarding-review-counts">
|
|
<div>
|
|
<span>Chapters</span>
|
|
<strong>@Model.ChaptersCreated</strong>
|
|
</div>
|
|
<div>
|
|
<span>Scenes</span>
|
|
<strong>@Model.ScenesCreated</strong>
|
|
</div>
|
|
<div>
|
|
<span>Characters created now</span>
|
|
<strong>@(Model.CharactersCreated + Model.CharactersReused)</strong>
|
|
</div>
|
|
<div>
|
|
<span>Scene appearances now</span>
|
|
<strong>@Model.SceneAppearancesCreated</strong>
|
|
</div>
|
|
</div>
|
|
|
|
@if (Model.SceneStructure.Any())
|
|
{
|
|
<section class="onboarding-complete-next" aria-label="Detected scene structure">
|
|
<h2>Detected scene structure</h2>
|
|
<div class="onboarding-review-chapters">
|
|
@foreach (var chapter in Model.SceneStructure)
|
|
{
|
|
<details class="onboarding-review-chapter">
|
|
<summary>
|
|
<span>Chapter @chapter.ChapterNumber</span>
|
|
<strong>@chapter.ChapterTitle</strong>
|
|
<small>@chapter.SceneCount.ToString("N0") scene@(chapter.SceneCount == 1 ? string.Empty : "s") / @chapter.WordCount.ToString("N0") words</small>
|
|
</summary>
|
|
@if (chapter.Scenes.Any(scene => !string.IsNullOrWhiteSpace(scene.StructuralSummary)))
|
|
{
|
|
<ol>
|
|
@foreach (var scene in chapter.Scenes)
|
|
{
|
|
<li>
|
|
<strong>@scene.Title</strong>
|
|
<span>@scene.WordCount.ToString("N0") words / paragraphs @scene.StartParagraph-@scene.EndParagraph</span>
|
|
@if (!string.IsNullOrWhiteSpace(scene.StructuralSummary))
|
|
{
|
|
<p>@scene.StructuralSummary</p>
|
|
}
|
|
</li>
|
|
}
|
|
</ol>
|
|
}
|
|
</details>
|
|
}
|
|
</div>
|
|
</section>
|
|
}
|
|
|
|
@if (coreComplete)
|
|
{
|
|
<section class="onboarding-complete-next">
|
|
<h2>Optional: analyse manuscript</h2>
|
|
<p>Story Intelligence can now enrich the existing scenes with summaries, context, relationships, knowledge, timeline details and metrics. You can analyse now or return later.</p>
|
|
</section>
|
|
}
|
|
else
|
|
{
|
|
<section class="onboarding-complete-next">
|
|
<h2>Next: review characters</h2>
|
|
<p>Character detection remains part of core import. Review detected names, aliases and existing matches to finish importing the manuscript.</p>
|
|
</section>
|
|
}
|
|
|
|
<div class="onboarding-actions">
|
|
@if (coreComplete)
|
|
{
|
|
<a class="btn btn-primary" asp-controller="Onboarding" asp-action="StoryIntelligence">Analyse my book</a>
|
|
<a class="btn btn-outline-secondary" asp-controller="Projects" asp-action="Details" asp-route-id="@Model.ProjectID">Not now</a>
|
|
}
|
|
else
|
|
{
|
|
<a class="btn btn-primary" asp-controller="Onboarding" asp-action="ScanCharacters" asp-route-previewId="@Model.PreviewID">Review characters</a>
|
|
}
|
|
<a class="btn btn-outline-primary" asp-controller="Projects" asp-action="Details" asp-route-id="@Model.ProjectID">Open Project Overview</a>
|
|
<a class="btn btn-outline-secondary" asp-controller="Writer" asp-action="Index" asp-route-projectId="@Model.ProjectID">Open Writer Workspace</a>
|
|
</div>
|
|
</div>
|
|
</section>
|