This is an automated email from the ASF dual-hosted git repository.

dspavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new 51289fd6 Fix comment target option precedence (#239)
51289fd6 is described below

commit 51289fd6cba88ddf3161ff362e62541309c058bb
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Thu May 28 23:26:43 2026 +0300

    Fix comment target option precedence (#239)
    
    Codex co authored with dpavlov
---
 .../src/main/webapp/board/index.html               |   2 +-
 .../src/main/webapp/build-comparator.html          |   6 +-
 ignite-tc-helper-web/src/main/webapp/build.html    |   2 +-
 ignite-tc-helper-web/src/main/webapp/current.html  |   2 +-
 .../js/{testfails-2.3.js => testfails-2.4.js}      | 112 ++++++---------------
 .../src/main/webapp/monitoring.html                |   2 +-
 .../src/main/webapp/mutedissues/index.html         |   2 +-
 ignite-tc-helper-web/src/main/webapp/pr.html       |   2 +-
 ignite-tc-helper-web/src/main/webapp/prs.html      |   2 +-
 9 files changed, 43 insertions(+), 89 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/webapp/board/index.html 
b/ignite-tc-helper-web/src/main/webapp/board/index.html
index 76de6771..f941e714 100644
--- a/ignite-tc-helper-web/src/main/webapp/board/index.html
+++ b/ignite-tc-helper-web/src/main/webapp/board/index.html
@@ -108,7 +108,7 @@
     let gVue, g_Loading, g_TcBotVersion;
 
     $(document).ready(function() {
-        $.getScript("/js/testfails-2.3.js", function(data, textStatus, jqxhr){ 
});
+        $.getScript("/js/testfails-2.4.js?v=20260528-1", function(data, 
textStatus, jqxhr){ });
 
         $( document ).tooltip();
         showQueryForm();
diff --git a/ignite-tc-helper-web/src/main/webapp/build-comparator.html 
b/ignite-tc-helper-web/src/main/webapp/build-comparator.html
index 80fdeac7..b3347df1 100644
--- a/ignite-tc-helper-web/src/main/webapp/build-comparator.html
+++ b/ignite-tc-helper-web/src/main/webapp/build-comparator.html
@@ -9,14 +9,14 @@
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
 
     <script src="js/common-1.7.js"></script>
-    <script src="js/testfails-2.3.js"></script>
+    <script src="js/testfails-2.4.js?v=20260528-1"></script>
 </head>
 <body>
 <script>
     var g_shownDataHashCodeHex = "";
 
     $(document).ready(function() {
-        $.getScript("js/testfails-2.3.js", function(data, textStatus, jqxhr){ 
});
+        $.getScript("js/testfails-2.4.js?v=20260528-1", function(data, 
textStatus, jqxhr){ });
 
         $( document ).tooltip();
         loadData();
@@ -70,4 +70,4 @@
 <div id="version"></div>
 <div style="visibility:none"><div id="triggerConfirm" title="Trigger 
Confirmation"></div><div id="triggerDialog" title="Trigger Result"></div></div>
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/ignite-tc-helper-web/src/main/webapp/build.html 
b/ignite-tc-helper-web/src/main/webapp/build.html
index e67f7a9f..07765e96 100644
--- a/ignite-tc-helper-web/src/main/webapp/build.html
+++ b/ignite-tc-helper-web/src/main/webapp/build.html
@@ -11,7 +11,7 @@
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
 
     <script src="js/common-1.7.js?v=20260509-6"></script>
-    <script src="js/testfails-2.3.js?v=20260510-2"></script>
+    <script src="js/testfails-2.4.js?v=20260528-1"></script>
 </head>
 <body>
 <script>
diff --git a/ignite-tc-helper-web/src/main/webapp/current.html 
b/ignite-tc-helper-web/src/main/webapp/current.html
index 5cd37a21..822a61df 100644
--- a/ignite-tc-helper-web/src/main/webapp/current.html
+++ b/ignite-tc-helper-web/src/main/webapp/current.html
@@ -21,7 +21,7 @@
     <script 
src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vuetify.js";></script>
 
     <script src="js/common-1.7.js?v=20260509-6"></script>
-    <script src="js/testfails-2.3.js?v=20260511-1"></script>
+    <script src="js/testfails-2.4.js?v=20260528-1"></script>
 </head>
 <body>
 <script>
diff --git a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.3.js 
b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.4.js
similarity index 95%
rename from ignite-tc-helper-web/src/main/webapp/js/testfails-2.3.js
rename to ignite-tc-helper-web/src/main/webapp/js/testfails-2.4.js
index f1dffa8f..f6ea4d15 100644
--- a/ignite-tc-helper-web/src/main/webapp/js/testfails-2.3.js
+++ b/ignite-tc-helper-web/src/main/webapp/js/testfails-2.4.js
@@ -861,15 +861,17 @@ function filterPossibleBlocker(suite) {
     return null;
 }
 
-function selectCommentTargets(defaultTargets, onSelected) {
-    selectCommentOptions(defaultTargets, {}, function (selectedTargets) {
-        onSelected(selectedTargets);
-    });
-}
-
 var TCBOT_TRIGGER_PREF_KEY = "tcbot.trigger.options";
 var TCBOT_COMMENT_PREF_KEY = "tcbot.comment.options";
 
+function hasStoredField(obj, field) {
+    return obj && Object.prototype.hasOwnProperty.call(obj, field);
+}
+
+function hasCommentTargets(targets) {
+    return typeof targets === "string" && targets.trim().length > 0;
+}
+
 function loadStoredJson(key) {
     try {
         var raw = window.localStorage.getItem(key);
@@ -890,21 +892,24 @@ function saveStoredJson(key, value) {
     }
 }
 
-function loadCommentPreferences(defaultTargets, 
defaultCommentOnlyIfNoBlockers) {
+function loadCommentPreferences(defaultTargets, 
defaultCommentOnlyIfNoBlockers, overrideTargets) {
     var prefs = loadStoredJson(TCBOT_COMMENT_PREF_KEY);
-    var targets = isDefinedAndFilled(prefs.targets) ? prefs.targets : 
defaultTargets;
-    var policy = isDefinedAndFilled(prefs.policy) ? prefs.policy :
+    var targets = hasStoredField(prefs, "targets") && typeof prefs.targets === 
"string" ? prefs.targets : defaultTargets;
+    var policy = hasStoredField(prefs, "policy") && typeof prefs.policy === 
"string" ? prefs.policy :
         (defaultCommentOnlyIfNoBlockers ? "clean" : "always");
 
+    if (typeof overrideTargets === "string")
+        targets = overrideTargets;
+
     return {
-        targets: isDefinedAndFilled(targets) ? targets : "",
+        targets: hasCommentTargets(targets) ? targets : "",
         commentOnlyIfNoBlockers: policy === "clean"
     };
 }
 
 function saveCommentPreferences(targets, commentOnlyIfNoBlockers) {
     saveStoredJson(TCBOT_COMMENT_PREF_KEY, {
-        targets: isDefinedAndFilled(targets) ? targets : "",
+        targets: hasCommentTargets(targets) ? targets : "",
         policy: commentOnlyIfNoBlockers ? "clean" : "always"
     });
 }
@@ -925,60 +930,6 @@ function saveTriggerPreferences(queueAtTop, cleanRebuild) {
     });
 }
 
-function selectCommentOptions(defaultTargets, options, onSelected) {
-    var commentPrefs = loadCommentPreferences(
-        defaultTargets !== null && typeof defaultTargets !== "undefined" ? 
defaultTargets : "JIRA",
-        false);
-    var targets = commentPrefs.targets;
-    var hasJira = targets.indexOf("JIRA") !== -1;
-    var hasGithub = targets.indexOf("GITHUB") !== -1;
-    var dialog = ensureActionDialog("triggerConfirm", "Comment targets");
-    var ticketLink = options && isDefinedAndFilled(options.ticketLink) ?
-        optionalLink(options.ticketLink, ticketLinkLabel(options.ticketLink, 
"ticket")) : "";
-    var prLink = options && isDefinedAndFilled(options.prLink) ?
-        optionalLink(options.prLink, prLinkLabel(options.prLink, "PR")) : "";
-    var allowNoTargets = options && options.allowNoTargets;
-    var showOnlyNoBlockers = options && options.showOnlyNoBlockers;
-
-    dialog.html(
-        "<div>Select where TCBot should publish the analysis after results are 
ready.</div><br>" +
-        "<label><input type='checkbox' id='commentTargetJira' " + (hasJira ? 
"checked" : "") + "> JIRA" +
-        ticketLink + "</label><br>" +
-        "<label><input type='checkbox' id='commentTargetGithub' " + (hasGithub 
? "checked" : "") + "> GitHub PR" +
-        prLink + "</label>" +
-        (showOnlyNoBlockers
-            ? "<br><label><input type='checkbox' id='commentOnlyIfNoBlockers' 
" +
-            (commentPrefs.commentOnlyIfNoBlockers ? "checked" : "") + "> 
Comment only if no blockers</label>"
-            : "")
-    );
-
-    openActionDialog(dialog, "Comment targets", {
-            "Continue": function () {
-                var selected = [];
-
-                if ($("#commentTargetJira").prop("checked"))
-                    selected.push("JIRA");
-
-                if ($("#commentTargetGithub").prop("checked"))
-                    selected.push("GITHUB");
-
-                if (selected.length === 0 && !allowNoTargets)
-                    return;
-
-                var commentOnlyIfNoBlockers = showOnlyNoBlockers &&
-                    $("#commentOnlyIfNoBlockers").prop("checked");
-
-                saveCommentPreferences(selected.join(","), 
commentOnlyIfNoBlockers);
-
-                $(this).dialog("close");
-                onSelected(selected.join(","), commentOnlyIfNoBlockers);
-            },
-            "Cancel": function () {
-                $(this).dialog("close");
-            }
-        });
-}
-
 function triggerBuildsWithCommentOptions(tcServerCode, parentSuiteId, 
suiteIdList, branchName, top, observe, ticketId,
     prNum, baseBranchForTc, cleanRebuild=false, ticketLink, prLink, 
showCommentOptions=true) {
     triggerBuilds(tcServerCode, parentSuiteId, suiteIdList, branchName, top, 
observe, ticketId, prNum,
@@ -991,9 +942,10 @@ function triggerBuildsWithCommentOptions(tcServerCode, 
parentSuiteId, suiteIdLis
 
 function triggerBuilds(tcServerCode, parentSuiteId, suiteIdList, branchName, 
top, observe, ticketId, prNum, baseBranchForTc,
     cleanRebuild=false, commentTargets, commentOnlyIfNoBlockers=false, 
uiOptions) {
-    var queueAtTop = isDefinedAndFilled(top) && top;
+    var queueAtTopOverride = typeof top === "boolean" ? top : null;
+    var queueAtTop = queueAtTopOverride !== null ? queueAtTopOverride : false;
     var triggerPrefs = loadTriggerPreferences(queueAtTop, cleanRebuild);
-    queueAtTop = triggerPrefs.queueAtTop;
+    queueAtTop = queueAtTopOverride !== null ? queueAtTopOverride : 
triggerPrefs.queueAtTop;
     cleanRebuild = triggerPrefs.cleanRebuild;
     var observeJira = isDefinedAndFilled(observe) && observe;
     var suiteIdsNotExists = !isDefinedAndFilled(suiteIdList) || 
suiteIdList.length === 0;
@@ -1067,7 +1019,7 @@ function triggerBuilds(tcServerCode, parentSuiteId, 
suiteIdList, branchName, top
         if (failed)
             showActionError(triggerConfirm, resultText);
 
-        if (!failed && observeJira)
+        if (!failed && hasCommentTargets(commentTargets))
             appendActionStage(triggerConfirm, "Comment scheduled: " + 
commentTargetsLabel(commentTargets) +
                 "; policy: " + commentPolicyLabel(commentOnlyIfNoBlockers) + 
".");
         else if (!failed)
@@ -1091,11 +1043,11 @@ function triggerBuilds(tcServerCode, parentSuiteId, 
suiteIdList, branchName, top
     }
 
     function showTriggerStagesDialog() {
-        var defaultTargets = isDefinedAndFilled(commentTargets)
-            ? commentTargets : (observeJira ? "JIRA" : "");
-        var showCommentOptions = opts.showCommentOptions || observeJira || 
isDefinedAndFilled(commentTargets);
+        var explicitTargets = hasCommentTargets(commentTargets) ? 
commentTargets : (observeJira ? "JIRA" : null);
+        var defaultTargets = hasCommentTargets(explicitTargets) ? 
explicitTargets : "";
+        var showCommentOptions = opts.showCommentOptions === true || 
observeJira || hasCommentTargets(commentTargets);
         var commentPrefs = showCommentOptions
-            ? loadCommentPreferences(defaultTargets, commentOnlyIfNoBlockers)
+            ? loadCommentPreferences(defaultTargets, commentOnlyIfNoBlockers, 
explicitTargets)
             : {targets: defaultTargets, commentOnlyIfNoBlockers: 
commentOnlyIfNoBlockers};
         defaultTargets = commentPrefs.targets;
         commentOnlyIfNoBlockers = commentPrefs.commentOnlyIfNoBlockers;
@@ -1148,10 +1100,10 @@ function triggerBuilds(tcServerCode, parentSuiteId, 
suiteIdList, branchName, top
 
                     if (showCommentOptions) {
                         commentTargets = 
collectStageCommentTargets(triggerConfirm);
-                        commentOnlyIfNoBlockers = 
isDefinedAndFilled(commentTargets) &&
+                        commentOnlyIfNoBlockers = 
hasCommentTargets(commentTargets) &&
                             
triggerConfirm.find("input[name='stageCommentPolicy']:checked").val() === 
"clean";
                         saveCommentPreferences(commentTargets, 
commentOnlyIfNoBlockers);
-                        observeJira = isDefinedAndFilled(commentTargets);
+                        observeJira = hasCommentTargets(commentTargets);
                     }
                     else {
                         commentTargets = "";
@@ -1310,9 +1262,11 @@ function commentJira(serverCode, branchName, 
parentSuiteId, ticketId, baseBranch
 
     function showCommentStagesDialog() {
         var dialog = ensureActionDialog("triggerDialog", "Post comment");
+        var explicitTargets = hasCommentTargets(commentTargets) ? 
commentTargets : null;
         var commentPrefs = loadCommentPreferences(
-            isDefinedAndFilled(commentTargets) ? commentTargets : "JIRA",
-            commentOnlyIfNoBlockers);
+            hasCommentTargets(commentTargets) ? commentTargets : "JIRA",
+            commentOnlyIfNoBlockers,
+            explicitTargets);
         var defaultTargets = commentPrefs.targets;
         commentOnlyIfNoBlockers = commentPrefs.commentOnlyIfNoBlockers;
         var opts = uiOptions || {};
@@ -1349,7 +1303,7 @@ function commentJira(serverCode, branchName, 
parentSuiteId, ticketId, baseBranch
                 "Post comment": function () {
                     commentTargets = collectStageCommentTargets(dialog);
 
-                    if (!isDefinedAndFilled(commentTargets)) {
+                    if (!hasCommentTargets(commentTargets)) {
                         showActionError(dialog, "Select at least one comment 
target.");
 
                         return;
@@ -1410,7 +1364,7 @@ function bindCommentPolicyVisibility(dialog) {
 }
 
 function updateCommentPolicyVisibility(dialog) {
-    var hasTarget = isDefinedAndFilled(collectStageCommentTargets(dialog));
+    var hasTarget = hasCommentTargets(collectStageCommentTargets(dialog));
     var policy = dialog.find(".stage-comment-policy");
 
     if (hasTarget)
@@ -1644,7 +1598,7 @@ function actionDialogOptions(title, buttons) {
 }
 
 function commentTargetsLabel(targets) {
-    return isDefinedAndFilled(targets) ? targets : "nothing";
+    return hasCommentTargets(targets) ? targets : "nothing";
 }
 
 function commentPolicyLabel(commentOnlyIfNoBlockers) {
diff --git a/ignite-tc-helper-web/src/main/webapp/monitoring.html 
b/ignite-tc-helper-web/src/main/webapp/monitoring.html
index 8b5c2804..b194b850 100644
--- a/ignite-tc-helper-web/src/main/webapp/monitoring.html
+++ b/ignite-tc-helper-web/src/main/webapp/monitoring.html
@@ -12,7 +12,7 @@
     <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js";></script>
 
     <script src="js/common-1.7.js"></script>
-    <script src="js/testfails-2.3.js"></script>
+    <script src="js/testfails-2.4.js?v=20260528-1"></script>
 </head>
 <body>
 <script>
diff --git a/ignite-tc-helper-web/src/main/webapp/mutedissues/index.html 
b/ignite-tc-helper-web/src/main/webapp/mutedissues/index.html
index 95719693..f6387e36 100644
--- a/ignite-tc-helper-web/src/main/webapp/mutedissues/index.html
+++ b/ignite-tc-helper-web/src/main/webapp/mutedissues/index.html
@@ -114,7 +114,7 @@
     let gVue, g_Loading, g_TcBotVersion;
 
     $(document).ready(function() {
-        $.getScript("/js/testfails-2.3.js", function(data, textStatus, jqxhr){ 
});
+        $.getScript("/js/testfails-2.4.js?v=20260528-1", function(data, 
textStatus, jqxhr){ });
 
         $( document ).tooltip();
         showQueryForm();
diff --git a/ignite-tc-helper-web/src/main/webapp/pr.html 
b/ignite-tc-helper-web/src/main/webapp/pr.html
index e165ba17..4cd2be7f 100644
--- a/ignite-tc-helper-web/src/main/webapp/pr.html
+++ b/ignite-tc-helper-web/src/main/webapp/pr.html
@@ -13,7 +13,7 @@
     <!-- production version, optimized for size and speed -->
     <!--<script src="https://cdn.jsdelivr.net/npm/vue";></script>-->
     <script src="js/common-1.7.js?v=20260509-6"></script>
-    <script src="js/testfails-2.3.js?v=20260510-2"></script>
+    <script src="js/testfails-2.4.js?v=20260528-1"></script>
 </head>
 <body>
 <script>
diff --git a/ignite-tc-helper-web/src/main/webapp/prs.html 
b/ignite-tc-helper-web/src/main/webapp/prs.html
index 9110d65d..eeb35036 100644
--- a/ignite-tc-helper-web/src/main/webapp/prs.html
+++ b/ignite-tc-helper-web/src/main/webapp/prs.html
@@ -18,7 +18,7 @@
           
integrity="sha384-/rXc/GQVaYpyDdyxK+ecHPVYJSN9bmVFBvjA/9eOB+pb3F2w2N6fc5qB9Ew5yIns"
 crossorigin="anonymous">
 
     <script src="js/common-1.7.js?v=20260510-1"></script>
-    <script src="js/testfails-2.3.js?v=20260510-2"></script>
+    <script src="js/testfails-2.4.js?v=20260528-1"></script>
     <script src="js/prs-1.3.js?v=20260510-5"></script>
 
     <style>

Reply via email to