import React from 'react';
import ReactDOM from 'react-dom';
import { navigate } from '@reach/router';
import moment from 'moment';
import { Utils } from './utils/utils';
import { gettext, loginUrl, siteRoot, mediaUrl, logoPath, logoWidth, logoHeight, siteTitle } from './utils/constants';
import { seafileAPI } from './utils/seafile-api';
import Loading from './components/loading';
import ModalPortal from './components/modal-portal';
import CommonToolbar from './components/toolbar/common-toolbar';
import CommitDetails from './components/dialog/commit-details';
import UpdateRepoCommitLabels from './components/dialog/edit-repo-commit-labels';
import './css/toolbar.css';
import './css/search.css';
import './css/repo-history.css';
const {
repoID,
repoName,
userPerm,
showLabel
} = window.app.pageOptions;
class RepoHistory extends React.Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
errorMsg: '',
page: 1,
perPage: 100,
items: [],
more: false
};
}
componentDidMount() {
this.getItems(this.state.page);
}
getItems = (page) => {
seafileAPI.getRepoHistory(repoID, page, this.state.perPage).then((res) => {
this.setState({
isLoading: false,
page: page,
items: res.data.data,
more: res.data.more
});
}).catch((error) => {
if (error.response) {
if (error.response.status == 403) {
this.setState({
isLoading: false,
errorMsg: gettext('Permission denied')
});
location.href = `${loginUrl}?next=${encodeURIComponent(location.href)}`;
} else {
this.setState({
isLoading: false,
errorMsg: gettext('Error')
});
}
} else {
this.setState({
isLoading: false,
errorMsg: gettext('Please check the network.')
});
}
});
}
getPrevious = () => {
this.getItems(this.state.page - 1);
}
getNext = () => {
this.getItems(this.state.page + 1);
}
onSearchedClick = (selectedItem) => {
if (selectedItem.is_dir === true) {
let url = siteRoot + 'library/' + selectedItem.repo_id + '/' + selectedItem.repo_name + selectedItem.path;
navigate(url, {repalce: true});
} else {
let url = siteRoot + 'lib/' + selectedItem.repo_id + '/file' + Utils.encodePath(selectedItem.path);
let newWindow = window.open('about:blank');
newWindow.location.href = url;
}
}
render() {
return (
{errorMsg}
; } return ({item.text} | ; })}
---|