Compartilhar via


Como mostrar o progresso da operação em uma extensão do portal de gerenciamento do Azure Pack Windows

 

Aplica-se a: Windows Azure Pack

Se uma operação iniciada pelo usuário demorar um pouco para ser processada, é recomendável que você use ProgressOperation para não bloquear a interface do usuário do portal de gerenciamento, mas ainda permitir que o usuário veja que a operação está em andamento. Um ProgressOperation tem várias opções para permitir que você mantenha o usuário informado sobre a operação. Cada uma dessas opções pode ser usada independentemente uma da outra.

As operações de progresso podem ser determinadas. Você pode informar o quão completa é a operação, por exemplo, que a operação pode relatar o valor de porcentagem completa. Como alternativa, eles podem ser indeterminados. Você sabe que a operação está ou não está concluída, mas não está perto de nenhum dos estados.

ProgressOperation tem uma propriedade indeterminada que indica ao usuário que há, ou não, o progresso relatado para a conclusão.

Uma operação pode ser composta por uma sequência de etapas individuais, cada uma delas pode ter êxito ou falhar. Quando ocorre falha, qualquer progresso adicional na operação é interrompido. Quando as operações tiverem etapas, um botão Detalhes será exibido:

Windows Azure Pack Portal Step Details Selection

Clicar nele revela as etapas individuais, com estados individuais, como êxito, falha ou aviso: consulte os métodos addStep/removeStep em ProgressOperation para obter detalhes.

Windows Azure Pack Portal Operataion Steps

Um exemplo de uma operação de progresso está contido na exibição de um exemplo do Assistente. A função onComplete do assistente configura uma operação de progresso para mostrar quando a operação do servidor for concluída.

Para mostrar o progresso de uma operação em um assistente

  1. Use o código a seguir para mostrar o progresso dentro de um Assistente.

    cdm.stepWizard({
        extension: "DomainTenantExtension",
        steps: [{
          template: "createStep1",
          data: data,
          // Called when the step is first created
          onStepCreated: function () {
            wizard = this;
          },
          // Called each time the step is displayed
          onStepActivate: step1Activate,
          // Called before the wizard moves to the next step
          onNextStep: function () {
            return Shell.UI.Validation.validateContainer("#dm-create-step1");
          }
        }],
        // Called when the user clicks the "Finish" button on the last step
        onComplete: function () {
          var newPassword, newResellerPortalUrl;
          newPassword = $("#dm-password").val();
          newResellerPortalUrl = registerReseller ? $("#dm-portalUrl").val() : null;
          // Call whatever backend function we need to. In our example, it returns a promise
          promise = callback(newPassword, newResellerPortalUrl);
    
          // Create a new Progress Operation object
          var progressOperation = new Shell.UI.ProgressOperation(
            // Title of operation
            "Registering endpoint...",
            // Initial status. null = default
            null,
            // Is indeterministic? (Does it NOT provide a % complete)
            true);
    
          // This adds the progress operation we set up earlier to the visible list of PrOp's
          Shell.UI.ProgressOperations.add(progressOperation);
    
          promise
            .done(function() {
               // When the operation succeeds, complete the progress operation
               progressOperation.complete(
                 "Successfully registered the endpoint.",
                 Shell.UI.InteractionSeverity.information);
               })
            .fail(function() {
               // When the operation fails, complete the progress operation
               progressOperation.complete(
                 "Failed to register the endpoint.",
                 Shell.UI.InteractionSeverity.error,
                 Shell.UI.InteractionBehavior.ok);
            });
        }
      },
      {
        // Other supported sized include large, medium & small
        size: "mediumplus" 
      });
    

Consulte Também

Executando tarefas comuns em um Windows extensão do Portal de Gerenciamento do Azure Pack