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

Remove isUploadedLogo variable

https://youtrack.weseek.co.jp/issue/GW-7759
- Remove implementation of isUploadedLogo  variable
- Set uploadedLogoSrc state to null
- Modify logo source on upload logo form
- Modify condition to show delete logo button
- Modify condition of logoSrc by isDefaultLogo and uploadedLogoSrc in GrowiNavbar
I Komang Mudana 3 лет назад
Родитель
Сommit
e41bdd1ba3

+ 2 - 11
packages/app/src/client/services/AdminCustomizeContainer.js

@@ -56,8 +56,7 @@ export default class AdminCustomizeContainer extends Container {
         'tomorrow-night':   { name: '[Dark] Tomorrow Night',  border: false },
         'vs2015':           { name: '[Dark] Vs 2015',         border: false },
       },
-      uploadedLogoSrc: '',
-      isUploadedLogo: false,
+      uploadedLogoSrc: null,
       defaultLogoSrc: DEFAULT_LOGO,
       isDefaultLogo: false,
       attachmentId: '',
@@ -108,13 +107,9 @@ export default class AdminCustomizeContainer extends Container {
         attachmentId: customizeParams.attachmentId,
         isDefaultLogo: customizeParams.isDefaultLogo,
         uploadedLogoSrc: customizeParams.uploadedLogoSrc,
-        isUploadedLogo: customizeParams.uploadedLogoSrc,
       });
       // search style name from object for display
       this.setState({ currentHighlightJsStyleName: this.state.highlightJsCssSelectorOptions[customizeParams.styleName].name });
-      if (customizeParams.attachmentId == null) {
-        this.setState({ uploadedLogoSrc: DEFAULT_LOGO, isUploadedLogo: false });
-      }
 
     }
     catch (err) {
@@ -453,8 +448,7 @@ export default class AdminCustomizeContainer extends Container {
       };
       await this.appContainer.apiPost('/attachments.removeBrandLogo', formData);
       this.setState({
-        isUploadedLogo: false,
-        uploadedLogoSrc: DEFAULT_LOGO,
+        uploadedLogoSrc: null,
         attachmentId: null,
       });
 
@@ -476,7 +470,6 @@ export default class AdminCustomizeContainer extends Container {
       const response = await this.appContainer.apiPost('/attachments.uploadBrandLogo', formData);
 
       this.setState({
-        isUploadedLogo: true,
         uploadedLogoSrc: response.attachment.filePathProxied,
         attachmentId: response.attachment.id,
       });
@@ -498,14 +491,12 @@ export default class AdminCustomizeContainer extends Container {
         isDefaultLogo: this.state.isDefaultLogo,
         attachmentId: this.state.attachmentId,
         uploadedLogoSrc: this.state.uploadedLogoSrc,
-        isUploadedLogo: this.state.isUploadedLogo,
       });
       const { customizedParams } = response.data;
       this.setState({
         isDefaultLogo: customizedParams.isDefaultLogo,
         attachmentId:  customizedParams.attachmentId,
         uploadedLogoSrc: customizedParams.uploadedLogoSrc,
-        isUploadedLogo: customizedParams.isUploaded,
       });
     }
     catch (err) {

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

@@ -25,7 +25,7 @@ const CustomizeLogoSetting: FC<Props> = (props: Props) => {
   const [isShow, setIsShow] = useState<boolean>(false);
   const [src, setSrc] = useState<ArrayBuffer | string | null>(null);
   const {
-    uploadedLogoSrc, isUploadedLogo, isDefaultLogo, defaultLogoSrc,
+    uploadedLogoSrc, isDefaultLogo, defaultLogoSrc,
   } = adminCustomizeContainer.state;
 
   const hideModal = () => {
@@ -125,8 +125,8 @@ const CustomizeLogoSetting: FC<Props> = (props: Props) => {
                     { t('admin:customize_setting.current_logo') }
                   </label>
                   <div className="col-sm-8 col-12">
-                    {uploadedLogoSrc && (<p><img src={uploadedLogoSrc} className="picture picture-lg " id="settingBrandLogo" width="64" /></p>)}
-                    {isUploadedLogo && (
+                    <p><img src={uploadedLogoSrc || defaultLogoSrc} className="picture picture-lg " id="settingBrandLogo" width="64" /></p>
+                    {(uploadedLogoSrc != null) && (
                       <button type="button" className="btn btn-danger" onClick={onClickDeleteBtn}>
                         { t('admin:customize_setting.delete_logo') }
                       </button>

+ 2 - 2
packages/app/src/components/Navbar/GrowiNavbar.tsx

@@ -102,11 +102,11 @@ const GrowiNavbar = (props) => {
   const { appContainer } = props;
   const { currentUser } = appContainer;
   const {
-    crowi, isSearchServiceConfigured, isDefaultLogo, isUploadedLogo, uploadedLogoSrc,
+    crowi, isSearchServiceConfigured, isDefaultLogo, uploadedLogoSrc,
   } = appContainer.config;
   const { data: isDeviceSmallerThanMd } = useIsDeviceSmallerThanMd();
   const { data: isSearchPage } = useIsSearchPage();
-  const logoSrc = (isUploadedLogo && !isDefaultLogo) ? uploadedLogoSrc : null;
+  const logoSrc = (!isDefaultLogo && uploadedLogoSrc != null) ? uploadedLogoSrc : null;
   return (
     <>
       {/* Brand Logo  */}

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

@@ -137,7 +137,6 @@ export const defaultCrowiConfigs: { [key: string]: any } = {
   'customize:isSearchScopeChildrenAsDefault': false,
   'customize:isDefaultLogo': true,
   'customize:uploadedLogoSrc': undefined,
-  'customize:isUploadedLogo': false,
 
   'notification:owner-page:isEnabled': false,
   'notification:group-page:isEnabled': false,
@@ -247,7 +246,6 @@ schema.statics.getLocalconfig = function(crowi) {
     pageLimitationXL: crowi.configManager.getConfig('crowi', 'customize:showPageLimitationXL'),
     isDefaultLogo:  crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo'),
     uploadedLogoSrc: crowi.configManager.getConfig('crowi', 'customize:uploadedLogoSrc'),
-    isUploadedLogo: crowi.configManager.getConfig('crowi', 'customize:isUploadedLogo'),
   };
 
   return localConfig;

+ 1 - 4
packages/app/src/server/routes/apiv3/customize-setting.js

@@ -185,7 +185,6 @@ module.exports = (crowi) => {
       attachmentId: await crowi.configManager.getConfig('crowi', 'customize:attachmentId'),
       isDefaultLogo: await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo'),
       uploadedLogoSrc: await crowi.configManager.getConfig('crowi', 'customize:uploadedLogoSrc'),
-      isUploadedLogo: await crowi.configManager.getConfig('crowi', 'customize:isUploadedLogo'),
     };
 
     return res.apiv3({ customizeParams });
@@ -621,14 +620,13 @@ module.exports = (crowi) => {
   router.put('/customize-logo', loginRequiredStrictly, adminRequired, csrf, validator.logo, apiV3FormValidator, async(req, res) => {
 
     const {
-      isDefaultLogo, attachmentId, uploadedLogoSrc, isUploadedLogo,
+      isDefaultLogo, attachmentId, uploadedLogoSrc,
     } = req.body;
 
     const requestParams = {
       'customize:attachmentId': attachmentId,
       'customize:isDefaultLogo': isDefaultLogo,
       'customize:uploadedLogoSrc': uploadedLogoSrc,
-      'customize:isUploadedLogo': isUploadedLogo,
     };
     try {
       await crowi.configManager.updateConfigsInTheSameNamespace('crowi', requestParams);
@@ -636,7 +634,6 @@ module.exports = (crowi) => {
         attachmentId: await crowi.configManager.getConfig('crowi', 'customize:attachmentId'),
         isDefaultLogo: await crowi.configManager.getConfig('crowi', 'customize:isDefaultLogo'),
         uploadedLogoSrc: await crowi.configManager.getConfig('crowi', 'customize:uploadedLogoSrc'),
-        isUploadedLogo: await crowi.configManager.getConfig('crowi', 'customize:isUploadedLogo'),
       };
       return res.apiv3({ customizedParams });
     }