diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientFlowIntegration.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientFlowIntegration.ControlAddin.al new file mode 100644 index 0000000000..a5f5b7641d --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientFlowIntegration.ControlAddin.al @@ -0,0 +1,69 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.FlowIntegration" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with FlowIntegration addin.'; + RequestedHeight = 600; + MinimumHeight = 600; + RequestedWidth = 320; + MinimumWidth = 320; + VerticalStretch = true; + VerticalShrink = true; + HorizontalStretch = true; + HorizontalShrink = true; + + Scripts = 'Resources\FlowIntegration\js\msflowsdk-1.1.1.144.min.js', + 'Resources\FlowIntegration\js\FlowIntegration.js'; + StartupScript = 'Resources\FlowIntegration\js\Startup.js'; + RecreateScript = 'Resources\FlowIntegration\js\Recreate.js'; + RefreshScript = 'Resources\FlowIntegration\js\Refresh.js'; + + /// + /// Event raised when addin is done loading + /// + event ControlAddInReady(); + + /// + /// Event raised when error occurs + /// + /// Error name + /// Description of the error. + event ErrorOccurred(Error: Text; Description: Text); + + /// + /// Event will be fired when the control add-in should be refreshed. + /// + event Refresh(); + + /// + /// Function that initializes the Flow API + /// + /// Flow service url needed by Flow API. + /// Four-letter language and region code. + /// Microsoft Flow Service Access Token. + procedure Initialize(HostName: Text; Locale: Text; FlowServiceToken: Text); + + /// + /// Function that loads the embedded Flow into a container on a webpage + /// + /// Flow Environmnet ID + procedure LoadFlows(EnvironmentId: Text); + + /// + /// Function that loads embedded Flow templates into a container on a webpage + /// + /// Flow Environmnet ID + /// Filters templates matching the search term + /// Number of templates to be displayed in the container + /// Determines page that opens when one selects a template + procedure LoadTemplates(EnvironmentId: Text; SearchTerm: Text; PageSize: Text; Destination: Text); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientOAuthIntegration.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientOAuthIntegration.ControlAddin.al new file mode 100644 index 0000000000..f42038d36a --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientOAuthIntegration.ControlAddin.al @@ -0,0 +1,56 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.OAuthIntegration" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with OAuthIntegration addin.'; + RequestedHeight = 30; + RequestedWidth = 200; + MinimumHeight = 20; + MinimumWidth = 200; + VerticalStretch = true; + VerticalShrink = true; + HorizontalStretch = true; + HorizontalShrink = true; + + Scripts = 'Resources\OAuthIntegration\js\OAuthIntegration.js'; + StyleSheets = 'Resources\OAuthIntegration\stylesheets\OAuthIntegration.css'; + StartupScript = 'Resources\OAuthIntegration\js\Startup.js'; + + /// + /// Starts the authorization process. + /// + /// The authentication request AuthRequestUrl. + procedure StartAuthorization(AuthRequestUrl: Text); + + /// + /// Creates link to start the authorization process + /// + procedure Authorize(Url: Text; LinkName: Text; LinkToolTip: Text); + + /// + /// Event triggered when an authorization code is retreieved. + /// + /// The authorization code retrieved as part of the authentication process. + event AuthorizationCodeRetrieved(AuthCode: Text); + + /// + /// Event triggered when the authorization process has failed. + /// + /// The authorization error message received. + /// A description of the authorization error received. + event AuthorizationErrorOccurred(AuthError: Text; AuthErrorDescription: Text); + + /// + /// Event triggered when the Add-In is loaded and ready to use. + /// + event ControlAddInReady(); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientPageReady.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientPageReady.ControlAddin.al new file mode 100644 index 0000000000..ad14aca9ca --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientPageReady.ControlAddin.al @@ -0,0 +1,23 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.PageReady" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with PageReady addin.'; + Scripts = 'Resources\PageReady\js\PageReady.js'; + StyleSheets = 'Resources\PageReady\stylesheets\PageReady.css'; + RequestedWidth = 0; + RequestedHeight = 0; + HorizontalStretch = false; + VerticalStretch = false; + + event AddInReady(); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientPowerBIManagement.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientPowerBIManagement.ControlAddin.al new file mode 100644 index 0000000000..db64481375 --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientPowerBIManagement.ControlAddin.al @@ -0,0 +1,151 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.PowerBIManagement" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with PowerBIManagement addin.'; + RequestedHeight = 320; + MinimumHeight = 180; + RequestedWidth = 300; + MinimumWidth = 200; + VerticalStretch = true; + VerticalShrink = true; + HorizontalStretch = true; + HorizontalShrink = true; + + Scripts = 'Resources\PowerBIManagement\js\PowerBIManagement.js', + // The powerbi.js file comes from the nuget package: Microsoft.PowerBI.Javascript version: 2.22.2 + // https://github.com/microsoft/PowerBI-JavaScript/blob/master/dist/powerbi.js + // The file below should point to the nuget package when the AL infrastructure supports it. + 'Resources\PowerBIManagement\js\powerbi.js'; + StartupScript = 'Resources\PowerBIManagement\js\Startup.js'; + StyleSheets = 'Resources\PowerBIManagement\stylesheets\PowerBIManagement.css'; + + /// + /// Event that will be fired when the AddIn is ready for communication through its API + /// + event ControlAddInReady(); + + /// + /// Event that will be fired when an error occurs in the add-in + /// + event ErrorOccurred(Operation: Text; ErrorText: Text); + + /// + /// Event that will be fired when the page of the embedded report changes + /// + event ReportPageChanged(NewPage: Text; NewPageFilters: Text); + + /// + /// Event that will be fired when the embedded report finishes loading + /// + event ReportLoaded(ReportFilters: Text; ActivePageName: Text; ActivePageFilters: Text; CorrelationId: Text); + + /// + /// Event that will be fired when the embedded dashboard finishes loading + /// + event DashboardLoaded(CorrelationId: Text); + + /// + /// Event that will be fired when the embedded dashboard tile finishes loading + /// + event DashboardTileLoaded(CorrelationId: Text); + + /// + /// Event that will be fired when the embedded report visual finishes loading + /// + event ReportVisualLoaded(CorrelationId: Text); + + /// + /// Initializes the Power BI Embed into the page + /// + [Obsolete('This method is deprecated. Please use EmbedReport instead.', '24.0')] + procedure InitializeReport(ReportLink: Text; ReportId: Text; AuthToken: Text; PowerBIApi: Text); + + /// + /// Initializes the Power BI embed Report into the page + /// + procedure EmbedReport(ReportLink: Text; ReportId: Text; AuthToken: Text; PageName: Text); + + /// + /// Initializes the Power BI embed Report into the page, with additional options + /// + procedure EmbedReportWithOptions(ReportLink: Text; ReportId: Text; AuthToken: Text; PageName: Text; ShowPanes: Boolean); + + /// + /// Initializes the Power BI embed Dashboard into the page + /// + procedure EmbedDashboard(DashboardLink: Text; DashboardId: Text; AuthToken: Text); + + /// + /// Initializes the Power BI embed Dashboard Tile into the page + /// + procedure EmbedDashboardTile(DashboardTileLink: Text; DashboardId: Text; TileId: Text; AuthToken: Text); + + /// + /// Initializes the Power BI embed Report Visual into the page + /// + procedure EmbedReportVisual(ReportVisualLink: Text; ReportId: Text; PageName: Text; VisualName: Text; AuthToken: Text); + + /// + /// Changes the current mode into View + /// + procedure ViewMode(); + + /// + /// Changes the current mode into Edit + /// + procedure EditMode(); + + /// + /// Enters full screen mode for the current embed + /// + procedure FullScreen(); + + /// + /// Updates the report filters with the provided new filters + /// + /// A serialized JSON array of filters + /// + /// The new filters will replace any existing report filter for the same table columns + /// + procedure UpdateReportFilters(Filters: Text); + + /// + /// Removes the current report level filters + /// + procedure RemoveReportFilters(); + + /// + /// Updates the page filters with the provided new filters + /// + /// A serialized JSON array of filters + /// + /// The new filters will replace any existing page filter for the same table columns + /// + procedure UpdatePageFilters(Filters: Text); + + /// + /// Removes the current page level filters + /// + procedure RemovePageFilters(); + + /// + /// Changes the active page of the report + /// + /// The name of the new page to set as active + procedure SetPage(PageName: Text); + + /// + /// Sets the properties for the browser frame containing the embed + /// + procedure InitializeFrame(FullPage: Boolean; Ratio: Text); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientRoleCenterSelector.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientRoleCenterSelector.ControlAddin.al new file mode 100644 index 0000000000..18e7fc7933 --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientRoleCenterSelector.ControlAddin.al @@ -0,0 +1,42 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.RoleCenterSelector" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with RoleCenterSelector addin.'; + RequestedHeight = 750; + RequestedWidth = 560; + VerticalStretch = true; + HorizontalStretch = true; + + Scripts = 'https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js', + 'https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/js/fabric.min.js', + 'Resources\RoleCenterSelector\js\RoleCenterSelector.js'; + StartupScript = 'Resources\RoleCenterSelector\js\Startup.js'; + RefreshScript = 'Resources\RoleCenterSelector\js\Refresh.js'; + RecreateScript = 'Resources\RoleCenterSelector\js\Recreate.js'; + StyleSheets = 'https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/css/fabric.min.css', + 'https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/css/fabric.components.min.css', + 'Resources\RoleCenterSelector\stylesheets\RoleCenterSelector.css'; + + + event ControlAddInReady(); + + event OnAcceptAction(); + + event OnProfileSelected(ProfileId: Text); + + procedure LoadRoleCenterFromJson(Json: Text); + + procedure LoadPageDataFromJson(Json: Text); + + procedure SetCurrentProfileId(ProfileId: Text); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientVideoPlayer.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientVideoPlayer.ControlAddin.al new file mode 100644 index 0000000000..9ff4ecd165 --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientVideoPlayer.ControlAddin.al @@ -0,0 +1,64 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +/// +/// MSN video player +/// +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.VideoPlayer" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with VideoPlayer addin.'; + RequestedHeight = 500; + RequestedWidth = 100; + VerticalStretch = true; + HorizontalStretch = true; + + Scripts = 'Resources\VideoPlayer\js\VideoPlayer.js'; + StartupScript = 'Resources\VideoPlayer\js\Startup.js'; + StyleSheets = 'Resources\VideoPlayer\stylesheets\VideoPlayer.css'; + + /// + /// Raised when addin is ready + /// + event AddInReady(); + + /// + /// Used to set the attribute to control how video is played + /// + /// + /// The name of the attribute + /// + /// + /// Value of the attribute + /// + procedure SetFrameAttribute(AttributeName: text; AttributeValue: Text); + + /// + /// Removes specified attribute + /// + /// + /// The name of the attribute + /// + procedure RemoveAttribute(AttributeName: Text); + + /// + /// Set prefered video width + /// + /// + /// Width of the video + /// + procedure SetWidth(VideoWidth: Integer); + + /// + /// Set Video Height + /// + /// Video Height + procedure SetHeight(VideoHeight: Integer); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientWebPageViewer.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientWebPageViewer.ControlAddin.al new file mode 100644 index 0000000000..6aa5b02a92 --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientWebPageViewer.ControlAddin.al @@ -0,0 +1,129 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.WebPageViewer" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with WebPageViewer addin.'; + RequestedHeight = 320; + MinimumHeight = 180; + RequestedWidth = 300; + MinimumWidth = 200; + VerticalStretch = true; + VerticalShrink = true; + HorizontalStretch = true; + HorizontalShrink = true; + + Scripts = 'Resources\WebPageViewer\js\WebPageViewerHelper.js', + 'Resources\WebPageViewer\js\WebPageViewer.js'; + StartupScript = 'Resources\WebPageViewer\js\Startup.js'; + RecreateScript = 'Resources\WebPageViewer\js\Recreate.js'; + RefreshScript = 'Resources\WebPageViewer\js\Refresh.js'; + StyleSheets = 'Resources\WebPageViewer\stylesheets\WebPageViewer.css'; + Images = 'Resources\WebPageViewer\images\Callback.html', + 'Resources\WebPageViewer\images\Loader.gif'; + + /// + /// Event raised when addin is done loading + /// + event ControlAddInReady(CallbackUrl: Text); + + /// + /// Event raised when page is done loading + /// + event DocumentReady(); + + /// + /// Event raised when callback url is triggered + /// + event Callback(Data: Text); + + /// + /// Event will be fired when the control add-in should be refreshed. + /// + event Refresh(CallbackUrl: Text); + + /// + /// Function that initializes iframe + /// Call this before SetContent or Navigate. + /// + /// The ratio of width to height of iframe. For example "16:9". + procedure InitializeIFrame(Ratio: Text); + + /// + /// Function that initializes iframe, ignoring ratio values + /// Call this before SetContent or Navigate. + /// + procedure InitializeFullIFrame(); + + /// + /// Function that sets the content html + /// + /// The html content to display. + procedure SetContent(Html: Text); + + /// + /// Function that sets the content html and executes some JavaScript + /// + /// The html content to display. + /// JavaScript to execute. + procedure SetContent(Html: Text; JavaScript: Text); + + /// + /// Function that sets the content url + /// + /// Url to display. + procedure Navigate(Url: Text); + + /// + /// Function that sets the content url with parameter data + /// + /// Url to display. + /// HTTP method to use. + /// Data to send (JSON encoded string). + procedure Navigate(Url: Text; Method: Text; Data: Text); + + /// + /// Function to post a message to parent window. + /// + /// Data to be sent to the other window + /// Specifies what the origin of otherWindow must be for the event to be dispatched, either as the literal string "*" (indicating no preference) or as a URI. + /// Flag indicating whether we must convert message to Json or not. + procedure PostMessage(Message: Text; TargetOrigin: Text; ConvertToJson: Boolean); + + /// + /// Function to force hyperlinks to open in a new page + /// + procedure LinksOpenInNewWindow(); + + /// + /// Function to trigger a WebPageViewerEvent with custom data + /// + /// The data to pass in the event. + procedure InvokeEvent(Data: Text); + + /// + /// Function to subscribe to window events and trigger a WebPageViewerEvent with + /// the data provided by the event + /// + /// The name of window event + /// Filters event by origin of the publisher + procedure SubscribeToEvent(EventName: Text; Origin: Text); + + /// + /// Function to ignore callbacks occuring due to subscribed events. + /// This will improve performance by telling client not to send messages back + /// to server if not required. + /// + /// The event name passed to whose callback need to be ignored. + /// The results of the callback that need to be ignored. + /// Send empty callbackResults to undo previous entry. + procedure SetCallbacksFromSubscribedEventToIgnore(EventName: Text; CallbackResults: JsonArray); +} +#pragma warning restore AA0247 +#endif \ No newline at end of file diff --git a/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientWelcomeWizard.ControlAddin.al b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientWelcomeWizard.ControlAddin.al new file mode 100644 index 0000000000..9f3045c291 --- /dev/null +++ b/src/System Application/App/ControlAddIns/src/MicrosoftDynamicsNavClientWelcomeWizard.ControlAddin.al @@ -0,0 +1,98 @@ +#if not CLEAN24 +// ------------------------------------------------------------------------------------------------ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// ------------------------------------------------------------------------------------------------ + +#pragma warning disable AA0247 +controladdin "Microsoft.Dynamics.Nav.Client.WelcomeWizard" +{ + ObsoleteState = Pending; + ObsoleteTag = '24.0'; + ObsoleteReason = 'Replaced with PowerBIManagement addin.'; + RequestedHeight = 379; + MinimumHeight = 550; + RequestedWidth = 300; + MinimumWidth = 200; + VerticalStretch = true; + VerticalShrink = true; + HorizontalStretch = true; + HorizontalShrink = true; + + Scripts = 'https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.5.1.min.js', + 'https://static2.sharepointonline.com/files/fabric/office-ui-fabric-js/1.4.0/js/fabric.min.js', + 'Resources\WelcomeWizard\js\WelcomeWizard.js'; + StartupScript = 'Resources\WelcomeWizard\js\Startup.js'; + RefreshScript = 'Resources\WelcomeWizard\js\Refresh.js'; + RecreateScript = 'Resources\WelcomeWizard\js\Recreate.js'; + StyleSheets = 'Resources\WelcomeWizard\stylesheets\WelcomeWizard.css'; + Images = 'Resources\WelcomeWizard\images\01_welcome.png', + 'Resources\WelcomeWizard\images\02_introduction.png', + 'Resources\WelcomeWizard\images\03_outlook.png', + 'Resources\WelcomeWizard\images\04_extensions.png', + 'Resources\WelcomeWizard\images\05_rolecenter.png', + 'Resources\WelcomeWizard\images\GoChecked.png'; + + /// + /// Event raised when addin is done loading + /// + event ControlAddInReady(); + + /// + /// Event raised when error occurs + /// + /// Error name + /// Error description + event ErrorOccurred(Error: Text; Description: Text); + + /// + /// Event will be fired when the control add-in should be refreshed. + /// + event Refresh(); + + /// + /// Event will be fired on the thumbnail onclick + /// + /// The thumbnail selection + event ThumbnailClicked(Selection: Integer); + + /// + /// Function that initializes the WelcomeWizard API + /// + /// Welcome Wizard Title + /// Welcome Wizard Sub Title + /// Information description + /// Intro text + /// Description for the intro video + /// Get started text + /// Description for the get started video + /// Find Help Text + /// Description for the find help video + /// Role Centers Text + /// Description about the role centers + /// Role center + /// Description explaining demo data is for demonstration purposes + procedure Initialize(Title: Text; Subtitle: Text; Explanation: Text; Intro: Text; IntroDescription: Text; GetStarted: Text; GetStartedDescription: Text; GetHelp: Text; GetHelpDescription: Text; RoleCenters: Text; RoleCentersDescription: Text; RoleCenter: Text; LegalDescription: Text); + + /// + /// Function that loads the embedded Welcome Wizard into a container on a webpage + /// + /// Environmnet ID + procedure LoadFlows(EnvironmentId: Text); + + /// + /// Function that updates the Role Center Profile ID + /// + /// Profile ID + procedure UpdateProfileId(ChangedProfileId: Text); + + /// + /// Function that loads embedded WelcomeWizard templates into a container on a webpage + /// + /// Environmnet ID + /// Filters templates matching the search term + /// Number of templates to be displayed in the container + /// Determines page that opens when one selects a template + procedure LoadTemplates(EnvironmentId: Text; SearchTerm: Text; PageSize: Text; Destination: Text); +} +#endif \ No newline at end of file