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:
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.
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
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