RootFolderContainer
; } } @@ -260,7 +285,7 @@ export default connect( deleteFolder, deselectFile, fetchFiles, - fetchRootFolders, + //fetchRootFolders, selectFile, setAction } diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js index e28a93795d..19f8c3ed16 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js @@ -413,11 +413,12 @@ const SectionHeaderContent = props => { }; const mapStateToProps = state => { - const { selectedFolder, selection, rootFolders } = state.files; + const { selectedFolder, selection, treeFolders } = state.files; + const trashFolderIndex = 3; return { folder: selectedFolder.parentId !== 0, isAdmin: isAdmin(state.auth.user), - isRecycleBinFolder: rootFolders.trash.id === selectedFolder.id, + isRecycleBinFolder: treeFolders[trashFolderIndex].id === selectedFolder.id, parentId: selectedFolder.parentId, selection, title: selectedFolder.title, diff --git a/products/ASC.Files/Client/src/index.js b/products/ASC.Files/Client/src/index.js index bca43bd456..90cdb8d161 100644 --- a/products/ASC.Files/Client/src/index.js +++ b/products/ASC.Files/Client/src/index.js @@ -2,7 +2,7 @@ import React from "react"; import ReactDOM from "react-dom"; import { Provider } from "react-redux"; import store from "./store/store"; -import { fetchMyFolder, fetchRootFolders, fetchFiles } from "./store/files/actions"; +import { fetchMyFolder, fetchTreeFolders, fetchFiles } from "./store/files/actions"; import config from "../package.json"; import "./custom.scss"; import App from "./App"; @@ -21,7 +21,7 @@ if (token) { .then(() => getPortalPasswordSettings(store.dispatch)) .then(() => getPortalCultures(store.dispatch)) .then(() => fetchMyFolder(store.dispatch)) - .then(() => fetchRootFolders(store.dispatch)) + .then(() => fetchTreeFolders(store.dispatch)) .then(() => { const re = new RegExp(`${config.homepage}((/?)$|/filter)`, "gm"); const match = window.location.pathname.match(re); diff --git a/products/ASC.Files/Client/src/store/files/actions.js b/products/ASC.Files/Client/src/store/files/actions.js index 75362b0730..b936308f53 100644 --- a/products/ASC.Files/Client/src/store/files/actions.js +++ b/products/ASC.Files/Client/src/store/files/actions.js @@ -23,7 +23,7 @@ export const SET_FILES = "SET_FILES"; export const SET_SELECTION = "SET_SELECTION"; export const SET_SELECTED = "SET_SELECTED"; export const SET_SELECTED_FOLDER = "SET_SELECTED_FOLDER"; -export const SET_ROOT_FOLDERS = "SET_ROOT_FOLDERS"; +export const SET_TREE_FOLDERS = "SET_TREE_FOLDERS"; export const SET_FILES_FILTER = "SET_FILES_FILTER"; export const SET_FILTER = "SET_FILTER"; export const SELECT_FILE = "SELECT_FILE"; @@ -86,10 +86,10 @@ export function setSelectedFolder(selectedFolder) { }; } -export function setRootFolders(rootFolders) { +export function setTreeFolders(treeFolders) { return { - type: SET_ROOT_FOLDERS, - rootFolders + type: SET_TREE_FOLDERS, + treeFolders }; } @@ -229,37 +229,13 @@ export function fetchSharedFolder(dispatch) { }); } -export function fetchRootFolders(dispatch) { - - let root = { - my: null, - share: null, - common: null, - project: null, - trash: null - }; - - return axios.all([ - files.getMyFolderList(), - files.getSharedFolderList(), - files.getCommonFolderList(), - files.getProjectsFolderList(), - files.getTrashFolderList() - ]) - .then(axios.spread((my, share, common, project, trash) => { - root.my = { folders: my.folders, ...my.current } - root.share = { folders: share.folders, ...share.current } - root.common = { folders: common.folders, ...common.current } - root.project = { folders: project.folders, ...project.current } - root.trash = { folders: trash.folders, ...trash.current } - })) - .then(() => dispatch(setRootFolders(root)));; +export function fetchTreeFolders(dispatch) { + return files.getFoldersTree().then(data => dispatch(setTreeFolders(data))); } -export function testUpdateMyFolder(folders) { +/*export function testUpdateMyFolder(folders) { return (dispatch, getState) => { const { files } = getState(); - const { rootFolders } = files; console.log("folders", folders); @@ -273,7 +249,7 @@ export function testUpdateMyFolder(folders) { } //setRootFolders -} +}*/ export function createFile(folderId, title) { return dispatch => { diff --git a/products/ASC.Files/Client/src/store/files/reducers.js b/products/ASC.Files/Client/src/store/files/reducers.js index 7f5b91f4ad..3a8c97b120 100644 --- a/products/ASC.Files/Client/src/store/files/reducers.js +++ b/products/ASC.Files/Client/src/store/files/reducers.js @@ -6,7 +6,7 @@ import { SET_FILTER, SET_FOLDER, SET_FOLDERS, - SET_ROOT_FOLDERS, + SET_TREE_FOLDERS, SET_SELECTED_FOLDER, SET_SELECTED, SET_SELECTION, @@ -24,7 +24,7 @@ const initialState = { files: null, filter: FilesFilter.getDefault(), folders: null, - rootFolders: [], + treeFolders: [], selected: "none", selectedFolder: null, selection: [] @@ -65,9 +65,9 @@ const filesReducer = (state = initialState, action) => { return Object.assign({}, state, { selectedFolder: action.selectedFolder }); - case SET_ROOT_FOLDERS: + case SET_TREE_FOLDERS: return Object.assign({}, state, { - rootFolders: action.rootFolders + treeFolders: action.treeFolders }); case SET_FILTER: return Object.assign({}, state, { diff --git a/products/ASC.Files/Client/src/store/files/selectors.js b/products/ASC.Files/Client/src/store/files/selectors.js index c7cbaff813..d5f89f01c3 100644 --- a/products/ASC.Files/Client/src/store/files/selectors.js +++ b/products/ASC.Files/Client/src/store/files/selectors.js @@ -3,22 +3,6 @@ import { constants } from 'asc-web-common'; const { FileType, FilterType } = constants; -export const getRootFolders = files => { - const { my, share, common, project, trash } = files; - - my.key = "0-0"; - share.key = "0-1"; - common.key = "0-2"; - project.key = "0-3"; - trash.key = "0-4"; - trash.folders = null; - trash.foldersCount = null; - - const data = [ my, share, common, project, trash]; - - return data; -}; - export const canWebEdit = fileExst => { const editedDocs = ['.pptx', '.pptm', '.ppt', '.ppsx', '.ppsm', '.pps', '.potx', '.potm', '.pot', '.odp', '.fodp', '.otp', '.xlsx', '.xlsm', '.xls', '.xltx', '.xltm', '.xlt', '.ods', '.fods', '.ots', '.csv', '.docx', '.docm', '.doc', '.dotx', '.dotm', '.dot', '.odt', '.fodt', '.ott', '.txt', '.rtf', '.mht', '.html', '.htm']; const result = editedDocs.findIndex(item => item === fileExst); diff --git a/web/ASC.Web.Common/package.json b/web/ASC.Web.Common/package.json index 92db7d89d1..6e57ebb181 100644 --- a/web/ASC.Web.Common/package.json +++ b/web/ASC.Web.Common/package.json @@ -1,6 +1,6 @@ { "name": "asc-web-common", - "version": "1.0.124", + "version": "1.0.125", "description": "Ascensio System SIA common components and solutions library", "license": "AGPL-3.0", "files": [ diff --git a/web/ASC.Web.Common/src/api/files/index.js b/web/ASC.Web.Common/src/api/files/index.js index d57a31683c..6807b9c7bd 100644 --- a/web/ASC.Web.Common/src/api/files/index.js +++ b/web/ASC.Web.Common/src/api/files/index.js @@ -40,26 +40,26 @@ export function getFolder(folderId, filter, fake = false) { } export function getFoldersTree() { - const rootFoldersPaths = ['@my', '@share', '@common', '@projects', '@trash']; //TODO: need get from settings + const rootFoldersPaths = ['@my', '@share', '@common', /*'@projects',*/ '@trash']; //TODO: need get from settings const requestsArray = rootFoldersPaths.map(path => request({ method: "get", url: `/files/${path}` })); return axios.all(requestsArray) .then(axios.spread((...responses) => - responses.map(data => { + responses.map((data, index) => { + const trashIndex = 3; return { id: data.current.id, - key: `0-${data.current.id}`, + key: `0-${index}`, title: data.current.title, - folders: data.folders.map(folder => { + folders: index !== trashIndex ? data.folders.map(folder => { return { id: folder.id, - key: `0-${folder.parentId}-${folder.id}`, title: folder.title, - folders: [], - foldersCount: folder.foldersCount + foldersCount: folder.foldersCount, } - }), - foldersCount: data.current.foldersCount + }) : null, + pathParts: data.pathParts, + foldersCount: index !== trashIndex ? data.current.foldersCount : null } }) ))