EditMailOption.jsx 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import React, { useEffect, useState } from 'react';
  2. import SelectInput from 'src/components/ControlPanel/AddItemLayout/Form/SelectInput/SelectInput';
  3. import TextInput from 'src/components/ControlPanel/AddItemLayout/Form/TextInput/TextInput';
  4. import Checkbox from 'src/components/ControlPanel/AddItemLayout/Form/Checkbox/Checkbox';
  5. import { Link } from 'react-router-dom';
  6. import { useSelector } from 'react-redux';
  7. const EditMailOption = ({ data, visible }) => {
  8. const { MAIL_URL } = useSelector(state => state.userSession.session);
  9. const { i18n } = useSelector(state => state.session);
  10. const [mailCertificateSystem, setMailCertificateSystem] = useState(false);
  11. useEffect(() => {
  12. if (data.mail_certificate) {
  13. setMailCertificateSystem(true);
  14. }
  15. }, []);
  16. const getMailCertificateOptions = () => {
  17. let result = ['', ...data.ssl_domains];
  18. return result;
  19. }
  20. return (
  21. <div className="server-mail-option" style={{ display: `${visible ? 'block' : 'none'}` }}>
  22. <TextInput
  23. optionalTitle={<Link to={`/edit/server/${data.mail_system}`}>{i18n['configure']}</Link>}
  24. title={i18n['MAIL Server'] + ' / '}
  25. name="v_mail_system"
  26. value={data.mail_system}
  27. id="mail_system"
  28. disabled />
  29. {
  30. data.antivirus_system && (
  31. <TextInput
  32. optionalTitle={<Link to={`/edit/server/${data.antivirus_system}`}>{i18n['configure']}</Link>}
  33. title={i18n['Antivirus'] + ' / '}
  34. name="v_antivirus_system"
  35. value={data.antivirus_system}
  36. id="antivirus_system"
  37. disabled />
  38. )
  39. }
  40. {
  41. data.antispam_system && (
  42. <TextInput
  43. optionalTitle={<Link to={`/edit/server/${data.antispam_system}`}>{i18n['configure']}</Link>}
  44. title={i18n['DNS Server'] + ' / '}
  45. name="v_antispam_system"
  46. value={data.antispam_system}
  47. id="antispam_system"
  48. disabled />
  49. )
  50. }
  51. <TextInput
  52. title={i18n['Webmail URL']}
  53. name="v_mail_url"
  54. value={MAIL_URL}
  55. id="mail-url" />
  56. <br /><br />
  57. <Checkbox
  58. onChange={checked => setMailCertificateSystem(checked)}
  59. title={i18n['Use Web Domain SSL Certificate']}
  60. name="v_mail_ssl_domain_checkbox"
  61. id="mail-ssl-domain-checkbox"
  62. checked={!!data.mail_certificate} />
  63. {
  64. mailCertificateSystem && (
  65. <div className="mail-cert-info">
  66. <SelectInput
  67. options={getMailCertificateOptions()}
  68. selected={data.mail_certificate}
  69. name="v_mail_ssl_domain"
  70. title={i18n['Domain']}
  71. id="mail-ssl-domain" />
  72. <div className="additional-info">
  73. {
  74. data.sys_ssl_subject && (
  75. <div>
  76. <span>{i18n['SUBJECT']}:</span>
  77. <span>{data.sys_ssl_subject}</span>
  78. </div>
  79. )
  80. }
  81. {
  82. data.sys_ssl_aliases && (
  83. <div>
  84. <span>{i18n['ALIASES']}:</span>
  85. <span>{data.sys_ssl_aliases}</span>
  86. </div>
  87. )
  88. }
  89. {
  90. data.sys_ssl_not_before && (
  91. <div>
  92. <span>{i18n['NOT_BEFORE']}:</span>
  93. <span>{data.sys_ssl_not_before}</span>
  94. </div>
  95. )
  96. }
  97. {
  98. data.sys_ssl_not_after && (
  99. <div>
  100. <span>{i18n['NOT_AFTER']}:</span>
  101. <span>{data.sys_ssl_not_after}</span>
  102. </div>
  103. )
  104. }
  105. {
  106. data.sys_ssl_signature && (
  107. <div>
  108. <span>{i18n['SIGNATURE']}:</span>
  109. <span>{data.sys_ssl_signature}</span>
  110. </div>
  111. )
  112. }
  113. {
  114. data.sys_ssl_pub_key && (
  115. <div>
  116. <span>{i18n['PUB_KEY']}:</span>
  117. <span>{data.sys_ssl_pub_key}</span>
  118. </div>
  119. )
  120. }
  121. {
  122. data.sys_ssl_issuer && (
  123. <div>
  124. <span>{i18n['ISSUER']}:</span>
  125. <span>{data.sys_ssl_issuer}</span>
  126. </div>
  127. )
  128. }
  129. </div>
  130. </div>
  131. )
  132. }
  133. </div>
  134. );
  135. }
  136. export default EditMailOption;