diff --git a/src/dotnet/APIView/APIViewWeb/Client/css/site.scss b/src/dotnet/APIView/APIViewWeb/Client/css/site.scss index 4e1af355d03..dbeaa1f1bb8 100644 --- a/src/dotnet/APIView/APIViewWeb/Client/css/site.scss +++ b/src/dotnet/APIView/APIViewWeb/Client/css/site.scss @@ -507,6 +507,64 @@ code { height: 16px; z-index: 1; } + +.icon-language { + width: 34px; + height: 34px; +} + +.icon-csharp { + background: url(/icons/csharp-original.svg) center center no-repeat; +} + +.icon-javascript { + background: url(/icons/javascript-original.svg) center center no-repeat; +} + +.icon-python { + background: url(/icons/python-original.svg) center center no-repeat; +} + +.icon-c { + background: url(/icons/c-original.svg) center center no-repeat; +} + +.icon-cplusplus { + background: url(/icons/cplusplus-original.svg) center center no-repeat; +} + +.icon-go { + background: url(/icons/go-original.svg) center center no-repeat; +} + +.icon-java { + background: url(/icons/java-original.svg) center center no-repeat; +} + +.icon-java-spring { + background: url(/icons/java-spring-original.svg) center center no-repeat; +} + +.icon-java-android { + background: url(/icons/java-android-original.svg) center center no-repeat; +} + +.icon-swift { + background: url(/icons/swift-original.svg) center center no-repeat; +} + +.icon-kotlin { + background: url(/icons/kotlin-original.svg) center center no-repeat; +} + +.icon-json { + background: url(/icons/json-original.svg) center center no-repeat; +} + +.icon-swagger { + background: url(/icons/swagger-original.svg) center center no-repeat; +} + /*---------------------------------------------------------------------*/ .info-text { diff --git a/src/dotnet/APIView/APIViewWeb/Models/ReviewModel.cs b/src/dotnet/APIView/APIViewWeb/Models/ReviewModel.cs index e3b7149930a..4a094aa86a8 100644 --- a/src/dotnet/APIView/APIViewWeb/Models/ReviewModel.cs +++ b/src/dotnet/APIView/APIViewWeb/Models/ReviewModel.cs @@ -59,6 +59,20 @@ public bool IsUserSubscribed(ClaimsPrincipal user) public string GetUserEmail(ClaimsPrincipal user) => NotificationManager.GetUserEmail(user); + // gets CSS safe language name - such that css classes based on language name would not need any escaped characters + public string GetLanguageCssSafeName() + { + switch (Language.ToLower()) + { + case "c#": + return "csharp"; + case "c++": + return "cplusplus"; + default: + return Language.ToLower(); + } + } + [JsonIgnore] public string DisplayName { diff --git a/src/dotnet/APIView/APIViewWeb/Pages/Assemblies/Review.cshtml b/src/dotnet/APIView/APIViewWeb/Pages/Assemblies/Review.cshtml index dd87ce95789..9164bd6040c 100644 --- a/src/dotnet/APIView/APIViewWeb/Pages/Assemblies/Review.cshtml +++ b/src/dotnet/APIView/APIViewWeb/Pages/Assemblies/Review.cshtml @@ -10,69 +10,12 @@
@if (Model.Review.Language != null) { - var imageSource = String.Empty; - @switch (Model.Review.Language.ToLower()) + string iconClassName = "icon-" + Model.Review.GetLanguageCssSafeName(); + @if (!string.IsNullOrEmpty(Model.Review.LanguageVariant) && Model.Review.LanguageVariant.ToLower() != "default") { - case "c#": - imageSource = "icons/csharp-original.svg"; - break; - case "javascript": - imageSource = "icons/javascript-original.svg"; - break; - case "python": - imageSource = "icons/python-original.svg"; - break; - case "c": - imageSource = "icons/c-original.svg"; - break; - case "c++": - imageSource = "icons/cplusplus-original.svg"; - break; - case "go": - imageSource = "icons/go-original.svg"; - break; - case "java": - if(@Model.Review.LanguageVariant != null) - { - switch(@Model.Review.LanguageVariant.ToLower()) - { - case "spring": - imageSource = "icons/java-spring-original.svg"; - break; - case "android": - imageSource = "icons/java-android-original.svg"; - break; - default: - imageSource = "icons/java-original.svg"; - break; - } - } - else - { - imageSource = "icons/java-original.svg"; - } - break; - case "swift": - imageSource = "icons/swift-original.svg"; - break; - case "kotlin": - imageSource = "icons/kotlin-original.svg"; - break; - case "json": - imageSource = "icons/json-original.svg"; - break; - case "swagger": - imageSource = "icons/swagger-original.svg"; - break; - } - if (String.IsNullOrEmpty(imageSource)) - { - @Model.Review.Language @Model.Review.LanguageVariant + iconClassName += "-" + @Model.Review.LanguageVariant.ToLower(); } - else - { - @Model.Review.Language @Model.Review.LanguageVariant - } + }

@if (Model.Review.ServiceName != null) diff --git a/src/dotnet/APIView/APIViewWeb/Pages/Shared/_ReviewsPartial.cshtml b/src/dotnet/APIView/APIViewWeb/Pages/Shared/_ReviewsPartial.cshtml index 71fc2aa5ed7..4cba9ea9bb1 100644 --- a/src/dotnet/APIView/APIViewWeb/Pages/Shared/_ReviewsPartial.cshtml +++ b/src/dotnet/APIView/APIViewWeb/Pages/Shared/_ReviewsPartial.cshtml @@ -25,63 +25,12 @@ @if (review.Language != null) { - @switch (review.Language.ToLower()) + string iconClassName = "icon-" + review.GetLanguageCssSafeName(); + @if (!string.IsNullOrEmpty(review.LanguageVariant) && review.LanguageVariant.ToLower() != "default") { - case "c#": - @review.Language - break; - case "javascript": - @review.Language - break; - case "python": - @review.Language - break; - case "c": - @review.Language - break; - case "c++": - @review.Language - break; - case "go": - @review.Language - break; - case "java": - if(@review.LanguageVariant != null) - { - switch(@review.LanguageVariant.ToLower()) - { - case "spring": - @review.Language @review.LanguageVariant - break; - case "android": - @review.Language @review.LanguageVariant - break; - default: - @review.Language - break; - } - } - else - { - @review.Language - } - break; - case "swift": - @review.Language - break; - case "kotlin": - @review.Language - break; - case "json": - @review.Language - break; - case "swagger": - @review.Language - break; - default: - @review.Language - break; + iconClassName += "-" + @review.LanguageVariant.ToLower(); } + } @review.DisplayName.Substring(0, @truncationIndex) @if (review.IsApproved == true)