diff --git a/packages/client/src/components/GlobalEvents/CreateEvent.js b/packages/client/src/components/GlobalEvents/CreateEvent.js index ab3cdbb167..7659fcf0a6 100644 --- a/packages/client/src/components/GlobalEvents/CreateEvent.js +++ b/packages/client/src/components/GlobalEvents/CreateEvent.js @@ -48,7 +48,7 @@ const CreateEvent = ({ setEventDialogVisible, eventDialogVisible, - createWithoutDialog, + keepNewFileName, }) => { const [headerTitle, setHeaderTitle] = React.useState(null); const [startValue, setStartValue] = React.useState(""); @@ -77,7 +77,7 @@ const CreateEvent = ({ if (!extension) return setEventDialogVisible(true); - if (!createWithoutDialog) { + if (!keepNewFileName) { setEventDialogVisible(true); } else { onSave(null, title || defaultName); @@ -289,6 +289,7 @@ export default inject( uploadDataStore, dialogsStore, oformsStore, + settingsStore, }) => { const { setIsLoading, @@ -321,7 +322,7 @@ export default inject( eventDialogVisible, } = dialogsStore; - const { createWithoutDialog } = filesStore; + const { keepNewFileName } = settingsStore; return { setEventDialogVisible, @@ -352,7 +353,7 @@ export default inject( replaceFileStream, setEncryptionAccess, - createWithoutDialog, + keepNewFileName, }; } )(observer(CreateEvent)); diff --git a/packages/client/src/components/GlobalEvents/sub-components/Dialog.js b/packages/client/src/components/GlobalEvents/sub-components/Dialog.js index 422a7b18a9..bcb7c5c596 100644 --- a/packages/client/src/components/GlobalEvents/sub-components/Dialog.js +++ b/packages/client/src/components/GlobalEvents/sub-components/Dialog.js @@ -22,9 +22,9 @@ const Dialog = ({ onCancel, onClose, isCreateDialog, - createWithoutDialog, - setCreateWithoutDialog, extension, + keepNewFileName, + setKeepNewFileName, }) => { const [value, setValue] = useState(""); const [isDisabled, setIsDisabled] = useState(false); @@ -32,8 +32,8 @@ const Dialog = ({ const [isChanged, setIsChanged] = useState(false); useEffect(() => { - createWithoutDialog && isCreateDialog && setIsChecked(createWithoutDialog); - }, [isCreateDialog, createWithoutDialog]); + keepNewFileName && isCreateDialog && setIsChecked(keepNewFileName); + }, [isCreateDialog, keepNewFileName]); useEffect(() => { let input = document?.getElementById("create-text-input"); @@ -80,7 +80,7 @@ const Dialog = ({ const onSaveAction = useCallback( (e) => { setIsDisabled(true); - isCreateDialog && setCreateWithoutDialog(isChecked); + isCreateDialog && setKeepNewFileName(isChecked); onSave && onSave(e, value); }, [onSave, isCreateDialog, value, isChecked] @@ -88,7 +88,7 @@ const Dialog = ({ const onCancelAction = useCallback((e) => { if (isChecked) { - setCreateWithoutDialog(false); + setKeepNewFileName(false); } onCancel && onCancel(e); }, []); @@ -96,7 +96,7 @@ const Dialog = ({ const onCloseAction = useCallback( (e) => { if (!isDisabled && isChecked) { - setCreateWithoutDialog(false); + setKeepNewFileName(false); } onClose && onClose(e); }, @@ -171,9 +171,9 @@ const Dialog = ({ ); }; -export default inject(({ auth, filesStore }) => { +export default inject(({ auth, settingsStore }) => { const { folderFormValidation } = auth.settingsStore; - const { createWithoutDialog, setCreateWithoutDialog } = filesStore; + const { keepNewFileName, setKeepNewFileName } = settingsStore; - return { folderFormValidation, createWithoutDialog, setCreateWithoutDialog }; + return { folderFormValidation, keepNewFileName, setKeepNewFileName }; })(observer(Dialog)); diff --git a/packages/client/src/pages/Settings/Section/Body/CommonSettings.js b/packages/client/src/pages/Settings/Section/Body/CommonSettings.js index 427b963dd1..a5b317d502 100644 --- a/packages/client/src/pages/Settings/Section/Body/CommonSettings.js +++ b/packages/client/src/pages/Settings/Section/Body/CommonSettings.js @@ -28,10 +28,11 @@ const PersonalSettings = ({ t, showTitle, - createWithoutDialog, - setCreateWithoutDialog, showAdminSettings, + + keepNewFileName, + setKeepNewFileName, }) => { const [isLoadingFavorites, setIsLoadingFavorites] = React.useState(false); const [isLoadingRecent, setIsLoadingRecent] = React.useState(false); @@ -52,6 +53,10 @@ const PersonalSettings = ({ setForceSave(!forceSave); }, [setForceSave, forceSave]); + const onChangeKeepNewFileName = React.useCallback(() => { + setKeepNewFileName(!keepNewFileName); + }, [setKeepNewFileName, keepNewFileName]); + const onChangeFavorites = React.useCallback( (e) => { setIsLoadingFavorites(true); @@ -72,10 +77,6 @@ const PersonalSettings = ({ [setIsLoadingRecent, setRecentSetting] ); - const onChangeCheckbox = () => { - setCreateWithoutDialog(!createWithoutDialog); - }; - return ( )} { - const { - storeOriginalFiles, - confirmDelete, - updateIfExist, - forcesave, +export default inject(({ auth, settingsStore, treeFoldersStore }) => { + const { + storeOriginalFiles, + confirmDelete, + updateIfExist, + forcesave, - setUpdateIfExist, - setStoreOriginal, + setUpdateIfExist, + setStoreOriginal, - setConfirmDelete, + setConfirmDelete, - setForceSave, + setForceSave, - favoritesSection, - recentSection, - setFavoritesSetting, - setRecentSetting, - } = settingsStore; + favoritesSection, + recentSection, + setFavoritesSetting, + setRecentSetting, - const { myFolderId, commonFolderId } = treeFoldersStore; - const { setCreateWithoutDialog, createWithoutDialog } = filesStore; + keepNewFileName, + setKeepNewFileName, + } = settingsStore; - return { - storeOriginalFiles, - confirmDelete, - updateIfExist, - forceSave: forcesave, + const { myFolderId, commonFolderId } = treeFoldersStore; - myFolderId, - commonFolderId, - isVisitor: auth.userStore.user.isVisitor, - favoritesSection, - recentSection, + return { + storeOriginalFiles, + confirmDelete, + updateIfExist, + forceSave: forcesave, - setUpdateIfExist, - setStoreOriginal, + myFolderId, + commonFolderId, + isVisitor: auth.userStore.user.isVisitor, + favoritesSection, + recentSection, - setConfirmDelete, + setUpdateIfExist, + setStoreOriginal, - setForceSave, + setConfirmDelete, - setFavoritesSetting, - setRecentSetting, - myFolderId, - commonFolderId, - setCreateWithoutDialog, - createWithoutDialog, - }; - } -)(observer(PersonalSettings)); + setForceSave, + + setFavoritesSetting, + setRecentSetting, + myFolderId, + commonFolderId, + + keepNewFileName, + setKeepNewFileName, + }; +})(observer(PersonalSettings)); diff --git a/packages/client/src/store/FilesStore.js b/packages/client/src/store/FilesStore.js index 9e61153784..f91dd9a1de 100644 --- a/packages/client/src/store/FilesStore.js +++ b/packages/client/src/store/FilesStore.js @@ -32,7 +32,6 @@ import debounce from "lodash.debounce"; const { FilesFilter, RoomsFilter } = api; const storageViewAs = localStorage.getItem("viewAs"); -const storageCheckbox = JSON.parse(localStorage.getItem("createWithoutDialog")); let requestCounter = 0; @@ -56,7 +55,6 @@ class FilesStore { isLoaded = false; isLoading = false; - createWithoutDialog = storageCheckbox ? true : false; viewAs = isMobile && storageViewAs !== "tile" ? "row" : storageViewAs || "table"; @@ -569,11 +567,6 @@ class FilesStore { viewAs === "tile" && this.createThumbnails(); }; - setCreateWithoutDialog = (checked) => { - this.createWithoutDialog = checked; - localStorage.setItem("createWithoutDialog", JSON.stringify(checked)); - }; - setPageItemsLength = (pageItemsLength) => { this.pageItemsLength = pageItemsLength; }; diff --git a/packages/client/src/store/SettingsStore.js b/packages/client/src/store/SettingsStore.js index c406b95da0..52cffa9dee 100644 --- a/packages/client/src/store/SettingsStore.js +++ b/packages/client/src/store/SettingsStore.js @@ -30,6 +30,7 @@ class SettingsStore { favoritesSection = null; recentSection = null; hideConfirmConvertSave = null; + keepNewFileName = null; chunkUploadSize = 1024 * 1023; // 1024 * 1023; //~0.999mb settingsIsLoaded = false; @@ -149,6 +150,12 @@ class SettingsStore { setStoreForcesave = (val) => (this.storeForcesave = val); + setKeepNewFileName = (data) => { + api.files + .changeKeepNewFileName(data) + .then((res) => this.setFilesSetting("keepNewFileName", res)); + }; + setEnableThirdParty = async (data, setting) => { const res = await api.files.thirdParty(data); this.setFilesSetting(setting, res); diff --git a/packages/common/api/files/index.js b/packages/common/api/files/index.js index 6854cfe786..6ba5be8d84 100644 --- a/packages/common/api/files/index.js +++ b/packages/common/api/files/index.js @@ -703,6 +703,11 @@ export function forceSave(val) { return request({ method: "put", url: "files/forcesave", data }); } +export function changeKeepNewFileName(val) { + const data = { set: val }; + return request({ method: "put", url: "files/keepnewfilename", data }); +} + export function thirdParty(val) { const data = { set: val }; return request({ method: "put", url: "files/thirdparty", data });