Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[JENKINS-43388] Move stashed sub-form to window object to prevent und…
…efined dialog box error
  • Loading branch information
stephenc committed Apr 19, 2017
1 parent cc8d2d2 commit ff919c6
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
Expand Up @@ -52,9 +52,14 @@
<f:entry>
<j:set var="uid" value="${h.generateId()}" />
<div style="float:right" class="ldap-validate-section">
<input id="${uid}" type="button" value="${title}" name="${name}" class="yui-button ldap-validate-button"
onclick="ldapValidateButton('${descriptor.descriptorFullUrl}/${method}','${attrs.filter}',this,'${uid}')"
/>
<span class="yui-button">
<span>
<button id="${uid}" type="button" name="${name}" class="ldap-validate-button"
onclick="ldapValidateButton('${descriptor.descriptorFullUrl}/${method}','${attrs.filter}',this,'${uid}'); return false;">
${title}
</button>
</span>
</span>
<div id="${uid}_div" style="display:none;" class="ldap-validate-form">
<div class="hd">
<h2>${dialog}</h2>
Expand Down
@@ -1,15 +1,20 @@
Behaviour.specify("DIV.ldap-validate-form", 'ldap-validate', -200, function (div) {
if (!div['data-innerHTML']) {
div['data-innerHTML'] = div.innerHTML;
var id = div.getAttribute("id");
if (window['ldap validate'] === undefined) {
window['ldap validate'] = {};
}
if (window['ldap validate'][id] === undefined) {
window['ldap validate'][id] = div.innerHTML;
div.innerHTML = '';
}
button = null; // avoid memory leak
div = null; // avoid memory leak
});

function ldapValidateButton(checkUrl, formFilter, button, id) {
var form = findAncestor(button, "FORM");
button = button._button;
buildFormTree(button.form);
var json = JSON.parse(button.form['json'].value);
buildFormTree(form);
var json = JSON.parse(form['json'].value);
if (formFilter) {
var cur = json;
json = {};
Expand All @@ -27,7 +32,7 @@ function ldapValidateButton(checkUrl, formFilter, button, id) {
document.body.appendChild(dialogDiv);
dialogDiv.innerHTML = "<div></div>";
var dialogBody = dialogDiv.firstElementChild;
dialogBody.innerHTML = document.getElementById(id+"_div")['data-innerHTML'];
dialogBody.innerHTML = window['ldap validate'][id+"_div"];
var cleanUp = function() {
dialog.destroy();
document.body.removeChild(dialogDiv);
Expand Down Expand Up @@ -61,7 +66,9 @@ function ldapValidateButton(checkUrl, formFilter, button, id) {
dialog.show();
window.setTimeout(function () {
var inputs = dialogDiv.getElementsByTagName("INPUT");
inputs[0].focus();
if (inputs && inputs.length > 0) {
inputs[0].focus();
}
var buttons = dialogDiv.getElementsByTagName("BUTTON");
buttons[buttons.length-1].onclick = function () {
var spinner = document.getElementById(id + "_spinner");
Expand Down

0 comments on commit ff919c6

Please sign in to comment.