Skip to content

Commit d157ea7

Browse files
khellangskofman1
authored andcommitted
Add tab for PackageReference (#5656)
* Add 'user-select: all' to make it easier to select the entire text * Add PackageReference tab * Add customizable CopyLabel property as 'command' doesn't fit XML node
1 parent 3732c0b commit d157ea7

5 files changed

Lines changed: 37 additions & 10 deletions

File tree

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

Lines changed: 4 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: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@
172172
border-color: @panel-footer-bg;
173173
border-style: solid;
174174
border-width: 1px 0 1px 1px;
175+
user-select: all;
175176
}
176177

177178
.copy-button {

src/NuGetGallery/ViewModels/PackageManagerViewModel.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@ namespace NuGetGallery
88
/// </summary>
99
public class PackageManagerViewModel
1010
{
11+
public PackageManagerViewModel(string name)
12+
{
13+
Name = name;
14+
CopyLabel = string.Format("Copy the {0} command", name);
15+
}
16+
1117
/// <summary>
1218
/// The package manager's name.
1319
/// </summary>
@@ -37,6 +43,11 @@ public class PackageManagerViewModel
3743
/// The level with which the above message will be displayed.
3844
/// </summary>
3945
public AlertLevel AlertLevel { get; set; }
46+
47+
/// <summary>
48+
/// The label for the copy button.
49+
/// </summary>
50+
public string CopyLabel { get; set; }
4051
}
4152

4253
public enum AlertLevel

src/NuGetGallery/ViewModels/ThirdPartyPackageManagerViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public class ThirdPartyPackageManagerViewModel : PackageManagerViewModel
1515
/// </summary>
1616
public string ContactUrl { get; set; }
1717

18-
public ThirdPartyPackageManagerViewModel(string contactUrl)
18+
public ThirdPartyPackageManagerViewModel(string name, string contactUrl) : base(name)
1919
{
2020
ContactUrl = contactUrl;
2121
AlertLevel = AlertLevel.Warning;

src/NuGetGallery/Views/Packages/DisplayPackage.cshtml

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,9 @@
2828
{
2929
packageManagers = new PackageManagerViewModel[]
3030
{
31-
new PackageManagerViewModel()
31+
new PackageManagerViewModel(".NET CLI")
3232
{
3333
Id = "dotnet-cli",
34-
Name = ".NET CLI",
3534
CommandPrefix = "> ",
3635
InstallPackageCommand = string.Format("dotnet tool install --global {0} --version {1}", Model.Id, Model.Version),
3736
AlertLevel = AlertLevel.Info,
@@ -43,26 +42,33 @@
4342
{
4443
packageManagers = new PackageManagerViewModel[]
4544
{
46-
new PackageManagerViewModel()
45+
new PackageManagerViewModel("Package Manager")
4746
{
4847
Id = "package-manager",
49-
Name = "Package Manager",
5048
CommandPrefix = "PM> ",
5149
InstallPackageCommand = string.Format("Install-Package {0} -Version {1}", Model.Id, Model.Version)
5250
},
5351

54-
new PackageManagerViewModel()
52+
new PackageManagerViewModel(".NET CLI")
5553
{
5654
Id = "dotnet-cli",
57-
Name = ".NET CLI",
5855
CommandPrefix = "> ",
5956
InstallPackageCommand = string.Format("dotnet add package {0} --version {1}", Model.Id, Model.Version)
6057
},
6158

62-
new ThirdPartyPackageManagerViewModel("https://fsprojects.github.io/Paket/contact.html")
59+
new PackageManagerViewModel("PackageReference")
60+
{
61+
Id = "package-reference",
62+
InstallPackageCommand = string.Format("<PackageReference Include=\"{0}\" Version=\"{1}\" />", Model.Id, Model.Version),
63+
AlertLevel = AlertLevel.Info,
64+
AlertMessage = string.Format("For projects that support <a href=\"{0}\">PackageReference</a>, copy this XML node into the project file to reference the package.",
65+
"https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files"),
66+
CopyLabel = "Copy the PackageReference XML node",
67+
},
68+
69+
new ThirdPartyPackageManagerViewModel("Paket CLI", "https://fsprojects.github.io/Paket/contact.html")
6370
{
6471
Id = "paket-cli",
65-
Name = "Paket CLI",
6672
CommandPrefix = "> ",
6773
InstallPackageCommand = string.Format("paket add {0} --version {1}", Model.Id, Model.Version),
6874
}
@@ -126,7 +132,7 @@
126132
<div class="copy-button">
127133
<button id="@packageManager.Id-button" class="btn btn-default btn-warning" type="button"
128134
data-toggle="popover" data-placement="bottom" data-content="Copied."
129-
aria-label="Copy the @packageManager.Name command">
135+
aria-label="@packageManager.CopyLabel">
130136
<span class="ms-Icon ms-Icon--Copy" aria-hidden="true"></span>
131137
</button>
132138
</div>
@@ -925,6 +931,11 @@ foreach (var owner in Model.Owners)
925931

926932
foreach (var packageManager in packageManagers)
927933
{
934+
if (string.IsNullOrWhiteSpace(packageManager.CommandPrefix))
935+
{
936+
continue;
937+
}
938+
928939
packageManagersCss += "#" + packageManager.Id + " .install-script span::before {";
929940
packageManagersCss += " content: \"" + packageManager.CommandPrefix + "\"";
930941
packageManagersCss += "}";

0 commit comments

Comments
 (0)