使用油猴脚本,自动填写Jira任务

发布时间 2023-08-18 11:07:38作者: jack_Meng

公司使用Jira作为日常管理,所以Jira填写就比较频繁了,我做了一个示例,剩下的功能就各位自己添加吧

// ==UserScript==
// @name         Jira填写
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  自动填充,每周填写的任务计划
// @author       Jack Meng
// @match        http://jira.cares.sh.cn/secure/CreateSubTaskIssue.*
// @match        http://jira.cares.sh.cn/browse/*
// @icon         
// @run-at       document-end
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    // Your code here...

    $("#stqc_show")[0].onclick=()=>{
        loginfo("添加子任务单击事件监听。");
        setTimeout(AddFun,1000);
    }

    function AddFun()
    {
        var isAdd=false;
        var host = window.location.host;
        if(host=="jira.cares.sh.cn")
        {
            var par = document.getElementById("span_userinfo");
            loginfo("注入填充数据按钮");

            par = $(".form-footer")[0];//field-group
            if(par==undefined) return isAdd;
            var f = par.firstElementChild;

            //填充1周
            var a = document.createElement("a");
            a.id="aLink";
            a.href="#";
            a.style="vertical-align: middle;margin-right: 10px;";
            a.target="_blank"
            a.onclick = ()=>fillData(14);
            a.innerText="填充1周";
            par.insertBefore(a,f);

            //填充2周
            var a2 = document.createElement("a");
            a2.id="aLink2";
            a2.href="#";
            a2.style="vertical-align: middle;";
            a2.target="_blank"
            a2.onclick = ()=>fillData(21);
            a2.innerText="填充2周";
            par.insertBefore(a2,f);

            //填充2周--按钮
            var a3 = document.createElement("input");
            a3.id="btnFillData";
            a3.type="button";
            a3.className="aui-button aui-button-primary";
            a3.onclick = ()=>fillData(21);
            a3.value="填充2周";
            //par.insertBefore(a3,f);

            isAdd=true;
        }
        return isAdd;
    }

    var fillData = (dayCount)=>{
        loginfo("给页面表单填充数据");
        $("#summary")[0].value=$("#summary-val")[0].innerText+"子任务";
        var d = new Date();
        d.setDate(d.getDate()+ dayCount - d.getDay());
        $("#duedate")[0].value=d.toLocaleDateString('zh');
        $("#timetracking_originalestimate")[0].value='1w';
        $("#timetracking_remainingestimate")[0].value='1w';
        $("#assign-to-me-trigger")[0].click();

        return false;
    }

    var loginfo=(msg)=>console.log("========> " +msg);




    // 创建一个定时器,每秒执行一次任务,如果任务完成或超过尝试次数时,停止执行
/*     var taskCount=0;
    var intervalId = setInterval(function() {
        // 执行任务
        var taskIsFinished = AddFun();// 在这里执行你的任务,并返回执行结果
        taskCount++;
        // 如果任务完成或尝试指定次数时,停止定时器
        if (taskIsFinished || taskCount > 10) {
            clearInterval(intervalId);
        }
    }, 1000); */


})();
View Code