Project

General

Profile

Revision 1ae5953c

Added by Ondřej Pražák over 6 years ago

Fixes #15304 - Move reachability button to details-info

View differences:

app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details-info.controller.js
1
angular.module('ForemanPipeline.jenkins-instances').controller('JenkinsInstanceDetailsInfoController', 
1
angular.module('ForemanPipeline.jenkins-instances').controller('JenkinsInstanceDetailsInfoController',
2 2
    ['$scope', '$q', 'translate', 'JenkinsInstance',
3 3
    function ($scope, $q, translate, JenkinsInstance) {
4 4

  
......
41 41
        $scope.$on('errorMessages', function (event, data) {
42 42
            $scope.errorMessages = data;
43 43
        });
44
        
44

  
45
        $scope.checkJenkins = function () {
46
            var deferred = $q.defer();
47
            $scope.working = true;
48
            JenkinsInstance.checkJenkins({id: $scope.jenkinsInstance.id}, function (response) {
49
                deferred.resolve(response);
50
                $scope.successMessages.push(translate('Jenkins is reachable, server ver. %s').replace('%s', response.server_version));
51
                $scope.$broadcast('successMessages', $scope.successMessages)
52
                $scope.working = false;
53
            }, function (response) {
54
                deferred.reject(response);
55
                angular.forEach(response.data.errors, function (errorMessage, key) {
56
                        if (angular.isString(key)) {
57
                            errorMessage = [key, errorMessage].join(' ');
58
                        }
59
                        $scope.errorMessages.push(translate("Could not reach Jenkins server: ") + errorMessage);
60
                        $scope.broadcast('errorMessages', $scope.errorMessages);
61
                    });
62
                $scope.working = false;
63
            })
64
            return deferred.promise;
65
        };
45 66
    }]
46 67
);
app/assets/javascripts/foreman_pipeline/jenkins-instances/details/jenkins-instance-details.controller.js
1
angular.module('ForemanPipeline.jenkins-instances').controller('JenkinsInstanceDetailsController', 
1
angular.module('ForemanPipeline.jenkins-instances').controller('JenkinsInstanceDetailsController',
2 2
    ['$scope', '$state', 'JenkinsInstance', '$q', 'translate',
3 3
    function ($scope, $state, JenkinsInstance, $q, translate) {
4 4

  
......
14 14
        $scope.jenkinsInstance = JenkinsInstance.get({id: $scope.$stateParams.jenkinsInstanceId}, function () {
15 15
            $scope.panel.loading = false;
16 16
        });
17

  
18
        $scope.checkJenkins = function () {
19
            var deferred = $q.defer();
20
            $scope.working = true;
21
            JenkinsInstance.checkJenkins({id: $scope.jenkinsInstance.id}, function (response) {
22
                deferred.resolve(response);                
23
                $scope.successMessages.push(translate('Jenkins is reachable, server ver. %s').replace('%s', response.server_version));
24
                $scope.$broadcast('successMessages', $scope.successMessages)
25
                $scope.working = false;
26
            }, function (response) {
27
                deferred.reject(response);
28
                angular.forEach(response.data.errors, function (errorMessage, key) {
29
                        if (angular.isString(key)) {
30
                            errorMessage = [key, errorMessage].join(' ');
31
                        }
32
                        $scope.errorMessages.push(translate("Could not reach Jenkins server: ") + errorMessage);
33
                        $scope.broadcast('errorMessages', $scope.errorMessages);
34
                    });
35
                $scope.working = false;
36
            })
37
            return deferred.promise;
38
        };
39 17
    }]
40 18
);
app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details-info.html
33 33
    </div>
34 34

  
35 35
  </section>
36
</div>
37

  
38
<div class="fr">
39
  <button class="btn btn-default" ng-click="checkJenkins()" ng-disabled="working">
40
      <i class="fa fa-wrench" ng-hide="working"></i>
41
      <i class="fa fa-spinner fa-spin" ng-show="working"></i>
42
      <span translate>Jenkins reachable?</span>
43
    </button>
36 44
</div>
app/assets/javascripts/foreman_pipeline/jenkins-instances/details/views/jenkins-instance-details.html
9 9
  <header class="details-header">
10 10
    <h2 class="fl" translate>Jenkins Instance {{ jenkinsInstance.name }}</h2>
11 11
    <div class="fr">
12
      <div bst-modal="deleteJenkinsInstance(jenkinsInstance)" 
12
      <div bst-modal="deleteJenkinsInstance(jenkinsInstance)"
13 13
           model="jenkinsInstance"
14 14
           modal-header='Remove JenkinsInstance "{{ jenkinsInstance.name }}"?'
15 15
           modal-body='Are you sure you want to remove Jenkins Instance "{{ jenkinsInstance.name }}"?'>
16 16
      </div>
17

  
18
      <button class="btn btn-default" ng-click="checkJenkins()" ng-disabled="working">
19
        <i class="fa fa-wrench" ng-hide="working"></i>
20
        <i class="fa fa-spinner fa-spin" ng-show="working"></i>
21
        <span translate>Jenkins reachable?</span>
22
      </button>
23

  
24 17
      <button class="btn btn-default" ng-click="openModal()" ng-hide="denied('destroy_jenkins_instance', jenkinsInstance)">
25 18
        <i class="fa fa-trash-o"></i>
26 19
        {{ 'Remove Jenkins Instance' | translate }}
......
32 25
      </button>
33 26
    </div>
34 27
  </header>
35
  
28

  
36 29
  <nav>
37 30
    <ul class="nav nav-tabs">
38 31
      <li ng-class="{active: stateIncludes('jenkins-instances.details.info')}">
......
46 39
          <span translate>Jenkins Users</span>
47 40
        </a>
48 41
      </li>
49
      
42

  
50 43
    </ul>
51 44
  </nav>
52 45
  <section class="nutupane-sub-section" ui-view></section>

Also available in: Unified diff