Greasy Fork is available in English.

jira日志记录功能增强

可以把英文翻译成中文,并且增加下拉选项选择当前问题阶段的功能

2020/12/25時点のページです。最新版はこちら。

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         jira日志记录功能增强
// @namespace    armstrong@fanruan.com
// @version      1.0.6
// @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){
    setTimeout(function () {
        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=["协助沟通二次开发需求","二开评估/开发中","二开完成,协助测试"]
                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)
            
        }//第一个下拉框的事件
        window.gradeChange2=function(value)
        {
            var first=$('#mySelect').val()
            var origin = $('#wp-fg-comment').find("textarea").val();
            $('#wp-fg-comment').find("textarea").val(origin+"\n(" + first + ")-【"+value+"】" )
            switch (first) {
                case "定位问题":window.last_period="沟通问题现象,获取必要信息";break;
                case "实现需求效果":window.last_period="沟通客户需求";break;
                case "三线协助中":window.last_period="沟通现象、获取必要信息、自己进行排查";break;
                case "二次开发":window.last_period="沟通客户原始需求"
                case "给出解决方案":window.last_period="沟通问题现象、获取必要信息、排查问题";break;
          }
          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+"的过程中,主要进行的步骤有哪些,结果是什么,有无遇到障碍,是怎么解决的")
          }
        }//第二个下拉框的事件
        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>"
                }
                var problem_detail='<div id="problem"><label>遇到的具体障碍点是...</label><select id="problem_detail">'+detail_option+'</select></div>'
                $('#if_problem').after(problem_detail)
                }//创建一个障碍点下拉列表
                if(value=="否"&&$('#problem_detail').length>0)
                {
                     $('#problem').remove()
                }
        }//是否遇到障碍点,这个下拉框的事件
 
        $('#add-worklog-issue-right-panel-link').click(function () {
            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)" ></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)
        })
    }, 2000)}
})();