Merge pull request #1263 from ONLYOFFICE/bugfix/Bug61218

Fix Bug 61218: get keepNewFileName from server
This commit is contained in:
Alexey Safronov 2023-03-02 17:11:53 +04:00 committed by GitHub
commit 4f5f264edd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 78 additions and 70 deletions

View File

@ -48,7 +48,7 @@ const CreateEvent = ({
setEventDialogVisible, setEventDialogVisible,
eventDialogVisible, eventDialogVisible,
createWithoutDialog, keepNewFileName,
}) => { }) => {
const [headerTitle, setHeaderTitle] = React.useState(null); const [headerTitle, setHeaderTitle] = React.useState(null);
const [startValue, setStartValue] = React.useState(""); const [startValue, setStartValue] = React.useState("");
@ -77,7 +77,7 @@ const CreateEvent = ({
if (!extension) return setEventDialogVisible(true); if (!extension) return setEventDialogVisible(true);
if (!createWithoutDialog) { if (!keepNewFileName) {
setEventDialogVisible(true); setEventDialogVisible(true);
} else { } else {
onSave(null, title || defaultName); onSave(null, title || defaultName);
@ -289,6 +289,7 @@ export default inject(
uploadDataStore, uploadDataStore,
dialogsStore, dialogsStore,
oformsStore, oformsStore,
settingsStore,
}) => { }) => {
const { const {
setIsLoading, setIsLoading,
@ -321,7 +322,7 @@ export default inject(
eventDialogVisible, eventDialogVisible,
} = dialogsStore; } = dialogsStore;
const { createWithoutDialog } = filesStore; const { keepNewFileName } = settingsStore;
return { return {
setEventDialogVisible, setEventDialogVisible,
@ -352,7 +353,7 @@ export default inject(
replaceFileStream, replaceFileStream,
setEncryptionAccess, setEncryptionAccess,
createWithoutDialog, keepNewFileName,
}; };
} }
)(observer(CreateEvent)); )(observer(CreateEvent));

View File

@ -22,9 +22,9 @@ const Dialog = ({
onCancel, onCancel,
onClose, onClose,
isCreateDialog, isCreateDialog,
createWithoutDialog,
setCreateWithoutDialog,
extension, extension,
keepNewFileName,
setKeepNewFileName,
}) => { }) => {
const [value, setValue] = useState(""); const [value, setValue] = useState("");
const [isDisabled, setIsDisabled] = useState(false); const [isDisabled, setIsDisabled] = useState(false);
@ -32,8 +32,8 @@ const Dialog = ({
const [isChanged, setIsChanged] = useState(false); const [isChanged, setIsChanged] = useState(false);
useEffect(() => { useEffect(() => {
createWithoutDialog && isCreateDialog && setIsChecked(createWithoutDialog); keepNewFileName && isCreateDialog && setIsChecked(keepNewFileName);
}, [isCreateDialog, createWithoutDialog]); }, [isCreateDialog, keepNewFileName]);
useEffect(() => { useEffect(() => {
let input = document?.getElementById("create-text-input"); let input = document?.getElementById("create-text-input");
@ -80,7 +80,7 @@ const Dialog = ({
const onSaveAction = useCallback( const onSaveAction = useCallback(
(e) => { (e) => {
setIsDisabled(true); setIsDisabled(true);
isCreateDialog && setCreateWithoutDialog(isChecked); isCreateDialog && setKeepNewFileName(isChecked);
onSave && onSave(e, value); onSave && onSave(e, value);
}, },
[onSave, isCreateDialog, value, isChecked] [onSave, isCreateDialog, value, isChecked]
@ -88,7 +88,7 @@ const Dialog = ({
const onCancelAction = useCallback((e) => { const onCancelAction = useCallback((e) => {
if (isChecked) { if (isChecked) {
setCreateWithoutDialog(false); setKeepNewFileName(false);
} }
onCancel && onCancel(e); onCancel && onCancel(e);
}, []); }, []);
@ -96,7 +96,7 @@ const Dialog = ({
const onCloseAction = useCallback( const onCloseAction = useCallback(
(e) => { (e) => {
if (!isDisabled && isChecked) { if (!isDisabled && isChecked) {
setCreateWithoutDialog(false); setKeepNewFileName(false);
} }
onClose && onClose(e); onClose && onClose(e);
}, },
@ -171,9 +171,9 @@ const Dialog = ({
); );
}; };
export default inject(({ auth, filesStore }) => { export default inject(({ auth, settingsStore }) => {
const { folderFormValidation } = auth.settingsStore; const { folderFormValidation } = auth.settingsStore;
const { createWithoutDialog, setCreateWithoutDialog } = filesStore; const { keepNewFileName, setKeepNewFileName } = settingsStore;
return { folderFormValidation, createWithoutDialog, setCreateWithoutDialog }; return { folderFormValidation, keepNewFileName, setKeepNewFileName };
})(observer(Dialog)); })(observer(Dialog));

View File

@ -28,10 +28,11 @@ const PersonalSettings = ({
t, t,
showTitle, showTitle,
createWithoutDialog,
setCreateWithoutDialog,
showAdminSettings, showAdminSettings,
keepNewFileName,
setKeepNewFileName,
}) => { }) => {
const [isLoadingFavorites, setIsLoadingFavorites] = React.useState(false); const [isLoadingFavorites, setIsLoadingFavorites] = React.useState(false);
const [isLoadingRecent, setIsLoadingRecent] = React.useState(false); const [isLoadingRecent, setIsLoadingRecent] = React.useState(false);
@ -52,6 +53,10 @@ const PersonalSettings = ({
setForceSave(!forceSave); setForceSave(!forceSave);
}, [setForceSave, forceSave]); }, [setForceSave, forceSave]);
const onChangeKeepNewFileName = React.useCallback(() => {
setKeepNewFileName(!keepNewFileName);
}, [setKeepNewFileName, keepNewFileName]);
const onChangeFavorites = React.useCallback( const onChangeFavorites = React.useCallback(
(e) => { (e) => {
setIsLoadingFavorites(true); setIsLoadingFavorites(true);
@ -72,10 +77,6 @@ const PersonalSettings = ({
[setIsLoadingRecent, setRecentSetting] [setIsLoadingRecent, setRecentSetting]
); );
const onChangeCheckbox = () => {
setCreateWithoutDialog(!createWithoutDialog);
};
return ( return (
<StyledSettings <StyledSettings
showTitle={showTitle} showTitle={showTitle}
@ -91,8 +92,8 @@ const PersonalSettings = ({
<ToggleButton <ToggleButton
className="toggle-btn" className="toggle-btn"
label={t("Common:DontAskAgain")} label={t("Common:DontAskAgain")}
onChange={onChangeCheckbox} onChange={onChangeKeepNewFileName}
isChecked={createWithoutDialog} isChecked={keepNewFileName}
/> />
)} )}
<ToggleButton <ToggleButton
@ -162,8 +163,7 @@ const PersonalSettings = ({
); );
}; };
export default inject( export default inject(({ auth, settingsStore, treeFoldersStore }) => {
({ auth, settingsStore, treeFoldersStore, filesStore }) => {
const { const {
storeOriginalFiles, storeOriginalFiles,
confirmDelete, confirmDelete,
@ -181,10 +181,12 @@ export default inject(
recentSection, recentSection,
setFavoritesSetting, setFavoritesSetting,
setRecentSetting, setRecentSetting,
keepNewFileName,
setKeepNewFileName,
} = settingsStore; } = settingsStore;
const { myFolderId, commonFolderId } = treeFoldersStore; const { myFolderId, commonFolderId } = treeFoldersStore;
const { setCreateWithoutDialog, createWithoutDialog } = filesStore;
return { return {
storeOriginalFiles, storeOriginalFiles,
@ -209,8 +211,8 @@ export default inject(
setRecentSetting, setRecentSetting,
myFolderId, myFolderId,
commonFolderId, commonFolderId,
setCreateWithoutDialog,
createWithoutDialog, keepNewFileName,
setKeepNewFileName,
}; };
} })(observer(PersonalSettings));
)(observer(PersonalSettings));

View File

@ -32,7 +32,6 @@ import debounce from "lodash.debounce";
const { FilesFilter, RoomsFilter } = api; const { FilesFilter, RoomsFilter } = api;
const storageViewAs = localStorage.getItem("viewAs"); const storageViewAs = localStorage.getItem("viewAs");
const storageCheckbox = JSON.parse(localStorage.getItem("createWithoutDialog"));
let requestCounter = 0; let requestCounter = 0;
@ -56,7 +55,6 @@ class FilesStore {
isLoaded = false; isLoaded = false;
isLoading = false; isLoading = false;
createWithoutDialog = storageCheckbox ? true : false;
viewAs = viewAs =
isMobile && storageViewAs !== "tile" ? "row" : storageViewAs || "table"; isMobile && storageViewAs !== "tile" ? "row" : storageViewAs || "table";
@ -569,11 +567,6 @@ class FilesStore {
viewAs === "tile" && this.createThumbnails(); viewAs === "tile" && this.createThumbnails();
}; };
setCreateWithoutDialog = (checked) => {
this.createWithoutDialog = checked;
localStorage.setItem("createWithoutDialog", JSON.stringify(checked));
};
setPageItemsLength = (pageItemsLength) => { setPageItemsLength = (pageItemsLength) => {
this.pageItemsLength = pageItemsLength; this.pageItemsLength = pageItemsLength;
}; };

View File

@ -30,6 +30,7 @@ class SettingsStore {
favoritesSection = null; favoritesSection = null;
recentSection = null; recentSection = null;
hideConfirmConvertSave = null; hideConfirmConvertSave = null;
keepNewFileName = null;
chunkUploadSize = 1024 * 1023; // 1024 * 1023; //~0.999mb chunkUploadSize = 1024 * 1023; // 1024 * 1023; //~0.999mb
settingsIsLoaded = false; settingsIsLoaded = false;
@ -149,6 +150,12 @@ class SettingsStore {
setStoreForcesave = (val) => (this.storeForcesave = val); setStoreForcesave = (val) => (this.storeForcesave = val);
setKeepNewFileName = (data) => {
api.files
.changeKeepNewFileName(data)
.then((res) => this.setFilesSetting("keepNewFileName", res));
};
setEnableThirdParty = async (data, setting) => { setEnableThirdParty = async (data, setting) => {
const res = await api.files.thirdParty(data); const res = await api.files.thirdParty(data);
this.setFilesSetting(setting, res); this.setFilesSetting(setting, res);

View File

@ -703,6 +703,11 @@ export function forceSave(val) {
return request({ method: "put", url: "files/forcesave", data }); 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) { export function thirdParty(val) {
const data = { set: val }; const data = { set: val };
return request({ method: "put", url: "files/thirdparty", data }); return request({ method: "put", url: "files/thirdparty", data });