$scope.createPackage = function()

in source/console/app/package/package.js [609:681]


    $scope.createPackage = function(newpackage, isValid) {
        if (isValid) {
            $blockUI.start();
            $scope.dismissAwsUiAlert();

            var _newpckg = {
                package: newpackage
            };

            //check metadata requirements
            var _metadata = [];
            for (var i = 0; i < $scope.metadataGovernance.length; i++) {
                if ($scope.metadataGovernance[i].governance === 'Required') {
                    if ($scope.metadataGovernance[i].value) {
                        if ($scope.metadataGovernance[i].value
                            .trim() !== '') {
                            _metadata.push({
                                tag: $scope.metadataGovernance[i].tag,
                                value: $scope.metadataGovernance[i].value
                            });
                        } else {
                            showErrorAlert([$scope.metadataGovernance[i].tag, 'is a required field.'].join(' '));
                            return;
                        }
                    } else {
                        showErrorAlert([$scope.metadataGovernance[i].tag, 'is a required field.'].join(' '));
                        return;
                    }

                } else if ($scope.metadataGovernance[i].governance === 'Optional') {
                    if ($scope.metadataGovernance[i].value) {
                        if ($scope.metadataGovernance[i].value.trim() !== '') {
                            _metadata.push({
                                tag: $scope.metadataGovernance[i].tag,
                                value: $scope.metadataGovernance[i].value
                            });
                        }
                    }
                }
            }

            if (_metadata.length > 0) {
                _newpckg.metadata = _metadata;
            }

            var groupSet = [];
            let processGroups = Object.keys($scope.groups['groups']).map(function(group) {
                if ($scope.groups['all'] || $scope.groups['groups'][group].visible) {
                    groupSet.push(group);
                }
            });
            Promise.all(processGroups).then(function(results) {
                _newpckg.package.groups = groupSet;
                dataPackageFactory.createDataPackage('new', _newpckg, function(err,
                    data) {
                    if (err) {
                        console.log('createDataPackage error', err);
                        if (err.data) {
                            showErrorAlert(err.data);
                        } else {
                            showErrorAlert('An unexpected error occured when attempting to save the new package.');
                        }
                        return;
                    }

                    $state.go('package', {
                        package_id: data.package_id
                    });
                });
            });

        }
    };