Skip to content

Commit 8ff5267

Browse files
authored
Modify warning message on display package page when missing readme (#9365)
* modify warning message on display package page when missing readme
1 parent 0927359 commit 8ff5267

11 files changed

Lines changed: 54 additions & 3 deletions

File tree

src/AccountDeleter/EmptyFeatureFlagService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,11 @@ public bool IsDisplayUploadWarningV2Enabled(User user)
301301
throw new NotImplementedException();
302302
}
303303

304+
public bool IsDisplayPackageReadmeWarningEnabled(User user)
305+
{
306+
throw new NotImplementedException();
307+
}
308+
304309
public bool IsFrameworkFilteringEnabled(User user) {
305310
throw new NotImplementedException();
306311
}

src/Bootstrap/dist/css/bootstrap-theme.css

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Bootstrap/less/theme/page-display-package.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,10 @@
423423
margin-bottom: -1px;
424424
}
425425

426+
.nav-tabs > li.active > a.body-warning-tab > {
427+
background-color: #fff4ce;
428+
}
429+
426430
.nav-tabs > li > a {
427431
border-left: 0px;
428432
border-right: 0px;

src/GitHubVulnerabilities2Db/Fakes/FakeFeatureFlagService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,11 @@ public bool IsDisplayUploadWarningV2Enabled(User user)
135135
throw new NotImplementedException();
136136
}
137137

138+
public bool IsDisplayPackageReadmeWarningEnabled(User user)
139+
{
140+
throw new NotImplementedException();
141+
}
142+
138143
public bool IsODataDatabaseReadOnlyEnabled()
139144
{
140145
throw new NotImplementedException();

src/NuGetGallery.Services/Configuration/FeatureFlagService.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public class FeatureFlagService : IFeatureFlagService
4848
private const string MarkdigMdRenderingFlightName = GalleryPrefix + "MarkdigMdRendering";
4949
private const string MarkdigMdSyntaxHighlightFlightName = GalleryPrefix + "MarkdigMdSyntaxHighlight";
5050
private const string DisplayUploadWarningV2FlightName = GalleryPrefix + "DisplayUploadWarningV2";
51+
private const string DisplayPackageReadmeWarningFlightName = GalleryPrefix + "DisplayPackageReadmeWarning";
5152
private const string DeletePackageApiFlightName = GalleryPrefix + "DeletePackageApi";
5253
private const string ImageAllowlistFlightName = GalleryPrefix + "ImageAllowlist";
5354
private const string DisplayBannerFlightName = GalleryPrefix + "Banner";
@@ -354,6 +355,11 @@ public bool IsDisplayUploadWarningV2Enabled(User user)
354355
return _client.IsEnabled(DisplayUploadWarningV2FlightName, user, defaultValue: false);
355356
}
356357

358+
public bool IsDisplayPackageReadmeWarningEnabled(User user)
359+
{
360+
return _client.IsEnabled(DisplayPackageReadmeWarningFlightName, user, defaultValue: false);
361+
}
362+
357363
public bool IsDeletePackageApiEnabled(User user)
358364
{
359365
return _client.IsEnabled(DeletePackageApiFlightName, user, defaultValue: false);

src/NuGetGallery.Services/Configuration/IFeatureFlagService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,11 @@ public interface IFeatureFlagService
278278
/// </summary>
279279
bool IsDisplayUploadWarningV2Enabled(User user);
280280

281+
/// <summary>
282+
/// Whether the new warning of the missing readme is displayed to package authors
283+
/// </summary>
284+
bool IsDisplayPackageReadmeWarningEnabled(User user);
285+
281286
/// <summary>
282287
/// Whether or not the user can delete a package through the API.
283288
/// </summary>

src/NuGetGallery/App_Data/Files/Content/flags.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,12 @@
120120
"SiteAdmins": false,
121121
"Accounts": [],
122122
"Domains": []
123+
},
124+
"NuGetGallery.DisplayPackageReadmeWarning": {
125+
"All": true,
126+
"SiteAdmins": false,
127+
"Accounts": [],
128+
"Domains": []
123129
}
124130
}
125131
}

src/NuGetGallery/Controllers/PackagesController.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,8 @@ public virtual async Task<ActionResult> DisplayPackage(string id, string version
941941
packageRenames,
942942
readme);
943943

944+
var canDisplayReadmeWarning = _featureFlagService.IsDisplayPackageReadmeWarningEnabled(currentUser) && !model.HasEmbeddedReadmeFile && model.ReadMeHtml == null;
945+
944946
model.ValidatingTooLong = _validationService.IsValidatingTooLong(package);
945947
model.PackageValidationIssues = _validationService.GetLatestPackageValidationIssues(package);
946948
model.SymbolsPackageValidationIssues = _validationService.GetLatestPackageValidationIssues(model.LatestSymbolsPackage);
@@ -956,6 +958,7 @@ public virtual async Task<ActionResult> DisplayPackage(string id, string version
956958
model.IsDisplayTargetFrameworkEnabled = _featureFlagService.IsDisplayTargetFrameworkEnabled(currentUser);
957959
model.IsComputeTargetFrameworkEnabled = _featureFlagService.IsComputeTargetFrameworkEnabled();
958960
model.IsMarkdigMdSyntaxHighlightEnabled = _featureFlagService.IsMarkdigMdSyntaxHighlightEnabled();
961+
model.CanDisplayReadmeWarning = canDisplayReadmeWarning;
959962

960963
if (model.IsComputeTargetFrameworkEnabled || model.IsDisplayTargetFrameworkEnabled)
961964
{

src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public class DisplayPackageViewModel : ListPackageItemViewModel
4444
public bool IsPackageDependentsEnabled { get; set; }
4545
public bool IsRecentPackagesNoIndexEnabled { get; set; }
4646
public bool IsMarkdigMdSyntaxHighlightEnabled { get; set; }
47+
public bool CanDisplayReadmeWarning { get; set; }
4748
public NuGetPackageGitHubInformation GitHubDependenciesInformation { get; set; }
4849
public bool HasEmbeddedIcon { get; set; }
4950
public bool HasEmbeddedReadmeFile { get; set; }

src/NuGetGallery/Views/Packages/DisplayPackage.cshtml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -530,12 +530,19 @@
530530
role="tab"
531531
data-toggle="tab"
532532
id="readme-body-tab"
533-
class="body-tab"
533+
class="body-@(Model.CanDisplayReadmeWarning && Model.CanDisplayPrivateMetadata? "warning-" : "")tab"
534534
aria-controls="readme-tab"
535535
aria-expanded="@(activeBodyTab == "readme" ? "true" : "false")"
536536
aria-selected="@(activeBodyTab == "readme" ? "true" : "false")"
537537
tabindex="@(activeBodyTab == "readme" ? "0" : "-1")">
538-
<i class="ms-Icon ms-Icon--Dictionary" aria-hidden="true"></i>
538+
@if (Model.CanDisplayReadmeWarning && Model.CanDisplayPrivateMetadata)
539+
{
540+
<i class="ms-Icon ms-Icon--Warning" aria-hidden="true"></i>
541+
}
542+
else
543+
{
544+
<i class="ms-Icon ms-Icon--Dictionary" aria-hidden="true"></i>
545+
}
539546
README
540547
</a>
541548
</li>
@@ -670,7 +677,11 @@
670677
}
671678
else
672679
{
673-
if (Model.CanDisplayPrivateMetadata)
680+
if (Model.CanDisplayPrivateMetadata && Model.CanDisplayReadmeWarning)
681+
{
682+
@ViewHelpers.AlertWarning(@<text>Your package is missing a README. Please update your package to <a href='https://aka.ms/nuget-include-readme'>include a README</a> or <a href=@Url.ManagePackage(Model)>add a README here</a>.</text>);
683+
}
684+
else if (Model.CanDisplayPrivateMetadata)
674685
{
675686
@ViewHelpers.AlertWarning(@<text>The package description is shown below. Please update your package to <a href='https://docs.microsoft.com/nuget/nuget-org/package-readme-on-nuget-org'>include a README</a>.</text>);
676687
}

0 commit comments

Comments
 (0)