var getPackageDetails = function()

in source/console/app/package/package.js [81:177]


    var getPackageDetails = function(id) {
        $blockUI.start();
        dataPackageFactory.getDataPackage(id, function(err, datapackage) {
            if (err) {
                console.log('getDataPackage error', err);
                showErrorAlert(['Failed to load the package', $stateParams.package_id, '. Check if it exists and if you have access to it'].join(' '), true);
                $blockUI.stop();
                return;
            }

            if (datapackage) {
                $scope.pckg = datapackage;
                $scope.pckgName = datapackage.name;

                authService.getUserInfo().then(function(userinfo) {
                    if (userinfo.username === datapackage.owner || userinfo.role.toLowerCase() === 'admin') {
                        $scope.canEdit = true;
                    }

                    $q.all([
                        getCrawlerInfo(id),
                        getTablesInfo(id),
                        listPackageMetadata(id),
                        listPackageDatasets(id),
                        listGroups()
                    ])
                    .then(values => {
                        $scope.glueCrawler = values[0];
                        $scope.glueTables = values[1];
                        setMetadataHistory(values[2]);
                        $scope.log.push({
                            entrydt: $scope.pckg.created_at,
                            entries: [
                                '<p>Package created by ' + $scope.pckg.owner +
                                '</p>'
                            ]
                        });

                        $scope.processing = ($scope.glueCrawler.status === 'RUNNING' || $scope.glueCrawler.status === 'STOPPING');

                        if (values[3]) {
                            $scope.pckgContent = $_.where(values[3], {
                                type: 'dataset'
                            });

                            $scope.pckgManifest = $_.filter(values[3], function(d) {
                                return d.type === 'manifest';
                            });
                        }
                        if ($scope.pckgContent.length == 0) {
                            $scope.glueTables = values[3];
                        }

                        let groups = values[4];
                        if ('groups' in datapackage && datapackage.groups.length > 0) {
                            let allSelected = true;
                            let membershipList = datapackage.groups;
                            let processMembershipList = Object.keys(groups).map(function(key, index) {
                                if (membershipList.indexOf(key) > -1) {
                                    groups[key].visible = true;
                                } else {
                                    allSelected = false;
                                }
                            });
                            $q.all(processMembershipList).then(function(results) {
                                $scope.groups['all'] = allSelected;
                                $scope.groups['groups'] = groups;
                            });
                        } else {
                            $scope.groups['groups'] = groups;
                        }

                        if ($scope.pckgContent.length == 0) {
                            $scope.glueTables = [];
                        }
                        $scope.tabs[1].label = `Content (${$scope.pckgContent.length})`;
                        $scope.tabs[3].label = `Integrations (${$scope.glueTables.length})`;
                        $blockUI.stop();
                    })
                    .catch(function(err) {
                        console.log("getPackageDetails Error:", err);
                        showErrorAlert(['Failed to load the package', $stateParams.package_id, '. Check if it exists and if you have access to it'].join(' '), true);
                        $blockUI.stop();
                    });

                }, function(msg) {
                    console.log('Unable to retrieve the user session.');
                    $state.go('signin', {});
                });

            } else {
                $scope.pckg = null;
                showErrorAlert(['The package', $stateParams.package_id, 'is not available in the data lake.'].join(' '), true);
                return;
            }
        });
    };