Menü eylemi ekleme

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Bu örnekte, iş öğesi sorguları hub'ında sorgu bağlam menüsüne bir eylem ekleyeceğiz.

Bahşiş / İpucu

En son uzantı geliştirme kılavuzu için, temalandırma ve VSS.SDK'dan geçiş dahil, Azure DevOps Uzantısı SDK geliştirici portalına bakın.

Önkoşullar

Uzantı bildirimini güncelleştirme

Eyleminizi uzantı bildiriminizin katkılar bölümüne ekleyin.

...
    "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"
            }
        }
    ]
...

Özellikler

Mülk Açıklama
Metin Menü öğesinde görüntülenen metin.
başlık Menü öğesinde görüntülenen araç ipucu metni.
ikon Menü öğesinde görünen simgenin URL'si. Göreli URL'ler baseUri kullanılarak çözümlenir.
grupKimliği Bu menü öğesinin diğerlerine göre nerede görüneceğini belirler.
uri Menü eylem işleyicisini kaydeden bir sayfaya URI (aşağıya bakın).
kayıtlıNesneKimliği (İsteğe bağlı) Kayıtlı menü eylem işleyicisinin adı. Varsayılan olarak katkı sağlayan kimliği kullanır.

Genişletilebilirlik noktalarına eylem ekleyebileceğiniz tüm yerler hakkında bilgi edinin.

HTML sayfanız

Menü eyleminiz, HTML dosyasına eklenmiş bir JavaScript betiğiyle temsil edilir. Aşağıdaki içeriği uzantınızın bildirim dosyasındaki başvuruyla eşleşen bir dosyaya ve konuma kaydedin.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Action Sample</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script>
    <script>
        window.requirejs.config({
            enforceDefine: true,
            paths: {
                'SDK': './lib/SDK.min'
            }
        });
        window.requirejs(['SDK'], function (SDK) {
            SDK.init();
            SDK.ready().then(() => {
                // Register the menu action handler
                SDK.register(SDK.getContributionId(), {
                    execute: function (actionContext) {
                        alert("Hello, world");
                    }
                });
            });
        });
    </script>
</head>
<body>
    <div>
        The end user doesn't see the content on this page.
        It runs in the background to handle the contributed menu item being selected.
    </div>
</body>
</html>

Sonraki adım

Uzantınızı paketleyip yayımlayın ve yükleyin.