mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-03 07:55:36 +00:00
Update draft page (#3036)
* draft-update * test * update draft reviewer api * update draft page * add file path
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
import React from 'react';
|
||||
import AsyncSelect from 'react-select/lib/Async';
|
||||
import PropTypes from 'prop-types';
|
||||
import { gettext } from '../../utils/constants';
|
||||
import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
|
||||
import { seafileAPI } from '../../utils/seafile-api.js';
|
||||
import UserSelect from '../user-select.js';
|
||||
import '../../css/add-reviewer-dialog.css';
|
||||
|
||||
const propTypes = {
|
||||
showReviewerDialog: PropTypes.bool.isRequired,
|
||||
reviewID: PropTypes.string.isRequired,
|
||||
draftID: PropTypes.string.isRequired,
|
||||
toggleAddReviewerDialog: PropTypes.func.isRequired,
|
||||
reviewers: PropTypes.array.isRequired
|
||||
};
|
||||
@@ -27,7 +27,7 @@ class AddReviewerDialog extends React.Component {
|
||||
}
|
||||
|
||||
listReviewers = () => {
|
||||
seafileAPI.listReviewers(this.props.reviewID).then((res) => {
|
||||
seafileAPI.listDraftReviewers(this.props.draftID).then((res) => {
|
||||
this.setState({
|
||||
reviewers: res.data.reviewers
|
||||
});
|
||||
@@ -41,29 +41,9 @@ class AddReviewerDialog extends React.Component {
|
||||
this.Options = [];
|
||||
}
|
||||
|
||||
loadOptions = (value, callback) => {
|
||||
if (value.trim().length > 0) {
|
||||
seafileAPI.searchUsers(value.trim()).then((res) => {
|
||||
this.Options = [];
|
||||
for (let i = 0 ; i < res.data.users.length; i++) {
|
||||
let obj = {};
|
||||
obj.value = res.data.users[i].name;
|
||||
obj.email = res.data.users[i].email;
|
||||
obj.label =
|
||||
<React.Fragment>
|
||||
<img src={res.data.users[i].avatar_url} className="avatar reviewer-select-avatar" alt=""/>
|
||||
<span className='reviewer-select-name'>{res.data.users[i].name}</span>
|
||||
</React.Fragment>;
|
||||
this.Options.push(obj);
|
||||
}
|
||||
callback(this.Options);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
addReviewers = () => {
|
||||
if (this.state.selectedOption.length > 0 ) {
|
||||
this.refs.reviewSelect.select.onChange([], { action: 'clear' });
|
||||
this.refs.reviewSelect.clearSelect();
|
||||
let reviewers = [];
|
||||
for (let i = 0; i < this.state.selectedOption.length; i ++) {
|
||||
reviewers[i] = this.state.selectedOption[i].email;
|
||||
@@ -72,7 +52,7 @@ class AddReviewerDialog extends React.Component {
|
||||
loading: true,
|
||||
errorMsg: [],
|
||||
});
|
||||
seafileAPI.addReviewers(this.props.reviewID, reviewers).then((res) => {
|
||||
seafileAPI.addDraftReviewers(this.props.draftID, reviewers).then((res) => {
|
||||
if (res.data.failed.length > 0) {
|
||||
let errorMsg = [];
|
||||
for (let i = 0 ; i < res.data.failed.length ; i++) {
|
||||
@@ -95,7 +75,7 @@ class AddReviewerDialog extends React.Component {
|
||||
|
||||
deleteReviewer = (event) => {
|
||||
let reviewer = event.target.getAttribute('name');
|
||||
seafileAPI.deleteReviewer(this.props.reviewID, reviewer).then((res) => {
|
||||
seafileAPI.deleteDraftReviewer(this.props.draftID, reviewer).then((res) => {
|
||||
if (res.data === 200) {
|
||||
let newReviewers = [];
|
||||
for (let i = 0; i < this.state.reviewers.length; i ++) {
|
||||
@@ -116,12 +96,12 @@ class AddReviewerDialog extends React.Component {
|
||||
<ModalHeader>{gettext('Request a review')}</ModalHeader>
|
||||
<ModalBody >
|
||||
<p>{gettext('Add new reviewer')}</p>
|
||||
<AsyncSelect
|
||||
className='reviewer-select' isMulti isFocused
|
||||
loadOptions={this.loadOptions}
|
||||
<UserSelect
|
||||
placeholder={gettext('Please enter 1 or more character')}
|
||||
onChange={this.handleSelectChange}
|
||||
ref="reviewSelect" isClearable classNamePrefix
|
||||
onSelectChange={this.handleSelectChange}
|
||||
ref="reviewSelect"
|
||||
isMulti={true}
|
||||
className='reviewer-select'
|
||||
/>
|
||||
{this.state.errorMsg.length > 0 &&
|
||||
this.state.errorMsg.map((item, index = 0, arr) => {
|
||||
|
Reference in New Issue
Block a user