Skip to content

Commit

Permalink
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ let consoleClickHandler = null;
let progressClickHandler = null;
let successRerunHandler = null;
let latestRerunHandler = null;
let triggerBuildHandler = null;

// Common utilities
const parseDataAttributes = (container) => ({
Expand All @@ -15,6 +16,17 @@ const parseDataAttributes = (container) => ({
.map(id => parseInt(id, 10))
});

const parseTriggerAttributes = (container) => ({
id: parseInt(container.dataset.showSpinnerId, 10),
upstreamProjectName: container.dataset.upstreamProjectName,
upstreamBuildNumber: parseInt(container.dataset.upstreamBuildNumber, 10),
projectName: container.dataset.projectName,
dependencyIds: container.dataset.dependencyIds
.split(',')
.filter(Boolean)
.map(id => parseInt(id, 10))
});

// Dialog handlers
const handleDialogClick = (dataContainer) => {
const { fillDialogHref: href, fillDialogTitle: title } = dataContainer.dataset;
Expand All @@ -28,6 +40,13 @@ const handleRerunClick = (dataContainer) => {
buildPipeline.rerunBuild(id, buildExtId, dependencyIds);
};

// Trigger build handler
const handleTriggerBuild = (dataContainer) => {
const { id, upstreamProjectName, upstreamBuildNumber, projectName, dependencyIds } = parseTriggerAttributes(dataContainer);
buildPipeline.showSpinner(id);
buildPipeline.triggerBuild(id, upstreamProjectName, upstreamBuildNumber, projectName, dependencyIds);
};

// Create delegated event handler
const createDelegatedHandler = (parentSelector, targetSelector, handlerFn, existingHandler) => {
const parentElement = document.querySelector(parentSelector);
Expand Down Expand Up @@ -61,7 +80,7 @@ const createDelegatedHandler = (parentSelector, targetSelector, handlerFn, exist
return newHandler;
};

// Register behaviours using delegation pattern
// Register behaviours
Behaviour.specify(
".bct-progress-console-onclick",
'BuildCardExtension_progressBarClick',
Expand Down Expand Up @@ -105,13 +124,13 @@ Behaviour.specify(
);

Behaviour.specify(
".bct-rerun-latest-build-onclick",
".bct-rerun-failed-latest-build-onclick", // Changed to match HTML class
'BuildCardExtension_latestRerunClick',
0,
function() {
latestRerunHandler = createDelegatedHandler(
'.pipelines',
'.bct-rerun-latest-build-onclick',
'.bct-rerun-failed-latest-build-onclick', // Changed to match HTML class
handleRerunClick,
latestRerunHandler
);
Expand All @@ -132,6 +151,20 @@ Behaviour.specify(
}
);

Behaviour.specify(
".bct-trigger-build-onclick",
'BuildCardExtension_triggerBuildClick',
0,
function() {
triggerBuildHandler = createDelegatedHandler(
'.pipelines',
'.bct-trigger-build-onclick',
handleTriggerBuild,
triggerBuildHandler
);
}
);

//
// Behaviour.specify(".bct-progress-console-onclick", 'BuildCardExtension_progressBarClick', 0, function (element) {
//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@
<span class="bct-rerun-success-icon-onclick">
<l:icon src="icon-clock icon-sm" alt="re-run" />
</span>
<h1>test1</h1>
</j:if>
{{/if}}
{{else}}
Expand All @@ -122,20 +123,21 @@
<span class="bct-rerun-failed-latest-build-onclick">
<l:icon src="icon-clock icon-sm" alt="retry" />
</span>
<h1>test2</h1>
{{/if}}
{{/if}}
{{else}}
{{#if build.isManual}}
<span onclick="buildPipeline.showSpinner({{id}}); buildPipeline.triggerBuild({{id}}, '{{upstream.projectName}}', {{upstream.buildNumber}}, '{{project.name}}', [{{build.dependencyIds}}])">
<l:icon src="icon-clock icon-sm" alt="retry" />
<h1>Shlomo2</h1>
<h1>test3</h1>
</span>
{{else}}
<span class="bct-rerun-failed-not-manual-build-onclick-params" data-show-spinner-id="{{id}}" data-rerun-build-ext-id="{{build.extId}}" data-rerun-build-dependency-ids="{{build.dependencyIds}}" style="display: none;" />
<span class="bct-rerun-failed-not-manual-build-onclick">
<l:icon src="icon-clock icon-sm" alt="retry" />
</span>
<h1>Shlomo3</h1>
<h1>test4</h1>
{{/if}}
{{/if}}
{{/if}}
Expand All @@ -144,16 +146,17 @@
{{#if build.isReadyToBeManuallyBuilt}}
{{#if ${it.triggerOnlyLatestJob}}}
{{#if build.isUpstreamBuildLatestSuccess}}
<span onclick="buildPipeline.showSpinner({{id}}); buildPipeline.triggerBuild({{id}}, '{{upstream.projectName}}', {{upstream.buildNumber}}, '{{project.name}}', [{{build.dependencyIds}}])">
<span class="bct-trigger-build-onclick-params" data-show-spinner-id="{{id}}" data-upstream-project-name="{{upstream.projectName}}" data-upstream-build-number="{{upstream.buildNumber}}" data-project-name="{{project.name}}" data-dependency-ids="{{build.dependencyIds}}" style="display: none;" />
<span class="bct-trigger-build-onclick">
<l:icon src="icon-clock icon-sm" alt="trigger" />
</span>
<h1>SHLOMO4</h1>
<h1>test5</h1>
{{/if}}
{{else}}
<span onclick="buildPipeline.showSpinner({{id}}); buildPipeline.triggerBuild({{id}}, '{{upstream.projectName}}', {{upstream.buildNumber}}, '{{project.name}}', [{{build.dependencyIds}}])">
<l:icon src="icon-clock icon-sm" alt="trigger" />
</span>
<h1>SHLOMO5</h1>
<h1>test6</h1>
{{/if}}
{{/if}}
</div>
Expand Down

0 comments on commit 047a747

Please sign in to comment.