Skip to content

Commit 2e8dcbe

Browse files
authored
Manage edit documentation (#8169)
* disable editing documation for package has embedded read me at manage package page
1 parent b84ca7d commit 2e8dcbe

8 files changed

Lines changed: 56 additions & 13 deletions

File tree

src/NuGet.Services.Entities/Package.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,18 @@ public bool HasReadMe
156156
}
157157
}
158158

159+
/// <summary>
160+
/// Signifies whether or not the embedded Readme exists
161+
/// </summary>
162+
[NotMapped]
163+
public bool HasEmbeddedReadme
164+
{
165+
get
166+
{
167+
return HasReadMe && EmbeddedReadmeType != EmbeddedReadmeFileType.Absent;
168+
}
169+
}
170+
159171
public bool RequiresLicenseAcceptance { get; set; }
160172

161173
public bool DevelopmentDependency { get; set; }

src/NuGetGallery/Helpers/ViewModelExtensions/ManagePackageViewModelFactory.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ private ManagePackageViewModel SetupInternal(
8686
var versionDeprecationStateDictionary = new Dictionary<string, ManagePackageViewModel.VersionDeprecationState>();
8787
viewModel.VersionDeprecationStateDictionary = versionDeprecationStateDictionary;
8888

89-
var submitUrlTemplate = url.PackageVersionActionTemplate("Edit");
90-
var getReadMeUrlTemplate = url.PackageVersionActionTemplate("GetReadMeMd");
9189
foreach (var versionSelectPackage in versionSelectPackages)
9290
{
9391
var text = PackageHelper.GetSelectListText(versionSelectPackage);
@@ -106,10 +104,7 @@ private ManagePackageViewModel SetupInternal(
106104
var model = new TrivialPackageVersionModel(versionSelectPackage);
107105
versionReadMeStateDictionary.Add(
108106
value,
109-
new ManagePackageViewModel.VersionReadMeState(
110-
submitUrlTemplate.Resolve(model),
111-
getReadMeUrlTemplate.Resolve(model),
112-
null));
107+
GetVersionReadMeState(model, url));
113108

114109
versionDeprecationStateDictionary.Add(
115110
value,
@@ -118,7 +113,7 @@ private ManagePackageViewModel SetupInternal(
118113

119114
// Update edit model with the readme.md data.
120115
viewModel.ReadMe = new EditPackageVersionReadMeRequest();
121-
if (package.HasReadMe)
116+
if (package.HasReadMe && package.EmbeddedReadmeType == EmbeddedReadmeFileType.Absent)
122117
{
123118
viewModel.ReadMe.ReadMe.SourceType = ReadMeService.TypeWritten;
124119
viewModel.ReadMe.ReadMe.SourceText = readMe;
@@ -157,5 +152,21 @@ private static ManagePackageViewModel.VersionDeprecationState GetVersionDeprecat
157152

158153
return result;
159154
}
155+
156+
private static ManagePackageViewModel.VersionReadMeState GetVersionReadMeState(
157+
TrivialPackageVersionModel model,
158+
UrlHelper url)
159+
{
160+
var submitUrlTemplate = url.PackageVersionActionTemplate("Edit");
161+
var getReadMeUrlTemplate = url.PackageVersionActionTemplate("GetReadMeMd");
162+
163+
var result = new ManagePackageViewModel.VersionReadMeState(
164+
submitUrlTemplate.Resolve(model),
165+
getReadMeUrlTemplate.Resolve(model),
166+
readMe: null);
167+
168+
result.HasEmbeddedReadme = model.HasEmbeddedReadme;
169+
return result;
170+
}
160171
}
161172
}

src/NuGetGallery/Scripts/gallery/page-edit-readme.js

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@
1414
_submitted = false;
1515
_viewModel = model;
1616
_changedState = {};
17+
18+
_selectVersion = $('.page-edit-package #input-select-readme');
19+
var defaultVersion = _selectVersion.val();
20+
1721
BindReadMeDataManager.init(previewUrl);
1822

1923
bindData(_viewModel);
2024

2125
$(window).on('beforeunload', confirmLeave);
22-
23-
_selectVersion = $('.page-edit-package #input-select-readme');
24-
var defaultVersion = _selectVersion.val();
2526

2627
_selectVersion.change(function () {
2728
var selectedVersion = $(this).val();
@@ -184,6 +185,21 @@
184185
if (model === null || !model.IsSymbolsPackage) {
185186
BindReadMeDataManager.bindReadMeData(model);
186187
}
188+
189+
var selectedVersion = _selectVersion.val();
190+
191+
if (!selectedVersion) {
192+
// No version is selected.
193+
return;
194+
}
195+
196+
if (model.Versions[selectedVersion].HasEmbeddedReadme) {
197+
$('#edit-markdown-button').addClass('hidden');
198+
$('#verify-submit-button').addClass('hidden');
199+
} else {
200+
$('#edit-markdown-button').removeClass('hidden');
201+
$('#verify-submit-button').removeClass('hidden');
202+
}
187203
}
188204
};
189205
}());

src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class DisplayPackageViewModel : ListPackageItemViewModel
3838
public bool IsPackageDependentsEnabled { get; set; }
3939
public NuGetPackageGitHubInformation GitHubDependenciesInformation { get; set; }
4040
public bool HasEmbeddedIcon { get; set; }
41+
public bool HasEmbeddedReadmeFile { get; set; }
4142
public PackageDependents PackageDependents { get; set; }
4243

4344
public bool HasNewerPrerelease

src/NuGetGallery/ViewModels/ManagePackageViewModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public VersionReadMeState(string submitUrl, string getReadMeUrl, string readMe)
5050
public string SubmitUrl { get; }
5151
public string GetReadMeUrl { get; }
5252
public string ReadMe { get; }
53+
public bool HasEmbeddedReadme { get; set; }
5354
}
5455

5556
/// <remarks>

src/NuGetGallery/ViewModels/TrivialPackageVersionModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public TrivialPackageVersionModel(Package package)
1010
{
1111
Id = package.PackageRegistration.Id;
1212
Version = package.NormalizedVersion;
13+
HasEmbeddedReadme = package.HasEmbeddedReadme;
1314
}
1415

1516
public TrivialPackageVersionModel(string id, string version)
@@ -20,5 +21,6 @@ public TrivialPackageVersionModel(string id, string version)
2021

2122
public string Id { get; set; }
2223
public string Version { get; set; }
24+
public bool HasEmbeddedReadme { get; set; }
2325
}
2426
}

src/NuGetGallery/Views/Packages/Manage.cshtml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@
105105
EditReadMeManager.init(
106106
readMeModel,
107107
'@Url.PreviewReadMe()');
108-
108+
109109
// Set up delete section
110110
var deleteVersionSelect = $('.page-delete-package #input-select-version');
111111
deleteVersionSelect.change(function () {
@@ -141,4 +141,4 @@
141141
@Scripts.Render("~/Scripts/gallery/page-manage-deprecation.min.js")
142142
@Scripts.Render("~/Scripts/gallery/page-delete-package.min.js")
143143
@Scripts.Render("~/Scripts/gallery/page-edit-readme.min.js")
144-
}
144+
}

src/NuGetGallery/Views/Packages/_ManageDocumentation.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
</div>
6363
</div>
6464

65-
@Html.Partial("_EditForm")
65+
@Html.Partial("_EditForm", Model)
6666
</div>
6767

6868
</div>

0 commit comments

Comments
 (0)