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:
parent
9dfac98a26
commit
d78b762f7b
498 changed files with 2102 additions and 2817 deletions
|
@ -1,5 +1,5 @@
|
|||
<rd-widget>
|
||||
<rd-widget-header icon="svg-tachometer" title-text="Cluster information"></rd-widget-header>
|
||||
<rd-widget-header icon="gauge" title-text="Cluster information"></rd-widget-header>
|
||||
<rd-widget-body classes="!px-5 !py-0">
|
||||
<table class="table">
|
||||
<tbody>
|
||||
|
@ -10,7 +10,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>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -30,7 +30,7 @@
|
|||
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
|
||||
data-cy="config-removeConfigButton"
|
||||
>
|
||||
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
|
||||
<pr-icon icon="'trash-2'"></pr-icon>Remove
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -39,13 +39,13 @@
|
|||
authorization="DockerConfigCreate"
|
||||
data-cy="config-addConfigButton"
|
||||
>
|
||||
<pr-icon icon="'plus'" feather="true"></pr-icon>Add config
|
||||
<pr-icon icon="'plus'"></pr-icon>Add config
|
||||
</button>
|
||||
</div>
|
||||
<div class="settings">
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -66,7 +66,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<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>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<div class="datatable">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="{{ $ctrl.titleIcon }}" feather-icon="true" title-text="{{ $ctrl.titleText }}"></rd-widget-header>
|
||||
<rd-widget-header icon="{{ $ctrl.titleIcon }}" title-text="{{ $ctrl.titleText }}"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<div class="actionBar">
|
||||
<form class="form-horizontal">
|
||||
|
@ -35,7 +35,8 @@
|
|||
<th>
|
||||
IP Address
|
||||
<a ng-click="$ctrl.expandAll()" ng-if="$ctrl.hasExpandableItems()">
|
||||
<i ng-class="{ 'fas fa-angle-down': $ctrl.state.expandAll, 'fas fa-angle-right': !$ctrl.state.expandAll }" aria-hidden="true"></i>
|
||||
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
|
||||
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
|
||||
</a>
|
||||
</th>
|
||||
<th>Gateway</th>
|
||||
|
@ -51,7 +52,8 @@
|
|||
>
|
||||
<td>
|
||||
<button class="btn btn-none" ng-if="$ctrl.itemCanExpand(value)" type="button">
|
||||
<i ng-class="{ 'fas fa-angle-down': value.Expanded, 'fas fa-angle-right': !value.Expanded }" class="space-right" aria-hidden="true"></i>
|
||||
<pr-icon ng-if="value.Expanded" icon="'chevron-down'" class-name="'mr-1'"></pr-icon>
|
||||
<pr-icon ng-if="!value.Expanded" icon="'chevron-right'" class-name="'mr-1'"></pr-icon>
|
||||
</button>
|
||||
<a ui-sref="docker.networks.network({ id: key, nodeName: $ctrl.nodeName })">{{ key }}</a>
|
||||
</td>
|
||||
|
@ -66,7 +68,7 @@
|
|||
button-spinner="$ctrl.leaveNetworkActionInProgress"
|
||||
ng-click="$ctrl.leaveNetworkAction($ctrl.container, key)"
|
||||
>
|
||||
<span ng-if="!$ctrl.leaveNetworkActionInProgress" class="vertical-center !ml-0"> <pr-icon icon="'trash-2'" feather="true"></pr-icon> Leave network</span>
|
||||
<span ng-if="!$ctrl.leaveNetworkActionInProgress" class="vertical-center !ml-0"> <pr-icon icon="'trash-2'"></pr-icon> Leave network</span>
|
||||
<span ng-if="$ctrl.leaveNetworkActionInProgress">Leaving network...</span>
|
||||
</button>
|
||||
</td>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar show-dropdown">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -31,7 +31,7 @@
|
|||
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
|
||||
data-cy="image-removeImageButton"
|
||||
>
|
||||
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
|
||||
<pr-icon icon="'trash-2'"></pr-icon>Remove
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -58,7 +58,7 @@
|
|||
ng-disabled="$ctrl.exportInProgress"
|
||||
data-cy="image-importImageButton"
|
||||
>
|
||||
<pr-icon icon="'upload'" feather="true"></pr-icon>Import
|
||||
<pr-icon icon="'upload'"></pr-icon>Import
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -69,7 +69,7 @@
|
|||
authorization="DockerImageGet"
|
||||
data-cy="image-exportImageButton"
|
||||
>
|
||||
<pr-icon icon="'download'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'download'"></pr-icon>
|
||||
<span ng-hide="$ctrl.exportInProgress">Export</span>
|
||||
<span ng-show="$ctrl.exportInProgress">Export in progress...</span>
|
||||
</button>
|
||||
|
@ -82,13 +82,13 @@
|
|||
authorization="DockerImageBuild"
|
||||
data-cy="image-buildImageButton"
|
||||
>
|
||||
<pr-icon icon="'plus'" feather="true"></pr-icon>Build a new image
|
||||
<pr-icon icon="'plus'"></pr-icon>Build a new image
|
||||
</button>
|
||||
</div>
|
||||
<div class="settings">
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -109,7 +109,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<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>
|
||||
|
@ -142,8 +142,14 @@
|
|||
</div>
|
||||
|
||||
<div>
|
||||
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled">Filter <i class="fa fa-filter" aria-hidden="true"></i></span>
|
||||
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled">Filter <i class="fa fa-check" aria-hidden="true"></i></span>
|
||||
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled"
|
||||
>Filter
|
||||
<pr-icon icon="'filter'"></pr-icon>
|
||||
</span>
|
||||
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled"
|
||||
>Filter
|
||||
<pr-icon icon="'check'"></pr-icon>
|
||||
</span>
|
||||
</div>
|
||||
<div class="dropdown-menu" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
|
|
@ -2,10 +2,15 @@
|
|||
<rd-widget>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<div class="toolBar">
|
||||
<div class="toolBarTitle"> <i class="fa" ng-class="$ctrl.titleIcon" aria-hidden="true" style="margin-right: 2px"></i> {{ $ctrl.titleText }} </div>
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="'hard-drive'"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
|
|
@ -9,9 +9,10 @@
|
|||
/>
|
||||
<label for="select_{{ $index }}"></label>
|
||||
</span>
|
||||
<a ng-if="parentCtrl.itemCanExpand(item)"
|
||||
><i ng-class="{ 'fas fa-angle-down': item.Expanded, 'fas fa-angle-right': !item.Expanded }" class="space-right" aria-hidden="true"></i
|
||||
></a>
|
||||
<a ng-if="parentCtrl.itemCanExpand(item)">
|
||||
<pr-icon ng-if="item.Expanded" icon="'chevron-down'" class-name="'mr-1'"></pr-icon>
|
||||
<pr-icon ng-if="!item.Expanded" icon="'chevron-right'" class-name="'mr-1'"></pr-icon>
|
||||
</a>
|
||||
</td>
|
||||
<td ng-if="!allowCheckbox"></td>
|
||||
<td>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -30,7 +30,7 @@
|
|||
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
|
||||
data-cy="network-removeNetworkButton"
|
||||
>
|
||||
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
|
||||
<pr-icon icon="'trash-2'"></pr-icon>Remove
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -39,13 +39,13 @@
|
|||
authorization="DockerNetworkCreate"
|
||||
data-cy="network-addNetworkButton"
|
||||
>
|
||||
<pr-icon icon="'plus'" feather="true"></pr-icon>Add network
|
||||
<pr-icon icon="'plus'"></pr-icon>Add network
|
||||
</button>
|
||||
</div>
|
||||
<div class="settings">
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -66,7 +66,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<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>
|
||||
|
@ -89,7 +89,8 @@
|
|||
<label for="select_all"></label>
|
||||
</span>
|
||||
<a ng-click="$ctrl.expandAll()" ng-if="$ctrl.hasExpandableItems()">
|
||||
<i ng-class="{ 'fas fa-angle-down': $ctrl.state.expandAll, 'fas fa-angle-right': !$ctrl.state.expandAll }" aria-hidden="true"></i>
|
||||
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
|
||||
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
|
|
|
@ -2,10 +2,15 @@
|
|||
<rd-widget>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<div class="toolBar">
|
||||
<div class="toolBarTitle"> <i class="fa" ng-class="$ctrl.titleIcon" aria-hidden="true" style="margin-right: 2px"></i> {{ $ctrl.titleText }} </div>
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'search'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -24,7 +24,7 @@
|
|||
<div class="settings">
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -45,7 +45,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<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>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -30,7 +30,7 @@
|
|||
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
|
||||
data-cy="secret-removeSecretButton"
|
||||
>
|
||||
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
|
||||
<pr-icon icon="'trash-2'"></pr-icon>Remove
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -39,13 +39,13 @@
|
|||
authorization="DockerSecretCreate"
|
||||
data-cy="secret-addSecretButton"
|
||||
>
|
||||
<pr-icon icon="'plus'" feather="true"></pr-icon>Add secret
|
||||
<pr-icon icon="'plus'"></pr-icon>Add secret
|
||||
</button>
|
||||
</div>
|
||||
<div class="settings">
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -66,7 +66,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<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>
|
||||
|
|
|
@ -12,8 +12,14 @@
|
|||
ng-click="$ctrl.changeOrderBy('Status.State')"
|
||||
></table-column-header>
|
||||
<span class="space-left">
|
||||
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled">Filter <i class="fa fa-filter" aria-hidden="true"></i></span>
|
||||
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled">Filter <i class="fa fa-check" aria-hidden="true"></i></span>
|
||||
<span uib-dropdown-toggle class="table-filter" ng-if="!$ctrl.filters.state.enabled"
|
||||
>Filter
|
||||
<pr-icon icon="'filter'"></pr-icon>
|
||||
</span>
|
||||
<span uib-dropdown-toggle class="table-filter filter-active" ng-if="$ctrl.filters.state.enabled"
|
||||
>Filter
|
||||
<pr-icon icon="'check'"></pr-icon>
|
||||
</span>
|
||||
</span>
|
||||
<div class="dropdown-menu" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
ng-click="$ctrl.updateAction($ctrl.selectedItems)"
|
||||
data-cy="service-updateServiceButton"
|
||||
>
|
||||
<pr-icon icon="'refresh-cw'" feather="true"></pr-icon>Update
|
||||
<pr-icon icon="'refresh-cw'"></pr-icon>Update
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -19,10 +19,11 @@
|
|||
ng-click="$ctrl.removeAction($ctrl.selectedItems)"
|
||||
data-cy="service-removeServiceButton"
|
||||
>
|
||||
<pr-icon icon="'trash-2'" feather="true"></pr-icon>Remove
|
||||
<pr-icon icon="'trash-2'"></pr-icon>Remove
|
||||
</button>
|
||||
</div>
|
||||
<button type="button" class="btn btn-sm btn-primary" ui-sref="docker.services.new" ng-if="$ctrl.showAddAction" authorization="DockerServiceCreate">
|
||||
<i class="fa fa-plus space-right" aria-hidden="true"></i>Add service
|
||||
<pr-icon icon="'plus'" class-name="'mr-1'"></pr-icon>
|
||||
Add service
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -32,7 +32,7 @@
|
|||
<datatable-columns-visibility columns="$ctrl.columnVisibility.columns" on-change="($ctrl.onColumnVisibilityChange)"></datatable-columns-visibility>
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -53,7 +53,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<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>
|
||||
|
@ -76,7 +76,8 @@
|
|||
<label for="select_all"></label>
|
||||
</span>
|
||||
<a ng-click="$ctrl.expandAll()">
|
||||
<i ng-class="{ 'fas fa-angle-down': $ctrl.state.expandAll, 'fas fa-angle-right': !$ctrl.state.expandAll }" aria-hidden="true"></i>
|
||||
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
|
||||
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
|
||||
</a>
|
||||
</th>
|
||||
<th>
|
||||
|
@ -156,7 +157,8 @@
|
|||
<input id="select_{{ $index }}" type="checkbox" ng-model="item.Checked" ng-click="$ctrl.selectItem(item, $event); $event.stopPropagation()" />
|
||||
<label for="select_{{ $index }}"></label>
|
||||
</span>
|
||||
<i ng-class="{ 'fas fa-angle-down': item.Expanded, 'fas fa-angle-right': !item.Expanded }" class="space-right" aria-hidden="true"></i>
|
||||
<pr-icon ng-if="item.Expanded" icon="'chevron-down'" class-name="'mr-1'"></pr-icon>
|
||||
<pr-icon ng-if="!item.Expanded" icon="'chevron-right'" class-name="'mr-1'"></pr-icon>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-link hover:no-underline !ml-0 p-0" ui-sref="docker.services.service({id: item.Id})" ng-click="$event.stopPropagation()">{{
|
||||
|
@ -169,8 +171,9 @@
|
|||
{{ item.Mode }}
|
||||
<code>{{ item.Tasks | runningtaskscount }}</code> / <code>{{ item.Mode === 'replicated' ? item.Replicas : ($ctrl.nodes | availablenodecount: item) }}</code>
|
||||
<span ng-if="item.Mode === 'replicated' && !item.Scale" authorization="DockerServiceUpdate">
|
||||
<a class="interactive" ng-click="item.Scale = true; item.ReplicaCount = item.Replicas; $event.stopPropagation();">
|
||||
<i class="fa fa-arrows-alt-v" aria-hidden="true"></i> Scale
|
||||
<a class="interactive vertical-center" ng-click="item.Scale = true; item.ReplicaCount = item.Replicas; $event.stopPropagation();">
|
||||
<pr-icon icon="'minimize-2'"></pr-icon>
|
||||
Scale
|
||||
</a>
|
||||
</span>
|
||||
<span ng-if="item.Mode === 'replicated' && item.Scale">
|
||||
|
@ -184,20 +187,25 @@
|
|||
auto-focus
|
||||
ng-click="$event.stopPropagation();"
|
||||
/>
|
||||
<a class="interactive" ng-click="item.Scale = false; $event.stopPropagation();"><i class="fa fa-times"></i></a>
|
||||
<a class="interactive" ng-click="actionCtrl.scaleAction(item); $event.stopPropagation();"><i class="fa fa-check-square"></i></a>
|
||||
<a class="interactive vertical-center" ng-click="item.Scale = false; $event.stopPropagation();">
|
||||
<pr-icon icon="'x'"></pr-icon>
|
||||
</a>
|
||||
<a class="interactive vertical-center" ng-click="actionCtrl.scaleAction(item); $event.stopPropagation();">
|
||||
<pr-icon icon="'check-square'"></pr-icon>
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
<td ng-show="$ctrl.columnVisibility.columns.ports.display">
|
||||
<a
|
||||
ng-if="item.Ports && item.Ports.length > 0 && p.PublishedPort"
|
||||
ng-repeat="p in item.Ports"
|
||||
class="image-tag"
|
||||
class="image-tag vertical-center"
|
||||
ng-href="http://{{ $ctrl.endpointPublicUrl }}:{{ p.PublishedPort }}"
|
||||
target="_blank"
|
||||
ng-click="$event.stopPropagation();"
|
||||
>
|
||||
<i class="fa fa-external-link-alt" aria-hidden="true"></i> {{ p.PublishedPort }}:{{ p.TargetPort }}
|
||||
<pr-icon icon="'external-link'"></pr-icon>
|
||||
{{ p.PublishedPort }}:{{ p.TargetPort }}
|
||||
</a>
|
||||
<span ng-if="!item.Ports || item.Ports.length === 0">-</span>
|
||||
</td>
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'search'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="toolBar">
|
||||
<div class="toolBarTitle vertical-center">
|
||||
<div class="widget-icon space-right">
|
||||
<pr-icon icon="$ctrl.titleIcon" feather="true"></pr-icon>
|
||||
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
|
||||
</div>
|
||||
{{ $ctrl.titleText }}
|
||||
</div>
|
||||
<div class="searchBar vertical-center">
|
||||
<pr-icon icon="'search'" feather="true" class-name="'searchIcon'"></pr-icon>
|
||||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
class="searchInput"
|
||||
|
@ -30,7 +30,7 @@
|
|||
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
|
||||
data-cy="volume-removeVolumeButton"
|
||||
>
|
||||
<pr-icon icon="'trash-2'" feather="true" class="leading-none"></pr-icon>Remove
|
||||
<pr-icon icon="'trash-2'" class="leading-none"></pr-icon>Remove
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
|
@ -39,13 +39,13 @@
|
|||
authorization="DockerVolumeCreate"
|
||||
data-cy="volume-addVolumeButton"
|
||||
>
|
||||
<pr-icon icon="'plus'" feather="true" class="leading-none"></pr-icon>Add volume
|
||||
<pr-icon icon="'plus'" class="leading-none"></pr-icon>Add volume
|
||||
</button>
|
||||
</div>
|
||||
<div class="settings">
|
||||
<span class="setting" ng-class="{ 'setting-active': $ctrl.settings.open }" uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.settings.open">
|
||||
<span uib-dropdown-toggle aria-label="Settings">
|
||||
<pr-icon icon="'more-vertical'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'more-vertical'"></pr-icon>
|
||||
</span>
|
||||
<div class="dropdown-menu dropdown-menu-right" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -66,7 +66,7 @@
|
|||
<option value="300">5min</option>
|
||||
</select>
|
||||
<span class="inline-block w-3">
|
||||
<pr-icon id="refreshRateChange" icon="'check'" style="display: none" mode="'success'" feather="true"></pr-icon>
|
||||
<pr-icon id="refreshRateChange" icon="'check'" style="display: none" mode="'success'"></pr-icon>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -95,11 +95,9 @@
|
|||
is-sorted-desc="$ctrl.state.orderBy === 'Id' && $ctrl.state.reverseOrder"
|
||||
ng-click="$ctrl.changeOrderBy('Id')"
|
||||
></table-column-header>
|
||||
<span uib-dropdown-toggle class="table-filter flex gap-1 self-end" ng-if="!$ctrl.filters.state.enabled"
|
||||
>Filter <pr-icon icon="'filter'" feather="true"></pr-icon
|
||||
></span>
|
||||
<span uib-dropdown-toggle class="table-filter flex gap-1 self-end" ng-if="!$ctrl.filters.state.enabled">Filter <pr-icon icon="'filter'"></pr-icon></span>
|
||||
<span uib-dropdown-toggle class="table-filter filter-active flex gap-1 self-end" ng-if="$ctrl.filters.state.enabled"
|
||||
>Filter <pr-icon icon="'check'" feather="true"></pr-icon
|
||||
>Filter <pr-icon icon="'check'"></pr-icon
|
||||
></span>
|
||||
<div class="dropdown-menu" uib-dropdown-menu>
|
||||
<div class="tableMenu">
|
||||
|
@ -195,7 +193,7 @@
|
|||
class="btn btn-xs btn-primary space-left"
|
||||
authorization="DockerAgentBrowseList"
|
||||
>
|
||||
<pr-icon icon="'search'" feather="true"></pr-icon> browse
|
||||
<pr-icon icon="'search'"></pr-icon> browse
|
||||
</button>
|
||||
|
||||
<span style="margin-left: 10px" class="label label-warning image-tag space-left" ng-if="item.dangling">Unused</span>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="code" feather-icon="true" title-text="PCI Devices"></rd-widget-header>
|
||||
<rd-widget-header icon="code" title-text="PCI Devices"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="code" feather-icon="true" title-text="Physical Disks"></rd-widget-header>
|
||||
<rd-widget-header icon="code" title-text="Physical Disks"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="code" feather-icon="true" title-text="Engine Details"></rd-widget-header>
|
||||
<rd-widget-header icon="code" title-text="Engine Details"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<tbody>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="code" feather-icon="true" title-text="Host Details"></rd-widget-header>
|
||||
<rd-widget-header icon="code" title-text="Host Details"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<tbody>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" ng-change="$ctrl.updateLabel(label)" />
|
||||
</div>
|
||||
<button class="btn btn-light" type="button" ng-click="$ctrl.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>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="code" feather-icon="true" title-text="Node Details"></rd-widget-header>
|
||||
<rd-widget-header icon="code" title-text="Node Details"></rd-widget-header>
|
||||
<rd-widget-body classes="no-padding">
|
||||
<table class="table">
|
||||
<tbody>
|
||||
|
@ -33,7 +33,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<div class="nopadding">
|
||||
<a class="btn btn-secondary btn-sm pull-right" ng-click="$ctrl.addLabel(node)"> <pr-icon icon="'plus'" feather="true"></pr-icon> label </a>
|
||||
<a class="btn btn-secondary btn-sm pull-right" ng-click="$ctrl.addLabel(node)"> <pr-icon icon="'plus'"></pr-icon> label </a>
|
||||
</div>
|
||||
Node Labels
|
||||
</td>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="form-group" ng-if="$ctrl.pullRateLimits">
|
||||
<div class="col-sm-12 small">
|
||||
<div ng-if="$ctrl.pullRateLimits.remaining > 0" class="text-muted vertical-center">
|
||||
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
|
||||
<span ng-if="$ctrl.isAuthenticated">
|
||||
You are currently using a free account to pull images from DockerHub and will be limited to 200 pulls every 6 hours. Remaining pulls:
|
||||
<span style="font-weight: bold">{{ $ctrl.pullRateLimits.remaining }}/{{ $ctrl.pullRateLimits.limit }}</span>
|
||||
|
@ -20,7 +20,7 @@
|
|||
</span>
|
||||
</div>
|
||||
<div ng-if="$ctrl.pullRateLimits.remaining <= 0" class="text-warning vertical-center">
|
||||
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon>
|
||||
<span ng-if="$ctrl.isAuthenticated">
|
||||
Your authorized pull count quota as a free user is now exceeded.
|
||||
<span ng-transclude="rateLimitExceeded">You will not be able to pull any image from the DockerHub registry.</span>
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<div class="col-sm-3 col-lg-2"></div>
|
||||
<div class="col-sm-8" ng-messages="$ctrl.form.image_name.$error">
|
||||
<p class="text-warning vertical-center" ng-message="required">
|
||||
<pr-icon icon="'alert-triangle'" mode="'warning'" feather="true" class="vertical-center"></pr-icon> Image name is required.
|
||||
<pr-icon icon="'alert-triangle'" mode="'warning'" class="vertical-center"></pr-icon> Image name is required.
|
||||
<span ng-if="$ctrl.canPull">Tag must be specified otherwise Portainer will pull all tags associated to the image.</span>
|
||||
</p>
|
||||
</div>
|
||||
|
@ -72,10 +72,10 @@
|
|||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<button type="button" class="btn btn-link btn-sm hover:no-underline !ml-0 p-0 vertical-center" ng-if="!$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = true;">
|
||||
<pr-icon icon="'database'" feather="true"> </pr-icon> Simple mode
|
||||
<pr-icon icon="'database'"> </pr-icon> Simple mode
|
||||
</button>
|
||||
<button type="button" class="btn btn-link btn-sm hover:no-underline !ml-0 p-0 vertical-center" ng-if="$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = false;">
|
||||
<pr-icon icon="'globe'" feather="true"> </pr-icon> Advanced mode
|
||||
<pr-icon icon="'globe'"> </pr-icon> Advanced mode
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<rd-widget>
|
||||
<rd-widget-header icon="file" feather-icon="true" title-text="Log viewer settings"></rd-widget-header>
|
||||
<rd-widget-header icon="file" title-text="Log viewer settings"></rd-widget-header>
|
||||
<rd-widget-body>
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group">
|
||||
|
@ -55,25 +55,25 @@
|
|||
<label class="col-sm-2 control-label text-left"> Actions </label>
|
||||
<div class="col-sm-10">
|
||||
<button class="btn btn-primary btn-sm" type="button" ng-click="$ctrl.downloadLogs()" style="margin-left: 0"
|
||||
><pr-icon icon="'download'" feather="true"></pr-icon> Download logs</button
|
||||
><pr-icon icon="'download'"></pr-icon> Download logs</button
|
||||
>
|
||||
<button
|
||||
class="btn btn-primary btn-sm"
|
||||
ng-click="$ctrl.copy()"
|
||||
ng-disabled="($ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line) || !$ctrl.state.filteredLogs.length"
|
||||
><pr-icon icon="'copy'" feather="true" class-name="space-right"></pr-icon>Copy</button
|
||||
><pr-icon icon="'copy'" class-name="'space-right'"></pr-icon>Copy</button
|
||||
>
|
||||
<button
|
||||
class="btn btn-primary btn-sm"
|
||||
ng-click="$ctrl.copySelection()"
|
||||
ng-disabled="($ctrl.state.filteredLogs.length === 1 && !$ctrl.state.filteredLogs[0].line) || !$ctrl.state.filteredLogs.length || !$ctrl.state.selectedLines.length"
|
||||
><pr-icon icon="'copy'" feather="true" class-name="space-right"></pr-icon>Copy selected lines</button
|
||||
><pr-icon icon="'copy'" class-name="'space-right'"></pr-icon>Copy selected lines</button
|
||||
>
|
||||
<button class="btn btn-primary btn-sm" ng-click="$ctrl.clearSelection()" ng-disabled="$ctrl.state.selectedLines.length === 0"
|
||||
><pr-icon icon="'x'" feather="true" class-name="space-right"></pr-icon>Unselect</button
|
||||
><pr-icon icon="'x'" class-name="'space-right'"></pr-icon>Unselect</button
|
||||
>
|
||||
<span>
|
||||
<i id="refreshRateChange" class="fa fa-check green-icon" aria-hidden="true" style="margin-left: 7px; display: none"></i>
|
||||
<pr-icon id="refreshRateChange" icon="'check'" mode="'success'" style="display: none"></pr-icon>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<!-- selector -->
|
||||
<div class="form-group">
|
||||
<span class="col-sm-12 text-muted small vertical-center">
|
||||
<pr-icon icon="'alert-circle'" mode="'primary'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'alert-circle'" mode="'primary'"></pr-icon>
|
||||
To create a MACVLAN network you need to create a configuration, then create the network from this configuration.
|
||||
</span>
|
||||
</div>
|
||||
|
@ -14,7 +14,7 @@
|
|||
<input type="radio" id="network_config" ng-model="$ctrl.data.Scope" value="local" />
|
||||
<label for="network_config">
|
||||
<div class="boxselector_header">
|
||||
<pr-icon icon="'sliders'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'sliders'"></pr-icon>
|
||||
Configuration
|
||||
</div>
|
||||
<p>I want to configure a network before deploying it</p>
|
||||
|
@ -24,7 +24,7 @@
|
|||
<input type="radio" id="network_deploy" ng-model="$ctrl.data.Scope" value="swarm" ng-disabled="$ctrl.availableNetworks.length === 0" />
|
||||
<label for="network_deploy" ng-class="$ctrl.availableNetworks.length === 0 ? 'boxselector_disabled' : ''">
|
||||
<div class="boxselector_header">
|
||||
<pr-icon icon="'share-2'" feather="true"></pr-icon>
|
||||
<pr-icon icon="'share-2'"></pr-icon>
|
||||
Creation
|
||||
</div>
|
||||
<p>I want to create a network from a configuration</p>
|
||||
|
@ -55,7 +55,7 @@
|
|||
<div class="form-group" ng-show="macvlanConfigurationForm.network_card.$invalid">
|
||||
<div class="col-sm-12 small text-warning">
|
||||
<div ng-messages="macvlanConfigurationForm.network_card.$error">
|
||||
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Parent network card must be specified.</p>
|
||||
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Parent network card must be specified.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -66,7 +66,7 @@
|
|||
<div class="col-sm-12">
|
||||
<macvlan-nodes-datatable
|
||||
title-text="Select the nodes where you want to deploy the local configuration"
|
||||
title-icon="fa-hdd"
|
||||
title-icon="hard-drive"
|
||||
dataset="$ctrl.nodes"
|
||||
table-key="nodes"
|
||||
state="$ctrl.data.DatatableState"
|
||||
|
@ -82,7 +82,7 @@
|
|||
<div class="form-group" ng-show="macvlanConfigurationForm.node_selector.$invalid">
|
||||
<div class="col-sm-12 small text-warning">
|
||||
<div ng-messages="macvlanConfigurationForm.node_selector.$error">
|
||||
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> At least one node must be selected.</p>
|
||||
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> At least one node must be selected.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -112,7 +112,7 @@
|
|||
<div class="form-group" ng-show="macvlanConfigurationForm.config_network.$invalid">
|
||||
<div class="col-sm-12 small text-warning">
|
||||
<div ng-messages="macvlanConfigurationForm.config_network.$error">
|
||||
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> Select a configuration network.</p>
|
||||
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Select a configuration network.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_address.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="cifsInformationForm.cifs_address.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_share.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="cifsInformationForm.cifs_share.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -42,7 +42,7 @@
|
|||
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_version.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="cifsInformationForm.cifs_version.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -57,7 +57,7 @@
|
|||
<div class="form-group col-md-12" ng-show="cifsInformationForm.cifs_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="cifsInformationForm.cifs_username.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -72,7 +72,7 @@
|
|||
<div class="form-group col-md-12" ng-show="cifsInformationForm.password.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="cifsInformationForm.cifs_password.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_address.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="nfsInformationForm.nfs_address.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -27,7 +27,7 @@
|
|||
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_version.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="nfsInformationForm.nfs_version.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -49,7 +49,7 @@
|
|||
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_mountpoint.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="nfsInformationForm.nfs_mountpoint.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -67,7 +67,7 @@
|
|||
<div class="form-group col-md-12" ng-show="nfsInformationForm.nfs_options.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="nfsInformationForm.nfs_options.$error">
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'" feather="true"></pr-icon> This field is required.</p>
|
||||
<p ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This field is required.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 -->
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 -->
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue