2016-09-23 04:54:58 +00:00
< rd-header >
2018-06-06 16:12:35 +00:00
< rd-header-title title-text = "Service details" >
2018-02-01 12:27:52 +00:00
< a data-toggle = "tooltip" title = "Refresh" ui-sref = "docker.services.service({id: service.Id})" ui-sref-opts = "{reload: true}" >
2018-03-13 05:36:53 +00:00
< i class = "fa fa-sync" aria-hidden = "true" > < / i >
2016-09-23 04:54:58 +00:00
< / a >
< / rd-header-title >
< rd-header-content >
2018-02-01 12:27:52 +00:00
< a ui-sref = "docker.services" > Services< / a > > < a ui-sref = "docker.services.service({id: service.Id})" > {{ service.Name }}< / a >
2016-09-23 04:54:58 +00:00
< / rd-header-content >
< / rd-header >
< div class = "row" >
2017-03-20 20:28:09 +00:00
< div ng-if = "isUpdating" class = "col-lg-12 col-md-12 col-xs-12" >
< div class = "alert alert-info" role = "alert" id = "service-update-alert" >
< p > This service is being updated. Editing this service is currently disabled.< / p >
2018-02-01 12:27:52 +00:00
< a ui-sref = "docker.services.service({id: service.Id}, {reload: true})" > Refresh to see if this service has finished updated.< / a >
2017-03-20 20:28:09 +00:00
< / div >
< / div >
< / div >
< div class = "row" >
< div class = "col-lg-9 col-md-9 col-xs-9" >
2016-09-23 04:54:58 +00:00
< rd-widget >
2018-06-06 16:12:35 +00:00
< rd-widget-header icon = "fa-list-alt" title-text = "Service details" > < / rd-widget-header >
2016-09-23 04:54:58 +00:00
< rd-widget-body classes = "no-padding" >
< table class = "table" >
< tbody >
< tr >
< td > Name< / td >
2017-03-20 20:28:09 +00:00
< td ng-if = "applicationState.endpoint.apiVersion <= 1.24" >
< input type = "text" class = "form-control" ng-model = "service.Name" ng-change = "updateServiceAttribute(service, 'Name')" ng-disabled = "isUpdating" >
2016-09-23 04:54:58 +00:00
< / td >
2017-03-20 20:28:09 +00:00
< td ng-if = "applicationState.endpoint.apiVersion >= 1.25" >
{{ service.Name }}
2016-09-23 04:54:58 +00:00
< / td >
< / tr >
< tr >
< td > ID< / td >
< td >
{{ service.Id }}
< / td >
< / tr >
2017-03-20 20:28:09 +00:00
< tr ng-if = "service.CreatedAt" >
< td > Created at< / td >
< td > {{ service.CreatedAt|getisodate}}< / td >
< / tr >
< tr ng-if = "service.UpdatedAt" >
< td > Last updated at< / td >
< td > {{ service.UpdatedAt|getisodate }}< / td >
< / tr >
< tr ng-if = "service.Version" >
< td > Version< / td >
< td > {{ service.Version }}< / td >
< / tr >
2016-09-23 04:54:58 +00:00
< tr >
< td > Scheduling mode< / td >
< td > {{ service.Mode }}< / td >
< / tr >
< tr ng-if = "service.Mode === 'replicated'" >
< td > Replicas< / td >
< td >
2017-03-20 20:28:09 +00:00
< span ng-if = "service.Mode === 'replicated'" >
< input class = "input-sm" type = "number" ng-model = "service.Replicas" ng-change = "updateServiceAttribute(service, 'Replicas')" ng-disabled = "isUpdating" / >
2016-09-23 04:54:58 +00:00
< / span >
< / td >
< / tr >
< tr >
< td > Image< / td >
2016-12-25 20:31:22 +00:00
< td >
2017-11-20 13:34:14 +00:00
< input type = "text" class = "form-control" uib-typeahead = "image for image in availableImages | filter:$viewValue | limitTo:5"
ng-model="service.Image" ng-change="updateServiceAttribute(service, 'Image')" id="image_name" ng-disabled="isUpdating">
2016-12-25 20:31:22 +00:00
< / td >
< / tr >
2018-01-09 09:40:30 +00:00
< tr >
2017-07-08 09:34:21 +00:00
< td colspan = "2" >
2018-03-14 05:32:14 +00:00
< a ng-if = "applicationState.endpoint.apiVersion >= 1.30" class = "btn btn-primary btn-sm" type = "button" ui-sref = "docker.services.service.logs({id: service.Id})" > < i class = "fa fa-file-alt space-right" aria-hidden = "true" > < / i > Service logs< / a >
2018-01-09 09:40:30 +00:00
< button type = "button" class = "btn btn-primary btn-sm" ng-disabled = "state.updateInProgress || isUpdating" ng-click = "forceUpdateService(service)" button-spinner = "state.updateInProgress" ng-if = "applicationState.endpoint.apiVersion >= 1.25" >
2018-03-13 05:36:53 +00:00
< span ng-hide = "state.updateInProgress" > < i class = "fa fa-sync space-right" aria-hidden = "true" > < / i > Update the service< / span >
2018-01-09 09:40:30 +00:00
< span ng-show = "state.updateInProgress" > Update in progress...< / span >
< / button >
< button type = "button" class = "btn btn-danger btn-sm" ng-disabled = "state.deletionInProgress || isUpdating" ng-click = "removeService()" button-spinner = "state.deletionInProgress" >
2018-03-13 05:36:53 +00:00
< span ng-hide = "state.deletionInProgress" > < i class = "fa fa-trash-alt space-right" aria-hidden = "true" > < / i > Delete the service< / span >
2018-01-09 09:40:30 +00:00
< span ng-show = "state.deletionInProgress" > Deletion in progress...< / span >
< / button >
2017-07-08 09:34:21 +00:00
< / td >
< / tr >
2016-09-23 04:54:58 +00:00
< / tbody >
< / table >
< / rd-widget-body >
2017-03-20 20:28:09 +00:00
< rd-widget-footer >
< p class = "small text-muted" >
Do you need help? View the Docker Service documentation < a href = "https://docs.docker.com/engine/reference/commandline/service_update/" target = "self" > here< / a > .
< / p >
< div class = "btn-toolbar" role = "toolbar" >
< div class = "btn-group" role = "group" >
< button type = "button" class = "btn btn-primary" ng-disabled = "!hasChanges(service, ['Mode', 'Replicas', 'Image', 'Name'])" ng-click = "updateService(service)" > Apply changes< / button >
< button type = "button" class = "btn btn-default dropdown-toggle" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" >
< span class = "caret" > < / span >
< / button >
< ul class = "dropdown-menu" >
< li > < a ng-click = "cancelChanges(service, ['Mode', 'Replicas', 'Image', 'Name'])" > Reset changes< / a > < / li >
< li > < a ng-click = "cancelChanges(service)" > Reset all changes< / a > < / li >
< / ul >
< / div >
2016-11-09 00:23:56 +00:00
< / div >
< / rd-widget-footer >
2016-09-23 04:54:58 +00:00
< / rd-widget >
< / div >
2017-03-20 20:28:09 +00:00
< div class = "col-lg-3 col-md-3 col-xs-3" >
2016-09-23 04:54:58 +00:00
< rd-widget >
2018-06-06 16:12:35 +00:00
< rd-widget-header icon = "fa-bars" title-text = "Quick navigation" > < / rd-widget-header >
2016-09-23 04:54:58 +00:00
< rd-widget-body classes = "no-padding" >
2017-03-20 20:28:09 +00:00
< ul class = "nav nav-pills nav-stacked" >
< li > < a href ng-click = "goToItem('service-env-variables')" > Environment variables< / a > < / li >
< li > < a href ng-click = "goToItem('service-container-labels')" > Container labels< / a > < / li >
< li > < a href ng-click = "goToItem('service-mounts')" > Mounts< / a > < / li >
< li > < a href ng-click = "goToItem('service-network-specs')" > Network & published ports< / a > < / li >
< li > < a href ng-click = "goToItem('service-resources')" > Resource limits & reservations< / a > < / li >
< li > < a href ng-click = "goToItem('service-placement-constraints')" > Placement constraints< / a > < / li >
2017-07-24 09:59:09 +00:00
< li ng-if = "applicationState.endpoint.apiVersion >= 1.30" > < a href ng-click = "goToItem('service-placement-preferences')" > Placement preferences< / a > < / li >
2017-03-20 20:28:09 +00:00
< li > < a href ng-click = "goToItem('service-restart-policy')" > Restart policy< / a > < / li >
< li > < a href ng-click = "goToItem('service-update-config')" > Update configuration< / a > < / li >
2017-12-22 09:05:31 +00:00
< li > < a href ng-click = "goToItem('service-logging')" > Logging< / a > < / li >
2017-03-20 20:28:09 +00:00
< li > < a href ng-click = "goToItem('service-labels')" > Service labels< / a > < / li >
2017-11-06 08:47:31 +00:00
< li > < a href ng-click = "goToItem('service-configs')" > Configs< / a > < / li >
2017-07-24 09:59:09 +00:00
< li ng-if = "applicationState.endpoint.apiVersion >= 1.25" > < a href ng-click = "goToItem('service-secrets')" > Secrets< / a > < / li >
2017-03-20 20:28:09 +00:00
< li > < a href ng-click = "goToItem('service-tasks')" > Tasks< / a > < / li >
2017-06-20 10:54:27 +00:00
< / ul >
2016-09-23 04:54:58 +00:00
< / rd-widget-body >
< / rd-widget >
< / div >
< / div >
2017-03-20 20:28:09 +00:00
2017-07-12 07:51:51 +00:00
<!-- access - control - panel -->
< por-access-control-panel
ng-if="service & & applicationState.application.authentication"
2017-07-20 13:48:05 +00:00
resource-id="service.Id"
2017-07-12 07:51:51 +00:00
resource-control="service.ResourceControl"
resource-type="'service'">
< / por-access-control-panel >
<!-- !access - control - panel -->
2017-05-23 18:56:10 +00:00
2017-03-20 20:28:09 +00:00
< div class = "row" >
< hr >
< div class = "col-lg-12 col-md-12 col-xs-12" >
< h3 id = "container-specs" > Container specification< / h3 >
2018-02-01 12:27:52 +00:00
< div id = "service-container-spec" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/container-specs.html'" > < / div >
< div id = "service-env-variables" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/environmentvariables.html'" > < / div >
< div id = "service-container-labels" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/containerlabels.html'" > < / div >
< div id = "service-mounts" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/mounts.html'" > < / div >
2017-03-20 20:28:09 +00:00
< / div >
< / div >
< div class = "row" >
< hr >
< div class = "col-lg-12 col-md-12 col-xs-12" >
< h3 id = "service-network-specs" > Networks & ports< / h3 >
2018-02-01 12:27:52 +00:00
< div id = "service-networks" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/networks.html'" > < / div >
< div id = "service-published-ports" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/ports.html'" > < / div >
< div id = "service-hosts-entries" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/hosts.html'" > < / div >
2017-03-20 20:28:09 +00:00
< / div >
< / div >
< div class = "row" >
< hr >
< div class = "col-lg-12 col-md-12 col-xs-12" >
< h3 id = "service-specs" > Service specification< / h3 >
2018-02-01 12:27:52 +00:00
< div id = "service-resources" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/resources.html'" > < / div >
< div id = "service-placement-constraints" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/constraints.html'" > < / div >
< div id = "service-placement-preferences" ng-if = "applicationState.endpoint.apiVersion >= 1.30" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/placementPreferences.html'" > < / div >
< div id = "service-restart-policy" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/restart.html'" > < / div >
< div id = "service-update-config" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/updateconfig.html'" > < / div >
< div id = "service-logging" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/logging.html'" > < / div >
< div id = "service-labels" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/servicelabels.html'" > < / div >
< div id = "service-configs" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/configs.html'" > < / div >
< div id = "service-secrets" ng-if = "applicationState.endpoint.apiVersion >= 1.25" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/secrets.html'" > < / div >
< div id = "service-tasks" class = "padding-top" ng-include = "'app/docker/views/services/edit/includes/tasks.html'" > < / div >
2017-03-20 20:28:09 +00:00
< / div >
< / div >