vso-extension-samples
Version:
Visual Studio Online Extension Samples
68 lines (61 loc) • 2.28 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Work item menu contribution sample</title>
</head>
<body>
<script src="sdk/scripts/VSS.SDK.js"></script>
<script>
var changedFieldCount = [];
var changedFields = [];
VSS.init({
explicitNotifyLoaded: true,
usePlatformScripts: true
});
// Register a listener for the menu item contribution
VSS.register("sample-work-item-menu", function (context) {
return {
// Called when the menu item is clicked.
execute: function(actionContext) {
window.alert("Total fields changed: " + changedFieldCount[actionContext.workItemId]);
}
}
});
VSS.register("sample-work-item-form-observer", function (context) {
return {
// event handlers, called when the active work item is loaded/unloaded/modified/saved
onFieldChanged: function (args) {
if (!changedFields[args.id]) {
changedFields[args.id] = [];
changedFieldCount[args.id] = 0;
}
$.each(args.changedFields, function(key, value) {
if (!changedFields[args.id][key]) {
changedFields[args.id][key] = value;
changedFieldCount[args.id]++;
}
});
},
onLoaded: function (args) {
},
onUnloaded: function (args) {
},
onSaved: function (args) {
changedFieldCount[args.id] = 0;
changedFields[args.id] = [];
},
onReset: function (args) {
changedFieldCount[args.id] = 0;
changedFields[args.id] = [];
},
onRefreshed: function (args) {
changedFieldCount[args.id] = 0;
changedFields[args.id] = [];
}
};
});
VSS.notifyLoadSucceeded();
</script>
</body>
</html>