diff --git a/PlotLine/Views/Onboarding/BuildComplete.cshtml b/PlotLine/Views/Onboarding/BuildComplete.cshtml index 245588d..73b5e21 100644 --- a/PlotLine/Views/Onboarding/BuildComplete.cshtml +++ b/PlotLine/Views/Onboarding/BuildComplete.cshtml @@ -5,10 +5,22 @@
+
    + @foreach (var label in new[] { "Welcome", "Writing Preferences", "Project", "Book", "Connect Word", "Scan", "Review", "Build Project", "Complete" }) + { +
  1. + + @label +
  2. + } +

Build Project

-

Your project structure has been created.

-

@(Model.AlreadyBuilt ? "This manuscript has already been built into PlotDirector." : "PlotDirector has created the approved chapters, scenes and characters.")

+
+ +

Your project structure has been created.

+
+

@(Model.AlreadyBuilt ? "This manuscript has already been built into PlotDirector, so nothing was duplicated." : "PlotDirector created the approved chapters, scenes, characters and scene appearances.")

@if (!string.IsNullOrWhiteSpace(Model.MarkerWarning)) {

@Model.MarkerWarning

@@ -34,6 +46,11 @@
+
+

Ready for your next pass

+

Your project now has a working story map. Open the overview to inspect the structure, or head straight into the writer workspace to keep drafting.

+
+
Open Project Overview Open Writer Workspace diff --git a/PlotLine/Views/Onboarding/Index.cshtml b/PlotLine/Views/Onboarding/Index.cshtml index 57f84bb..3c390f7 100644 --- a/PlotLine/Views/Onboarding/Index.cshtml +++ b/PlotLine/Views/Onboarding/Index.cshtml @@ -2,6 +2,19 @@ @using PlotLine.Models @{ ViewData["Title"] = "Set up PlotDirector"; + var currentJourneyOrder = CurrentJourneyOrder(Model); + var journeySteps = new[] + { + new { Label = "Welcome", Order = 1 }, + new { Label = "Writing Preferences", Order = 2 }, + new { Label = "Project", Order = 3 }, + new { Label = "Book", Order = 4 }, + new { Label = "Connect Word", Order = 5 }, + new { Label = "Scan", Order = 6 }, + new { Label = "Review", Order = 7 }, + new { Label = "Build Project", Order = 8 }, + new { Label = "Complete", Order = 9 } + }; }
@@ -12,6 +25,15 @@
+
    + @foreach (var step in journeySteps) + { +
  1. + @step.Order + @step.Label +
  2. + } +
@if (Model.CurrentStep == OnboardingSteps.Welcome) { @@ -237,7 +259,7 @@ @if (Model.IsMicrosoftWordPath) {

Connect your Word Companion

-

Open Microsoft Word, open your manuscript, start the PlotDirector Word Companion, and sign in using your PlotDirector account.

+

Open Microsoft Word, open your manuscript, start the PlotDirector Word Companion, and sign in using your PlotDirector account. PlotDirector will stay on this page with you while the scan and build run.

} else { @@ -315,14 +337,22 @@ @if (string.Equals(Model.ScanState.ReviewStatus, ManuscriptScanReviewStatuses.ReadyToImport, StringComparison.Ordinal)) { -

Next: build project structure.

+
+
+

Review saved. PlotDirector can now create the approved structure.

+

Ready to build chapters, scenes, characters and scene appearances.

+
+ + +
-

}
@@ -437,4 +467,33 @@ private static string ScanPercent(ManuscriptScanStateViewModel scan) => scan.PercentComplete.HasValue ? $"{scan.PercentComplete.Value}%" : string.Empty; + + private static int CurrentJourneyOrder(OnboardingWizardViewModel model) + { + return model.CurrentStep switch + { + OnboardingSteps.Welcome => 1, + OnboardingSteps.WritingJourney or OnboardingSteps.WritingSoftware => 2, + OnboardingSteps.Project => 3, + OnboardingSteps.Book => 4, + OnboardingSteps.NextPathPreview when !model.IsMicrosoftWordPath => 9, + OnboardingSteps.NextPathPreview when string.Equals(model.ScanState.ReviewStatus, ManuscriptScanReviewStatuses.ReadyToImport, StringComparison.Ordinal) => 8, + OnboardingSteps.NextPathPreview when model.ScanState.IsComplete => 7, + OnboardingSteps.NextPathPreview when model.ScanState.IsRunning || model.ScanState.IsFailed || model.ScanState.PercentComplete.HasValue => 6, + OnboardingSteps.NextPathPreview when model.CompanionPresence.IsConnected => 6, + OnboardingSteps.NextPathPreview => 5, + OnboardingSteps.Complete => 9, + _ => 1 + }; + } + + private static string JourneyStepClass(int order, int currentOrder) + { + if (order < currentOrder) + { + return "is-complete"; + } + + return order == currentOrder ? "is-current" : "is-upcoming"; + } } diff --git a/PlotLine/Views/Onboarding/ScanReview.cshtml b/PlotLine/Views/Onboarding/ScanReview.cshtml index c295598..f128c17 100644 --- a/PlotLine/Views/Onboarding/ScanReview.cshtml +++ b/PlotLine/Views/Onboarding/ScanReview.cshtml @@ -23,8 +23,8 @@

@Model.SelectedBookTitle

Review manuscript scan

-

Nothing has been added to your project yet. Review the detected structure, then continue when you're happy.

-

You can tidy this up now, or import the structure and refine it later.

+

Nothing has been added to your project yet. Choose the chapters, scenes and character candidates that should become your first PlotDirector structure.

+

You can keep this light now and refine everything later inside the project.

@if (TempData["OnboardingReviewMessage"] is string reviewMessage) @@ -145,11 +145,16 @@

Character candidates

@if (!probableCharacters.Any() && !possibleCharacters.Any() && !relationshipTitles.Any()) { -

No repeated character names were found yet.

+

No repeated character names were found yet. You can still build the project structure and add characters later.

} else { var characterIndex = 0; + +
@foreach (var group in new[] { @@ -168,7 +173,7 @@