@model FeatureRequestIndexViewModel @using Microsoft.AspNetCore.Html @using System.Text.Encodings.Web @{ ViewData["Title"] = "Feature Requests"; }

Feedback

Feature Requests

Send suggestions and keep track of your conversations with the PlotDirector team.

View Roadmap Submit Feature Request
@if (TempData["FeatureRequestMessage"] is string featureRequestMessage) {
@featureRequestMessage
} @if (!Model.Requests.Any()) {

No suggestions yet

No suggestions yet. If something keeps getting in your way, or you have an idea that would make PlotDirector better, send it in.

Submit Feature Request
} else {
@foreach (var request in Model.Requests) { }
Title Status Latest Activity Conversation App Area Importance
@if (request.UserNeedsAttention) { New } @request.Title @StatusBadge(request.Status) @FormatNullableDate(request.LatestActivityUtc) @ConversationBadge(request.ConversationState) @(request.AppArea ?? "Not set") @(request.Importance ?? "Not set") Open
} @functions { private static string FormatDate(DateTime value) => value.ToLocalTime().ToString("yyyy-MM-dd"); private static string FormatNullableDate(DateTime? value) => value.HasValue ? FormatDate(value.Value) : "None yet"; private static IHtmlContent StatusBadge(string status) { var css = status switch { FeatureRequestStatuses.New => "text-bg-primary", FeatureRequestStatuses.NeedsDetail => "text-bg-warning", FeatureRequestStatuses.UnderReview => "text-bg-info", FeatureRequestStatuses.Candidate => "text-bg-secondary", FeatureRequestStatuses.Planned => "text-bg-success", FeatureRequestStatuses.InProgress => "text-bg-success", FeatureRequestStatuses.Shipped => "text-bg-dark", FeatureRequestStatuses.NotPlanned => "text-bg-light", _ => "text-bg-secondary" }; return new HtmlString($"{HtmlEncoder.Default.Encode(status)}"); } private static IHtmlContent ConversationBadge(string state) { var css = state switch { FeatureRequestConversationStates.WaitingForAdminReply => "text-bg-info", FeatureRequestConversationStates.WaitingForUserReply => "text-bg-warning", _ => "text-bg-secondary" }; return new HtmlString($"{HtmlEncoder.Default.Encode(state)}"); } }