server/resources/buildServerResources/js/priorityClass.js (263 lines of code) (raw):
BS.PriorityClassActions = {
refreshPriorityClassList: function() {
$('priorityClassList').refresh();
}
};
BS.CreatePriorityClassForm = OO.extend(BS.AbstractWebForm, {
formElement: function() {
return $('createPriorityClass');
},
reset: function() {
Form.reset(this.formElement());
this.clearErrors();
},
focusFirstElement: function() {
Form.focusFirstElement(this.formElement());
},
focusElement: function(elementId) {
$(elementId).activate();
},
savingIndicator: function() {
return $('createPriorityClassProgress');
},
submit: function() {
var that = this;
BS.FormSaver.save(this, this.formElement().action, OO.extend(BS.ErrorsAwareListener, {
onCreatePriorityClassError: function(elem) {
$("error_createError").innerHTML = elem.firstChild.nodeValue;
},
onPriorityClassNameError: function(elem) {
$("error_priorityClassName").innerHTML = elem.firstChild.nodeValue;
that.highlightErrorField($("priorityClassName"));
},
onPriorityClassDescriptionError: function(elem) {
$("error_priorityClassDescription").innerHTML = elem.firstChild.nodeValue;
that.highlightErrorField($("priorityClassDescription"));
},
onPriorityClassPriorityError: function(elem) {
$("error_priorityClassPriority").innerHTML = elem.firstChild.nodeValue;
that.highlightErrorField($("priorityClassPriority"));
},
onCompleteSave: function(form, responseXML, err) {
form.setSaving(false);
if (err) {
form.enable();
form.focusFirstErrorField();
} else {
document.location = $("afterCreateLocation").value + "?priorityClassId=" +
responseXML.documentElement.getElementsByTagName("priorityClass")[0].getAttribute("id");
}
}
}));
return false;
}
});
BS.EditPriorityClassForm = OO.extend(BS.AbstractWebForm, {
formElement: function() {
return $('editPriorityClass');
},
reset: function() {
Form.reset(this.formElement());
this.clearErrors();
},
focusFirstElement: function() {
Form.focusFirstElement(this.formElement());
},
focusElement: function(elementId) {
$(elementId).activate();
},
savingIndicator: function() {
return $('editPriorityClassProgress');
},
submit: function() {
var that = this;
BS.FormSaver.save(this, this.formElement().action, OO.extend(BS.ErrorsAwareListener, {
onPriorityClassNotFound: function() {
BS.reload(true);
},
onPriorityClassNameError: function(elem) {
$("error_priorityClassName").innerHTML = elem.firstChild.nodeValue;
that.highlightErrorField($("priorityClassName"));
},
onPriorityClassDescriptionError: function(elem) {
$("error_priorityClassDescription").innerHTML = elem.firstChild.nodeValue;
that.highlightErrorField($("priorityClassDescription"));
},
onPriorityClassPriorityError: function(elem) {
$("error_priorityClassPriority").innerHTML = elem.firstChild.nodeValue;
that.highlightErrorField($("priorityClassPriority"));
},
onSuccessfulSave: function() {
BS.reload(true);
}
}));
return false;
}
});
BS.DeletePriorityClassDialog = OO.extend(BS.AbstractModalDialog, {
getContainer: function() {
return $('deletePriorityClassDialog');
},
getRefreshableContainer: function() {
return $('deletePriorityClassRefreshableContainer');
},
showDeleteDialog: function(priorityClassId, afterFinish) {
var that = BS.DeletePriorityClassDialog;
this.afterFinish = afterFinish;
this.getRefreshableContainer().refresh(null, "priorityClassId=" + encodeURIComponent(priorityClassId), function() {
that.showCentered();
});
}
});
BS.DeletePriorityClassForm = OO.extend(BS.AbstractWebForm, {
formElement: function() {
return $('deletePriorityClass');
},
submit: function() {
var that = this;
BS.FormSaver.save(this, this.formElement().action, OO.extend(BS.ErrorsAwareListener, {
onMoveConfigurationsError: function(elem) {
$("error_moveConfigurations").innerHTML = elem.firstChild.nodeValue;
},
onSuccessfulSave: function() {
that.enable();
BS.DeletePriorityClassDialog.close();
BS.DeletePriorityClassDialog.afterFinish();
}
}, true));
return false;
}
});
BS.UnassignBuildTypesForm = OO.extend(BS.AbstractWebForm, {
formElement: function() {
return $('unassignBuildTypesForm');
},
selectAll: function(select) {
if (select) {
BS.Util.selectAll(this.formElement(), "unassign");
} else {
BS.Util.unselectAll(this.formElement(), "unassign");
}
},
selected: function() {
var checkboxes = Form.getInputs(this.formElement(), "checkbox", "unassign");
for (var i=0; i<checkboxes.length; i++) {
if (checkboxes[i].checked) {
return true;
}
}
return false;
},
setSaving: function(saving) {
if (saving) {
BS.Util.show('unassignInProgress');
} else {
BS.Util.hide('unassignInProgress');
}
},
submit: function() {
if (!this.selected()) {
alert("Please select at least one build configuration.");
return false;
}
if (!confirm("Are you sure you want to unassign selected configurations?")) return false;
BS.FormSaver.save(this, this.formElement().action, OO.extend(BS.ErrorsAwareListener, {
onCompleteSave: function() {
$('pClassBuildTypesContainer').refresh();
}
}));
return false;
}
});
BS.AttachConfigurationsToClassDialog = OO.extend(BS.AbstractWebForm, OO.extend(BS.AbstractModalDialog, {
nonDefaultMovedCount: 0,
getContainer: function() {
return $('attachConfigurationsToClassDialog');
},
selectAll: function(select) {
if (select) {
BS.Util.selectAll(this.formElement(), "configurationId");
} else {
BS.Util.unselectAll(this.formElement(), "configurationId");
}
},
selectConfiguration: function(checkbox, isDefaultPriorityClass) {
if (!isDefaultPriorityClass) {
if (checkbox.checked) {
BS.AttachConfigurationsToClassDialog.nonDefaultMovedCount++;
} else {
BS.AttachConfigurationsToClassDialog.nonDefaultMovedCount--;
}
}
},
showAttachDialog: function(pClassId) {
var that = BS.AttachConfigurationsToClassDialog;
this.pClassId = pClassId;
$('attachConfigurationsToClassContainer').refresh(null, "pClassId=" + encodeURIComponent(pClassId) + "&openDialog=true", function() {
that.showCentered();
that.bindCtrlEnterHandler(that.submit.bind(that));
that.focusFirstElement();
});
},
resetFilter: function() {
$j('#searchString').val('');
this.findConfigurations();
return false;
},
findConfigurations: function() {
var that = BS.AttachConfigurationsToClassDialog;
var findProgress = $('findProgress');
var pClassId = this.pClassId;
var form = this.formElement();
var parameters = "pClassId=" + encodeURIComponent(pClassId) + "&searchString=" + encodeURIComponent(form.searchString.value) + "&searchStringSubmitted=true";
findProgress.show();
$('configurationListRefreshable').refresh(null, parameters, function() {
findProgress.hide();
that.recenterDialog();
that.focusFirstElement();
});
return false;
},
_onSuccess: function() {
this.nonDefaultMovedCount = 0;
$('pClassBuildTypesContainer').refresh();
this.enable();
this.close();
},
formElement: function() {
return $('attachConfigurationsToClass');
},
savingIndicator: function() {
return $('attachProgress');
},
focusFirstElement: function() {
Form.focusFirstElement(this.formElement());
},
submit: function() {
this.formElement().submitAction.value='assignConfigurations';
if (this.nonDefaultMovedCount != 0) {
var msg = "You select " + this.nonDefaultMovedCount + " configuration(s) from non-default priority class, " +
"are you sure you want to move them in current priority class?";
if (!confirm(msg)) return false;
}
var that = this;
BS.FormSaver.save(this, this.formElement().action, OO.extend(BS.ErrorsAwareListener, {
onAttachToGroupsError: function(elem) {
$("error_attachToClass_" + that.formElement().id).innerHTML = elem.firstChild.nodeValue;
},
onSuccessfulSave: function() {
that._onSuccess();
}
}));
return false;
}
}));
BS.PriorityClassConfigurationsPopup = {};
BS.PriorityClassConfigurationsPopup = new BS.Popup("priorityClassConfigurationsPopup", {
url: window['base_uri'] + "/plugins/priority-queue/priorityClassConfigurationsPopup.html",
method: "get"
});
BS.PriorityClassConfigurationsPopup.showPopup = function(nearestElement, priorityClassId) {
this.options.parameters = "priorityClassId=" + encodeURIComponent(priorityClassId);
this.showPopupNearElement(nearestElement);
};