Megosztás a következőn keresztül:


A munkaelem űrlapjának kiterjesztése

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Megtudhatja, hogyan szabhatja testre, hogyan jelenik meg a munkaelem-űrlap a felhasználók számára egy bővítményen keresztül végzett hozzájárulásokon keresztül.

A teljes forrásért tekintse meg a gitHubon található Azure DevOps-bővítményminták felhasználói felületi példáját.

Csoport hozzáadása

Eszköztárelem a munkaeleműrlapon.

Ha csoportot szeretne hozzáadni a főoldalhoz, adjon hozzá egy hozzájárulást a bővítményjegyzékhez. Ennek a hozzájárulásnak a típusának kell lennie ms.vss-work-web.work-item-form-group , és meg kell céloznia a hozzájárulást ms.vss-work-web.work-item-form .

"contributions": [
   {  
       "id": "sample-work-item-form-group",
       "type": "ms.vss-work-web.work-item-form-group",
       "description": "Custom work item form group",
       "targets": [
           "ms.vss-work-web.work-item-form"
       ],
       "properties": {
           "name": "My Group",
           "uri": "workItemGroup.html",
           "height": 600
       }
   }
]

Tulajdonságok

Tulajdonság Leírás
name A csoportban megjelenő szöveg.
uri URI egy olyan lapra, amely a munkaelem űrlapján és szkriptjeiben megjelenő HTML-t tárolja.
height (Nem kötelező) Meghatározza a csoport magasságát. Ha nincs megadva, az 100%.

JavaScript-minta

Ez a példa bemutatja, hogyan regisztrálhat egy objektumot, amely akkor van meghívva, amikor események történnek a munkaelem űrlapján, amely hatással lehet a közreműködő csoportra. További példákért tekintse meg a WorkItemFormGroup mintát .

import { IWorkItemFormService, WorkItemTrackingServiceIds } from "azure-devops-extension-api/WorkItemTracking";
import * as SDK from "azure-devops-extension-sdk";

// Get the WorkItemFormService.  This service allows you to get/set fields/links on the 'active' work item (the work item
// that currently is displayed in the UI).
async function getWorkItemFormService()
{
    const workItemFormService = await SDK.getService<IWorkItemFormService>(WorkItemTrackingServiceIds.WorkItemFormService);
    return workItemFormService;
}

// Register a listener for the work item group contribution after initializing the SDK.
SDK.register(SDK.getContributionId(), function () {
    return {
        // Called when the active work item is modified
        onFieldChanged: function(args) {
            $(".events").append($("<div/>").text("onFieldChanged - " + JSON.stringify(args)));
        },
        
        // Called when a new work item is being loaded in the UI
        onLoaded: function (args) {

            getWorkItemFormService().then(function(service) {            
                // Get the current values for a few of the common fields
                service.getFieldValues(["System.Id", "System.Title", "System.State", "System.CreatedDate"]).then(
                    function (value) {
                        $(".events").append($("<div/>").text("onLoaded - " + JSON.stringify(value)));
                    });
            });
        },
        
        // Called when the active work item is being unloaded in the UI
        onUnloaded: function (args) {
            $(".events").empty();
            $(".events").append($("<div/>").text("onUnloaded - " + JSON.stringify(args)));
        },
        
        // Called after the work item has been saved
        onSaved: function (args) {
            $(".events").append($("<div/>").text("onSaved - " + JSON.stringify(args)));
        },
        
        // Called when the work item is reset to its unmodified state (undo)
        onReset: function (args) {
            $(".events").append($("<div/>").text("onReset - " + JSON.stringify(args)));
        },
        
        // Called when the work item has been refreshed from the server
        onRefreshed: function (args) {
            $(".events").append($("<div/>").text("onRefreshed - " + JSON.stringify(args)));
        }
    }
});

esemény

Esemény Esemény leírása Argumentum Argumentum leírása
onFieldChanged Egy mező módosítása után aktiválódott. Ha a mezőmódosítás olyan szabályokat futtatott, amelyek más mezőket frissítettek, ezek a módosítások egyetlen esemény részét képezik. ID (Azonosító) A munkaelem azonosítója.
changedFields Tömb az összes módosított mező hivatkozási nevével. ID (Azonosító) A munkaelem azonosítója.
be van töltve Miután az adatok betöltésre kerülnek a munkaeleműrlapra, amikor a felhasználó megnyit egy munkaelemet, vagy amikor a felhasználó egy másik munkaelemhez navigál a triázs nézetben. ID (Azonosító) A munkaelem azonosítója.
onReset Azután aktiválódott, hogy a felhasználó visszavonta a munkaelem módosításait. ID (Azonosító) A munkaelem azonosítója.
onRefreshed Azután aktiválódott, hogy a felhasználó manuálisan frissítette a munkaelemet. ID (Azonosító) A munkaelem azonosítója.
onSaved A munkaelem mentése után aktiválódott. A párbeszédpanel munkaelemei esetében az "ms.vss-work-web.work-item-notifications" típust kell megcélolnia, hogy az esemény aktiválódik, mivel a párbeszédpanel bezárása után ez a hozzájárulástípus ki lesz ürítve. További információ: Események figyelése. ID (Azonosító) A munkaelem azonosítója.
onUnloaded Aktiválva, mielőtt a felhasználó bezárja a párbeszédpanelt, vagy mielőtt a felhasználó átáll egy másik munkaelemre a Triage nézetben. ID (Azonosító) A munkaelem azonosítója.

Oldal hozzáadása

A munkaelem űrlapján egy új lap jelenik meg lapként. Új lapok jelennek meg a Részletek lap mellett.

Új lap lapként a munkaelem űrlapján.

Ha egy lapot szeretne hozzáadni a munkaelem-űrlaphoz, adjon hozzá egy hozzájárulást a bővítményjegyzékhez. Ennek a hozzájárulásnak a típusának kell lennie ms.vss-work-web.work-item-form-page , és meg kell céloznia a hozzájárulást ms.vss-work-web.work-item-form .

"contributions": [
    {  
        "id": "sample-work-item-form-page",
        "type": "ms.vss-work-web.work-item-form-page",
        "description": "Custom work item form page",
        "targets": [
            "ms.vss-work-web.work-item-form"
        ],
        "properties": {
            "name": "My Page",
            "uri": "workItemPage.html"
        } 
    }
]

Tulajdonságok

Tulajdonság Leírás
név A lapon megjelenő szöveg.
Uri URI egy olyan lapra, amely a munkaelem űrlapján és szkriptjeiben megjelenő HTML-t tárolja.

JavaScript-minta

Tekintse meg a JavaScript-mintát az űrlapcsoport szakaszában. A regisztrált objektum nevének meg kell egyeznie a id hozzájárulás nevével.

esemény

Esemény Esemény leírása Argumentum Argumentum leírása
onFieldChanged Egy mező módosítása után aktiválódott. Ha a mezőmódosítás olyan szabályokat futtatott, amelyek más mezőket frissítettek, ezek a módosítások egyetlen esemény részét képezik. ID (Azonosító) A munkaelem azonosítója.
changedFields Tömb az összes módosított mező hivatkozási nevével. ID (Azonosító) A munkaelem azonosítója.
be van töltve Miután az adatok betöltésre kerülnek a munkaeleműrlapra, amikor a felhasználó megnyit egy munkaelemet, vagy amikor a felhasználó egy másik munkaelemhez navigál a triázs nézetben. ID (Azonosító) A munkaelem azonosítója.
onReset Azután aktiválódott, hogy a felhasználó visszavonta a munkaelem módosításait. ID (Azonosító) A munkaelem azonosítója.
onRefreshed Azután aktiválódott, hogy a felhasználó manuálisan frissítette a munkaelemet. ID (Azonosító) A munkaelem azonosítója.
onSaved A munkaelem mentése után aktiválódott. A párbeszédpanel munkaelemei esetében az "ms.vss-work-web.work-item-notifications" típust kell megcélolnia, hogy az esemény aktiválódik, mivel a párbeszédpanel bezárása után ez a hozzájárulástípus ki lesz ürítve. További információ: Események figyelése. ID (Azonosító) A munkaelem azonosítója.
onUnloaded Aktiválva, mielőtt a felhasználó bezárja a párbeszédpanelt, vagy mielőtt a felhasználó átáll egy másik munkaelemre a Triage nézetben. ID (Azonosító) A munkaelem azonosítója.

Hozzájárulások konfigurálása a munkaelem-űrlapon

Az Azure DevOps Servicesben alapértelmezés szerint a csoportbővítmények az űrlap második oszlopának végén jelennek meg, az oldalbedolgozások pedig az összes munkaelem űrlaplapja után lapként jelennek meg. A vezérlőelem-hozzájárulások alapértelmezés szerint nem jelennek meg az űrlapon, ezért a felhasználóknak manuálisan kell hozzáadniuk őket az űrlaphoz. Az Azure DevOps Serverben a munkaeleműrlap vezérlőelemeinek, csoportosítási és oldalbedolgozásainak megjelenítéséhez/elrejtéséhez vagy áthelyezéséhez lásd: Munkaelem-űrlapbővítmények konfigurálása.

Menüművelet hozzáadása

Elem hozzáadása a munkaelem eszköztárához.

Ha elemet szeretne hozzáadni a munkaelem eszköztárához, vegye fel ezt a hozzájárulást a bővítményjegyzékbe. Az elem megjelenik a... legördülő lista a munkaelem űrlap jobb felső sarkában.

"contributions": [
   {  
      "id": "sample-work-item-menu",  
      "type": "ms.vss-web.action",  
      "description": "Sample toolbar item which updates the title of a work item",  
      "targets": [  
          "ms.vss-work-web.work-item-context-menu"  
      ],  
      "properties": {  
          "text": "Try me!",  
          "title": "Updates the title of the work item from the extension",  
          "toolbarText": "Try me!",  
          "icon": "images/show-properties.png",  
          "uri": "menu-workItemToolbarButton.html"  
      }  
   }
]

Tulajdonságok

Tulajdonság Leírás
text Az eszköztárelemen megjelenő szöveg.
Cím Elemleírás szöveg, amely a menüelemen jelenik meg.
toolbarText Az elem rámutatásakor megjelenő szöveg.
Uri URI az eszköztár-műveletkezelőt regisztráló lapra.
Ikon A menüelemen megjelenő ikon URL-címe. A relatív URL-címek feloldása a baseUri használatával történik.
csoport Meghatározza, hogy hol jelenik meg a menüelem másokkal kapcsolatban. Az azonos csoportnévvel rendelkező eszköztárelemek a többi elemtől származó elválasztóval vannak csoportosítva és elosztva.
registeredObjectId (Nem kötelező) A regisztrált menü műveletkezelőjének neve. A hozzájárulás azonosítójának alapértelmezett értéke.

Események figyelése

Ha megfigyelőt szeretne hozzáadni a munkaelemhez, amely figyeli a munkaelem eseményeit, vegye fel ezt a hozzájárulást a bővítményjegyzékbe. A munkaelem-űrlapon nincsenek vizualizációk a megfigyelők számára. Ez a legjobb módja annak, hogy meghallgatja a munkaelem-űrlapot a Mentett eseményen, mivel a megfigyelő az űrlapon kívül él, és nem pusztul el, amikor az űrlap bezárul, ami közvetlenül a mentés után történhet.

"contributions": [
   {  
       "id": "sample-work-item-form-observer",
       "type": "ms.vss-work-web.work-item-notifications",
       "description": "Gets events about the current work item form for the 'Try Me!' toolbar button",
       "targets": [
           "ms.vss-work-web.work-item-form"
       ],
       "properties": {
           "uri": "myformobserver.html"
       }
   }
]

Tulajdonságok

Tulajdonság Leírás
Uri URI egy olyan lapra, amelyen a szkriptek eseményeket figyelnek.

esemény

Esemény Esemény leírása Argumentum Argumentum leírása
onFieldChanged Egy mező módosítása után aktiválódott. Ha a mezőmódosítás olyan szabályokat futtatott, amelyek más mezőket frissítettek, ezek a módosítások egyetlen esemény részét képezik. ID (Azonosító) A munkaelem azonosítója.
changedFields Tömb az összes módosított mező hivatkozási nevével. ID (Azonosító) A munkaelem azonosítója.
be van töltve Miután az adatok betöltésre kerülnek a munkaeleműrlapra, amikor a felhasználó megnyit egy munkaelemet, vagy amikor a felhasználó egy másik munkaelemhez navigál a triázs nézetben. ID (Azonosító) A munkaelem azonosítója.
onReset Azután aktiválódott, hogy a felhasználó visszavonta a munkaelem módosításait. ID (Azonosító) A munkaelem azonosítója.
onRefreshed Azután aktiválódott, hogy a felhasználó manuálisan frissítette a munkaelemet. ID (Azonosító) A munkaelem azonosítója.
onSaved A munkaelem mentése után aktiválódott. A párbeszédpanel munkaelemei esetében az "ms.vss-work-web.work-item-notifications" típust kell megcélolnia, hogy az esemény aktiválódik, mivel a párbeszédpanel bezárása után ez a hozzájárulástípus ki lesz ürítve. További információ: Események figyelése. ID (Azonosító) A munkaelem azonosítója.
onUnloaded Aktiválva, mielőtt a felhasználó bezárja a párbeszédpanelt, vagy mielőtt a felhasználó átáll egy másik munkaelemre a Triage nézetben. ID (Azonosító) A munkaelem azonosítója.

HTML/JavaScript-minta

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Work item extension page sample</title>
</head>

<body>
    <script src="sdk/scripts/SDK.js"></script>

    <script>
        SDK.init({
            usePlatformScripts: true
        });
        
        SDK.ready(function () {
             // Register a listener for the work item page contribution.
            SDK.register(SDK.getContributionId(), function () {
                return {
                    // Called when the active work item is modified
                    onFieldChanged: function(args) {
                        
                    },
                    
                    // Called when a new work item is being loaded in the UI
                    onLoaded: function (args) {
            
                    },
                    
                    // Called when the active work item is being unloaded in the UI
                    onUnloaded: function (args) {
            
                    },
                    
                    // Called after the work item has been saved
                    onSaved: function (args) {
            
                    },
                    
                    // Called when the work item is reset to its unmodified state (undo)
                    onReset: function (args) {
            
                    },
                    
                    // Called when the work item has been refreshed from the server
                    onRefreshed: function (args) {
            
                    }
                }
            });    
        });
     </script>
</body>
</html>    

Változások a New Boards Hub használatával

Feljegyzés

Az új Boards Hub jelenleg előzetes verzióban érhető el, de 2024-ben mindenki számára elérhető lesz. Határozottan javasoljuk, hogy azonnal engedélyezze a New Boards Hubot, és tesztelje a belső bővítményeket.

A legújabb SDK-k használata

Győződjön meg arról, hogy a bővítmény az Azure-devops-extension-sdk legújabb verzióját használja

Az új SDK használatakor az azure-devops-extension-api csomagot is használnia kell REST API-khoz. Minden sprintben frissítjük a metódusokat és a felületeket, hogy az tartalmazza a legújabb funkciókat.

Mikor érdemes művelet- vagy műveletszolgáltatót használni?

A menüelemek getMenuItems dinamikus betöltésekor használja ms.vss-web.action-provider a menükezelőt. Kerülje a használatot ms.vss-web.action-provider , ha a menüelemek statikusak és a jegyzékben vannak definiálva. Ehelyett ms.vss-web.action azt kell használni.

A csomag megkövetelése("VSS/Events/Document") már nem támogatott

require("VSS/Events/Document") az importálás a New Boards Hub esetében már nem támogatott.