forked from Gitlink/forgeplus-react
Merge branch 'develop' of http://git.trustie.net/jasder/forgeplus-react into develop
This commit is contained in:
commit
20e32871d7
|
@ -2,9 +2,10 @@
|
|||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="9830c5da-176a-4c72-a301-9f6ce98c82fe" name="Default Changelist" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/forge/Main/Detail.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Main/Detail.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/forge/Order/CopyDetail.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Order/CopyDetail.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/forge/Order/Detail.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Order/Detail.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/forge/Order/UpdateDetail.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/forge/Order/UpdateDetail.js" afterDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
@ -13,56 +14,25 @@
|
|||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="231">
|
||||
<caret line="23" column="19" selection-start-line="23" selection-start-column="19" selection-end-line="23" selection-end-column="19" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||
<file pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2342">
|
||||
<caret line="436" column="13" selection-start-line="436" selection-start-column="13" selection-end-line="436" selection-end-column="13" />
|
||||
<state relative-caret-position="215">
|
||||
<caret line="392" column="46" lean-forward="true" selection-start-line="392" selection-start-column="46" selection-end-line="392" selection-end-column="46" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
<element signature="e#15286#16091#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="166">
|
||||
<caret line="58" column="29" selection-start-line="58" selection-start-column="29" selection-end-line="58" selection-end-column="29" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootIndex.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="295">
|
||||
<caret line="19" column="25" selection-start-line="19" selection-start-column="25" selection-end-line="19" selection-end-column="25" />
|
||||
<state relative-caret-position="363">
|
||||
<caret line="501" lean-forward="true" selection-start-line="501" selection-end-line="501" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
|
@ -77,10 +47,19 @@
|
|||
<find>versions</find>
|
||||
<find>缺陷</find>
|
||||
<find>contents/file</find>
|
||||
<find>新建翻转课堂</find>
|
||||
<find>nHeader</find>
|
||||
<find>点赞</find>
|
||||
<find>Educoder</find>
|
||||
<find>fork</find>
|
||||
<find>isedit</find>
|
||||
<find>.push(</find>
|
||||
<find>QuillForEditor</find>
|
||||
</findStrings>
|
||||
<dirStrings>
|
||||
<dir>$PROJECT_DIR$/src/forge</dir>
|
||||
<dir>$PROJECT_DIR$/src</dir>
|
||||
<dir>$PROJECT_DIR$</dir>
|
||||
</dirStrings>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
|
@ -90,11 +69,19 @@
|
|||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/src/AppConfig.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Tags.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Version/NewVersion.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/newMilepost.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Detail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Index.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Tags.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Milepost.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Merge/merge.js" />
|
||||
<option value="$PROJECT_DIR$/src/modules/tpm/NewHeader.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/New.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Main/Detail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/Detail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/UpdateDetail.js" />
|
||||
<option value="$PROJECT_DIR$/src/forge/Order/CopyDetail.js" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
|
@ -130,7 +117,7 @@
|
|||
<item name="forgeplus-react" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="forge" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Main" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="Order" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
|
@ -171,25 +158,21 @@
|
|||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1584692398144</updated>
|
||||
<workItem from="1584692401543" duration="5996000" />
|
||||
<workItem from="1584692401543" duration="6228000" />
|
||||
<workItem from="1585015135223" duration="11104000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="5996000" />
|
||||
<option name="totallyTimeSpent" value="17332000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="0" y="0" width="1440" height="900" extended-state="0" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="Favorites" side_tool="true" />
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24964234" />
|
||||
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.2532189" />
|
||||
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Docker" show_stripe_button="false" />
|
||||
<window_info anchor="bottom" id="Database Changes" />
|
||||
<window_info anchor="bottom" id="Version Control" weight="0.47228914" />
|
||||
<window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.49156627" />
|
||||
<window_info anchor="bottom" id="Event Log" side_tool="true" />
|
||||
<window_info id="Favorites" order="2" side_tool="true" />
|
||||
<window_info anchor="bottom" id="Message" order="0" />
|
||||
<window_info anchor="bottom" id="Find" order="1" />
|
||||
<window_info anchor="bottom" id="Run" order="2" />
|
||||
|
@ -197,10 +180,15 @@
|
|||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
|
||||
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
|
||||
<window_info anchor="bottom" id="TODO" order="6" />
|
||||
<window_info anchor="right" id="Database" />
|
||||
<window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
|
||||
<window_info anchor="bottom" id="Database Changes" order="8" />
|
||||
<window_info anchor="bottom" id="Version Control" order="9" weight="0.47228914" />
|
||||
<window_info active="true" anchor="bottom" id="Terminal" order="10" visible="true" weight="0.32891566" />
|
||||
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
|
||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
|
||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
|
||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
|
||||
<window_info anchor="right" id="Database" order="3" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
|
@ -236,25 +224,6 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Milepost.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state>
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Tags.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-3771">
|
||||
<caret line="70" column="25" selection-start-line="70" selection-start-column="25" selection-end-line="70" selection-end-column="25" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/newMilepost.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="87">
|
||||
|
@ -275,19 +244,9 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="295">
|
||||
<caret line="19" column="25" selection-start-line="19" selection-start-column="25" selection-end-line="19" selection-end-column="25" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/order.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="231">
|
||||
<state relative-caret-position="221">
|
||||
<caret line="23" column="19" selection-start-line="23" selection-start-column="19" selection-end-line="23" selection-end-column="19" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
|
@ -304,19 +263,115 @@
|
|||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="255">
|
||||
<caret line="33" column="4" selection-start-line="33" selection-start-column="4" selection-end-line="33" selection-end-column="4" />
|
||||
<folding>
|
||||
<element signature="e#0#26#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/modules/home/shixunsHome.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-5268">
|
||||
<folding>
|
||||
<element signature="e#0#41#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/CoderRootFileDetail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="166">
|
||||
<caret line="58" column="29" selection-start-line="58" selection-start-column="29" selection-end-line="58" selection-end-column="29" />
|
||||
<state relative-caret-position="277">
|
||||
<caret line="64" column="45" selection-start-line="64" selection-start-column="45" selection-end-line="64" selection-end-column="45" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/IndexItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="209">
|
||||
<caret line="35" column="23" selection-start-line="35" selection-start-column="23" selection-end-line="35" selection-end-column="23" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Merge/merge.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="270">
|
||||
<caret line="276" column="20" selection-start-line="276" selection-start-column="20" selection-end-line="276" selection-end-column="20" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
<element signature="e#6583#7400#0" />
|
||||
<element signature="e#7409#9273#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="187">
|
||||
<caret line="11" selection-start-line="11" selection-end-line="11" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Tags.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="337">
|
||||
<caret line="319" column="18" selection-start-line="319" selection-start-column="18" selection-end-line="319" selection-end-column="18" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
<element signature="e#6599#6910#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Milepost.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="172">
|
||||
<caret line="280" column="38" selection-start-line="280" selection-start-column="38" selection-end-line="280" selection-end-column="38" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
<element signature="e#4332#4367#0" />
|
||||
<element signature="e#4350#5226#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/OrderItem.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="323">
|
||||
<caret line="19" column="25" selection-start-line="19" selection-start-column="25" selection-end-line="19" selection-end-column="25" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/modules/tpm/NewHeader.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="252">
|
||||
<caret line="1089" column="31" selection-start-line="1089" selection-start-column="31" selection-end-line="1089" selection-end-column="31" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Main/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="363">
|
||||
<caret line="501" lean-forward="true" selection-start-line="501" selection-end-line="501" />
|
||||
<folding>
|
||||
<element signature="e#0#42#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/src/forge/Order/Detail.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2342">
|
||||
<caret line="436" column="13" selection-start-line="436" selection-start-column="13" selection-end-line="436" selection-end-column="13" />
|
||||
<state relative-caret-position="215">
|
||||
<caret line="392" column="46" lean-forward="true" selection-start-line="392" selection-start-column="46" selection-end-line="392" selection-end-column="46" />
|
||||
<folding>
|
||||
<element signature="e#0#40#0" expanded="true" />
|
||||
<element signature="e#15286#16091#0" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
|
|
|
@ -57,12 +57,13 @@ class CoderRootFileDetail extends Component{
|
|||
axios.delete(url,{
|
||||
params:{
|
||||
filepath:detail.path,
|
||||
branch
|
||||
branch,
|
||||
sha:detail.sha
|
||||
}
|
||||
}).then(result=>{
|
||||
if(result){
|
||||
this.props.showNotification("删除成功!");
|
||||
this.props.history.push(`/projects/${projectsId}/${authorLogin}`);
|
||||
this.props.history.push(`/projects/${projectsId}`);
|
||||
}
|
||||
}).catch(error=>{
|
||||
console.log(error);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import React , { Component } from 'react';
|
||||
import { Link , Route , Switch } from 'react-router-dom';
|
||||
import { Link , Route , Switch,withRouter } from 'react-router-dom';
|
||||
|
||||
import '../css/index.css'
|
||||
import './list.css';
|
||||
|
@ -124,6 +124,7 @@ const TrendsIndex = Loadable({
|
|||
/**
|
||||
* permission:Manager:管理员,Reporter:报告人员(只有读取权限),Developer:开发人员(除不能设置仓库信息外)
|
||||
*/
|
||||
|
||||
class Detail extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
|
@ -245,7 +246,8 @@ class Detail extends Component{
|
|||
const url = `/projects/${project_id}/forks.json`;
|
||||
axios.post(url).then(result=>{
|
||||
if(result && result.data.status === 0){
|
||||
this.props.history.push(`/projects/${result.data.identifier}/coders`);
|
||||
this.props.history.push(`/projects/${result.data.id}/coders`);
|
||||
this.props.showNotification(result.data.message);
|
||||
}else{
|
||||
this.props.showNotification(result.data.message);
|
||||
}
|
||||
|
@ -494,4 +496,4 @@ class Detail extends Component{
|
|||
}
|
||||
}
|
||||
|
||||
export default Detail;
|
||||
export default withRouter(Detail);
|
||||
|
|
|
@ -250,62 +250,73 @@ class merge extends Component{
|
|||
<div className="main">
|
||||
<div className="topWrapper">
|
||||
<Nav {...this.props} {...this.state}/>
|
||||
<Link to={`/projects/${projectsId}/merge/new`} className="topWrapper_btn">创建合并请求</Link>
|
||||
</div>
|
||||
<div className="topWrapper" style={{borderBottom:"none"}}>
|
||||
<p className="topWrapper_type">
|
||||
<li className={openselect ? "active":""} onClick={()=>this.openorder(1)}>{data && data.open_count}个开启中</li>
|
||||
<li className={closeselect ? "active":""} onClick={()=>this.openorder(2)}>{data && data.close_count}个已关闭</li>
|
||||
{/* <span onClick={this.openorder} className={author_id ? "active":""}>{data && data.open_count}个开启中</span>
|
||||
<span onClick={this.closeorder} className={author_id ? "active":""}>{data && data.close_count}个已关闭</span> */}
|
||||
</p>
|
||||
<div>
|
||||
<Search
|
||||
placeholder="搜索"
|
||||
enterButton
|
||||
onSearch={this.searchFunc}
|
||||
style={{ width: 300 }}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<Spin spinning={isSpin}>
|
||||
<div className="f-wrap-between mb20">
|
||||
<ul >
|
||||
<li> </li>
|
||||
</ul>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_tag,'标签','issue_tag_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.issue_tag_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_version,'里程碑','fixed_version_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.fixed_version_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user,'指派人','assigned_to_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.assigned_to_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.paix}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{
|
||||
search_count === 0 ?
|
||||
<NoneData></NoneData>
|
||||
:
|
||||
<OrderItem issues={issues} search_count={search_count} page={page} limit={limit} {...this.props} {...this.state}></OrderItem>
|
||||
data && data.user_admin_or_member ?
|
||||
<Link to={`/projects/${projectsId}/merge/new`} className="topWrapper_btn">创建合并请求</Link>
|
||||
: ''
|
||||
}
|
||||
{ Paginations }
|
||||
</Spin>
|
||||
|
||||
</div>
|
||||
{
|
||||
data && data.search_count && data.search_count > 0 ?
|
||||
<div>
|
||||
<div className="topWrapper" style={{borderBottom:"none"}}>
|
||||
<p className="topWrapper_type">
|
||||
<li className={openselect ? "active":""} onClick={()=>this.openorder(1)}>{data && data.open_count}个开启中</li>
|
||||
<li className={closeselect ? "active":""} onClick={()=>this.openorder(2)}>{data && data.close_count}个已关闭</li>
|
||||
{/* <span onClick={this.openorder} className={author_id ? "active":""}>{data && data.open_count}个开启中</span>
|
||||
<span onClick={this.closeorder} className={author_id ? "active":""}>{data && data.close_count}个已关闭</span> */}
|
||||
</p>
|
||||
<div>
|
||||
<Search
|
||||
placeholder="搜索"
|
||||
enterButton
|
||||
onSearch={this.searchFunc}
|
||||
style={{ width: 300 }}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<Spin spinning={isSpin}>
|
||||
<div className="f-wrap-between mb20">
|
||||
<ul >
|
||||
<li> </li>
|
||||
</ul>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_tag,'标签','issue_tag_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.issue_tag_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.issue_version,'里程碑','fixed_version_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.fixed_version_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={this.renderMenu(issue_chosen && issue_chosen.assign_user,'指派人','assigned_to_id')} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.assigned_to_ids}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>{this.state.paix}<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
{
|
||||
search_count === 0 ?
|
||||
<NoneData></NoneData>
|
||||
:
|
||||
<OrderItem issues={issues} search_count={search_count} page={page} limit={limit} {...this.props} {...this.state}></OrderItem>
|
||||
}
|
||||
{ Paginations }
|
||||
</Spin>
|
||||
</div>
|
||||
:
|
||||
<NoneData/>
|
||||
}
|
||||
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
@ -225,9 +225,8 @@ class CopyDetail extends Component{
|
|||
)}
|
||||
</Form.Item>
|
||||
<div className="quillContent" style={{marginBottom:"20px"}}>
|
||||
<QuillForEditor
|
||||
value = {textcount}
|
||||
imgAttrs={{ width: '60px', height: '30px' }}
|
||||
<QuillForEditor
|
||||
setContents = {textcount}
|
||||
wrapStyle={{
|
||||
height: '220px',
|
||||
opacity:1,
|
||||
|
|
|
@ -387,7 +387,26 @@ class Detail extends Component{
|
|||
}
|
||||
</div>
|
||||
<div style={{display: (isedit && isedit === item.id) ? "block" : "none"}}>
|
||||
<TextArea style={{height:"200px"}} value={this.state.countvalue} onChange={this.changmodelname}/>
|
||||
<div className="quillContent">
|
||||
<QuillForEditor
|
||||
wrapStyle={{
|
||||
height: '220px',
|
||||
opacity:1,
|
||||
}}
|
||||
autoFocus={true}
|
||||
style={{ height: '150px' }}
|
||||
placeholder="添加评论..."
|
||||
options={options}
|
||||
setContents={this.state.countvalue}
|
||||
onContentChange={this.onContentChange}
|
||||
showUploadImage={this.handleShowImage}
|
||||
// onContentChange={handleContentChange}
|
||||
/>
|
||||
<p className="quillFlag">
|
||||
{ quillFlag && <span className="">请输入评论内容</span>}
|
||||
</p>
|
||||
</div>
|
||||
{/*<TextArea style={{height:"200px"}} value={this.state.countvalue} onChange={this.changmodelname}/>*/}
|
||||
<p className="clearfix mt15">
|
||||
<a className="topWrapper_btn fr" type="submit" onClick={()=>this.updatedetail(item.id)}>保存</a>
|
||||
<a className="a_btn cancel_btn fr" type="submit" onClick={()=>this.editdetail(item.content,undefined)}>取消</a>
|
||||
|
@ -492,7 +511,7 @@ class Detail extends Component{
|
|||
<div className="new_context">
|
||||
<div className="quillContent">
|
||||
<QuillForEditor
|
||||
imgAttrs={{ width: '30px' }}
|
||||
|
||||
wrapStyle={{
|
||||
height: '220px',
|
||||
opacity:1,
|
||||
|
|
|
@ -172,12 +172,28 @@ class Milepost extends Component{
|
|||
const renderList =()=>{
|
||||
if(data && data.versions && data.versions.length>0 ){
|
||||
return(
|
||||
<div className="tagList">
|
||||
{
|
||||
data.versions.map((item,key)=>{
|
||||
return(
|
||||
<div style={{display:'block'}}>
|
||||
<div className="milepostdiv">
|
||||
<div>
|
||||
<div className="topWrapper">
|
||||
<div className="topWrapper_type">
|
||||
<li className={openselect ? "active":""} onClick={()=>this.opneMilelist(1)}>{data && data.open_count}个开启中</li>
|
||||
<li className={closeselect ? "active":""} onClick={()=>this.opneMilelist(2)}>{data && data.closed_count}个已关闭</li>
|
||||
{/* <span onClick={this.opneMilelist}>{ data && data.open_count }开启中</span>
|
||||
<span onClick={this.closeMilelist}>{ data && data.closed_count }已关闭</span> */}
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>排序<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="tagList">
|
||||
{
|
||||
data.versions.map((item,key)=>{
|
||||
return(
|
||||
<div style={{display:'block'}}>
|
||||
<div className="milepostdiv">
|
||||
<div className="milepostwidth">
|
||||
<div className="grid-item width100">
|
||||
<i className="iconfont icon-lubiaosignpost3 font-12 mr3"></i>
|
||||
|
@ -185,8 +201,8 @@ class Milepost extends Component{
|
|||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div className="milepostdiv" style={{marginTop:5}}>
|
||||
</div>
|
||||
<div className="milepostdiv" style={{marginTop:5}}>
|
||||
<div className="milepostrighe">
|
||||
|
||||
<div className="grid-item mr10">
|
||||
|
@ -212,43 +228,45 @@ class Milepost extends Component{
|
|||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{
|
||||
data && data.user_admin_or_member ?
|
||||
<div className="milepostleft">
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-bianji3 font-14 mr5"></i>
|
||||
<Link to={`/projects/${projectsId}/orders/${item.id}/meilpost`} className="color-grey-9">编辑</Link>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>
|
||||
<a onClick={()=>this.updatestatusemile(this.state.status==="closed"?"open":"closed",item)} className="color-grey-9">{this.state.status==="closed"?"开启":"关闭"}</a>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-lajitong font-14 mr5" ></i>
|
||||
<Popconfirm placement="bottom" title={'是否删除里程碑?'} okText="是" cancelText="否" onConfirm={()=>this.closemile(item)}>
|
||||
<a className="color-grey-9">删除</a>
|
||||
</Popconfirm>
|
||||
</div>
|
||||
{
|
||||
data && data.user_admin_or_member ?
|
||||
<div className="milepostleft">
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-bianji3 font-14 mr5"></i>
|
||||
<Link to={`/projects/${projectsId}/orders/${item.id}/meilpost`} className="color-grey-9">编辑</Link>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-yiguanbi1 font-14 mr5"></i>
|
||||
<a onClick={()=>this.updatestatusemile(this.state.status==="closed"?"open":"closed",item)} className="color-grey-9">{this.state.status==="closed"?"开启":"关闭"}</a>
|
||||
</div>
|
||||
<div className="grid-item mr15 color-grey-9">
|
||||
<i className="iconfont icon-lajitong font-14 mr5" ></i>
|
||||
<Popconfirm placement="bottom" title={'是否删除里程碑?'} okText="是" cancelText="否" onConfirm={()=>this.closemile(item)}>
|
||||
<a className="color-grey-9">删除</a>
|
||||
</Popconfirm>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
: ''
|
||||
}
|
||||
</div>
|
||||
: ''
|
||||
}
|
||||
|
||||
</div>
|
||||
<div className="milepostdiv"style={{marginTop:5}}>
|
||||
</div>
|
||||
<div className="milepostdiv"style={{marginTop:5}}>
|
||||
<div className="textwidth">
|
||||
<Text
|
||||
<Text
|
||||
type="secondary"
|
||||
ellipsis={{rows: 30, expandable: false, onExpand: Function}}
|
||||
>
|
||||
>
|
||||
{item.description}</Text>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
)
|
||||
}else{
|
||||
return(
|
||||
|
@ -268,28 +286,13 @@ class Milepost extends Component{
|
|||
: ''
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
<div style={{display: this.state.display}}>
|
||||
<div className="tagdiv" >
|
||||
<span>里程碑{ data && data.issue_tags_count }已创建</span>
|
||||
</div>
|
||||
</div>
|
||||
<div className="topWrapper">
|
||||
<div className="topWrapper_type">
|
||||
<li className={openselect ? "active":""} onClick={()=>this.opneMilelist(1)}>{data && data.open_count}个开启中</li>
|
||||
<li className={closeselect ? "active":""} onClick={()=>this.opneMilelist(2)}>{data && data.closed_count}个已关闭</li>
|
||||
{/* <span onClick={this.opneMilelist}>{ data && data.open_count }开启中</span>
|
||||
<span onClick={this.closeMilelist}>{ data && data.closed_count }已关闭</span> */}
|
||||
</div>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>排序<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{ renderList()}
|
||||
{ Paginations }
|
||||
</div>
|
||||
|
|
|
@ -163,7 +163,6 @@ class New extends Component{
|
|||
<div className="quillContent" style={{marginBottom:"20px"}}>
|
||||
<QuillForEditor
|
||||
value = {description}
|
||||
imgAttrs={{ width: '60px', height: '30px' }}
|
||||
wrapStyle={{
|
||||
height: '220px',
|
||||
opacity:1,
|
||||
|
|
|
@ -280,33 +280,46 @@ class Tags extends Component{
|
|||
const renderList =()=>{
|
||||
if(data && data.issue_tags && data.issue_tags.length>0 ){
|
||||
return(
|
||||
<div className="tagList">
|
||||
{
|
||||
data.issue_tags.map((item,key)=>{
|
||||
return(
|
||||
<div>
|
||||
<div>
|
||||
<div className="topWrapper">
|
||||
<span>共{ data && data.issue_tags_count }个标签</span>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>标签<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div className="tagList">
|
||||
{
|
||||
data.issue_tags.map((item,key)=>{
|
||||
return(
|
||||
<div>
|
||||
<span className="width20 mr10">
|
||||
<span style={{backgroundColor:`${item.color}`}} className="tagColor"></span>
|
||||
{item.name}
|
||||
</span>
|
||||
<span className="hide-1 width50 mr10">{item.description}</span>
|
||||
<span className="width15 mr10">{item.issues_count}个开启的工单</span>
|
||||
{
|
||||
data && data.user_admin_or_member ?
|
||||
<div className="width15 text-right">
|
||||
<a onClick={()=>this.editshow(item)} className="topWrapper_btn fr" >编辑</a>
|
||||
<Popconfirm placement="bottom" title={'删除标签会将其从所有引用中删除。继续?'} okText="是" cancelText="否" onConfirm={()=>this.deletetag(item.id)}>
|
||||
<a className="a_btn delete_btn fr" >删除</a>
|
||||
</Popconfirm>
|
||||
<span className="hide-1 width50 mr10">{item.description}</span>
|
||||
<span className="width15 mr10">{item.issues_count}个开启的工单</span>
|
||||
{
|
||||
data && data.user_admin_or_member ?
|
||||
<div className="width15 text-right">
|
||||
<a onClick={()=>this.editshow(item)} className="topWrapper_btn fr" >编辑</a>
|
||||
<Popconfirm placement="bottom" title={'删除标签会将其从所有引用中删除。继续?'} okText="是" cancelText="否" onConfirm={()=>this.deletetag(item.id)}>
|
||||
<a className="a_btn delete_btn fr" >删除</a>
|
||||
</Popconfirm>
|
||||
|
||||
</div>
|
||||
: ''
|
||||
}
|
||||
</div>
|
||||
)
|
||||
})
|
||||
}
|
||||
</div>
|
||||
: ''
|
||||
}
|
||||
</div>
|
||||
)
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
)
|
||||
}else{
|
||||
return(
|
||||
|
@ -378,16 +391,7 @@ class Tags extends Component{
|
|||
|
||||
|
||||
</div>
|
||||
<div className="topWrapper">
|
||||
<span>共{ data && data.issue_tags_count }个标签</span>
|
||||
<ul className="topWrapper_select">
|
||||
<li>
|
||||
<Dropdown className="topWrapperSelect" overlay={menu} trigger={['click']} placement="bottomCenter">
|
||||
<span>标签<Icon type="caret-down" className="ml5" /></span>
|
||||
</Dropdown>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{ renderList() }
|
||||
{ Paginations }
|
||||
</div>
|
||||
|
|
|
@ -208,9 +208,8 @@ class UpdateDetail extends Component{
|
|||
)}
|
||||
</Form.Item>
|
||||
<div className="quillContent" style={{marginBottom:"20px"}}>
|
||||
<QuillForEditor
|
||||
value = {textcount}
|
||||
imgAttrs={{ width: '60px', height: '30px' }}
|
||||
<QuillForEditor
|
||||
setContents = {textcount}
|
||||
wrapStyle={{
|
||||
height: '220px',
|
||||
opacity:1,
|
||||
|
|
|
@ -1079,13 +1079,15 @@ submittojoinclass=(value)=>{
|
|||
{/*<li className={`${activeIndex === true ? 'active' : ''}`}><a href="/">首页</a></li>*/}
|
||||
|
||||
{/*<li><a href={this.props.Headertop===undefined?"":this.props.Headertop.shixun_paths_url}>实训路径</a></li>*/}
|
||||
<li className={`${activePaths === true ? 'pr active' : 'pr'}`}>
|
||||
<Link to={this.props.Headertop===undefined?"":'/paths'}>实践课程</Link>
|
||||
</li>
|
||||
<li className={`${activePaths === true ? 'pr active' : 'pr'}`}>
|
||||
<Link to={'/projects'}>开源项目</Link>
|
||||
</li>
|
||||
{/*<li className={`${activePaths === true ? 'pr active' : 'pr'}`}>*/}
|
||||
{/*<Link to={this.props.Headertop===undefined?"":'/paths'}>实践课程</Link>*/}
|
||||
{/*</li>*/}
|
||||
|
||||
{/*<li><a href={this.props.Headertop===undefined?"":'/courses'}>课堂</a></li>*/}
|
||||
<li className={`${coursestype === true ? 'pr active' : 'pr'}`}>
|
||||
{/*<a href={this.props.Headertop===undefined?"":this.props.Headertop.course_url}>课堂</a>*/}
|
||||
<Link to={this.props.Headertop===undefined?"":'/courses'}>翻转课堂</Link>
|
||||
</li>
|
||||
<li className={`${activeShixuns === true ? 'pr active' : 'pr'}`}>
|
||||
|
@ -1280,7 +1282,14 @@ submittojoinclass=(value)=>{
|
|||
{this.props.user&&this.props.user.main_site===true?"":this.props.Headertop===undefined?"":
|
||||
pathstype===true?"":this.props.user&&this.props.user.admin===true||this.props.user&&this.props.user.is_teacher===true||this.props.user&&this.props.user.business===true?<li><a onClick={(url)=>this.getUser("/paths/new")} >新建实践课程</a></li>:""
|
||||
}
|
||||
{this.props.user&&this.props.user.main_site===true?<li><a onClick={(url)=>this.getUser("/projects/new","projects")} target="_blank">新建开发项目</a></li>:""}
|
||||
{/*{this.props.user&&this.props.user.login?<li><a onClick={(url)=>this.getUser("/projects/new","projects")} target="_blank">新建开发项目</a></li>:""}*/}
|
||||
{
|
||||
this.props.user&&this.props.user.login?<li><Link to={"/projects/mirror/new"}>新建镜像项目</Link></li>:""
|
||||
}
|
||||
{
|
||||
this.props.user&&this.props.user.login?<li><Link to={"/projects/deposit/new"}>新建托管项目</Link></li>:""
|
||||
}
|
||||
|
||||
</ul>
|
||||
{coursestypes===true&&this.props.user&&this.props.user.main_site===false?"":<ul className="fl with50 edu-txt-center">
|
||||
|
||||
|
|
Loading…
Reference in New Issue