Een menuactie toevoegen
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
In dit voorbeeld voegen we een actie toe aan het contextmenu van de query in de hub queryquery's voor werkitems.
Tip
Bekijk onze nieuwste documentatie over uitbreidingsontwikkeling met behulp van de Azure DevOps Extension SDK.
Vereisten voor dit artikel
- U moet een web-app maken voor uw actie, die u kunt vinden in het voorbeeld van de hub.
- Als u dat nog niet hebt gedaan, bekijkt u de zelfstudie voor het schrijven van uw eerste extensie voor meer informatie over de basisbeginselen.
Manifestbestand voor extensie bijwerken
Hieronder ziet u het codefragment waarmee u uw actie toevoegt aan de sectie bijdragen van uw extensiemanifest.
...
"contributions": [
{
"id": "myAction",
"type": "ms.vss-web.action",
"description": "Run in Hello hub action",
"targets": [
"ms.vss-work-web.work-item-query-menu"
],
"properties": {
"text": "Run in Hello hub",
"title": "Run in Hello hub",
"icon": "images/icon.png",
"groupId": "actions",
"uri": "action.html"
}
}
]
...
Eigenschappen
Eigenschappen | Beschrijving |
---|---|
sms verzenden | Tekst die wordt weergegeven in het menu-item. |
title | Knopinfotekst die wordt weergegeven in het menu-item. |
Menu | URL naar een pictogram dat wordt weergegeven in het menu-item. Relatieve URL's worden omgezet met behulp van baseUri. |
groupId | Bepaalt waar dit menu-item wordt weergegeven ten opzichte van de andere items. |
uri | URI naar een pagina die de menuactie-handler registreert (zie hieronder). |
registeredObjectId | (Optioneel) Naam van de geregistreerde menuactiehandler. De standaardwaarde is de inzender-id. |
Meer informatie over alle plaatsen waar u acties kunt toevoegen in uitbreidbaarheidspunten.
Uw HTML-pagina
De menuactie wordt vertegenwoordigd door een JavaScript-script dat is ingesloten in een HTML-bestand. Sla de volgende inhoud op in een bestand en locatie die overeenkomt met de verwijzing in het manifestbestand van uw extensie.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Action Sample</title>
</head>
<body>
<div>
The end user doesn't see the content on this page.
It is only in the background to handle the contributed menu item being selected.
</div>
</body>
</html>
Uw JavaScript
Met het onderstaande script wordt het handler-object geregistreerd om de actie af te handelen. Plaats het in de head
sectie van de vorige HTML-pagina.
We hebben een alias in ons
sdk-extension.json
manifestbestand.lib
node_modules/azure-devops-extension-sdk/lib
<script src="lib/SDK.min.js"></script>
<script>
SDK.init();
// Use an IIFE to create an object that satisfies the IContributedMenuSource contract
var menuContributionHandler = (function () {
"use strict";
return {
// This is a callback that gets invoked when a user selects the newly contributed menu item
// The actionContext parameter contains context data surrounding the circumstances of this
// action getting invoked.
execute: function (actionContext) {
alert("Hello, world");
}
};
}());
// Associate the menuContributionHandler object with the "myAction" menu contribution from the manifest.
SDK.register(SDK.getContributionId(), menuContributionHandler);
</script>
Tip
Zie Uitbreidbaarheidspunten, menu's en werkbalken, het bijdragemodel voor het formuleontwerpsysteem, REST API-verwijzing, extensievoorbeelden en resources in de ontwikkelaarscommunity voor meer informatie.
Volgende stappen
Nu u uw extensie hebt geschreven, zijn de volgende stappen het pakket, publiceren en installeren van uw extensie. U kunt ook de documentatie voor testen en foutopsporing van uw extensie bekijken.