Example of Creating the MetabaseSaveDialog Component

Before executing the example, study recommendations to code writing. Make sure that repository contains an express report with the 88665 key.

To create the MetabaseSaveDialog component, use HTML code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>MetabaseSaveDialog</title>
    <script src="../build/PP.js" type="text/javascript"></script>
    <script src="../build/PP.Metabase.js" type="text/javascript"></script>
    <script src="../build/PP.Express.js" type="text/javascript"></script>
    <script src="../build/PP.Navigator.js" type="text/javascript"></script>
    <script type="text/javascript" src="../resources/Metabase.resources.ru.js"></script>
    <script type="text/javascript" src="../resources/Express.resources.ru.js"></script>
    <script type="text/javascript" src="../resources/Navigator.resources.ru.js"></script>
    <link href="../build/PP.css" rel="stylesheet" type="text/css" />
    <link href="../build/PP.Metabase.css" rel="stylesheet" type="text/css" />
    <link href="../build/PP.Express.css" rel="stylesheet" type="text/css" />
 
    <script type="text/javascript">
        var metabase, eaxMdService, eaxAnalyzer, saveDialog;
        // Function executed on loading html document
        function onLoad() {
            // Set path to root folder containing resource files
            PP.resourceManager.setRootResourcesFolder("../../resources/");
            // Set language settings for resources
            PP.setCurrentCulture(PP.Cultures.ru);
            // Create repository connection
            metabase = new PP.Mb.Metabase({
                // Set Url of the PP.SOM web-service in the format:
                // <http://<ServerName | IP-address>[:<Port>][/<VirtualCatalog>]/axis2/services/PP.SOM.Som>
                PPServiceUrl: "http://localhost/FPBI_App_v9.2x64/axis2/services/PP.SOM.Som",
                Id: "Repository",
                UserCreds: {
                    UserName: "user",
                    Password: "password"
                }
            });
            // Open repository connection
            metabase.open();
            // Create service to work with express reports
            eaxMdService = new PP.Exp.EaxMdService({
                Metabase: metabase
            });
            // Open express report with the key 88665
            eaxAnalyzer = eaxMdService.editDocument(88665);
            // Determine filter array for dialog box
            var filters = [{
                Filters: [2561, 0],
                ResourceKey: "openDialogExpressReports",
                iconIndex: 16
            }];
            // Determine language array to translate name of saved object
            var displayLanguages = [];
            displayLanguages.push(PP.Cultures.ru.LCID); // Russian
            displayLanguages.push(PP.Cultures.en.LCID); // English
            // Create a dialog box to save object
            saveDialog = new PP.Navigator.MetabaseSaveDialog({
                DefaultId: "EXP_REPORT", // Identifier of saved object
                /* Determine name of saved object */
                DefaultName: "Indicators frequency by region",
                Metabase: metabase,
                FiltersSet: filters, // Filter array for dialog box
                CurrentFilter: filters[1], // Current filter
                ImagePath: "../build/img/",
                OpenToKey: parseInt(eaxAnalyzer.getParentKey() || 0),
                // Determine name translation of the saved object into Russian and English
                Names: [{
                    locale: PP.Cultures.ru.LCID,
                    name: "Indicators frequency by region"
                }, {
                    locale: PP.Cultures.en.LCID,
                    name: "Dynamics indicators by region"
                }],
                ShowTranslateButton: true, // Make the button to show object name translations visible
                // Set dialog box to translate name of saved object into various languages.
                TranslateDialog: new PP.Mb.Ui.TranslateDialog({
                    DisplayLanguages: displayLanguages
                }),
                SaveAsObject: function (sender, args) { // Handle the SaveAsObject event
                    console.log("Name of saved object in different languages:");
                    var names = args.Names;
                    for (var i in names) {
                        var n = names[i];
                        console.log("Language code: " + n.locale + ", name: " + n.name);
                    }
                }
            });
            saveDialog.show(); // Show dialog box to save object
        }
    </script>
</head>
<body onload="onLoad();">
</body>
</html>

After executing the example the HTML page will contain the MetabaseSaveDialog component:

Clicking the OK button generates the SaveAsObject event and displays the message to the browser console:

Name of the saved object in different languages:
Language code: 1033, Name: Dynamics indicators by region
Language code: 1049, Name: Dynamics of indicators by region

See also:

MetabaseSaveDialog