Sfoglia il codice sorgente

添加众审页面到处json

insomniaLee 5 anni fa
parent
commit
c242b0170a

+ 0 - 1
src/main/java/com/mooctest/controller/AggController.java

@@ -53,7 +53,6 @@ public class AggController {
                             @RequestParam("caseId") long caseId) throws IOException {
         TaskStartEvent e = new TaskStartEvent(examId, caseId);
         eventUtil.post(e);
-
         return "ok";
     }
 

+ 7 - 5
src/main/java/com/mooctest/controller/TaskController.java

@@ -3,10 +3,7 @@ package com.mooctest.controller;
 import com.mooctest.data.BugDTO;
 import com.mooctest.data.TaskDTO;
 import com.mooctest.model.MasterReport;
-import com.mooctest.service.BugReportService;
-import com.mooctest.service.HistoryService;
-import com.mooctest.service.MasterReportService;
-import com.mooctest.service.TaskService;
+import com.mooctest.service.*;
 import com.mooctest.util.ReportUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -35,6 +32,9 @@ public class TaskController {
 
     @Autowired
     MasterReportService masterReportService;
+
+    @Autowired
+    BugDataService bugDataService;
     @GetMapping("/home")
     public String home(Model model) {
 
@@ -57,7 +57,9 @@ public class TaskController {
     public String taskDetail(@RequestParam("examId") long examId,
                              @RequestParam("caseId") long caseId,
                              Model model) {
-
+        // first check is there some data in bugData document,
+        bugDataService.importBugData(examId, caseId);
+        // after import the bug data
         boolean aggregated = masterReportService.isAggregated(examId, caseId);
         List<BugDTO> allReports = bugReportService.getAllBugs(examId, caseId);
         Map<String,String> single2rootMap = historyService.getSingle2Root(caseId, examId);

+ 154 - 1
src/main/resources/static/js/addTask.js

@@ -48,7 +48,7 @@ getRealData = function(str){
 
 addNewOption = function () {
     $('#maincontent').append('\n' +
-        '            <div class="box box-info"  id="rule' +ruleId+
+        '            <div class="box box-info rule"  id="rule' +ruleId+
         '">\n' +
         '                <div class="box-header with-border">\n' +
         '                    <h3 class="box-title">定制审查选项</h3>\n' +
@@ -601,4 +601,157 @@ getNewRatioIndex = function () {
     ratioIndex++;
     return ratioIndex;
 }
+
+generateJson = function(){
+    // 遍历页面上的数据,生成json数据。
+    var data = new Object();
+    data.description = $('#description').val();
+    data.name = $('#name').val();
+    data.time = $('#reservationtime').val();
+    data.type = $('#testType').val();
+    data.application_url = "tesst1";
+    data.requirement_url = "text2";
+    data.report_num = $('#reportNum').val();
+    data.worker_num = $('#auditNum').val();
+    var item_group_list = new Array();
+    $('.rule').each(function () {
+        // every item information
+        var element = $(this);
+        var temp = new Object();
+        var reportTemp = new Object()
+        var ruleIndex = element.attr("id").charAt(4); // index is 4 (like)
+        temp.index = ruleIndex;
+        var examples = $('#namelist'+ruleIndex).children();
+        var tempExample  ;
+        var report_list = new Array();
+        for ( var i =0;i<examples.length;i++){
+            tempExample = examples[i];
+            reportTemp = new Object();
+            reportTemp.report_index = tempExample.innerHTML;
+            report_list.push(reportTemp);
+        }
+        temp.report_list = report_list
+        // bianli biao
+        var myTable = document.getElementById("table"+ruleIndex) ; //
+        var rowNum =  myTable.rows.length;
+        var tr;
+        var type;
+        var item_list = new Array();
+        var itemTemp ;
+        for(var i = 1;i<rowNum;i++){
+            itemTemp = new Object()
+            tr = myTable.rows[i];
+            type=tr.getAttribute("type");
+            itemTemp.index = (i-1)+'';
+            itemTemp.is_required = 1+'';
+            var options = new Array()
+            if(type=="singleCheck"){
+                var singleCheckTip = myTable.rows[i].cells[1].children[0].value;
+                var singleCheckData = myTable.rows[i].cells[2].children[0].value;
+                itemTemp.description = singleCheckTip
+                itemTemp.is_multiple ="0"
+                itemTemp.type="Multiple"
+                var optionS = new Object();
+                optionS.option = singleCheckData
+                options.push(optionS)
+            }else if(type=="check"){
+                var checkTip = myTable.rows[i].cells[1].children[0].value;
+                var checkData = myTable.rows[i].cells[2].children[0].value;
+                itemTemp.description = checkTip;
+                itemTemp.is_multiple = "1"
+                itemTemp.type="Multiple"
+                var optionC ;
+                var checkArr = checkData.split(';');
+                for( var  checkJ = 0;checkJ<checkArr.length;checkJ++){
+                    optionC = new Object();
+                    optionC.option = checkArr[checkJ]
+                    options.push(optionC)
+                }
+            }else if(type=="ratio"){
+                var ratioTip = myTable.rows[i].cells[1].children[0].value;
+                var ratioData = myTable.rows[i].cells[2].children[0].value;
+                var ratioArr = ratioData.split(';');
+                itemTemp.description = ratioTip;
+                itemTemp.is_multiple = "0"
+                itemTemp.type="Single"
+                var optionR ;
+                for( var  ratioJ = 0;ratioJ<ratioArr.length;ratioJ++){
+                    optionR = new Object();
+                    optionR.option = ratioArr[ratioJ]
+                    options.push(optionR)
+                }
+            }else if(type=="text"){
+                var textData = myTable.rows[i].cells[1].children[0].value;
+                itemTemp.description = textData;
+                itemTemp.is_multiple = "0"
+                itemTemp.type="Description"
+                var optionT = new Object();
+                optionT.option = ""
+                options.push(optionT)
+
+            }else if( type == "file"){
+                var fileData = myTable.rows[i].cells[1].children[0].value;
+                itemTemp.description = fileData;
+                itemTemp.is_multiple = "0"
+                itemTemp.type="File"
+                var optionF = new Object();
+                optionF.option = ""
+                options.push(optionF)
+            }
+            itemTemp.options= options
+            item_list.push(itemTemp)
+        }
+        temp.item_list=item_list
+        item_group_list.push(temp)
+        // console.log(JSON.stringify(temp))
+    })
+    data.item_group_list = item_group_list
+    data.report_list = getReportInfo()
+    data.group_list = getDeliverInfo()
+    console.log(JSON.stringify(data))
+
+    $.ajax({
+        url: 'http://10.0.0.33:8090/Bug/api/extra/uploadJob',
+        data:{
+            'jobJson':JSON.stringify(data)
+        },
+        type: 'POST',
+        success: function (result) {
+            alert(result);
+
+        }
+    });
+}
+
+
+
+getReportInfo = function(){
+    var str = $('#reportInfo').val();
+    console.log(str)
+    var obj = eval('(' + str + ')');
+    // var tessst = new Object()
+    // tessst.reports = obj
+    console.log(JSON.stringify(obj))
+    return obj
+}
+
+getDeliverInfo = function () {
+    var str = $('#deliverInfo').val();
+    console.log(str)
+    var obj = eval('(' + str + ')');
+    // var tessst = new Object()
+    // tessst.reports = obj
+    console.log(JSON.stringify(obj))
+    return obj
+}
+
+changeJob = function () {
+    $('#modal-reload').modal('show');
+}
+
+reloadJob = function () {
+    var jobId = $('#jobid').val();
+    location.href = '/addTask?jobid='+jobid
+}
+
 /*]]>*/

+ 51 - 27
src/main/resources/templates/addTask.html

@@ -132,9 +132,19 @@
             <div class="box box-primary" >
                 <div class="box-header with-border">
                     <h3 class="box-title">基本信息</h3>
-                    <button class="btn btn-success pull-right" onclick="addNewOption()">
+
+                    <button class="btn btn-default pull-right" onclick="changeJob()">
+                        修改已有任务
+                    </button>
+
+                    <button class="btn btn-success pull-right" onclick="generateJson()">
                         生成众审任务
                     </button>
+
+                    <button class="btn btn-default pull-right" onclick="show11()">
+                        查看预览
+                    </button>
+
                     <button class="btn btn-default pull-right" onclick="addNewOption()">
                         新建审查选项
                     </button>
@@ -153,7 +163,7 @@
                         <div class="form-group">
                             <label class="col-sm-2 control-label">描述</label>
                             <div class="col-sm-10">
-                                <textarea onchange="checkNull(event)" class="form-control" rows="3" placeholder="请输入描述信息"></textarea>
+                                <textarea onchange="checkNull(event)" id="description" class="form-control" rows="3" placeholder="请输入描述信息"></textarea>
                             </div>
                         </div>
 
@@ -170,9 +180,9 @@
                         </div>
                         <!-- select -->
                         <div class="form-group">
-                            <label class="col-sm-2 control-label">测试类型</label>
+                            <label class="col-sm-2 control-label" >测试类型</label>
                             <div class=" col-sm-10">
-                                <select class="form-control">
+                                <select class="form-control" id="testType">
                                     <option>漏洞扫描分析</option>
                                     <option>App自动扫描</option>
                                     <option>Java自动化扫描</option>
@@ -214,14 +224,14 @@
                         <div class="form-group">
                             <label class="col-sm-2 control-label">报告信息</label>
                             <div class="col-sm-10">
-                                <textarea class="form-control" onchange="checkNull(event)" rows="3" placeholder="请输入json格式的报告信息"></textarea>
+                                <textarea class="form-control" id="reportInfo" onchange="checkNull(event)" rows="3" placeholder="请输入json格式的报告信息"></textarea>
                             </div>
                         </div>
                         <!-- textarea -->
                         <div class="form-group">
                             <label class="col-sm-2 control-label">报告分配信息</label>
                             <div class="col-sm-10">
-                                <textarea class="form-control" onchange="checkNull(event)" rows="3" placeholder="请输入json格式的报告分配信息"></textarea>
+                                <textarea class="form-control" id="deliverInfo" onchange="checkNull(event)" rows="3" placeholder="请输入json格式的报告分配信息"></textarea>
                             </div>
                         </div>
                     </form>
@@ -287,6 +297,38 @@
         <!-- /.modal-dialog -->
     </div>
     <!-- /.modal -->
+
+
+
+
+    <div class="modal fade" id="modal-reload">
+        <div class="modal-dialog">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                        <span aria-hidden="true">&times;</span></button>
+                    <h4 class="modal-title">从已有任务家在数据</h4>
+                </div>
+                <div class="modal-body" >
+                    <form class="form-horizontal" >
+                        <div class="form-group">
+                            <label class="col-sm-2 control-label">JobId</label>
+                            <div class="col-sm-10">
+                                <input  onchange="checkNull(event)" class="form-control" id="jobid" placeholder="请输入任务名称"/>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-default pull-left" data-dismiss="modal">关闭</button>
+                                        <button type="button" class="btn btn-primary" onclick="reloadJob()">确认</button>
+                </div>
+            </div>
+            <!-- /.modal-content -->
+        </div>
+        <!-- /.modal-dialog -->
+    </div>
+    <!-- /.modal -->
 </div>
 
 
@@ -335,12 +377,6 @@
         ruleId = 0;
         ratioIndex =0 ;
 
-        //Datemask dd/mm/yyyy
-        $('#datemask').inputmask('dd/mm/yyyy', { 'placeholder': 'dd/mm/yyyy' })
-        //Datemask2 mm/dd/yyyy
-        $('#datemask2').inputmask('mm/dd/yyyy', { 'placeholder': 'mm/dd/yyyy' })
-        //Money Euro
-        $('[data-mask]').inputmask()
 
         //Date range picker
         $('#reservation').daterangepicker()
@@ -370,21 +406,7 @@
             autoclose: true
         })
 
-        //iCheck for checkbox and radio inputs
-        $('input[type="checkbox"].minimal, input[type="radio"].minimal').iCheck({
-            checkboxClass: 'icheckbox_minimal-blue',
-            radioClass   : 'iradio_minimal-blue'
-        })
-        //Red color scheme for iCheck
-        $('input[type="checkbox"].minimal-red, input[type="radio"].minimal-red').iCheck({
-            checkboxClass: 'icheckbox_minimal-red',
-            radioClass   : 'iradio_minimal-red'
-        })
-        //Flat red color scheme for iCheck
-        $('input[type="checkbox"].flat-red, input[type="radio"].flat-red').iCheck({
-            checkboxClass: 'icheckbox_flat-green',
-            radioClass   : 'iradio_flat-green'
-        })
+
 
 
         //Timepicker
@@ -400,6 +422,8 @@
 
 
 
+
+
     
 
 </script>