itizawa 6 лет назад
Родитель
Сommit
532a722aec

+ 1 - 1
src/client/js/components/Admin/MarkdownSetting/LineBreakForm.jsx

@@ -66,7 +66,7 @@ class LineBreakForm extends React.Component {
         </fieldset>
         <div className="form-group my-3">
           <div className="col-xs-offset-4 col-xs-5">
-            <button type="submit" className="btn btn-primary" onClick={this.changeLineBreakSettings}>{ t('Update') }</button>
+            <button type="submit" className="btn btn-primary" onClick={this.onClickSubmit}>{ t('Update') }</button>
           </div>
         </div>
       </React.Fragment>

+ 4 - 8
src/client/js/services/MarkDownSettingContainer.js

@@ -47,14 +47,10 @@ export default class MarkDownSettingContainer extends Container {
    */
   async updateLineBreakSetting() {
 
-    // const response = await this.appContainer.apiv3.put('/markdown-setting/xss', {
-    //   isEnabledXss: this.state.isEnabledXss,
-    //   xssOption: this.state.xssOption,
-    //   tagWhiteList: this.state.tagWhiteList,
-    //   attrWhiteList: this.state.attrWhiteList,
-    // });
-
-    const response = 'test';
+    const response = await this.appContainer.apiv3.put('/markdown-setting/lineBreak', {
+      isEnabledLinebreaks: this.state.isEnabledLinebreaks,
+      isEnabledLinebreaksInComments: this.state.isEnabledLinebreaksInComments,
+    });
 
     return response;
   }

+ 24 - 0
src/server/routes/apiv3/markdown-setting.js

@@ -29,6 +29,30 @@ module.exports = (crowi) => {
 
   const { ApiV3FormValidator } = crowi.middlewares;
 
+  validator.lineBreak = [
+    body('isEnabledLinebreaks').isBoolean(),
+    body('isEnabledLinebreaksInComments').isBoolean(),
+  ];
+  // TODO swagger
+  router.put('/lineBreak', loginRequiredStrictly, adminRequired, csrf, validator.lineBreak, ApiV3FormValidator, async(req, res) => {
+
+    const lineBreakParams = {
+      'markdown:xss:isEnabledLinebreaks': req.body.isEnabledLinebreaks,
+      'markdown:xss:isEnabledLinebreaksInComments': req.body.isEnabledLinebreaksInComments,
+    };
+
+    try {
+      await crowi.configManager.updateConfigsInTheSameNamespace('markdown', lineBreakParams);
+      return res.apiv3({ lineBreakParams });
+    }
+    catch (err) {
+      const msg = 'Error occurred in updating lineBreak';
+      logger.error('Error', err);
+      return res.apiv3Err(new ErrorV3(msg, 'update-lineBreak-failed'));
+    }
+
+  });
+
   validator.xssSetting = [
     body('isEnabledXss').isBoolean(),
     body('tagWhiteList').isArray(),

+ 1 - 0
src/server/routes/index.js

@@ -92,6 +92,7 @@ module.exports = function(crowi, app) {
 
   // markdown admin
   app.get('/admin/markdown'                   , loginRequiredStrictly , adminRequired , admin.markdown.index); // TODO delete
+  // TODO delete
   app.post('/_api/admin/markdown/lineBreaksSetting', loginRequiredStrictly , adminRequired , csrf, form.admin.markdown, admin.markdown.lineBreaksSetting); // change form name
   app.post('/admin/markdown/presentationSetting', loginRequiredStrictly , adminRequired , csrf, form.admin.markdownPresentation, admin.markdown.presentationSetting);