2016-06-08 06:23:11 +00:00
< rd-header >
2016-06-14 02:32:44 +00:00
< rd-header-title title = "Container list" >
< a data-toggle = "tooltip" title = "Refresh" ui-sref = "containers" ui-sref-opts = "{reload: true}" >
< i class = "fa fa-refresh" aria-hidden = "true" > < / i >
< / a >
2017-01-24 01:28:40 +00:00
< i id = "loadContainersSpinner" class = "fa fa-cog fa-spin" style = "margin-left: 5px;" > < / i >
2016-06-14 02:32:44 +00:00
< / rd-header-title >
2016-06-08 06:23:11 +00:00
< rd-header-content > Containers< / rd-header-content >
< / rd-header >
2016-06-02 05:34:03 +00:00
< div class = "col-lg-12" >
< rd-widget >
2016-09-23 05:19:57 +00:00
< rd-widget-header icon = "fa-server" title = "Containers" >
2016-07-07 01:17:44 +00:00
< div class = "pull-right" >
2017-01-24 01:28:40 +00:00
Items per page:
< select ng-model = "state.pagination_count" ng-change = "changePaginationCount()" >
< option value = "0" > All< / option >
< option value = "10" > 10< / option >
< option value = "25" > 25< / option >
< option value = "50" > 50< / option >
< option value = "100" > 100< / option >
< / select >
2016-07-07 01:17:44 +00:00
< / div >
2016-06-02 05:34:03 +00:00
< / rd-widget-header >
< rd-widget-taskbar classes = "col-lg-12" >
< div class = "pull-left" >
< div class = "btn-group" role = "group" aria-label = "..." >
2017-03-20 16:39:53 +00:00
< button type = "button" class = "btn btn-success btn-responsive" ng-click = "startAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-play space-right" aria-hidden = "true" > < / i > Start< / button >
< button type = "button" class = "btn btn-danger btn-responsive" ng-click = "stopAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-stop space-right" aria-hidden = "true" > < / i > Stop< / button >
< button type = "button" class = "btn btn-danger btn-responsive" ng-click = "killAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-bomb space-right" aria-hidden = "true" > < / i > Kill< / button >
2016-10-27 08:33:39 +00:00
< button type = "button" class = "btn btn-primary btn-responsive" ng-click = "restartAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-refresh space-right" aria-hidden = "true" > < / i > Restart< / button >
< button type = "button" class = "btn btn-primary btn-responsive" ng-click = "pauseAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-pause space-right" aria-hidden = "true" > < / i > Pause< / button >
< button type = "button" class = "btn btn-primary btn-responsive" ng-click = "unpauseAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-play space-right" aria-hidden = "true" > < / i > Resume< / button >
2017-04-25 08:20:57 +00:00
< button type = "button" class = "btn btn-danger btn-responsive" ng-click = "confirmRemoveAction()" ng-disabled = "!state.selectedItemCount" > < i class = "fa fa-trash space-right" aria-hidden = "true" > < / i > Remove< / button >
2016-06-02 05:34:03 +00:00
< / div >
2017-03-27 12:44:39 +00:00
< a class = "btn btn-primary" type = "button" ui-sref = "actions.create.container" > < i class = "fa fa-plus space-right" aria-hidden = "true" > < / i > Add container< / a >
2016-06-02 05:34:03 +00:00
< / div >
< div class = "pull-right" >
2016-07-07 02:31:16 +00:00
< input type = "checkbox" ng-model = "state.displayAll" id = "displayAll" ng-change = "toggleGetAll()" style = "margin-top: -2px; margin-right: 5px;" / > < label for = "displayAll" > Show all containers< / label >
2016-06-02 05:34:03 +00:00
< input type = "text" id = "filter" ng-model = "state.filter" placeholder = "Filter..." class = "form-control input-sm" / >
< / div >
< / rd-widget-taskbar >
< rd-widget-body classes = "no-padding" >
< div class = "table-responsive" >
2016-06-29 09:04:29 +00:00
< table class = "table table-hover" >
2016-06-02 05:34:03 +00:00
< thead >
< tr >
2017-01-04 20:15:41 +00:00
< th >
< input type = "checkbox" ng-model = "allSelected" ng-change = "selectItems(allSelected)" / >
< / th >
2016-06-29 09:04:29 +00:00
< th >
2016-07-12 22:53:03 +00:00
< a ui-sref = "containers" ng-click = "order('Status')" >
2016-06-29 09:04:29 +00:00
State
2016-10-01 03:45:06 +00:00
< span ng-show = "sortType == 'Status' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'Status' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
2016-06-29 09:04:29 +00:00
< / a >
< / th >
2016-06-02 05:34:03 +00:00
< th >
2016-06-14 02:13:52 +00:00
< a ui-sref = "containers" ng-click = "order('Names')" >
2016-06-02 05:34:03 +00:00
Name
< span ng-show = "sortType == 'Names' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'Names' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
2016-03-19 22:30:47 +00:00
< / a >
2016-06-02 05:34:03 +00:00
< / th >
2016-08-23 22:58:55 +00:00
< th >
< a ui-sref = "containers" ng-click = "order('Image')" >
Image
< span ng-show = "sortType == 'Image' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'Image' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
< / a >
< / th >
2016-07-12 22:53:03 +00:00
< th ng-if = "state.displayIP" >
2016-06-29 09:04:29 +00:00
< a ui-sref = "containers" ng-click = "order('IP')" >
IP Address
< span ng-show = "sortType == 'IP' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'IP' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
< / a >
< / th >
2017-01-22 23:14:34 +00:00
< th ng-if = "applicationState.endpoint.mode.provider === 'DOCKER_SWARM'" >
2016-06-29 09:04:29 +00:00
< a ui-sref = "containers" ng-click = "order('Host')" >
2016-08-18 04:55:19 +00:00
Host IP
2016-06-29 09:04:29 +00:00
< span ng-show = "sortType == 'Host' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'Host' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
< / a >
< / th >
2016-06-02 05:34:03 +00:00
< th >
2016-08-23 22:58:55 +00:00
< a ui-sref = "containers" ng-click = "order('Ports')" >
2017-01-09 08:50:19 +00:00
Published Ports
2016-08-23 22:58:55 +00:00
< span ng-show = "sortType == 'Ports' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'Ports' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
2016-03-19 22:30:47 +00:00
< / a >
2016-06-02 05:34:03 +00:00
< / th >
2017-03-12 16:24:15 +00:00
< th ng-if = "applicationState.application.authentication" >
< a ui-sref = "containers" ng-click = "order('Metadata.ResourceControl.OwnerId')" >
Ownership
< span ng-show = "sortType == 'Metadata.ResourceControl.OwnerId' && !sortReverse" class = "glyphicon glyphicon-chevron-down" > < / span >
< span ng-show = "sortType == 'Metadata.ResourceControl.OwnerId' && sortReverse" class = "glyphicon glyphicon-chevron-up" > < / span >
< / a >
< / th >
2016-06-02 05:34:03 +00:00
< / tr >
< / thead >
< tbody >
2017-01-24 01:28:40 +00:00
< tr dir-paginate = "container in (state.filteredContainers = ( containers | filter:state.filter | orderBy:sortType:sortReverse | itemsPerPage: state.pagination_count))" >
2016-06-02 05:34:03 +00:00
< td > < input type = "checkbox" ng-model = "container.Checked" ng-change = "selectItem(container)" / > < / td >
2017-04-25 09:09:06 +00:00
< td >
< span ng-if = "['starting','healthy','unhealthy'].indexOf(container.Status) !== -1" class = "label label-{{ container.Status|containerstatusbadge }} interactive" uib-tooltip = "This container has a health check" > {{ container.Status }}< / span >
< span ng-if = "['starting','healthy','unhealthy'].indexOf(container.Status) === -1" class = "label label-{{ container.Status|containerstatusbadge }}" > {{ container.Status }}< / span >
< / td >
2017-03-22 07:13:59 +00:00
< td ng-if = "applicationState.endpoint.mode.provider === 'DOCKER_SWARM'" > < a ui-sref = "container({id: container.Id})" > {{ container|swarmcontainername|truncate: 40}}< / a > < / td >
< td ng-if = "applicationState.endpoint.mode.provider !== 'DOCKER_SWARM'" > < a ui-sref = "container({id: container.Id})" > {{ container|containername|truncate: 40}}< / a > < / td >
2017-03-12 17:24:41 +00:00
< td > < a ui-sref = "image({id: container.Image})" > {{ container.Image | hideshasum }}< / a > < / td >
2016-07-12 22:53:03 +00:00
< td ng-if = "state.displayIP" > {{ container.IP ? container.IP : '-' }}< / td >
2017-01-22 23:14:34 +00:00
< td ng-if = "applicationState.endpoint.mode.provider === 'DOCKER_SWARM'" > {{ container.hostIP }}< / td >
2016-08-23 22:58:55 +00:00
< td >
2017-05-01 10:19:43 +00:00
< a ng-if = "container.Ports.length > 0" ng-repeat = "p in container.Ports" class = "image-tag" ng-href = "http://{{ PublicURL || p.host }}:{{p.public}}" target = "_blank" >
2016-10-01 03:55:11 +00:00
< i class = "fa fa-external-link" aria-hidden = "true" > < / i > {{p.public}}:{{ p.private }}
2016-08-23 22:58:55 +00:00
< / a >
< span ng-if = "container.Ports.length == 0" > -< / span >
< / td >
2017-03-12 16:24:15 +00:00
< td ng-if = "applicationState.application.authentication" >
< span ng-if = "!container.Metadata.ResourceControl" >
< i class = "fa fa-eye" aria-hidden = "true" > < / i >
< span ng-if = "container.Labels['com.docker.swarm.service.id']" >
Public service
< / span >
< span ng-if = "!container.Labels['com.docker.swarm.service.id']" >
Public
< / span >
< / span >
< span ng-if = "container.Metadata.ResourceControl.OwnerId === user.ID" >
< i class = "fa fa-eye-slash" aria-hidden = "true" > < / i >
< span ng-if = "container.Labels['com.docker.swarm.service.id']" >
Private service
< / span >
< span ng-if = "!container.Labels['com.docker.swarm.service.id']" >
Private
< a ng-click = "switchOwnership(container)" class = "interactive" > < i class = "fa fa-eye" aria-hidden = "true" style = "margin-left: 7px;" > < / i > Switch to public< / a >
< / span >
< / span >
< span ng-if = "container.Metadata.ResourceControl && container.Metadata.ResourceControl.OwnerId !== user.ID" >
< i class = "fa fa-eye-slash" aria-hidden = "true" > < / i >
< span ng-if = "container.Labels['com.docker.swarm.service.id']" >
Private service < span ng-if = "container.Owner" > (owner: {{ container.Owner }})< / span >
< / span >
< span ng-if = "!container.Labels['com.docker.swarm.service.id']" >
Private < span ng-if = "container.Owner" > (owner: {{ container.Owner }})< / span >
< a ng-click = "switchOwnership(container)" class = "interactive" > < i class = "fa fa-eye" aria-hidden = "true" style = "margin-left: 7px;" > < / i > Switch to public< / a >
< / span >
< / span >
< / td >
2016-06-02 05:34:03 +00:00
< / tr >
2016-10-08 01:59:58 +00:00
< tr ng-if = "!containers" >
2017-03-12 16:24:15 +00:00
< td colspan = "9" class = "text-center text-muted" > Loading...< / td >
2016-10-08 01:59:58 +00:00
< / tr >
2016-10-07 04:55:09 +00:00
< tr ng-if = "containers.length == 0" >
2017-03-12 16:24:15 +00:00
< td colspan = "9" class = "text-center text-muted" > No containers available.< / td >
2016-10-07 04:55:09 +00:00
< / tr >
2016-06-02 05:34:03 +00:00
< / tbody >
< / table >
2016-11-17 12:50:46 +00:00
< div ng-if = "containers" class = "pull-left pagination-controls" >
< dir-pagination-controls > < / dir-pagination-controls >
< / div >
2016-06-02 05:34:03 +00:00
< / div >
< / rd-widget-body >
< rd-widget >
< / div >