Просмотр исходного кода

Remove currentBrandLogo variable

https://youtrack.weseek.co.jp/issue/GW-7759
- Remove currentBrandLogo variable
- Update customizedLogoSrc to null if isDefaultLogo true
- Adjust customizedLogoSrc implementation in customize-settings route
Mudana-Grune 3 лет назад
Родитель
Сommit
52c05fe0e2

+ 1 - 1
packages/app/src/components/Admin/Customize/Customize.jsx

@@ -17,11 +17,11 @@ import CustomizeFunctionSetting from './CustomizeFunctionSetting';
 import CustomizeHeaderSetting from './CustomizeHeaderSetting';
 import CustomizeHeaderSetting from './CustomizeHeaderSetting';
 import CustomizeHighlightSetting from './CustomizeHighlightSetting';
 import CustomizeHighlightSetting from './CustomizeHighlightSetting';
 import CustomizeLayoutSetting from './CustomizeLayoutSetting';
 import CustomizeLayoutSetting from './CustomizeLayoutSetting';
+import CustomizeLogoSetting from './CustomizeLogoSetting';
 import CustomizeScriptSetting from './CustomizeScriptSetting';
 import CustomizeScriptSetting from './CustomizeScriptSetting';
 import CustomizeSidebarSetting from './CustomizeSidebarSetting';
 import CustomizeSidebarSetting from './CustomizeSidebarSetting';
 import CustomizeThemeSetting from './CustomizeThemeSetting';
 import CustomizeThemeSetting from './CustomizeThemeSetting';
 import CustomizeTitle from './CustomizeTitle';
 import CustomizeTitle from './CustomizeTitle';
-import CustomizeLogoSetting from './CustomizeLogoSetting';
 
 
 const logger = loggerFactory('growi:services:AdminCustomizePage');
 const logger = loggerFactory('growi:services:AdminCustomizePage');
 
 

+ 10 - 10
packages/app/src/components/Admin/Customize/CustomizeLogoSetting.tsx

@@ -20,14 +20,14 @@ const CustomizeLogoSetting = (): JSX.Element => {
   const [isImageCropModalShow, setIsImageCropModalShow] = useState<boolean>(false);
   const [isImageCropModalShow, setIsImageCropModalShow] = useState<boolean>(false);
   const [isDefaultLogo, setIsDefaultLogo] = useState<boolean>(true);
   const [isDefaultLogo, setIsDefaultLogo] = useState<boolean>(true);
   const [retrieveError, setRetrieveError] = useState<string | null>(null);
   const [retrieveError, setRetrieveError] = useState<string | null>(null);
-  const [currentBrandLogoSrc, setCurrentBrandLogoSrc] = useState< string | null >(null);
+  const [customizedLogoSrc, setCustomizedBrandLogoSrc] = useState< string | null >(null);
 
 
   const retrieveData = useCallback(async() => {
   const retrieveData = useCallback(async() => {
     try {
     try {
       const response = await apiv3Get('/customize-setting/customize-logo');
       const response = await apiv3Get('/customize-setting/customize-logo');
-      const { isDefaultLogo, currentBrandLogoSrc } = response.data;
+      const { isDefaultLogo, customizedLogoSrc } = response.data;
       setIsDefaultLogo(isDefaultLogo);
       setIsDefaultLogo(isDefaultLogo);
-      setCurrentBrandLogoSrc(currentBrandLogoSrc);
+      setCustomizedBrandLogoSrc(customizedLogoSrc);
     }
     }
     catch (err) {
     catch (err) {
       setRetrieveError(err);
       setRetrieveError(err);
@@ -52,22 +52,22 @@ const CustomizeLogoSetting = (): JSX.Element => {
     try {
     try {
       const response = await apiv3Put('/customize-setting/customize-logo', {
       const response = await apiv3Put('/customize-setting/customize-logo', {
         isDefaultLogo,
         isDefaultLogo,
-        currentBrandLogoSrc,
+        customizedLogoSrc,
       });
       });
       const { customizedParams } = response.data;
       const { customizedParams } = response.data;
-      setCurrentBrandLogoSrc(customizedParams.currentBrandLogoSrc);
+      setCustomizedBrandLogoSrc(customizedParams.customizedLogoSrc);
       toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.custom_logo') }));
       toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.custom_logo') }));
     }
     }
     catch (err) {
     catch (err) {
       toastError(err);
       toastError(err);
     }
     }
-  }, [t, isDefaultLogo, currentBrandLogoSrc]);
+  }, [t, isDefaultLogo, customizedLogoSrc]);
 
 
 
 
   const onClickDeleteBtn = useCallback(async() => {
   const onClickDeleteBtn = useCallback(async() => {
     try {
     try {
       await apiv3Delete('/customize-setting/delete-brand-logo');
       await apiv3Delete('/customize-setting/delete-brand-logo');
-      setCurrentBrandLogoSrc(null);
+      setCustomizedBrandLogoSrc(null);
       toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.current_logo') }));
       toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.current_logo') }));
     }
     }
     catch (err) {
     catch (err) {
@@ -82,7 +82,7 @@ const CustomizeLogoSetting = (): JSX.Element => {
       const formData = new FormData();
       const formData = new FormData();
       formData.append('file', croppedImage);
       formData.append('file', croppedImage);
       const { data } = await apiv3PostForm('/customize-setting/upload-brand-logo', formData);
       const { data } = await apiv3PostForm('/customize-setting/upload-brand-logo', formData);
-      setCurrentBrandLogoSrc(data.attachment.filePathProxied);
+      setCustomizedBrandLogoSrc(data.attachment.filePathProxied);
       toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.current_logo') }));
       toastSuccess(t('toaster.update_successed', { target: t('admin:customize_setting.current_logo') }));
     }
     }
     catch (err) {
     catch (err) {
@@ -142,8 +142,8 @@ const CustomizeLogoSetting = (): JSX.Element => {
                     { t('admin:customize_setting.current_logo') }
                     { t('admin:customize_setting.current_logo') }
                   </label>
                   </label>
                   <div className="col-sm-8 col-12">
                   <div className="col-sm-8 col-12">
-                    <p><img src={currentBrandLogoSrc || DEFAULT_LOGO} className="picture picture-lg " id="settingBrandLogo" width="64" /></p>
-                    {(currentBrandLogoSrc != null) && (
+                    <p><img src={customizedLogoSrc || DEFAULT_LOGO} className="picture picture-lg " id="settingBrandLogo" width="64" /></p>
+                    {(customizedLogoSrc != null) && (
                       <button type="button" className="btn btn-danger" onClick={onClickDeleteBtn}>
                       <button type="button" className="btn btn-danger" onClick={onClickDeleteBtn}>
                         { t('admin:customize_setting.delete_logo') }
                         { t('admin:customize_setting.delete_logo') }
                       </button>
                       </button>

+ 2 - 2
packages/app/src/server/models/config.ts

@@ -190,7 +190,7 @@ export const defaultNotificationConfigs: { [key: string]: any } = {
 
 
 schema.statics.getLocalconfig = function(crowi) {
 schema.statics.getLocalconfig = function(crowi) {
   const env = process.env;
   const env = process.env;
-
+  const isDefaultLogo = crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
   const localConfig = {
   const localConfig = {
     crowi: {
     crowi: {
       title: crowi.appService.getAppTitle(),
       title: crowi.appService.getAppTitle(),
@@ -245,7 +245,7 @@ schema.statics.getLocalconfig = function(crowi) {
     globalLang: crowi.configManager.getConfig('crowi', 'app:globalLang'),
     globalLang: crowi.configManager.getConfig('crowi', 'app:globalLang'),
     pageLimitationL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationL'),
     pageLimitationL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationL'),
     pageLimitationXL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationXL'),
     pageLimitationXL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationXL'),
-    customizedLogoSrc: crowi.configManager.getConfig('crowi', 'customize:customizedLogoSrc'),
+    customizedLogoSrc: isDefaultLogo ? null : crowi.configManager.getConfig('crowi', 'customize:customizedLogoSrc'),
     auditLogEnabled: crowi.configManager.getConfig('crowi', 'app:auditLogEnabled'),
     auditLogEnabled: crowi.configManager.getConfig('crowi', 'app:auditLogEnabled'),
     activityExpirationSeconds: crowi.configManager.getConfig('crowi', 'app:activityExpirationSeconds'),
     activityExpirationSeconds: crowi.configManager.getConfig('crowi', 'app:activityExpirationSeconds'),
     auditLogAvailableActions: crowi.activityService.getAvailableActions(false),
     auditLogAvailableActions: crowi.activityService.getAvailableActions(false),

+ 8 - 10
packages/app/src/server/routes/apiv3/customize-setting.js

@@ -161,7 +161,7 @@ module.exports = (crowi) => {
     ],
     ],
     logo: [
     logo: [
       body('isDefaultLogo').isBoolean().optional({ nullable: true }),
       body('isDefaultLogo').isBoolean().optional({ nullable: true }),
-      body('currentBrandLogoSrc').isString().optional({ nullable: true }),
+      body('customizedLogoSrc').isString().optional({ nullable: true }),
     ],
     ],
   };
   };
 
 
@@ -692,26 +692,25 @@ module.exports = (crowi) => {
   router.get('/customize-logo', loginRequiredStrictly, adminRequired, async(req, res) => {
   router.get('/customize-logo', loginRequiredStrictly, adminRequired, async(req, res) => {
     const defaultLogoConfig = await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
     const defaultLogoConfig = await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
     const isDefaultLogo = defaultLogoConfig === undefined || defaultLogoConfig;
     const isDefaultLogo = defaultLogoConfig === undefined || defaultLogoConfig;
-    const currentBrandLogoSrc = await crowi.configManager.getConfig('crowi', 'customize:currentBrandLogoSrc');
-    return res.apiv3({ isDefaultLogo, currentBrandLogoSrc });
+    const customizedLogoSrc = await crowi.configManager.getConfig('crowi', 'customize:customizedLogoSrc');
+    return res.apiv3({ isDefaultLogo, customizedLogoSrc });
   });
   });
 
 
   router.put('/customize-logo', apiLimiter, loginRequiredStrictly, adminRequired, csrf, validator.logo, apiV3FormValidator, async(req, res) => {
   router.put('/customize-logo', apiLimiter, loginRequiredStrictly, adminRequired, csrf, validator.logo, apiV3FormValidator, async(req, res) => {
 
 
     const {
     const {
-      isDefaultLogo, currentBrandLogoSrc,
+      isDefaultLogo, customizedLogoSrc,
     } = req.body;
     } = req.body;
 
 
     const requestParams = {
     const requestParams = {
       'customize:isDefaultLogo': isDefaultLogo,
       'customize:isDefaultLogo': isDefaultLogo,
-      'customize:currentBrandLogoSrc': currentBrandLogoSrc,
-      'customize:customizedLogoSrc': isDefaultLogo ? null : currentBrandLogoSrc,
+      'customize:customizedLogoSrc': customizedLogoSrc,
     };
     };
     try {
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
       const customizedParams = {
       const customizedParams = {
         isDefaultLogo: await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo'),
         isDefaultLogo: await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo'),
-        currentBrandLogoSrc: await crowi.configManager.getConfig('crowi', 'customize:currentBrandLogoSrc'),
+        customizedLogoSrc: await crowi.configManager.getConfig('crowi', 'customize:customizedLogoSrc'),
       };
       };
       return res.apiv3({ customizedParams });
       return res.apiv3({ customizedParams });
     }
     }
@@ -752,8 +751,7 @@ module.exports = (crowi) => {
         attachment = await attachmentService.createAttachment(file, req.user, null, AttachmentType.BRAND_LOGO);
         attachment = await attachmentService.createAttachment(file, req.user, null, AttachmentType.BRAND_LOGO);
         const isDefaultLogo = await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
         const isDefaultLogo = await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
         const attachmentConfigParams = {
         const attachmentConfigParams = {
-          'customize:currentBrandLogoSrc': attachment.filePathProxied,
-          'customize:customizedLogoSrc': isDefaultLogo ? null : attachment.filePathProxied,
+          'customize:customizedLogoSrc': attachment.filePathProxied,
         };
         };
 
 
         await crowi.configManager.updateConfigsInTheSameNamespace('crowi', attachmentConfigParams);
         await crowi.configManager.updateConfigsInTheSameNamespace('crowi', attachmentConfigParams);
@@ -780,7 +778,7 @@ module.exports = (crowi) => {
         const isDefaultLogo = await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
         const isDefaultLogo = await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo');
         // update attachmentId immediately
         // update attachmentId immediately
         const attachmentConfigParams = {
         const attachmentConfigParams = {
-          'customize:currentBrandLogoSrc': null,
+          'customize:customizedLogoSrc': null,
         };
         };
         if (!isDefaultLogo) {
         if (!isDefaultLogo) {
           attachmentConfigParams['customize:customizedLogoSrc'] = null;
           attachmentConfigParams['customize:customizedLogoSrc'] = null;