PlotDirector/PlotLine/Views/Onboarding/_StoryIntelligencePipelineHeader.cshtml

68 lines
2.7 KiB
Plaintext

@model StoryIntelligencePipelineHeaderViewModel
@{
var isAnalyse = string.Equals(Model.CurrentStage, "Analyse Manuscript", StringComparison.OrdinalIgnoreCase);
var isSceneImport = string.Equals(Model.CurrentStage, "Review Scenes", StringComparison.OrdinalIgnoreCase);
var isReviewCentre = string.Equals(Model.CurrentStage, "Review Centre", StringComparison.OrdinalIgnoreCase);
var phase = isAnalyse ? 2 : isSceneImport ? 2 : 3;
var progressPercent = isAnalyse ? 50 : isSceneImport ? 75 : 100;
}
<section class="story-pipeline-header" aria-label="Story Intelligence progress">
<div class="story-pipeline-current">
<p class="eyebrow">Phase @phase</p>
<h2>@CurrentPhaseTitle()</h2>
<p>@CurrentPhaseDescription()</p>
</div>
<div class="onboarding-progress story-pipeline-progress" aria-label="@CurrentPhaseTitle() progress">
<span>@ProgressLabel()</span>
<div class="onboarding-progress-track">
<span style="width:@progressPercent%"></span>
</div>
</div>
<ol class="story-pipeline-phase-list">
<li class="is-complete">
<strong>Core Import</strong>
<span>Book structure created from Word</span>
</li>
<li class="@(isAnalyse || isSceneImport ? "is-current" : "is-complete")">
<strong>Analyse Manuscript</strong>
<span>Scene intelligence saved to PlotDirector</span>
</li>
<li class="@(!isAnalyse && !isSceneImport ? "is-current" : "is-upcoming")">
<strong>Review Centre</strong>
<span>Independent optional review categories</span>
</li>
</ol>
</section>
@functions {
private string CurrentPhaseTitle()
=> Model.CurrentStage switch
{
"Analyse Manuscript" => "Analyse Manuscript",
"Review Scenes" => "Create Scene Intelligence",
"Review Centre" => "Review Centre",
_ => "Review Story Intelligence"
};
private string CurrentPhaseDescription()
=> Model.CurrentStage switch
{
"Analyse Manuscript" => "PlotDirector is reading saved canonical scenes.",
"Review Scenes" => "Create the stored scene intelligence before opening review categories.",
"Review Centre" => "Choose the review category you want to handle now.",
_ => "This category can be reviewed independently after character resolution."
};
private string ProgressLabel()
=> Model.CurrentStage switch
{
"Analyse Manuscript" => "Analysis running",
"Review Scenes" => "Scene intelligence",
"Review Centre" => "Review Centre",
_ => Model.CurrentStage
};
}