Lägg till en menyåtgärd
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
I det här exemplet lägger vi till en åtgärd på frågekontextmenyn i navet för arbetsobjektsfrågor.
Dricks
Läs vår senaste dokumentation om tilläggsutveckling med hjälp av Azure DevOps Extension SDK.
Förutsättningar för den här artikeln
- Du måste skapa en webbapp för din åtgärd, som finns i hubbexemplet.
- Om du inte har gjort det kan du ta en titt på självstudien för att skriva din första tilläggsguide för att lära dig mer om grunderna.
Uppdateringstilläggets manifestfil
Nedan visas kodfragmentet som lägger till din åtgärd i bidragsavsnittet i tilläggsmanifestet.
...
"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"
}
}
]
...
Egenskaper
Property | Beskrivning |
---|---|
text | Text som visas på menyalternativet. |
rubrik | Knappbeskrivningstext som visas på menyalternativet. |
Ikonen | URL till en ikon som visas på menyalternativet. Relativa URL:er matchas med hjälp av baseUri. |
groupId | Avgör var det här menyalternativet visas i förhållande till de andra. |
uri | URI till en sida som registrerar menyåtgärdshanteraren (se nedan). |
registeredObjectId | (Valfritt) Namnet på den registrerade menyåtgärdshanteraren. Standardvärdet för deltagar-ID:t. |
Lär dig mer om alla platser där du kan lägga till åtgärder i Utökningspunkter.
HTML-sidan
Din menyåtgärd representeras av ett JavaScript-skript som är inbäddat i en HTML-fil. Spara följande innehåll i en fil och plats som matchar referensen till den i tilläggets manifestfil.
<!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>
Your JavaScript
Skriptet nedan registrerar hanteringsobjektet för att hantera åtgärden och placerar det i head
avsnittet på föregående HTML-sida.
Vi har alias för
lib
att finnasnode_modules/azure-devops-extension-sdk/lib
i manifestfilensdk-extension.json
.
<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>
Dricks
Mer information finns i Utökningspunkter, menyer och verktygsfält, bidragsmodellen Formeldesignsystem, REST API-referens, tilläggsexempel och resurser i utvecklarcommunityn.
Nästa steg
Nu när du har skrivit tillägget är nästa steg att paketera, publicera och installera tillägget. Du kan också läsa dokumentationen för testning och felsökning av tillägget.