Page 2508 Extension Deployment Status in 24

App
System Application
Namespace
System.Apps
Source table
2000000200

Versions171819202122232425262728latest

Source242526272829

Source in 24

src/System Application/App/Extension Management/src/ExtensionDeploymentStatus.Page.al135 lines, Copyright (c) Microsoft Corporation. MIT

// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------

namespace System.Apps;

/// <summary>
/// Displays the deployment status for extensions that are deployed or are scheduled for deployment.
/// </summary>
page 2508 "Extension Deployment Status"
{
    Extensible = false;
    Editable = false;
    PageType = List;
    RefreshOnActivate = true;
    SourceTable = "NAV App Tenant Operation";
    ContextSensitiveHelpPage = 'ui-extensions';
    Permissions = tabledata "Nav App Tenant Operation" = r;
    UsageCategory = Administration;
    ApplicationArea = All;
    Caption = 'Extension Installation Status';

    layout
    {
        area(Content)
        {
            repeater(Group)
            {
                field(Name; AppName)
                {
                    ApplicationArea = All;
                    Caption = 'Name';
                    ToolTip = 'Specifies the name of the app.';
                }
                field(Publisher; AppPublisher)
                {
                    ApplicationArea = All;
                    Caption = 'Publisher';
                    ToolTip = 'Specifies the name of the app Publisher.';
                }
                field("Operation Type"; OperationType)
                {
                    ApplicationArea = All;
                    Caption = 'Operation Type';
                    ToolTip = 'Specifies the deployment type.';
                    OptionCaption = 'Upload,Install';
                }
                field(Status; Rec.Status)
                {
                    ApplicationArea = All;
                    Caption = 'Status';
                    ToolTip = 'Specifies the deployment status.';
                }
                field(Schedule; DeploymentSchedule)
                {
                    ApplicationArea = All;
                    Caption = 'Schedule';
                    ToolTip = 'Specifies the deployment schedule.';
                    Width = 12;
                }
                field(AppVersion; Version)
                {
                    ApplicationArea = All;
                    Caption = 'App Version';
                    ToolTip = 'Specifies the version of the app.';
                    Width = 6;
                }
                field("Started On"; Rec."Started On")
                {
                    ApplicationArea = All;
                    Caption = 'Started Date';
                    ToolTip = 'Specifies the deployment start date.';
                }
            }
        }
    }

    actions
    {
        area(Processing)
        {
            action(View)
            {
                ApplicationArea = All;
                ToolTip = 'Specifies the status of the deployment.';
                Image = View;
                Scope = Repeater;
                ShortcutKey = 'Return';
                Visible = false;

                trigger OnAction()
                var
                    ExtnDeploymentStatusDetail: Page "Extn Deployment Status Detail";
                begin
                    ExtnDeploymentStatusDetail.SetRecord(Rec);
                    ExtnDeploymentStatusDetail.SetOperationRecord(Rec);
                    ExtnDeploymentStatusDetail.Update();
                    ExtnDeploymentStatusDetail.Run();
                end;
            }
        }
    }

    trigger OnAfterGetRecord()
    var
        ExtensionOperationImpl: Codeunit "Extension Operation Impl";
    begin
        if Rec."Operation Type" = 0 then
            OperationType := OperationType::Install
        else
            OperationType := OperationType::Upload;

        ExtensionOperationImpl.GetDeployOperationInfo(Rec."Operation ID", Version, DeploymentSchedule, AppPublisher, AppName, Rec.Description);

        if Rec.Status = Rec.Status::InProgress then
            ExtensionOperationImpl.RefreshStatus(Rec."Operation ID");
    end;

    trigger OnOpenPage()
    begin
        Rec.SetCurrentKey("Started On");
        Rec.Ascending(false);
    end;

    var
        Version: Text;
        DeploymentSchedule: Text;
        AppPublisher: Text;
        AppName: Text;
        OperationType: Option Upload,Install;
}