Merge branch 'feature/files' of https://github.com/ONLYOFFICE/AppServer into feature/files
This commit is contained in:
commit
46bc8fdeb7
@ -73,9 +73,7 @@ class TreeFolders extends React.Component {
|
|||||||
const itemId = item.id.toString();
|
const itemId = item.id.toString();
|
||||||
if (curId.indexOf(itemId) >= 0) {
|
if (curId.indexOf(itemId) >= 0) {
|
||||||
const listIds = curId;
|
const listIds = curId;
|
||||||
const treeItem = listIds.find(
|
const treeItem = listIds.find(x => x.toString() === itemId);
|
||||||
x => x.toString() === itemId
|
|
||||||
);
|
|
||||||
if (treeItem === undefined) {
|
if (treeItem === undefined) {
|
||||||
listIds.push(itemId);
|
listIds.push(itemId);
|
||||||
}
|
}
|
||||||
@ -156,23 +154,7 @@ class TreeFolders extends React.Component {
|
|||||||
|
|
||||||
const treeData = [...this.state.treeData];
|
const treeData = [...this.state.treeData];
|
||||||
this.getNewTreeData(treeData, listIds, data.folders, 10);
|
this.getNewTreeData(treeData, listIds, data.folders, 10);
|
||||||
|
this.props.setTreeFolders(treeData);
|
||||||
const root = {
|
|
||||||
my: null,
|
|
||||||
share: null,
|
|
||||||
common: null,
|
|
||||||
project: null,
|
|
||||||
trash: null
|
|
||||||
};
|
|
||||||
root.my = treeData[0];
|
|
||||||
root.share = treeData[1];
|
|
||||||
root.common = treeData[2];
|
|
||||||
root.project = treeData[3];
|
|
||||||
root.trash = treeData[4];
|
|
||||||
root.trash.folders = null;
|
|
||||||
root.trash.foldersCount = null;
|
|
||||||
|
|
||||||
this.props.setRootFolders(root);
|
|
||||||
this.setState({ treeData });
|
this.setState({ treeData });
|
||||||
})
|
})
|
||||||
.catch(() => this.props.onLoading(false))
|
.catch(() => this.props.onLoading(false))
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { utils, toastr } from "asc-web-components";
|
import { toastr } from "asc-web-components";
|
||||||
import { getRootFolders } from "../../../store/files/selectors";
|
|
||||||
import TreeFolders from "./TreeFolders";
|
import TreeFolders from "./TreeFolders";
|
||||||
import {
|
import {
|
||||||
setFilter,
|
setFilter,
|
||||||
fetchFiles,
|
fetchFiles,
|
||||||
setRootFolders
|
setTreeFolders
|
||||||
} from "../../../store/files/actions";
|
} from "../../../store/files/actions";
|
||||||
import store from "../../../store/store";
|
import store from "../../../store/store";
|
||||||
import { api } from "asc-web-common";
|
import { api } from "asc-web-common";
|
||||||
@ -55,7 +54,7 @@ class ArticleBodyContent extends React.Component {
|
|||||||
currentModule,
|
currentModule,
|
||||||
filter,
|
filter,
|
||||||
setFilter,
|
setFilter,
|
||||||
setRootFolders,
|
setTreeFolders,
|
||||||
onLoading,
|
onLoading,
|
||||||
isLoading
|
isLoading
|
||||||
} = this.props;
|
} = this.props;
|
||||||
@ -69,7 +68,7 @@ class ArticleBodyContent extends React.Component {
|
|||||||
data={data}
|
data={data}
|
||||||
filter={filter}
|
filter={filter}
|
||||||
setFilter={setFilter}
|
setFilter={setFilter}
|
||||||
setRootFolders={setRootFolders}
|
setTreeFolders={setTreeFolders}
|
||||||
expandedKeys={this.state.expandedKeys}
|
expandedKeys={this.state.expandedKeys}
|
||||||
onLoading={onLoading}
|
onLoading={onLoading}
|
||||||
isLoading={isLoading}
|
isLoading={isLoading}
|
||||||
@ -79,12 +78,12 @@ class ArticleBodyContent extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function mapStateToProps(state) {
|
function mapStateToProps(state) {
|
||||||
const { rootFolders, selectedFolder, filter } = state.files;
|
const { treeFolders, selectedFolder, filter } = state.files;
|
||||||
const currentFolderId = selectedFolder.id.toString();
|
const currentFolderId = selectedFolder.id.toString();
|
||||||
const fakeNewDocuments = 8;
|
const fakeNewDocuments = 8;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data: getRootFolders(rootFolders),
|
data: treeFolders,
|
||||||
selectedKeys: selectedFolder ? [currentFolderId] : [""],
|
selectedKeys: selectedFolder ? [currentFolderId] : [""],
|
||||||
fakeNewDocuments,
|
fakeNewDocuments,
|
||||||
currentModule: currentFolderId,
|
currentModule: currentFolderId,
|
||||||
@ -92,6 +91,6 @@ function mapStateToProps(state) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(mapStateToProps, { setFilter, setRootFolders })(
|
export default connect(mapStateToProps, { setFilter, setTreeFolders })(
|
||||||
ArticleBodyContent
|
ArticleBodyContent
|
||||||
);
|
);
|
||||||
|
@ -85,10 +85,11 @@ ArticleMainButtonContent.propTypes = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const mapStateToProps = (state) => {
|
const mapStateToProps = (state) => {
|
||||||
const rootFolderOfCurrent = state.files.selectedFolder ? state.files.selectedFolder.pathParts[0] : -1;
|
const rootFolderOfCurrent = state.files.selectedFolder ? state.files.selectedFolder.pathParts[0] : -1;
|
||||||
|
const myFolderIndex = 0;
|
||||||
return {
|
return {
|
||||||
settings: state.auth.settings,
|
settings: state.auth.settings,
|
||||||
isMyDocuments: isMyDocuments(state.files.rootFolders.my.id, rootFolderOfCurrent)
|
isMyDocuments: isMyDocuments(state.files.treeFolders[myFolderIndex].id, rootFolderOfCurrent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,6 +186,13 @@ class FilesRowContent extends React.PureComponent {
|
|||||||
}
|
}
|
||||||
.edit-text {
|
.edit-text {
|
||||||
height: 30px;
|
height: 30px;
|
||||||
|
font-size: 15px;
|
||||||
|
outline: 0 !important;
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0;
|
||||||
|
font-family: 'Open Sans',sans-serif,Arial;
|
||||||
|
text-align: left;
|
||||||
|
color: #333333;
|
||||||
}
|
}
|
||||||
.edit-button {
|
.edit-button {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
|
@ -3,6 +3,7 @@ import { withRouter } from "react-router";
|
|||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import { withTranslation } from "react-i18next";
|
import { withTranslation } from "react-i18next";
|
||||||
import isEqual from "lodash/isEqual";
|
import isEqual from "lodash/isEqual";
|
||||||
|
import styled from "styled-components";
|
||||||
import {
|
import {
|
||||||
Icons,
|
Icons,
|
||||||
Row,
|
Row,
|
||||||
@ -18,7 +19,7 @@ import {
|
|||||||
deselectFile,
|
deselectFile,
|
||||||
fetchFiles,
|
fetchFiles,
|
||||||
fetchFolder,
|
fetchFolder,
|
||||||
fetchRootFolders,
|
//fetchRootFolders,
|
||||||
selectFile,
|
selectFile,
|
||||||
setAction
|
setAction
|
||||||
} from '../../../../../store/files/actions';
|
} from '../../../../../store/files/actions';
|
||||||
@ -88,7 +89,7 @@ class SectionBodyContent extends React.PureComponent {
|
|||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
fetchRootFolders(store.dispatch);
|
//fetchRootFolders(store.dispatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
onClickDelete = (item) => {
|
onClickDelete = (item) => {
|
||||||
@ -112,7 +113,7 @@ class SectionBodyContent extends React.PureComponent {
|
|||||||
deleteFolder(folderId)
|
deleteFolder(folderId)
|
||||||
.catch(err => toastr.error(err))
|
.catch(err => toastr.error(err))
|
||||||
.then(() => fetchFiles(currentFolderId, filter, store.dispatch))
|
.then(() => fetchFiles(currentFolderId, filter, store.dispatch))
|
||||||
.then(() => fetchRootFolders(store.dispatch))
|
//.then(() => fetchRootFolders(store.dispatch))
|
||||||
.then(() => toastr.success(`Folder moved to recycle bin`));
|
.then(() => toastr.success(`Folder moved to recycle bin`));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,12 +184,38 @@ class SectionBodyContent extends React.PureComponent {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
getItemIcon = (extension, isEdit) => {
|
||||||
|
const setEditIconStyle = isEdit ? { style: { marginLeft: '24px' } } : {};
|
||||||
|
|
||||||
|
return extension
|
||||||
|
? <Icons.ActionsDocumentsIcon
|
||||||
|
{...setEditIconStyle}
|
||||||
|
size='big'
|
||||||
|
isfill={true}
|
||||||
|
color="#A3A9AE"
|
||||||
|
/>
|
||||||
|
: <Icons.CatalogFolderIcon
|
||||||
|
{...setEditIconStyle}
|
||||||
|
size='big'
|
||||||
|
isfill={true}
|
||||||
|
color="#A3A9AE"
|
||||||
|
/>
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { files, folders, viewer, parentId, folderId, settings, selection, fileAction, onLoading, filter } = this.props;
|
const { files, folders, viewer, parentId, folderId, settings, selection, fileAction, onLoading, filter } = this.props;
|
||||||
const { editingId } = this.state;
|
const { editingId } = this.state;
|
||||||
|
|
||||||
let items = [...folders, ...files];
|
let items = [...folders, ...files];
|
||||||
|
|
||||||
|
const SimpleFilesRow = styled(Row)`
|
||||||
|
${props => !props.contextOptions && `
|
||||||
|
& > div:last-child {
|
||||||
|
width: 0px;
|
||||||
|
}
|
||||||
|
`}
|
||||||
|
`;
|
||||||
|
|
||||||
if (fileAction && fileAction.type === FileAction.Create) {
|
if (fileAction && fileAction.type === FileAction.Create) {
|
||||||
items.unshift({
|
items.unshift({
|
||||||
id: -1,
|
id: -1,
|
||||||
@ -208,12 +235,10 @@ class SectionBodyContent extends React.PureComponent {
|
|||||||
: { contextOptions };
|
: { contextOptions };
|
||||||
const checked = isFileSelected(selection, item.id, item.parentId);
|
const checked = isFileSelected(selection, item.id, item.parentId);
|
||||||
const checkedProps = /* isAdmin(viewer) */ isEdit ? {} : { checked };
|
const checkedProps = /* isAdmin(viewer) */ isEdit ? {} : { checked };
|
||||||
const element = item.fileExst
|
const element = this.getItemIcon(item.fileExst, isEdit);
|
||||||
? <Icons.ActionsDocumentsIcon size='big' isfill={true} color="#A3A9AE" />
|
|
||||||
: <Icons.CatalogFolderIcon size='big' isfill={true} color="#A3A9AE" />;
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Row
|
<SimpleFilesRow
|
||||||
key={item.id}
|
key={item.id}
|
||||||
data={item}
|
data={item}
|
||||||
element={element}
|
element={element}
|
||||||
@ -224,12 +249,12 @@ class SectionBodyContent extends React.PureComponent {
|
|||||||
needForUpdate={this.needForUpdate}
|
needForUpdate={this.needForUpdate}
|
||||||
>
|
>
|
||||||
<FilesRowContent item={item} viewer={viewer} culture={settings.culture} onEditComplete={this.onEditComplete} onLoading={onLoading} />
|
<FilesRowContent item={item} viewer={viewer} culture={settings.culture} onEditComplete={this.onEditComplete} onLoading={onLoading} />
|
||||||
</Row>
|
</SimpleFilesRow>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</RowContainer>
|
</RowContainer>
|
||||||
) : parentId !== 0 ? (
|
) : parentId !== 0 ? (
|
||||||
<EmptyFolderContainer parentId={parentId} filter={filter}/>
|
<EmptyFolderContainer parentId={parentId} filter={filter} />
|
||||||
) : <p>RootFolderContainer</p>;
|
) : <p>RootFolderContainer</p>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -260,7 +285,7 @@ export default connect(
|
|||||||
deleteFolder,
|
deleteFolder,
|
||||||
deselectFile,
|
deselectFile,
|
||||||
fetchFiles,
|
fetchFiles,
|
||||||
fetchRootFolders,
|
//fetchRootFolders,
|
||||||
selectFile,
|
selectFile,
|
||||||
setAction
|
setAction
|
||||||
}
|
}
|
||||||
|
@ -413,11 +413,12 @@ const SectionHeaderContent = props => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const mapStateToProps = state => {
|
const mapStateToProps = state => {
|
||||||
const { selectedFolder, selection, rootFolders } = state.files;
|
const { selectedFolder, selection, treeFolders } = state.files;
|
||||||
|
const trashFolderIndex = 3;
|
||||||
return {
|
return {
|
||||||
folder: selectedFolder.parentId !== 0,
|
folder: selectedFolder.parentId !== 0,
|
||||||
isAdmin: isAdmin(state.auth.user),
|
isAdmin: isAdmin(state.auth.user),
|
||||||
isRecycleBinFolder: rootFolders.trash.id === selectedFolder.id,
|
isRecycleBinFolder: treeFolders[trashFolderIndex].id === selectedFolder.id,
|
||||||
parentId: selectedFolder.parentId,
|
parentId: selectedFolder.parentId,
|
||||||
selection,
|
selection,
|
||||||
title: selectedFolder.title,
|
title: selectedFolder.title,
|
||||||
|
@ -2,7 +2,7 @@ import React from "react";
|
|||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import { Provider } from "react-redux";
|
import { Provider } from "react-redux";
|
||||||
import store from "./store/store";
|
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 config from "../package.json";
|
||||||
import "./custom.scss";
|
import "./custom.scss";
|
||||||
import App from "./App";
|
import App from "./App";
|
||||||
@ -21,7 +21,7 @@ if (token) {
|
|||||||
.then(() => getPortalPasswordSettings(store.dispatch))
|
.then(() => getPortalPasswordSettings(store.dispatch))
|
||||||
.then(() => getPortalCultures(store.dispatch))
|
.then(() => getPortalCultures(store.dispatch))
|
||||||
.then(() => fetchMyFolder(store.dispatch))
|
.then(() => fetchMyFolder(store.dispatch))
|
||||||
.then(() => fetchRootFolders(store.dispatch))
|
.then(() => fetchTreeFolders(store.dispatch))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
const re = new RegExp(`${config.homepage}((/?)$|/filter)`, "gm");
|
const re = new RegExp(`${config.homepage}((/?)$|/filter)`, "gm");
|
||||||
const match = window.location.pathname.match(re);
|
const match = window.location.pathname.match(re);
|
||||||
|
@ -23,7 +23,7 @@ export const SET_FILES = "SET_FILES";
|
|||||||
export const SET_SELECTION = "SET_SELECTION";
|
export const SET_SELECTION = "SET_SELECTION";
|
||||||
export const SET_SELECTED = "SET_SELECTED";
|
export const SET_SELECTED = "SET_SELECTED";
|
||||||
export const SET_SELECTED_FOLDER = "SET_SELECTED_FOLDER";
|
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_FILES_FILTER = "SET_FILES_FILTER";
|
||||||
export const SET_FILTER = "SET_FILTER";
|
export const SET_FILTER = "SET_FILTER";
|
||||||
export const SELECT_FILE = "SELECT_FILE";
|
export const SELECT_FILE = "SELECT_FILE";
|
||||||
@ -86,10 +86,10 @@ export function setSelectedFolder(selectedFolder) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setRootFolders(rootFolders) {
|
export function setTreeFolders(treeFolders) {
|
||||||
return {
|
return {
|
||||||
type: SET_ROOT_FOLDERS,
|
type: SET_TREE_FOLDERS,
|
||||||
rootFolders
|
treeFolders
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -229,37 +229,13 @@ export function fetchSharedFolder(dispatch) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function fetchRootFolders(dispatch) {
|
export function fetchTreeFolders(dispatch) {
|
||||||
|
return files.getFoldersTree().then(data => dispatch(setTreeFolders(data)));
|
||||||
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 testUpdateMyFolder(folders) {
|
/*export function testUpdateMyFolder(folders) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
const { files } = getState();
|
const { files } = getState();
|
||||||
const { rootFolders } = files;
|
|
||||||
|
|
||||||
console.log("folders", folders);
|
console.log("folders", folders);
|
||||||
|
|
||||||
@ -273,7 +249,7 @@ export function testUpdateMyFolder(folders) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
//setRootFolders
|
//setRootFolders
|
||||||
}
|
}*/
|
||||||
|
|
||||||
export function createFile(folderId, title) {
|
export function createFile(folderId, title) {
|
||||||
return dispatch => {
|
return dispatch => {
|
||||||
|
@ -6,7 +6,7 @@ import {
|
|||||||
SET_FILTER,
|
SET_FILTER,
|
||||||
SET_FOLDER,
|
SET_FOLDER,
|
||||||
SET_FOLDERS,
|
SET_FOLDERS,
|
||||||
SET_ROOT_FOLDERS,
|
SET_TREE_FOLDERS,
|
||||||
SET_SELECTED_FOLDER,
|
SET_SELECTED_FOLDER,
|
||||||
SET_SELECTED,
|
SET_SELECTED,
|
||||||
SET_SELECTION,
|
SET_SELECTION,
|
||||||
@ -24,7 +24,7 @@ const initialState = {
|
|||||||
files: null,
|
files: null,
|
||||||
filter: FilesFilter.getDefault(),
|
filter: FilesFilter.getDefault(),
|
||||||
folders: null,
|
folders: null,
|
||||||
rootFolders: [],
|
treeFolders: [],
|
||||||
selected: "none",
|
selected: "none",
|
||||||
selectedFolder: null,
|
selectedFolder: null,
|
||||||
selection: []
|
selection: []
|
||||||
@ -65,9 +65,9 @@ const filesReducer = (state = initialState, action) => {
|
|||||||
return Object.assign({}, state, {
|
return Object.assign({}, state, {
|
||||||
selectedFolder: action.selectedFolder
|
selectedFolder: action.selectedFolder
|
||||||
});
|
});
|
||||||
case SET_ROOT_FOLDERS:
|
case SET_TREE_FOLDERS:
|
||||||
return Object.assign({}, state, {
|
return Object.assign({}, state, {
|
||||||
rootFolders: action.rootFolders
|
treeFolders: action.treeFolders
|
||||||
});
|
});
|
||||||
case SET_FILTER:
|
case SET_FILTER:
|
||||||
return Object.assign({}, state, {
|
return Object.assign({}, state, {
|
||||||
|
@ -3,22 +3,6 @@ import { constants } from 'asc-web-common';
|
|||||||
|
|
||||||
const { FileType, FilterType } = constants;
|
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 => {
|
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 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);
|
const result = editedDocs.findIndex(item => item === fileExst);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "asc-web-common",
|
"name": "asc-web-common",
|
||||||
"version": "1.0.124",
|
"version": "1.0.125",
|
||||||
"description": "Ascensio System SIA common components and solutions library",
|
"description": "Ascensio System SIA common components and solutions library",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"files": [
|
"files": [
|
||||||
|
@ -40,26 +40,26 @@ export function getFolder(folderId, filter, fake = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function getFoldersTree() {
|
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}` }));
|
const requestsArray = rootFoldersPaths.map(path => request({ method: "get", url: `/files/${path}` }));
|
||||||
|
|
||||||
return axios.all(requestsArray)
|
return axios.all(requestsArray)
|
||||||
.then(axios.spread((...responses) =>
|
.then(axios.spread((...responses) =>
|
||||||
responses.map(data => {
|
responses.map((data, index) => {
|
||||||
|
const trashIndex = 3;
|
||||||
return {
|
return {
|
||||||
id: data.current.id,
|
id: data.current.id,
|
||||||
key: `0-${data.current.id}`,
|
key: `0-${index}`,
|
||||||
title: data.current.title,
|
title: data.current.title,
|
||||||
folders: data.folders.map(folder => {
|
folders: index !== trashIndex ? data.folders.map(folder => {
|
||||||
return {
|
return {
|
||||||
id: folder.id,
|
id: folder.id,
|
||||||
key: `0-${folder.parentId}-${folder.id}`,
|
|
||||||
title: folder.title,
|
title: folder.title,
|
||||||
folders: [],
|
foldersCount: folder.foldersCount,
|
||||||
foldersCount: folder.foldersCount
|
|
||||||
}
|
}
|
||||||
}),
|
}) : null,
|
||||||
foldersCount: data.current.foldersCount
|
pathParts: data.pathParts,
|
||||||
|
foldersCount: index !== trashIndex ? data.current.foldersCount : null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
))
|
))
|
||||||
|
Loading…
Reference in New Issue
Block a user