vso-extension-samples
Version:
Visual Studio Online Extension Samples
77 lines (64 loc) • 2.21 kB
HTML
<html>
<head>
<title>Compare To form</title>
</head>
<script src="sdk/scripts/VSS.SDK.js"></script>
<script type="text/javascript">
VSS.init({
explicitNotifyLoaded: true,
usePlatformScripts: true
});
VSS.require([
"VSS/Service",
"VSS/Controls",
"VSS/Controls/Combos",
"TFS/VersionControl/GitRestClient"],
function (Service, Controls, Combos, GitWebApi) {
var compareToForm = (function() {
var formChangedCallbacks = [];
var branchSelector;
function getFormInput() {
return {
branch: branchSelector ? branchSelector.getText() : null
};
}
function triggerCallbacks() {
var formInput = getFormInput();
formChangedCallbacks.forEach(function (callback) {
callback(formInput);
});
}
branchSelector = Controls.create(Combos.Combo, $("#main-container"), {
mode: "drop",
allowEdit: false,
source: [],
change: function (arg) {
triggerCallbacks();
}
});
var itemContext = VSS.getConfiguration().item;
var gitClient = Service.getClient(GitWebApi.GitHttpClient);
gitClient.getBranches(itemContext.gitRepository.id).then(function (branches) {
branchSelector.setSource($.map(branches, function (branch) {
return branch.name;
}));
});
return {
getFormInputs: function() {
return getFormInput();
},
onFormChanged: function (callback) {
formChangedCallbacks.push(callback);
}
}
})();
VSS.register("compareToForm", compareToForm);
VSS.notifyLoadSucceeded();
});
</script>
<div id="main-container">
<label>Select branch:</label>
</div>
</body>
</html>