// ==UserScript==
// @name jira日志记录功能增强
// @namespace armstrong@fanruan.com
// @version 2.0.5
// @description 可以把英文翻译成中文,并且增加下拉选项选择当前问题阶段的功能
// @author Armstrong
// @match https://work.fineres.com/browse/*
// @include /^https?://work\.fineres\.com.*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Your code here...
if(window.location.href.indexOf("CUSTBUG")>=0){
window.gradeChange = function (tx) {
switch (tx){
case "沟通问题":window.detail_array=["异常现象已了解","异常现象未了解"];break;
case "沟通需求效果":window.detail_array=["需求已理解","需求未理解"];break;
case "定位问题":window.detail_array=["尚未定位到原因","已定位到原因,提供解决方案","已定位到原因,尚未提供解决方案"];break;
case "实现需求效果":window.detail_array=["设计方案中","给出方案并实现需求","给出方案但未实施","给出的方案无法满足需求"];break;
case "三线协助中":window.detail_array=["协助排查","模块专家/测试/研发查看问题中"];break;
case "二次开发":window.detail_array=["协助沟通二次开发需求","二开评估/开发中","二开完成,协助测试"];break;
case "给出解决方案":window.detail_array=["顺利解决问题","给出的方案未解决问题"];break;
case "无实质进展":window.detail_array=["观察现象中","jar包待发布","客户无响应或暂且搁置问题"];break;
default:window.detail_array=["其他"]
}
var y = document.getElementById("mySelect2");
y.innerHTML = "";
for(var k=0;k<y.childNodes.length;k++){
y.removeChild(y.options[k]);
y.remove(k);
y.options[k] = null;
}
setTimeout(function(){for(let j=0;j<window.detail_array.length;j++){
var option2 = document.createElement("option");
option2.text = window.detail_array[j];
y.add(option2, y.options[null])
}},500)//上面是为联动的下拉框添加选项的
setTimeout(function(){
var option_moren = document.createElement("option");
option_moren.text = "请选择详情";
option_moren.hidden=true;
option_moren.disabled=true;
option_moren.selected=true;
y.add(option_moren, y.options[null])
},500)
if(["定位问题","实现需求效果","三线协助中","二次开发","给出解决方案"].indexOf(tx)>=0){
switch (tx) {
case "定位问题":window.last_period="沟通问题现象,获取必要信息";break;
case "实现需求效果":window.last_period="沟通客户需求";break;
case "三线协助中":window.last_period="沟通现象、获取必要信息、自己进行排查";break;
case "二次开发":window.last_period="沟通客户原始需求";break;
case "给出解决方案":window.last_period="沟通问题现象、获取必要信息、排查问题";break;
dafault:window.last_period="当前";break;}}
else
{
window.last_period=$('#mySelect').val()
}
if($('#last_period').length==0){
$('[name="comment"]').eq(1).after("<div id='last_period'><label>提示:在"+window.last_period+"的过程中,主要进行的步骤有哪些,结果是什么,有无遇到障碍,是怎么解决的</label></div>")
}
else
{
$('#last_period label').text("提示:在"+window.last_period+"的过程中,主要进行的步骤有哪些,结果是什么,有无遇到障碍,是怎么解决的")
}//这部分是产生提示
if(document.getElementById("problem")!=undefined){
var yy = document.getElementById("problem");
yy.innerHTML = "";
for(var kkk=0;kkk<yy.childNodes.length;kkk++){
yy.removeChild(yy.options[kkk]);
yy.remove(kkk);
yy.options[kkk] = null;
}
}//这部分是销毁可能已经出现的障碍点下拉框
var fuck=document.createElement("option");
fuck.hidden=true;
fuck.disabled=true;
fuck.selected=true;
fuck.text="请选择详情";
var fuckyou=document.getElementById("if_problem")
fuckyou.add(fuck,fuckyou.options[null])
//这部分是把“是否有障碍点”这个下拉框的值设置为空,必须重新选择
}//第一个下拉框的事件
window.gradeChange2=function(value)
{
var origin = $('#wp-fg-comment').find("textarea").val();
var choseable=["(沟通问题)-【异常现象已了解】","(沟通问题)-【异常现象未了解】","(沟通需求效果)-【需求已理解】","(沟通需求效果)-【需求未理解】",
"(定位问题)-【尚未定位到原因】","(定位问题)-【已定位到原因,提供解决方案】","(定位问题)-【尚未提供解决方案】",
"(实现需求效果)-【设计方案中】","(实现需求效果)-【给出方案并实现需求】","(实现需求效果)-【给出方案但未实施】","(实现需求效果)-【给出的方案无法满足需求】"
,"(三线协助中)-【协助排查】","(三线协助中)-【模块专家/测试/研发查看问题中】","(二次开发)-【协助沟通二次开发需求】","(二次开发)-【二开评估/开发中】","(二次开发)-【二开完成,协助测试】",
"(给出解决方案)-【顺利解决问题】","(给出解决方案)-【给出的方案未解决问题】","(无实质进展)-【观察现象中】","(无实质进展)-【jar包待发布】","(无实质进展)-【客户无响应或暂且搁置问题】"]
for(let i=0;i<=choseable.length;i++){
if(origin.indexOf(choseable[i])>=0)
{
origin=origin.replace(choseable[i],"")
}
}
$('#wp-fg-comment').find("textarea").val("(" + $('#mySelect').val() + ")-【"+value+"】\r\n"+origin )
}//第二个下拉框的事件,是把选项填到文本框中去
//假如文本框中已经有内容,追加到内容之前,限制只能选择一个阶段,那直接replace吧
window.change_problem=function(value)
{
if(value=="是"&&$('#problem_detail').length==0)
{
var state_now=$('#mySelect').val()
if(["沟通问题","沟通需求效果","定位问题","实现需求效果","给出解决方案"].indexOf(state_now)>=0)
{window.detail_option="<option>客户无网络</option><option>客户难沟通</option><option>客户网络环境复杂</option>"}
else if(state_now=='三线协助中')
{window.detail_option="<option>涉及≥3个部门配合,统筹解决客户问题</option><option>CUSTBUG研发协助过程中,与研发测试进行多次确认或协助定位</option>"}
else if(state_now=='二次开发')
{
window.detail_option="<option>开发需求和逻辑复杂,承担了与客户和二开团队的辅助沟通</option><option>二次开发完成之后,本地测试是否可用</option>"
}
else
{
window.detail_option="<option>其他,详细说明</options>"
}
var problem_detail='<div id="problem"><label>遇到的具体障碍点是...</label><select id="problem_detail" onchange="detail_choose(this.options[this.options.selectedIndex].text)">'+detail_option+'</select></div>'
$('#if_problem').after(problem_detail)
}//创建一个障碍点下拉列表
if(value=="否"&&$('#problem_detail').length>0)
{
$('#problem').remove();
var origin3 = $('#wp-fg-comment').find("textarea").val();
var zhangaidian=["客户无网络","客户难沟通","客户网络环境复杂","涉及≥3个部门配合,统筹解决客户问题","CUSTBUG研发协助过程中,与研发测试进行多次确认或协助定位","开发需求和逻辑复杂,承担了与客户和二开团队的辅助沟通","二次开发完成之后,本地测试是否可用"]
for(let kk=0;kk<zhangaidian.length;kk++)
{
origin3=origin3.replace("当前障碍点:"+zhangaidian[kk],"")
}
$('#wp-fg-comment').find("textarea").val("当前无障碍点"+origin3)
}
}//是否遇到障碍点,这个下拉框的事件
window.detail_choose=function(value){
var origin2 = $('#wp-fg-comment').find("textarea").val();
var zhangaidian=["客户无网络","客户难沟通","客户网络环境复杂","涉及≥3个部门配合,统筹解决客户问题","CUSTBUG研发协助过程中,与研发测试进行多次确认或协助定位","开发需求和逻辑复杂,承担了与客户和二开团队的辅助沟通","二次开发完成之后,本地测试是否可用"]
for(let kk=0;kk<zhangaidian.length;kk++)
{
origin2=origin2.replace("当前障碍点:"+zhangaidian[kk],"")
}
setTimeout(function(){$('#wp-fg-comment').find("textarea").val("当前障碍点:"+value+"\r\n"+origin2.replace("当前无障碍点",""))},200)
}
window.main=function(){}
window.strong=setInterval(function (){
if($('#add-worklog-issue-right-panel-link')!=undefined)
{console.log("我开始绑定了")
$('#add-worklog-issue-right-panel-link').click(function () {
console.log("点击事件是绑定成功了")
//setTimeout(function () {
if (localStorage.getItem("DontTransfer")=="yes") {
console.log("不自动翻译")
} else {
$('label[for="log-work-issue-picker-field"]').text("任务")
$('label[for="log-work-worklog-author-field"]').text("用户")
$('label[for="log-work-period"]').text("阶段")
$('label[for="log-work-time-logged"]').text("花费时间")
$('label[for="log-work-date-logged"]').text("工时开始时间")
$('label[for="comment"]').text("进展")
$('#worklogpro-log-work-submit').val("确认记录工时")
$('[class="aui-form example"]').eq(0).text("(例如 3d 12h 30m,单位需小写)")
$('[class="wp-copy-to-issue-comments"]').text("复制到任务的评论中")
$('#wp-fg-estimates label').eq(0).text(" 剩余工作时间")
}
//以上为翻译功能,根据Localstorage里面存储的DontTransfer值是否为yes来判断,设置语句为localStorage.setItem("DontTransfer", "yes");
var list = '<div><label>请选择BUG当前所处阶段</label><select id="mySelect" onchange="gradeChange(this.options[this.options.selectedIndex].text)" ><option selected>无</option></select><select id="mySelect2" onchange="gradeChange2(this.options[this.options.selectedIndex].text)" ><option selected disabled hidden>请选择详情</option></select></div>'
var problem='<div><label>当前阶段是否遇到障碍?<label><select id="if_problem" onchange="change_problem(this.options[this.options.selectedIndex].text)"><option selected>否</option><option>是</option></select></div>'
var options_array = ["沟通问题", "沟通需求效果","定位问题","实现需求效果","三线协助中","二次开发","给出解决方案","无实质进展"]
$('.group').eq(1).after(list+problem);
var x = document.getElementById("mySelect");
for (let i = 0; i < options_array.length; i++) {
var option = document.createElement("option");
option.text = options_array[i];
x.add(option, x.options[null])
}
//}, 1000)
})
clearInterval(window.strong)}
}, 300)}
})();