import React, { Component, Fragment } from 'react';
import PropTypes from 'prop-types';
import moment from 'moment';
import { seafileAPI } from '../../utils/seafile-api';
import { gettext, siteRoot } from '../../utils/constants';
import { Utils } from '../../utils/utils';
import Loading from '../../components/loading';
moment.locale(window.app.config.lang);
const contentPropTypes = {
isLoadingMore: PropTypes.bool.isRequired,
items: PropTypes.array.isRequired,
};
class FileActivitiesContent extends Component {
render() {
let {items, isLoadingMore} = this.props;
return (
{/* avatar */}
{gettext('User')}
{gettext('Operation')}
{gettext('File')} / {gettext('Library')}
{gettext('Time')}
{isLoadingMore ? : ''}
);
}
}
FileActivitiesContent.propTypes = contentPropTypes;
const tablePropTypes = {
items: PropTypes.array.isRequired,
};
class TableBody extends Component {
render() {
let listFilesActivities = this.props.items.map(function(item, index) {
let op, details;
let userProfileURL = `${siteRoot}profile/${encodeURIComponent(item.author_email)}/`;
let libURL = siteRoot + 'library/' + item.repo_id + '/' + encodeURIComponent(item.repo_name) + '/';
let libLink = {item.repo_name};
let smallLibLink = {item.repo_name};
if (item.obj_type == 'repo') {
switch(item.op_type) {
case 'create':
op = gettext('Created library');
details =
{libLink}
;
break;
case 'rename':
op = gettext('Renamed library');
details =
{item.old_repo_name} => {libLink}
;
break;
case 'delete':
op = gettext('Deleted library');
details =
{item.repo_name}
;
break;
case 'recover':
op = gettext('Restored library');
details =
{libLink}
;
break;
case 'clean-up-trash':
if (item.days == 0) {
op = gettext('Removed all items from trash.');
} else {
op = gettext('Removed items older than {n} days from trash.').replace('{n}', item.days);
}
details =
{libLink}
;
break;
}
} else if (item.obj_type == 'file') {
let fileURL = `${siteRoot}lib/${item.repo_id}/file${Utils.encodePath(item.path)}`;
let fileLink = {item.name};
switch(item.op_type) {
case 'create':
op = gettext('Created file');
details =
{fileLink} {smallLibLink}
;
break;
case 'delete':
op = gettext('Deleted file');
details =
{item.name} {smallLibLink}
;
break;
case 'recover':
op = gettext('Restored file');
details =
{fileLink} {smallLibLink}
;
break;
case 'rename':
op = gettext('Renamed file');
details =
{item.old_name} => {fileLink} {smallLibLink}
;
break;
case 'move':
var filePathLink = {item.path};
op = gettext('Moved file');
details =
{item.old_path} => {filePathLink} {smallLibLink}
;
break;
case 'edit': // update
op = gettext('Updated file');
details =
{fileLink} {smallLibLink}
;
break;
}
} else { // dir
let dirURL = siteRoot + 'library/' + item.repo_id + '/' + encodeURIComponent(item.repo_name) + Utils.encodePath(item.path);
let dirLink = {item.name};
switch(item.op_type) {
case 'create':
op = gettext('Created folder');
details =
{dirLink} {smallLibLink}
;
break;
case 'delete':
op = gettext('Deleted folder');
details =
{item.name} {smallLibLink}
;
break;
case 'recover':
op = gettext('Restored folder');
details =
{dirLink} {smallLibLink}
;
break;
case 'rename':
op = gettext('Renamed folder');
details =
{item.old_name} => {dirLink} {smallLibLink}
;
break;
case 'move':
var dirPathLink = {item.path};
op = gettext('Moved folder');
details =