vso-extension-samples
Version:
Visual Studio Online Extension Samples
69 lines (56 loc) • 3.07 kB
HTML
<head>
<title>Background contributions</title>
<script src="sdk/scripts/VSS.SDK.js"></script>
</head>
<body>
<script type="text/javascript">
VSS.init();
var compareMenu = {
execute: function (actionContext) {
VSS.getService("ms.vss-web.dialog-service").then(function (dialogSvc) {
var compareToForm;
var extInfo = VSS.getExtensionContext();
var dialogOptions = {
title: "Compare to",
width: 600,
height: 400,
okText: "Compare",
okCallback: function (result) {
VSS.getService("ms.vss-web.navigation-service").then(function (navigationSvc) {
var newHash = [
"_a=compare",
"path=" + encodeURIComponent(actionContext.item.path),
"oversion=" + encodeURIComponent("GB" + result.branch),
"mversion=" + encodeURIComponent("GB" + actionContext.version)
];
navigationSvc.setHash(newHash.join('&'));
});
},
getDialogResult: function () {
return compareToForm ? compareToForm.getFormInputs() : null;
}
};
var contributionContext = {
item: actionContext
};
dialogSvc.openDialog(extInfo.publisherId + "." + extInfo.extensionId + "." + "compareToForm", dialogOptions, contributionContext).then(function (dialog) {
dialog.getContributionInstance("compareToForm").then(function (compareToFormInstance) {
compareToForm = compareToFormInstance;
// Subscribe to form input changes and update the Ok enabled state
compareToForm.onFormChanged(function(formInput) {
dialog.updateOkButton(formInput.branch && actionContext.version !== "GB" + formInput.branch);
});
// Get the initial ok enabled state
compareToForm.getFormInput().then(function (formInput) {
dialog.updateOkButton(formInput.branch && actionContext.version !== "GB" + formInput.branch);
});
});
});
});
}
};
VSS.register("compareMenu", compareMenu);
</script>
</body>
</html>