diff --git a/frontend/src/models/activity.js b/frontend/src/models/activity.js new file mode 100644 index 0000000000..07972ff5dd --- /dev/null +++ b/frontend/src/models/activity.js @@ -0,0 +1,33 @@ +import moment from 'moment'; + +class Acticity { + constructor(json) { + this.repo_id = json.repo_id; + this.repo_name = json.repo_name; + this.obj_type = json.obj_type; + this.commit_id = json.commit_id; + this.path = json.path; + this.name = json.name; + this.author_email = json.author_email; + this.author_name = json.author_name; + this.author_contact_email = json.author_contact_email; + this.avatar_url = json.avatar_url; + this.time = json.time; + this.op_type = json.op_type; + if (json.op_type === 'clean-up-trash') { + this.days = json.days; + } else if (json.op_type === 'rename' && json.obj_type === 'repo') { + this.old_repo_name = json.old_repo_name; + } else if (json.op_type === 'move' && ['dir', 'file'].includes(json.obj_type)) { + this.old_path = json.old_path; + } else if (json.op_type === 'rename' && ['dir', 'file'].includes(json.obj_type)) { + this.old_path = json.old_path; + this.old_name = json.old_name; + } else if (json.op_type === 'review') { + this.old_path = json.old_path; + this.review_id = json.review_id; + } + } +} + +export default Acticity; diff --git a/frontend/src/pages/dashboard/files-activities.js b/frontend/src/pages/dashboard/files-activities.js index 97ccf500c6..bd5fac7a17 100644 --- a/frontend/src/pages/dashboard/files-activities.js +++ b/frontend/src/pages/dashboard/files-activities.js @@ -5,6 +5,7 @@ import { seafileAPI } from '../../utils/seafile-api'; import { gettext, siteRoot } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import Loading from '../../components/loading'; +import Activity from '../../models/activity'; moment.locale(window.app.config.lang); @@ -172,20 +173,33 @@ class TableBody extends Component { } } + let isShowDate = true; + if (index > 0) { + let lastEventTime = this.props.items[index - 1].time; + isShowDate = moment(item.time).isSame(lastEventTime, 'day') ? false : true + } + return ( -