From e720ee6808c7bff297cda01b892dafff85eb54f7 Mon Sep 17 00:00:00 2001 From: lyndaidaii <64443925+lyndaidaii@users.noreply.github.com> Date: Fri, 10 Feb 2023 10:01:41 -0800 Subject: [PATCH 1/7] add domain caniuse for image allowlist (#9378) --- .../App_Data/Files/Content/Trusted-Image-Domains.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/NuGetGallery/App_Data/Files/Content/Trusted-Image-Domains.json b/src/NuGetGallery/App_Data/Files/Content/Trusted-Image-Domains.json index e6155e9c81..1cbcc5aa93 100644 --- a/src/NuGetGallery/App_Data/Files/Content/Trusted-Image-Domains.json +++ b/src/NuGetGallery/App_Data/Files/Content/Trusted-Image-Domains.json @@ -15,6 +15,7 @@ "badges.gitter.im", "bettercodehub.com", "buildstats.info", + "caniuse.bitsofco.de", "cdn.jsdelivr.net", "cdn.syncfusion.com", "ci.appveyor.com", From 0927359c0f569ad1aff4604c70397456d24435c1 Mon Sep 17 00:00:00 2001 From: Joel Verhagen Date: Fri, 10 Feb 2023 10:48:51 -0800 Subject: [PATCH 2/7] Fix two small UI issues (README bg color, Script & Interactive info) (#9385) * Fix Script & Interactive tab alert message Fix https://github.com/NuGet/NuGetGallery/issues/9354 * Fix background color section for README sections Fix color constrast issue on the upload page Fix https://github.com/NuGet/NuGetGallery/issues/9355 --- src/Bootstrap/dist/css/bootstrap-theme.css | 7 +++---- src/Bootstrap/less/theme/common-readme.less | 7 +++---- src/NuGetGallery/Views/Packages/DisplayPackage.cshtml | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Bootstrap/dist/css/bootstrap-theme.css b/src/Bootstrap/dist/css/bootstrap-theme.css index e4ccccbb34..cb0b7a3bce 100644 --- a/src/Bootstrap/dist/css/bootstrap-theme.css +++ b/src/Bootstrap/dist/css/bootstrap-theme.css @@ -666,8 +666,7 @@ img.reserved-indicator-icon { .readme .readme-container { display: block; padding: 10.5px; - background-color: #f5f5f5; - border: 1px solid #ccc; + border: 2px solid #ccc; word-break: normal; margin-bottom: 24px; overflow: auto; @@ -700,7 +699,7 @@ img.reserved-indicator-icon { font-size: 16px; } .readme-common pre code.hljs { - background-color: #f6f8fa; + background-color: #f5f5f5; color: #24292e; } .readme-common pre code.hljs .hljs-doctag, @@ -742,7 +741,7 @@ img.reserved-indicator-icon { .readme-common pre code.hljs .hljs-comment, .readme-common pre code.hljs .hljs-code, .readme-common pre code.hljs .hljs-formula { - color: #6a737d; + color: #646d76; } .readme-common pre code.hljs .hljs-name, .readme-common pre code.hljs .hljs-quote, diff --git a/src/Bootstrap/less/theme/common-readme.less b/src/Bootstrap/less/theme/common-readme.less index 8b08671064..ec2b01422c 100644 --- a/src/Bootstrap/less/theme/common-readme.less +++ b/src/Bootstrap/less/theme/common-readme.less @@ -2,8 +2,7 @@ .readme-container { display: block; padding: 10.5px; - background-color: @pre-bg; - border: 1px solid #ccc; + border: 2px solid #ccc; word-break: normal; margin-bottom: @default-margin-bottom; overflow: auto; @@ -44,7 +43,7 @@ pre { code.hljs { - background-color: #f6f8fa; + background-color: @pre-bg; color: #24292e; .hljs-doctag, @@ -92,7 +91,7 @@ .hljs-comment, .hljs-code, .hljs-formula { - color: #6a737d; + color: #646d76; } .hljs-name, diff --git a/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml b/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml index ae339925a9..af73f16dba 100644 --- a/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml +++ b/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml @@ -143,7 +143,7 @@ CommandPrefix = "> ", InstallPackageCommands = new [] { string.Format("#r \"nuget: {0}, {1}\"", Model.Id, Model.Version) }, AlertLevel = AlertLevel.Info, - AlertMessage = "#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package." + AlertMessage = "#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package." }, new ThirdPartyPackageManagerViewModel("Cake", "https://cakebuild.net/support/nuget") From 8ff5267c38713cd6a4099e98240fea776803d552 Mon Sep 17 00:00:00 2001 From: lyndaidaii <64443925+lyndaidaii@users.noreply.github.com> Date: Mon, 13 Feb 2023 11:54:33 -0800 Subject: [PATCH 3/7] Modify warning message on display package page when missing readme (#9365) * modify warning message on display package page when missing readme --- src/AccountDeleter/EmptyFeatureFlagService.cs | 5 +++++ src/Bootstrap/dist/css/bootstrap-theme.css | 3 +++ .../less/theme/page-display-package.less | 4 ++++ .../Fakes/FakeFeatureFlagService.cs | 5 +++++ .../Configuration/FeatureFlagService.cs | 6 ++++++ .../Configuration/IFeatureFlagService.cs | 5 +++++ .../App_Data/Files/Content/flags.json | 6 ++++++ .../Controllers/PackagesController.cs | 3 +++ .../ViewModels/DisplayPackageViewModel.cs | 1 + .../Views/Packages/DisplayPackage.cshtml | 17 ++++++++++++++--- .../Fakes/FakeFeatureFlagService.cs | 2 ++ 11 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/AccountDeleter/EmptyFeatureFlagService.cs b/src/AccountDeleter/EmptyFeatureFlagService.cs index a81d1544b8..93a549f4cf 100644 --- a/src/AccountDeleter/EmptyFeatureFlagService.cs +++ b/src/AccountDeleter/EmptyFeatureFlagService.cs @@ -301,6 +301,11 @@ public bool IsDisplayUploadWarningV2Enabled(User user) throw new NotImplementedException(); } + public bool IsDisplayPackageReadmeWarningEnabled(User user) + { + throw new NotImplementedException(); + } + public bool IsFrameworkFilteringEnabled(User user) { throw new NotImplementedException(); } diff --git a/src/Bootstrap/dist/css/bootstrap-theme.css b/src/Bootstrap/dist/css/bootstrap-theme.css index cb0b7a3bce..8a0dc474ab 100644 --- a/src/Bootstrap/dist/css/bootstrap-theme.css +++ b/src/Bootstrap/dist/css/bootstrap-theme.css @@ -1597,6 +1597,9 @@ p.frameworktableinfo-text { font-weight: bold; margin-bottom: -1px; } +.page-package-details .body-tabs .nav-tabs > li.active > a.body-warning-tab { + background-color: #fff4ce; +} .page-package-details .body-tabs .nav-tabs > li > a { border-left: 0px; border-right: 0px; diff --git a/src/Bootstrap/less/theme/page-display-package.less b/src/Bootstrap/less/theme/page-display-package.less index 5deac91aea..6f6565dcd2 100644 --- a/src/Bootstrap/less/theme/page-display-package.less +++ b/src/Bootstrap/less/theme/page-display-package.less @@ -423,6 +423,10 @@ margin-bottom: -1px; } + .nav-tabs > li.active > a.body-warning-tab > { + background-color: #fff4ce; + } + .nav-tabs > li > a { border-left: 0px; border-right: 0px; diff --git a/src/GitHubVulnerabilities2Db/Fakes/FakeFeatureFlagService.cs b/src/GitHubVulnerabilities2Db/Fakes/FakeFeatureFlagService.cs index 6d17f739d9..8799c8e50c 100644 --- a/src/GitHubVulnerabilities2Db/Fakes/FakeFeatureFlagService.cs +++ b/src/GitHubVulnerabilities2Db/Fakes/FakeFeatureFlagService.cs @@ -135,6 +135,11 @@ public bool IsDisplayUploadWarningV2Enabled(User user) throw new NotImplementedException(); } + public bool IsDisplayPackageReadmeWarningEnabled(User user) + { + throw new NotImplementedException(); + } + public bool IsODataDatabaseReadOnlyEnabled() { throw new NotImplementedException(); diff --git a/src/NuGetGallery.Services/Configuration/FeatureFlagService.cs b/src/NuGetGallery.Services/Configuration/FeatureFlagService.cs index bd2d843d30..8363e83e06 100644 --- a/src/NuGetGallery.Services/Configuration/FeatureFlagService.cs +++ b/src/NuGetGallery.Services/Configuration/FeatureFlagService.cs @@ -48,6 +48,7 @@ public class FeatureFlagService : IFeatureFlagService private const string MarkdigMdRenderingFlightName = GalleryPrefix + "MarkdigMdRendering"; private const string MarkdigMdSyntaxHighlightFlightName = GalleryPrefix + "MarkdigMdSyntaxHighlight"; private const string DisplayUploadWarningV2FlightName = GalleryPrefix + "DisplayUploadWarningV2"; + private const string DisplayPackageReadmeWarningFlightName = GalleryPrefix + "DisplayPackageReadmeWarning"; private const string DeletePackageApiFlightName = GalleryPrefix + "DeletePackageApi"; private const string ImageAllowlistFlightName = GalleryPrefix + "ImageAllowlist"; private const string DisplayBannerFlightName = GalleryPrefix + "Banner"; @@ -354,6 +355,11 @@ public bool IsDisplayUploadWarningV2Enabled(User user) return _client.IsEnabled(DisplayUploadWarningV2FlightName, user, defaultValue: false); } + public bool IsDisplayPackageReadmeWarningEnabled(User user) + { + return _client.IsEnabled(DisplayPackageReadmeWarningFlightName, user, defaultValue: false); + } + public bool IsDeletePackageApiEnabled(User user) { return _client.IsEnabled(DeletePackageApiFlightName, user, defaultValue: false); diff --git a/src/NuGetGallery.Services/Configuration/IFeatureFlagService.cs b/src/NuGetGallery.Services/Configuration/IFeatureFlagService.cs index 0f41e3175b..78096e9b7b 100644 --- a/src/NuGetGallery.Services/Configuration/IFeatureFlagService.cs +++ b/src/NuGetGallery.Services/Configuration/IFeatureFlagService.cs @@ -278,6 +278,11 @@ public interface IFeatureFlagService /// bool IsDisplayUploadWarningV2Enabled(User user); + /// + /// Whether the new warning of the missing readme is displayed to package authors + /// + bool IsDisplayPackageReadmeWarningEnabled(User user); + /// /// Whether or not the user can delete a package through the API. /// diff --git a/src/NuGetGallery/App_Data/Files/Content/flags.json b/src/NuGetGallery/App_Data/Files/Content/flags.json index 8abeeaada6..e2313044a1 100644 --- a/src/NuGetGallery/App_Data/Files/Content/flags.json +++ b/src/NuGetGallery/App_Data/Files/Content/flags.json @@ -120,6 +120,12 @@ "SiteAdmins": false, "Accounts": [], "Domains": [] + }, + "NuGetGallery.DisplayPackageReadmeWarning": { + "All": true, + "SiteAdmins": false, + "Accounts": [], + "Domains": [] } } } \ No newline at end of file diff --git a/src/NuGetGallery/Controllers/PackagesController.cs b/src/NuGetGallery/Controllers/PackagesController.cs index a77f7d90f9..7474736ed2 100644 --- a/src/NuGetGallery/Controllers/PackagesController.cs +++ b/src/NuGetGallery/Controllers/PackagesController.cs @@ -941,6 +941,8 @@ public virtual async Task DisplayPackage(string id, string version packageRenames, readme); + var canDisplayReadmeWarning = _featureFlagService.IsDisplayPackageReadmeWarningEnabled(currentUser) && !model.HasEmbeddedReadmeFile && model.ReadMeHtml == null; + model.ValidatingTooLong = _validationService.IsValidatingTooLong(package); model.PackageValidationIssues = _validationService.GetLatestPackageValidationIssues(package); model.SymbolsPackageValidationIssues = _validationService.GetLatestPackageValidationIssues(model.LatestSymbolsPackage); @@ -956,6 +958,7 @@ public virtual async Task DisplayPackage(string id, string version model.IsDisplayTargetFrameworkEnabled = _featureFlagService.IsDisplayTargetFrameworkEnabled(currentUser); model.IsComputeTargetFrameworkEnabled = _featureFlagService.IsComputeTargetFrameworkEnabled(); model.IsMarkdigMdSyntaxHighlightEnabled = _featureFlagService.IsMarkdigMdSyntaxHighlightEnabled(); + model.CanDisplayReadmeWarning = canDisplayReadmeWarning; if (model.IsComputeTargetFrameworkEnabled || model.IsDisplayTargetFrameworkEnabled) { diff --git a/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs b/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs index 2540018b67..02a1cc8331 100644 --- a/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs +++ b/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs @@ -44,6 +44,7 @@ public class DisplayPackageViewModel : ListPackageItemViewModel public bool IsPackageDependentsEnabled { get; set; } public bool IsRecentPackagesNoIndexEnabled { get; set; } public bool IsMarkdigMdSyntaxHighlightEnabled { get; set; } + public bool CanDisplayReadmeWarning { get; set; } public NuGetPackageGitHubInformation GitHubDependenciesInformation { get; set; } public bool HasEmbeddedIcon { get; set; } public bool HasEmbeddedReadmeFile { get; set; } diff --git a/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml b/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml index af73f16dba..f74a350780 100644 --- a/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml +++ b/src/NuGetGallery/Views/Packages/DisplayPackage.cshtml @@ -530,12 +530,19 @@ role="tab" data-toggle="tab" id="readme-body-tab" - class="body-tab" + class="body-@(Model.CanDisplayReadmeWarning && Model.CanDisplayPrivateMetadata? "warning-" : "")tab" aria-controls="readme-tab" aria-expanded="@(activeBodyTab == "readme" ? "true" : "false")" aria-selected="@(activeBodyTab == "readme" ? "true" : "false")" tabindex="@(activeBodyTab == "readme" ? "0" : "-1")"> - + @if (Model.CanDisplayReadmeWarning && Model.CanDisplayPrivateMetadata) + { + + } + else + { + + } README @@ -670,7 +677,11 @@ } else { - if (Model.CanDisplayPrivateMetadata) + if (Model.CanDisplayPrivateMetadata && Model.CanDisplayReadmeWarning) + { + @ViewHelpers.AlertWarning(@Your package is missing a README. Please update your package to include a README or add a README here.); + } + else if (Model.CanDisplayPrivateMetadata) { @ViewHelpers.AlertWarning(@The package description is shown below. Please update your package to include a README.); } diff --git a/src/VerifyMicrosoftPackage/Fakes/FakeFeatureFlagService.cs b/src/VerifyMicrosoftPackage/Fakes/FakeFeatureFlagService.cs index bcbd8fae20..cd4a1f5f54 100644 --- a/src/VerifyMicrosoftPackage/Fakes/FakeFeatureFlagService.cs +++ b/src/VerifyMicrosoftPackage/Fakes/FakeFeatureFlagService.cs @@ -129,6 +129,8 @@ public class FakeFeatureFlagService : IFeatureFlagService public bool IsDisplayUploadWarningV2Enabled(User user) => throw new NotImplementedException(); + public bool IsDisplayPackageReadmeWarningEnabled(User user) => throw new NotImplementedException(); + public bool IsFrameworkFilteringEnabled(User user) => throw new NotImplementedException(); } } From 9111502682a2f912708d1df91c84db9880a53260 Mon Sep 17 00:00:00 2001 From: Advay Tandon <82980589+advay26@users.noreply.github.com> Date: Tue, 14 Feb 2023 02:59:43 +0530 Subject: [PATCH 4/7] Search page A11y fixes (#9387) * TFM tab has display: 'none' when collapsed + removed unused viewModel property * removed aria-expanded --- src/Bootstrap/dist/css/bootstrap-theme.css | 1 + src/Bootstrap/less/theme/page-list-packages.less | 1 + src/NuGetGallery/Controllers/PackagesController.cs | 2 -- .../Scripts/gallery/page-list-packages.js | 12 ++---------- src/NuGetGallery/ViewModels/PackageListViewModel.cs | 2 -- src/NuGetGallery/Views/Shared/ListPackages.cshtml | 7 ++++--- 6 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/Bootstrap/dist/css/bootstrap-theme.css b/src/Bootstrap/dist/css/bootstrap-theme.css index 8a0dc474ab..9c4709be38 100644 --- a/src/Bootstrap/dist/css/bootstrap-theme.css +++ b/src/Bootstrap/dist/css/bootstrap-theme.css @@ -1868,6 +1868,7 @@ p.frameworktableinfo-text { z-index: 1; } .page-list-packages .advanced-search-panel .tfmTab { + display: none; max-height: 0; overflow: hidden; -webkit-transition: max-height 0.1s ease-out; diff --git a/src/Bootstrap/less/theme/page-list-packages.less b/src/Bootstrap/less/theme/page-list-packages.less index 00351ab841..705e551407 100644 --- a/src/Bootstrap/less/theme/page-list-packages.less +++ b/src/Bootstrap/less/theme/page-list-packages.less @@ -121,6 +121,7 @@ } .tfmTab { + display: none; max-height: 0; overflow: hidden; transition: max-height 0.1s ease-out; diff --git a/src/NuGetGallery/Controllers/PackagesController.cs b/src/NuGetGallery/Controllers/PackagesController.cs index 7474736ed2..3713e05bf0 100644 --- a/src/NuGetGallery/Controllers/PackagesController.cs +++ b/src/NuGetGallery/Controllers/PackagesController.cs @@ -1366,8 +1366,6 @@ public virtual async Task ListPackages(PackageListSearchViewModel // If the experience hasn't been cached, it means it's not the default experienced, therefore, show the panel viewModel.IsAdvancedSearchFlightEnabled = searchService.SupportsAdvancedSearch && isAdvancedSearchFlightEnabled; - viewModel.ShouldDisplayAdvancedSearchPanel = !shouldCacheAdvancedSearch || !includePrerelease; - viewModel.IsFrameworkFilteringEnabled = isFrameworkFilteringEnabled; ViewBag.SearchTerm = q; diff --git a/src/NuGetGallery/Scripts/gallery/page-list-packages.js b/src/NuGetGallery/Scripts/gallery/page-list-packages.js index ae93177ac0..608c078f10 100644 --- a/src/NuGetGallery/Scripts/gallery/page-list-packages.js +++ b/src/NuGetGallery/Scripts/gallery/page-list-packages.js @@ -59,20 +59,12 @@ $(function() { expandButton.classList.toggle('ms-Icon--ChevronUp'); if (this.classList.contains('active')) { + dataTab.style.display = 'block'; dataTab.style.maxHeight = dataTab.scrollHeight + "px"; - - for (const tfm of tfmCheckboxes) { - tfm.setAttribute('tabindex', '0'); - tfm.tabindex = "0"; - } } else { + dataTab.style.display = 'none'; dataTab.style.maxHeight = 0; - - for (const tfm of tfmCheckboxes) { - tfm.setAttribute('tabindex', '-1'); - tfm.tabindex = "-1"; - } } } diff --git a/src/NuGetGallery/ViewModels/PackageListViewModel.cs b/src/NuGetGallery/ViewModels/PackageListViewModel.cs index 9de71e519b..1e1f5ca0fd 100644 --- a/src/NuGetGallery/ViewModels/PackageListViewModel.cs +++ b/src/NuGetGallery/ViewModels/PackageListViewModel.cs @@ -78,8 +78,6 @@ public PackageListViewModel( public string SortBy { get; set; } - public bool ShouldDisplayAdvancedSearchPanel { get; set; } - public bool IsAdvancedSearchFlightEnabled { get; set; } public bool IsFrameworkFilteringEnabled { get; set; } diff --git a/src/NuGetGallery/Views/Shared/ListPackages.cshtml b/src/NuGetGallery/Views/Shared/ListPackages.cshtml index 97615b4303..82e743c420 100644 --- a/src/NuGetGallery/Views/Shared/ListPackages.cshtml +++ b/src/NuGetGallery/Views/Shared/ListPackages.cshtml @@ -37,9 +37,10 @@
    - @foreach (var tfm in tfms) { + @foreach (var tfm in tfms) + {
  • - +
  • } @@ -195,7 +196,7 @@ {
    -
    +
    NuGet package search works the same on nuget.org, from the NuGet CLI, and within the NuGet Package Manager extension in Visual Studio.
    Check out our Search Syntax. From 6be7bed22d4f65272daf144590e40c41a8adae66 Mon Sep 17 00:00:00 2001 From: Advay Tandon <82980589+advay26@users.noreply.github.com> Date: Tue, 14 Feb 2023 05:03:25 +0530 Subject: [PATCH 5/7] Added null checks to mitigate exceptions on the '/profiles' pages (#9388) * profiles page uses the same js script, but does not have a searchForm, so I added checks in the script * addressed feedback from PR --- .../Scripts/gallery/page-list-packages.js | 20 ++++++++++--------- .../Views/Shared/ListPackages.cshtml | 5 ----- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/NuGetGallery/Scripts/gallery/page-list-packages.js b/src/NuGetGallery/Scripts/gallery/page-list-packages.js index 608c078f10..921ab411e5 100644 --- a/src/NuGetGallery/Scripts/gallery/page-list-packages.js +++ b/src/NuGetGallery/Scripts/gallery/page-list-packages.js @@ -36,12 +36,6 @@ $(function() { framework.indeterminate = checkedCount !== 0; } - // Submit the form when a user changes the selected 'sortBy' option - searchForm.sortby.addEventListener('change', (e) => { - searchForm.sortby.value = e.target.value; - submitSearchForm(); - }); - // Accordion/collapsible logic const collapsibles = document.querySelectorAll('.collapsible'); @@ -68,8 +62,7 @@ $(function() { } } - searchForm.addEventListener('submit', submitSearchForm); - + // Update query params before submitting the form function submitSearchForm() { constructFilterParameter(searchForm.frameworks, allFrameworks); constructFilterParameter(searchForm.tfms, allTfms); @@ -93,7 +86,6 @@ $(function() { // Initialize state for Framework and Tfm checkboxes // NOTE: We first click on all selected Framework checkboxes and then on the selected Tfm checkboxes, which // allows us to correctly handle cases where a Framework AND one of its child Tfms is present in the query - initializeFrameworkAndTfmCheckboxes(); function initializeFrameworkAndTfmCheckboxes() { var inputFrameworkFilters = searchForm.frameworks.value.split(',').map(f => f.trim()).filter(f => f); var inputTfmFilters = searchForm.tfms.value.split(',').map(f => f.trim()).filter(f => f); @@ -110,4 +102,14 @@ $(function() { } }); } + + // The /profiles pages use this js file too, but some code needs to be applied only to the search page + if (searchForm) { + searchForm.sortby.addEventListener('change', (e) => { + searchForm.sortby.value = e.target.value; + submitSearchForm(); + }); + searchForm.addEventListener('submit', submitSearchForm); + initializeFrameworkAndTfmCheckboxes(); + } }); diff --git a/src/NuGetGallery/Views/Shared/ListPackages.cshtml b/src/NuGetGallery/Views/Shared/ListPackages.cshtml index 82e743c420..0955cb1a64 100644 --- a/src/NuGetGallery/Views/Shared/ListPackages.cshtml +++ b/src/NuGetGallery/Views/Shared/ListPackages.cshtml @@ -12,11 +12,6 @@ @AddRadioGroupOption("Package Type", "packagetype", optionName, optionValue, Model.PackageType, isDefault); } -@helper AddSortByOption(string optionName, string optionValue, bool isDefault = false) -{ - @AddRadioGroupOption("Sort By", "sortby", optionName, optionValue, Model.SortBy, isDefault); -} - @helper AddRadioGroupOption(string ariaSectionLabel, string radioGroupName, string optionName, string optionValue, string optionCompareValue, bool isDefault = false) {
    From d9a4c4eda8052194c87412020b3643abddb70a06 Mon Sep 17 00:00:00 2001 From: Advay Tandon <82980589+advay26@users.noreply.github.com> Date: Tue, 14 Feb 2023 23:34:25 +0530 Subject: [PATCH 6/7] added a line break before tags in search results (#9391) --- src/NuGetGallery/Views/Shared/_ListPackage.cshtml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/NuGetGallery/Views/Shared/_ListPackage.cshtml b/src/NuGetGallery/Views/Shared/_ListPackage.cshtml index 161a683049..fa616e8fc7 100644 --- a/src/NuGetGallery/Views/Shared/_ListPackage.cshtml +++ b/src/NuGetGallery/Views/Shared/_ListPackage.cshtml @@ -93,6 +93,7 @@ @if (Model.Tags.AnySafe()) { +
  • From 9e2d7285cf55313f041f6ad0d04d6c9c83d6142e Mon Sep 17 00:00:00 2001 From: Andrei Grigorev Date: Tue, 21 Feb 2023 13:02:43 -0800 Subject: [PATCH 7/7] Putting back a word that was lost some time ago. (#9394) --- src/NuGetGallery/Views/Packages/UploadPackage.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NuGetGallery/Views/Packages/UploadPackage.cshtml b/src/NuGetGallery/Views/Packages/UploadPackage.cshtml index 1f35c535bf..7576dc5c4f 100644 --- a/src/NuGetGallery/Views/Packages/UploadPackage.cshtml +++ b/src/NuGetGallery/Views/Packages/UploadPackage.cshtml @@ -27,7 +27,7 @@ else {
    -

    Your package file will be uploaded and on the @(Config.Current.Brand) server (@(Config.Current.SiteRoot)).

    +

    Your package file will be uploaded and hosted on the @(Config.Current.Brand) server (@(Config.Current.SiteRoot)).

    To learn more about authoring great packages, view our Best Practices page.