2017-10-15 17:24:40 +00:00
< rd-header >
< rd-header-title title = "Stack details" >
2018-02-01 12:27:52 +00:00
< a data-toggle = "tooltip" title = "Refresh" ui-sref = "docker.stacks.stack({id: stack.Id})" ui-sref-opts = "{reload: true}" >
2018-03-13 05:36:53 +00:00
< i class = "fa fa-sync" aria-hidden = "true" > < / i >
2017-10-15 17:24:40 +00:00
< / a >
< / rd-header-title >
< rd-header-content >
2018-02-01 12:27:52 +00:00
< a ui-sref = "docker.stacks" > Stacks< / a > > < a ui-sref = "docker.stacks.stack({id: stack.Id})" > {{ stack.Name }}< / a >
2017-10-15 17:24:40 +00:00
< / rd-header-content >
< / rd-header >
<!-- access - control - panel -->
< por-access-control-panel
ng-if="stack & & applicationState.application.authentication"
resource-id="stack.Name"
resource-control="stack.ResourceControl"
resource-type="'stack'">
< / por-access-control-panel >
<!-- !access - control - panel -->
2017-12-06 11:04:02 +00:00
< div class = "row" >
< div class = "col-sm-12" >
< stack-services-datatable
title="Services" title-icon="fa-list-alt"
dataset="services" table-key="stack-services"
order-by="Name"
nodes="nodes"
public-url="state.publicURL"
show-text-filter="true"
2018-04-04 09:45:35 +00:00
scale-action="scaleAction"
2017-12-06 11:04:02 +00:00
>< / stack-services-datatable >
< / div >
< / div >
< div class = "row" >
< div class = "col-sm-12" >
< tasks-datatable
title="Tasks" title-icon="fa-tasks"
dataset="tasks" table-key="stack-tasks"
order-by="Updated" reverse-order="true"
nodes="nodes"
show-text-filter="true"
show-slot-column="true"
2018-02-28 06:19:28 +00:00
show-logs-button="applicationState.endpoint.apiVersion >= 1.30"
2018-05-06 07:15:57 +00:00
agent-powered="applicationState.endpoint.mode.agentProxy"
2017-12-06 11:04:02 +00:00
>< / tasks-datatable >
< / div >
< / div >
2017-10-15 17:24:40 +00:00
< div class = "row" ng-if = "stackFileContent" >
< div class = "col-sm-12" >
< rd-widget >
2018-03-13 05:36:53 +00:00
< rd-widget-header icon = "fa-pencil-alt" title = "Stack editor" > < / rd-widget-header >
2017-10-15 17:24:40 +00:00
< rd-widget-body >
< form class = "form-horizontal" >
< div class = "form-group" >
< span class = "col-sm-12 text-muted small" >
You can get more information about Compose file format in the < a href = "https://docs.docker.com/compose/compose-file/" target = "_blank" > official documentation< / a > .
< / span >
< / div >
< div class = "form-group" >
< div class = "col-sm-12" >
2018-02-27 07:19:21 +00:00
< code-editor
identifier="stack-editor"
placeholder="# Define or paste the content of your docker-compose file here"
yml="true"
on-change="editorUpdate"
value="stackFileContent"
>< / code-editor >
2017-10-15 17:24:40 +00:00
< / div >
< / div >
2017-11-01 09:30:02 +00:00
< div class = "col-sm-12 form-section-title" >
Environment
< / div >
<!-- environment - variables -->
< div class = "form-group" >
< div class = "col-sm-12" style = "margin-top: 5px;" >
< label class = "control-label text-left" > Environment variables< / label >
< span class = "label label-default interactive" style = "margin-left: 10px;" ng-click = "addEnvironmentVariable()" >
< i class = "fa fa-plus-circle" aria-hidden = "true" > < / i > add environment variable
< / span >
< / div >
<!-- environment - variable - input - list -->
< div class = "col-sm-12 form-inline" style = "margin-top: 10px;" >
< div ng-repeat = "variable in stack.Env" style = "margin-top: 2px;" >
< div class = "input-group col-sm-5 input-group-sm" >
< span class = "input-group-addon" > name< / span >
< input type = "text" class = "form-control" ng-model = "variable.name" placeholder = "e.g. FOO" >
< / div >
< div class = "input-group col-sm-5 input-group-sm" >
< span class = "input-group-addon" > value< / span >
< input type = "text" class = "form-control" ng-model = "variable.value" placeholder = "e.g. bar" >
< / div >
< button class = "btn btn-sm btn-danger" type = "button" ng-click = "removeEnvironmentVariable($index)" >
< i class = "fa fa-trash" aria-hidden = "true" > < / i >
< / button >
< / div >
< / div >
<!-- !environment - variable - input - list -->
< / div >
<!-- !environment - variables -->
2018-01-20 17:05:01 +00:00
<!-- options -->
< div class = "col-sm-12 form-section-title" ng-if = "applicationState.endpoint.apiVersion >= 1.27" >
Options
< / div >
< div class = "form-group" ng-if = "applicationState.endpoint.apiVersion >= 1.27" >
< div class = "col-sm-12" >
< label for = "prune" class = "control-label text-left" >
Prune services
< portainer-tooltip position = "bottom" message = "Prune services that are no longer referenced." > < / portainer-tooltip >
< / label >
< label class = "switch" style = "margin-left: 20px;" >
< input name = "prune" type = "checkbox" ng-model = "formValues.Prune" > < i > < / i >
< / label >
< / div >
< / div >
<!-- !options -->
2017-10-15 17:24:40 +00:00
< div class = "col-sm-12 form-section-title" >
Actions
< / div >
< div class = "form-group" >
< div class = "col-sm-12" >
2017-11-12 21:39:12 +00:00
< button type = "button" class = "btn btn-sm btn-primary" ng-disabled = "state.actionInProgress" ng-click = "deployStack()" button-spinner = "state.actionInProgress" >
< span ng-hide = "state.actionInProgress" > Update the stack< / span >
< span ng-show = "state.actionInProgress" > Deployment in progress...< / span >
2017-11-12 19:27:28 +00:00
< / button >
2017-10-15 17:24:40 +00:00
< / div >
< / div >
< / form >
< / rd-widget-body >
< / rd-widget >
< / div >
< / div >