public load()

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();
    }