From 03e034746d39c68375b413b3122d6b663341a5b4 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Tue, 28 Feb 2012 14:31:25 -0800 Subject: [PATCH] #18472: Fixing sluggish technical names generation Work Item: 18472 --HG-- branch : 1.x --- .../Controllers/AdminController.cs | 14 ++++++++++---- .../Views/Admin/AddFieldTo.cshtml | 5 ++++- .../Orchard.ContentTypes/Views/Admin/Create.cshtml | 6 +++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs index db04dadad..b0a677c21 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs @@ -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) { diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/AddFieldTo.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/AddFieldTo.cshtml index a4d526126..dc51a92be 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/AddFieldTo.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/AddFieldTo.cshtml @@ -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" ); diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Create.cshtml b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Create.cshtml index 9bd5c5dc1..108660ed5 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Create.cshtml +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Views/Admin/Create.cshtml @@ -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" );