mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-07 01:41:39 +00:00
fix my activities filters (#7166)
* fix my activities filters * update --------- Co-authored-by: r350178982 <32759763+r350178982@users.noreply.github.com>
This commit is contained in:
@@ -40,7 +40,7 @@ class FilesActivities extends Component {
|
|||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
let { currentPage, availableUsers } = this.state;
|
let { currentPage, availableUsers } = this.state;
|
||||||
seafileAPI.listActivities(currentPage).then(res => {
|
seafileAPI.listActivities(currentPage, this.props.onlyMine ? username : '').then(res => {
|
||||||
// {"events":[...]}
|
// {"events":[...]}
|
||||||
let events = this.mergePublishEvents(res.data.events);
|
let events = this.mergePublishEvents(res.data.events);
|
||||||
events = this.mergeFileCreateEvents(events);
|
events = this.mergeFileCreateEvents(events);
|
||||||
@@ -139,7 +139,7 @@ class FilesActivities extends Component {
|
|||||||
|
|
||||||
getMore() {
|
getMore() {
|
||||||
const { currentPage, availableUsers, targetUsers } = this.state;
|
const { currentPage, availableUsers, targetUsers } = this.state;
|
||||||
seafileAPI.listActivities(currentPage).then(res => {
|
seafileAPI.listActivities(currentPage, this.props.onlyMine ? username : '').then(res => {
|
||||||
// {"events":[...]}
|
// {"events":[...]}
|
||||||
let events = this.mergePublishEvents(res.data.events);
|
let events = this.mergePublishEvents(res.data.events);
|
||||||
events = this.mergeFileCreateEvents(events);
|
events = this.mergeFileCreateEvents(events);
|
||||||
@@ -184,13 +184,10 @@ class FilesActivities extends Component {
|
|||||||
const { onlyMine } = this.props;
|
const { onlyMine } = this.props;
|
||||||
const { targetUsers } = this.state;
|
const { targetUsers } = this.state;
|
||||||
|
|
||||||
if (onlyMine) {
|
if (!onlyMine && targetUsers.length) {
|
||||||
return events.filter(item => item.author_email == username);
|
|
||||||
} else if (targetUsers.length) {
|
|
||||||
return events.filter(item => targetUsers.map(item => item.email).indexOf(item.author_email) != -1);
|
return events.filter(item => targetUsers.map(item => item.email).indexOf(item.author_email) != -1);
|
||||||
} else {
|
|
||||||
return events;
|
|
||||||
}
|
}
|
||||||
|
return events;
|
||||||
};
|
};
|
||||||
|
|
||||||
setTargetUsers = (selectedUsers) => {
|
setTargetUsers = (selectedUsers) => {
|
||||||
|
@@ -1493,8 +1493,11 @@ class SeafileAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ---- Activities API
|
// ---- Activities API
|
||||||
listActivities(pageNum) {
|
listActivities(pageNum, operationUser) {
|
||||||
const url = this.server + '/api/v2.1/activities/?page=' + pageNum;
|
let url = this.server + '/api/v2.1/activities/?page=' + pageNum;
|
||||||
|
if (operationUser) {
|
||||||
|
url += '&op_user=' + encodeURIComponent(operationUser);
|
||||||
|
}
|
||||||
return this.req.get(url);
|
return this.req.get(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -40,13 +40,14 @@ class ActivitiesView(APIView):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
per_page = 25
|
per_page = 25
|
||||||
|
|
||||||
|
op_user = request.GET.get('op_user', '')
|
||||||
start = (page - 1) * per_page
|
start = (page - 1) * per_page
|
||||||
count = per_page
|
count = per_page
|
||||||
|
|
||||||
email = request.user.username
|
email = request.user.username
|
||||||
|
|
||||||
try:
|
try:
|
||||||
events = get_user_activities(email, start, count)
|
events = get_user_activities(email, start, count, op_user)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
error_msg = 'Internal Server Error'
|
error_msg = 'Internal Server Error'
|
||||||
|
@@ -621,12 +621,16 @@ if EVENTS_CONFIG_FILE:
|
|||||||
session.close()
|
session.close()
|
||||||
|
|
||||||
|
|
||||||
def _get_activities(username, start, count):
|
def _get_activities(username, start, count, op_user=None):
|
||||||
ev_session = SeafEventsSession()
|
ev_session = SeafEventsSession()
|
||||||
|
|
||||||
events = []
|
events = []
|
||||||
try:
|
try:
|
||||||
events = seafevents_api.get_user_activities(ev_session,
|
if op_user:
|
||||||
|
events = seafevents_api.get_user_activities_by_op_user(ev_session,
|
||||||
|
username, op_user, start, count)
|
||||||
|
else:
|
||||||
|
events = seafevents_api.get_user_activities(ev_session,
|
||||||
username, start, count)
|
username, start, count)
|
||||||
finally:
|
finally:
|
||||||
ev_session.close()
|
ev_session.close()
|
||||||
@@ -634,14 +638,14 @@ if EVENTS_CONFIG_FILE:
|
|||||||
return events
|
return events
|
||||||
|
|
||||||
|
|
||||||
def get_user_activities(username, start, count):
|
def get_user_activities(username, start, count, op_user=None):
|
||||||
"""Return user events list and a new start.
|
"""Return user events list and a new start.
|
||||||
For example:
|
For example:
|
||||||
``get_user_activities('foo@example.com', 0, 10)`` returns the first 10
|
``get_user_activities('foo@example.com', 0, 10)`` returns the first 10
|
||||||
``get_user_activities('foo@example.com', 4, 10)`` returns the 6th through
|
``get_user_activities('foo@example.com', 4, 10)`` returns the 6th through
|
||||||
15th events.
|
15th events.
|
||||||
"""
|
"""
|
||||||
return _get_activities(username, start, count)
|
return _get_activities(username, start, count, op_user)
|
||||||
|
|
||||||
def get_user_activity_stats_by_day(start, end, offset):
|
def get_user_activity_stats_by_day(start, end, offset):
|
||||||
"""
|
"""
|
||||||
|
Reference in New Issue
Block a user