From d88b2e3905d146a45b687750bdea74f3c78b6c0f Mon Sep 17 00:00:00 2001 From: Pawel Jankowski Date: Mon, 11 Dec 2017 10:06:32 +0100 Subject: [PATCH] Localize validation message implemented. Misspelled menu item fixed. --- .../TestEmailNewsletterSignupController.cs | 18 ++++++++ sample/TestWebApp/Views/Shared/_Layout.cshtml | 3 +- .../Localization.cshtml | 41 +++++++++++++++++++ .../TagHelpers/RecaptchaScriptTagHelper.cs | 6 ++- 4 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml diff --git a/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs b/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs index 2979bee..6dc2fe0 100644 --- a/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs +++ b/sample/TestWebApp/Controllers/TestEmailNewsletterSignupController.cs @@ -25,6 +25,24 @@ public IActionResult Index(TestEmailNewsletterViewModel viewModel) return View(); } + [HttpGet] + public IActionResult Localization() + { + return View(); + } + + [ValidateRecaptcha] + [HttpPost] + public IActionResult Localization(TestEmailNewsletterViewModel viewModel) + { + if (ModelState.IsValid) + { + return RedirectToAction(nameof(ThankYou), new { name = viewModel.Name }); + } + + return View(); + } + [HttpGet] public IActionResult DarkTheme() { diff --git a/sample/TestWebApp/Views/Shared/_Layout.cshtml b/sample/TestWebApp/Views/Shared/_Layout.cshtml index 759623c..5bc9aa9 100644 --- a/sample/TestWebApp/Views/Shared/_Layout.cshtml +++ b/sample/TestWebApp/Views/Shared/_Layout.cshtml @@ -26,7 +26,8 @@
  • Dark theme
  • Compact size
  • Audio type
  • -
  • Jqyery validation disabled
  • +
  • Message localization
  • +
  • Jquery validation disabled
  • diff --git a/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml b/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml new file mode 100644 index 0000000..accbbfe --- /dev/null +++ b/sample/TestWebApp/Views/TestEmailNewsletterSignup/Localization.cshtml @@ -0,0 +1,41 @@ +@{ + ViewBag.Title = "Signup for our awesome newsletter"; +} +@model TestEmailNewsletterViewModel +@using PaulMiami.AspNetCore.Mvc.Recaptcha + + +
    +

    @ViewBag.Title

    +
    +
    +
    + +
    + + +
    +
    +
    + +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + +
    +
    +
    + +@section Scripts { + +} diff --git a/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs b/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs index c537b10..098cb25 100644 --- a/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs +++ b/src/PaulMiami.AspNetCore.Mvc.Recaptcha/TagHelpers/RecaptchaScriptTagHelper.cs @@ -20,6 +20,7 @@ public class RecaptchaScriptTagHelper : TagHelper private const string JqueryValidationAttributeName = "jquery-validation"; private const string ValidationMessageElementIdAttributeName = "validation-message-element-id"; + private const string ValidationMessageAttributeName = "validation-message"; public RecaptchaScriptTagHelper(IRecaptchaConfigurationService service, IHttpContextAccessor contextAccessor) { @@ -36,6 +37,9 @@ public RecaptchaScriptTagHelper(IRecaptchaConfigurationService service, IHttpCon [HtmlAttributeName(ValidationMessageElementIdAttributeName)] public string ValidationMessageElementId { get; set; } + [HtmlAttributeName(ValidationMessageAttributeName)] + public string ValidationMessage { get; set; } + public override void Process(TagHelperContext context, TagHelperOutput output) { if (!_service.Enabled) @@ -63,7 +67,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) var script = new TagBuilder("script"); script.TagRenderMode = TagRenderMode.Normal; script.InnerHtml.AppendHtml(string.Format(_scriptSnippet, - RecaptchaTagHelper.RecaptchaValidationJSCallBack, ValidationMessageElementId, _service.ValidationMessage)); + RecaptchaTagHelper.RecaptchaValidationJSCallBack, ValidationMessageElementId, ValidationMessage ?? _service.ValidationMessage)); output.PostElement.AppendHtml(script); }