asfgit closed pull request #21: IGNITE-9541 Fix bugs, refactor and add new info 
on html page
URL: https://github.com/apache/ignite-teamcity-bot/pull/21
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
index 837a9dc..bbf96a2 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/IgnitePersistentTeamcity.java
@@ -408,14 +408,18 @@ private boolean isHistoryAgeLessThanSecs(SuiteInBranch 
key, int seconds, Expirab
 
         List<BuildRef> buildRefs = loadBuildHistory(buildHistCache(), 90, 
suiteInBranch,
             (key, sinceBuildId) -> {
-            buildsFromRest.addAll(teamcity.getFinishedBuilds(projectId, 
branch, sinceDate, untilDate, sinceBuildId));
+            List<BuildRef> reverseList = teamcity.getFinishedBuilds(projectId, 
branch, sinceDate, untilDate, sinceBuildId);
+
+            Collections.reverse(reverseList);
+
+            buildsFromRest.addAll(reverseList);
 
             return buildsFromRest;
         });
 
         if (sinceDate != null || untilDate != null) {
             if (!buildsFromRest.isEmpty() && sinceDate != null){
-                int firstBuildId = 
buildRefs.indexOf(buildsFromRest.get(buildsFromRest.size() - 1));
+                int firstBuildId = buildRefs.indexOf(buildsFromRest.get(0));
 
                 if (firstBuildId == 0)
                     return buildsFromRest;
@@ -457,7 +461,7 @@ private boolean isHistoryAgeLessThanSecs(SuiteInBranch key, 
int seconds, Expirab
                         if (build == null || build.isFakeStub())
                             return false;
 
-                        Date date = build.getFinishDate();
+                        Date date = build.getStartDate();
 
                         if (sinceDate != null && untilDate != null)
                             if ((date.after(sinceDate) || 
date.equals(sinceDate)) &&
diff --git a/ignite-tc-helper-web/src/main/webapp/comparison.html 
b/ignite-tc-helper-web/src/main/webapp/comparison.html
index 909ee44..5efe4e3 100644
--- a/ignite-tc-helper-web/src/main/webapp/comparison.html
+++ b/ignite-tc-helper-web/src/main/webapp/comparison.html
@@ -16,13 +16,19 @@
 <body>
 <br>
 <br>
-<table class="stat"  width="100%">
+<table class="compare"  width="100%">
     <tr>
         <th class="section"  width="15%">DATE INTERVAL</th>
-        <th  width="5%"></th>
+        <th width="5%"></th>
         <th style="text-align: center;" width="40%"><input type='text' 
name='daterange1'/></th>
         <th style="text-align: center;" width="40%"><input type='text' 
name='daterange2'/></th>
     </tr>
+    <tr style="display: none;"></tr><tr style="display: none;"></tr><tr 
style="display: none;"></tr>
+    <tr id="showInfo" style="display: none;">
+        <td class="section">FEATURES</td><td></td>
+        <td style="text-align: center;" id="info1"></td>
+        <td style="text-align: center;" id="info2"></td>
+    </tr>
     <tr><td class="section">TESTS</td><td></td><td></td></tr>
     <tr><td class="field">COUNT</td>
         <td><img id="clickGraphCount" src='/img/browser.png'></td>
@@ -167,7 +173,11 @@
         return parseFloat(string.substring(string.indexOf("-") + 2, 
string.lastIndexOf("-") - 1));
     }
 
-    function printStatistics(num, map) {
+    function printStatistics(num, map, sinceDate, untilDate) {
+        clearBackgroundFromAllDataCells();
+        clearGraphs(num);
+
+        const anotherNum = (num === 1) ? 2 : 1;
         const parseTime = d3.timeParse("%d-%m-%YT%H:%M:%S");
 
         let statistics = {};
@@ -187,15 +197,30 @@
             }
         }
 
-        const anotherNum = (num === 1) ? 2 : 1;
+        if (dates.length === 0) {
+            printImportantMessage(num, "#ff0000", "No data for the selected 
period");
+            fillAllDataCells(num, "");
+
+            return;
+        } else {
+            let firstDate = 
moment(parseTime(map[0].startDate)).format("DD-MM-YYYY");
+            let lastDate = moment(parseTime(map[map.length - 
1].startDate)).format("DD-MM-YYYY");
+
+            if ((sinceDate.format("DD-MM-YYYY") !== firstDate) || 
(untilDate.format("DD-MM-YYYY") !== lastDate)) {
+                printImportantMessage(num, "#ffb856", "Data for " +
+                    (firstDate === lastDate ? firstDate : ("the period from " 
+ firstDate + " to " + lastDate)) + "");
+            } else {
+                $("#info" + num).html("");
+                if (document.getElementById("info" + anotherNum).innerHTML === 
"") {
+                    document.getElementById("showInfo").style.display = "none";
+                }
+            }
+        }
+
         let anotherMedian;
         let result = {};
 
         for (let i = 0; i < prOcc.length; i++) {
-
-            document.getElementById(prOcc[i] + 1).style.background = null;
-            document.getElementById(prOcc[i] + 2).style.background = null;
-
             result = getMinMaxMedian(statistics[prOcc[i]]);
             anotherMedian = parseMedian(document.getElementById(prOcc[i] + 
anotherNum).innerHTML);
 
@@ -221,8 +246,8 @@
     }
 
     $(document).ready(function() {
-        loadData(1, moment(oneWeekAgo).format("DDMMYYYY"), 
moment().format("DDMMYYYY"));
-        loadData(2, moment(twoWeekAgo).format("DDMMYYYY"), 
moment(oneWeekAgo).format("DDMMYYYY"));
+        loadData(1, moment(oneWeekAgo), moment());
+        loadData(2, moment(twoWeekAgo), moment(oneWeekAgo));
 
         $.ajax({ url: "rest/branches/version",  success: showVersionInfo, 
error: showErrInLoadStatus });
 
@@ -242,18 +267,44 @@
             g_updTimer = setTimeout(tstTimeout, 3200);
         }
     }
+    
+    function clearBackgroundFromAllDataCells(num){
+        document.querySelectorAll(".data" + (num == null ? "1, .data2" : 
num)).forEach(function (el) {
+            el.style.background = null;
+        });
+    }
+    
+    function fillAllDataCells(num, message) {
+        $('.data' + num).html(message);
+    }
+
+    function clearGraphs(num) {
+        for (let i = 0; i < prOcc.length; i++) {
+            $("#graph" + prOcc[i] + num).empty();
+            $("#graph" + tOcc[i] + num).empty();
+        }
+    }
 
     function loadGif(num) {
-        $('.data' + num).html("<img src='/img/loading.gif' width=15px 
height=15px>");
+        clearBackgroundFromAllDataCells();
+        clearGraphs(num);
+        fillAllDataCells(num, "<img src='/img/loading.gif' width=15px 
height=15px>");
+    }
+
+    function printImportantMessage(num, color, message) {
+        $('#info' + num).html("<span style='background:" + color + "; 
color:white; font-weight:bold;'>" +
+            "&nbsp;&nbsp;!&nbsp;&nbsp;</span>&nbsp;&nbsp;" + message);
+        document.getElementById("showInfo").style.display = null;
     }
 
     function loadData(num, sinceDate, untilDate) {
         loadGif(num);
         $.ajax(
             {
-                url: 'rest/build/history?sinceDate=' + sinceDate + 
'000001&untilDate=' + untilDate + '235959',
+                url: 'rest/build/history?sinceDate=' + 
sinceDate.format("DDMMYYYY") +
+                '000001&untilDate=' + untilDate.format("DDMMYYYY") + '235959',
                 success: function (result) {
-                    printStatistics(num, result);
+                    printStatistics(num, result, sinceDate, untilDate);
                 },
                 error: showErrInLoadStatus
             }
@@ -263,14 +314,14 @@
     $(function() {
         $('input[name="daterange1"]').daterangepicker(
             dateRangePickerParam(oneWeekAgo, new Date()), function (start, 
end, label) {
-                loadData(1, start.format("DDMMYYYY"), end.format("DDMMYYYY"));
+                loadData(1, start, end);
             });
     });
 
     $(function() {
         $('input[name="daterange2"]').daterangepicker(
             dateRangePickerParam(twoWeekAgo, oneWeekAgo), function (start, 
end, label) {
-                loadData(2, start.format("DDMMYYYY"), end.format("DDMMYYYY"));
+                loadData(2, start, end);
             });
     });
 
@@ -296,10 +347,6 @@
             data[i].date = dates[i];
             data[i].count = counts[i];
         }
-
-        d3.selectAll("#graph" + prefix + num + "> *").remove();
-        d3.selectAll('.axis').remove();
-
         svg = d3.select("#graph" + prefix + num).append("svg:svg");
         margin = {top: 20, right: 20, bottom: 30, left: 50};
         width = +500 - margin.left - margin.right;
diff --git a/ignite-tc-helper-web/src/main/webapp/css/style-1.5.css 
b/ignite-tc-helper-web/src/main/webapp/css/style-1.5.css
index 942e868..d9b754c 100644
--- a/ignite-tc-helper-web/src/main/webapp/css/style-1.5.css
+++ b/ignite-tc-helper-web/src/main/webapp/css/style-1.5.css
@@ -24,7 +24,7 @@ table, tr, td {
        border-spacing: 0px;
 }
 
-table.stat td, th {
+table.stat td, table.stat th {
 
        padding: 10px 5px 10px 5px;
 }
@@ -137,32 +137,35 @@ form li:after
        display:block;
        margin-top:10px;
 }
-.stat{
+
+.compare{
        width: 80%;
        border-collapse: collapse;
 }
-.stat td, .stat th {
+.compare td, .compare th {
        padding: 10px 5px 10px 5px;
 }
+
 .data1, .data2{
        text-align: center;
        vertical-align: middle;
 }
+
 .section{
        font-weight: bold;
 }
 
-.stat .field{
+.compare .field{
        padding-left: 15px;
 }
 
-.stat th {
+.compare th {
        text-align: left;
        padding: 5px;
        background-color: #f5f5ff;
        color: #000000;
 }
 
-.stat tr:nth-child(4n - 1) {
+.compare tr:nth-child(4n-1) {
        background-color: #fafaff;
-}
\ No newline at end of file
+}


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to