yusuketk 6 лет назад
Родитель
Сommit
a85d6edb17
2 измененных файлов с 33 добавлено и 0 удалено
  1. 31 0
      src/client/js/components/Admin/App/AppSetting.jsx
  2. 2 0
      src/server/models/config.js

+ 31 - 0
src/client/js/components/Admin/App/AppSetting.jsx

@@ -1,20 +1,51 @@
 import React from 'react';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
+import loggerFactory from '@alias/logger';
 
 import { createSubscribedElement } from '../../UnstatedUtils';
+import { toastSuccess, toastError } from '../../../util/apiNotification';
 
 import AppContainer from '../../../services/AppContainer';
 
+const logger = loggerFactory('growi:importer');
+
 class AppSetting extends React.Component {
 
   constructor(props) {
     super(props);
 
+    const { appContainer } = this.props;
+
     this.state = {
+      siteName: appContainer.config.crowi.title,
+      confidentialName: appContainer.config.confidential,
+      globalLang: appContainer.config.globalLang,
+      fileUpload: appContainer.config.fileUpload,
     };
+
+    this.onClickSubmit = this.onClickSubmit.bind(this);
   }
 
+  async onClickSubmit() {
+    const { t } = this.props;
+
+    const params = {
+      'app:title': this.state.siteName,
+      'app:confidential': this.state.confidentialName,
+      'app:globalLang': this.state.globalLang,
+      'app:fileUpload': this.state.fileUpload,
+    };
+
+    try {
+      await this.appContainer.apiPost('/admin/settings/app', params);
+      toastSuccess(t('app_setting.updated_app_setting'));
+    }
+    catch (err) {
+      toastError(err);
+      logger.error(err);
+    }
+  }
 
   render() {
     const { t } = this.props;

+ 2 - 0
src/server/models/config.js

@@ -196,6 +196,8 @@ module.exports = function(crowi) {
       recentCreatedLimit: crowi.configManager.getConfig('crowi', 'customize:showRecentCreatedNumber'),
       isAclEnabled: crowi.aclService.isAclEnabled(),
       globalLang: crowi.configManager.getConfig('crowi', 'app:globalLang'),
+      fileUpload: crowi.configManager.getConfig('crowi', 'app:fileUpload'),
+      confidential: crowi.configManager.getConfig('crowi', 'app:confidential'),
     };
 
     return localConfig;