Zentao Utils

7/27/2021, 4:53:18 PM

当前为 2021-07-29 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Zentao Utils
// @namespace   Violentmonkey Scripts
// @match       http://zentao.inovance.com/pro/*
// @grant       all
// @version     1.1
// @author      sbw <[email protected]>
// @description 7/27/2021, 4:53:18 PM
// ==/UserScript==


(function() {
  
  // 显示 alert 对话框
  function show_alert(message)
  {
    bootAlert(message);
  }
  
  // 显示对话框
  function update_dialog(title, content)
  {
    $('#dialog .modal-title').html(title);
    $('#dialog .modal-body').html(content);
  }
  
  // 获取当前项目中的模块分类
  function update_module_on_dialog()
  {
    var url = "/tree-ajaxGetOptionMenu-149-bug-0-0-html--true.html";
    $.get(url, function(data, status){
      update_dialog('更新模块', data);
      
      // 清除事件
      $('.form-control').off('change');
      $('.form-control').removeAttr('onchange');
    });
  }
  
  // 更新任务所属模块
  function update_jobs_module(e)
  {
    // 禁止默认的响应
    e.preventDefault();
    
    var content = $("<div class='dropdown'><button class='btn' type='button' data-toggle='dropdown'>所属模块<span class='caret'></span></button><ul class=dropdown-menu></ul></div>");
    
    update_module_on_dialog();
    
    // 绑定对话框确定按钮的事件
    $('#dialog .btn-primary').off('click');
    $('#dialog .btn-primary').click(submit_jobs_module);
  }
  
  function submit_jobs_module()
  {
    // 获取选择的数据
    var choose = $('#module').find(":selected").val();
    
    // 隐藏对话框
    $('#dialog').modal('hide');
    
    // 获取选中的任务列表
    $('#bugList tr').filter('.checked').each(function () {
      var id = $(this).find('.c-id input').val();
      var title = $(this).find('.text-left').attr('title');
      if (typeof(title) === "undefined") {
        title = $(this).find('.text-left > a').attr('title');
      }
      
      // 修改任务的地址
      var url = '/pro/bug-edit-' + id + '.html';
      $.get(url, function(data, status) {
        var resData = $.parseHTML(data, true);
        var formData = new FormData($(resData).find('form')[0]);
        formData.set('module', choose);
        
        // 发送数据
        $.ajax({
          type: 'post',
          url: url, 
          data: formData, 
          contentType: false,
          processData: false,
          success: function(data, status) { 
            /*$('html').html(data);*/
            new $.zui.Messager('任务 ' + id + ' 更新完成', { icon: 'bell' }).show();
          }
        });
      });
    });
  }
  
  // 添加对话框
  $("body").append("<div class='modal fade' id='dialog'><div class='modal-dialog modal-sm'><div class='modal-content'><div class='modal-header'><h4 class='modal-title'></h4></div><div class='modal-body'></div><div class='modal-footer'><button type='button' class='btn btn-default' data-dismiss='modal'>关闭</button><button type='button' class='btn btn-primary'>保存</button></div></div></div></div>");
  
  // 添加模块修改按钮
  $('.table-actions').append('<button class="btn" id="update-module" data-toggle="modal" data-target="#dialog">所属模块</button>');
  // 更新模块点击的事件
  $('#update-module').click(update_jobs_module);
})();