MarkDownSetting.jsx 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { createSubscribedElement } from '../../UnstatedUtils';
  5. import AppContainer from '../../../services/AppContainer';
  6. class MarkdownSetting extends React.Component {
  7. constructor(props) {
  8. super(props);
  9. this.state = {
  10. };
  11. }
  12. render() {
  13. const { t } = this.props;
  14. return (
  15. <React.Fragment>
  16. <div className="row my-3">
  17. <div className="form-group">
  18. <legend>{ t('markdown_setting.line_break_setting') }</legend>
  19. <p className="well">{ t('markdown_setting.line_break_setting_desc') }</p>
  20. <fieldset className="row">
  21. <div className="form-group">
  22. <label className="col-xs-4 control-label text-right">
  23. { t('markdown_setting.Enable Line Break') }
  24. </label>
  25. <div className="col-xs-5">
  26. <div className="btn-group btn-toggle" data-toggle="buttons">
  27. <label className="btn btn-default btn-rounded btn-outline" data-active-class="primary">
  28. <input name="{{nameForIsXssEnabled}}" value="true" type="radio" />
  29. ON
  30. </label>
  31. <label className="btn btn-default btn-rounded btn-outline" data-active-class="default">
  32. <input name="{{nameForIsXssEnabled}}" value="false" type="radio" />
  33. OFF
  34. </label>
  35. </div>
  36. <p className="help-block">{ t('markdown_setting.Enable Line Break desc') }</p>
  37. </div>
  38. </div>
  39. </fieldset>
  40. <fieldset className="row">
  41. <div className="form-group my-3">
  42. <label className="col-xs-4 control-label text-right">
  43. { t('markdown_setting.Enable Line Break for comment') }
  44. </label>
  45. <div className="col-xs-5">
  46. <div className="btn-group btn-toggle" data-toggle="buttons">
  47. <label className="btn btn-default btn-rounded btn-outline" data-active-class="primary">
  48. <input name="{{nameForIsXssEnabled}}" value="true" type="radio" />
  49. ON
  50. </label>
  51. <label className="btn btn-default btn-rounded btn-outline" data-active-class="default">
  52. <input name="{{nameForIsXssEnabled}}" value="false" type="radio" />
  53. OFF
  54. </label>
  55. </div>
  56. <p className="help-block">{ t('markdown_setting.Enable Line Break for comment desc') }</p>
  57. </div>
  58. </div>
  59. </fieldset>
  60. </div>
  61. <div className="form-group my-3">
  62. <div className="col-xs-offset-4 col-xs-5">
  63. <input type="hidden" name="_csrf" value="{{ csrf() }}" />
  64. <button type="submit" className="btn btn-primary">{ t('Update') }</button>
  65. </div>
  66. </div>
  67. </div>
  68. <div className="row my-3">
  69. <div className="form-group">
  70. <legend>{ t('markdown_setting.presentation_setting') }</legend>
  71. <p className="well">{ t('markdown_setting.presentation_setting_desc') }</p>
  72. </div>
  73. <fieldset className="form-group row my-2">
  74. <label className="col-xs-3 control-label text-right">
  75. { t('markdown_setting.Page break setting') }
  76. </label>
  77. <div className="col-xs-3 radio radio-primary">
  78. <input type="radio" id="pageBreakOption1" value="1" />
  79. <label htmlFor="pageBreakOption1">
  80. <p className="font-weight-bold">{ t('markdown_setting.Preset one separator') }</p>
  81. <p className="mt-3">
  82. { t('markdown_setting.Preset one separator desc') }
  83. <pre><code>{ t('markdown_setting.Preset one separator value') }</code></pre>
  84. </p>
  85. </label>
  86. </div>
  87. <div className="col-xs-3 radio radio-primary mt-3">
  88. <input type="radio" id="pageBreakOption2" value="2" />
  89. <label htmlFor="pageBreakOption2">
  90. <p className="font-weight-bold">{ t('markdown_setting.Preset two separator') }</p>
  91. <p className="mt-3">
  92. { t('markdown_setting.Preset two separator desc') }
  93. <pre><code>{ t('markdown_setting.Preset two separator value') }</code></pre>
  94. </p>
  95. </label>
  96. </div>
  97. <div className="col-xs-3 radio radio-primary mt-3">
  98. <input type="radio" id="pageBreakOption3" value="3" />
  99. <label htmlFor="pageBreakOption3">
  100. <p className="font-weight-bold">{ t('markdown_setting.Custom separator') }</p>
  101. <p className="mt-3">
  102. { t('markdown_setting.Custom separator desc') }
  103. <div>
  104. <input className="form-control" />
  105. </div>
  106. </p>
  107. </label>
  108. </div>
  109. <div className="form-group my-3">
  110. <div className="col-xs-offset-4 col-xs-5">
  111. <input type="hidden" name="_csrf" value="{{ csrf() }}" />
  112. <button type="submit" className="btn btn-primary">{ t('Update') }</button>
  113. </div>
  114. </div>
  115. </fieldset>
  116. </div>
  117. <div className="row my-3">
  118. <div className="form-group">
  119. <legend>{ t('markdown_setting.XSS_setting') }</legend>
  120. <p className="well">{ t('markdown_setting.XSS_setting_desc') }</p>
  121. </div>
  122. <fieldset className="row">
  123. <div className="form-group">
  124. <label className="col-xs-4 control-label text-right">
  125. { t('markdown_setting.Enable XSS prevention') }
  126. </label>
  127. <div className="col-xs-5">
  128. <div className="btn-group btn-toggle" data-toggle="buttons">
  129. <label className="btn btn-default btn-rounded btn-outline" data-active-class="primary">
  130. <input name="{{nameForIsXssEnabled}}" value="true" type="radio" />
  131. ON
  132. </label>
  133. <label className="btn btn-default btn-rounded btn-outline" data-active-class="default">
  134. <input name="{{nameForIsXssEnabled}}" value="false" type="radio" />
  135. OFF
  136. </label>
  137. </div>
  138. </div>
  139. </div>
  140. </fieldset>
  141. </div>
  142. </React.Fragment>
  143. );
  144. }
  145. }
  146. const MarkdownSettingWrapper = (props) => {
  147. return createSubscribedElement(MarkdownSetting, props, [AppContainer]);
  148. };
  149. MarkdownSetting.propTypes = {
  150. t: PropTypes.func.isRequired, // i18next
  151. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  152. };
  153. export default withTranslation()(MarkdownSettingWrapper);