From 312fb8d20861bc7dcc8ea87126c5f742772e0e4b Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Tue, 7 Feb 2023 22:17:34 +0100 Subject: [PATCH 1/9] [JENKINS-60866] Un-inline 'Build Now' JS --- .../lib/hudson/project/configurable.jelly | 13 +++------ .../hudson/project/configurable/adjunct.js | 12 +++++++++ core/src/main/resources/lib/layout/task.jelly | 21 +++++++-------- .../main/resources/lib/layout/task/task.js | 27 +++++++++++++++++++ 4 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 core/src/main/resources/lib/hudson/project/configurable/adjunct.js create mode 100644 core/src/main/resources/lib/layout/task/task.js diff --git a/core/src/main/resources/lib/hudson/project/configurable.jelly b/core/src/main/resources/lib/hudson/project/configurable.jelly index 229385112ec8..d15489184503 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.jelly +++ b/core/src/main/resources/lib/hudson/project/configurable.jelly @@ -24,17 +24,12 @@ THE SOFTWARE. --> - + - - + +
+ diff --git a/core/src/main/resources/lib/hudson/project/configurable/adjunct.js b/core/src/main/resources/lib/hudson/project/configurable/adjunct.js new file mode 100644 index 000000000000..51502f4e2277 --- /dev/null +++ b/core/src/main/resources/lib/hudson/project/configurable/adjunct.js @@ -0,0 +1,12 @@ +window["lib_hudson_project_configurable_build_now_callback"] = function ( + el, + ev +) { + let parameterized = el.dataset.parameterized; + let success = el.dataset.success; + if (parameterized === "false") { + new Ajax.Request(ev.target.href); + hoverNotification(success, ev.target.parentNode); + ev.preventDefault(); + } +}; diff --git a/core/src/main/resources/lib/layout/task.jelly b/core/src/main/resources/lib/layout/task.jelly index 6a63e100f331..89296a277a51 100644 --- a/core/src/main/resources/lib/layout/task.jelly +++ b/core/src/main/resources/lib/layout/task.jelly @@ -77,10 +77,18 @@ THE SOFTWARE. (onclick supersedes this except in the context menu.) (since 1.512) + + Onclick inline JS handler. Deprecated, use callbackElementId instead. + Message to use for confirmation, if requested; defaults to title. (since 1.512) + + This is the ID attribute of an HTML element that will be looked up to invoke a callback when clicked. + The HTML element is expected to have the attribute data-callback (a global function). + The global function will be invoked with the HTML element and event as arguments. + From a205cc44cd0102de93bef1886811a5527fe626b9 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 23 Aug 2023 14:41:10 +0200 Subject: [PATCH 8/9] Fix onclick behavior --- core/src/main/resources/lib/layout/task.jelly | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/resources/lib/layout/task.jelly b/core/src/main/resources/lib/layout/task.jelly index f2341517dc2d..3421c2388d9d 100644 --- a/core/src/main/resources/lib/layout/task.jelly +++ b/core/src/main/resources/lib/layout/task.jelly @@ -195,8 +195,8 @@ THE SOFTWARE. data-task-success="${%Done.}" data-task-post="${attrs.post}" ATTRIBUTES="${attrs}" - EXCEPT="badge confirmationMessage contextMenu destructive enabled href icon onclick permission permissions post requiresConfirmation title"> - + EXCEPT="badge confirmationMessage contextMenu destructive enabled href icon permission permissions post requiresConfirmation title"> + From 3fc78c52f789d8430c61bfb3e814bdb7183b4465 Mon Sep 17 00:00:00 2001 From: Daniel Beck Date: Wed, 23 Aug 2023 20:21:18 +0200 Subject: [PATCH 9/9] Address review feedback --- core/src/main/resources/lib/hudson/project/configurable.jelly | 1 - core/src/main/resources/lib/layout/task.jelly | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/lib/hudson/project/configurable.jelly b/core/src/main/resources/lib/hudson/project/configurable.jelly index ffe5959d8ed6..44bac9b2b9bf 100644 --- a/core/src/main/resources/lib/hudson/project/configurable.jelly +++ b/core/src/main/resources/lib/hudson/project/configurable.jelly @@ -26,7 +26,6 @@ THE SOFTWARE. - diff --git a/core/src/main/resources/lib/layout/task.jelly b/core/src/main/resources/lib/layout/task.jelly index 3421c2388d9d..f84ab286302f 100644 --- a/core/src/main/resources/lib/layout/task.jelly +++ b/core/src/main/resources/lib/layout/task.jelly @@ -84,6 +84,7 @@ THE SOFTWARE. Name of a global function to call when clicked. It will be called with an element (currently 'a') as first argument, and the event as second argument. You can specify further data-* attributes to customize behavior, those will be defined on the element passed as first argument. + See https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset for more information about these attributes. Has no effect if you specify the 'requiresConfirmation' attribute. Has no effect on menu items showing in context menus, only 'href', 'post', and 'requiresConfirmation' attributes substantially change behavior there. Set 'contextMenu' to 'false' to remove this task from those menus.