Navigation tidy up 1B

This commit is contained in:
Nick Beckley 2026-06-07 20:00:34 +01:00
parent 70ab07d401
commit 5d2a435892
22 changed files with 145 additions and 239 deletions

View File

@ -1,24 +1,25 @@
@model Phase1AcceptanceViewModel
@{
ViewData["Title"] = "Phase 1 Acceptance Checklist";
ViewData["ProjectSection"] = "Overview";
var projectNavigation = Model.ProjectID.HasValue
? new Project { ProjectID = Model.ProjectID.Value, ProjectName = Model.ProjectName ?? "Project" }
: null;
}
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Stability report</span>
<strong>@(Model.ProjectName ?? "All projects")</strong>
</div>
<nav class="context-nav" aria-label="Acceptance navigation">
@if (Model.ProjectID.HasValue)
{
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.ProjectID">Timeline</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.ProjectID">Warnings</a>
<a asp-controller="Archives" asp-action="Index" asp-route-projectId="@Model.ProjectID">Archived Items</a>
}
<a asp-controller="Projects" asp-action="Index">Projects</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
@if (Model.ProjectID.HasValue)
{
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.ProjectID">@Model.ProjectName</a>
}
<span>Phase 1 Acceptance Checklist</span>
</nav>
@if (projectNavigation is not null)
{
<partial name="_ProjectSectionNav" model="projectNavigation" />
}
<div class="page-heading">
<div>

View File

@ -1,6 +1,7 @@
@model AnalyticsViewModel
@{
ViewData["Title"] = "Story Health";
ViewData["ProjectSection"] = "Health";
var openThreads = Model.ThreadHealth.Where(x => x.IsOpenStatus).ToList();
var dormantThreads = Model.ThreadHealth.Where(x => x.IsDormant).ToList();
var unresolvedAssets = Model.AssetHealth.Where(x => !x.IsResolved).ToList();
@ -31,22 +32,13 @@
};
}
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Workspace context</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Workspace navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.BookID">Timeline</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.BookID">Warnings</a>
<a asp-controller="Dynamics" asp-action="Story" asp-route-projectId="@Model.Project.ProjectID">Story dynamics</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Story Health</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading compact">
<div>

View File

@ -1,6 +1,7 @@
@model BookDetailViewModel
@{
ViewData["Title"] = Model.Book.BookTitle;
ViewData["ProjectSection"] = "Overview";
}
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
@ -9,21 +10,7 @@
<span>@Model.Book.BookTitle</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Current book</span>
<strong>@Model.Project.ProjectName / @Model.Book.BookTitle</strong>
</div>
<nav class="context-nav" aria-label="Book navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book.BookID">Timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book.BookID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book.BookID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>

View File

@ -1,6 +1,7 @@
@model ChapterDetailViewModel
@{
ViewData["Title"] = Model.Chapter.ChapterTitle;
ViewData["ProjectSection"] = "Overview";
}
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
@ -10,21 +11,7 @@
<span>Chapter @Model.Chapter.ChapterNumber</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Current chapter</span>
<strong>@Model.Book.BookTitle / Chapter @Model.Chapter.ChapterNumber</strong>
</div>
<nav class="context-nav" aria-label="Chapter navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book.BookID">Timeline</a>
<a asp-controller="Writer" asp-action="Chapter" asp-route-id="@Model.Chapter.ChapterID">Chapter workflow</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book.BookID" asp-route-startChapterNumber="@Model.Chapter.ChapterNumber" asp-route-endChapterNumber="@Model.Chapter.ChapterNumber">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book.BookID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>

View File

@ -1,8 +1,18 @@
@model StoryDynamicsViewModel
@{
ViewData["Title"] = "Story Dynamics";
ViewData["ProjectSection"] = "Health";
}
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story Health</a>
<span>Story Dynamics</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>
<p class="eyebrow">Story Dynamics</p>

View File

@ -1,6 +1,7 @@
@model LocationDetailViewModel
@{
ViewData["Title"] = Model.Location.LocationName;
ViewData["ProjectSection"] = "Locations";
var firstScene = Model.Scenes.FirstOrDefault();
}
@ -11,18 +12,7 @@
<span>@Model.Location.LocationName</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Project context</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-ProjectID="@Model.Project.ProjectID" asp-route-SelectedSceneID="@firstScene?.SceneID" asp-route-FocusType="location" asp-route-FocusID="@Model.Location.LocationID">Show scene usage</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="location-page">
<div class="page-heading compact">

View File

@ -1,20 +1,16 @@
@model LocationListViewModel
@{
ViewData["Title"] = "Locations";
ViewData["ProjectSection"] = "Locations";
}
<section class="context-header">
<div class="context-title"><span class="eyebrow">Project context</span><strong>@Model.Project.ProjectName</strong></div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Locations</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="location-page">
<div class="page-heading compact">

View File

@ -1,6 +1,19 @@
@model PlotLineEditViewModel
@{
ViewData["Title"] = Model.PlotLineID == 0 ? "New Plot Line" : "Edit Plot Line";
ViewData["ProjectSection"] = "Threads";
}
@if (Model.Project is not null)
{
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<a asp-action="Index" asp-route-projectId="@Model.ProjectID">Plot lines</a>
<span>@ViewData["Title"]</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
}
<div class="page-heading compact">

View File

@ -1,18 +1,16 @@
@model PlotLineListViewModel
@{
ViewData["Title"] = "Plot Lines";
ViewData["ProjectSection"] = "Threads";
}
<section class="context-header">
<div class="context-title"><span class="eyebrow">Project context</span><strong>@Model.Project.ProjectName</strong></div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Plot lines</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>
@ -20,7 +18,6 @@
<h1>Plot lines <help-icon key="plotLines.index" /></h1>
</div>
<div class="button-row">
<a class="btn btn-outline-primary" asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a class="btn btn-primary" asp-action="Create" asp-route-projectId="@Model.Project.ProjectID">Add plot line</a>
</div>
</div>

View File

@ -1,6 +1,19 @@
@model PlotThreadEditViewModel
@{
ViewData["Title"] = Model.PlotThreadID == 0 ? "New Plot Thread" : "Edit Plot Thread";
ViewData["ProjectSection"] = "Threads";
}
@if (Model.Project is not null)
{
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<a asp-action="Index" asp-route-projectId="@Model.ProjectID">Plot threads</a>
<span>@ViewData["Title"]</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
}
<div class="page-heading compact">

View File

@ -1,20 +1,16 @@
@model PlotThreadListViewModel
@{
ViewData["Title"] = "Plot Threads";
ViewData["ProjectSection"] = "Threads";
}
<section class="context-header">
<div class="context-title"><span class="eyebrow">Project context</span><strong>@Model.Project.ProjectName</strong></div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Plot threads</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>
@ -22,7 +18,6 @@
<h1>Plot threads <help-icon key="plotThreads.index" /></h1>
</div>
<div class="button-row">
<a class="btn btn-outline-primary" asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a class="btn btn-outline-primary" asp-controller="PlotLines" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Plot lines</a>
<a class="btn btn-primary" asp-action="Create" asp-route-projectId="@Model.Project.ProjectID">Add thread</a>
</div>

View File

@ -1,13 +1,17 @@
@model ProjectSceneMetricsViewModel
@{
ViewData["Title"] = "Scene Metrics";
ViewData["ProjectSection"] = "Metrics";
}
<nav class="breadcrumb-trail">
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Scene Metrics</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading compact">
<div>
<p class="eyebrow">Project Settings</p>

View File

@ -9,6 +9,8 @@
<span>@Model.Project.ProjectName</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading pw-page-heading">
<div>
<p class="eyebrow">Project / Series</p>
@ -48,8 +50,6 @@
</div>
</div>
<partial name="_ProjectSectionNav" model="Model.Project" />
@if (TempData["ProjectExportMessage"] is string projectExportMessage)
{
<div class="alert alert-warning">@projectExportMessage</div>

View File

@ -2,6 +2,7 @@
@model RelationshipMapViewModel
@{
ViewData["Title"] = $"Relationship Map - {Model.Project.ProjectName}";
ViewData["ProjectSection"] = "Relationships";
var jsonOptions = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase };
}
@ -11,18 +12,7 @@
<span>Relationship Map</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Project workspace</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a asp-controller="StoryBible" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story Bible</a>
<a class="active" asp-controller="RelationshipMap" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Relationship Map</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>
@ -30,10 +20,6 @@
<h1>Relationship Map <help-icon key="relationshipMap.overview" /></h1>
<p class="lead-text">A read-only network of character relationships as of @Model.StoryPointLabel.</p>
</div>
<div class="button-row">
<a class="btn btn-outline-secondary" asp-controller="StoryBible" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story Bible</a>
<a class="btn btn-outline-secondary" asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
</div>
</div>
<form class="relationship-map-controls plain-card" method="get" asp-action="Index">

View File

@ -1,19 +1,16 @@
@model ScenarioListViewModel
@{
ViewData["Title"] = "Scenarios";
ViewData["ProjectSection"] = "Scenarios";
}
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Scenario Sandbox</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Workspace navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Main timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Scenarios</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>

View File

@ -1,6 +1,7 @@
@model SceneEditViewModel
@{
ViewData["Title"] = Model.SceneID == 0 ? "New Scene" : "Edit Scene";
ViewData["ProjectSection"] = "Overview";
}
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
@ -22,18 +23,7 @@
@if (Model.Project is not null)
{
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Working context</span>
<strong>@Model.Project.ProjectName@if (Model.Book is not null) { <span> / @Model.Book.BookTitle</span> }</strong>
</div>
<nav class="context-nav" aria-label="Scene navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book?.BookID" asp-route-selectedSceneId="@Model.SceneID">Open scene in timeline</a>
<a asp-controller="Chapters" asp-action="Details" asp-route-id="@Model.ChapterID">Back to chapter</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book?.BookID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.Book?.BookID" asp-route-sceneId="@Model.SceneID">Warnings</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
}
<div class="page-heading compact">

View File

@ -1,6 +1,7 @@
@model StoryAssetDetailViewModel
@{
ViewData["Title"] = Model.Asset.AssetName;
ViewData["ProjectSection"] = "Assets";
var firstAssetEvent = Model.Events.FirstOrDefault();
var firstCustodyEvent = Model.CustodyEvents.FirstOrDefault();
var firstSceneId = firstAssetEvent?.SceneID ?? firstCustodyEvent?.SceneID;
@ -13,18 +14,7 @@
<span>@Model.Asset.AssetName</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Project context</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-ProjectID="@Model.Project.ProjectID" asp-route-SelectedSceneID="@firstSceneId" asp-route-FocusType="asset" asp-route-FocusID="@Model.Asset.StoryAssetID">Show on timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>

View File

@ -1,20 +1,16 @@
@model StoryAssetListViewModel
@{
ViewData["Title"] = "Story Assets";
ViewData["ProjectSection"] = "Assets";
}
<section class="context-header">
<div class="context-title"><span class="eyebrow">Project context</span><strong>@Model.Project.ProjectName</strong></div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Story assets</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading">
<div>
@ -22,7 +18,6 @@
<h1>@Model.Project.ProjectName <help-icon key="storyAssets.overview" /></h1>
</div>
<div class="button-row">
<a class="btn btn-outline-secondary" asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a class="btn btn-primary" asp-action="Create" asp-route-projectId="@Model.Project.ProjectID">Add asset</a>
</div>
</div>

View File

@ -1,6 +1,7 @@
@model StoryBibleViewModel
@{
ViewData["Title"] = $"Story Bible - {Model.Project.ProjectName}";
ViewData["ProjectSection"] = "Story Bible";
var timelineByBook = Model.Timeline.GroupBy(x => new { x.BookID, x.BookTitle });
var relationshipsByCharacter = Model.Relationships.GroupBy(x => new { x.CharacterAID, x.CharacterAName });
var revisionByGroup = Model.RevisionItems.GroupBy(x => x.GroupName);
@ -12,23 +13,7 @@
<span>Story Bible</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Project workspace</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Project navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>
<a class="active" asp-controller="StoryBible" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story Bible</a>
<a asp-controller="RelationshipMap" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Relationship Map</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading story-bible-heading">
<div>

View File

@ -2,6 +2,7 @@
@{
ViewData["Title"] = "Timeline";
ViewData["ShellClass"] = "plotline-shell-wide";
ViewData["ProjectSection"] = "Timeline";
var selectedBook = Model.Books.FirstOrDefault(x => x.Book.BookID == Model.SelectedBookID)?.Book;
var hasActiveFilter = Model.MatchingSceneIDs.Count != Model.OrderedScenes.Count || !string.IsNullOrWhiteSpace(Model.FocusLabel);
var warningScenes = Model.OrderedScenes.Where(x => x.WarningCount > 0).ToList();
@ -108,25 +109,17 @@
};
}
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Workspace context</span>
<strong>@Model.Project.ProjectName@if (selectedBook is not null) { <span> / @selectedBook.BookTitle</span> }</strong>
</div>
<nav class="context-nav" aria-label="Workspace navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.SelectedBookID">Timeline</a>
<a asp-controller="Timeline" asp-action="Settings" asp-route-projectId="@Model.Project.ProjectID">Timeline Settings</a>
<a asp-controller="Scenarios" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Scenarios</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.SelectedBookID">Story health</a>
<a asp-controller="Warnings" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.SelectedBookID">Warnings</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
<a asp-controller="Archives" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Archived Items</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
@if (selectedBook is not null)
{
<span>@selectedBook.BookTitle</span>
}
<span>Timeline</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="workspace-heading">
<div>

View File

@ -1,6 +1,8 @@
@model TimelineSettingsViewModel
@{
ViewData["Title"] = "Timeline Settings";
ViewData["ProjectSection"] = "Timeline";
var projectNavigation = new Project { ProjectID = Model.ProjectID, ProjectName = Model.ProjectName };
}
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
@ -10,17 +12,7 @@
<span>Timeline Settings</span>
</nav>
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Display configuration</span>
<strong>@Model.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Timeline settings navigation">
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.ProjectID">Open timeline</a>
<a asp-controller="ProjectMetrics" asp-action="Index" asp-route-projectId="@Model.ProjectID">Scene Metrics</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.ProjectID">Project</a>
</nav>
</section>
<partial name="_ProjectSectionNav" model="projectNavigation" />
<div class="page-heading compact">
<div>

View File

@ -1,23 +1,16 @@
@model WarningDashboardViewModel
@{
ViewData["Title"] = "Continuity Warnings";
ViewData["ProjectSection"] = "Warnings";
}
<section class="context-header">
<div class="context-title">
<span class="eyebrow">Workspace context</span>
<strong>@Model.Project.ProjectName</strong>
</div>
<nav class="context-nav" aria-label="Workspace navigation">
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">Project</a>
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.BookID">Timeline</a>
<a asp-controller="Analytics" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-bookId="@Model.BookID">Story health</a>
<a asp-controller="Characters" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Characters</a>
<a asp-controller="StoryAssets" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Assets</a>
<a asp-controller="Locations" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Locations</a>
<a asp-controller="PlotThreads" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Threads</a>
</nav>
</section>
<nav class="breadcrumb-trail" aria-label="Breadcrumb">
<a asp-controller="Projects" asp-action="Index">Projects</a>
<a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a>
<span>Warnings</span>
</nav>
<partial name="_ProjectSectionNav" model="Model.Project" />
<div class="page-heading compact">
<div>