Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Az egyéni vezérlők segítségével módosíthatja, hogy a felhasználók hogyan tekinthetik meg és kezelhetik a munkaelem-űrlapon lévő mezőket. Az alábbi cikk bemutatja, hogyan készült ez a minta egyéni vezérlő. Ez a cikk bemutatja, hogyan hozhat létre saját egyéni vezérlőt.
Tipp.
A legújabb bővítményfejlesztési útmutatásért, beleértve a témázást és a VSS.SDK-ből való migrálást, lásd az Azure DevOps Extension SDK fejlesztői portálját.
Előfeltételek
Az azure-devops-extension-sdk belefoglalása a projektbe:
Telepítse az SDK-t npm használatával:
npm install azure-devops-extension-sdk.Inicializálja a JavaScript-kódban:
import * as SDK from "azure-devops-extension-sdk"; SDK.init();
A vezérlő hozzájárulás hozzáadása
Adj hozzá egy hozzájárulást a bővítményjegyzékhez a ms.vss-work-web.work-item-form-control típus megcélzásával ms.vss-work-web.work-item-form:
"contributions": [
{
"id": "sample-work-item-form-control",
"type": "ms.vss-work-web.work-item-form-control",
"description": "Custom work item form control",
"targets": [
"ms.vss-work-web.work-item-form"
],
"properties": {
"name": "My Control",
"uri": "workItemControl.html",
"height": 600
}
}
],
"manifestVersion": 1.0,
"scopes": [
"vso.work"
]
A munkaelem űrlapján egy egyéni vezérlő töltődik be IFrame-ben.
Vezérlőtulajdonságok
| Tulajdonság | Leírás |
|---|---|
name |
A csoportban megjelenő szöveg. |
uri |
URI az IFrame-ben betöltött HTML-lapra. |
height |
(Nem kötelező) Az IFrame magassága képpontban. Az alapértelmezett érték 50. |
inputs |
A felhasználók által megadott értékek, amikor hozzáadják a vezérlőt az űrlaphoz. |
Az IFrame dinamikus átméretezéséhez használja az resize SDK metódusát.
Az egyéni vezérlő egy olyan hozzájárulás, amely hasonló a csoport- és oldal-hozzájárulásokhoz. A fő különbség az, hogy a vezérlőelem-hozzájárulások elfogadják a felhasználói bemeneteket, míg a csoport- és oldalbemenetek nem.
Hozzájárulási bemenetek szabályozása
inputs A hozzájárulási objektum tulajdonságával konfigurálható bemeneteket határozhat meg a vezérlőhöz.
Az alábbi példa két bemenetet határoz meg: FieldName meghatározza, hogy melyik munkaelemmezőhöz van társítva a vezérlő, és Colors konfigurálja, hogy mely színek feleljenek meg a mezőértékeknek. A felhasználók ezeket az értékeket akkor adják meg, amikor hozzáadják a vezérlőt az űrlaphoz, és az értékeket a rendszer betöltési időben továbbítja a vezérlőnek.
"inputs": [
{
"id": "FieldName",
"description": "The field associated with the control.",
"type": "WorkItemField",
"properties": {
"workItemFieldTypes": ["String"]
},
"validation": {
"dataType": "String",
"isRequired": true
}
},
{
"id": "Colors",
"description": "The colors that match the values in the control.",
"type": "string",
"validation": {
"dataType": "String",
"isRequired": false
}
}
]
Bemeneti tulajdonságok
A következő tulajdonságok határoznak meg egy felhasználói bemenetet:
| Tulajdonság | Leírás |
|---|---|
| azonosító | A bemenet egyedi azonosítója. |
| leírás | A bemenet rövid leírása. |
| type | (Nem kötelező) Bemeneti típus. Annak WorkItemField jelzésére szolgál, hogy az értéknek egy munkaelem-mező hivatkozási nevének kell lennie. |
| tulajdonságok | (Nem kötelező) Egyéni tulajdonságok. A workItemFieldTypes-t használva korlátozhatja, hogy mely mezőtípusok érvényesek (például String, Integer, DateTime, Boolean). |
| Érvényesítés | Érvényesítési szabályok. Beállítás dataType (String, , Number, Booleanvagy Field) és isRequired (true vagy false). |
workItemFieldTypes Támogatott értékek: String, Integer, DateTime, PlainText, HTML, TreePath, History, Double, Guid, Boolean, Identity, PicklistStringPicklistIntegerPicklistDouble, .
JavaScript-minta
Az egyéni vezérlőbővítmények úgy működnek, mint egy csoport- vagy oldalbővítmény, azzal a kiegészítéssel, hogy beolvassa a felhasználói bemeneti értékeket SDK.getConfiguration().witInputs. Az alábbi minta regisztrál egy szolgáltatót, amely válaszol a munkaelem-űrlapeseményekre:
import { Control } from "control";
import * as SDK from "azure-devops-extension-sdk";
import * as ExtensionContracts from "azure-devops-extension-api/WorkItemTracking/WorkItemTracking";
let control;
const provider = () => {
return {
onLoaded: (workItemLoadedArgs) => {
// create the control
const config = SDK.getConfiguration();
const fieldName = config.witInputs["FieldName"];
const colors = config.witInputs["Colors"];
control = new Control(fieldName, colors);
},
onFieldChanged: (fieldChangedArgs) => {
const changedValue = fieldChangedArgs.changedFields[control.getFieldName()];
if (changedValue !== undefined) {
control.updateExternal(changedValue);
}
}
};
};
SDK.init();
SDK.ready().then(() => {
SDK.register(SDK.getContributionId(), provider);
});
Az alábbi képernyőképen egy minta egyéni munkaelem-vezérlő látható a Prioritás mezőhöz.