Web: Files: VersionHistory: added action fetchFileVersions

This commit is contained in:
Artem Tarasov 2020-12-23 13:38:10 +03:00
parent e6938def26
commit 274b147a3c
3 changed files with 52 additions and 13 deletions

View File

@ -27,6 +27,8 @@ import {
getTreeFolders,
getSettingsTree,
getPrivacyFolder,
getVerHistoryFileId,
getFileVersions,
} from "./selectors";
import sumBy from "lodash/sumBy";
@ -69,8 +71,9 @@ export const SET_FILES_SETTING = "SET_FILES_SETTING";
export const SET_IS_ERROR_SETTINGS = "SET_IS_ERROR_SETTINGS";
export const SET_FIRST_LOAD = "SET_FIRST_LOAD";
export const SET_UPLOAD_DATA = "SET_UPLOAD_DATA";
export const SET_IS_VERSION_HISTORY_PANEL = "SET_IS_VERSION_HISTORY_PANEL";
export const SET_VERSION_HISTORY_FILE_ID = "SET_VERSION_HISTORY_FILE_ID";
export const SET_IS_VER_HISTORY_PANEL = "SET_IS_VER_HISTORY_PANEL";
export const SET_VER_HISTORY_FILE_ID = "SET_VER_HISTORY_FILE_ID";
export const SET_FILE_VERSIONS = "SET_FILE_VERSIONS";
export function setFile(file) {
return {
@ -290,20 +293,27 @@ export function setUploadData(uploadData) {
};
}
export function setIsVersionHistoryPanel(isVisible) {
export function setIsVerHistoryPanel(isVisible) {
return {
type: SET_IS_VERSION_HISTORY_PANEL,
type: SET_IS_VER_HISTORY_PANEL,
isVisible,
};
}
export function setVersionHistoryFileId(fileId) {
export function setVerHistoryFileId(fileId) {
return {
type: SET_VERSION_HISTORY_FILE_ID,
type: SET_VER_HISTORY_FILE_ID,
fileId,
};
}
export function setFileVersions(versions) {
return {
type: SET_FILE_VERSIONS,
versions,
};
}
export function setFilterUrl(filter) {
const defaultFilter = FilesFilter.getDefault();
const params = [];
@ -1569,3 +1579,18 @@ export function itemOperationToFolder(
});
};
}
export function fetchFileVersions(fileId) {
return (dispatch, getState) => {
const state = getState();
const currentId = getVerHistoryFileId(state);
if (currentId !== fileId) {
return api.files
.getFileVersionInfo(fileId)
.then((versions) => dispatch(setFileVersions(versions)));
} else {
const currentVersions = getFileVersions(state);
return Promise.resolve(currentVersions);
}
};
}

View File

@ -31,8 +31,9 @@ import {
SET_IS_ERROR_SETTINGS,
SET_FIRST_LOAD,
SET_UPLOAD_DATA,
SET_IS_VERSION_HISTORY_PANEL,
SET_VERSION_HISTORY_FILE_ID,
SET_IS_VER_HISTORY_PANEL,
SET_VER_HISTORY_FILE_ID,
SET_FILE_VERSIONS,
} from "./actions";
import { api } from "asc-web-common";
import { isFileSelected, skipFile, getFilesBySelected } from "./selectors";
@ -389,7 +390,7 @@ const initialState = {
],
},
privacyInstructions: "https://www.onlyoffice.com/private-rooms.aspx",
versionHistory: { isVisible: false, fileId: null },
versionHistory: { isVisible: false, fileId: null, versions: null },
};
const filesReducer = (state = initialState, action) => {
@ -569,14 +570,14 @@ const filesReducer = (state = initialState, action) => {
uploadData: action.uploadData,
});
case SET_IS_VERSION_HISTORY_PANEL:
case SET_IS_VER_HISTORY_PANEL:
return Object.assign({}, state, {
versionHistory: {
...state.versionHistory,
isVisible: action.isVisible,
},
});
case SET_VERSION_HISTORY_FILE_ID: {
case SET_VER_HISTORY_FILE_ID: {
return Object.assign({}, state, {
versionHistory: {
...state.versionHistory,
@ -584,6 +585,15 @@ const filesReducer = (state = initialState, action) => {
},
});
}
case SET_FILE_VERSIONS: {
return Object.assign({}, state, {
versionHistory: {
...state.versionHistory,
versions: action.versions,
},
});
}
default:
return state;
}

View File

@ -1053,14 +1053,18 @@ export const getPrivacyInstructionsLink = (state) => {
return state.files.privacyInstructions;
};
export const getIsVersionHistoryPanel = (state) => {
export const getIsVerHistoryPanel = (state) => {
return state.files.versionHistory.isVisible;
};
export const getVersionHistoryFileId = (state) => {
export const getVerHistoryFileId = (state) => {
return state.files.versionHistory.fileId;
};
export const getFileVersions = (state) => {
return state.files.versionHistory.versions;
};
export const getHeaderVisible = createSelector(
getSelectionLength,
getSelected,