diff --git a/src/NuGet.Services.Entities/Package.cs b/src/NuGet.Services.Entities/Package.cs
index f536dfb102..9c5d8e988a 100644
--- a/src/NuGet.Services.Entities/Package.cs
+++ b/src/NuGet.Services.Entities/Package.cs
@@ -156,6 +156,18 @@ public bool HasReadMe
}
}
+ ///
+ /// Signifies whether or not the embedded Readme exists
+ ///
+ [NotMapped]
+ public bool HasEmbeddedReadme
+ {
+ get
+ {
+ return HasReadMe && EmbeddedReadmeType != EmbeddedReadmeFileType.Absent;
+ }
+ }
+
public bool RequiresLicenseAcceptance { get; set; }
public bool DevelopmentDependency { get; set; }
diff --git a/src/NuGetGallery/Helpers/ViewModelExtensions/ManagePackageViewModelFactory.cs b/src/NuGetGallery/Helpers/ViewModelExtensions/ManagePackageViewModelFactory.cs
index 6356f4cf4e..1f0c3052a5 100644
--- a/src/NuGetGallery/Helpers/ViewModelExtensions/ManagePackageViewModelFactory.cs
+++ b/src/NuGetGallery/Helpers/ViewModelExtensions/ManagePackageViewModelFactory.cs
@@ -86,8 +86,6 @@ private ManagePackageViewModel SetupInternal(
var versionDeprecationStateDictionary = new Dictionary();
viewModel.VersionDeprecationStateDictionary = versionDeprecationStateDictionary;
- var submitUrlTemplate = url.PackageVersionActionTemplate("Edit");
- var getReadMeUrlTemplate = url.PackageVersionActionTemplate("GetReadMeMd");
foreach (var versionSelectPackage in versionSelectPackages)
{
var text = PackageHelper.GetSelectListText(versionSelectPackage);
@@ -106,10 +104,7 @@ private ManagePackageViewModel SetupInternal(
var model = new TrivialPackageVersionModel(versionSelectPackage);
versionReadMeStateDictionary.Add(
value,
- new ManagePackageViewModel.VersionReadMeState(
- submitUrlTemplate.Resolve(model),
- getReadMeUrlTemplate.Resolve(model),
- null));
+ GetVersionReadMeState(model, url));
versionDeprecationStateDictionary.Add(
value,
@@ -118,7 +113,7 @@ private ManagePackageViewModel SetupInternal(
// Update edit model with the readme.md data.
viewModel.ReadMe = new EditPackageVersionReadMeRequest();
- if (package.HasReadMe)
+ if (package.HasReadMe && package.EmbeddedReadmeType == EmbeddedReadmeFileType.Absent)
{
viewModel.ReadMe.ReadMe.SourceType = ReadMeService.TypeWritten;
viewModel.ReadMe.ReadMe.SourceText = readMe;
@@ -157,5 +152,21 @@ private static ManagePackageViewModel.VersionDeprecationState GetVersionDeprecat
return result;
}
+
+ private static ManagePackageViewModel.VersionReadMeState GetVersionReadMeState(
+ TrivialPackageVersionModel model,
+ UrlHelper url)
+ {
+ var submitUrlTemplate = url.PackageVersionActionTemplate("Edit");
+ var getReadMeUrlTemplate = url.PackageVersionActionTemplate("GetReadMeMd");
+
+ var result = new ManagePackageViewModel.VersionReadMeState(
+ submitUrlTemplate.Resolve(model),
+ getReadMeUrlTemplate.Resolve(model),
+ readMe: null);
+
+ result.HasEmbeddedReadme = model.HasEmbeddedReadme;
+ return result;
+ }
}
}
\ No newline at end of file
diff --git a/src/NuGetGallery/Scripts/gallery/page-edit-readme.js b/src/NuGetGallery/Scripts/gallery/page-edit-readme.js
index 00eeacebac..2257953c51 100644
--- a/src/NuGetGallery/Scripts/gallery/page-edit-readme.js
+++ b/src/NuGetGallery/Scripts/gallery/page-edit-readme.js
@@ -14,14 +14,15 @@
_submitted = false;
_viewModel = model;
_changedState = {};
+
+ _selectVersion = $('.page-edit-package #input-select-readme');
+ var defaultVersion = _selectVersion.val();
+
BindReadMeDataManager.init(previewUrl);
bindData(_viewModel);
$(window).on('beforeunload', confirmLeave);
-
- _selectVersion = $('.page-edit-package #input-select-readme');
- var defaultVersion = _selectVersion.val();
_selectVersion.change(function () {
var selectedVersion = $(this).val();
@@ -184,6 +185,21 @@
if (model === null || !model.IsSymbolsPackage) {
BindReadMeDataManager.bindReadMeData(model);
}
+
+ var selectedVersion = _selectVersion.val();
+
+ if (!selectedVersion) {
+ // No version is selected.
+ return;
+ }
+
+ if (model.Versions[selectedVersion].HasEmbeddedReadme) {
+ $('#edit-markdown-button').addClass('hidden');
+ $('#verify-submit-button').addClass('hidden');
+ } else {
+ $('#edit-markdown-button').removeClass('hidden');
+ $('#verify-submit-button').removeClass('hidden');
+ }
}
};
}());
diff --git a/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs b/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs
index d91cfeee36..77aa462788 100644
--- a/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs
+++ b/src/NuGetGallery/ViewModels/DisplayPackageViewModel.cs
@@ -38,6 +38,7 @@ public class DisplayPackageViewModel : ListPackageItemViewModel
public bool IsPackageDependentsEnabled { get; set; }
public NuGetPackageGitHubInformation GitHubDependenciesInformation { get; set; }
public bool HasEmbeddedIcon { get; set; }
+ public bool HasEmbeddedReadmeFile { get; set; }
public PackageDependents PackageDependents { get; set; }
public bool HasNewerPrerelease
diff --git a/src/NuGetGallery/ViewModels/ManagePackageViewModel.cs b/src/NuGetGallery/ViewModels/ManagePackageViewModel.cs
index 3ea41bcfe4..92d772ea3f 100644
--- a/src/NuGetGallery/ViewModels/ManagePackageViewModel.cs
+++ b/src/NuGetGallery/ViewModels/ManagePackageViewModel.cs
@@ -50,6 +50,7 @@ public VersionReadMeState(string submitUrl, string getReadMeUrl, string readMe)
public string SubmitUrl { get; }
public string GetReadMeUrl { get; }
public string ReadMe { get; }
+ public bool HasEmbeddedReadme { get; set; }
}
///
diff --git a/src/NuGetGallery/ViewModels/TrivialPackageVersionModel.cs b/src/NuGetGallery/ViewModels/TrivialPackageVersionModel.cs
index 6b6b4d76e6..a48d3e1aaf 100644
--- a/src/NuGetGallery/ViewModels/TrivialPackageVersionModel.cs
+++ b/src/NuGetGallery/ViewModels/TrivialPackageVersionModel.cs
@@ -10,6 +10,7 @@ public TrivialPackageVersionModel(Package package)
{
Id = package.PackageRegistration.Id;
Version = package.NormalizedVersion;
+ HasEmbeddedReadme = package.HasEmbeddedReadme;
}
public TrivialPackageVersionModel(string id, string version)
@@ -20,5 +21,6 @@ public TrivialPackageVersionModel(string id, string version)
public string Id { get; set; }
public string Version { get; set; }
+ public bool HasEmbeddedReadme { get; set; }
}
}
\ No newline at end of file
diff --git a/src/NuGetGallery/Views/Packages/Manage.cshtml b/src/NuGetGallery/Views/Packages/Manage.cshtml
index 9139534e2e..af3e1370f4 100644
--- a/src/NuGetGallery/Views/Packages/Manage.cshtml
+++ b/src/NuGetGallery/Views/Packages/Manage.cshtml
@@ -105,7 +105,7 @@
EditReadMeManager.init(
readMeModel,
'@Url.PreviewReadMe()');
-
+
// Set up delete section
var deleteVersionSelect = $('.page-delete-package #input-select-version');
deleteVersionSelect.change(function () {
@@ -141,4 +141,4 @@
@Scripts.Render("~/Scripts/gallery/page-manage-deprecation.min.js")
@Scripts.Render("~/Scripts/gallery/page-delete-package.min.js")
@Scripts.Render("~/Scripts/gallery/page-edit-readme.min.js")
-}
+}
\ No newline at end of file
diff --git a/src/NuGetGallery/Views/Packages/_ManageDocumentation.cshtml b/src/NuGetGallery/Views/Packages/_ManageDocumentation.cshtml
index 9546ebbfae..60dbec160d 100644
--- a/src/NuGetGallery/Views/Packages/_ManageDocumentation.cshtml
+++ b/src/NuGetGallery/Views/Packages/_ManageDocumentation.cshtml
@@ -62,7 +62,7 @@
- @Html.Partial("_EditForm")
+ @Html.Partial("_EditForm", Model)
\ No newline at end of file