Page 8885 Email Activities in 27

App
System Application
Namespace
System.Email

Versions171819202122232425262728latest

Source242526272829

Source in 27

src/System Application/App/Email/src/Email/EmailActivities.Page.al110 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.Email;

/// <summary>
/// Provides information about the status of the emails.
/// </summary>
page 8885 "Email Activities"
{
    PageType = CardPart;
    Caption = 'Email Status';

    layout
    {
        area(Content)
        {
            cuegroup(OutboxCueContainer)
            {
                Caption = 'Email Activities';

                field("Failed Emails"; FailedOutboxEmails)
                {
                    ApplicationArea = Basic, Suite;
                    StyleExpr = OutboxCueStyle;
                    Caption = 'Failed Emails in Outbox';
                    ToolTip = 'Specifies the emails that were not successfully sent.';


                    trigger OnDrillDown()
                    var
                        OutboxPage: Page "Email Outbox";
                    begin
                        OutboxPage.SetEmailStatus(Enum::"Email Status"::Failed);
                        OutboxPage.Run();
                    end;
                }

                field("Draft Emails"; DraftOutboxEmails)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Draft Emails in Outbox';
                    ToolTip = 'Specifies the emails that are saved as drafts.';


                    trigger OnDrillDown()
                    var
                        OutboxPage: Page "Email Outbox";
                    begin
                        OutboxPage.SetEmailStatus(Enum::"Email Status"::Draft);
                        OutboxPage.Run();
                    end;
                }

                field("Sent Emails"; SentEmails)
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'Sent Emails Last 30 Days';
                    ToolTip = 'Specifies Sent Emails in the Last 30 Days';

                    trigger OnDrillDown()
                    var
                        SentEmailsPage: Page "Sent Emails";
                    begin
                        SentEmailsPage.SetNewerThan(PastDate);
                        SentEmailsPage.Run();
                    end;
                }
            }
        }
    }

    trigger OnAfterGetCurrRecord()
    var
        EmailAccountImpl: Codeunit "Email Account Impl.";
        TaskParameters: Dictionary of [Text, Text];
    begin
        PastDate := CreateDateTime(CalcDate('<-30D>', Today()), Time());
        TaskParameters.Add('PastDate', Format(PastDate));
        TaskParameters.Add('Admin', Format(EmailAccountImpl.IsUserEmailAdmin()));

        CurrPage.EnqueueBackgroundTask(EmailActivitiesTaskId, Codeunit::"Email Activities", TaskParameters, 60000, PageBackgroundTaskErrorLevel::Warning);
    end;

    trigger OnPageBackgroundTaskCompleted(TaskId: Integer; Results: Dictionary of [Text, Text])
    var
        EmailActivities: Codeunit "Email Activities";
    begin
        if TaskId = EmailActivitiesTaskId then begin
            Evaluate(SentEmails, Results.Get(EmailActivities.GetSentEmailsKey()));
            Evaluate(DraftOutboxEmails, Results.Get(EmailActivities.GetDraftEmailsKey()));
            Evaluate(FailedOutboxEmails, Results.Get(EmailActivities.GetFailedEmailsKey()));

            if FailedOutboxEmails = 0 then
                OutboxCueStyle := 'Favorable'
            else
                OutboxCueStyle := 'Unfavorable';
        end;
    end;

    var
        EmailActivitiesTaskId: Integer;
        FailedOutboxEmails: Integer;
        DraftOutboxEmails: Integer;
        SentEmails: Integer;
        PastDate: DateTime;
        OutboxCueStyle: Text;
}