Phase 12D: Continuity Explorer Scene Navigation Integration.
This commit is contained in:
parent
c7e02870cf
commit
9cc20ea266
@ -2638,6 +2638,7 @@ public sealed class StoryStateService(
|
||||
LocationID = latest.LocationID,
|
||||
CurrentLocation = latest.LocationPath ?? latest.LocationName ?? "Unknown",
|
||||
State = latest.SceneID == currentSceneId ? "Explicit" : "Inferred",
|
||||
LastConfirmedSceneID = latest.SceneID,
|
||||
LastConfirmed = SceneLabel(latest.SceneNumber, latest.SceneTitle)
|
||||
};
|
||||
})
|
||||
@ -2684,6 +2685,7 @@ public sealed class StoryStateService(
|
||||
LocationID = latest.LocationID,
|
||||
CurrentHolderOrLocation = latest.Label,
|
||||
State = latest.SceneID == currentSceneId ? "Explicit" : "Inferred",
|
||||
LastConfirmedSceneID = latest.SceneID,
|
||||
LastConfirmed = scenesById.TryGetValue(latest.SceneID, out var scene)
|
||||
? SceneLabel(scene.SceneNumber, scene.SceneTitle)
|
||||
: "Unknown"
|
||||
|
||||
@ -251,6 +251,7 @@ public sealed class CharacterStoryStateViewModel
|
||||
public int? LocationID { get; set; }
|
||||
public string CurrentLocation { get; set; } = "Unknown";
|
||||
public string State { get; set; } = "Unknown";
|
||||
public int? LastConfirmedSceneID { get; set; }
|
||||
public string LastConfirmed { get; set; } = "Never";
|
||||
}
|
||||
|
||||
@ -261,6 +262,7 @@ public sealed class AssetStoryStateViewModel
|
||||
public int? LocationID { get; set; }
|
||||
public string CurrentHolderOrLocation { get; set; } = "Unknown";
|
||||
public string State { get; set; } = "Unknown";
|
||||
public int? LastConfirmedSceneID { get; set; }
|
||||
public string LastConfirmed { get; set; } = "Never";
|
||||
}
|
||||
|
||||
|
||||
@ -181,7 +181,21 @@
|
||||
<tbody>
|
||||
@foreach (var row in Model.StoryState.Characters)
|
||||
{
|
||||
<tr><td>@row.CharacterName</td><td>@row.CurrentLocation</td><td><span class="badge @StateBadgeClass(row.State)">@row.State</span></td><td>@row.LastConfirmed</td></tr>
|
||||
<tr>
|
||||
<td>@row.CharacterName</td>
|
||||
<td>@row.CurrentLocation</td>
|
||||
<td><span class="badge @StateBadgeClass(row.State)">@row.State</span></td>
|
||||
<td>
|
||||
@if (row.LastConfirmedSceneID.HasValue)
|
||||
{
|
||||
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@row.LastConfirmedSceneID">@row.LastConfirmed</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
@row.LastConfirmed
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
@ -197,7 +211,21 @@
|
||||
<tbody>
|
||||
@foreach (var row in Model.StoryState.Assets)
|
||||
{
|
||||
<tr><td>@row.AssetName</td><td>@row.CurrentHolderOrLocation</td><td><span class="badge @StateBadgeClass(row.State)">@row.State</span></td><td>@row.LastConfirmed</td></tr>
|
||||
<tr>
|
||||
<td>@row.AssetName</td>
|
||||
<td>@row.CurrentHolderOrLocation</td>
|
||||
<td><span class="badge @StateBadgeClass(row.State)">@row.State</span></td>
|
||||
<td>
|
||||
@if (row.LastConfirmedSceneID.HasValue)
|
||||
{
|
||||
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@row.LastConfirmedSceneID">@row.LastConfirmed</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
@row.LastConfirmed
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
@ -271,7 +299,7 @@ else if (Model.Filter.DisplayMode == "Journey")
|
||||
{
|
||||
<td>@row.ChapterDisplayName</td>
|
||||
}
|
||||
<td>@row.SceneDisplayName</td>
|
||||
<td><a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@row.SceneID">@row.SceneDisplayName</a></td>
|
||||
<td>@row.Location</td>
|
||||
</tr>
|
||||
}
|
||||
@ -311,7 +339,7 @@ else if (Model.Filter.DisplayMode == "Journey")
|
||||
{
|
||||
<td>@row.ChapterDisplayName</td>
|
||||
}
|
||||
<td>@row.SceneDisplayName</td>
|
||||
<td><a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@row.SceneID">@row.SceneDisplayName</a></td>
|
||||
<td>@row.HolderOrLocation</td>
|
||||
</tr>
|
||||
}
|
||||
@ -363,7 +391,7 @@ else
|
||||
{
|
||||
<td>@row.ChapterDisplayName</td>
|
||||
}
|
||||
<td>@row.SceneDisplayName</td>
|
||||
<td><a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@row.SceneID">@row.SceneDisplayName</a></td>
|
||||
<td>
|
||||
@if (!row.Characters.Any())
|
||||
{
|
||||
@ -379,7 +407,17 @@ else
|
||||
<span class="badge @StateBadgeClass(character.StateType)">@character.StateType</span>
|
||||
@if (!string.IsNullOrWhiteSpace(character.LastConfirmedSceneDisplayName))
|
||||
{
|
||||
<small class="text-muted d-block">Last confirmed: @character.LastConfirmedSceneDisplayName</small>
|
||||
<small class="text-muted d-block">
|
||||
Last confirmed:
|
||||
@if (character.LastConfirmedSceneID.HasValue)
|
||||
{
|
||||
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@character.LastConfirmedSceneID">@character.LastConfirmedSceneDisplayName</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
@character.LastConfirmedSceneDisplayName
|
||||
}
|
||||
</small>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
@ -405,7 +443,17 @@ else
|
||||
}
|
||||
@if (!string.IsNullOrWhiteSpace(asset.LastConfirmedSceneDisplayName))
|
||||
{
|
||||
<small class="text-muted d-block">Last confirmed: @asset.LastConfirmedSceneDisplayName</small>
|
||||
<small class="text-muted d-block">
|
||||
Last confirmed:
|
||||
@if (asset.LastConfirmedSceneID.HasValue)
|
||||
{
|
||||
<a asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID" asp-route-selectedSceneId="@asset.LastConfirmedSceneID">@asset.LastConfirmedSceneDisplayName</a>
|
||||
}
|
||||
else
|
||||
{
|
||||
@asset.LastConfirmedSceneDisplayName
|
||||
}
|
||||
</small>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user