feat(home): add the ability to edit an endpoint (#2305)

* feat(home): add edit button

* feat(home): style edit button

* feat(home): make endpoint editable on admin only
pull/2285/head
Chaim Lev-Ari 2018-09-30 01:20:10 +03:00 committed by Anthony Lapenna
parent 226c45f035
commit 5be2684442
7 changed files with 40 additions and 5 deletions

View File

@ -0,0 +1,12 @@
angular.module('portainer.app').controller('EndpointItemController', [
function EndpointItemController() {
var ctrl = this;
ctrl.editEndpoint = editEndpoint;
function editEndpoint(event) {
event.stopPropagation();
ctrl.onEdit(ctrl.model.Id);
}
}
]);

View File

@ -21,8 +21,16 @@
</span> </span>
</span> </span>
<span class="small"> <span>
Group: {{ $ctrl.model.GroupName }}
<span class="small">
Group: {{ $ctrl.model.GroupName }}
</span>
<button
ng-if="$ctrl.isAdmin"
class="btn btn-link btn-xs"
ng-click="$ctrl.editEndpoint($event)"><i class="fa fa-pencil-alt"></i>
</button>
</span> </span>
</div> </div>

View File

@ -2,6 +2,9 @@ angular.module('portainer.app').component('endpointItem', {
templateUrl: 'app/portainer/components/endpoint-list/endpoint-item/endpointItem.html', templateUrl: 'app/portainer/components/endpoint-list/endpoint-item/endpointItem.html',
bindings: { bindings: {
model: '<', model: '<',
onSelect: '<' onSelect: '<',
} onEdit: '<',
isAdmin:'<'
},
controller: 'EndpointItemController'
}); });

View File

@ -11,6 +11,8 @@ angular.module('portainer.app').component('endpointList', {
endpoints: '<', endpoints: '<',
dashboardAction: '<', dashboardAction: '<',
snapshotAction: '<', snapshotAction: '<',
showSnapshotAction: '<' showSnapshotAction: '<',
editAction: '<',
isAdmin:'<'
} }
}); });

View File

@ -24,6 +24,8 @@
ng-repeat="endpoint in $ctrl.endpoints | filter:$ctrl.state.textFilter" ng-repeat="endpoint in $ctrl.endpoints | filter:$ctrl.state.textFilter"
model="endpoint" model="endpoint"
on-select="$ctrl.dashboardAction" on-select="$ctrl.dashboardAction"
on-edit="$ctrl.editAction"
is-admin="$ctrl.isAdmin"
></endpoint-item> ></endpoint-item>
<div ng-if="!$ctrl.endpoints" class="text-center text-muted"> <div ng-if="!$ctrl.endpoints" class="text-center text-muted">
Loading... Loading...

View File

@ -44,6 +44,8 @@
dashboard-action="goToDashboard" dashboard-action="goToDashboard"
show-snapshot-action="!applicationState.application.authentication || isAdmin" show-snapshot-action="!applicationState.application.authentication || isAdmin"
snapshot-action="triggerSnapshot" snapshot-action="triggerSnapshot"
edit-action="goToEdit"
is-admin="isAdmin"
></endpoint-list> ></endpoint-list>
</div> </div>
</div> </div>

View File

@ -62,6 +62,12 @@ function ($q, $scope, $state, Authentication, EndpointService, EndpointHelper, G
}); });
} }
$scope.goToEdit = goToEdit;
function goToEdit(id) {
$state.go('portainer.endpoints.endpoint', { id: id });
}
function initView() { function initView() {
$scope.isAdmin = Authentication.getUserDetails().role === 1; $scope.isAdmin = Authentication.getUserDetails().role === 1;