Project

General

Profile

Download (3.42 KB) Statistics
| Branch: | Tag: | Revision:
/**
* @ngdoc object
* @name Bastion.activation-keys.controller:ActivationKeyRepositorySetsController
*
* @requires $scope
* @requires translate
* @requires Nutupane
* @requires ActivationKey
* @requires RepositorySet
* @requires ContentOverrideHelper
* @requires Notification
*
* @description
* Provides the functionality for the activation-key products action pane.
*/
angular.module('Bastion.activation-keys').controller('ActivationKeyRepositorySetsController',
['$scope', 'translate', 'Nutupane', 'ActivationKey', 'RepositorySet', 'ContentOverrideHelper', 'Notification',
function ($scope, translate, Nutupane, ActivationKey, RepositorySet, ContentOverrideHelper, Notification) {
var params, saveContentOverride, success, error;

// Labels so breadcrumb strings can be translated
$scope.label = translate('Repository Sets');

params = {
'activation_key_id': $scope.$stateParams.activationKeyId,
'content_access_mode_all': true,
'content_access_mode_env': true,
'sort_order': 'ASC',
'paged': true
};
$scope.nutupane = new Nutupane(RepositorySet, params);
$scope.nutupane.primaryOnly = true;
$scope.table = $scope.nutupane.table;
$scope.repositoryTypes = {
redhat: translate("Red Hat"),
custom: translate("Custom")
};

$scope.repositoryType = {};

$scope.contentAccessModes = {
contentAccessModeAll: true,
contentAccessModeEnv: true
};

$scope.selectRepositoryType = function () {
delete $scope.nutupane.table.params['repository_type'];
if (!_.isEmpty($scope.repositoryType.value)) {
$scope.nutupane.table.params['repository_type'] = $scope.repositoryType.value;
}
$scope.nutupane.refresh();
};

$scope.toggleFilters = function () {
$scope.nutupane.table.params['content_access_mode_env'] = $scope.contentAccessModes.contentAccessModeEnv;
$scope.nutupane.table.params['content_access_mode_all'] = true;
$scope.nutupane.refresh();
};

success = function () {
$scope.table.working = false;
Notification.setSuccessMessage(translate('Repository Sets settings saved successfully.'));
$scope.nutupane.refresh();
};

error = function (response) {
$scope.table.working = false;
Notification.setErrorMessage(response.data.errors);
};

saveContentOverride = function (contentOverrides) {
$scope.table.working = true;
ActivationKey.contentOverride({id: $scope.$stateParams.activationKeyId}, contentOverrides, success, error);
};

$scope.overrideToEnabled = function () {
var contentOverrides = ContentOverrideHelper.getEnabledContentOverrides($scope.table.getSelected());
saveContentOverride(contentOverrides);
};

$scope.overrideToDisabled = function () {
var contentOverrides = ContentOverrideHelper.getDisabledContentOverrides($scope.table.getSelected());
saveContentOverride(contentOverrides);
};

$scope.resetToDefault = function () {
var contentOverrides = ContentOverrideHelper.getDefaultContentOverrides($scope.table.getSelected());
saveContentOverride(contentOverrides);
};
}]
);
(8-8/9)