Delen via


Voortgang van bewerkingen weergeven in een Windows Azure Pack Management Portal-extensie

 

Van toepassing op: Windows Azure Pack

Als een door de gebruiker geïnitieerde bewerking enige tijd in beslag neemt, wordt u aangeraden ProgressOperation te gebruiken om de gebruikersinterface van de beheerportal niet te blokkeren, maar de gebruiker nog steeds toe te staan te zien dat de bewerking wordt voortgezet. Een ProgressOperation heeft verschillende opties waarmee u de gebruiker op de hoogte kunt houden van de bewerking. Elk van deze opties kan onafhankelijk van elkaar worden gebruikt.

Voortgangsbewerkingen kunnen worden bepaald. U kunt zien hoe de bewerking is voltooid, bijvoorbeeld de bewerking kan de waarde van het percentage voltooid rapporteren. Ze kunnen ook onbepaald zijn. U weet dat de bewerking wel of niet is voltooid, maar niet hoe dicht het bij een van beide statussen ligt.

ProgressOperation heeft een onbepaalde eigenschap die aan de gebruiker aanroept dat er wel of niet de voortgang naar voltooiing wordt gerapporteerd.

Een bewerking kan bestaan uit een reeks afzonderlijke stappen, die elk kunnen slagen of mislukken. Wanneer er een fout optreedt, wordt verdere voortgang in de bewerking gestopt. Wanneer bewerkingen stappen hebben, wordt de knop Details weergegeven:

Windows Azure Pack Portal Step Details Selection

Als u erop klikt, worden de afzonderlijke stappen weergegeven, met afzonderlijke statussen zoals geslaagd, mislukken of waarschuwing: zie de methoden addStep/removeStep in ProgressOperation voor meer informatie.

Windows Azure Pack Portal Operataion Steps

Een voorbeeld van een voortgangsbewerking bevindt zich in het voorbeeld van een wizard. Met de functie onComplete van de wizard wordt een voortgangsbewerking ingesteld die wordt weergegeven wanneer de serverbewerking is voltooid.

Voortgang van een bewerking in een wizard weergeven

  1. Gebruik de volgende code om de voortgang in een wizard weer te geven.

    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" 
      });
    

Zie ook

Algemene taken uitvoeren in een Windows Azure Pack Management Portal-extensie