1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-05 05:45:22 +02:00

refactor(icons): replace fa icons [EE-4459] (#7907)

refactor(icons): remove fontawesome EE-4459

refactor(icon) replace feather with lucide EE-4472
This commit is contained in:
Ali 2022-11-28 15:00:28 +13:00 committed by GitHub
parent 9dfac98a26
commit d78b762f7b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
498 changed files with 2102 additions and 2817 deletions

View file

@ -30,9 +30,7 @@
<div class="form-group">
<div class="col-sm-12 mt-1">
<label class="control-label text-left space-right">Labels</label>
<span class="label label-default interactive vertical-center space-left" ng-click="ctrl.addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add label
</span>
<span class="label label-default interactive vertical-center space-left" ng-click="ctrl.addLabel()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add label </span>
</div>
<!-- labels-input-list -->
<div class="col-sm-12 form-inline mt-2">
@ -46,7 +44,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="ctrl.removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -3,7 +3,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="clipboard" feather-icon="true" title-text="Config details"></rd-widget-header>
<rd-widget-header icon="clipboard" title-text="Config details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -16,10 +16,10 @@
<td>
{{ config.Id }}
<button authorization="DockerConfigDelete" class="btn btn-xs btn-dangerlight" ng-click="removeConfig(config.Id)"
><pr-icon icon="'trash-2'" feather="true"></pr-icon>Delete this config</button
><pr-icon icon="'trash-2'"></pr-icon>Delete this config</button
>
<button authorization="DockerConfigCreate" class="btn btn-xs btn-secondary" ui-sref="docker.configs.new({id: config.Id})"
><pr-icon icon="'copy'" feather="true"></pr-icon>Clone config</button
><pr-icon icon="'copy'"></pr-icon>Clone config</button
>
</td>
</tr>
@ -63,7 +63,7 @@
<div class="row" ng-if="config">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="code" feather-icon="true" title-text="Config content"></rd-widget-header>
<rd-widget-header icon="code" title-text="Config content"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">

View file

@ -2,9 +2,9 @@
title="'Container console'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(container.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:container.Id
}, 'Console']"
>
@ -13,25 +13,25 @@
<div class="row" ng-init="autoconnectAttachView()" ng-show="loaded">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="terminal" feather-icon="true" title-text="Attach"></rd-widget-header>
<rd-widget-header icon="terminal" title-text="Attach"></rd-widget-header>
<rd-widget-body>
<div class="small text-warning" ng-if="!container.Config.OpenStdin">
<p>
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
The interactive-flag is not set. You might not be able to use the console properly.
</p>
</div>
<div class="small text-warning" ng-if="!container.Config.Tty">
<p>
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
The TTY-flag is not set. You might not be able to use the console properly.
</p>
</div>
<div class="small text-warning" ng-hide="container.State.Running">
<p>
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
The container is not running.
</p>
</div>

View file

@ -2,9 +2,9 @@
title="'Container console'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(container.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:container.Id
}, 'Console']"
>
@ -13,7 +13,7 @@
<div class="row" ng-init="initView()" ng-show="loaded">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="terminal" feather-icon="true" title-text="Execute"></rd-widget-header>
<rd-widget-header icon="terminal" title-text="Execute"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div ng-if="state === states.disconnected">
@ -23,8 +23,8 @@
<div class="col-lg-11 col-sm-10">
<div class="input-group" ng-if="!formValues.isCustomCommand">
<span class="input-group-addon">
<i class="fab fa-linux" aria-hidden="true" ng-if="imageOS == 'linux'"></i>
<i class="fab fa-windows" aria-hidden="true" ng-if="imageOS == 'windows'"></i>
<pr-icon ng-if="imageOS == 'linux'" icon="'svg-linux'"></pr-icon>
<pr-icon ng-if="imageOS == 'windows'" icon="'layout-grid'"></pr-icon>
</span>
<select class="form-control" ng-model="formValues.command" id="command">
<option value="ash" ng-if="imageOS == 'linux'">/bin/ash</option>
@ -61,8 +61,8 @@
<button type="button" class="btn btn-primary" ng-disabled="!container.State.Running" ng-click="connectExec()">
<span>Connect</span>
</button>
<span class="small text-danger" ng-hide="container.State.Running">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
<span class="small text-danger vertical-center" ng-hide="container.State.Running">
<pr-icon icon="'alert-triangle'" mode="'danger'"></pr-icon>
The container is not running.
</span>
</div>

View file

@ -3,7 +3,7 @@
<information-panel title-text="Caution" ng-if="state.mode == 'duplicate'">
<span class="small">
<p class="text-muted">
<i class="fa fa-exclamation-circle orange-icon" aria-hidden="true" style="margin-right: 2px"></i>
<pr-icon icon="'alert-triangle'" mode="'warning'" class-name="'mr-0.5'"></pr-icon>
The new container may fail to start if the image is changed, and settings from the previous container aren't compatible. Common causes include entrypoint, cmd or
<a href="http://portainer.readthedocs.io/en/stable/agent.html" target="_blank">other settings</a> set by an image.
</p>
@ -25,7 +25,7 @@
<!-- !name-input -->
<div class="col-sm-12 form-section-title"> Image configuration </div>
<div ng-if="!formValues.RegistryModel.Registry && fromContainer">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
<span class="small text-danger" style="margin-left: 5px">
The Docker registry for the <code>{{ config.Image }}</code> image is not registered inside Portainer, you will not be able to create a container. Please register that
registry first.
@ -104,7 +104,7 @@
></portainer-tooltip>
</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addPortBinding()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> publish a new network port
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> publish a new network port
</span>
</div>
<!-- port-mapping-input-list -->
@ -117,7 +117,7 @@
</div>
<!-- !host-port -->
<span style="margin: 0 10px 0 10px">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
</span>
<!-- container-port -->
<div class="input-group col-sm-4 input-group-sm">
@ -132,7 +132,7 @@
<label class="btn btn-light" ng-model="portBinding.protocol" uib-btn-radio="'udp'">UDP</label>
</div>
<button class="btn btn-light" type="button" ng-click="removePortBinding($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
<!-- !protocol-actions -->
@ -191,7 +191,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="fa-cog" title-text="Advanced container settings"></rd-widget-header>
<rd-widget-header icon="settings" title-text="Advanced container settings"></rd-widget-header>
<rd-widget-body>
<ul class="nav nav-pills nav-justified">
<li class="active interactive"><a data-target="#command" data-toggle="tab">Command & logging</a></li>
@ -335,7 +335,7 @@
style="margin-left: 10px"
ng-click="!formValues.LogDriverName || formValues.LogDriverName === 'none' || addLogDriverOpt(formValues.LogDriverName)"
>
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add logging driver option
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add logging driver option
</span>
</div>
<!-- logging-opts-input-list -->
@ -350,7 +350,7 @@
<input type="text" class="form-control" ng-model="opt.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-light" type="button" ng-click="removeLogDriverOpt($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -368,7 +368,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Volume mapping</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addVolume()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> map additional volume
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> map additional volume
</span>
</div>
<!-- volumes-input-list -->
@ -389,7 +389,7 @@
<label class="btn btn-light" ng-model="volume.type" uib-btn-radio="'bind'" ng-click="volume.name = ''">Bind</label>
</div>
<button class="btn btn-light" type="button" ng-click="removeVolume($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
<!-- !volume-type -->
@ -397,7 +397,7 @@
<!-- !volume-line1 -->
<!-- volume-line2 -->
<div class="col-sm-12 form-inline" style="margin-top: 5px">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
<!-- volume -->
<div class="input-group input-group-sm col-sm-6" ng-if="volume.type === 'volume'">
<span class="input-group-addon">volume</span>
@ -526,7 +526,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Hosts file entries</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addExtraHost()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add additional entry
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add additional entry
</span>
</div>
<!-- extra-hosts-input-list -->
@ -537,7 +537,7 @@
<input type="text" class="form-control" ng-model="variable.value" placeholder="e.g. host:IP" />
</div>
<button class="btn btn-light" type="button" ng-click="removeExtraHost($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -554,9 +554,7 @@
<div class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Labels</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add label
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addLabel()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add label </span>
</div>
<!-- labels-input-list -->
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -570,7 +568,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -645,9 +643,7 @@
<div ng-if="showDeviceMapping" class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Devices</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addDevice()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add device
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addDevice()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add device </span>
</div>
<!-- devices-input-list -->
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -661,7 +657,7 @@
<input type="text" class="form-control" ng-model="device.pathInContainer" placeholder="e.g. /dev/tty0" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeDevice($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -672,9 +668,7 @@
<div ng-if="showSysctls" class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Sysctls</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addSysctl()">
<pr-icon icon="'plus'" feather="true"></pr-icon> add sysctl
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addSysctl()"> <pr-icon icon="'plus'"></pr-icon> add sysctl </span>
</div>
<!-- sysctls-input-list -->
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -688,7 +682,7 @@
<input type="text" class="form-control" ng-model="sysctl.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeSysctl($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>
@ -753,7 +747,7 @@
<div class="col-sm-8 small text-muted">
<div ng-messages="resourceForm.memory-reservation.$error">
<p class="vertical-center text-warning">
<pr-icon icon="'alert-triangle'" feather="true" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
</p>
</div>
</div>
@ -790,7 +784,7 @@
<div class="col-sm-8 small text-muted">
<div ng-messages="resourceForm.memory-limit.$error">
<p class="vertical-center text-warning">
<pr-icon icon="'alert-triangle'" feather="true" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Value must be between 0 and {{ state.sliderMaxMemory }}.
</p>
</div>
</div>
@ -829,7 +823,8 @@
</div>
<div class="col-sm-12" ng-if="state.settingUnlimitedResources">
<p class="text-muted mr-4">
<i class="fa fa-exclamation-circle text-warning mt-10" aria-hidden="true"></i> Updating any resource value to unlimited' will redeploy this container.
<pr-icon icon="'alert-triangle'" mode="'warning'" class-name="'mt-10'"></pr-icon>
Updating any resource value to unlimited' will redeploy this container.
</p>
</div>
</div>

View file

@ -6,35 +6,41 @@
>
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="settings" feather-icon="true" title-text="Actions"></rd-widget-header>
<rd-widget-header icon="settings" title-text="Actions"></rd-widget-header>
<rd-widget-body classes="padding">
<div class="btn-group" role="group" aria-label="...">
<button authorization="DockerContainerStart" class="btn btn-light btn-sm" ng-click="start()" ng-disabled="container.State.Running || container.IsPortainer">
<pr-icon icon="'play'" feather="true" class-name="'feather'"></pr-icon>
<pr-icon icon="'play'"></pr-icon>
Start
</button>
<button authorization="DockerContainerStop" class="btn btn-light btn-sm" ng-click="stop()" ng-disabled="!container.State.Running || container.IsPortainer">
<pr-icon icon="'square'" feather="true"></pr-icon>
<pr-icon icon="'square'"></pr-icon>
Stop
</button>
<button authorization="DockerContainerKill" class="btn btn-light btn-sm" ng-click="kill()" ng-disabled="!container.State.Running || container.IsPortainer">
<i class="fa fa-bomb space-right" aria-hidden="true"></i>Kill
<pr-icon icon="'bomb'"></pr-icon>
Kill
</button>
<button authorization="DockerContainerRestart" class="btn btn-light btn-sm" ng-click="restart()" ng-disabled="!container.State.Running || container.IsPortainer"
><i class="fa fa-sync space-right" aria-hidden="true"></i>Restart</button
<button authorization="DockerContainerRestart" class="btn btn-light btn-sm" ng-click="restart()" ng-disabled="!container.State.Running || container.IsPortainer">
<pr-icon icon="'refresh-cw'"></pr-icon>
Restart</button
>
<button
authorization="DockerContainerPause"
class="btn btn-light btn-sm"
ng-click="pause()"
ng-disabled="!container.State.Running || container.State.Paused || container.IsPortainer"
><i class="fa fa-pause space-right" aria-hidden="true"></i>Pause</button
>
<button authorization="DockerContainerUnpause" class="btn btn-light btn-sm" ng-click="unpause()" ng-disabled="!container.State.Paused || container.IsPortainer"
><i class="fa fa-play space-right" aria-hidden="true"></i>Resume</button
<pr-icon icon="'pause'"></pr-icon>
Pause</button
>
<button authorization="DockerContainerDelete" class="btn btn-dangerlight btn-sm" ng-click="confirmRemove()" ng-disabled="container.IsPortainer"
><i class="fa fa-trash-alt space-right" aria-hidden="true"></i>Remove</button
<button authorization="DockerContainerUnpause" class="btn btn-light btn-sm" ng-click="unpause()" ng-disabled="!container.State.Paused || container.IsPortainer">
<pr-icon icon="'play'"></pr-icon>
Resume</button
>
<button authorization="DockerContainerDelete" class="btn btn-dangerlight btn-sm" ng-click="confirmRemove()" ng-disabled="container.IsPortainer">
<pr-icon icon="'trash-2'"></pr-icon>
Remove</button
>
</div>
<div class="btn-group" role="group" aria-label="..." ng-if="displayRecreateButton" authorization="DockerContainerCreate">
@ -45,11 +51,15 @@
ng-click="recreate()"
button-spinner="state.recreateContainerInProgress"
>
<span ng-hide="state.recreateContainerInProgress"><i class="fa fa-sync space-right" aria-hidden="true"></i>Recreate</span>
<span ng-hide="state.recreateContainerInProgress" class="flex items-center">
<pr-icon icon="'refresh-cw'" class-name="'!mr-1'"></pr-icon>
Recreate</span
>
<span ng-show="state.recreateContainerInProgress">Recreation in progress...</span>
</button>
<a class="btn btn-light btn-sm" type="button" ui-sref="docker.containers.new({ from: container.Id, nodeName: nodeName })" ng-disabled="container.IsPortainer"
><i class="fa fa-copy space-right" aria-hidden="true"></i>Duplicate/Edit</a
<a class="btn btn-light btn-sm" type="button" ui-sref="docker.containers.new({ from: container.Id, nodeName: nodeName })" ng-disabled="container.IsPortainer">
<pr-icon icon="'copy'"></pr-icon>
Duplicate/Edit</a
>
</div>
</rd-widget-body>
@ -60,7 +70,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="box" feather-icon="true" title-text="Container status"></rd-widget-header>
<rd-widget-header icon="box" title-text="Container status"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -73,14 +83,18 @@
<td ng-if="!container.edit">
{{ container.Name | trimcontainername }}
<a authorization="DockerContainerRename" href="" data-toggle="tooltip" title="Edit container name" ng-click="container.edit = true;"
><pr-icon icon="'edit'" feather="true" className="'space-right'"></pr-icon
><pr-icon icon="'edit'" class-name="'space-right'"></pr-icon
></a>
</td>
<td ng-if="container.edit">
<form ng-submit="renameContainer()">
<input type="text" class="containerNameInput" ng-model="container.newContainerName" />
<a href="" ng-click="container.edit = false;"><i class="fa fa-times"></i></a>
<a href="" ng-click="renameContainer()"><i class="fa fa-check"></i></a>
<a href="" ng-click="container.edit = false;">
<pr-icon icon="'x'"></pr-icon>
</a>
<a href="" ng-click="renameContainer()">
<pr-icon icon="'check'"></pr-icon>
</a>
</form>
</td>
</tr>
@ -91,8 +105,8 @@
<tr>
<td>Status</td>
<td>
<i class="fa fa-heartbeat space-right green-icon" ng-if="container.State.Running"></i>
<i class="fa fa-heartbeat space-right red-icon" ng-if="!container.State.Running && container.State.Status !== 'created'"></i>
<pr-icon ng-if="container.State.Running" icon="'heart-pulse'" mode="'success'"></pr-icon>
<pr-icon ng-if="!container.State.Running && container.State.Status !== 'created'" icon="'heart-pulse'" mode="'danger'"></pr-icon>
{{ container.State | getstatetext }} for {{ activityTime
}}<span ng-if="!container.State.Running && container.State.Status !== 'created'"> with exit code {{ container.State.ExitCode }}</span>
</td>
@ -127,19 +141,19 @@
<td colspan="2">
<div class="btn-group" role="group" aria-label="...">
<a authorization="DockerContainerLogs" class="btn" type="button" ui-sref="docker.containers.container.logs({ id: container.Id })"
><pr-icon icon="'file-text'" feather="true" className="'space-right'"></pr-icon>Logs</a
><pr-icon icon="'file-text'" class-name="'space-right'"></pr-icon>Logs</a
>
<a authorization="DockerContainerInspect" class="btn" type="button" ui-sref="docker.containers.container.inspect({ id: container.Id })"
><pr-icon icon="'info'" feather="true" className="'space-right'"></pr-icon>Inspect</a
><pr-icon icon="'info'" class-name="'space-right'"></pr-icon>Inspect</a
>
<a authorization="DockerContainerStats" class="btn" type="button" ui-sref="docker.containers.container.stats({ id: container.Id })"
><pr-icon icon="'bar-chart'" feather="true" className="'space-right'"></pr-icon>Stats</a
><pr-icon icon="'bar-chart'" class-name="'space-right'"></pr-icon>Stats</a
>
<a authorization="DockerExecStart" class="btn" type="button" ui-sref="docker.containers.container.exec({ id: container.Id })"
><pr-icon icon="'terminal'" feather="true" className="'space-right'"></pr-icon>Console</a
><pr-icon icon="'terminal'" class-name="'space-right'"></pr-icon>Console</a
>
<a authorization="DockerContainerAttach" class="btn" type="button" ui-sref="docker.containers.container.attach({ id: container.Id })"
><pr-icon icon="'paperclip'" feather="true" className="'space-right'"></pr-icon>Attach</a
><pr-icon icon="'paperclip'" class-name="'space-right'"></pr-icon>Attach</a
>
</div>
</td>
@ -167,7 +181,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Create image"></rd-widget-header>
<rd-widget-header icon="list" title-text="Create image"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<!-- tag-description -->
@ -219,7 +233,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Container details"></rd-widget-header>
<rd-widget-header icon="list" title-text="Container details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table container-details-table">
<tbody>
@ -232,7 +246,11 @@
<tr ng-if="portBindings.length > 0">
<td>Port configuration</td>
<td>
<div ng-repeat="portMapping in portBindings"> {{ portMapping.host }} <i class="fa fa-long-arrow-alt-right"></i> {{ portMapping.container }} </div>
<div ng-repeat="portMapping in portBindings">
{{ portMapping.host }}
<pr-icon icon="'arrow-right'"></pr-icon>
{{ portMapping.container }}
</div>
</td>
</tr>
<tr>
@ -306,7 +324,7 @@
<div class="row" ng-if="container.Mounts.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="database" feather-icon="true" title-text="Volumes"></rd-widget-header>
<rd-widget-header icon="database" title-text="Volumes"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<thead>

View file

@ -2,9 +2,9 @@
title="'Container inspect'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(containerInfo.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:containerInfo.Id
}, 'Inspect']"
>
@ -13,10 +13,10 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="circle" feather-icon="true" title-text="Inspect">
<rd-widget-header icon="circle" title-text="Inspect">
<span class="btn-group btn-group-sm">
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="false"><pr-icon icon="'code'" feather="true"></pr-icon>Tree</label>
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="true"><pr-icon icon="'file'" feather="true"></pr-icon>Text</label>
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="false"><pr-icon icon="'code'"></pr-icon>Tree</label>
<label class="btn btn-light" ng-model="state.DisplayTextView" uib-btn-radio="true"><pr-icon icon="'file'"></pr-icon>Text</label>
</span>
</rd-widget-header>
<rd-widget-body>

View file

@ -2,9 +2,9 @@
title="'Container statistics'"
breadcrumbs="[
{ label:'Containers', link:'docker.containers' },
{
{
label:(container.Name | trimcontainername),
link: 'docker.containers.container',
link: 'docker.containers.container',
linkParams:container.Id
}, 'Stats']"
>
@ -13,7 +13,7 @@
<div class="row">
<div class="col-md-12">
<rd-widget>
<rd-widget-header icon="info" feather-icon="true" title-text="About statistics"> </rd-widget-header>
<rd-widget-header icon="info" title-text="About statistics"> </rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">
@ -37,17 +37,23 @@
</select>
</div>
<span>
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-top: 7px; display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</div>
<div class="form-group" ng-if="state.networkStatsUnavailable">
<div class="col-sm-12">
<span class="small text-muted"> <i class="fa fa-exclamation-triangle orange-icon" aria-hidden="true"></i> Network stats are unavailable for this container. </span>
<span class="small text-muted">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
Network stats are unavailable for this container.
</span>
</div>
</div>
<div class="form-group" ng-if="state.ioStatsUnavailable">
<div class="col-sm-12">
<span class="small text-muted"> <i class="fa fa-exclamation-triangle orange-icon" aria-hidden="true"></i> I/O stats are unavailable for this container. </span>
<span class="small text-muted">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
I/O stats are unavailable for this container.
</span>
</div>
</div>
</form>
@ -59,7 +65,7 @@
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="Memory usage"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="Memory usage"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="memoryChart" width="770" height="300"></canvas>
@ -70,7 +76,7 @@
<div class="col-lg-6 col-md-6 col-sm-12">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="CPU usage"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="CPU usage"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="cpuChart" width="770" height="300"></canvas>
@ -81,7 +87,7 @@
<div class="col-lg-6 col-md-6 col-sm-12" ng-if="!state.networkStatsUnavailable">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="Network usage (aggregate)"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="Network usage (aggregate)"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="networkChart" width="770" height="300"></canvas>
@ -92,7 +98,7 @@
<div class="col-lg-6 col-md-6 col-sm-12" ng-if="!state.ioStatsUnavailable">
<rd-widget>
<rd-widget-header icon="bar-chart" feather-icon="true" title-text="I/O usage (aggregate)"></rd-widget-header>
<rd-widget-header icon="bar-chart" title-text="I/O usage (aggregate)"></rd-widget-header>
<rd-widget-body>
<div class="chart-container" style="position: relative">
<canvas id="ioChart" width="770" height="300"></canvas>

View file

@ -16,12 +16,12 @@
>
<span class="small">
<p class="text-muted" ng-if="applicationState.endpoint.mode.role === 'MANAGER'">
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
Portainer is connected to a node that is part of a Swarm cluster. Some resources located on other nodes in the cluster might not be available for management, have a look at
<a href="http://portainer.readthedocs.io/en/stable/agent.html" target="_blank">our agent setup</a> for more details.
</p>
<p class="text-muted" ng-if="applicationState.endpoint.mode.role === 'WORKER'">
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
Portainer is connected to a worker node. Swarm management features will not be available.
</p>
</span>
@ -31,7 +31,7 @@
<div class="row" ng-if="(!applicationState.endpoint.mode.agentProxy || applicationState.endpoint.mode.provider !== 'DOCKER_SWARM_MODE') && info && endpoint">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="svg-tachometer" title-text="Environment info"></rd-widget-header>
<rd-widget-header icon="gauge" title-text="Environment info"></rd-widget-header>
<rd-widget-body classes="!px-5 !py-0">
<table class="table">
<tbody>
@ -40,12 +40,15 @@
<td>
{{ endpoint.Name }}
<span class="small text-muted space-left">
<pr-icon icon="'cpu'" feather="true"></pr-icon> {{ endpoint.Snapshots[0].TotalCPU }} <pr-icon icon="'svg-memory'"></pr-icon>
<pr-icon icon="'cpu'"></pr-icon> {{ endpoint.Snapshots[0].TotalCPU }} <pr-icon icon="'svg-memory'"></pr-icon>
{{ endpoint.Snapshots[0].TotalMemory | humansize }}
</span>
<span class="small text-muted">
- {{ info.Swarm && info.Swarm.NodeID !== '' ? 'Swarm' : 'Standalone' }} {{ info.ServerVersion }}
<span ng-if="endpoint.Type === 2">+ <i class="fa fa-bolt" aria-hidden="true"></i> Agent</span></span
<span ng-if="endpoint.Type === 2">
<pr-icon icon="'zap'"></pr-icon>
Agent</span
></span
>
</td>
</tr>
@ -64,7 +67,7 @@
<tr ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && applicationState.endpoint.mode.role === 'MANAGER'">
<td colspan="2">
<div class="btn-group" role="group" aria-label="...">
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" feather="true" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
</div>
</td>
</tr>
@ -77,33 +80,33 @@
<div class="dashboard-grid mx-4">
<a class="no-link" ui-sref="docker.stacks" ng-if="showStacks">
<dashboard-item feather-icon="true" icon="'layers'" type="'Stack'" value="stackCount"></dashboard-item>
<dashboard-item icon="'layers'" type="'Stack'" value="stackCount"></dashboard-item>
</a>
<div ng-if="applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && applicationState.endpoint.mode.role === 'MANAGER'">
<a class="no-link" ui-sref="docker.services">
<dashboard-item feather-icon="true" icon="'shuffle'" type="'Service'" value="serviceCount"></dashboard-item>
<dashboard-item icon="'shuffle'" type="'Service'" value="serviceCount"></dashboard-item>
</a>
</div>
<a class="no-link" ng-if="containers" ui-sref="docker.containers">
<dashboard-item feather-icon="true" icon="'box'" type="'Container'" value="containers.length" children="containerStatusComponent"></dashboard-item>
<dashboard-item icon="'box'" type="'Container'" value="containers.length" children="containerStatusComponent"></dashboard-item>
</a>
<a class="no-link" ng-if="images" ui-sref="docker.images">
<dashboard-item feather-icon="true" icon="'list'" type="'Image'" value="images.length" children="imagesTotalSizeComponent"></dashboard-item>
<dashboard-item icon="'list'" type="'Image'" value="images.length" children="imagesTotalSizeComponent"></dashboard-item>
</a>
<a class="no-link" ui-sref="docker.volumes">
<dashboard-item feather-icon="true" icon="'database'" type="'Volume'" value="volumeCount"></dashboard-item>
<dashboard-item icon="'database'" type="'Volume'" value="volumeCount"></dashboard-item>
</a>
<a class="no-link" ui-sref="docker.networks">
<dashboard-item feather-icon="true" icon="'share2'" type="'Network'" value="networkCount"></dashboard-item>
<dashboard-item icon="'share2'" type="'Network'" value="networkCount"></dashboard-item>
</a>
<div>
<dashboard-item feather-icon="true" icon="'cpu'" type="'GPU'" value="endpoint.Gpus.length"></dashboard-item>
<dashboard-item icon="'cpu'" type="'GPU'" value="endpoint.Gpus.length"></dashboard-item>
</div>
</div>
</div>

View file

@ -8,7 +8,7 @@
<div class="col-sm-12 form-section-title"> Host and Filesystem </div>
<div ng-if="!$ctrl.isAgent" class="form-group">
<span class="col-sm-12 text-muted small vertical-center">
<pr-icon icon="'info'" feather="true" mode="'primary'" class-name="space-right"></pr-icon>
<pr-icon icon="'info'" mode="'primary'" class-name="'space-right'"></pr-icon>
These features are only available for an Agent enabled environments.
</span>
</div>
@ -141,7 +141,7 @@
<div class="form-group" ng-if="$ctrl.isContainerEditDisabled()">
<span class="col-sm-12 text-muted small">
<i class="fa fa-info-circle blue-icon" aria-hidden="true" style="margin-right: 2px"></i>
<pr-icon icon="'info'" mode="'primary'" class-name="'mr-0.5'"></pr-icon>
Note: The recreate/duplicate/edit feature is currently disabled (for non-admin users) by one or more security settings.
</span>
</div>

View file

@ -6,7 +6,7 @@
<rd-widget-body>
<uib-tabset active="state.activeTab">
<uib-tab index="0">
<uib-tab-heading class="vertical-center"> <pr-icon icon="'tool'" feather="true" class="leading-none"></pr-icon> Builder </uib-tab-heading>
<uib-tab-heading class="vertical-center"> <pr-icon icon="'wrench'" class="leading-none"></pr-icon> Builder </uib-tab-heading>
<form class="form-horizontal">
<div class="col-sm-12 form-section-title"> Naming </div>
<!-- names -->
@ -16,17 +16,13 @@
<div class="form-group">
<div class="col-sm-12">
<label class="control-label text-left">Names</label>
<span class="label label-default interactive" class="ml-2.5" ng-click="addImageName()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add additional name
</span>
<span class="label label-default interactive" class="ml-2.5" ng-click="addImageName()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add additional name </span>
</div>
</div>
<!-- !names -->
<div class="form-group" ng-if="formValues.ImageNames.length === 0">
<span class="col-sm-12 text-danger small">
<p class="vertical-center">
<pr-icon icon="'alert-triangle'" mode="'danger'" size="'sm'" feather="true"></pr-icon> You must specify at least one name for the image.
</p>
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'danger'" size="'sm'"></pr-icon> You must specify at least one name for the image. </p>
</span>
</div>
<!-- name-input-list -->
@ -46,22 +42,22 @@
<span class="input-group-addon">name</span>
<input type="text" class="form-control" ng-model="item.Name" ng-change="checkName($index)" placeholder="e.g. my-image:my-tag" auto-focus />
<span class="input-group-addon" ng-if="!item.Valid">
<pr-icon icon="'x'" mode="'danger'" feather="true"></pr-icon>
<pr-icon icon="'x'" mode="'danger'"></pr-icon>
</span>
<span class="input-group-addon" ng-if="item.Valid">
<pr-icon icon="'check'" mode="'success'" feather="true"></pr-icon>
<pr-icon icon="'check'" mode="'success'"></pr-icon>
</span>
</div>
<!-- !name-input -->
<!-- actions -->
<div class="input-group col-sm-2 input-group-sm">
<button class="btn btn-dangerlight btn-only-icon" type="button" ng-click="removeImageName($index)">
<pr-icon icon="'trash-2'" feather="true"></pr-icon>
<pr-icon icon="'trash-2'"></pr-icon>
</button>
</div>
<!-- !actions -->
<div class="small text-warning" ng-if="!item.Valid">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
<span ng-if="!item.Unique">The image name must be unique</span>
<span ng-if="item.Unique"
>The image name must consist of between 2 and 255 lowercase alphanumeric characters, '_' or '-' (e.g. 'my-name', or 'abc-123').</span
@ -83,7 +79,7 @@
<input type="radio" id="method_editor" ng-model="state.BuildType" value="editor" ng-click="toggleEditor()" />
<label for="method_editor">
<div class="boxselector_header vertical-center">
<pr-icon icon="'edit'" feather="true"></pr-icon>
<pr-icon icon="'edit'"></pr-icon>
Web editor
</div>
<p>Use our Web editor</p>
@ -93,7 +89,7 @@
<input type="radio" id="method_upload" ng-model="state.BuildType" value="upload" ng-click="saveEditorContent()" />
<label for="method_upload">
<div class="boxselector_header vertical-center">
<pr-icon icon="'upload'" feather="true"></pr-icon>
<pr-icon icon="'upload'"></pr-icon>
Upload
</div>
<p>Upload a tarball or a Dockerfile from your computer</p>
@ -103,7 +99,7 @@
<input type="radio" id="method_url" ng-model="state.BuildType" value="url" ng-click="saveEditorContent()" />
<label for="method_url">
<div class="boxselector_header vertical-center">
<pr-icon icon="'globe'" feather="true"></pr-icon>
<pr-icon icon="'globe'"></pr-icon>
URL
</div>
<p>Specify a URL to a file</p>
@ -162,7 +158,7 @@
<button class="btn btn-sm btn-primary" ngf-select ngf-min-size="10" ng-model="formValues.UploadFile">Select file</button>
<span class="space-left">
{{ formValues.UploadFile.name }}
<span ng-if="!formValues.UploadFile"><pr-icon icon="'x'" mode="'danger'" feather="true" size="'md'"></pr-icon></span>
<span ng-if="!formValues.UploadFile"><pr-icon icon="'x'" mode="'danger'" size="'md'"></pr-icon></span>
</span>
</div>
</div>
@ -184,7 +180,7 @@
<div class="col-sm-12 form-section-title"> URL </div>
<div class="form-group">
<span class="col-sm-12 small vertical-center">
<pr-icon icon="'info'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
<span class="text-muted"
>Specify the URL to a Dockerfile, a tarball or a public Git repository (suffixed by <b>.git</b>). When using a Git repository URL, build contexts can be
specified as in the <a href="https://docs.docker.com/engine/reference/commandline/build/#git-repositories">Docker documentation.</a></span
@ -205,7 +201,7 @@
</div>
<div class="form-group">
<span class="col-sm-12 text-muted small vertical-center">
<pr-icon icon="'info'" mode="'primary'" feather="true"></pr-icon>
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
Indicate the path to the Dockerfile within the tarball/repository (ignored when using a Dockerfile).
</span>
</div>
@ -248,7 +244,7 @@
</form>
</uib-tab>
<uib-tab index="1" disable="!buildLogs">
<uib-tab-heading class="vertical-center"> <pr-icon icon="'file-text'" feather="true" class="leading-none"></pr-icon> Output </uib-tab-heading>
<uib-tab-heading class="vertical-center"> <pr-icon icon="'file-text'" class="leading-none"></pr-icon> Output </uib-tab-heading>
<pre class="log_viewer">
<div ng-repeat="line in buildLogs track by $index" class="line"><p class="inner_line" ng-click="active=!active" ng-class="{'line_selected': active}">{{ line }}</p></div>
<div ng-if="!buildLogs.length" class="line"><p class="inner_line">No build output available.</p></div>

View file

@ -3,7 +3,7 @@
<div class="row" ng-if="image.RepoTags.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="tag" feather-icon="true" title-text="Image tags"></rd-widget-header>
<rd-widget-header icon="tag" title-text="Image tags"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<div class="form-group">
@ -16,19 +16,19 @@
<span class="input-group-btn" style="padding: 0px 5px">
<span style="margin: 0px 5px" authorization="DockerImagePush">
<a data-toggle="tooltip" class="btn btn-primary interactive" title="Push to registry" ng-click="pushTag(tag)">
<pr-icon icon="'upload'" feather="true" class="text-white"></pr-icon>
<pr-icon icon="'upload'" class="text-white"></pr-icon>
</a>
</span>
<span class="my-0 mx-1" authorization="DockerImageCreate">
<a data-toggle="tooltip" class="btn btn-primary interactive" title="Pull from registry" ng-click="pullTag(tag)">
<pr-icon icon="'download'" feather="true" class="text-white"></pr-icon>
<pr-icon icon="'download'" class="text-white"></pr-icon>
</a>
</span>
<span class="my-0 mx-1" authorization="DockerImageDelete">
<a data-toggle="tooltip" class="btn btn-primary interactive" title="Remove tag" ng-click="removeTag(tag)">
<pr-icon icon="'trash-2'" feather="true" class="text-white"></pr-icon>
<pr-icon icon="'trash-2'" class="text-white"></pr-icon>
</a>
</span>
</span>
@ -39,18 +39,18 @@
<div class="form-group">
<div class="col-sm-12">
<span class="small text-muted" authorization="DockerImageDelete">
Note: you can click on the upload icon <pr-icon icon="'upload'" feather="true"></pr-icon> to push an image or on the download icon
<pr-icon icon="'download'" feather="true"></pr-icon> to pull an image or on the trash icon <pr-icon icon="'trash-2'" feather="true"></pr-icon> to delete a tag.
Note: you can click on the upload icon <pr-icon icon="'upload'"></pr-icon> to push an image or on the download icon <pr-icon icon="'download'"></pr-icon> to pull an
image or on the trash icon <pr-icon icon="'trash-2'"></pr-icon> to delete a tag.
</span>
</div>
<div class="col-sm-12">
<span id="downloadResourceHint" class="createResource ml-0" style="display: none">
Download in progress...
<i class="fa fa-circle-notch fa-spin ml-0.5" aria-hidden="true"></i>
<pr-icon icon="'loader-2'" class-name="'animate-spin-slow ml-0.5'"></pr-icon>
</span>
<span id="uploadResourceHint" class="createResource ml-0.5" style="display: none">
Upload in progress...
<i class="fa fa-circle-notch fa-spin ml-0.5" aria-hidden="true"></i>
<pr-icon icon="'loader-2'" class-name="'animate-spin-slow ml-0.5'"></pr-icon>
</span>
</div>
</div>
@ -63,7 +63,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="tag" feather-icon="true" title-text="Tag the image"></rd-widget-header>
<rd-widget-header icon="tag" title-text="Tag the image"></rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<!-- image-and-registry -->
@ -98,7 +98,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Image details"></rd-widget-header>
<rd-widget-header icon="list" title-text="Image details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -107,7 +107,7 @@
<td>
{{ image.Id }}
<button authorization="DockerImageDelete" class="btn btn-xs btn-danger" ng-click="removeImage(image.Id)">
<pr-icon icon="'trash-2'" feather="true"></pr-icon> Delete this image
<pr-icon icon="'trash-2'"></pr-icon> Delete this image
</button>
<button
authorization="DockerImageGet"
@ -116,7 +116,7 @@
button-spinner="$ctrl.exportInProgress"
ng-disabled="state.exportInProgress"
>
<pr-icon icon="'download'" feather="true"></pr-icon>
<pr-icon icon="'download'"></pr-icon>
<span ng-hide="state.exportInProgress">Export this image</span>
<span ng-show="state.exportInProgress">Export in progress...</span>
</button>
@ -167,7 +167,7 @@
<div class="row" ng-if="history.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Image layers"></rd-widget-header>
<rd-widget-header icon="list" title-text="Image layers"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table id="image-layers" class="table">
<thead>
@ -216,7 +216,7 @@
{{ layer.CreatedBy | imagelayercommand | truncate: 130 }}
<span ng-if="layer.CreatedBy.length > 130" class="ml-1">
<a id="layer-command-expander{{ $index }}" class="btn" ng-click="toggleLayerCommand($index)">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon>
<pr-icon icon="'plus'" mode="'alt'"></pr-icon>
</a>
</span>
</span>

View file

@ -3,7 +3,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="download" feather-icon="true" title-text="Pull image "> </rd-widget-header>
<rd-widget-header icon="download" title-text="Pull image "> </rd-widget-header>
<rd-widget-body>
<form class="form-horizontal">
<!-- image-and-registry -->

View file

@ -15,7 +15,7 @@
<button type="button" class="btn btn-sm btn-primary" ngf-select ngf-min-size="10" ng-model="formValues.UploadFile">Select file</button>
<span class="ml-1">
{{ formValues.UploadFile.name }}
<pr-icon icon="'x'" mode="'danger'" feather="true" ng-if="!formValues.UploadFile"></pr-icon>
<pr-icon icon="'x'" mode="'danger'" ng-if="!formValues.UploadFile"></pr-icon>
</span>
</div>
</div>
@ -29,7 +29,7 @@
<div class="row" authorization="DockerImageCreate">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="tag" feather-icon="'true'" title-text="Tag the image"></rd-widget-header>
<rd-widget-header icon="tag" title-text="Tag the image"></rd-widget-header>
<rd-widget-body>
<!-- image-and-registry -->
<por-image-registry

View file

@ -45,14 +45,12 @@
<input type="text" class="form-control" ng-model="option.value" placeholder="e.g. true" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeDriverOption($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>
</div>
<div class="small interactive text-muted vertical-center mt-1" ng-click="addDriverOption()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add driver option
</div>
<div class="small interactive text-muted vertical-center mt-1" ng-click="addDriverOption()"> <pr-icon icon="'plus'" size="'md'"></pr-icon> Add driver option </div>
</div>
<!-- !driver-options-input-list -->
</div>
@ -94,16 +92,16 @@
/>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeIPV4AuxAddress($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
<div class="col-sm-12 small text-warning" ng-if="state.IPV4AuxiliaryAddressesError[$index]">
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Exclude ip cannot be the same as gateway.</p>
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Exclude ip cannot be the same as gateway.</p>
</div>
</div>
<!-- !iprange-auxaddr-inputs -->
<div class="form-group">
<div class="col-sm-12 small interactive text-muted vertical-center" ng-click="addIPV4AuxAddress()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add excluded IP
<pr-icon icon="'plus'" size="'md'"></pr-icon> Add excluded IP
</div>
</div>
</div>
@ -141,16 +139,16 @@
/>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeIPV6AuxAddress($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
<div class="col-sm-12 small text-warning" ng-show="state.IPV6AuxiliaryAddressesError[$index]">
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Exclude ip cannot be the same as gateway.</p>
<p class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Exclude ip cannot be the same as gateway.</p>
</div>
</div>
<!-- !iprange-auxaddr-inputs -->
<div class="form-group">
<div class="col-sm-12 small interactive text-muted vertical-center" ng-click="addIPV6AuxAddress()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add excluded IP
<pr-icon icon="'plus'" size="'md'"></pr-icon> Add excluded IP
</div>
</div>
</div>
@ -168,14 +166,12 @@
<span class="input-group-addon">value</span>
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)"> <pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon> </button
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)"> <pr-icon icon="'trash-2'" size="'md'"></pr-icon> </button
></span>
</div>
</div>
<div class="form-group">
<div class="col-sm-12 small interactive text-muted vertical-center mt-1" ng-click="addLabel()">
<pr-icon icon="'plus'" size="'md'" feather="true"></pr-icon> Add label
</div>
<div class="col-sm-12 small interactive text-muted vertical-center mt-1" ng-click="addLabel()"> <pr-icon icon="'plus'" size="'md'"></pr-icon> Add label </div>
</div>
</div>
<!-- !labels-input-list -->

View file

@ -38,9 +38,7 @@
<div class="form-group">
<div class="col-sm-12 mt-1">
<label class="control-label text-left space-right">Labels</label>
<span class="label label-default interactive vertical-center space-left" ng-click="addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add label
</span>
<span class="label label-default interactive vertical-center space-left" ng-click="addLabel()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add label </span>
</div>
<!-- labels-input-list -->
<div class="col-sm-12 form-inline mt-2">
@ -54,7 +52,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -3,7 +3,7 @@
<div class="row">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="lock" feather-icon="true" title-text="Secret details"></rd-widget-header>
<rd-widget-header icon="lock" title-text="Secret details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -16,7 +16,7 @@
<td>
{{ secret.Id }}
<button authorization="DockerSecretDelete" class="btn btn-xs btn-dangerlight" ng-click="removeSecret(secret.Id)"
><pr-icon icon="'trash-2'" feather="true"></pr-icon>Delete this secret</button
><pr-icon icon="'trash-2'"></pr-icon>Delete this secret</button
>
</td>
</tr>

View file

@ -51,7 +51,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Port mapping</label>
<span class="label label-default interactive vertical-center" style="margin-left: 10px" ng-click="addPortBinding()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> map additional port
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> map additional port
</span>
</div>
<div class="col-sm-12 form-inline mt-2">
@ -63,7 +63,7 @@
</div>
<!-- !host-port -->
<span style="margin: 0 10px 0 10px">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
</span>
<!-- container-port -->
<div class="input-group col-sm-3 input-group-sm">
@ -82,7 +82,7 @@
<label class="btn btn-light" ng-model="portBinding.PublishMode" uib-btn-radio="'host'">Host</label>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removePortBinding($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
<!-- !protocol-actions -->
@ -218,7 +218,7 @@
style="margin-left: 10px"
ng-click="!formValues.LogDriverName || formValues.LogDriverName === 'none' || addLogDriverOpt(formValues.LogDriverName)"
>
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add logging driver option
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add logging driver option
</span>
</div>
<!-- logging-opts-input-list -->
@ -233,7 +233,7 @@
<input type="text" class="form-control" ng-model="opt.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeLogDriverOpt($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -251,7 +251,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Volume mapping</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addVolume()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> map additional volume
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> map additional volume
</span>
</div>
<!-- volumes-input-list -->
@ -266,9 +266,7 @@
<span class="input-group-addon">container</span>
<input type="text" class="form-control" ng-model="volume.Target" placeholder="e.g. /path/in/container" />
</div>
<div class="small text-warning" ng-show="!volume.Target">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Target is required.
</div>
<div class="small text-warning" ng-show="!volume.Target"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Target is required. </div>
</div>
<!-- !container-path -->
<!-- volume-type -->
@ -278,7 +276,7 @@
<label class="btn btn-light" ng-model="volume.Type" uib-btn-radio="'bind'" ng-click="volume.Source = null">Bind</label>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeVolume($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
<!-- !volume-type -->
@ -287,7 +285,7 @@
<!-- volume-line2 -->
<div class="col-sm-12 form-inline" style="margin-top: 5px">
<div style="height: 30px; display: inline-block; vertical-align: top; display: inline-flex; align-items: center">
<i class="fa fa-long-arrow-alt-right" aria-hidden="true"></i>
<pr-icon icon="'arrow-right'"></pr-icon>
</div>
<!-- volume -->
<div class="col-sm-6 input-group" ng-if="volume.Type === 'volume'" style="float: none; padding: 0">
@ -301,9 +299,7 @@
<option selected disabled value="">Select a volume</option>
</select>
</div>
<div class="small text-warning" ng-show="!volume.Source">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Source is required.
</div>
<div class="small text-warning" ng-show="!volume.Source"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Source is required. </div>
</div>
<!-- !volume -->
<!-- bind -->
@ -312,9 +308,7 @@
<span class="input-group-addon">host</span>
<input type="text" class="form-control" ng-model="volume.Source" placeholder="e.g. /path/on/host" />
</div>
<div class="small text-warning" ng-show="!volume.Source">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Source is required.
</div>
<div class="small text-warning" ng-show="!volume.Source"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Source is required. </div>
</div>
<!-- !bind -->
<!-- read-only -->
@ -356,7 +350,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Extra networks</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addExtraNetwork()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add extra network
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add extra network
</span>
</div>
<!-- network-input-list -->
@ -367,7 +361,7 @@
<option ng-repeat="net in availableNetworks" ng-value="net.Name">{{ net.Name }}</option>
</select>
<button class="btn btn-dangerlight" type="button" ng-click="removeExtraNetwork($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -379,7 +373,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Hosts file entries</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addHostsEntry()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add additional entry
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add additional entry
</span>
</div>
<!-- hosts-input-list -->
@ -390,7 +384,7 @@
<input type="text" class="form-control" ng-model="variable.value" placeholder="e.g. host:IP" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeHostsEntry($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -417,7 +411,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Service labels</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add service label
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add service label
</span>
</div>
<!-- labels-input-list -->
@ -432,7 +426,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -444,7 +438,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Container labels</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addContainerLabel()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add container label
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add container label
</span>
</div>
<!-- container-labels-input-list -->
@ -459,7 +453,7 @@
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeContainerLabel($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>

View file

@ -2,14 +2,12 @@
<div class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Configs</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addConfig()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add a config
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addConfig()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add a config </span>
</div>
<!-- info message -->
<div class="form-group" ng-show="formValues.Configs.$invalid" style="margin-bottom: 0px">
<div class="col-sm-12 small text-warning" style="padding-left: 35px; padding-top: 20px">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> {{ formValues.Configs.$error }}
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> {{ formValues.Configs.$error }}
</div>
</div>
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -25,7 +23,7 @@
<input class="form-control" ng-model="config.FileName" placeholder="e.g. /path/in/container" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeConfig($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>

View file

@ -56,7 +56,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Placement constraints</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addPlacementConstraint()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> placement constraint
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> placement constraint
</span>
</div>
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -76,7 +76,7 @@
<input type="text" class="form-control" ng-model="constraint.value" placeholder="e.g. manager" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removePlacementConstraint($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>
@ -87,7 +87,7 @@
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Placement preferences</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addPlacementPreference()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> placement preference
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> placement preference
</span>
</div>
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -101,7 +101,7 @@
<input type="text" class="form-control" ng-model="preference.value" placeholder="e.g. node.labels.datacenter" />
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removePlacementPreference($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>

View file

@ -8,14 +8,12 @@
<div class="form-group">
<div class="col-sm-12" style="margin-top: 5px">
<label class="control-label text-left">Secrets</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addSecret()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add a secret
</span>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addSecret()"> <pr-icon icon="'plus'" mode="'alt'"></pr-icon> add a secret </span>
</div>
<!-- info message -->
<div class="form-group" ng-show="formValues.Secrets.$invalid" style="margin-bottom: 0px">
<div class="col-sm-12 small text-warning" style="padding-left: 35px; padding-top: 20px">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> {{ formValues.Secrets.$error }}
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> {{ formValues.Secrets.$error }}
</div>
</div>
<div class="col-sm-12 form-inline" style="margin-top: 10px">
@ -36,7 +34,7 @@
<label class="btn btn-light" ng-model="secret.overrideTarget" uib-btn-radio="true">Override</label>
</div>
<button class="btn btn-dangerlight" type="button" ng-click="removeSecret($index)">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</div>
</div>

View file

@ -1,13 +1,13 @@
<form ng-if="applicationState.endpoint.apiVersion >= 1.3" id="service-configs" ng-submit="updateService(service)">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Configs"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Configs"> </rd-widget-header>
<rd-widget-body classes="no-padding">
<div class="form-inline" style="padding: 10px" authorization="DockerServiceUpdate">
Add a config:
<select class="form-control" ng-options="config.Name for config in configs | orderBy: 'Name'" ng-model="newConfig">
<option selected disabled hidden value="">Select a config</option>
</select>
<a class="btn btn-default btn-sm" ng-click="addConfig(service, newConfig)"> <pr-icon icon="'plus'" feather="true"></pr-icon> add config </a>
<a class="btn btn-default btn-sm" ng-click="addConfig(service, newConfig)"> <pr-icon icon="'plus'"></pr-icon> add config </a>
</div>
<table class="table" style="margin-top: 5px">
<thead>
@ -40,7 +40,7 @@
<td>{{ config.Mode }}</td>
<td authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight pull-right" type="button" ng-click="removeConfig(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</td>
</tr>

View file

@ -1,9 +1,9 @@
<div ng-if="service.ServiceConstraints" id="service-placement-constraints">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Placement constraints">
<rd-widget-header icon="list" title-text="Placement constraints">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addPlacementConstraint(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> placement constraint
<pr-icon icon="'plus'"></pr-icon> placement constraint
</a>
</div>
</rd-widget-header>
@ -62,7 +62,7 @@
/>
<span class="input-group-btn" authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight" type="button" ng-click="removePlacementConstraint(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -1,6 +1,6 @@
<div>
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Container spec"></rd-widget-header>
<rd-widget-header icon="list" title-text="Container spec"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>

View file

@ -1,9 +1,9 @@
<div id="service-container-labels">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Container labels">
<rd-widget-header icon="list" title-text="Container labels">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating ||addContainerLabel(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> container label
<pr-icon icon="'plus'"></pr-icon> container label
</a>
</div>
</rd-widget-header>
@ -48,7 +48,7 @@
/>
<span class="input-group-btn" authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight" type="button" ng-click="removeContainerLabel(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -1,9 +1,9 @@
<ng-form ng-if="service.EnvironmentVariables" id="service-env-variables" name="serviceEnvForm">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Environment variables">
<rd-widget-header icon="list" title-text="Environment variables">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addEnvironmentVariable(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> environment variable
<pr-icon icon="'plus'"></pr-icon> environment variable
</a>
</div>
</rd-widget-header>

View file

@ -1,9 +1,9 @@
<div>
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Hosts file entries">
<rd-widget-header icon="list" title-text="Hosts file entries">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating ||addHostsEntry(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> add host entry
<pr-icon icon="'plus'"></pr-icon> add host entry
</a>
</div>
</rd-widget-header>
@ -46,7 +46,7 @@
/>
<span class="input-group-btn" authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight" type="button" ng-click="removeHostsEntry(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -1,6 +1,6 @@
<div id="service-container-image" authorization="DockerServiceUpdate">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Change container image"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Change container image"> </rd-widget-header>
<rd-widget-body ng-if="!isUpdating">
<form class="form-horizontal">
<por-image-registry

View file

@ -1,6 +1,6 @@
<div id="service-logging-driver">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Logging driver"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Logging driver"> </rd-widget-header>
<rd-widget-body classes="no-padding">
<div class="form-inline" style="padding: 10px" authorization="DockerServiceUpdate">
Driver:
@ -10,7 +10,7 @@
<option value="none">none</option>
</select>
<a class="btn btn-default btn-sm" ng-click="!service.LogDriverName || service.LogDriverName === 'none' || addLogDriverOpt(service)">
<pr-icon icon="'plus'" feather="true"></pr-icon> add logging driver option
<pr-icon icon="'plus'"></pr-icon> add logging driver option
</a>
</div>
<table class="table">
@ -42,7 +42,7 @@
/>
<span class="input-group-btn" authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight" type="button" ng-click="removeLogDriverOpt(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -1,10 +1,8 @@
<div ng-if="service.ServiceMounts" id="service-mounts">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Mounts">
<rd-widget-header icon="list" title-text="Mounts">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating ||addMount(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> mount
</a>
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating ||addMount(service)" ng-disabled="isUpdating"> <pr-icon icon="'plus'"></pr-icon> mount </a>
</div>
</rd-widget-header>
<rd-widget-body ng-if="service.ServiceMounts.length === 0">
@ -57,9 +55,7 @@
ng-disabled="isUpdating || (!isAdmin && !allowBindMounts && mount.Type === 'bind')"
ng-if="mount.Type === 'bind'"
/>
<div class="col-sm-12 small text-warning" ng-show="!mount.Source">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Source is required.
</div>
<div class="col-sm-12 small text-warning" ng-show="!mount.Source"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Source is required. </div>
</td>
<td>
<input
@ -71,9 +67,7 @@
ng-disabled="isUpdating"
disable-authorization="DockerServiceUpdate"
/>
<div class="col-sm-12 small text-warning" ng-show="!mount.Target">
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Target is required.
</div>
<div class="col-sm-12 small text-warning" ng-show="!mount.Target"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Target is required. </div>
</td>
<td authorization="DockerServiceUpdate">
<input type="checkbox" class="form-control" ng-model="mount.ReadOnly" ng-change="updateMount(service, mount)" ng-disabled="isUpdating" />
@ -81,7 +75,7 @@
<td authorization="DockerServiceUpdate">
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeMount(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</td>

View file

@ -1,10 +1,8 @@
<div id="service-network-specs">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Networks">
<rd-widget-header icon="list" title-text="Networks">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addNetwork(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> network
</a>
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addNetwork(service)" ng-disabled="isUpdating"> <pr-icon icon="'plus'"></pr-icon> network </a>
</div>
</rd-widget-header>
<rd-widget-body ng-if="!service.Networks || service.Networks.length === 0">
@ -45,7 +43,7 @@
<td ng-if="network.Editable" authorization="DockerServiceUpdate">
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removeNetwork(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</td>

View file

@ -1,9 +1,9 @@
<div ng-if="service.ServicePreferences" id="service-placement-preferences">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Placement preferences">
<rd-widget-header icon="list" title-text="Placement preferences">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addPlacementPreference(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> placement preference
<pr-icon icon="'plus'"></pr-icon> placement preference
</a>
</div>
</rd-widget-header>
@ -46,7 +46,7 @@
/>
<span class="input-group-btn" authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight" type="button" ng-click="removePlacementPreference(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -1,9 +1,9 @@
<div>
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Published ports">
<rd-widget-header icon="list" title-text="Published ports">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating ||addPublishedPort(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> port mapping
<pr-icon icon="'plus'"></pr-icon> port mapping
</a>
</div>
</rd-widget-header>
@ -82,7 +82,7 @@
<td authorization="DockerServiceUpdate">
<span class="input-group-btn">
<button class="btn btn-dangerlight" type="button" ng-click="removePortPublishedBinding(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</td>

View file

@ -1,6 +1,6 @@
<div id="service-resources">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Resource limits and reservations"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Resource limits and reservations"> </rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>

View file

@ -1,6 +1,6 @@
<div id="service-restart-policy">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Restart policy"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Restart policy"> </rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>

View file

@ -1,6 +1,6 @@
<div ng-if="applicationState.endpoint.apiVersion >= 1.25" id="service-secrets">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Secrets"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Secrets"> </rd-widget-header>
<rd-widget-body classes="no-padding">
<div class="form-inline" style="padding: 10px" authorization="DockerServiceUpdate">
Add a secret:
@ -15,7 +15,7 @@
<label class="btn btn-light" ng-model="state.addSecret.override" uib-btn-radio="false">Default location</label>
<label class="btn btn-light" ng-model="state.addSecret.override" uib-btn-radio="true">Override</label>
</div>
<a class="btn btn-default btn-sm" ng-click="addSecret(service, state.addSecret)"> <pr-icon icon="'plus'" feather="true"></pr-icon> add secret </a>
<a class="btn btn-default btn-sm" ng-click="addSecret(service, state.addSecret)"> <pr-icon icon="'plus'"></pr-icon> add secret </a>
</div>
<table class="table" style="margin-top: 5px">
<thead>
@ -39,7 +39,7 @@
<td>{{ secret.Mode }}</td>
<td authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight pull-right" type="button" ng-click="removeSecret(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</td>
</tr>

View file

@ -1,10 +1,8 @@
<div id="service-labels">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Service labels">
<rd-widget-header icon="list" title-text="Service labels">
<div class="nopadding" authorization="DockerServiceUpdate">
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addLabel(service)" ng-disabled="isUpdating">
<pr-icon icon="'plus'" feather="true"></pr-icon> label
</a>
<a class="btn btn-secondary btn-sm pull-right" ng-click="isUpdating || addLabel(service)" ng-disabled="isUpdating"> <pr-icon icon="'plus'"></pr-icon> label </a>
</div>
</rd-widget-header>
<rd-widget-body ng-if="service.ServiceLabels.length === 0">
@ -48,7 +46,7 @@
/>
<span class="input-group-btn" authorization="DockerServiceUpdate">
<button class="btn btn-dangerlight" type="button" ng-click="removeLabel(service, $index)" ng-disabled="isUpdating">
<pr-icon icon="'trash-2'" feather="true" size="'md'"></pr-icon>
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
</button>
</span>
</div>

View file

@ -1,6 +1,6 @@
<div id="service-update-config">
<rd-widget>
<rd-widget-header icon="list" feather-icon="true" title-text="Update configuration"> </rd-widget-header>
<rd-widget-header icon="list" title-text="Update configuration"> </rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>

View file

@ -12,7 +12,7 @@
<div class="row">
<div class="col-lg-9 col-md-9 col-xs-9">
<rd-widget>
<rd-widget-header icon="shuffle" feather-icon="true" title-text="Service details"></rd-widget-header>
<rd-widget-header icon="shuffle" title-text="Service details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -78,10 +78,13 @@
<td ng-if="webhookURL">
<span class="text-muted">{{ webhookURL | truncatelr }}</span>
<button type="button" class="btn btn-sm btn-primary btn-sm space-left" ng-if="webhookURL" ng-click="copyWebhook()">
<span><i class="fa fa-copy space-right" aria-hidden="true"></i>Copy link</span>
<span>
<pr-icon icon="'copy'" class-name="'mr-1'"></pr-icon>
Copy link</span
>
</button>
<span>
<i id="copyNotification" class="fa fa-check green-icon" aria-hidden="true" style="margin-left: 7px; display: none"></i>
<pr-icon id="copyNotification" icon="'check'" mode="'success'" style="display: none"></pr-icon>
</span>
</td>
</tr>
@ -89,52 +92,62 @@
<td colspan="2">
<p class="small text-muted" authorization="DockerServiceUpdate">
Note: you can only rollback one level of changes. Clicking the rollback button without making a new change will undo your previous rollback </p
><p>
><div class="flex gap-x-2 gap-y-1 flex-wrap">
<a
authorization="DockerServiceLogs"
ng-if="applicationState.endpoint.apiVersion >= 1.3"
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
>
<pr-icon icon="'file-text'"></pr-icon>Service logs</a
>
<button
authorization="DockerServiceUpdate"
type="button"
class="btn btn-primary btn-sm"
class="btn btn-primary btn-sm !ml-0"
ng-disabled="state.updateInProgress || isUpdating"
ng-click="forceUpdateService(service)"
button-spinner="state.updateInProgress"
ng-if="applicationState.endpoint.apiVersion >= 1.25"
>
<span ng-hide="state.updateInProgress"><i class="fa fa-sync space-right" aria-hidden="true"></i>Update the service</span>
<span ng-hide="state.updateInProgress" class="vertical-center">
<pr-icon icon="'refresh-cw'"></pr-icon>
Update the service</span
>
<span ng-show="state.updateInProgress">Update in progress...</span>
</button>
<button
authorization="DockerServiceUpdate"
type="button"
class="btn btn-primary btn-sm"
class="btn btn-primary btn-sm !ml-0"
ng-disabled="state.rollbackInProgress || isUpdating"
ng-click="rollbackService(service)"
button-spinner="state.rollbackInProgress"
ng-if="applicationState.endpoint.apiVersion >= 1.25"
>
<span ng-hide="state.rollbackInProgress"><i class="fa fa-undo space-right" aria-hidden="true"></i>Rollback the service</span>
<span ng-hide="state.rollbackInProgress" class="vertical-center">
<pr-icon icon="'rotate-ccw'"></pr-icon>
Rollback the service</span
>
<span ng-show="state.rollbackInProgress">Rollback in progress...</span>
</button>
<button
authorization="DockerServiceDelete"
type="button"
class="btn btn-danger btn-sm"
class="btn btn-danger btn-sm !ml-0"
ng-disabled="state.deletionInProgress || isUpdating"
ng-click="removeService()"
button-spinner="state.deletionInProgress"
>
<span ng-hide="state.deletionInProgress"><i class="fa fa-trash-alt space-right" aria-hidden="true"></i>Delete the service</span>
<span ng-hide="state.deletionInProgress" class="vertical-center">
<pr-icon icon="'trash-2'"></pr-icon>
Delete the service</span
>
<span ng-show="state.deletionInProgress">Deletion in progress...</span>
</button>
</p></td
>
</div>
</td>
</tr>
</tbody>
</table>
@ -163,7 +176,7 @@
<div class="col-lg-3 col-md-3 col-xs-3">
<rd-widget>
<rd-widget-header icon="fa-bars" title-text="Quick navigation"></rd-widget-header>
<rd-widget-header icon="menu" title-text="Quick navigation"></rd-widget-header>
<rd-widget-body classes="no-padding">
<ul class="nav nav-pills nav-stacked">
<li><a href ng-click="goToItem('service-env-variables')">Environment variables</a></li>

View file

@ -3,7 +3,7 @@
<div class="row">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="trello" feather-icon="true" title-text="Cluster status"></rd-widget-header>
<rd-widget-header icon="trello" title-text="Cluster status"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -26,7 +26,7 @@
<tr>
<td colspan="2">
<div class="btn-group" role="group" aria-label="...">
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" feather="true" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
<a ui-sref="docker.swarm.visualizer" class="vertical-center"><pr-icon icon="'trello'" class-name="'icon'"></pr-icon>Go to cluster visualizer</a>
</div>
</td>
</tr>

View file

@ -4,7 +4,7 @@
<div class="row">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="trello" feather-icon="true" title-text="Cluster information">
<rd-widget-header icon="trello" title-text="Cluster information">
<div class="pull-right">
<button type="button" class="btn btn-sm btn-primary" ng-click="changeShowInformationPanel(true)" ng-if="!state.ShowInformationPanel">Show</button>
<button type="button" class="btn btn-sm btn-primary" ng-click="changeShowInformationPanel(false)" ng-if="state.ShowInformationPanel">Hide</button>
@ -51,11 +51,10 @@
</div>
</form>
<form class="form-horizontal">
<div class="col-sm-12 form-section-title"> Refresh </div>
<div class="col-sm-12 form-section-title"> Refresh rate </div>
<div class="form-group">
<label for="refreshRate" class="col-sm-2 margin-sm-top control-label text-left">
Rate
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="display: none"></i>
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" size="'sm'" style="display: none"></pr-icon>
</label>
<div class="col-sm-2">
<select id="refreshRate" ng-model="state.refreshRate" ng-change="changeUpdateRepeater()" class="form-control">
@ -75,7 +74,7 @@
<div class="row" ng-if="visualizerData">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="trello" feather-icon="true" title-text="Cluster visualizer"></rd-widget-header>
<rd-widget-header icon="trello" title-text="Cluster visualizer"></rd-widget-header>
<rd-widget-body>
<div class="visualizer_container">
<div class="node" ng-repeat="node in visualizerData.nodes | orderBy : ['Role', 'Hostname'] track by $index">
@ -84,8 +83,8 @@
<div>
<b>{{ node.Name || node.Hostname }}</b>
<span class="node_platform">
<i class="fab fa-linux" aria-hidden="true" ng-if="node.PlatformOS === 'linux'"></i>
<i class="fab fa-windows" aria-hidden="true" ng-if="node.PlatformOS === 'windows'"></i>
<pr-icon ng-if="node.PlatformOS === 'linux'" icon="'svg-linux'"></pr-icon>
<pr-icon ng-if="node.PlatformOS === 'windows'" icon="'layout-grid'"></pr-icon>
</span>
</div>
</div>

View file

@ -2,9 +2,9 @@
title="'Task details'"
breadcrumbs="[
{ label:'Services', link:'docker.services' },
{
{
label: service.Name,
link: 'docker.services.service',
link: 'docker.services.service',
linkParams:{ id: service.Id }
}, task.Id]"
>
@ -13,7 +13,7 @@
<div class="row" ng-if="task && service">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="fa-tasks" title-text="Task status"></rd-widget-header>
<rd-widget-header icon="list" title-text="Task status"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -55,8 +55,9 @@
</tr>
<tr ng-if="applicationState.endpoint.apiVersion >= 1.3 && task.Status.State | taskhaslogs">
<td colspan="2"
><a class="btn btn-primary btn-sm" type="button" ui-sref="docker.tasks.task.logs({id: task.Id})"
><i class="fa fa-file-alt space-right" aria-hidden="true"></i>Task logs</a
><a class="btn btn-primary btn-sm" type="button" ui-sref="docker.tasks.task.logs({id: task.Id})">
<pr-icon icon="'file-text'"></pr-icon>
Task logs</a
></td
>
</tr>

View file

@ -33,7 +33,7 @@
<portainer-tooltip message="'Driver options are specific to the selected driver. Please refer to the selected driver documentation.'"></portainer-tooltip>
</label>
<span class="label label-default interactive" style="margin-left: 10px" ng-click="addDriverOption()">
<pr-icon icon="'plus'" mode="'alt'" feather="true"></pr-icon> add driver option
<pr-icon icon="'plus'" mode="'alt'"></pr-icon> add driver option
</span>
</div>
<!-- driver-options-input-list -->
@ -48,7 +48,7 @@
<input type="text" class="form-control" ng-model="option.value" placeholder="e.g. /path/on/host" />
</div>
<button class="btn btn-sm btn-light" type="button" ng-click="removeDriverOption($index)">
<pr-icon icon="'trash-2'" feather="true" class-name="'icon-secondary icon-md'"></pr-icon>
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
</button>
</div>
</div>

View file

@ -3,7 +3,7 @@
<div class="row" ng-if="volume">
<div class="col-sm-12">
<rd-widget>
<rd-widget-header icon="database" feather-icon="true" title-text="Volume details"></rd-widget-header>
<rd-widget-header icon="database" title-text="Volume details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -12,7 +12,7 @@
<td>
{{ volume.Id }}
<button authorization="DockerVolumeDelete" class="btn btn-xs btn-danger" ng-click="removeVolume()"
><pr-icon icon="'trash-2'" feather="true" class="leading-none"></pr-icon> Remove this volume</button
><pr-icon icon="'trash-2'" class="leading-none"></pr-icon> Remove this volume</button
>
</td>
</tr>
@ -60,7 +60,7 @@
<div class="row" ng-if="!(volume.Options | emptyobject)">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="settings" feather-icon="true" title-text="Volume options"></rd-widget-header>
<rd-widget-header icon="settings" title-text="Volume options"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<tbody>
@ -77,7 +77,7 @@
<div class="row" ng-if="containersUsingVolume.length > 0">
<div class="col-lg-12 col-md-12 col-xs-12">
<rd-widget>
<rd-widget-header icon="box" feather-icon="true" title-text="Containers using volume"></rd-widget-header>
<rd-widget-header icon="box" title-text="Containers using volume"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table">
<thead>