From 2d490b09cde5141b2f3fc9d5820595dfc373827d Mon Sep 17 00:00:00 2001 From: cainiao222 <1325442034@qq.com> Date: Wed, 26 Sep 2018 02:27:14 -0700 Subject: [PATCH] add file-diff (#2398) --- frontend/package.json | 2 +- .../history-list-view/history-list-item.js | 2 +- .../history-list-view/history-list-view.js | 33 ++++++++++++- frontend/src/css/file-history.css | 1 + frontend/src/file-history.js | 46 +++++++++---------- frontend/src/pages/file-history/main-panel.js | 7 ++- frontend/src/pages/file-history/side-panel.js | 5 +- 7 files changed, 63 insertions(+), 33 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 59b68cafb1..ca0bfc1ecf 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "@reach/router": "^1.2.0", - "@seafile/seafile-editor": "^0.1.20", + "@seafile/seafile-editor": "^0.1.24", "autoprefixer": "7.1.6", "chalk": "1.1.3", "css-loader": "0.28.7", diff --git a/frontend/src/components/history-list-view/history-list-item.js b/frontend/src/components/history-list-view/history-list-item.js index 3a513feb25..b3116c376d 100644 --- a/frontend/src/components/history-list-view/history-list-item.js +++ b/frontend/src/components/history-list-view/history-list-item.js @@ -39,7 +39,7 @@ class HistoryListItem extends React.Component { return; } this.setState({isShowOperationIcon: false}); //restore to default state - this.props.onHistoryItemClick(this.props.item); + this.props.onHistoryItemClick(this.props.item, this.props.preCommitID); } onMenuControlClick = (e) => { diff --git a/frontend/src/components/history-list-view/history-list-view.js b/frontend/src/components/history-list-view/history-list-view.js index debaa0f5f5..082e3246bf 100644 --- a/frontend/src/components/history-list-view/history-list-view.js +++ b/frontend/src/components/history-list-view/history-list-view.js @@ -2,6 +2,10 @@ import React from 'react'; import PropTypes from 'prop-types'; import HisotyListItem from './history-list-item'; import Loading from '../loading'; +import axios from 'axios'; +import editUtilties from '../../utils/editor-utilties'; +import URLDecorator from '../../utils/url-decorator'; +import { filePath } from '../constants'; const propTypes = { hasMore: PropTypes.bool.isRequired, @@ -27,15 +31,42 @@ class HistoryListView extends React.Component { } } + componentDidMount() { + let historyList = this.props.historyList; + if (historyList.length > 1) { + let downLoadURL = URLDecorator.getUrl({type: 'download_historic_file', filePath: filePath, objID: historyList[0].rev_file_id}); + let downLoadURL1 = URLDecorator.getUrl({type: 'download_historic_file', filePath: filePath, objID: historyList[1].rev_file_id}); + axios.all([ + editUtilties.getFileContent(downLoadURL), + editUtilties.getFileContent(downLoadURL1) + ]).then(axios.spread((res1, res2) => { + this.props.setDiffContent(res1.data, res2.data); + })); + } else { + let downLoadURL = URLDecorator.getUrl({type: 'download_historic_file', filePath: filePath, objID: historyList[0].rev_file_id}); + axios.all([ + editUtilties.getFileContent(downLoadURL), + ]).then(axios.spread((res1) => { + this.props.setDiffContent(res1.data, ''); + })); + } + + } + render() { return (