in scripts/config/WidgetConfiguration.tsx [22:111]
public load(widgetSettings: WidgetContracts.WidgetSettings, widgetConfigurationContext: WidgetContracts.IWidgetConfigurationContext): IPromise<WidgetContracts.WidgetStatus> {
this.widgetConfigurationContext = widgetConfigurationContext;
this.settings = WidgetSettingsHelper.Parse<ReleaseWidgetSettings>(widgetSettings.customSettings.data);
//check to see if on prem
//if (this.context.collection.uri.includes(".visualstudio.com") || this.context.collection.uri.includes("dev.azure.com")) {
if (this.context.account.name.includes("Team Foundation Server")) {
this.isOnPrem = true;
} else {
this.isOnPrem = false;
}
// Dropdown change functions
this.projectSelector.change(this.projectChanged);
this.releaseDefinitionSelector.change(this.releaseDefinitionChanged);
this.releaseEnvironmentSelector.change(this.releaseEnvironmentChanged);
this.colorShowCheckbox.change(this.checkboxClicked);
//Initially get list of projects, release definitions, environments, and set saved settings
getProjects(this.context, this.isOnPrem).then(projects => {
let optionsToInsert = projects
.map(r => this.createOptionsHtml(r))
.join("");
this.projectSelector.append(optionsToInsert);
let setToSavedSetting = projects.some(e => e.id === this.settings.projectId);
if (setToSavedSetting) {
let savedvalue = projects.find(e => e.id === this.settings.projectId);
this.projectSelector.val(savedvalue.id);
}
else {
this.settings.projectName = $("#project-selection option:selected").text();
this.settings.projectId = $("#project-selection option:selected").val() as number;
}
let projectName = $("#project-selection option:selected").text();
getReleaseDefinitions(this.context, projectName, this.isOnPrem).then(releaseDefinitions => {
let optionsToInsert = releaseDefinitions
.map(r => this.createOptionsHtml(r))
.join("");
this.releaseDefinitionSelector.append(optionsToInsert);
let setToSavedSetting1 = releaseDefinitions.some(e => e.id == this.settings.releaseDefinitionId);
if (setToSavedSetting1) {
let savedvalue = releaseDefinitions.find(e => e.id == this.settings.releaseDefinitionId);
this.releaseDefinitionSelector.val(savedvalue.id);
}
else {
this.settings.releaseDefinitionId = $("#release-definition-selection option:selected").val().toString();
this.settings.releaseDefinitionName = $("#release-definition-selection option:selected").text();
}
let releaseDefinitionId = this.releaseDefinitionSelector.val();
getReleaseEnvironments(this.context, projectName, releaseDefinitionId, this.isOnPrem).then(releaseEnvironments => {
let optionsToInsert = releaseEnvironments
.map(r => this.createOptionsHtml(r))
.join("");
this.releaseEnvironmentSelector.append(optionsToInsert);
let setToSavedSetting2 = releaseEnvironments.some(e => e.id == this.settings.releaseEnvironmentId);
if (setToSavedSetting2) {
let savedvalue = releaseEnvironments.find(e => e.id == this.settings.releaseEnvironmentId);
this.releaseEnvironmentSelector.val(savedvalue.id);
}
else {
this.settings.releaseEnvironmentId = $("#release-environment-selection option:selected").val().toString();
this.settings.releaseEnvironmentName = $("#release-environment-selection option:selected").text();
this.onChange(this.settings);
}
});
});
});
//Set color show checkbox
if (this.settings != null && this.settings.colorShowChecked != null) {
document.getElementById('colorcheckbox').checked = this.settings.colorShowChecked;
}
//After all initial loading is done, signal to framework about sizing
VSS.resize();
return WidgetHelpers.WidgetStatusHelper.Success();
}