1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-16 23:29:49 +00:00

display draft&review activities (#2851)

* dispaly draft&review activities

* repalce obj_id with old_path

* use [for loop] filter events

* repair code

* prohibit [publish draft]
This commit is contained in:
王健辉
2019-01-21 15:38:34 +08:00
committed by Daniel Pan
parent bd98ee3078
commit 405dfc9eeb
6 changed files with 121 additions and 3 deletions

View File

@@ -82,15 +82,42 @@ class TableBody extends Component {
details = <td>{libLink}</td>;
break;
}
} else if (item.obj_type == 'review') {
let fileURL = `${siteRoot}drafts/review/${item.review_id}`;
let fileLink = <a href={fileURL}>{item.name}</a>;
switch(item.op_type) {
case 'open':
op = gettext('Open review');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
case 'closed':
op = gettext('Close review');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
case 'finished':
op = gettext('Publish draft');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
}
} else if (item.obj_type == 'file') {
let fileURL = `${siteRoot}lib/${item.repo_id}/file${Utils.encodePath(item.path)}`;
let fileLink = <a href={fileURL}>{item.name}</a>;
switch(item.op_type) {
case 'create':
if (item.name.endsWith("(draft).md")) {
op = gettext('Created draft');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
}
op = gettext('Created file');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
case 'delete':
if (item.name.endsWith("(draft).md")) {
op = gettext('Deleted draft');
details = <td>{item.name}<br />{smallLibLink}</td>;
break;
}
op = gettext('Deleted file');
details = <td>{item.name}<br />{smallLibLink}</td>;
break;
@@ -108,6 +135,11 @@ class TableBody extends Component {
details = <td>{item.old_path} => {filePathLink}<br />{smallLibLink}</td>;
break;
case 'edit': // update
if (item.name.endsWith("(draft).md")) {
op = gettext('Updated draft');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
}
op = gettext('Updated file');
details = <td>{fileLink}<br />{smallLibLink}</td>;
break;
@@ -177,6 +209,8 @@ class FilesActivities extends Component {
items: [],
};
this.avatarSize = 72;
this.curPathList = [];
this.oldPathList = [];
}
componentDidMount() {
@@ -184,7 +218,7 @@ class FilesActivities extends Component {
seafileAPI.listActivities(currentPage, this.avatarSize).then(res => {
// {"events":[...]}
this.setState({
items: res.data.events,
items: this.filterSuperfluousEvents(res.data.events),
currentPage: currentPage + 1,
isFirstLoading: false,
hasMore: true,
@@ -199,13 +233,42 @@ class FilesActivities extends Component {
});
}
filterSuperfluousEvents = (events) => {
events.map((item) => {
if (item.op_type === "finished") {
this.curPathList.push(item.path);
this.oldPathList.push(item.old_path);
}
});
let actuallyEvents = [];
for (var i = 0; i < events.length; i++) {
if (events[i].obj_type === 'file') {
if (events[i].op_type === 'delete' && this.oldPathList.includes(events[i].path)) {
this.oldPathList.splice(this.oldPathList.indexOf(events[i].path), 1);
continue;
} else if (events[i].op_type === 'edit' && this.curPathList.includes(events[i].path)) {
this.curPathList.splice(this.curPathList.indexOf(events[i].path), 1);
continue;
} else if (events[i].op_type === 'rename' && this.oldPathList.includes(events[i].old_path)) {
this.oldPathList.splice(this.oldPathList.indexOf(events[i].old_path), 1);
continue;
} else {
actuallyEvents.push(events[i]);
}
} else {
actuallyEvents.push(events[i]);
}
}
return actuallyEvents;
}
getMore() {
let currentPage = this.state.currentPage;
seafileAPI.listActivities(currentPage, this.avatarSize).then(res => {
// {"events":[...]}
this.setState({
isLoadingMore: false,
items: [...this.state.items, ...res.data.events],
items: [...this.state.items, ...this.filterSuperfluousEvents(res.data.events)],
currentPage: currentPage + 1,
hasMore: res.data.events.length === 0 ? false : true
});