text: import _ from 'lodash-es';
  import { StoridgeProfileDefaultModel } from '../../models/profile';
  
  angular.module('portainer.integrations.storidge')
  .controller('StoridgeProfilesController', ['$q', '$scope', '$state', 'Notifications', 'StoridgeProfileService',
  function ($q, $scope, $state, Notifications, StoridgeProfileService) {
  
    $scope.state = {
      actionInProgress: false
    };
  
    $scope.formValues = {
      Name: ''
    };
  
    $scope.removeAction = function(selectedItems) {
      var actionCount = selectedItems.length;
      angular.forEach(selectedItems, function (profile) {
        StoridgeProfileService.delete(profile.Name)
        .then(function success() {
          Notifications.success('Profile successfully removed', profile.Name);
          var index = $scope.profiles.indexOf(profile);
          $scope.profiles.splice(index, 1);
        })
        .catch(function error(err) {
          Notifications.error('Failure', err, 'Unable to remove profile');
        })
        .finally(function final() {
          --actionCount;
          if (actionCount === 0) {
            $state.reload();
          }
        });
      });
    };
  
    $scope.create = function() {
      var model = new StoridgeProfileDefaultModel();
      model.Labels = {};
      model.Name = $scope.formValues.Name;
      model.Directory = model.Directory + _.toLower(model.Name);
      delete model.MinBandwidth;
      delete model.MaxBandwidth;
      delete model.MinIOPS;
      delete model.MaxIOPS;
  
      $scope.state.actionInProgress = true;
      StoridgeProfileService.create(model)
      .then(function success() {
        Notifications.success('Profile successfully created');
        $state.reload();
      })
      .catch(function error(err) {
        Notifications.error('Failure', err, 'Unable to create profile');
      })
      .finally(function final() {
        $scope.state.actionInProgress = false;
      });
    };
  
    function initView() {
      StoridgeProfileService.profiles()
      .then(function success(data) {
        $scope.profiles = data;
      })
      .catch(function error(err) {
        Notifications.error('Failure', err, 'Unable to retrieve profiles');
      });
    }
  
    initView();
  }]);
  