#18472: Fixing sluggish technical names generation

Work Item: 18472

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2012-02-28 14:31:25 -08:00
parent c5f5715b42
commit 03e034746d
3 changed files with 19 additions and 6 deletions

View File

@@ -90,12 +90,18 @@ namespace Orchard.ContentTypes.Controllers {
return RedirectToAction("AddPartsTo", new { id = typeViewModel.Name });
}
public ActionResult ContentTypeName(string displayName) {
return Json(_contentDefinitionService.GenerateContentTypeNameFromDisplayName(displayName));
public ActionResult ContentTypeName(string displayName, int version) {
return Json(new {
result = _contentDefinitionService.GenerateContentTypeNameFromDisplayName(displayName),
version = version
});
}
public ActionResult FieldName(string partName, string displayName) {
return Json(_contentDefinitionService.GenerateFieldNameFromDisplayName(partName, displayName));
public ActionResult FieldName(string partName, string displayName, int version) {
return Json(new {
result = _contentDefinitionService.GenerateFieldNameFromDisplayName(partName, displayName),
version = version
});
}
public ActionResult Edit(string id) {

View File

@@ -49,10 +49,13 @@
$.post(jsonUrl, {
partName: partName,
displayName: $displayName.val(),
version: ++version,
__RequestVerificationToken: $("input[name=__RequestVerificationToken]").val()
},
function(data) {
$name.val(data);
if(version == data.version) {
$name.val(data.result);
}
},
"json"
);

View File

@@ -23,6 +23,7 @@
var $name = $("#@Html.FieldIdFor(m=>m.Name)");
var $displayName = $("#@Html.FieldIdFor(m=>m.DisplayName)");
var jsonUrl = "@Url.Action("ContentTypeName", "Admin", new RouteValueDictionary { {"Area","Orchard.ContentTypes"} } )";
var version = 0;
var nameAltered;
$name.keypress(function() {
@@ -37,10 +38,13 @@
$.post(jsonUrl, {
displayName: $displayName.val(),
version: ++version,
__RequestVerificationToken: $("input[name=__RequestVerificationToken]").val()
},
function(data) {
$name.val(data);
if(version == data.version) {
$name.val(data.result);
}
},
"json"
);