diff --git a/GanjooRazor/Areas/Admin/Pages/ReviewPersonRelationEdits.cshtml b/GanjooRazor/Areas/Admin/Pages/ReviewPersonRelationEdits.cshtml index 14e8b861..95bca967 100644 --- a/GanjooRazor/Areas/Admin/Pages/ReviewPersonRelationEdits.cshtml +++ b/GanjooRazor/Areas/Admin/Pages/ReviewPersonRelationEdits.cshtml @@ -34,6 +34,9 @@ case PersonAffiliationType.Successor: return "جانشین"; case PersonAffiliationType.Panegyrized: return "مدحگو"; case PersonAffiliationType.Satirized: return "هجوگو"; + case PersonAffiliationType.MilitaryCommander: return "سردار"; + case PersonAffiliationType.Champion: return "پهلوان"; + case PersonAffiliationType.Contemporary: return "همعصر"; case PersonAffiliationType.Other: return "نوع دیگر"; default: return t.ToString(); } diff --git a/GanjooRazor/Areas/User/Pages/Editor.cshtml b/GanjooRazor/Areas/User/Pages/Editor.cshtml index 979102b9..6507cb9f 100644 --- a/GanjooRazor/Areas/User/Pages/Editor.cshtml +++ b/GanjooRazor/Areas/User/Pages/Editor.cshtml @@ -264,6 +264,9 @@ '' + '' + '' + + '' + + '' + + '' + '' + '' + '' + @@ -378,6 +381,9 @@ Ally: function (p1, p2) { return p1 + ' و ' + p2 + ' متحد هم هستند.'; }, Rival: function (p1, p2) { return p1 + ' و ' + p2 + ' رقیب هم هستند.'; }, Companion: function (p1, p2) { return p1 + ' و ' + p2 + ' همراه هم هستند.'; }, + MilitaryCommander: function (p1, p2) { return p1 + ' سردار ' + p2 + ' است.'; }, + Champion: function (p1, p2) { return p1 + ' پهلوان ' + p2 + ' است.'; }, + Contemporary: function (p1, p2) { return p1 + ' و ' + p2 + ' همعصر هم هستند.'; }, Other: function (p1, p2) { return p1 + ' با ' + p2 + ' نسبتی دارد (طبق یادداشت).'; } } }; diff --git a/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml b/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml index 98f5e0d7..47126cf7 100644 --- a/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml +++ b/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml @@ -98,9 +98,14 @@ else + + + + + diff --git a/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml.cs b/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml.cs index 03a6d51e..6e9b0dcd 100644 --- a/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml.cs +++ b/GanjooRazor/Areas/User/Pages/SuggestNewPersonRelation.cshtml.cs @@ -147,10 +147,10 @@ namespace GanjooRazor.Areas.User.Pages // OtherIsPerson1/SubjectIsPerson1 pairs translate the direction-aware choice into the // symmetric Person1Id/Person2Id pair, following the direction each PersonAffiliationType - // value's own doc comment defines (Minister/Advisor/Courtier/Servant: Person1 is the - // subordinate one; Patron/Successor: Person1 is the patron/later one; Panegyrized/ - // Satirized: Person1 is the poet; Ally/Rival/Companion/Other: symmetric, direction - // doesn't matter) + // value's own doc comment defines (Minister/Advisor/Courtier/Servant/MilitaryCommander/ + // Champion: Person1 is the subordinate one; Patron/Successor: Person1 is the + // patron/later one; Panegyrized/Satirized: Person1 is the poet; Ally/Rival/Companion/ + // Contemporary/Other: symmetric, direction doesn't matter) switch (AffiliationKind) { case "Minister_Other": // the other person served as minister to this one @@ -233,6 +233,26 @@ namespace GanjooRazor.Areas.User.Pages suggestion.Person2Id = OtherPersonId; suggestion.SuggestedAffiliationType = PersonAffiliationType.Satirized; break; + case "MilitaryCommander_Other": // the other person served as military commander (سردار) to this one + suggestion.Person1Id = OtherPersonId; + suggestion.Person2Id = personId; + suggestion.SuggestedAffiliationType = PersonAffiliationType.MilitaryCommander; + break; + case "MilitaryCommander_Subject": // this person served as military commander (سردار) to the other one + suggestion.Person1Id = personId; + suggestion.Person2Id = OtherPersonId; + suggestion.SuggestedAffiliationType = PersonAffiliationType.MilitaryCommander; + break; + case "Champion_Other": // the other person was champion/warrior (پهلوان) to this one + suggestion.Person1Id = OtherPersonId; + suggestion.Person2Id = personId; + suggestion.SuggestedAffiliationType = PersonAffiliationType.Champion; + break; + case "Champion_Subject": // this person was champion/warrior (پهلوان) to the other one + suggestion.Person1Id = personId; + suggestion.Person2Id = OtherPersonId; + suggestion.SuggestedAffiliationType = PersonAffiliationType.Champion; + break; case "Ally": suggestion.Person1Id = personId; suggestion.Person2Id = OtherPersonId; @@ -248,6 +268,11 @@ namespace GanjooRazor.Areas.User.Pages suggestion.Person2Id = OtherPersonId; suggestion.SuggestedAffiliationType = PersonAffiliationType.Companion; break; + case "Contemporary": // symmetric - no other relationship implied, just overlapping lifetimes + suggestion.Person1Id = personId; + suggestion.Person2Id = OtherPersonId; + suggestion.SuggestedAffiliationType = PersonAffiliationType.Contemporary; + break; case "Other": suggestion.Person1Id = personId; suggestion.Person2Id = OtherPersonId; diff --git a/GanjooRazor/Areas/User/Pages/SuggestPersonRelationEdit.cshtml b/GanjooRazor/Areas/User/Pages/SuggestPersonRelationEdit.cshtml index 51ac629c..0799d6f1 100644 --- a/GanjooRazor/Areas/User/Pages/SuggestPersonRelationEdit.cshtml +++ b/GanjooRazor/Areas/User/Pages/SuggestPersonRelationEdit.cshtml @@ -66,9 +66,12 @@ else + + +
جهت وابستگی (کدام طرف زیردست/حامی/... است) قابل تغییر نیست؛ در صورت اشتباه بودن جهت، این وابستگی را حذف و یکی تازه پیشنهاد کنید.
diff --git a/GanjooRazor/Pages/PersonWindow.cshtml.cs b/GanjooRazor/Pages/PersonWindow.cshtml.cs index e4cbb8db..271a43a6 100644 --- a/GanjooRazor/Pages/PersonWindow.cshtml.cs +++ b/GanjooRazor/Pages/PersonWindow.cshtml.cs @@ -115,12 +115,16 @@ namespace GanjooRazor.Pages { PersonAffiliationType.Successor, "جانشینِ" }, { PersonAffiliationType.Panegyrized, "مدحگویِ" }, { PersonAffiliationType.Satirized, "هجوگویِ" }, + { PersonAffiliationType.MilitaryCommander, "سردارِ" }, + { PersonAffiliationType.Champion, "پهلوانِ" }, + { PersonAffiliationType.Contemporary, "همعصرِ" }, { PersonAffiliationType.Other, "دارای نسبتی (به یادداشت نگاه کنید) با" }, }; private static bool IsSymmetricAffiliation(PersonAffiliationType t) => t == PersonAffiliationType.Ally || t == PersonAffiliationType.Rival || - t == PersonAffiliationType.Companion || t == PersonAffiliationType.Other; + t == PersonAffiliationType.Companion || t == PersonAffiliationType.Contemporary || + t == PersonAffiliationType.Other; public async Task