Merge branch 'feature_notification' of https://git.trustie.net/tongChong/forgeplus-react into feature_notification_xiesi

This commit is contained in:
谢思 2021-09-16 17:17:40 +08:00
commit d45e87d46f
26 changed files with 209 additions and 69 deletions

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 2340181 */
src: url('iconfont.woff2?t=1630894072659') format('woff2'),
url('iconfont.woff?t=1630894072659') format('woff'),
url('iconfont.ttf?t=1630894072659') format('truetype');
src: url('iconfont.woff2?t=1631773579834') format('woff2'),
url('iconfont.woff?t=1631773579834') format('woff'),
url('iconfont.ttf?t=1631773579834') format('truetype');
}
.iconfont {
@ -13,6 +13,58 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-xiangmubiaoqian:before {
content: "\e8da";
}
.icon-icon:before {
content: "\e8ce";
}
.icon-tar:before {
content: "\e8cf";
}
.icon-a-fuzhi2:before {
content: "\e8d0";
}
.icon-fujian1:before {
content: "\e8d1";
}
.icon-a-bianji1:before {
content: "\e8d2";
}
.icon-banbenicon:before {
content: "\e8d3";
}
.icon-shanchuicon2:before {
content: "\e8d4";
}
.icon-a-lajitong_icon3x:before {
content: "\e8d5";
}
.icon-xialaanniu2:before {
content: "\e8d6";
}
.icon-xiazai-icon:before {
content: "\e8d7";
}
.icon-master_icon1:before {
content: "\e8d8";
}
.icon-shangchuanicon:before {
content: "\e8d9";
}
.icon-gerenziliao1:before {
content: "\e8c7";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,97 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "24378423",
"name": "项目标签",
"font_class": "xiangmubiaoqian",
"unicode": "e8da",
"unicode_decimal": 59610
},
{
"icon_id": "24368060",
"name": "icon",
"font_class": "icon",
"unicode": "e8ce",
"unicode_decimal": 59598
},
{
"icon_id": "24368061",
"name": "tar",
"font_class": "tar",
"unicode": "e8cf",
"unicode_decimal": 59599
},
{
"icon_id": "24289113",
"name": "复制 (2)",
"font_class": "a-fuzhi2",
"unicode": "e8d0",
"unicode_decimal": 59600
},
{
"icon_id": "24289114",
"name": "附件",
"font_class": "fujian1",
"unicode": "e8d1",
"unicode_decimal": 59601
},
{
"icon_id": "24289115",
"name": "编 辑",
"font_class": "a-bianji1",
"unicode": "e8d2",
"unicode_decimal": 59602
},
{
"icon_id": "24289116",
"name": "版本icon",
"font_class": "banbenicon",
"unicode": "e8d3",
"unicode_decimal": 59603
},
{
"icon_id": "24289117",
"name": "删除icon",
"font_class": "shanchuicon2",
"unicode": "e8d4",
"unicode_decimal": 59604
},
{
"icon_id": "24289118",
"name": "垃圾桶_icon@3x",
"font_class": "a-lajitong_icon3x",
"unicode": "e8d5",
"unicode_decimal": 59605
},
{
"icon_id": "24289119",
"name": "下拉按钮",
"font_class": "xialaanniu2",
"unicode": "e8d6",
"unicode_decimal": 59606
},
{
"icon_id": "24289120",
"name": "下载-icon",
"font_class": "xiazai-icon",
"unicode": "e8d7",
"unicode_decimal": 59607
},
{
"icon_id": "24289121",
"name": "master_icon",
"font_class": "master_icon1",
"unicode": "e8d8",
"unicode_decimal": 59608
},
{
"icon_id": "24289122",
"name": "上传icon",
"font_class": "shangchuanicon",
"unicode": "e8d9",
"unicode_decimal": 59609
},
{
"icon_id": "24059956",
"name": "个人资料",

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3319,9 +3319,9 @@
text = text.replace(emailReg, function ($1, $2, $3, $4) {
return $1.replace(/@/g, "_#_@_#_");
});
// " + editormd.urls.atLinkBase + "" + $2 + "
text = text.replace(atLinkReg, function ($1, $2) {
return "<a href=\"" + editormd.urls.atLinkBase + "" + $2 + "\" title=\"&#64;" + $2 + "\" class=\"at-link\">" + $1 + "</a>";
return "<span title=\"&#64;" + $2 + "\" class=\"at-link\"> " + $1 + " </span>";
}).replace(/_#_&#64;_#_/g, "@");
}

View File

@ -27,7 +27,7 @@ function Releases({owner,projectsId,releaseVersions , baseOperate , projectType}
})
:
<div className="mt8">
您暂未发布任何版本{baseOperate && projectType !==2 && <Link className="color-blue ml20" to={`/projects/${owner}/${projectsId}/releases/new`}>创建新版本</Link>}
您暂未发布任何版本{baseOperate && projectType !==2 && <Link className="color-blue ml20" to={`/${owner}/${projectsId}/releases/new`}>创建新版本</Link>}
</div>
}

View File

@ -34,7 +34,7 @@ export default (( props, { projectDetail }) => {
<div className="div_table">
<ul className="ul_thead">
<li>
<span className="flex1"></span>
<span className="flex1"></span>
<span>提交信息</span>
<span className="ul_tbody_forth">下载</span>
</li>

View File

@ -424,7 +424,7 @@ class MessageCount extends Component {
</span>
</span>
<span className="ml25">
<span className="color-grey-8"></span>
<span className="color-grey-8"></span>
<span className="color-grey-3">
{data.issue.issue_tags &&
data.issue.issue_tags.length > 0

View File

@ -43,7 +43,7 @@ class merge extends Component {
//设置选择高亮
openselect: 1,
closeselect: undefined,
issue_tag_ids: "标",
issue_tag_ids: "标",
fixed_version_ids: "里程碑",
assigned_to_ids: "审查人员",
paix: "排序",
@ -198,7 +198,7 @@ class merge extends Component {
});
this.setState({
status_type: type,
issue_tag_ids: "标",
issue_tag_ids: "标",
fixed_version_ids: "里程碑",
assigned_to_ids: "审查人员",
paix: "排序",
@ -321,7 +321,7 @@ class merge extends Component {
className="topWrapperSelect"
overlay={this.renderMenu(
issue_chosen && issue_chosen.issue_tag,
"标",
"标",
"issue_tag_id"
)}
trigger={["click"]}

View File

@ -300,7 +300,8 @@ class MergeForm extends Component {
{getFieldDecorator("assigned_to_id", {
initialValue: assigned_to_id,
})(
<Select placeholder="审查人员" showSearch>
<Select placeholder="未选择审查人员" showSearch>
{/* <Option key={0} value={""}>未选择审查人员</Option> */}
{this.renderSelect(members)}
</Select>
)}
@ -311,12 +312,11 @@ class MergeForm extends Component {
})(
<Select
placeholder={
issue_versions && issue_versions.length > 0
? "未选择里程碑"
: "请添加里程碑"
issue_versions && issue_versions.length > 0? "未选择里程碑": "请添加里程碑"
}
showSearch
>
{/* <Option key={0} value={""}>{issue_versions && issue_versions.length > 0? "未选择里程碑": "请添加里程碑"}</Option> */}
{this.renderSelect(issue_versions)}
</Select>
)}
@ -327,12 +327,11 @@ class MergeForm extends Component {
})(
<Select
placeholder={
issue_tags && issue_tags.length > 0
? "未选择标签"
: "请在仓库设置里添加标签"
issue_tags && issue_tags.length > 0 ? "未选择标记" : "请在仓库设置里添加标记"
}
showSearch
>
{/* <Option key={0} value={""}>{issue_tags && issue_tags.length > 0 ? "未选择标记" : "请在仓库设置里添加标记"}</Option> */}
{this.renderSelect(issue_tags)}
</Select>
)}

View File

@ -219,7 +219,7 @@ class Index extends Component {
user_id:owners_id
}).then((result) => {
if (result && result.data.id) {
projectsType && projectsType !== "mirror" && this.props.showNotification(`托管项目创建成功!`);
projectsType && projectsType !== "mirror" && this.props.showNotification(`项目创建成功!`);
this.props.history.push(`/${result.data.login}/${result.data.identifier}`);
}
this.setState({
@ -351,7 +351,7 @@ class Index extends Component {
required: true, message: '请填写镜像版本库地址'
}],
})(
<Input placeholder="输入需要同步到本项目的镜像版本库地址" onChange={this.ChangeAddr} />
<Input placeholder="请输入需要导入到本项目的仓库地址" onChange={this.ChangeAddr} />
)}
</Form.Item>
<p className="formTip color-orange">示例https://github.com/facebook/reack.git</p>
@ -386,7 +386,7 @@ class Index extends Component {
{getFieldDecorator('password', {
rules: [],
})(
<Input.Password placeholder="请输入对应平台的登录用户名" autocomplete='new-password' style={{width:"240px"}}/>
<Input.Password placeholder="请输入对应平台的登录密码" autocomplete='new-password' style={{width:"240px"}}/>
)}
</Form.Item>
</div>

View File

@ -315,7 +315,7 @@ class Detail extends Component {
</span>
</p>
<p className="grid-item-left pb15">
<span className="issue_detail_info">:</span>
<span className="issue_detail_info">:</span>
<span>
{data && data.issue_tags ? (
<span className="grid-item">

View File

@ -40,7 +40,7 @@ class MilepostDetail extends Component {
issue_type: undefined,
status_type: '1',
//设置选择高亮
issue_tag_ids: '标',
issue_tag_ids: '标',
tracker_ids: '类型',
author_ids: '发布人',
assigned_to_ids: '负责人',
@ -194,7 +194,7 @@ class MilepostDetail extends Component {
done_ratio : undefined,
status_id: undefined,
assigned_to_id: undefined,
issue_tag_ids: '标',
issue_tag_ids: '标',
tracker_ids: '类型',
author_ids: '发布人',
assigned_to_ids: '负责人',
@ -254,7 +254,7 @@ class MilepostDetail extends Component {
</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">
<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>

View File

@ -7,7 +7,7 @@ class Nav extends Component{
const { projectsId , owner } = this.props.match.params;
return(
<p className="topWrapper_nav">
<NavLink activeClassName="active" className="issue-type-button" to={`/${owner}/${projectsId}/issues/tags`}></NavLink>
<NavLink activeClassName="active" className="issue-type-button" to={`/${owner}/${projectsId}/issues/tags`}></NavLink>
<NavLink activeClassName="active" className="issue-type-button" to={`/${owner}/${projectsId}/milestones`}>里程碑</NavLink>
</p>
)

View File

@ -324,11 +324,11 @@ class Tags extends Component {
data && data.issue_tags && data.issue_tags.length > 0 ?
<div>
<div className="topWrapper">
<span>{data && data.issue_tags_count}个标</span>
<span>{data && data.issue_tags_count}个标</span>
<ul className="topWrapper_select">
<li>
<Dropdown className="topWrapperSelect" overlay={this.menu()} trigger={['click']} placement="bottomCenter">
<span><Icon type="caret-down" className="ml5" /></span>
<span><Icon type="caret-down" className="ml5" /></span>
</Dropdown>
</li>
</ul>

View File

@ -39,7 +39,7 @@ class order extends Component {
search_count: undefined,
issue_type: undefined,
status_type: "1", // 默认显示开启中的
issue_tag_ids: "标",
issue_tag_ids: "标",
tracker_ids: "类型",
author_ids: "发布人",
assigned_to_ids: "负责人",
@ -58,7 +58,7 @@ class order extends Component {
select_params: {
assigned_to_id: undefined, // 负责人
author_id: undefined, // 发布人
issue_tag_id: undefined, // 标
issue_tag_id: undefined, // 标
tracker_id: undefined, //类型
done_ratio: undefined, // 完成度
status_id: undefined, // 优先级
@ -257,7 +257,7 @@ class order extends Component {
author_id: undefined,
assigned_to_id: undefined,
status_type: type,
issue_tag_ids: "标",
issue_tag_ids: "标",
tracker_ids: "类型",
author_ids: "发布人",
assigned_to_ids: "负责人",
@ -677,7 +677,7 @@ class order extends Component {
className="topWrapperSelect"
overlay={this.renderMenu(
issue_chosen && issue_chosen.issue_tag,
"标",
"标",
"issue_tag_id"
)}
trigger={["click"]}

View File

@ -442,13 +442,13 @@ class order_form extends Component {
</Select>
)}
</Form.Item>
<Form.Item label="标">
<Form.Item label="标">
{getFieldDecorator("issue_tag_ids", {rules: []})(
<Select>
<Option value={""}>
{issue_chosen && issue_chosen.issue_tag.length > 0
? "未选择标"
: "请在仓库设置里添加标"}
? "未选择标"
: "请在仓库设置里添加标"}
</Option>
{this.renderSelect(issue_chosen && issue_chosen.issue_tag)}
</Select>

View File

@ -102,8 +102,8 @@ class Index extends Component {
>
<p>
<Link to={`/${owner}/${projectsId}/settings/labels`} className="w-100">
<i className="iconfont icon-biaoqian3 font-18 mr10 color-grey-6"></i>
项目标
<i className="iconfont icon-xiangmubiaoqian font-18 mr10 color-grey-6"></i>
项目标
</Link>
</p>
</li>

View File

@ -262,7 +262,7 @@ class Setting extends Component {
message: "请输入项目名称",
},
],
})(<Input placeholder="请输入项目名称" />)}
})(<Input placeholder="请输入项目名称" maxLength={"50"}/>)}
</Form.Item>
<div className="df" style={{ alignItems: "center" }}>
<span className="mr20 mb15 font-16">可见性</span>
@ -295,23 +295,21 @@ class Setting extends Component {
</Form.Item>
<Form.Item label="项目类别">
{getFieldDecorator("project_category_id", {
rules: [
{
required: true,
message: "请选择大类别",
},
],
})(<Select>{CategoryList}</Select>)}
rules: [],
})(
<Select>
{CategoryList}
</Select>
)}
</Form.Item>
<Form.Item label="项目语言">
{getFieldDecorator("project_language_id", {
rules: [
{
required: true,
message: "请选择项目语言",
},
],
})(<Select>{LanguageList}</Select>)}
rules: [],
})(
<Select>
{LanguageList}
</Select>
)}
</Form.Item>
<Form.Item label="项目导航">
{getFieldDecorator("project_units", {

View File

@ -258,11 +258,11 @@ function New({ form , match , showNotification , history }) {
</span> */}
<span>
<Checkbox value="create">创建</Checkbox>
<span>创建分支或标</span>
<span>创建分支或标</span>
</span>
<span>
<Checkbox value="delete">删除</Checkbox>
<span>删除分支或标</span>
<span>删除分支或标</span>
</span>
</div>
<p className="color-grey-3 mt10 mb10">合并请求事件</p>

View File

@ -348,7 +348,7 @@ class NewTags extends Component {
</a>
<Popconfirm
placement="bottom"
title={"删除标签会将其从所有引用中删除。继续?"}
title={"删除标记会将其从所有引用中删除,是否继续?"}
okText="是"
cancelText="否"
onConfirm={() => this.deletetag(item.id)}
@ -383,7 +383,7 @@ class NewTags extends Component {
return (
<div>
<div className="topWrapper" style={{borderBottom:"1px solid #eee"}}>
<span>{data && data.issue_tags_count}个标</span>
<span>{data && data.issue_tags_count}个标</span>
<ul className="topWrapper_select">
<li>
<Dropdown
@ -393,7 +393,7 @@ class NewTags extends Component {
placement="bottomCenter"
>
<span>
标签
标记
<Icon type="caret-down" className="ml5" />
</span>
</Dropdown>
@ -423,11 +423,11 @@ class NewTags extends Component {
className="flex-a-center baseForm bbr"
style={{ "justify-content": "space-between" }}
>
<span className="font-18 text-black">项目标</span>
<span className="font-18 text-black">项目标</span>
{data && data.user_admin_or_member ? (
<Button type="primary" ghost onClick={this.newshow}>
<Icon type="plus"></Icon>
创建标
创建标
</Button>
) : (
""
@ -442,7 +442,7 @@ class NewTags extends Component {
rules: [
{
required: true,
message: "请填写标名字",
message: "请填写标名字",
},
],
})(<Input placeholder="名称10字以内" maxLength="10" />)}
@ -481,7 +481,7 @@ class NewTags extends Component {
onClick={this.createtagpost}
className="fr"
>
创建标
创建标
</Button>
{/* <a onClick={this.createtagpost} className="topWrapper_btn fr" >创建标签</a> */}
<a onClick={this.newclose} className="a_btn cancel_btn fr">
@ -497,7 +497,7 @@ class NewTags extends Component {
</div>
</div>
<Modal
title="编辑标"
title="编辑标"
onCancel={this.handleCancel}
visible={this.state.isShow}
onOk={this.handleok}

View File

@ -21,7 +21,7 @@ function AddTag({form , visible , onCancel ,onOk}){
};
return(
<Modal
title={"新增标"}
title={"新增标"}
closable={false}
visible={visible}
onCancel={onCancel}
@ -32,11 +32,11 @@ function AddTag({form , visible , onCancel ,onOk}){
centered
>
<Form {...layout}>
<Form.Item label="标名">
<Form.Item label="标名">
{getFieldDecorator("tagName",{
rules:[{required:true,message:"请输入标名"}]
rules:[{required:true,message:"请输入标名"}]
})(
<Input placeholder="请输入标名" width="200px" autoComplete="off" />
<Input placeholder="请输入标名" width="200px" autoComplete="off" />
)}
</Form.Item>
</Form>

View File

@ -141,7 +141,7 @@ function Index(props){
params:{id,tagName:tag}
}).then(result=>{
if(result && result.data){
props.showNotification("标删除成功");
props.showNotification("标删除成功");
setIsSpin(true);
getData();
}

View File

@ -198,7 +198,7 @@ class comments extends Component {
</span>
<span>
{item.value && item.value.length > 0 ? (
item.detail === "标签" ? (
(item.detail === "标签" || item.detail === "标记") ? (
<span
className="issue-tag-show"
style={{ background: item.value[0].color }}