87 lines
5.0 KiB
Plaintext
87 lines
5.0 KiB
Plaintext
@model StoryAssetListViewModel
|
|
@{
|
|
ViewData["Title"] = "Story 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>
|
|
|
|
<div class="page-heading">
|
|
<div>
|
|
<p class="eyebrow">Story assets</p>
|
|
<h1>@Model.Project.ProjectName</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>
|
|
|
|
<section class="drag-drop-panel d-none" data-drag-drop-panel>
|
|
<div class="drag-drop-panel-header">
|
|
<div>
|
|
<p class="eyebrow" data-drag-panel-kicker>Asset dependency</p>
|
|
<h2 data-drag-panel-title>Create asset dependency</h2>
|
|
</div>
|
|
<button type="button" class="btn btn-outline-secondary btn-sm" data-drag-cancel>Cancel</button>
|
|
</div>
|
|
<p class="muted" data-drag-panel-summary></p>
|
|
<form asp-controller="StoryAssets" asp-action="DropDependency" method="post" class="drag-drop-form" data-drag-form="asset-dependency">
|
|
<input type="hidden" name="ProjectID" value="@Model.Project.ProjectID" />
|
|
<input type="hidden" name="SourceAssetID" />
|
|
<input type="hidden" name="TargetAssetID" />
|
|
<div class="row g-2">
|
|
<div class="col-12"><label class="form-label">Dependency type</label><select class="form-select form-select-sm" name="AssetDependencyTypeID" asp-items="Model.AssetDependencyTypeOptions"></select></div>
|
|
<div class="col-6"><label class="form-label">Source required state</label><select class="form-select form-select-sm" name="SourceRequiredStateID" asp-items="Model.AssetStateOptions"><option value="">Optional</option></select></div>
|
|
<div class="col-6"><label class="form-label">Target blocked state</label><select class="form-select form-select-sm" name="TargetBlockedStateID" asp-items="Model.AssetStateOptions"><option value="">Optional</option></select></div>
|
|
<div class="col-12"><label class="form-label">Notes</label><textarea class="form-control form-control-sm" name="Description" rows="2"></textarea></div>
|
|
</div>
|
|
<p class="plain-preview" data-asset-dependency-preview></p>
|
|
<div class="button-row mt-2">
|
|
<button class="btn btn-primary btn-sm" type="submit">Save Dependency</button>
|
|
<button class="btn btn-outline-secondary btn-sm" type="button" data-drag-cancel>Cancel</button>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
|
|
<section class="list-section">
|
|
@if (!Model.Assets.Any())
|
|
{
|
|
<p class="muted">No story assets yet. Add an object, clue, secret or other story item to track it across scenes.</p>
|
|
}
|
|
else
|
|
{
|
|
<div class="asset-card-grid">
|
|
@foreach (var asset in Model.Assets)
|
|
{
|
|
<article class="asset-card" draggable="true" data-drag-type="asset" data-drag-id="@asset.StoryAssetID" data-drag-label="@asset.AssetName" data-asset-drop-target="true" data-asset-id="@asset.StoryAssetID" data-asset-label="@asset.AssetName">
|
|
<div>
|
|
<p class="eyebrow">@asset.KindName</p>
|
|
<h2><a asp-action="Details" asp-route-id="@asset.StoryAssetID">@asset.AssetName</a></h2>
|
|
<p class="muted">@asset.Description</p>
|
|
</div>
|
|
<div class="asset-card-footer">
|
|
<span class="status-pill">Importance @asset.Importance</span>
|
|
<span class="purpose-chip">@(asset.CurrentStateName ?? "No state")</span>
|
|
@if (asset.IsResolved)
|
|
{
|
|
<span class="purpose-chip">Resolved</span>
|
|
}
|
|
<a class="btn btn-outline-secondary btn-sm ms-auto" asp-action="Edit" asp-route-id="@asset.StoryAssetID">Edit</a>
|
|
</div>
|
|
</article>
|
|
}
|
|
</div>
|
|
}
|
|
</section>
|