VSTS Dashboard Widget getWorkItem необязательный параметр раскрыть - PullRequest
0 голосов
/ 10 мая 2018

Я пишу виджет панели инструментов VSTS, используемый для Отслеживание рабочих элементов

Однако я сталкиваюсь с проблемой при использовании функции getWorkItem ().Я хочу получить идентификаторы всех функций под данным Epic (я уже знаю эпический ID).Я уверен, что если я установлю для expand paremeter getWorkItem () значение «All», я получу список всех функций и их идентификаторов.К сожалению, я не знаю, как определить «тип» параметра расширения и как правильно передать его как значение в функцию getWorkItem ().

Вот мой код:

VSS.require(["VSS/Service", "TFS/Dashboards/WidgetHelpers", "TFS/WorkItemTracking/RestClient"],
        function (VSS_Service, WidgetHelpers, TFS_Wit_WebApi) {
            WidgetHelpers.IncludeWidgetStyles();
            VSS.register("myapp", function () {
                var fetchData = function (widgetSettings) {
                    const epicID = 123456;
                    // Get a WIT client to make REST calls to VSTS
                    return VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient).getWorkItem(123456, null, null, All).
                        then(
                            //Successful retrieval of workItems
                            function (workItems) {
                                $('#myText').text(JSON.stringify(workItems));
                                console.log(workItems);
                                // Use the widget helper and return success as Widget Status
                                return WidgetHelpers.WidgetStatusHelper.Success();
                            },
                            function (error) {
                                // Use the widget helper and return failure as Widget Status
                                return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
                            });
                }

Вот справочник VSTS для раскрыть Он объясняет, что значения могут быть, но не говорит, как передать его в функцию getWorkItem ().

Я бы хотелустановить необязательный параметр расширения для функции «Все», но не знаю его тип и как его правильно определить и использовать.

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Использование перечисления хорошо, но вы также можете передать значение из модуля 'TFS / WorkItemTracking / Contracts'.Вы можете найти ссылку здесь (показывает путь к модулю, класс и перечисления):

Ссылка выше взята из TFSСправочник по API WorkItemTracking, который можно найти здесь:

Вот как вы можете добавить его в свой код:

  1. Объявите модуль 'TFS / WorkItemTracking / Contracts'
  2. Передайте модуль в функцию обратного вызова (в приведенном ниже примере '_Contracts')
  3. При необходимости используйте _Contracts

Вот ваш код, обновленный для использования модуля Контракты:

VSS.require([
    "VSS/Service", 
    "TFS/Dashboards/WidgetHelpers", 
    "TFS/WorkItemTracking/RestClient",
    "TFS/WorkItemTracking/Contracts"],
    function (VSS_Service, WidgetHelpers, TFS_Wit_WebApi, _Contracts) {

    WidgetHelpers.IncludeWidgetStyles();
    VSS.register("myapp", function () {
        var fetchData = function (widgetSettings) {
            const epicID = 123456;
            // Get a WIT client to make REST calls to VSTS
            return VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient).
                getWorkItem(123456, null, null, _Contracts.WorkItemExpand.All).
                then(
                    //Successful retrieval of workItems
                    function (workItems) {
                        $('#myText').text(JSON.stringify(workItems));
                        console.log(workItems);
                        // Use the widget helper and return success as Widget Status
                        return WidgetHelpers.WidgetStatusHelper.Success();
                    },
                    function (error) {
                        // Use the widget helper and return failure as Widget Status
                        return WidgetHelpers.WidgetStatusHelper.Failure(error.message);
                    });
        }
    });
});

Надеюсь, это поможет!

0 голосов
/ 11 мая 2018

Исходя из исходного кода , это перечисление, поэтому вы можете указать целое число (например, 4) в функции getWorkItem.

export enum WorkItemExpand {
    None = 0,
    Relations = 1,
    Fields = 2,
    Links = 3,
    All = 4,
}
...