mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-03 07:55:36 +00:00
refactor code (#2513)
This commit is contained in:
@@ -40,7 +40,7 @@ class ReviewListView extends React.Component {
|
|||||||
className={classnames({ active: this.state.activeTab === 'open' })}
|
className={classnames({ active: this.state.activeTab === 'open' })}
|
||||||
onClick={() => { this.toggle('open');}}
|
onClick={() => { this.toggle('open');}}
|
||||||
>
|
>
|
||||||
Open
|
{gettext('Open')}
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</NavItem>
|
</NavItem>
|
||||||
<NavItem>
|
<NavItem>
|
||||||
@@ -48,7 +48,7 @@ class ReviewListView extends React.Component {
|
|||||||
className={classnames({ active: this.state.activeTab === 'finished' })}
|
className={classnames({ active: this.state.activeTab === 'finished' })}
|
||||||
onClick={() => { this.toggle('finished');}}
|
onClick={() => { this.toggle('finished');}}
|
||||||
>
|
>
|
||||||
Published
|
{gettext('Published')}
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</NavItem>
|
</NavItem>
|
||||||
<NavItem>
|
<NavItem>
|
||||||
@@ -56,7 +56,7 @@ class ReviewListView extends React.Component {
|
|||||||
className={classnames({ active: this.state.activeTab === 'closed' })}
|
className={classnames({ active: this.state.activeTab === 'closed' })}
|
||||||
onClick={() => { this.toggle('closed');}}
|
onClick={() => { this.toggle('closed');}}
|
||||||
>
|
>
|
||||||
Closed
|
{gettext('Closed')}
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</NavItem>
|
</NavItem>
|
||||||
</Nav>
|
</Nav>
|
||||||
|
@@ -3,7 +3,7 @@ import ReactDOM from 'react-dom';
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
import Prism from 'prismjs';
|
import Prism from 'prismjs';
|
||||||
/* eslint-enable */
|
/* eslint-enable */
|
||||||
import { siteRoot, gettext, draftID, reviewID, draftOriginFilePath, draftFilePath, draftOriginRepoID, draftFileName, opStatus, publishFileVersion, originFileVersion } from './utils/constants';
|
import { siteRoot, gettext, draftID, reviewID, draftOriginFilePath, draftFilePath, draftOriginRepoID, draftFileName, opStatus, publishFileVersion, originFileVersion, author, authorAvatar } from './utils/constants';
|
||||||
import { seafileAPI } from './utils/seafile-api';
|
import { seafileAPI } from './utils/seafile-api';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import DiffViewer from '@seafile/seafile-editor/dist/viewer/diff-viewer';
|
import DiffViewer from '@seafile/seafile-editor/dist/viewer/diff-viewer';
|
||||||
@@ -41,8 +41,6 @@ class DraftReview extends React.Component {
|
|||||||
showReviewerDialog: false,
|
showReviewerDialog: false,
|
||||||
reviewers: [],
|
reviewers: [],
|
||||||
};
|
};
|
||||||
this.authorName = '';
|
|
||||||
this.authorAvatar = '';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
@@ -164,13 +162,6 @@ class DraftReview extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getAuthorInfo = () => {
|
|
||||||
seafileAPI.getAccountInfo().then((res) => {
|
|
||||||
this.authorName = res.data.name;
|
|
||||||
this.authorAvatar = res.data.avatar_url;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
listReviewers = () => {
|
listReviewers = () => {
|
||||||
seafileAPI.listReviewers(reviewID).then((res) => {
|
seafileAPI.listReviewers(reviewID).then((res) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
@@ -181,7 +172,6 @@ class DraftReview extends React.Component {
|
|||||||
|
|
||||||
componentWillMount() {
|
componentWillMount() {
|
||||||
this.getCommentsNumber();
|
this.getCommentsNumber();
|
||||||
this.getAuthorInfo();
|
|
||||||
this.listReviewers();
|
this.listReviewers();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,8 +289,8 @@ class DraftReview extends React.Component {
|
|||||||
<div className="review-side-panel-header">{gettext('Author')}</div>
|
<div className="review-side-panel-header">{gettext('Author')}</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="author-info">
|
<div className="author-info">
|
||||||
<img className="avatar author-avatar" src={this.authorAvatar} alt=""/>
|
<img className="avatar author-avatar" src={authorAvatar} alt=""/>
|
||||||
<span className="author-name">{this.authorName}</span>
|
<span className="author-name">{author}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -44,3 +44,5 @@ export const opStatus = window.draftReview ? window.draftReview.config.opStatus
|
|||||||
export const reviewPerm = window.draftReview ? window.draftReview.config.perm : '';
|
export const reviewPerm = window.draftReview ? window.draftReview.config.perm : '';
|
||||||
export const publishFileVersion = window.draftReview ? window.draftReview.config.publishFileVersion : '';
|
export const publishFileVersion = window.draftReview ? window.draftReview.config.publishFileVersion : '';
|
||||||
export const originFileVersion = window.draftReview ? window.draftReview.config.originFileVersion : '';
|
export const originFileVersion = window.draftReview ? window.draftReview.config.originFileVersion : '';
|
||||||
|
export const author = window.draftReview ? window.draftReview.config.author : '';
|
||||||
|
export const authorAvatar = window.draftReview ? window.draftReview.config.authorAvatar : '';
|
||||||
|
@@ -71,10 +71,10 @@ class DraftsView(APIView):
|
|||||||
return api_error(status.HTTP_404_NOT_FOUND,
|
return api_error(status.HTTP_404_NOT_FOUND,
|
||||||
"File %s not found" % file_path)
|
"File %s not found" % file_path)
|
||||||
|
|
||||||
username = request.user.username
|
dirent = seafile_api.get_dirent_by_path(repo_id, file_path)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
d = Draft.objects.add(username, repo, file_path, file_id)
|
d = Draft.objects.add(dirent.modifier, repo, file_path, file_id)
|
||||||
|
|
||||||
return Response(d.to_dict())
|
return Response(d.to_dict())
|
||||||
except (DraftFileExist, IntegrityError):
|
except (DraftFileExist, IntegrityError):
|
||||||
|
@@ -5,10 +5,12 @@ import posixpath
|
|||||||
from django.shortcuts import render, get_object_or_404
|
from django.shortcuts import render, get_object_or_404
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
|
|
||||||
|
from seahub.base.templatetags.seahub_tags import email2nickname
|
||||||
from seahub.auth.decorators import login_required
|
from seahub.auth.decorators import login_required
|
||||||
from seahub.views import check_folder_permission
|
from seahub.views import check_folder_permission
|
||||||
from seahub.utils import render_permission_error
|
from seahub.utils import render_permission_error
|
||||||
from seahub.drafts.models import Draft, DraftReview
|
from seahub.drafts.models import Draft, DraftReview
|
||||||
|
from seahub.api2.utils import user_to_dict
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
@@ -39,6 +41,8 @@ def review(request, pk):
|
|||||||
|
|
||||||
draft_file_name = os.path.basename(d_r.draft_file_path)
|
draft_file_name = os.path.basename(d_r.draft_file_path)
|
||||||
|
|
||||||
|
user_info = user_to_dict(d_r.creator, avatar_size=32)
|
||||||
|
|
||||||
return render(request, "draft_review.html", {
|
return render(request, "draft_review.html", {
|
||||||
"draft_id": d_r.draft_id_id,
|
"draft_id": d_r.draft_id_id,
|
||||||
"review_id": pk,
|
"review_id": pk,
|
||||||
@@ -50,5 +54,7 @@ def review(request, pk):
|
|||||||
"origin_file_version": d_r.origin_file_version,
|
"origin_file_version": d_r.origin_file_version,
|
||||||
"publish_file_version": d_r.publish_file_version,
|
"publish_file_version": d_r.publish_file_version,
|
||||||
"status": d_r.status,
|
"status": d_r.status,
|
||||||
"permission": permission
|
"permission": permission,
|
||||||
|
"author": user_info['user_name'],
|
||||||
|
'author_avatar_url': user_info['avatar_url']
|
||||||
})
|
})
|
||||||
|
@@ -782,7 +782,7 @@ class UserNotification(models.Model):
|
|||||||
review_id = d['review_id']
|
review_id = d['review_id']
|
||||||
author = d['author']
|
author = d['author']
|
||||||
|
|
||||||
msg = _("Review <a href='%(file_url)s'>%(review_id)s</a> has a new comment from user %(author)s") % {
|
msg = _("<a href='%(file_url)s'>Review #%(review_id)s</a> has a new comment from user %(author)s") % {
|
||||||
'review_id': review_id,
|
'review_id': review_id,
|
||||||
'file_url': reverse('drafts:review', args=[review_id]),
|
'file_url': reverse('drafts:review', args=[review_id]),
|
||||||
'author': escape(email2nickname(author)),
|
'author': escape(email2nickname(author)),
|
||||||
@@ -799,7 +799,7 @@ class UserNotification(models.Model):
|
|||||||
review_id = d['review_id']
|
review_id = d['review_id']
|
||||||
from_user = d['from_user']
|
from_user = d['from_user']
|
||||||
|
|
||||||
msg = _("%(from_user)s has sent you a request for review <a href='%(file_url)s'>%(review_id)s</a>") % {
|
msg = _("%(from_user)s has sent you a request for <a href='%(file_url)s'>review #%(review_id)s</a>") % {
|
||||||
'review_id': review_id,
|
'review_id': review_id,
|
||||||
'file_url': reverse('drafts:review', args=[review_id]),
|
'file_url': reverse('drafts:review', args=[review_id]),
|
||||||
'from_user': escape(email2nickname(from_user))
|
'from_user': escape(email2nickname(from_user))
|
||||||
@@ -818,14 +818,14 @@ class UserNotification(models.Model):
|
|||||||
status = d['status']
|
status = d['status']
|
||||||
|
|
||||||
if status == 'closed':
|
if status == 'closed':
|
||||||
msg = _("%(from_user)s has closed review <a href='%(file_url)s'>%(review_id)s</a>") % {
|
msg = _("%(from_user)s has closed <a href='%(file_url)s'>review #%(review_id)s</a>") % {
|
||||||
'review_id': review_id,
|
'review_id': review_id,
|
||||||
'file_url': reverse('drafts:review', args=[review_id]),
|
'file_url': reverse('drafts:review', args=[review_id]),
|
||||||
'from_user': escape(email2nickname(from_user))
|
'from_user': escape(email2nickname(from_user))
|
||||||
}
|
}
|
||||||
|
|
||||||
if status == 'finished':
|
if status == 'finished':
|
||||||
msg = _("%(from_user)s has published review <a href='%(file_url)s'>%(review_id)s</a>") % {
|
msg = _("%(from_user)s has published <a href='%(file_url)s'>review #%(review_id)s</a>") % {
|
||||||
'review_id': review_id,
|
'review_id': review_id,
|
||||||
'file_url': reverse('drafts:review', args=[review_id]),
|
'file_url': reverse('drafts:review', args=[review_id]),
|
||||||
'from_user': escape(email2nickname(from_user))
|
'from_user': escape(email2nickname(from_user))
|
||||||
|
@@ -16,6 +16,8 @@
|
|||||||
perm: '{{ permission }}',
|
perm: '{{ permission }}',
|
||||||
publishFileVersion: '{{ publish_file_version }}',
|
publishFileVersion: '{{ publish_file_version }}',
|
||||||
originFileVersion: '{{ origin_file_version }}',
|
originFileVersion: '{{ origin_file_version }}',
|
||||||
|
author: '{{ author }}',
|
||||||
|
authorAvatar: '{{ author_avatar_url }}',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
Reference in New Issue
Block a user