diff --git a/src/System Application/App/.resources/images/AssistedSetup-NoText-400px.png b/src/System Application/App/.resources/images/AssistedSetup-NoText-400px.png new file mode 100644 index 0000000000..a1ead47250 Binary files /dev/null and b/src/System Application/App/.resources/images/AssistedSetup-NoText-400px.png differ diff --git a/src/System Application/App/.resources/images/AssistedSetupDone-NoText-400px.png b/src/System Application/App/.resources/images/AssistedSetupDone-NoText-400px.png new file mode 100644 index 0000000000..60f6f7d0bf Binary files /dev/null and b/src/System Application/App/.resources/images/AssistedSetupDone-NoText-400px.png differ diff --git a/src/System Application/App/.resources/images/AssistedSetupInfo-NoText.png b/src/System Application/App/.resources/images/AssistedSetupInfo-NoText.png new file mode 100644 index 0000000000..9d65a27236 Binary files /dev/null and b/src/System Application/App/.resources/images/AssistedSetupInfo-NoText.png differ diff --git a/src/System Application/App/.resources/images/CopilotNotAvailable.png b/src/System Application/App/.resources/images/CopilotNotAvailable.png new file mode 100644 index 0000000000..8365f0d8be Binary files /dev/null and b/src/System Application/App/.resources/images/CopilotNotAvailable.png differ diff --git a/src/System Application/App/AI/app.json b/src/System Application/App/AI/app.json index cc9675aba2..9a96875b30 100644 --- a/src/System Application/App/AI/app.json +++ b/src/System Application/App/AI/app.json @@ -71,6 +71,12 @@ "publisher": "Microsoft", "version": "26.0.0.0" }, + { + "id": "e31ad830-3d46-472e-afeb-1d3d35247943", + "name": "BLOB Storage", + "publisher": "Microsoft", + "version": "26.0.0.0" + }, { "id": "c64d75f0-e9f1-4d0f-9949-cd453b9b1466", "name": "Guided Experience", @@ -95,4 +101,4 @@ ], "target": "OnPrem", "contextSensitiveHelpUrl": "https://learn.microsoft.com/dynamics365/business-central/" -} +} \ No newline at end of file diff --git a/src/System Application/App/AI/src/Copilot/CopilotNotAvailable.Page.al b/src/System Application/App/AI/src/Copilot/CopilotNotAvailable.Page.al index 0732f778a8..2fdb53dc3f 100644 --- a/src/System Application/App/AI/src/Copilot/CopilotNotAvailable.Page.al +++ b/src/System Application/App/AI/src/Copilot/CopilotNotAvailable.Page.al @@ -5,6 +5,7 @@ namespace System.AI; using System.Environment; +using System.Environment.Configuration; /// /// Page for when copilot is unavailable due to various reasons. Fx capability disabled, cross region data movement is disabled. @@ -27,7 +28,7 @@ page 7771 "Copilot Not Available" ShowCaption = false; Visible = BannerVisible; - field(Banner; MediaResources."Media Reference") + field(Banner; TenantMediaSet."Media ID") { ApplicationArea = All; Editable = false; @@ -86,7 +87,7 @@ page 7771 "Copilot Not Available" end; var - MediaResources: Record "Media Resources"; + TenantMediaSet: Record "Tenant Media Set"; CopilotCapability: Enum "Copilot Capability"; BannerVisible: Boolean; OpenCopilotLbl: Label 'Overview Copilot & AI Capabilities'; @@ -104,8 +105,14 @@ page 7771 "Copilot Not Available" end; local procedure LoadBanner() + var + GuidedExperience: Codeunit "Guided Experience"; begin - if MediaResources.Get('COPILOTNOTAVAILABLE.PNG') then - BannerVisible := MediaResources."Media Reference".HasValue; + BannerVisible := GuidedExperience.LoadFileFromTenantMediaSet(TenantMediaSet, 'CopilotNotAvailable.png'); + + if not BannerVisible then begin + GuidedExperience.InsertSystemFileToTenantMediaSet(TenantMediaSet, 'images/', 'CopilotNotAvailable.png'); + BannerVisible := TenantMediaSet."Media ID".HasValue; + end; end; } \ No newline at end of file diff --git a/src/System Application/App/Edit in Excel/permissions/EditInExcelRead.PermissionSet.al b/src/System Application/App/Edit in Excel/permissions/EditInExcelRead.PermissionSet.al index 6cb748ac36..9b2a06eb99 100644 --- a/src/System Application/App/Edit in Excel/permissions/EditInExcelRead.PermissionSet.al +++ b/src/System Application/App/Edit in Excel/permissions/EditInExcelRead.PermissionSet.al @@ -14,5 +14,5 @@ permissionset 1481 "Edit in Excel - Read" IncludedPermissionSets = "Edit in Excel - Objects"; - Permissions = tabledata "Media Resources" = r; + Permissions = tabledata "Tenant Media Set" = r; } diff --git a/src/System Application/App/Edit in Excel/src/ExcelCentralizedDeplWizard.Page.al b/src/System Application/App/Edit in Excel/src/ExcelCentralizedDeplWizard.Page.al index 823b4180b7..5da82b8ec4 100644 --- a/src/System Application/App/Edit in Excel/src/ExcelCentralizedDeplWizard.Page.al +++ b/src/System Application/App/Edit in Excel/src/ExcelCentralizedDeplWizard.Page.al @@ -21,7 +21,7 @@ page 1480 "Excel Centralized Depl. Wizard" SourceTable = "Edit in Excel Settings"; Extensible = false; AccessByPermission = tabledata "Edit in Excel Settings" = M; - Permissions = tabledata "Media Resources" = r; + Permissions = tabledata "Tenant Media Set" = r; HelpLink = 'https://go.microsoft.com/fwlink/?linkid=2221526'; layout @@ -33,7 +33,7 @@ page 1480 "Excel Centralized Depl. Wizard" Editable = false; ShowCaption = false; Visible = TopBannerVisible; - field(NotDoneIcon; MediaResourcesStandard."Media Reference") + field(NotDoneIcon; TenantMediaSet."Media ID") { ApplicationArea = All; Editable = false; @@ -315,14 +315,15 @@ page 1480 "Excel Centralized Depl. Wizard" end; local procedure LoadTopBanners() + var + TenantMediaSetCompleted, TenantMediaSetInfo : Record "Tenant Media Set"; + GuidedExperience: Codeunit "Guided Experience"; begin - if MediaResourcesStandard.Get('ASSISTEDSETUP-NOTEXT-400PX.PNG') and (CurrentClientType() = ClientType::Web) - then - TopBannerVisible := MediaResourcesStandard."Media Reference".HasValue(); + TopBannerVisible := GuidedExperience.LoadTopBanners(TenantMediaSet, TenantMediaSetCompleted, TenantMediaSetInfo); end; var - MediaResourcesStandard: Record "Media Resources"; + TenantMediaSet: Record "Tenant Media Set"; TopBannerVisible: Boolean; Step: Option Start,Step2,Finish; BackActionEnabled: Boolean; diff --git a/src/System Application/App/Email/app.json b/src/System Application/App/Email/app.json index 1259057d5b..a8e262980e 100644 --- a/src/System Application/App/Email/app.json +++ b/src/System Application/App/Email/app.json @@ -112,6 +112,12 @@ "name": "Data Compression", "publisher": "Microsoft", "version": "26.0.0.0" + }, + { + "id": "c64d75f0-e9f1-4d0f-9949-cd453b9b1466", + "name": "Guided Experience", + "publisher": "Microsoft", + "version": "26.0.0.0" } ], "internalsVisibleTo": [ @@ -136,4 +142,4 @@ ], "target": "OnPrem", "contextSensitiveHelpUrl": "https://go.microsoft.com/fwlink/?linkid=2134520" -} +} \ No newline at end of file diff --git a/src/System Application/App/Email/permissions/EmailRead.PermissionSet.al b/src/System Application/App/Email/permissions/EmailRead.PermissionSet.al index 146967e63c..882d618b3c 100644 --- a/src/System Application/App/Email/permissions/EmailRead.PermissionSet.al +++ b/src/System Application/App/Email/permissions/EmailRead.PermissionSet.al @@ -33,7 +33,7 @@ permissionset 8900 "Email - Read" tabledata "Email View Policy" = r, tabledata Field = r, tabledata Media = r, // Email Account Wizard requires this - tabledata "Media Resources" = r, + tabledata "Tenant Media Set" = r, tabledata "Sent Email" = r, tabledata "Tenant Media" = r, tabledata User = R; diff --git a/src/System Application/App/Email/src/Account/EmailAccountWizard.Page.al b/src/System Application/App/Email/src/Account/EmailAccountWizard.Page.al index 4f6251618b..7703735f23 100644 --- a/src/System Application/App/Email/src/Account/EmailAccountWizard.Page.al +++ b/src/System Application/App/Email/src/Account/EmailAccountWizard.Page.al @@ -7,6 +7,7 @@ namespace System.Email; using System.Telemetry; using System.Environment; +using System.Environment.Configuration; using System.Apps; /// @@ -26,8 +27,7 @@ page 8886 "Email Account Wizard" Editable = true; ShowFilter = false; LinksAllowed = false; - Permissions = tabledata Media = r, - tabledata "Media Resources" = r, + Permissions = tabledata "Tenant Media Set" = r, tabledata "Email Rate Limit" = imd; layout @@ -40,7 +40,7 @@ page 8886 "Email Account Wizard" Editable = false; ShowCaption = false; Visible = not DoneVisible and TopBannerVisible; - field(NotDoneIcon; MediaResourcesStandard."Media Reference") + field(NotDoneIcon; TenantMediaSetStandard."Media ID") { ApplicationArea = All; Editable = false; @@ -54,7 +54,7 @@ page 8886 "Email Account Wizard" Editable = false; ShowCaption = false; Visible = DoneVisible and TopBannerVisible; - field(DoneIcon; MediaResourcesDone."Media Reference") + field(DoneIcon; TenantMediaSetCompleted."Media ID") { ApplicationArea = All; Editable = false; @@ -539,18 +539,16 @@ page 8886 "Email Account Wizard" end; local procedure LoadTopBanners() + var + GuidedExperience: Codeunit "Guided Experience"; begin - if MediaResourcesStandard.Get('ASSISTEDSETUP-NOTEXT-400PX.PNG') and - MediaResourcesDone.Get('ASSISTEDSETUPDONE-NOTEXT-400PX.PNG') and (CurrentClientType() = ClientType::Web) - then - TopBannerVisible := MediaResourcesDone."Media Reference".HasValue(); + TopBannerVisible := GuidedExperience.LoadTopBanners(TenantMediaSetStandard, TenantMediaSetCompleted, TenantMediaSetInfo); end; var RegisteredAccount: Record "Email Account"; RegisteredRateLimit: Record "Email Rate Limit"; - MediaResourcesStandard: Record "Media Resources"; - MediaResourcesDone: Record "Media Resources"; + TenantMediaSetStandard, TenantMediaSetCompleted, TenantMediaSetInfo : Record "Tenant Media Set"; [RunOnClient] AppSource: DotNet AppSource; Step: Option Welcome,"Choose Connector","Register Account",Done; diff --git a/src/System Application/App/Guided Experience/app.json b/src/System Application/App/Guided Experience/app.json index 00e78d213a..8db70efee3 100644 --- a/src/System Application/App/Guided Experience/app.json +++ b/src/System Application/App/Guided Experience/app.json @@ -88,6 +88,11 @@ "id": "4af62c1c-2f6d-4574-ba34-bb5c149cdf93", "name": "Guided Experience Test", "publisher": "Microsoft" + }, + { + "id": "d3433b68-4901-445f-9547-fdfeca57575a", + "name": "AI SDK", + "publisher": "Microsoft" } ], "screenshots": [], @@ -136,4 +141,4 @@ ], "target": "OnPrem", "contextSensitiveHelpUrl": "https://learn.microsoft.com/dynamics365/business-central/" -} +} \ No newline at end of file diff --git a/src/System Application/App/Guided Experience/permissions/GuidedExperienceEdit.PermissionSet.al b/src/System Application/App/Guided Experience/permissions/GuidedExperienceEdit.PermissionSet.al index 313b69dabd..01895d3a48 100644 --- a/src/System Application/App/Guided Experience/permissions/GuidedExperienceEdit.PermissionSet.al +++ b/src/System Application/App/Guided Experience/permissions/GuidedExperienceEdit.PermissionSet.al @@ -7,6 +7,7 @@ namespace System.Environment.Configuration; using System.Globalization; using System.Apps; +using System.Environment; permissionset 1993 "Guided Experience - Edit" { @@ -21,5 +22,7 @@ permissionset 1993 "Guided Experience - Edit" tabledata "Checklist Item User" = IMD, tabledata "Checklist Setup" = IMd, tabledata "Published Application" = imd, - tabledata "Spotlight Tour Text" = imd; + tabledata "Spotlight Tour Text" = imd, + tabledata "Tenant Media" = imd, + tabledata "Tenant Media Set" = imd; } diff --git a/src/System Application/App/Guided Experience/permissions/GuidedExperienceRead.PermissionSet.al b/src/System Application/App/Guided Experience/permissions/GuidedExperienceRead.PermissionSet.al index 321c9dad5a..e38282f681 100644 --- a/src/System Application/App/Guided Experience/permissions/GuidedExperienceRead.PermissionSet.al +++ b/src/System Application/App/Guided Experience/permissions/GuidedExperienceRead.PermissionSet.al @@ -35,5 +35,7 @@ permissionset 1991 "Guided Experience - Read" tabledata "Spotlight Tour Text" = r, tabledata User = r, tabledata "User Checklist Status" = R, - tabledata "User Personalization" = r; + tabledata "User Personalization" = r, + tabledata "Tenant Media" = r, + tabledata "Tenant Media Set" = r; } diff --git a/src/System Application/App/Guided Experience/permissions/GuidedExperienceView.PermissionSet.al b/src/System Application/App/Guided Experience/permissions/GuidedExperienceView.PermissionSet.al index f78058a28d..05438a641d 100644 --- a/src/System Application/App/Guided Experience/permissions/GuidedExperienceView.PermissionSet.al +++ b/src/System Application/App/Guided Experience/permissions/GuidedExperienceView.PermissionSet.al @@ -5,6 +5,7 @@ namespace System.Environment.Configuration; +using System.Environment; using System.Globalization; using System.Reflection; @@ -24,5 +25,7 @@ permissionset 1992 "Guided Experience - View" tabledata "Guided Experience Item" = imd, tabledata "Primary Guided Experience Item" = imd, tabledata "Spotlight Tour Text" = imd, - tabledata "User Checklist Status" = im; + tabledata "User Checklist Status" = im, + tabledata "Tenant Media" = im, + tabledata "Tenant Media Set" = im; } diff --git a/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperience.Codeunit.al b/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperience.Codeunit.al index 5bfe1c0f86..8070d0ce24 100644 --- a/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperience.Codeunit.al +++ b/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperience.Codeunit.al @@ -5,6 +5,7 @@ namespace System.Environment.Configuration; +using System.Environment; using System.Media; /// @@ -443,6 +444,37 @@ codeunit 1990 "Guided Experience" GuidedExperienceItemCleanup.CleanupOldGuidedExperienceItems(OnlyFirstParty, Threshold); end; + /// Loads Assisted Setup top banners from tenant media set. + /// Tenant Media set record by var for standard image. + /// Tenant Media set record by var for done image. + /// Tenant Media set record by var for info image. + /// True if the top banners are loaded successfuly + procedure LoadTopBanners(var TenantMediaSetStandard: Record "Tenant Media Set"; var TenantMediaSetCompleted: Record "Tenant Media Set"; var TenantMediaSetInfo: Record "Tenant Media Set"): Boolean + begin + exit(GuidedExperienceImpl.LoadTopBanners(TenantMediaSetStandard, TenantMediaSetCompleted, TenantMediaSetInfo)); + end; + + /// Loads an image from tenant media set. + /// Tenant Media set record by var for standard image. + /// Image name. + /// True if the the image is loaded successfuly + procedure LoadFileFromTenantMediaSet(var TenantMediaSet: Record "Tenant Media Set"; FileName: Text[250]): Boolean + var + begin + exit(GuidedExperienceImpl.LoadFileFromTenantMediaSet(TenantMediaSet, FileName)); + end; + + /// Insert an image to tenant media set from system app resources. + /// Tenant Media set record by var for standard image. + /// Path to file name. + /// File name. + /// True if the the image is loaded successfuly + internal procedure InsertSystemFileToTenantMediaSet(var TenantMediaSet: Record "Tenant Media Set"; FilePath: Text[100]; FileName: Text[250]) + var + begin + GuidedExperienceImpl.InsertSystemFileToTenantMediaSet(TenantMediaSet, FilePath, FileName); + end; + /// Notifies that the list of assisted setups is being gathered, and that new items might be added. [IntegrationEvent(false, false)] internal procedure OnRegisterAssistedSetup() diff --git a/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperienceImpl.Codeunit.al b/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperienceImpl.Codeunit.al index 0419b9aa9f..69c1bdae16 100644 --- a/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperienceImpl.Codeunit.al +++ b/src/System Application/App/Guided Experience/src/Guided Experience/GuidedExperienceImpl.Codeunit.al @@ -21,7 +21,9 @@ codeunit 1991 "Guided Experience Impl." Permissions = tabledata AllObj = r, tabledata "Guided Experience Item" = rimd, tabledata "Primary Guided Experience Item" = rimd, - tabledata "Spotlight Tour Text" = rimd; + tabledata "Spotlight Tour Text" = rimd, + tabledata "Tenant Media Set" = rim, + tabledata "Tenant Media" = rim; var TempBlob: Codeunit "Temp Blob"; @@ -569,6 +571,44 @@ codeunit 1991 "Guided Experience Impl." InsertGuidedExperienceItemsInTempVar(GuidedExperienceItem, TempGuidedExperienceItem); end; + procedure LoadTopBanners(var TenantMediaSetStandard: Record "Tenant Media Set"; var TenantMediaSetCompleted: Record "Tenant Media Set"; var TenantMediaSetInfo: Record "Tenant Media Set"): Boolean + begin + if not LoadFileFromTenantMediaSet(TenantMediaSetStandard, 'AssistedSetup-NoText-400px.png') then + InsertSystemFileToTenantMediaSet(TenantMediaSetStandard, 'images/', 'AssistedSetup-NoText-400px.png'); + + if not LoadFileFromTenantMediaSet(TenantMediaSetCompleted, 'AssistedSetupDone-NoText-400px.png') then + InsertSystemFileToTenantMediaSet(TenantMediaSetCompleted, 'images/', 'AssistedSetupDone-NoText-400px.png'); + + if not LoadFileFromTenantMediaSet(TenantMediaSetInfo, 'AssistedSetupInfo-NoText.png') then + InsertSystemFileToTenantMediaSet(TenantMediaSetInfo, 'images/', 'AssistedSetupInfo-NoText.png'); + + exit((TenantMediaSetStandard."Media ID".HasValue) and (TenantMediaSetCompleted."Media ID".HasValue) and (TenantMediaSetInfo."Media ID".HasValue)); + end; + + procedure LoadFileFromTenantMediaSet(var TenantMediaSet: Record "Tenant Media Set"; FileName: Text[250]): Boolean + var + TenantMedia: Record "Tenant Media"; + begin + TenantMedia.SetFilter(Description, FileName); + if TenantMedia.FindFirst() then + if TenantMediaSet.Get(TenantMedia.ID, TenantMedia.ID) then + exit(TenantMediaSet."Media ID".HasValue); + end; + + procedure InsertSystemFileToTenantMediaSet(var TenantMediaSet: Record "Tenant Media Set"; FilePath: Text[100]; FileName: Text[250]) + var + BannerInStream: InStream; + begin + NavApp.GetResource(FilePath + FileName, BannerInStream); + if BannerInStream.Length = 0 then + exit; + + TenantMediaSet.Init(); + TenantMediaSet."Media ID".ImportStream(BannerInStream, FileName); + TenantMediaSet.ID := TenantMediaSet."Media ID".MediaId; + TenantMediaSet.Insert(); + end; + local procedure InsertGuidedExperienceItemsInTempVar(var GuidedExperienceItem: Record "Guided Experience Item"; var TempGuidedExperienceItem: Record "Guided Experience Item" temporary) var PrevGuidedExperienceItem: Record "Guided Experience Item"; diff --git a/src/System Application/App/Page Summary Provider/permissions/PageSummaryAdmin.PermissionSet.al b/src/System Application/App/Page Summary Provider/permissions/PageSummaryAdmin.PermissionSet.al index ac05b7ec54..73d68883ff 100644 --- a/src/System Application/App/Page Summary Provider/permissions/PageSummaryAdmin.PermissionSet.al +++ b/src/System Application/App/Page Summary Provider/permissions/PageSummaryAdmin.PermissionSet.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace System.Integration; +using System.Environment; permissionset 2718 "Page Summary - Admin" { @@ -13,5 +14,6 @@ permissionset 2718 "Page Summary - Admin" IncludedPermissionSets = "Page Summary Provider - Read"; - Permissions = tabledata "Page Summary Settings" = IMD; + Permissions = tabledata "Page Summary Settings" = IMD, + tabledata "Tenant Media Set" = i; } \ No newline at end of file diff --git a/src/System Application/App/Page Summary Provider/permissions/PageSummaryProviderRead.PermissionSet.al b/src/System Application/App/Page Summary Provider/permissions/PageSummaryProviderRead.PermissionSet.al index f1eee9662a..da3484dd34 100644 --- a/src/System Application/App/Page Summary Provider/permissions/PageSummaryProviderRead.PermissionSet.al +++ b/src/System Application/App/Page Summary Provider/permissions/PageSummaryProviderRead.PermissionSet.al @@ -17,10 +17,8 @@ permissionset 2715 "Page Summary Provider - Read" IncludedPermissionSets = "Page Summary Provider - Obj."; Permissions = tabledata Company = r, - tabledata Media = r, - tabledata "Media Resources" = r, tabledata "Page Data Personalization" = R, tabledata "Page Metadata" = r, - tabledata "Tenant Media Set" = r, - tabledata "Tenant Media Thumbnails" = r; // Page Summary Provider Settings Wizard requires this + tabledata "Tenant Media" = r, + tabledata "Tenant Media Set" = r; // Page Summary Provider Settings Wizard requires this } diff --git a/src/System Application/App/Page Summary Provider/src/PageSummarySettings.Page.al b/src/System Application/App/Page Summary Provider/src/PageSummarySettings.Page.al index 41cc7981f4..17eee77bb9 100644 --- a/src/System Application/App/Page Summary Provider/src/PageSummarySettings.Page.al +++ b/src/System Application/App/Page Summary Provider/src/PageSummarySettings.Page.al @@ -19,8 +19,8 @@ page 2718 "Page Summary Settings" PageType = NavigatePage; Extensible = false; AccessByPermission = tabledata "Page Summary Settings" = M; - Permissions = tabledata Media = r, - tabledata "Media Resources" = r; + Permissions = tabledata "Tenant Media" = r, + tabledata "Tenant Media Set" = r; UsageCategory = Administration; layout @@ -32,7 +32,7 @@ page 2718 "Page Summary Settings" Editable = false; ShowCaption = false; Visible = TopBannerVisible and not DoneStepVisible and not TryItOutStepVisible; - field(NotDoneIcon; MediaResourcesStandard."Media Reference") + field(NotDoneIcon; TenantMediaSetStandard."Media ID") { ApplicationArea = All; Editable = false; @@ -44,8 +44,8 @@ page 2718 "Page Summary Settings" { Editable = false; ShowCaption = false; - Visible = CompletedBannerVisible and (DoneActionVisible or TryItOutStepVisible); - field(CompletedIcon; CompletedMediaResourcesStandard."Media Reference") + Visible = TopBannerVisible and (DoneActionVisible or TryItOutStepVisible); + field(CompletedIcon; TenantMediaSetCompleted."Media ID") { ApplicationArea = All; Editable = false; @@ -428,12 +428,10 @@ page 2718 "Page Summary Settings" end; local procedure LoadTopBanner() + var + GuidedExperience: Codeunit "Guided Experience"; begin - if MediaResourcesStandard.Get('ASSISTEDSETUP-NOTEXT-400PX.PNG') and (CurrentClientType() = ClientType::Web) then - TopBannerVisible := MediaResourcesStandard."Media Reference".HasValue(); - - if CompletedMediaResourcesStandard.Get('ASSISTEDSETUPDONE-NOTEXT-400px.PNG') and (CurrentClientType() = ClientType::Web) then - CompletedBannerVisible := CompletedMediaResourcesStandard."Media Reference".HasValue(); + TopBannerVisible := GuidedExperience.LoadTopBanners(TenantMediaSetStandard, TenantMediaSetCompleted, TenantMediaSetInfo); end; local procedure SaveSettings() @@ -451,9 +449,9 @@ page 2718 "Page Summary Settings" end; var - MediaResourcesStandard, CompletedMediaResourcesStandard : Record "Media Resources"; + TenantMediaSetStandard, TenantMediaSetCompleted, TenantMediaSetInfo : Record "Tenant Media Set"; Step: Option Intro,Configure,Done,TryItOut; - TopBannerVisible, CompletedBannerVisible : Boolean; + TopBannerVisible: Boolean; IntroSaasStepVisible, IntroOnPremStepVisible, ConfigureStepVisible, DoneStepVisible, TryItOutStepVisible : Boolean; NextActionVisible, BackActionVisible, DoneActionVisible, CloseActionVisible, TryItOutActionVisible : Boolean; IsSaaS: Boolean; diff --git a/src/System Application/App/app.json b/src/System Application/App/app.json index d75700c225..7f8846e28c 100644 --- a/src/System Application/App/app.json +++ b/src/System Application/App/app.json @@ -36,10 +36,13 @@ "TranslationFile", "GenerateCaptions" ], + "resourceFolders": [ + ".resources" + ], "resourceExposurePolicy": { "allowDebugging": true, "allowDownloadingSource": true, "includeSourceInSymbolFile": true }, "contextSensitiveHelpUrl": "https://learn.microsoft.com/dynamics365/business-central/" -} +} \ No newline at end of file