Добавьте расширения в форму рабочего элемента

Azure DevOps Server | Azure DevOps Server 2022

Подсказка

Для получения последних рекомендаций по разработке расширений, включая темизацию и миграцию из VSS.SDK, смотрите на портале разработчика пакета SDK для расширений Azure DevOps.

Это важно

Эта статья относится только к Azure DevOps Server (локально). Для Azure DevOps Services настройки форм рабочих элементов производится, используя модель процесса наследования.

Тип рабочего элемента можно экспортировать в формате XML с помощью witadmin средства, включающего макет формы рабочего элемента. В этом примере мы добавляем в макет страницы, группы и элементы управления. Мы также добавим элемент управления в тип рабочего элемента Agile "История пользователя". Дополнительные сведения см. в справочнике по XML WebLayout.

Добавление расширения в форме рабочего элемента

  1. Установите расширения формы рабочего элемента в Azure DevOps Server.

  2. Developer Command PromptОткройте файл . Экспорт xml-файла на рабочий стол с помощью следующей команды.

    witadmin exportwitd /collection:CollectionURL /p:Project /n:TypeName /f:FileName
    

    Файл создается в указанном каталоге.

  3. В этом файле перейдите в раздел WebLayout . В разделе WebLayout комментарий указывает, какие инсталлированные расширения предназначены для форм рабочих элементов в вашей коллекции. Для каждого расширения все его вклады формы перечислены с их идентификаторами и входными данными (если это вклад элемента управления). В следующем примере комментарий показывает расширение color-control-dev , установленное в коллекции. Расширение имеет один контрольный элемент, который принимает два входа.

         <!--**********************************Work Item Extensions***************************
    
     Extension:
         Name: color-control-dev
         Id: example.color-control-dev
    
         Control contribution:
             Id: example.color-control-dev.color-control-contribution
             Description:
             Inputs:
                 Id: FieldName
                 Description: The field associated with the control.
                 Type: Field
                 IsRequired: true
    
                 Id: Colors
                 Descriptions: The colors that match the values in the control.
                 Type: String
                 IsRequired: false
    
  4. Найдите идентификатор расширения в разделе "Расширения рабочих элементов ":

         <!--**********************************Work Item Extensions*************************** 
    
     Extension:
         Name: color-control-dev
         Id: example.color-control-dev
         ...
    
  5. Добавьте тег расширения под разделом "Расширения рабочих элементов ", как показано ниже, чтобы сделать расширение доступным для формы рабочего элемента. Чтобы поместить вклад в форму, его расширение должно быть указано в Extensions разделе.

         <!--**********************************Work Item Extensions***************************
         ...
    
         Note: For more information on work item extensions use the following topic:
         https://go.microsoft.com/fwlink/?LinkId=816513
         -->
    
         <Extensions>
             <Extension Id="example.color-control-dev" />
         </Extensions>
    
  6. Указание расширений в XML автоматически помещает как элементы страницы, так и группы, определенные в расширениях, внутрь формы. Вы можете переместить вклад в приведенные ниже примеры.

Добавить вклад на страницу

    <Page Id="Details">
    <PageContribution Id="<page contribution id>" />
    ...       

Добавить вклад в группу

    <Page Id="Details">
    ...
        <Section>
        ...
            <GroupContribution Id="<group contribution id>" />
            ...

Вклад страницы и вклад группы не могут принимать другие элементы макета.

Добавить вклад управления

В отличие от вкладов для страниц и групп, указание расширений в xml-файле не помещает автоматически элементы управления. Чтобы добавить эти вклады в форму, добавьте их с тегом вклада внутри формы. В следующем примере элемент ControlContribution добавляется в группу планирования .

Если вклад элемента управления имеет необходимые входные данные, пользователи должны дать значение для этого ввода. Для любых не обязательных входных данных пользователи могут решить, следует ли задать для входных данных значение. В следующем примере устанавливаются входные данные FieldName и Colors.

    <Page Id="Details">
    ...
        <Section>
        ...
            <Group Id="Planning">
            ...
                <ControlContribution Label="Priority" Id="example.color-control-dev.color-control-contribution">
                    <Inputs>
                        <Input Id="FieldName" Value="Microsoft.Azure DevOps Services.Common.Priority" />
                        <Input Id="Colors" Value="red;green" />
                    </Inputs>
                </ControlContribution>

                <Control Label="Risk" Type="FieldControl" FieldName="Microsoft.Azure DevOps Services.Common.Risk" />
  1. Импортируйте этот XML-файл с помощью witadmin.

    witadmin importwitd /collection:CollectionURL /p:Project /f:FileName

Расширение настроено с помощью формы рабочего элемента!