PageRenderTime 36ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/BlogEngine/BlogEngine.NET/contact.aspx

#
ASP.NET | 110 lines | 95 code | 15 blank | 0 comment | 11 complexity | 838f8deb9cab80111348ed385fd9f5fb MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  1. <%@ Page Language="C#" AutoEventWireup="true" Inherits="contact" ValidateRequest="false" Codebehind="contact.aspx.cs" %>
  2. <%@ Import Namespace="BlogEngine.Core" %>
  3. <asp:content id="Content1" contentplaceholderid="cphBody" runat="Server">
  4. <div id="contact" class="contact-page page-global">
  5. <div id="divForm" runat="server">
  6. <h2 class="contact-page-title page-global-title"><%=Resources.labels.contact %></h2>
  7. <div class="contact-page-message"><%=BlogSettings.Instance.ContactFormMessage %></div>
  8. <div class="form-group">
  9. <label for="<%=txtName.ClientID %>"><%=Resources.labels.name %></label>
  10. <asp:TextBox runat="server" id="txtName" cssclass="field form-control" />
  11. <asp:requiredfieldvalidator runat="server" CssClass="required-field" controltovalidate="txtName" ErrorMessage="<%$Resources:labels, required %>" validationgroup="contact" />
  12. </div>
  13. <div class="form-group">
  14. <label for="<%=txtEmail.ClientID %>"><%=Resources.labels.email %></label>
  15. <asp:TextBox runat="server" id="txtEmail" cssclass="field form-control" />
  16. <asp:requiredfieldvalidator runat="server" CssClass="required-field" controltovalidate="txtEmail" ErrorMessage="<%$Resources:labels, required %>" validationgroup="contact" /> <asp:RegularExpressionValidator runat="server" CssClass="required-field" ControlToValidate="txtEmail" display="dynamic" ErrorMessage="<%$Resources:labels, enterValidEmail %>" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" validationgroup="contact" />
  17. </div>
  18. <div class="form-group">
  19. <label for="<%=txtSubject.ClientID %>"><%=Resources.labels.subject %></label>
  20. <asp:TextBox runat="server" id="txtSubject" cssclass="field form-control" />
  21. <asp:requiredfieldvalidator runat="server" CssClass="required-field" controltovalidate="txtSubject" ErrorMessage="<%$Resources:labels, required %>" validationgroup="contact" />
  22. </div>
  23. <div class="form-group">
  24. <label for="<%=txtMessage.ClientID %>"><%=Resources.labels.message %></label>
  25. <asp:TextBox runat="server" id="txtMessage" textmode="multiline" cssclass="form-control" rows="5" columns="30" />
  26. <asp:requiredfieldvalidator runat="server" CssClass="required-field" controltovalidate="txtMessage" ErrorMessage="<%$Resources:labels, required %>" display="dynamic" validationgroup="contact" />
  27. </div>
  28. <div class="form-group">
  29. <asp:placeholder runat="server" id="phAttachment">
  30. <label for="<%=txtAttachment.ClientID %>"><%=Resources.labels.attachFile %></label>
  31. <asp:FileUpload runat="server" id="txtAttachment" />
  32. </asp:placeholder>
  33. </div>
  34. <blog:RecaptchaControl runat="server" ID="recaptcha" />
  35. <asp:HiddenField runat="server" ID="hfCaptcha" />
  36. <div class="text-right btn-wrapper">
  37. <asp:button runat="server" id="btnSend" class="btn btn-primary" Text="<%$Resources:labels, send %>" OnClientClick="return beginSendMessage();" validationgroup="contact" />
  38. <asp:label runat="server" id="lblStatus" visible="false"><%=BlogSettings.Instance.ContactErrorMessage %>.</asp:label>
  39. </div>
  40. </div>
  41. <div id="thanks">
  42. <div id="divThank" runat="Server" visible="False">
  43. <div><%=BlogSettings.Instance.ContactThankMessage %></div>
  44. </div>
  45. </div>
  46. </div>
  47. <script type="text/javascript">
  48. function beginSendMessage() {
  49. if (BlogEngine.$('<%=txtAttachment.ClientID %>') && BlogEngine.$('<%=txtAttachment.ClientID %>').value.length > 0)
  50. return true;
  51. if (!Page_ClientValidate('contact'))
  52. return false;
  53. var recaptchaResponseField = document.getElementById('recaptcha_response_field');
  54. var recaptchaResponse = recaptchaResponseField ? recaptchaResponseField.value : "";
  55. var recaptchaChallengeField = document.getElementById('recaptcha_challenge_field');
  56. var recaptchaChallenge = recaptchaChallengeField ? recaptchaChallengeField.value : "";
  57. var name = BlogEngine.$('<%=txtName.ClientID %>').value;
  58. var email = BlogEngine.$('<%=txtEmail.ClientID %>').value;
  59. var subject = BlogEngine.$('<%=txtSubject.ClientID %>').value;
  60. var message = BlogEngine.$('<%=txtMessage.ClientID %>').value;
  61. var sep = '-||-';
  62. var arg = name + sep + email + sep + subject + sep + message + sep + recaptchaResponse + sep + recaptchaChallenge;
  63. WebForm_DoCallback('__Page', arg, endSendMessage, 'contact', onSendError, false)
  64. BlogEngine.$('<%=btnSend.ClientID %>').disabled = true;
  65. return false;
  66. }
  67. function endSendMessage(arg, context) {
  68. if (arg == "RecaptchaIncorrect") {
  69. displayIncorrectCaptchaMessage();
  70. BlogEngine.$('<%=btnSend.ClientID %>').disabled = false;
  71. if (document.getElementById('recaptcha_response_field')) {
  72. Recaptcha.reload();
  73. }
  74. }
  75. else {
  76. if (document.getElementById("spnCaptchaIncorrect")) document.getElementById("spnCaptchaIncorrect").style.display = "none";
  77. BlogEngine.$('<%=btnSend.ClientID %>').disabled = false;
  78. var form = BlogEngine.$('<%=divForm.ClientID %>')
  79. var thanks = BlogEngine.$('thanks');
  80. form.style.display = 'none';
  81. thanks.innerHTML = arg;
  82. }
  83. }
  84. function displayIncorrectCaptchaMessage() {
  85. if (document.getElementById("spnCaptchaIncorrect")) document.getElementById("spnCaptchaIncorrect").style.display = "";
  86. }
  87. function onSendError(err, context) {
  88. if (document.getElementById('recaptcha_response_field')) {
  89. Recaptcha.reload();
  90. }
  91. BlogEngine.$('<%=btnSend.ClientID %>').disabled = false;
  92. alert("Sorry, but the following occurred while attemping to send your message: " + err);
  93. }
  94. </script>
  95. </asp:content>