Jak zobrazit průběh operace v rozšíření portálu pro správu sady Azure Pack Windows
Platí pro: Windows Azure Pack
Pokud zpracování operace iniciované uživatelem nějakou dobu trvá, doporučuje se použít ProgressOperation, abyste nezablokovali uživatelské rozhraní portálu pro správu, ale přesto uživateli umožnili zjistit, že operace probíhá. A ProgressOperation má několik možností, které vám umožní udržovat uživatele informovaný o operaci. Každá z těchto možností se může používat nezávisle na sobě.
Operace průběhu můžou být determinovat. Můžete zjistit, jak je operace dokončena, například že operace může hlásit procentuální hodnotu dokončení. Alternativně mohou být neurčité. Víte, že operace je nebo není dokončená, ale ne jak blízko je v obou stavech.
ProgressOperation má neurčitou vlastnost, která naznačuje uživateli, že existuje, nebo není, bude hlášen průběh dokončení.
Operace může být tvořena posloupností jednotlivých kroků, z nichž každá může být úspěšná nebo neúspěšná. Pokud dojde k selhání jakéhokoli dalšího pokroku v operaci, zastaví se. Když operace mají kroky, zobrazí se tlačítko Podrobnosti :
Po kliknutí se zobrazí jednotlivé kroky s jednotlivými stavy, jako je úspěch, selhání nebo upozornění: Podrobnosti najdete v metodách addStep / removeStep v ProgressOperation.
Příklad operace průběhu je obsažen v ukázce průvodce. Funkce průvodce onComplete nastaví operaci průběhu, která se zobrazí po dokončení operace serveru.
Zobrazení průběhu operace v průvodci
Pomocí následujícího kódu můžete zobrazit průběh v průvodci.
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" });
Viz také
Provádění běžných úloh v rozšíření portálu pro správu sady Azure Pack Windows