chore(prettier): add tailwind prettier plugin [EE-4809] (#8221)

* add prettier plugin

* apply tailwind prettier formatting
pull/6728/merge
Ali 2023-02-13 10:04:24 +13:00 committed by GitHub
parent 9f6702d0b8
commit 58d66d3142
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
226 changed files with 704 additions and 699 deletions

View File

@ -59,7 +59,7 @@
<tbody>
<tr ng-if="!$ctrl.isRoot">
<td colspan="4">
<button type="button" class="btn btn-link hover:no-underline !ml-0 p-0" ng-click="$ctrl.goToParent()"
<button type="button" class="btn btn-link !ml-0 p-0 hover:no-underline" ng-click="$ctrl.goToParent()"
><pr-icon icon="'corner-left-up'"></pr-icon>Go to parent</button
>
</td>
@ -78,7 +78,7 @@
<a class="interactive" ng-click="$ctrl.rename({name: item.Name, newName: item.newName}); item.edit = false;"><pr-icon icon="'check'"></pr-icon></a>
</span>
<span ng-if="!item.edit && item.Dir">
<button type="button" class="btn btn-link hover:no-underline !ml-0 p-0" ng-click="$ctrl.browse({name: item.Name})" class="vertical-center"
<button type="button" class="btn btn-link !ml-0 p-0 hover:no-underline" ng-click="$ctrl.browse({name: item.Name})" class="vertical-center"
><pr-icon icon="'folder'"></pr-icon>{{ item.Name }}</button
>
</span>
@ -101,10 +101,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No files found.</td>
<td colspan="5" class="text-muted text-center">No files found.</td>
</tr>
</tbody>
</table>

View File

@ -148,7 +148,7 @@ input[type='checkbox'] {
}
.text-warning {
@apply text-warning-9 th-dark:text-warning-7 th-highcontrast:text-warning-1;
@apply text-warning-9 th-highcontrast:text-warning-1 th-dark:text-warning-7;
}
.widget .widget-body table tbody .image-tag {
@ -778,5 +778,5 @@ input[style*='background-image: url("data:image/png'] {
}
input:-webkit-autofill {
@apply caret-[--grey-25] th-dark:caret-white th-highcontrast:caret-white;
@apply caret-[--grey-25] th-highcontrast:caret-white th-dark:caret-white;
}

View File

@ -185,7 +185,7 @@ input:checked + .slider:before {
/* Widget */
.widget .widget-icon {
@apply text-lg !p-2 mr-1;
@apply mr-1 !p-2 text-lg;
@apply bg-blue-3 text-blue-8;
@apply th-dark:bg-gray-9 th-dark:text-blue-3;

View File

@ -25,15 +25,15 @@ fieldset[disabled] .btn {
}
.btn.btn-primary {
@apply text-white bg-blue-8 border-blue-8;
@apply hover:text-white hover:bg-blue-9 hover:border-blue-9;
@apply th-dark:hover:bg-blue-7 th-dark:hover:border-blue-7;
@apply border-blue-8 bg-blue-8 text-white;
@apply hover:border-blue-9 hover:bg-blue-9 hover:text-white;
@apply th-dark:hover:border-blue-7 th-dark:hover:bg-blue-7;
}
.btn.btn-primary:active,
.btn.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
@apply bg-blue-9 border-blue-5;
@apply border-blue-5 bg-blue-9;
}
.nav-pills > li.active > a,
@ -46,29 +46,29 @@ fieldset[disabled] .btn {
.btn.btn-secondary {
@apply border border-solid;
@apply text-blue-9 bg-blue-2 border-blue-8;
@apply border-blue-8 bg-blue-2 text-blue-9;
@apply hover:bg-blue-3;
@apply th-dark:text-blue-3 th-dark:bg-gray-10 th-dark:border-blue-7;
@apply th-dark:border-blue-7 th-dark:bg-gray-10 th-dark:text-blue-3;
@apply th-dark:hover:bg-blue-11;
}
.btn.btn-danger {
@apply bg-error-8 border-error-8;
@apply hover:bg-error-7 hover:border-error-7 hover:text-white;
@apply border-error-8 bg-error-8;
@apply hover:border-error-7 hover:bg-error-7 hover:text-white;
}
.btn.btn-danger:active,
.btn.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
@apply bg-error-8 text-white border-blue-5;
@apply border-blue-5 bg-error-8 text-white;
}
.btn.btn-dangerlight {
@apply text-error-9 th-dark:text-white;
@apply bg-error-3 th-dark:bg-error-9;
@apply hover:bg-error-2 th-dark:hover:bg-error-11;
@apply border-error-5 th-dark:border-error-7 th-highcontrast:border-error-7;
@apply border-error-5 th-highcontrast:border-error-7 th-dark:border-error-7;
@apply border border-solid;
}
@ -83,15 +83,15 @@ fieldset[disabled] .btn {
/* secondary-grey */
.btn.btn-default,
.btn.btn-light {
@apply bg-white border-gray-5 text-gray-9;
@apply hover:bg-gray-3 hover:border-gray-5 hover:text-gray-10;
@apply border-gray-5 bg-white text-gray-9;
@apply hover:border-gray-5 hover:bg-gray-3 hover:text-gray-10;
/* dark mode */
@apply th-dark:bg-gray-iron-10 th-dark:border-gray-warm-7 th-dark:text-gray-warm-4;
@apply th-dark:hover:bg-gray-iron-9 th-dark:hover:border-gray-6 th-dark:hover:text-gray-warm-4;
@apply th-dark:border-gray-warm-7 th-dark:bg-gray-iron-10 th-dark:text-gray-warm-4;
@apply th-dark:hover:border-gray-6 th-dark:hover:bg-gray-iron-9 th-dark:hover:text-gray-warm-4;
@apply th-highcontrast:bg-black th-highcontrast:border-gray-2 th-highcontrast:text-white;
@apply th-highcontrast:hover:bg-gray-9 th-highcontrast:hover:border-gray-6 th-highcontrast:hover:text-gray-warm-4;
@apply th-highcontrast:border-gray-2 th-highcontrast:bg-black th-highcontrast:text-white;
@apply th-highcontrast:hover:border-gray-6 th-highcontrast:hover:bg-gray-9 th-highcontrast:hover:text-gray-warm-4;
}
.btn.btn-light:active,
@ -112,8 +112,8 @@ fieldset[disabled] .btn {
.input-group-btn .btn.active,
.btn-group .btn.active {
@apply bg-blue-2 text-blue-10 border-blue-5;
@apply th-dark:bg-blue-11 th-dark:text-blue-2 th-dark:border-blue-9;
@apply border-blue-5 bg-blue-2 text-blue-10;
@apply th-dark:border-blue-9 th-dark:bg-blue-11 th-dark:text-blue-2;
}
/* focus */
@ -149,14 +149,14 @@ fieldset[disabled] .btn {
a.no-link,
a[ng-click] {
@apply text-current;
@apply hover:no-underline hover:text-current;
@apply focus:no-underline focus:text-current;
@apply hover:text-current hover:no-underline;
@apply focus:text-current focus:no-underline;
}
a,
a.hyperlink {
@apply text-blue-8 hover:text-blue-9;
@apply hover:underline cursor-pointer;
@apply cursor-pointer hover:underline;
}
a.no-decoration {

View File

@ -67,7 +67,7 @@ pr-icon {
.icon-warning,
.icon-orange {
@apply text-warning-9 th-dark:text-warning-7 th-highcontrast:text-warning-1;
@apply text-warning-9 th-highcontrast:text-warning-1 th-dark:text-warning-7;
}
.icon.icon-warning-alt {

View File

@ -42,7 +42,7 @@
/* today's date tile */
.react-datetime-picker .react-calendar__tile--now {
/* use background color to avoid white on yellow in dark/high contrast modes */
@apply th-dark:text-[color:var(--bg-calendar-color)] th-highcontrast:text-[color:var(--bg-calendar-color)];
@apply th-highcontrast:text-[color:var(--bg-calendar-color)] th-dark:text-[color:var(--bg-calendar-color)];
}
.react-datetime-picker .react-calendar__tile--now:enabled:hover,
.react-datetime-picker .react-calendar__tile--now:enabled:focus {

View File

@ -1,5 +1,5 @@
<div>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr>
<td class="col-md-3">
<span>Name</span>

View File

@ -24,7 +24,7 @@
<div class="actionBar !gap-3" authorization="DockerConfigDelete, DockerConfigCreate">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
authorization="DockerConfigDelete"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
@ -34,7 +34,7 @@
</button>
<button
type="button"
class="btn btn-sm btn-primary h-fit vertical-center !ml-0"
class="btn btn-sm btn-primary vertical-center !ml-0 h-fit"
ui-sref="docker.configs.new"
authorization="DockerConfigCreate"
data-cy="config-addConfigButton"
@ -80,7 +80,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -139,10 +139,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="3" class="text-center text-muted">Loading...</td>
<td colspan="3" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="3" class="text-center text-muted">No config available.</td>
<td colspan="3" class="text-muted text-center">No config available.</td>
</tr>
</tbody>
</table>

View File

@ -28,7 +28,7 @@
</form>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>Network</th>
@ -63,7 +63,7 @@
<td authorization="DockerNetworkDisconnect">
<button
type="button"
class="btn btn-xs btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-xs btn-dangerlight vertical-center !ml-0 h-fit"
ng-disabled="$ctrl.leaveNetworkActionInProgress || $ctrl.container.IsPortainer"
button-spinner="$ctrl.leaveNetworkActionInProgress"
ng-click="$ctrl.leaveNetworkAction($ctrl.container, key)"
@ -87,10 +87,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.dataset.length === 0">
<td colspan="5" class="text-center text-muted">No network available.</td>
<td colspan="5" class="text-muted text-center">No network available.</td>
</tr>
</tbody>
</table>

View File

@ -23,7 +23,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th ng-repeat="header in $ctrl.headerset">
@ -36,10 +36,10 @@
<td ng-repeat="info in item track by $index">{{ info }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="{{ $ctrl.headerset.length }}" class="text-center text-muted">Loading...</td>
<td colspan="{{ $ctrl.headerset.length }}" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredProcesses.length === 0">
<td colspan="{{ $ctrl.headerset.length }}" class="text-center text-muted">No process available.</td>
<td colspan="{{ $ctrl.headerset.length }}" class="text-muted text-center">No process available.</td>
</tr>
</tbody>
</table>

View File

@ -23,7 +23,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -65,10 +65,10 @@
<td>{{ item.Details }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="3" class="text-center text-muted">Loading...</td>
<td colspan="3" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="3" class="text-center text-muted">No event available.</td>
<td colspan="3" class="text-muted text-center">No event available.</td>
</tr>
</tbody>
</table>

View File

@ -25,7 +25,7 @@
<div class="btn-group" authorization="DockerImageDelete">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
authorization="DockerImageDelete"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
@ -77,7 +77,7 @@
<button
type="button"
class="btn btn-sm btn-primary h-fit vertical-center !ml-0"
class="btn btn-sm btn-primary vertical-center !ml-0 h-fit"
ui-sref="docker.images.build"
authorization="DockerImageBuild"
data-cy="image-buildImageButton"
@ -123,11 +123,11 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover table-filters nowrap-cells">
<table class="table-hover table-filters nowrap-cells table">
<thead>
<tr>
<th uib-dropdown dropdown-append-to-body auto-close="disabled" popover-placement="bottom-left" is-open="$ctrl.filters.state.open">
<div class="flex gap-1 items-center">
<div class="flex items-center gap-1">
<span class="md-checkbox">
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" />
<label for="select_all"></label>
@ -218,7 +218,7 @@
<input id="select_{{ $index }}" type="checkbox" ng-model="item.Checked" ng-click="$ctrl.selectItem(item, $event)" />
<label for="select_{{ $index }}"></label>
</span>
<a ui-sref="docker.images.image({ id: item.Id, nodeName: item.NodeName })" class="monospaced" title="{{ item.Id }}">{{ item.Id | truncate: 40 }}</a>
<a ui-sref="docker.images.image({ id: item.Id, nodeName: item.NodeName })" class="monospaced" title="{{ item.Id }}">{{ item.Id | truncate : 40 }}</a>
<span style="margin-left: 10px" class="label label-warning image-tag" ng-if="::item.ContainerCount === 0">Unused</span>
</td>
<td>
@ -229,10 +229,10 @@
<td ng-if="$ctrl.showHostColumn">{{ item.NodeName ? item.NodeName : '-' }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No image available.</td>
<td colspan="5" class="text-muted text-center">No image available.</td>
</tr>
</tbody>
</table>

View File

@ -22,7 +22,7 @@
/>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -99,10 +99,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="7" class="text-center text-muted">Loading...</td>
<td colspan="7" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="7" class="text-center text-muted">No node available.</td>
<td colspan="7" class="text-muted text-center">No node available.</td>
</tr>
</tbody>
</table>

View File

@ -16,7 +16,7 @@
</td>
<td ng-if="!allowCheckbox"></td>
<td>
<a ui-sref="docker.networks.network({ id: item.Id, nodeName: item.NodeName })" title="{{ item.Name }}">{{ item.Name | truncate: 40 }}</a>
<a ui-sref="docker.networks.network({ id: item.Id, nodeName: item.NodeName })" title="{{ item.Name }}">{{ item.Name | truncate : 40 }}</a>
<span style="margin-left: 10px" class="label label-info image-tag space-left" ng-if="item.ResourceControl.System">System</span>
</td>
<td>{{ item.StackName ? item.StackName : '-' }}</td>

View File

@ -24,7 +24,7 @@
<div class="actionBar !gap-3" authorization="DockerNetworkDelete, DockerNetworkCreate">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
authorization="DockerNetworkDelete"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
@ -34,7 +34,7 @@
</button>
<button
type="button"
class="btn btn-sm btn-primary h-fit vertical-center !ml-0"
class="btn btn-sm btn-primary vertical-center !ml-0 h-fit"
ui-sref="docker.networks.new"
authorization="DockerNetworkCreate"
data-cy="network-addNetworkButton"
@ -80,7 +80,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th style="width: 55px">
@ -207,10 +207,10 @@
</tr>
<tr dir-paginate-end ng-show="item.Expanded" ng-repeat="it in item.Subs" class="datatable-highlighted" network-row-content item="it" parent-ctrl="$ctrl"> </tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="9" class="text-center text-muted">Loading...</td>
<td colspan="9" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="9" class="text-center text-muted">No network available.</td>
<td colspan="9" class="text-muted text-center">No network available.</td>
</tr>
</tbody>
</table>

View File

@ -22,7 +22,7 @@
/>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -88,10 +88,10 @@
<td>{{ item.Updated | getisodate }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No task available.</td>
<td colspan="5" class="text-muted text-center">No task available.</td>
</tr>
</tbody>
</table>

View File

@ -59,7 +59,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -158,10 +158,10 @@
>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="7" class="text-center text-muted">Loading...</td>
<td colspan="7" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="7" class="text-center text-muted">No node available.</td>
<td colspan="7" class="text-muted text-center">No node available.</td>
</tr>
</tbody>
</table>

View File

@ -24,7 +24,7 @@
<div class="actionBar !gap-3" authorization="DockerSecretDelete, DockerSecretCreate">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
authorization="DockerSecretDelete"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
@ -34,7 +34,7 @@
</button>
<button
type="button"
class="btn btn-sm btn-primary h-fit vertical-center !ml-0"
class="btn btn-sm btn-primary vertical-center !ml-0 h-fit"
ui-sref="docker.secrets.new"
authorization="DockerSecretCreate"
data-cy="secret-addSecretButton"
@ -80,7 +80,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -139,10 +139,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="3" class="text-center text-muted">Loading...</td>
<td colspan="3" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="3" class="text-center text-muted">No secret available.</td>
<td colspan="3" class="text-muted text-center">No secret available.</td>
</tr>
</tbody>
</table>

View File

@ -1,5 +1,5 @@
<div class="inner-datatable">
<table class="table table-condensed table-hover nowrap-cells">
<table class="table-condensed table-hover nowrap-cells table">
<thead>
<tr>
<th uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.filters.state.open" class="w-[10%]">
@ -98,11 +98,11 @@
></container-quick-actions>
</td>
<td>{{ item.Slot ? item.Slot : '-' }}</td>
<td>{{ item.NodeId | tasknodename: $ctrl.nodes }}</td>
<td>{{ item.NodeId | tasknodename : $ctrl.nodes }}</td>
<td>{{ item.Updated | getisodate }}</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No task matching filter.</td>
<td colspan="5" class="text-muted text-center">No task matching filter.</td>
</tr>
</tbody>
</table>

View File

@ -67,7 +67,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th style="width: 55px">
@ -161,7 +161,7 @@
<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()">{{
<button type="button" class="btn btn-link !ml-0 p-0 hover:no-underline" ui-sref="docker.services.service({id: item.Id})" ng-click="$event.stopPropagation()">{{
item.Name
}}</button>
</td>
@ -169,7 +169,7 @@
<td ng-show="$ctrl.columnVisibility.columns.image.display">{{ item.Image | hideshasum }}</td>
<td ng-controller="ServicesDatatableActionsController as actionCtrl">
{{ item.Mode }}
<code>{{ item.Tasks | runningtaskscount }}</code> / <code>{{ item.Mode === 'replicated' ? item.Replicas : ($ctrl.nodes | availablenodecount: item) }}</code>
<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 vertical-center" ng-click="item.Scale = true; item.ReplicaCount = item.Replicas; $event.stopPropagation();">
<pr-icon icon="'minimize-2'"></pr-icon>
@ -233,10 +233,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="8" class="text-center text-muted">Loading...</td>
<td colspan="8" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="8" class="text-center text-muted">No service available.</td>
<td colspan="8" class="text-muted text-center">No service available.</td>
</tr>
</tbody>
</table>

View File

@ -21,7 +21,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -105,14 +105,14 @@
></container-quick-actions>
</td>
<td ng-if="$ctrl.showSlotColumn">{{ item.Slot ? item.Slot : '-' }}</td>
<td>{{ item.NodeId | tasknodename: $ctrl.nodes }}</td>
<td>{{ item.NodeId | tasknodename : $ctrl.nodes }}</td>
<td>{{ item.Updated | getisodate }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="6" class="text-center text-muted">Loading...</td>
<td colspan="6" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="6" class="text-center text-muted">No task available.</td>
<td colspan="6" class="text-muted text-center">No task available.</td>
</tr>
</tbody>
</table>

View File

@ -24,7 +24,7 @@
<div class="actionBar !gap-3" authorization="DockerVolumeDelete, DockerVolumeCreate">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
authorization="DockerVolumeDelete"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
@ -34,7 +34,7 @@
</button>
<button
type="button"
class="btn btn-sm btn-primary h-fit vertical-center !ml-0"
class="btn btn-sm btn-primary vertical-center !ml-0 h-fit"
ui-sref="docker.volumes.new"
authorization="DockerVolumeCreate"
data-cy="volume-addVolumeButton"
@ -80,7 +80,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover table-filters nowrap-cells">
<table class="table-hover table-filters nowrap-cells table">
<thead>
<tr>
<th uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.filters.state.open" class="flex gap-1">
@ -184,7 +184,7 @@
<input id="select_{{ $index }}" type="checkbox" ng-model="item.Checked" ng-click="$ctrl.selectItem(item, $event)" />
<label for="select_{{ $index }}"></label>
</span>
<a ui-sref="docker.volumes.volume({ id: item.Id, nodeName: item.NodeName })" class="monospaced" title="{{ item.Id }}">{{ item.Id | truncate: 40 }}</a>
<a ui-sref="docker.volumes.volume({ id: item.Id, nodeName: item.NodeName })" class="monospaced" title="{{ item.Id }}">{{ item.Id | truncate : 40 }}</a>
<button
ng-if="$ctrl.showBrowseAction"
@ -211,10 +211,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="6" class="text-center text-muted">Loading...</td>
<td colspan="6" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="6" class="text-center text-muted">No volume available.</td>
<td colspan="6" class="text-muted text-center">No volume available.</td>
</tr>
</tbody>
</table>

View File

@ -16,10 +16,10 @@
<td>{{ device.Vendor }}</td>
</tr>
<tr ng-if="!$ctrl.devices">
<td colspan="2" class="text-center text-muted">Loading...</td>
<td colspan="2" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.devices.length === 0">
<td colspan="2" class="text-center text-muted"> No device available. </td>
<td colspan="2" class="text-muted text-center"> No device available. </td>
</tr>
</tbody>
</table>

View File

@ -16,10 +16,10 @@
<td>{{ disk.Size | humansize }}</td>
</tr>
<tr ng-if="!$ctrl.disks">
<td colspan="2" class="text-center text-muted">Loading...</td>
<td colspan="2" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.disks.length === 0">
<td colspan="2" class="text-center text-muted"> No disks available. </td>
<td colspan="2" class="text-muted text-center"> No disks available. </td>
</tr>
</tbody>
</table>

View File

@ -25,15 +25,15 @@
</tr>
<tr>
<td>Volume Plugins</td>
<td>{{ $ctrl.engine.volumePlugins | arraytostr: ', ' }}</td>
<td>{{ $ctrl.engine.volumePlugins | arraytostr : ', ' }}</td>
</tr>
<tr>
<td>Network Plugins</td>
<td>{{ $ctrl.engine.networkPlugins | arraytostr: ', ' }}</td>
<td>{{ $ctrl.engine.networkPlugins | arraytostr : ', ' }}</td>
</tr>
<tr ng-if="$ctrl.engine.engineLabels.length">
<td>Engine Labels</td>
<td>{{ $ctrl.engine.engineLabels | labelsToStr: ', ' }}</td>
<td>{{ $ctrl.engine.engineLabels | labelsToStr : ', ' }}</td>
</tr>
</tbody>
</table>

View File

@ -1,7 +1,7 @@
<!-- use registry -->
<div class="row">
<div class="form-group" ng-if="$ctrl.model.UseRegistry">
<label for="image_registry" class="control-label text-left col-sm-3 col-lg-2" ng-class="$ctrl.labelClass"> Registry </label>
<label for="image_registry" class="control-label col-sm-3 col-lg-2 text-left" ng-class="$ctrl.labelClass"> Registry </label>
<div ng-class="$ctrl.inputClass" class="col-sm-8">
<select
ng-options="registry as registry.Name for registry in $ctrl.registries track by registry.Id"
@ -13,7 +13,7 @@
</div>
</div>
<div class="form-group" ng-if="$ctrl.model.UseRegistry">
<label for="image_name" ng-class="$ctrl.labelClass" class="control-label text-left col-sm-3 col-lg-2 required">Image</label>
<label for="image_name" ng-class="$ctrl.labelClass" class="control-label col-sm-3 col-lg-2 required text-left">Image</label>
<div ng-class="$ctrl.inputClass" class="col-sm-8">
<div class="input-group">
<span class="input-group-addon" id="registry-name">{{ $ctrl.displayedRegistryURL() }}</span>
@ -49,7 +49,7 @@
<span class="small">
<p class="text-muted ml-4"> When using advanced mode, image and repository <b>must be</b> publicly available. </p>
</span>
<label for="image_name" ng-class="$ctrl.labelClass" class="control-label text-left col-sm-3 col-lg-2 required">Image </label>
<label for="image_name" ng-class="$ctrl.labelClass" class="control-label col-sm-3 col-lg-2 required text-left">Image </label>
<div ng-class="$ctrl.inputClass" class="col-sm-8">
<input type="text" class="form-control" ng-model="$ctrl.model.Image" name="image_name" placeholder="e.g. registry:port/my-image:my-tag" required />
</div>
@ -71,10 +71,10 @@
<!-- ! info message -->
<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;">
<button type="button" class="btn btn-link btn-sm vertical-center !ml-0 p-0 hover:no-underline" ng-if="!$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = true;">
<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;">
<button type="button" class="btn btn-link btn-sm vertical-center !ml-0 p-0 hover:no-underline" ng-if="$ctrl.model.UseRegistry" ng-click="$ctrl.model.UseRegistry = false;">
<pr-icon icon="'globe'"> </pr-icon> Advanced mode
</button>
</div>

View File

@ -4,7 +4,7 @@
<div class="col-sm-12 form-section-title"> CIFS Settings </div>
<!-- address-input -->
<div class="form-group col-md-12">
<label for="cifs_address" class="col-sm-2 col-md-1 control-label text-left required">Address</label>
<label for="cifs_address" class="col-sm-2 col-md-1 control-label required text-left">Address</label>
<div class="col-sm-10 col-md-11">
<input type="text" class="form-control" ng-model="$ctrl.data.serverAddress" name="cifs_address" placeholder="e.g. my.cifs-server.com OR xxx.xxx.xxx.xxx" required />
</div>
@ -19,7 +19,7 @@
<!-- !address-input -->
<!-- mount-point-input -->
<div class="form-group col-md-12">
<label for="cifs_share" class="col-sm-2 col-md-1 control-label text-left required">Share</label>
<label for="cifs_share" class="col-sm-2 col-md-1 control-label required text-left">Share</label>
<div class="col-sm-10 col-md-11">
<input type="text" class="form-control" ng-model="$ctrl.data.share" name="cifs_share" placeholder="e.g. /myshare" required />
</div>
@ -49,7 +49,7 @@
<!-- !version-input -->
<!-- username -->
<div class="form-group col-md-12">
<label for="cifs_username" class="col-sm-2 col-md-1 control-label text-left required">Username</label>
<label for="cifs_username" class="col-sm-2 col-md-1 control-label required text-left">Username</label>
<div class="col-sm-10 col-md-11">
<input type="text" class="form-control" ng-model="$ctrl.data.username" name="cifs_username" required />
</div>

View File

@ -4,7 +4,7 @@
<div class="col-sm-12 form-section-title"> NFS Settings </div>
<!-- address-input -->
<div class="form-group col-md-12">
<label for="nfs_address" class="col-sm-2 col-md-1 control-label text-left required">Address</label>
<label for="nfs_address" class="col-sm-2 col-md-1 control-label required text-left">Address</label>
<div class="col-sm-10 col-md-11">
<input type="text" class="form-control" ng-model="$ctrl.data.serverAddress" name="nfs_address" placeholder="e.g. my.nfs-server.com OR xxx.xxx.xxx.xxx" required />
</div>
@ -34,7 +34,7 @@
<!-- !version-input -->
<!-- mount-point-input -->
<div class="form-group col-md-12">
<label for="nfs_mountpoint" class="col-sm-2 col-md-1 control-label text-left required">Mount point</label>
<label for="nfs_mountpoint" class="col-sm-2 col-md-1 control-label required text-left">Mount point</label>
<div class="col-sm-10 col-md-11">
<input
type="text"

View File

@ -29,7 +29,7 @@
<!-- labels -->
<div class="form-group">
<div class="col-sm-12 mt-1">
<label class="control-label text-left space-right">Labels</label>
<label class="control-label space-right text-left">Labels</label>
<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 -->

View File

@ -34,7 +34,7 @@
<tr ng-if="!(config.Labels | emptyobject)">
<td>Labels</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="(k, v) in config.Labels">
<td>{{ k }}</td>
<td>{{ v }}</td>

View File

@ -19,7 +19,7 @@
<div ng-if="state === states.disconnected">
<!-- command-list -->
<div class="form-group">
<label for="command" class="col-lg-1 text-left col-sm-2 control-label">Command</label>
<label for="command" class="col-lg-1 col-sm-2 control-label text-left">Command</label>
<div class="col-lg-11 col-sm-10">
<div class="input-group" ng-if="!formValues.isCustomCommand">
<span class="input-group-addon">
@ -48,7 +48,7 @@
></por-switch-field>
</div>
<div class="form-group">
<label class="col-lg-1 text-left col-sm-2 control-label">
<label class="col-lg-1 col-sm-2 control-label text-left">
User
<portainer-tooltip message="'Format is one of: user, user:group, uid or uid:gid'"></portainer-tooltip>
</label>

View File

@ -403,7 +403,7 @@
<span class="input-group-addon">volume</span>
<select class="form-control" ng-model="volume.name">
<option selected disabled hidden value="">Select a volume</option>
<option ng-repeat="vol in availableVolumes" ng-value="vol.Name">{{ vol.Name | truncate: 30 }} - {{ vol.Driver | truncate: 30 }}</option>
<option ng-repeat="vol in availableVolumes" ng-value="vol.Name">{{ vol.Name | truncate : 30 }} - {{ vol.Driver | truncate : 30 }}</option>
</select>
</div>
<!-- !volume -->
@ -718,7 +718,7 @@
<div class="col-sm-12 form-section-title"> Resources </div>
<!-- memory-reservation-input -->
<div class="form-group flex">
<label for="memory-reservation" class="col-sm-3 col-lg-2 control-label text-left vertical-center"> Memory reservation (MB) </label>
<label for="memory-reservation" class="col-sm-3 col-lg-2 control-label vertical-center text-left"> Memory reservation (MB) </label>
<div class="col-sm-6">
<slider
on-change="(handleResourceChange)"
@ -755,7 +755,7 @@
<!-- !memory-reservation-input -->
<!-- memory-limit-input -->
<div class="form-group flex">
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label text-left vertical-center"> Memory limit (MB) </label>
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label vertical-center text-left"> Memory limit (MB) </label>
<div class="col-sm-6">
<slider
on-change="(handleResourceChange)"
@ -792,7 +792,7 @@
<!-- !memory-limit-input -->
<!-- cpu-limit-input -->
<div class="form-group flex">
<label for="cpu-limit" class="col-sm-3 col-lg-2 control-label text-left vertical-center"> Maximum CPU usage </label>
<label for="cpu-limit" class="col-sm-3 col-lg-2 control-label vertical-center text-left"> Maximum CPU usage </label>
<div class="col-sm-8">
<slider
on-change="(handleResourceChange)"

View File

@ -235,7 +235,7 @@
<rd-widget>
<rd-widget-header icon="list" title-text="Container details"></rd-widget-header>
<rd-widget-body classes="no-padding">
<table class="table container-details-table">
<table class="container-details-table table">
<tbody>
<tr>
<td>Image</td>
@ -268,7 +268,7 @@
<tr>
<td>ENV</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="var in container.Config.Env track by $index">
<td>{{ var|key: '=' }}</td>
<td>{{ var|value: '=' }}</td>
@ -279,7 +279,7 @@
<tr ng-if="!(container.Config.Labels | emptyobject)">
<td>Labels</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="(k, v) in container.Config.Labels">
<td>{{ k }}</td>
<td>{{ v }}</td>
@ -302,7 +302,7 @@
<tr ng-if="!(container.HostConfig.Sysctls | emptyobject)">
<td>Sysctls</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="(k, v) in container.HostConfig.Sysctls">
<td>{{ k }}</td>
<td>{{ v }}</td>

View File

@ -20,7 +20,7 @@
</span>
</rd-widget-header>
<rd-widget-body>
<pre ng-show="state.DisplayTextView">{{ containerInfo | json: 4 }}</pre>
<pre ng-show="state.DisplayTextView">{{ containerInfo | json : 4 }}</pre>
<json-tree ng-hide="state.DisplayTextView" object="containerInfo" root-name="containerInfo.Id" start-expanded="true"></json-tree>
</rd-widget-body>
</rd-widget>

View File

@ -143,7 +143,7 @@
<tr ng-if="!(image.Labels | emptyobject)">
<td>Labels</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="(k, v) in image.Labels">
<td>{{ k }}</td>
<td>{{ v }}</td>
@ -213,7 +213,7 @@
{{ layer.CreatedBy | imagelayercommand }}
</span>
<span id="layer-command-{{ $index }}-short">
{{ layer.CreatedBy | imagelayercommand | truncate: 130 }}
{{ 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'"></pr-icon>

View File

@ -37,7 +37,7 @@
<!-- labels -->
<div class="form-group">
<div class="col-sm-12 mt-1">
<label class="control-label text-left space-right">Labels</label>
<label class="control-label space-right text-left">Labels</label>
<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 -->

View File

@ -31,7 +31,7 @@
<tr ng-if="!(secret.Labels | emptyobject)">
<td>Labels</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="(k, v) in secret.Labels">
<td>{{ k }}</td>
<td>{{ v }}</td>

View File

@ -45,7 +45,7 @@
</td>
</tr>
<tr ng-if="service.ServiceConfigs.length === 0">
<td colspan="6" class="text-center text-muted">No configs associated to this service.</td>
<td colspan="6" class="text-muted text-center">No configs associated to this service.</td>
</tr>
</tbody>
</table>

View File

@ -49,7 +49,7 @@
</td>
</tr>
<tr ng-if="service.LogDriverOpts.length === 0">
<td colspan="6" class="text-center text-muted">No options associated to this logging driver.</td>
<td colspan="6" class="text-muted text-center">No options associated to this logging driver.</td>
</tr>
</tbody>
</table>

View File

@ -44,7 +44,7 @@
</td>
</tr>
<tr ng-if="service.ServiceSecrets.length === 0">
<td colspan="6" class="text-center text-muted">No secrets associated to this service.</td>
<td colspan="6" class="text-muted text-center">No secrets associated to this service.</td>
</tr>
</tbody>
</table>

View File

@ -92,7 +92,7 @@
<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
><div class="flex gap-x-2 gap-y-1 flex-wrap">
><div class="flex flex-wrap gap-x-2 gap-y-1">
<a
authorization="DockerServiceLogs"
ng-if="applicationState.endpoint.apiVersion >= 1.3"

View File

@ -21,7 +21,7 @@
</tr>
<tr>
<td>Total memory</td>
<td>{{ totalMemory | humansize: 2 }}</td>
<td>{{ totalMemory | humansize : 2 }}</td>
</tr>
<tr>
<td colspan="2">

View File

@ -90,7 +90,7 @@
</div>
<div>{{ node.Role }}</div>
<div>CPU: {{ node.CPUs / 1000000000 }}</div>
<div>Memory: {{ node.Memory | humansize: 2 }}</div>
<div>Memory: {{ node.Memory | humansize : 2 }}</div>
<div
><span class="label label-{{ node.Status | nodestatusbadge }}">{{ node.Status }}</span></div
>
@ -114,7 +114,7 @@
<div>Image: {{ task.Spec.ContainerSpec.Image | hideshasum }}</div>
<div>Status: {{ task.Status.State }}</div>
<div>Update: {{ task.Updated | getisodate }}</div>
<div ng-if="task.Spec.Resources.Limits.MemoryBytes">Memory limit: {{ task.Spec.Resources.Limits.MemoryBytes | humansize: 2:2 }}</div>
<div ng-if="task.Spec.Resources.Limits.MemoryBytes">Memory limit: {{ task.Spec.Resources.Limits.MemoryBytes | humansize : 2 : 2 }}</div>
<div ng-if="task.Spec.Resources.Limits.NanoCPUs">CPU limit: {{ task.Spec.Resources.Limits.NanoCPUs / 1000000000 }}</div>
</div>
</div>

View File

@ -31,7 +31,7 @@
<tr ng-if="!(volume.Labels | emptyobject)">
<td>Labels</td>
<td>
<table class="table table-bordered table-condensed">
<table class="table-bordered table-condensed table">
<tr ng-repeat="(k, v) in volume.Labels">
<td>{{ k }}</td>
<td>{{ v }}</td>

View File

@ -22,7 +22,7 @@
/>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -58,10 +58,10 @@
<td>{{ item.GroupName }}</td>
</tr>
<tr ng-if="$ctrl.state.loading">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="!$ctrl.state.loading && $ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No environment available.</td>
<td colspan="5" class="text-muted text-center">No environment available.</td>
</tr>
</tbody>
</table>

View File

@ -2,7 +2,7 @@
<div class="col-sm-12 form-section-title"> Edge job configuration </div>
<!-- name-input -->
<div class="form-group mt-4">
<label for="edgejob_name" class="col-sm-2 control-label text-left required">Name </label>
<label for="edgejob_name" class="col-sm-2 control-label required text-left">Name </label>
<div class="col-sm-10">
<input
type="text"

View File

@ -12,7 +12,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover table-filters nowrap-cells">
<table class="table-hover table-filters nowrap-cells table">
<thead>
<tr>
<th>
@ -40,10 +40,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="9" class="text-center text-muted">Loading...</td>
<td colspan="9" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="9" class="text-center text-muted">No result available.</td>
<td colspan="9" class="text-muted text-center">No result available.</td>
</tr>
</tbody>
</table>

View File

@ -15,7 +15,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -71,10 +71,10 @@
<td>{{ item.Created | getisodatefromtimestamp }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="3" class="text-center text-muted">Loading...</td>
<td colspan="3" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="3" class="text-center text-muted">No Edge job available.</td>
<td colspan="3" class="text-muted text-center">No Edge job available.</td>
</tr>
</tbody>
</table>

View File

@ -17,7 +17,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -60,10 +60,10 @@
<td>{{ $ctrl.endpointStatusError(item.Id) }}</td>
</tr>
<tr ng-if="$ctrl.state.loading">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="!$ctrl.state.loading && $ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No environment available.</td>
<td colspan="5" class="text-muted text-center">No environment available.</td>
</tr>
</tbody>
</table>

View File

@ -69,7 +69,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells" data-cy="edgeStack-stackTable">
<table class="table-hover nowrap-cells table" data-cy="edgeStack-stackTable">
<thead>
<tr>
<th>
@ -142,10 +142,10 @@
<td>{{ item.CreationDate | getisodatefromtimestamp }}</td>
</tr>
<tr ng-if="!$ctrl.dataset" data-cy="edgeStack-loadingRow">
<td colspan="6" class="text-center text-muted">Loading...</td>
<td colspan="6" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0" data-cy="edgeStack-noStackRow">
<td colspan="6" class="text-center text-muted"> No stack available. </td>
<td colspan="6" class="text-muted text-center"> No stack available. </td>
</tr>
</tbody>
</table>

View File

@ -24,7 +24,7 @@
read-only="$ctrl.state.readOnlyCompose"
></edge-stack-deployment-type-selector>
<div class="flex gap-1 text-muted small" ng-show="!$ctrl.model.DeploymentType && $ctrl.hasKubeEndpoint()">
<div class="text-muted small flex gap-1" ng-show="!$ctrl.model.DeploymentType && $ctrl.hasKubeEndpoint()">
<pr-icon icon="'alert-circle'" mode="'warning'" class-name="'!mt-1'"></pr-icon>
<div>
<p>

View File

@ -1,6 +1,6 @@
<form class="form-horizontal" name="EdgeGroupForm" ng-submit="$ctrl.formAction()">
<div class="form-group">
<label for="group_name" class="col-sm-3 col-lg-2 control-label text-left required"> Name </label>
<label for="group_name" class="col-sm-3 col-lg-2 control-label required text-left"> Name </label>
<div class="col-sm-9 col-lg-10">
<input
type="text"

View File

@ -31,7 +31,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells" data-cy="edgeGroup-edgeGroupTable">
<table class="table-hover nowrap-cells table" data-cy="edgeGroup-edgeGroupTable">
<thead>
<tr>
<th class="flex">
@ -90,10 +90,10 @@
<td>{{ item.Dynamic ? 'Dynamic' : 'Static' }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="4" class="text-center text-muted">Loading...</td>
<td colspan="4" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="4" class="text-center text-muted"> No Edge group available. </td>
<td colspan="4" class="text-muted text-center"> No Edge group available. </td>
</tr>
</tbody>
</table>

View File

@ -7,7 +7,7 @@
<form class="form-horizontal" name="$ctrl.form">
<!-- name-input -->
<div class="form-group">
<label for="stack_name" class="col-sm-1 control-label text-left required"> Name </label>
<label for="stack_name" class="col-sm-1 control-label required text-left"> Name </label>
<div class="col-sm-11">
<input
type="text"

View File

@ -53,7 +53,7 @@
<div class="page-content">
<div class="page-wrapper" ng-if="applicationState.loading">
<!-- loading box -->
<div class="container simple-box">
<div class="simple-box container">
<div class="col-md-6 col-md-offset-3 col-sm-6 col-sm-offset-3">
<!-- loading box logo -->
<div class="row">
@ -75,7 +75,7 @@
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="inline animate-spin-slow !ml-1"
class="!ml-1 inline animate-spin-slow"
>
<circle cx="12" cy="12" r="3"></circle>
<path

View File

@ -57,7 +57,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells" data-cy="k8sAppDetail-containerTable">
<table class="table-hover nowrap-cells table" data-cy="k8sAppDetail-containerTable">
<thead>
<tr>
<th ng-if="!$ctrl.isPod">
@ -142,7 +142,7 @@
>
<td ng-if="!$ctrl.isPod">{{ item.PodName }}</td>
<td>{{ item.Name }}</td>
<td title="{{ item.Image }}">{{ item.Image | truncate: 64 }}</td>
<td title="{{ item.Image }}">{{ item.Image | truncate : 64 }}</td>
<td>{{ item.ImagePullPolicy }}</td>
<td
><span class="label label-{{ item.Status | kubernetesPodStatusColor }}">{{ item.Status }}</span></td
@ -178,10 +178,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="7" class="text-center text-muted">Loading...</td>
<td colspan="7" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="7" class="text-center text-muted">No pod available.</td>
<td colspan="7" class="text-muted text-center">No pod available.</td>
</tr>
</tbody>
</table>

View File

@ -1,4 +1,4 @@
<div class="col-xs-12 text-[13px] !px-0 !py-1"> Secrets </div>
<div class="col-xs-12 !px-0 !py-1 text-[13px]"> Secrets </div>
<table style="width: 50%">
<tbody>
<tr>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<!-- toolbar header actions and settings -->
<div ng-if="$ctrl.isPrimary" class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !p-0 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="'box'"></pr-icon>
@ -21,11 +21,11 @@
data-cy="k8sApp-searchApplicationsInput"
/>
</div>
<div class="actionBar !gap-3 !mr-0">
<div class="actionBar !mr-0 !gap-3">
<button
ng-if="$ctrl.isPrimary"
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="k8sApp-removeAppButton"
@ -36,7 +36,7 @@
<button
ng-if="$ctrl.isPrimary"
type="button"
class="btn btn-sm btn-secondary h-fit vertical-center !ml-0"
class="btn btn-sm btn-secondary vertical-center !ml-0 h-fit"
ui-sref="kubernetes.applications.new"
data-cy="k8sApp-addApplicationButton"
>
@ -45,7 +45,7 @@
<button
ng-if="$ctrl.isPrimary"
type="button"
class="btn btn-sm btn-primary h-fit vertical-center !ml-0"
class="btn btn-sm btn-primary vertical-center !ml-0 h-fit"
ui-sref="kubernetes.deploy"
data-cy="k8sApp-deployFromManifestButton"
>
@ -105,8 +105,8 @@
</span>
</div>
</div>
<div class="flex flex-row w-full" ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem">
<span class="small text-muted mt-1 vertical-center">
<div class="flex w-full flex-row" ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem">
<span class="small text-muted vertical-center mt-1">
<pr-icon icon="'info'" mode="'primary'" class="vertical-center"></pr-icon>
System resources are hidden, this can be changed in the table settings.
</span>
@ -114,16 +114,16 @@
</div>
<!-- data table content -->
<div ng-class="{ 'table-responsive': $ctrl.isPrimary, 'inner-datatable': !$ctrl.isPrimary }">
<table class="table table-hover table-filters nowrap-cells" data-cy="k8sApp-appTable">
<table class="table-hover table-filters nowrap-cells table" data-cy="k8sApp-appTable">
<thead ng-class="{ 'secondary-heading': !$ctrl.isPrimary }">
<tr role="row">
<th role="columnheader" class="datatable-wide dropdown">
<div ng-if="$ctrl.isPrimary" class="flex no-wrap min-w-max">
<div ng-if="$ctrl.isPrimary" class="no-wrap flex min-w-max">
<span class="md-checkbox vertical-center">
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" data-cy="k8sApp-selectAllCheckbox" />
<label for="select_all"></label>
</span>
<div class="cursor-pointer vertical-center" ng-click="$ctrl.expandAll()">
<div class="vertical-center cursor-pointer" ng-click="$ctrl.expandAll()">
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
</div>
@ -166,7 +166,7 @@
></table-column-header>
</th>
<th uib-dropdown dropdown-append-to-body auto-close="disabled" is-open="$ctrl.filters.state.open">
<div class="flex flex-row no-wrap gap-2">
<div class="no-wrap flex flex-row gap-2">
<table-column-header
col-title="'Application Type'"
can-sort="true"
@ -174,7 +174,7 @@
is-sorted-desc="$ctrl.state.orderBy === 'ApplicationType' && $ctrl.state.reverseOrder"
ng-click="$ctrl.changeOrderBy('ApplicationType')"
></table-column-header>
<div class="flex flex-row no-wrap gap-1 items-center" uib-dropdown-toggle>
<div class="no-wrap flex flex-row items-center gap-1" uib-dropdown-toggle>
<span class="table-filter">Filters</span>
<pr-icon ng-if="!$ctrl.filters.state.enabled" icon="'filter'"></pr-icon>
<pr-icon ng-if="$ctrl.filters.state.enabled" icon="'check'"></pr-icon>
@ -260,7 +260,7 @@
<a ui-sref="kubernetes.resourcePools.resourcePool({ id: item.ResourcePool })" ng-click="$event.stopPropagation()">{{ item.ResourcePool }}</a>
</td>
<td title="{{ item.Image }}"
>{{ item.Image | truncate: 64 }} <span ng-if="item.Containers.length > 1">+ {{ item.Containers.length - 1 }}</span></td
>{{ item.Image | truncate : 64 }} <span ng-if="item.Containers.length > 1">+ {{ item.Containers.length - 1 }}</span></td
>
<td>{{ item.ApplicationType | kubernetesApplicationTypeText }}</td>
<td ng-if="item.ApplicationType !== $ctrl.KubernetesApplicationTypes.POD">
@ -308,10 +308,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="8" class="text-center text-muted">Loading...</td>
<td colspan="8" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="8" class="text-center text-muted">No application available.</td>
<td colspan="8" class="text-muted text-center">No application available.</td>
</tr>
</tbody>
</table>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<!-- table title and action menu -->
<div class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !p-0 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0">
<!-- title -->
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
@ -76,8 +76,8 @@
</div>
</div>
<!-- info text -->
<div class="flex flex-row w-full">
<span class="small text-muted mt-1 vertical-center" ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem">
<div class="flex w-full flex-row">
<span class="small text-muted vertical-center mt-1" ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem">
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
System resources are hidden, this can be changed in the table settings.
</span>
@ -85,11 +85,11 @@
</div>
<!-- table -->
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
<div class="cursor-pointer vertical-center" ng-click="$ctrl.expandAll()" ng-if="$ctrl.hasExpandableItems()" class="flex no-wrap min-w-max">
<div class="vertical-center cursor-pointer" ng-click="$ctrl.expandAll()" ng-if="$ctrl.hasExpandableItems()" class="no-wrap flex min-w-max">
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'" class-name="'icon'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'" class-name="'icon'"></pr-icon>
</div>
@ -252,11 +252,11 @@
<tr class="!h-0" dir-paginate-end></tr>
<!-- no dataset -->
<tr ng-if="!$ctrl.dataset">
<td colspan="6" class="text-center text-muted">Loading...</td>
<td colspan="6" class="text-muted text-center">Loading...</td>
</tr>
<!-- no values in filtered dataset -->
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="6" class="text-center text-muted">No application port mapping available.</td>
<td colspan="6" class="text-muted text-center">No application port mapping available.</td>
</tr>
</tbody>
</table>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<!-- table title and action menu -->
<div class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !p-0 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0">
<!-- title -->
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
@ -22,10 +22,10 @@
ng-model-options="{ debounce: 300 }"
/>
</div>
<div class="actionBar !gap-3 !mr-0">
<div class="actionBar !mr-0 !gap-3">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="k8sApp-removeStackButton"
@ -88,19 +88,19 @@
</div>
</div>
<!-- info text -->
<div class="flex flex-row w-full">
<span class="small text-muted mt-1 vertical-center" ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem">
<div class="flex w-full flex-row">
<span class="small text-muted vertical-center mt-1" ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem">
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
System resources are hidden, this can be changed in the table settings.
</span>
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th class="w-20 dropdown">
<div class="flex no-wrap h-full items-center">
<th class="dropdown w-20">
<div class="no-wrap flex h-full items-center">
<span class="md-checkbox">
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" />
<label for="select_all"></label>
@ -151,7 +151,7 @@
pagination-id="$ctrl.tableKey"
>
<td>
<div class="flex no-wrap items-center">
<div class="no-wrap flex items-center">
<span class="md-checkbox">
<input
id="select_{{ $index }}"
@ -198,10 +198,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No stack available.</td>
<td colspan="5" class="text-muted text-center">No stack available.</td>
</tr>
</tbody>
</table>

View File

@ -3,14 +3,14 @@
<rd-widget-body classes="no-padding">
<!-- table title and action menu -->
<div class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !px-0 !py-1 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !px-0 !py-1">
<div class="toolBarTitle">
<div class="widget-icon space-right">
<pr-icon icon="'lock'"></pr-icon>
</div>
ConfigMaps & Secrets
</div>
<div class="searchBar vertical-center w-72 !mr-0">
<div class="searchBar vertical-center !mr-0 w-72">
<pr-icon icon="'search'" class-name="'icon !h-3'"></pr-icon>
<input
type="text"
@ -24,20 +24,20 @@
/>
</div>
<!-- actions -->
<div class="actionBar !gap-3 !mr-0">
<div class="actionBar !mr-0 !gap-3">
<button
type="button"
class="btn btn-sm btn-dangerlight !ml-0 vertical-center"
class="btn btn-sm btn-dangerlight vertical-center !ml-0"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="k8sConfig-removeConfigButton"
>
<pr-icon icon="'trash-2'"></pr-icon>Remove
</button>
<button type="button" class="btn btn-sm btn-secondary !ml-0 vertical-center" ui-sref="kubernetes.configurations.new" data-cy="k8sConfig-addConfigWithFormButton">
<button type="button" class="btn btn-sm btn-secondary vertical-center !ml-0" ui-sref="kubernetes.configurations.new" data-cy="k8sConfig-addConfigWithFormButton">
<pr-icon icon="'plus'" class-name="'!h-3'"></pr-icon>Add with form
</button>
<button type="button" class="btn btn-sm btn-primary !ml-0 vertical-center" ui-sref="kubernetes.deploy" data-cy="k8sConfig-deployFromManifestButton">
<button type="button" class="btn btn-sm btn-primary vertical-center !ml-0" ui-sref="kubernetes.deploy" data-cy="k8sConfig-deployFromManifestButton">
<pr-icon icon="'plus'" class-name="'!h-3'"></pr-icon>Create from manifest
</button>
</div>
@ -88,15 +88,15 @@
</span>
</div>
</div>
<div ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem" class="flex flex-row w-full">
<span class="small text-muted mt-1 vertical-center">
<div ng-if="$ctrl.isAdmin && !$ctrl.settings.showSystem" class="flex w-full flex-row">
<span class="small text-muted vertical-center mt-1">
<pr-icon icon="'info'" mode="'primary'" class="vertical-center"></pr-icon>
<div> System resources are hidden, this can be changed in the table settings. </div>
</span>
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells" data-cy="k8sConfig-tableSettingsButtonconfigsTable">
<table class="table-hover nowrap-cells table" data-cy="k8sConfig-tableSettingsButtonconfigsTable">
<thead>
<tr>
<th>
@ -164,10 +164,10 @@
<td>{{ item.CreationDate | getisodate }} {{ item.ConfigurationOwner ? 'by ' + item.ConfigurationOwner : '' }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="4" class="text-center text-muted">Loading...</td>
<td colspan="4" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="4" class="text-center text-muted">No configuration available.</td>
<td colspan="4" class="text-muted text-center">No configuration available.</td>
</tr>
</tbody>
</table>

View File

@ -55,7 +55,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells" data-cy="k8sConfigDetail-eventsTable">
<table class="table-hover nowrap-cells table" data-cy="k8sConfigDetail-eventsTable">
<thead>
<tr>
<th>
@ -109,10 +109,10 @@
<td>{{ item.Message }}</td>
</tr>
<tr ng-if="$ctrl.loading">
<td colspan="4" class="text-center text-muted">Loading...</td>
<td colspan="4" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="!$ctrl.loading && (!$ctrl.dataset || $ctrl.state.filteredDataSet.length === 0)">
<td colspan="4" class="text-center text-muted">No event available.</td>
<td colspan="4" class="text-muted text-center">No event available.</td>
</tr>
</tbody>
</table>

View File

@ -58,7 +58,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -98,13 +98,13 @@
><a ui-sref="kubernetes.applications.application({ name: item.Name, namespace: item.ResourcePool })">{{ item.Name }}</a></td
>
<td>{{ item.StackName || '-' }}</td>
<td title="{{ item.Image }}">{{ item.Image | truncate: 64 }}</td>
<td title="{{ item.Image }}">{{ item.Image | truncate : 64 }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="3" class="text-center text-muted">Loading...</td>
<td colspan="3" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="3" class="text-center text-muted">No application available.</td>
<td colspan="3" class="text-muted text-center">No application available.</td>
</tr>
</tbody>
</table>

View File

@ -58,7 +58,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -131,16 +131,16 @@
<a ui-sref="kubernetes.resourcePools.resourcePool({ id: item.ResourcePool })">{{ item.ResourcePool }}</a>
</td>
<td title="{{ item.Image }}"
>{{ item.Image | truncate: 64 }} <span ng-if="item.Containers.length > 1">+ {{ item.Containers.length - 1 }}</span></td
>{{ item.Image | truncate : 64 }} <span ng-if="item.Containers.length > 1">+ {{ item.Containers.length - 1 }}</span></td
>
<td>{{ item.CPU | kubernetesApplicationCPUValue }}</td>
<td>{{ item.Memory | humansize }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="6" class="text-center text-muted">Loading...</td>
<td colspan="6" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="6" class="text-center text-muted">No stack available.</td>
<td colspan="6" class="text-muted text-center">No stack available.</td>
</tr>
</tbody>
</table>

View File

@ -65,7 +65,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -159,10 +159,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="7" class="text-center text-muted">Loading...</td>
<td colspan="7" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="7" class="text-center text-muted">No node available.</td>
<td colspan="7" class="text-muted text-center">No node available.</td>
</tr>
</tbody>
</table>

View File

@ -56,7 +56,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -116,16 +116,16 @@
</td>
<td>{{ item.StackName || '-' }}</td>
<td title="{{ item.Image }}"
>{{ item.Image | truncate: 64 }} <span ng-if="item.Containers.length > 1">+ {{ item.Containers.length - 1 }}</span></td
>{{ item.Image | truncate : 64 }} <span ng-if="item.Containers.length > 1">+ {{ item.Containers.length - 1 }}</span></td
>
<td>{{ item.CPU | kubernetesApplicationCPUValue }}</td>
<td>{{ item.Memory | humansize }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No application available.</td>
<td colspan="5" class="text-muted text-center">No application available.</td>
</tr>
</tbody>
</table>

View File

@ -3,7 +3,7 @@
<rd-widget-body classes="no-padding">
<!-- toolbar header actions and settings -->
<div class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !p-0 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="'layers'"></pr-icon>
@ -23,10 +23,10 @@
data-cy="k8sNamespace-namespaceSearchInput"
/>
</div>
<div class="actionBar !gap-3 !mr-0" ng-if="$ctrl.isAdmin">
<div class="actionBar !mr-0 !gap-3" ng-if="$ctrl.isAdmin">
<button
type="button"
class="btn btn-sm btn-dangerlight h-fit vertical-center !ml-0"
class="btn btn-sm btn-dangerlight vertical-center !ml-0 h-fit"
ng-disabled="$ctrl.state.selectedItemCount === 0"
ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"
data-cy="k8sNamespace-removeNamespaceButton"
@ -82,8 +82,8 @@
</div>
</div>
<div class="flex flex-row w-full" ng-if="!$ctrl.settings.showSystem && $ctrl.isAdmin">
<span class="small text-muted mt-1 vertical-center">
<div class="flex w-full flex-row" ng-if="!$ctrl.settings.showSystem && $ctrl.isAdmin">
<span class="small text-muted vertical-center mt-1">
<pr-icon icon="'info'" mode="'primary'" class="vertical-center"></pr-icon>
<div> System resources are hidden, this can be changed in the table settings. </div>
</span>
@ -91,11 +91,11 @@
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th class="dropdown">
<div class="flex flex-nowrap min-w-max vertical-center">
<div class="vertical-center flex min-w-max flex-nowrap">
<span ng-if="$ctrl.isAdmin" class="md-checkbox vertical-center">
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" />
<label for="select_all"></label>
@ -171,10 +171,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="4" class="text-center text-muted">Loading...</td>
<td colspan="4" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="4" class="text-center text-muted">No namespace available.</td>
<td colspan="4" class="text-muted text-center">No namespace available.</td>
</tr>
</tbody>
</table>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<!-- toolbar header actions and settings -->
<div class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !p-0 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="'database'"></pr-icon>
@ -20,7 +20,7 @@
ng-model-options="{ debounce: 300 }"
/>
</div>
<div class="actionBar !gap-3 !mr-0">
<div class="actionBar !mr-0 !gap-3">
<button
type="button"
class="btn btn-sm btn-dangerlight vertical-center !ml-0"
@ -84,19 +84,19 @@
</span>
</div>
</div>
<div class="flex flex-row w-full" ng-if="!ctrl.isAdmin && !$ctrl.settings.showSystem">
<span class="small text-muted mt-1 vertical-center">
<div class="flex w-full flex-row" ng-if="!ctrl.isAdmin && !$ctrl.settings.showSystem">
<span class="small text-muted vertical-center mt-1">
<pr-icon icon="'info'" mode="'primary'"></pr-icon>
<span> System resources are hidden, this can be changed in the table settings. </span>
</span>
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
<div class="flex flex-no-wrap items-center">
<div class="flex-no-wrap flex items-center">
<span class="md-checkbox vertical-center">
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" />
<label for="select_all"></label>
@ -194,10 +194,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="6" class="text-center text-muted">Loading...</td>
<td colspan="6" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="6" class="text-center text-muted">No volume available.</td>
<td colspan="6" class="text-muted text-center">No volume available.</td>
</tr>
</tbody>
</table>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<rd-widget>
<rd-widget-body classes="no-padding">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap w-full relative">
<div class="toolBar vertical-center relative w-full flex-wrap !gap-x-5 !gap-y-1">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
@ -42,11 +42,11 @@
on-select="($ctrl.selectAction)"
>
</helm-templates-list-item>
<div ng-if="$ctrl.loading" class="text-center text-muted">
<div ng-if="$ctrl.loading" class="text-muted text-center">
Loading...
<div class="text-center text-muted"> Initial download of Helm Charts can take a few minutes </div>
<div class="text-muted text-center"> Initial download of Helm Charts can take a few minutes </div>
</div>
<div ng-if="!$ctrl.loading && $ctrl.charts.length === 0" class="text-center text-muted"> No helm charts available. </div>
<div ng-if="!$ctrl.loading && $ctrl.charts.length === 0" class="text-muted text-center"> No helm charts available. </div>
</div>
</rd-widget-body>
</rd-widget>

View File

@ -3,7 +3,7 @@
<information-panel title-text="Information" ng-if="!$ctrl.state.chart">
<span class="small text-muted">
<p class="inline-flex flex-row items-center">
<pr-icon icon="'info'" class="mr-1 vertical-center" mode="'primary'"></pr-icon>
<pr-icon icon="'info'" class="vertical-center mr-1" mode="'primary'"></pr-icon>
This is a first version for Helm charts, for more information see this&nbsp;<a
class="hyperlink"
href="https://www.portainer.io/blog/portainer-now-with-helm-support"
@ -23,7 +23,7 @@
<!-- helmchart-form -->
<div class="col-sm-12" ng-if="$ctrl.state.chart">
<rd-widget>
<div class="toolBarTitle vertical-center pt-5 px-5 text-muted">
<div class="toolBarTitle vertical-center text-muted px-5 pt-5">
<fallback-image src="$ctrl.state.chart.icon" fallback-icon="'svg-helm'" class-name="'h-8 w-8'" size="'lg'"></fallback-image>
{{ $ctrl.state.chart.name }}
</div>
@ -34,7 +34,7 @@
<div class="col-sm-12 form-section-title"> Description </div>
<div class="form-group">
<div class="col-sm-12">
<div class="text-xs text-muted" ng-bind-html="$ctrl.state.chart.description"></div>
<div class="text-muted text-xs" ng-bind-html="$ctrl.state.chart.description"></div>
</div>
</div>
</div>
@ -63,7 +63,7 @@
<!-- !namespace-input -->
<!-- name-input -->
<div class="form-group mb-2">
<label for="release_name" class="col-sm-2 control-label text-left required">Name</label>
<label for="release_name" class="col-sm-2 control-label required text-left">Name</label>
<div class="col-sm-10">
<input
type="text"

View File

@ -1,12 +1,12 @@
<ng-form name="serviceForm">
<div ng-if="$ctrl.isAdmin()" class="small" ng-show="$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.LOAD_BALANCER && !$ctrl.loadbalancerEnabled">
<p class="text-warning pt-2 vertical-center">
<p class="text-warning vertical-center pt-2">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> No Load balancer is available in this cluster, click
<a class="hyperlink" ui-sref="kubernetes.cluster.setup">here</a> to configure load balancer.
</p>
</div>
<div ng-if="!$ctrl.isAdmin()" class="small" ng-show="$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.LOAD_BALANCER && !$ctrl.loadbalancerEnabled">
<p class="text-warning pt-2 vertical-center">
<p class="text-warning vertical-center pt-2">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> No Load balancer is available in this cluster, contact your administrator.
</p>
</div>
@ -18,14 +18,14 @@
$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.NODE_PORT
"
>
<div ng-show="!$ctrl.multiItemDisable" class="mt-5 mb-5 vertical-center">
<label class="control-label text-left !pt-0">Published ports</label>
<span class="label label-default interactive ml-2.5 vertical-center" ng-click="$ctrl.addPort()" data-cy="k8sAppCreate-addNewPortButton">
<div ng-show="!$ctrl.multiItemDisable" class="vertical-center mt-5 mb-5">
<label class="control-label !pt-0 text-left">Published ports</label>
<span class="label label-default interactive vertical-center ml-2.5" ng-click="$ctrl.addPort()" data-cy="k8sAppCreate-addNewPortButton">
<pr-icon icon="'plus'" mode="'alt'" size="'sm'"></pr-icon> publish a new port
</span>
</div>
<div ng-repeat="servicePort in $ctrl.service.Ports" class="mt-5 service-form row">
<div class="form-group !mx-0 !pl-0 col-sm-3">
<div ng-repeat="servicePort in $ctrl.service.Ports" class="service-form row mt-5">
<div class="form-group col-sm-3 !mx-0 !pl-0">
<div class="input-group input-group-sm">
<span class="input-group-addon required">Container port</span>
<input
@ -46,10 +46,10 @@
/>
</div>
<span>
<div class="small mt-1 text-warning" ng-if="$ctrl.state.duplicates.targetPort.refs[$index] !== undefined">
<div class="small text-warning mt-1" ng-if="$ctrl.state.duplicates.targetPort.refs[$index] !== undefined">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This container port is already used.
</div>
<div class="small mt-1 text-warning" ng-messages="serviceForm['container_port_'+$index].$error">
<div class="small text-warning mt-1" ng-messages="serviceForm['container_port_'+$index].$error">
<p class="vertical-center" ng-message="required"><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Container port number is required.</p>
<p class="vertical-center" ng-message="min"><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Container port number must be inside the range 1-65535.</p>
<p class="vertical-center" ng-message="max"><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Container port number must be inside the range 1-65535.</p>
@ -57,7 +57,7 @@
</span>
</div>
<div class="form-group !mx-0 !pl-0 col-sm-3">
<div class="form-group col-sm-3 !mx-0 !pl-0">
<div class="input-group input-group-sm">
<span class="input-group-addon required">Service port</span>
<input
@ -77,10 +77,10 @@
/>
</div>
<span>
<div class="small mt-1 text-warning" ng-if="$ctrl.state.duplicates.servicePort.refs[$index] !== undefined">
<div class="small text-warning mt-1" ng-if="$ctrl.state.duplicates.servicePort.refs[$index] !== undefined">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This service port is already used.
</div>
<div class="small mt-1 text-warning">
<div class="small text-warning mt-1">
<div ng-messages="serviceForm['service_port_'+$index].$error">
<p class="vertical-center" ng-message="required"><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Service port number is required.</p>
<p class="vertical-center" ng-message="min"><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Service port number must be inside the range 1-65535.</p>
@ -90,7 +90,7 @@
</span>
</div>
<div class="form-group !mx-0 !pl-0 col-sm-3" ng-if="$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.NODE_PORT">
<div class="form-group col-sm-3 !mx-0 !pl-0" ng-if="$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.NODE_PORT">
<div class="input-group input-group-sm">
<span class="input-group-addon required">Nodeport</span>
<input
@ -110,7 +110,7 @@
</div>
<div class="w-full">
<span>
<div class="small mt-1 text-warning">
<div class="small text-warning mt-1">
<div ng-messages="serviceForm['node_port_'+$index].$error">
<p class="vertical-center" ng-message="required"><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Nodeport is required.</p>
<p class="vertical-center" ng-message="min"
@ -119,7 +119,7 @@
<p class="vertical-center" ng-message="max"
><pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Nodeport number must be inside the range 30000-32767 or blank for system allocated.</p
>
<div class="mt-1 text-warning" ng-if="$ctrl.state.duplicates.nodePort.refs[$index] !== undefined">
<div class="text-warning mt-1" ng-if="$ctrl.state.duplicates.nodePort.refs[$index] !== undefined">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> This node port is already used.
</div>
</div>
@ -127,7 +127,7 @@
</span>
</div>
</div>
<div class="form-group !mx-0 !pl-0 col-sm-3" ng-if="$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.LOAD_BALANCER">
<div class="form-group col-sm-3 !mx-0 !pl-0" ng-if="$ctrl.service.Type === $ctrl.KubernetesApplicationPublishingTypes.LOAD_BALANCER">
<div class="input-group input-group-sm">
<span class="input-group-addon">Loadbalancer port</span>
<input
@ -147,7 +147,7 @@
</div>
</div>
<div class="form-group !mx-0 !pl-0 col-sm-3">
<div class="form-group col-sm-3 !mx-0 !pl-0">
<div class="input-group input-group-sm">
<div class="btn-group btn-group-sm">
<label

View File

@ -67,13 +67,13 @@
Ingress
</div>
<div ng-if="$ctrl.isAdmin()" class="small">
<p class="text-warning pt-2 vertical-center">
<p class="text-warning vertical-center pt-2">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Ingress is not configured in this namespace, select another namespace or click
<a ui-sref="kubernetes.cluster.setup">here</a> to configure ingress.
</p>
</div>
<div ng-if="!$ctrl.isAdmin()" class="small">
<p class="text-warning pt-2 vertical-center">
<p class="text-warning vertical-center pt-2">
<pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Ingress is not configured in this namespace, select another namespace or contact your administrator.
</p>
</div>

View File

@ -3,10 +3,10 @@
<div class="form-group" ng-if="$ctrl.isCreation">
<div class="col-sm-12">
<button type="button" class="btn btn-link btn-sm hover:no-underline !ml-0 p-0" ng-if="$ctrl.formValues.IsSimple" ng-click="$ctrl.showAdvancedMode()">
<button type="button" class="btn btn-link btn-sm !ml-0 p-0 hover:no-underline" ng-if="$ctrl.formValues.IsSimple" ng-click="$ctrl.showAdvancedMode()">
<pr-icon icon="'list'"></pr-icon> Advanced mode
</button>
<button type="button" class="btn btn-link btn-sm hover:no-underline !ml-0 p-0" ng-if="!$ctrl.formValues.IsSimple" ng-click="$ctrl.showSimpleMode()">
<button type="button" class="btn btn-link btn-sm !ml-0 p-0 hover:no-underline" ng-if="!$ctrl.formValues.IsSimple" ng-click="$ctrl.showSimpleMode()">
<pr-icon icon="'edit'"></pr-icon> Simple mode
</button>
</div>
@ -61,7 +61,7 @@
<div ng-repeat="(index, entry) in $ctrl.formValues.Data" ng-if="$ctrl.formValues.IsSimple">
<div class="form-group">
<label for="configuration_data_key_{{ index }}" class="col-sm-3 col-lg-2 control-label text-left required"
<label for="configuration_data_key_{{ index }}" class="col-sm-3 col-lg-2 control-label required text-left"
>Key
<portainer-tooltip message="'The key must consist of alphanumeric characters, \'-\', \'_\' or \'.\' and be up to 253 characters in length.'"></portainer-tooltip>
</label>
@ -103,7 +103,7 @@
</div>
<div class="form-group" ng-if="$ctrl.formValues.IsSimple && !entry.IsBinary">
<label for="configuration_data_value_{{ index }}" class="col-sm-3 col-lg-2 control-label text-left required">Value</label>
<label for="configuration_data_value_{{ index }}" class="col-sm-3 col-lg-2 control-label required text-left">Value</label>
<div class="col-sm-8 col-lg-9">
<textarea
class="form-control"
@ -123,7 +123,7 @@
</div>
<div class="form-group" ng-if="$ctrl.formValues.IsSimple && entry.IsBinary">
<label for="configuration_data_value_{{ index }}" class="col-sm-3 col-lg-2 control-label text-left required">Value</label>
<label for="configuration_data_value_{{ index }}" class="col-sm-3 col-lg-2 control-label required text-left">Value</label>
<div class="col-sm-8 control-label small text-muted text-left"
>Binary data <portainer-tooltip message="'This key holds binary data and cannot be displayed.'"></portainer-tooltip
></div>

View File

@ -119,7 +119,7 @@
on-change="(ctrl.onChangeFileContent)"
>
<editor-description>
<div class="flex gap-1 text-muted small" ng-show="ctrl.stack.IsComposeFormat">
<div class="text-muted small flex gap-1" ng-show="ctrl.stack.IsComposeFormat">
<pr-icon icon="'alert-circle'" mode="'warning'" class-name="'!mt-1'"></pr-icon>
<div>
<p>
@ -154,7 +154,7 @@
<div class="col-sm-12 form-section-title"> Application </div>
<!-- #region NAME FIELD -->
<div class="form-group">
<label for="application_name" class="col-sm-3 col-lg-2 control-label text-left required">Name</label>
<label for="application_name" class="col-sm-3 col-lg-2 control-label required text-left">Name</label>
<div class="col-sm-8">
<input
type="text"
@ -245,7 +245,7 @@
<!-- #region ENVIRONMENT VARIABLES -->
<div class="form-group">
<div class="col-sm-12 vertical-center pt-2.5">
<label class="control-label text-left !pt-0">Environment variables</label>
<label class="control-label !pt-0 text-left">Environment variables</label>
<span
ng-if="ctrl.formValues.Containers.length <= 1"
class="label label-default interactive vertical-center"
@ -350,7 +350,7 @@
<!-- #region CONFIGURATIONS -->
<div class="form-group">
<div class="col-sm-12 vertical-center pt-2.5">
<label class="control-label text-left !pt-0">Configurations</label>
<label class="control-label !pt-0 text-left">Configurations</label>
<span
class="label label-default interactive vertical-center"
style="margin-left: 10px"
@ -507,7 +507,7 @@
<div class="form-group" ng-if="ctrl.storageClassAvailable()">
<div class="col-sm-12 vertical-center pt-2.5" style="margin-top: 5px" ng-if="!ctrl.allQuotasExhaustedAndNoVolumesAvailable()">
<label class="control-label text-left !pt-0">Persisted folders</label>
<label class="control-label !pt-0 text-left">Persisted folders</label>
<span
class="label label-default interactive vertical-center"
style="margin-left: 10px"
@ -585,9 +585,9 @@
ng-disabled="ctrl.isEditAndExistingPersistedFolder($index) || ctrl.formValues.Containers.length > 1"
ng-change="ctrl.onChangeVolumeRequestedSize()"
/>
<span class="input-group-addon !p-0 !rounded-r-[5px]">
<span class="input-group-addon !rounded-r-[5px] !p-0">
<select
class="form-control w-12 !h-[28px] !border-none !rounded-r-[5px] text-xs"
class="form-control !h-[28px] w-12 !rounded-r-[5px] !border-none text-xs"
ng-model="persistedFolder.SizeUnit"
ng-style="{ height: '100%', cursor: ctrl.isEditAndExistingPersistedFolder($index) ? 'not-allowed' : 'auto' }"
ng-options="unit for unit in ctrl.state.availableSizeUnits"
@ -775,7 +775,7 @@
(!ctrl.state.resourcePoolHasQuota || (ctrl.state.resourcePoolHasQuota && !ctrl.resourceQuotaCapacityExceeded())) && ctrl.formValues.Containers.length <= 1
"
>
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label text-left flex flex-row items-center">
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label flex flex-row items-center text-left">
Memory limit (MB)
<portainer-tooltip
message="'An instance of this application will reserve this amount of memory. If the instance memory usage exceeds the reservation, it might be subject to OOM.'"
@ -818,7 +818,7 @@
(!ctrl.state.resourcePoolHasQuota || (ctrl.state.resourcePoolHasQuota && !ctrl.resourceQuotaCapacityExceeded())) && ctrl.formValues.Containers.length <= 1
"
>
<label for="cpu-limit" class="col-sm-3 col-lg-2 control-label text-left flex flex-row items-center">
<label for="cpu-limit" class="col-sm-3 col-lg-2 control-label flex flex-row items-center text-left">
CPU limit
<portainer-tooltip
message="'An instance of this application will reserve this amount of CPU. If the instance CPU usage exceeds the reservation, it might be subject to CPU throttling.'"
@ -956,7 +956,7 @@
<div class="form-inline" ng-if="ctrl.formValues.DeploymentType !== ctrl.ApplicationDeploymentTypes.GLOBAL && ctrl.formValues.AutoScaler.IsUsed">
<div class="row">
<div class="col-sm-4 pl-0">
<label class="control-label text-left pb-2" for="auto_scaler_min">Minimum instances</label>
<label class="control-label pb-2 text-left" for="auto_scaler_min">Minimum instances</label>
<div class="input-group input-group-sm" style="width: 100%">
<input
type="number"
@ -984,7 +984,7 @@
</span>
</div>
<div class="col-sm-4 pl-0">
<label class="control-label text-left pb-2" for="auto_scaler_max">Maximum instances</label>
<label class="control-label pb-2 text-left" for="auto_scaler_max">Maximum instances</label>
<div class="input-group input-group-sm" style="width: 100%">
<input
type="number"
@ -1006,7 +1006,7 @@
</span>
</div>
<div class="col-sm-4 pl-0">
<label class="control-label text-left pb-2" for="auto_scaler_cpu">
<label class="control-label pb-2 text-left" for="auto_scaler_cpu">
Target CPU usage (<b>%</b>)
<portainer-tooltip message="'The autoscaler will ensure enough instances are running to maintain an average CPU usage across all instances.'">
</portainer-tooltip>
@ -1054,7 +1054,7 @@
<!-- #region PLACEMENTS -->
<div class="form-group">
<div class="col-sm-12 vertical-center pt-2.5">
<label class="control-label text-left !pt-0">Placement rules</label>
<label class="control-label !pt-0 text-left">Placement rules</label>
<span class="label label-default interactive vertical-center" style="margin-left: 10px" ng-click="ctrl.addPlacement()">
<pr-icon icon="'plus'" mode="'alt'" size="'sm'"></pr-icon> add rule
</span>

View File

@ -79,7 +79,7 @@
<tr>
<td>Creation</td>
<td>
<span ng-if="ctrl.application.ApplicationOwner" class="mr-1 vertical-center" data-cy="k8sAppDetail-owner">
<span ng-if="ctrl.application.ApplicationOwner" class="vertical-center mr-1" data-cy="k8sAppDetail-owner">
<pr-icon icon="'user'"></pr-icon> {{ ctrl.application.ApplicationOwner }}
</span>
<span class="vertical-center"> <pr-icon icon="'clock'" mode="'alt'"></pr-icon> {{ ctrl.application.CreationDate | getisodate }} </span>

View File

@ -56,7 +56,7 @@
</div>
</div>
<div class="table-responsive border-none">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th style="width: 2%">
@ -155,17 +155,17 @@
<td></td>
<td>
<code ng-repeat-start="term in aff track by $index">
{{ term.key }} {{ term.operator }} {{ term.values | kubernetesApplicationConstraintNodeAffinityValue: term.operator }}
{{ term.key }} {{ term.operator }} {{ term.values | kubernetesApplicationConstraintNodeAffinityValue : term.operator }}
</code>
<span ng-repeat-end>{{ $last ? '' : ' + ' }}</span>
</td>
</tr>
<!-- ! ADMIN + UNMET NODE AFFINITIES -->
<tr ng-if="$ctrl.loading">
<td colspan="2" class="text-center text-muted">Loading...</td>
<td colspan="2" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="!$ctrl.loading && (!$ctrl.dataset || $ctrl.state.filteredDataSet.length === 0)">
<td colspan="2" class="text-center text-muted">No node available.</td>
<td colspan="2" class="text-muted text-center">No node available.</td>
</tr>
</tbody>
</table>

View File

@ -11,7 +11,7 @@
<div class="row">
<div class="col-sm-12">
<rd-widget>
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 p-5 flex-wrap w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 p-5">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="'svg-helm'"></pr-icon>
@ -20,7 +20,7 @@
Release
</div>
</div>
<div class="toolBarTitle text-muted small vertical-center px-5 !gap-0">
<div class="toolBarTitle text-muted small vertical-center !gap-0 px-5">
<pr-icon icon="'info'" mode="'primary'" class-name="'!mr-1'" class="vertical-center"></pr-icon>
This is a first version for Helm charts, for more information see this&nbsp;
<a href="https://www.portainer.io/blog/portainer-now-with-helm-support" target="_blank" class="hyperlink">blog post</a>.

View File

@ -37,7 +37,7 @@
<div class="row" ng-if="ctrl.state.getMetrics">
<div class="col-md-12">
<rd-widget>
<div class="toolBar pt-5 px-5">
<div class="toolBar px-5 pt-5">
<div class="toolBarTitle flex">
<div class="widget-icon space-right">
<pr-icon icon="'info'"></pr-icon>
@ -84,7 +84,7 @@
<div class="row" ng-if="ctrl.state.getMetrics">
<div class="col-lg-6 col-md-12 col-sm-12">
<rd-widget>
<div class="toolBar pt-5 px-5">
<div class="toolBar px-5 pt-5">
<div class="toolBarTitle flex">
<div class="widget-icon space-right">
<pr-icon icon="'svg-memory'"></pr-icon>
@ -101,7 +101,7 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-12" ng-if="!ctrl.state.networkStatsUnavailable">
<rd-widget>
<div class="toolBar pt-5 px-5">
<div class="toolBar px-5 pt-5">
<div class="toolBarTitle flex">
<div class="widget-icon space-right">
<pr-icon icon="'cpu'"></pr-icon>

View File

@ -135,7 +135,7 @@
<span class="label label-info image-tag" ng-if="ctrl.isSystemLabel($index)" style="margin-left: 5px">system</span>
</div>
</div>
<div class="small mt-2 text-warning" ng-show="kubernetesNodeUpdateForm['label_key_' + $index].$invalid || ctrl.state.duplicateLabelKeys[$index] !== undefined">
<div class="small text-warning mt-2" ng-show="kubernetesNodeUpdateForm['label_key_' + $index].$invalid || ctrl.state.duplicateLabelKeys[$index] !== undefined">
<ng-messages for="kubernetesNodeUpdateForm['label_key_' + $index].$error">
<p ng-message="required" class="vertical-center"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Label key is required. </p>
</ng-messages>

View File

@ -25,7 +25,7 @@
<div class="row" ng-if="ctrl.state.getMetrics">
<div class="col-md-12">
<rd-widget>
<div class="toolBar pt-5 px-5">
<div class="toolBar px-5 pt-5">
<div class="toolBarTitle flex">
<div class="widget-icon space-right">
<pr-icon icon="'info'"></pr-icon>
@ -64,7 +64,7 @@
<div class="row" ng-show="ctrl.state.getMetrics">
<div class="col-lg-6 col-md-12 col-sm-12">
<rd-widget>
<div class="toolBar pt-5 px-5">
<div class="toolBar px-5 pt-5">
<div class="toolBarTitle flex">
<div class="widget-icon space-right">
<pr-icon icon="'svg-memory'"></pr-icon>
@ -81,7 +81,7 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<rd-widget>
<div class="toolBar pt-5 px-5">
<div class="toolBar px-5 pt-5">
<div class="toolBarTitle flex">
<div class="widget-icon space-right">
<pr-icon icon="'cpu'"></pr-icon>

View File

@ -15,7 +15,7 @@
<form class="form-horizontal" name="kubernetesConfigurationCreationForm" autocomplete="off">
<!-- name -->
<div class="form-group mb-0">
<label for="configuration_name" class="col-sm-3 col-lg-2 control-label text-left required">Name</label>
<label for="configuration_name" class="col-sm-3 col-lg-2 control-label required text-left">Name</label>
<div class="col-sm-8 col-lg-9 mb-0">
<input
type="text"
@ -143,7 +143,7 @@
</div>
</div>
<div class="form-group" ng-if="ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.CUSTOM.value">
<label for="configuration_data_customtype" class="col-sm-3 col-lg-2 control-label text-left required">Custom Type</label>
<label for="configuration_data_customtype" class="col-sm-3 col-lg-2 control-label required text-left">Custom Type</label>
<div class="col-sm-8 col-lg-9">
<input
type="text"
@ -168,7 +168,7 @@
</div>
</div>
<div class="form-group" ng-if="ctrl.formValues.Type === ctrl.KubernetesSecretTypeOptions.SERVICEACCOUNTTOKEN.value">
<label for="service_account" class="col-sm-3 col-lg-2 control-label text-left required">Service Account</label>
<label for="service_account" class="col-sm-3 col-lg-2 control-label required text-left">Service Account</label>
<div class="col-sm-8 col-lg-9">
<select
class="form-control"

View File

@ -32,7 +32,7 @@
<table class="table" data-cy="k8sConfigDetail-configTable">
<tbody>
<tr>
<td class="!pl-0 !border-none w-[40%]">Name</td>
<td class="w-[40%] !border-none !pl-0">Name</td>
<td class="!border-none">
{{ ctrl.configuration.Name }}
<span style="margin-left: 5px" class="label label-info image-tag" ng-if="ctrl.configuration.IsRegistrySecret">system</span>
@ -87,7 +87,7 @@
<pr-icon icon="'code'"></pr-icon>
YAML
</uib-tab-heading>
<div class="!pt-5 px-5" ng-if="ctrl.state.showEditorTab">
<div class="px-5 !pt-5" ng-if="ctrl.state.showEditorTab">
<kubernetes-yaml-inspector key="configuration-yaml" data="ctrl.configuration.Yaml"> </kubernetes-yaml-inspector>
</div>
</uib-tab>

View File

@ -27,14 +27,14 @@
<div class="form-group">
<div class="col-sm-12 text-muted small">
<p> Enabling the load balancer feature will allow users to expose application they deploy over an external IP address assigned by cloud provider. </p>
<p class="mt-1 vertical-center">
<p class="vertical-center mt-1">
<pr-icon icon="'alert-circle'" mode="'warning'"></pr-icon>
Ensure that your cloud provider allows you to create load balancers if you want to use this feature. Might incur costs.
</p>
</div>
<div class="col-sm-12">
<label class="control-label text-left col-sm-5 col-lg-4 px-0"> Allow users to use external load balancer </label>
<label class="control-label col-sm-5 col-lg-4 px-0 text-left"> Allow users to use external load balancer </label>
<label class="switch col-sm-8 mb-0">
<input type="checkbox" ng-model="ctrl.formValues.UseLoadBalancer" /><span class="slider round" data-cy="kubeSetup-loadBalancerToggle"></span>
</label>
@ -51,11 +51,11 @@
view="'cluster'"
></ingress-class-datatable>
<label htmlFor="foldingButtonIngControllerSettings" class="col-sm-12 form-section-title cursor-pointer flex items-center">
<label htmlFor="foldingButtonIngControllerSettings" class="col-sm-12 form-section-title flex cursor-pointer items-center">
<button
id="foldingButtonIngControllerSettings"
type="button"
class="border-0 mx-2 bg-transparent inline-flex justify-center items-center w-2 !ml-0"
class="mx-2 !ml-0 inline-flex w-2 items-center justify-center border-0 bg-transparent"
ng-click="ctrl.toggleAdvancedIngSettings()"
>
<pr-icon ng-if="!ctrl.state.isIngToggleSectionExpanded" icon="'chevron-right'"></pr-icon>
@ -120,7 +120,7 @@
<div
ng-if="!ctrl.isRBACEnabled"
class="mt-1 mb-6 p-4 w-full border border-solid bg-warning-2 border-warning-5 text-warning-8 th-dark:bg-yellow-11 th-dark:text-white th-highcontrast:bg-yellow-11 th-highcontrast:text-white small flex gap-1 rounded-lg"
class="small mt-1 mb-6 flex w-full gap-1 rounded-lg border border-solid border-warning-5 bg-warning-2 p-4 text-warning-8 th-highcontrast:bg-yellow-11 th-highcontrast:text-white th-dark:bg-yellow-11 th-dark:text-white"
>
<div class="mt-0.5">
<pr-icon icon="'alert-triangle'" feather="true" class-name="'text-warning-7 th-dark:text-white th-highcontrast:text-white'"></pr-icon>
@ -130,13 +130,13 @@
<p> This means you can't use Portainer RBAC functionality to regulate access to environment resources based on user roles. </p>
<p class="mb-0">
To enable RBAC, start the&nbsp;<a
class="th-dark:text-blue-7 th-highcontrast:text-blue-4"
class="th-highcontrast:text-blue-4 th-dark:text-blue-7"
href="https://kubernetes.io/docs/concepts/overview/components/#kube-apiserver"
target="_blank"
>API server</a
>&nbsp;with the&nbsp;<code class="box-decoration-clone bg-gray-4 th-dark:bg-black th-highcontrast:bg-black">--authorization-mode</code>&nbsp;flag set to a
comma-separated list that includes&nbsp;<code class="bg-gray-4 th-dark:bg-black th-highcontrast:bg-black">RBAC</code>, for example:&nbsp;
<code class="box-decoration-clone bg-gray-4 th-dark:bg-black th-highcontrast:bg-black">kube-apiserver --authorization-mode=Example1,RBAC,Example2</code>.
>&nbsp;with the&nbsp;<code class="bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black">--authorization-mode</code>&nbsp;flag set to a
comma-separated list that includes&nbsp;<code class="bg-gray-4 th-highcontrast:bg-black th-dark:bg-black">RBAC</code>, for example:&nbsp;
<code class="bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black">kube-apiserver --authorization-mode=Example1,RBAC,Example2</code>.
</p>
</div>
</div>
@ -185,7 +185,7 @@
By ENABLING resource over-commit, you are able to assign more resources to namespaces than is physically available in the cluster. This may lead to unexpected
deployment failures if there is insufficient resource to service demand.
</p>
<p class="mt-1 vertical-center">
<p class="vertical-center mt-1">
<pr-icon icon="'alert-circle'" mode="'warning'"></pr-icon>
By DISABLING resource over-commit (highly recommended), you are only able to assign resources to namespaces that are less (in aggregate) than the cluster total
minus any system resource reservation.
@ -218,7 +218,7 @@
</div>
<div class="form-group">
<div class="col-sm-12">
<label class="control-label text-left col-sm-5 col-lg-4 px-0"> Enable features using the metrics API </label>
<label class="control-label col-sm-5 col-lg-4 px-0 text-left"> Enable features using the metrics API </label>
<label class="switch col-sm-8">
<input type="checkbox" ng-model="ctrl.formValues.UseServerMetrics" ng-change="ctrl.enableMetricsServer()" />
<span class="slider round" data-cy="kubeSetup-metricsToggle"></span>
@ -275,7 +275,7 @@
</tr>
<tr ng-repeat="class in ctrl.StorageClasses">
<td>
<div class="flex flex-row items-center h-full">
<div class="flex h-full flex-row items-center">
<label class="switch mr-2 mb-0">
<input type="checkbox" ng-model="class.selected" /><span class="slider round" data-cy="kubeSetup-storageToggle{{ class.Name }}"></span>
</label>
@ -291,7 +291,7 @@
></storage-access-mode-selector>
</td>
<td>
<div class="flex flex-row items-center h-full">
<div class="flex h-full flex-row items-center">
<label class="switch mr-2 mb-0"
><input type="checkbox" ng-model="class.AllowVolumeExpansion" /><span
class="slider round"

View File

@ -18,13 +18,13 @@
<table class="table">
<tbody>
<tr>
<td class="!pl-0 !border-none">Environment</td>
<td class="!border-none !pl-0">Environment</td>
<td class="!border-none">
{{ ctrl.endpoint.Name }}
</td>
</tr>
<tr ng-if="ctrl.showEnvUrl">
<td class="!pl-0 !border-t">URL</td>
<td class="!border-t !pl-0">URL</td>
<td class="!border-t">{{ ctrl.endpoint.URL | stripprotocol }}</td>
</tr>
<tr>

View File

@ -48,7 +48,7 @@
</div>
<div class="form-group">
<label for="stack_name" class="col-lg-2 col-sm-3 control-label text-left required">Name</label>
<label for="stack_name" class="col-lg-2 col-sm-3 control-label required text-left">Name</label>
<div class="col-sm-8">
<input type="text" class="form-control" ng-model="ctrl.formValues.StackName" id="stack_name" placeholder="my-app" auto-focus />
</div>
@ -139,7 +139,7 @@
<span class="col-sm-12 text-muted small"> Indicate the URL to the manifest. </span>
</div>
<div class="form-group">
<label for="manifest_url" class="col-sm-3 col-lg-2 control-label text-left required">URL</label>
<label for="manifest_url" class="col-sm-3 col-lg-2 control-label required text-left">URL</label>
<div class="col-sm-8">
<input
type="text"

View File

@ -46,7 +46,7 @@
<div class="form-group">
<div
ng-if="!ctrl.isRBACEnabled"
class="mb-6 mx-[15px] p-4 border border-solid bg-warning-2 border-warning-5 text-warning-8 th-dark:bg-yellow-11 th-dark:text-white th-highcontrast:bg-yellow-11 th-highcontrast:text-white small flex gap-1 rounded-lg"
class="small mx-[15px] mb-6 flex gap-1 rounded-lg border border-solid border-warning-5 bg-warning-2 p-4 text-warning-8 th-highcontrast:bg-yellow-11 th-highcontrast:text-white th-dark:bg-yellow-11 th-dark:text-white"
>
<div class="mt-0.5">
<pr-icon icon="'alert-triangle'" feather="true" class-name="'text-warning-7 th-dark:text-white th-highcontrast:text-white'"></pr-icon>
@ -56,13 +56,13 @@
<p> This means you can't use Portainer RBAC functionality to regulate access to environment resources based on user roles. </p>
<p class="mb-0">
To enable RBAC, start the&nbsp;<a
class="th-dark:text-blue-7 th-highcontrast:text-blue-4"
class="th-highcontrast:text-blue-4 th-dark:text-blue-7"
href="https://kubernetes.io/docs/concepts/overview/components/#kube-apiserver"
target="_blank"
>API server</a
>&nbsp;with the&nbsp;<code class="box-decoration-clone bg-gray-4 th-dark:bg-black th-highcontrast:bg-black">--authorization-mode</code>&nbsp;flag set to a
comma-separated list that includes&nbsp;<code class="bg-gray-4 th-dark:bg-black th-highcontrast:bg-black">RBAC</code>, for example:&nbsp;
<code class="box-decoration-clone bg-gray-4 th-dark:bg-black th-highcontrast:bg-black">kube-apiserver --authorization-mode=Example1,RBAC,Example2</code>.
>&nbsp;with the&nbsp;<code class="bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black">--authorization-mode</code>&nbsp;flag set to a
comma-separated list that includes&nbsp;<code class="bg-gray-4 th-highcontrast:bg-black th-dark:bg-black">RBAC</code>, for example:&nbsp;
<code class="bg-gray-4 box-decoration-clone th-highcontrast:bg-black th-dark:bg-black">kube-apiserver --authorization-mode=Example1,RBAC,Example2</code>.
</p>
</div>
</div>
@ -95,7 +95,7 @@
<div class="col-sm-12">
<button
type="submit"
class="btn btn-primary btn-sm !ml-0 vertical-center"
class="btn btn-primary btn-sm vertical-center !ml-0"
ng-disabled="ctrl.formValues.multiselectOutput.length === 0 || ctrl.actionInProgress"
ng-click="ctrl.authorizeAccess()"
button-spinner="ctrl.actionInProgress"

View File

@ -15,7 +15,7 @@
<form class="form-horizontal" autocomplete="off" name="resourcePoolCreationForm">
<!-- #region NAME INPUT -->
<div class="form-group">
<label for="pool_name" class="col-sm-3 col-lg-2 control-label text-left required">Name</label>
<label for="pool_name" class="col-sm-3 col-lg-2 control-label required text-left">Name</label>
<div class="col-sm-8">
<input
type="text"
@ -89,7 +89,7 @@
</div>
<!-- memory-limit-input -->
<div class="form-group flex flex-row !mb-0">
<div class="form-group !mb-0 flex flex-row">
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label text-left"> Memory limit (MB) </label>
<div class="col-xs-6">
<por-slider
@ -117,7 +117,7 @@
/>
</div>
</div>
<div class="flex flex-row w-full">
<div class="flex w-full flex-row">
<span class="col-sm-3 col-lg-2"></span>
<span class="help-block col-sm-9 col-lg-10">
<div ng-show="resourcePoolCreationForm.memory_limit.$invalid">
@ -205,7 +205,7 @@
</div>
<div class="form-group">
<label class="col-sm-3 col-lg-2 control-label text-left !pt-0" for="registries-selector"> Select registries </label>
<label class="col-sm-3 col-lg-2 control-label !pt-0 text-left" for="registries-selector"> Select registries </label>
<div class="col-sm-8 col-lg-9">
<span class="small text-muted" ng-if="!$ctrl.registries.length && $ctrl.state.isAdmin">
No registries available. Head over to the <a ui-sref="portainer.registries">registry view</a> to define a container registry.

View File

@ -57,11 +57,11 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th ng-if="$ctrl.hasExpandableItems()" class="datatable-wide dropdown">
<div class="cursor-pointer vertical-center" ng-click="$ctrl.expandAll()">
<div class="vertical-center cursor-pointer" ng-click="$ctrl.expandAll()">
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
</div>
@ -111,10 +111,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="4" class="text-center text-muted">Loading...</td>
<td colspan="4" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="4" class="text-center text-muted">No ingresses available.</td>
<td colspan="4" class="text-muted text-center">No ingresses available.</td>
</tr>
</tbody>
</table>

View File

@ -78,7 +78,7 @@
</div>
<!-- memory-limit-input -->
<div class="form-group flex">
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label text-left vertical-center"> Memory limit (MB) </label>
<label for="memory-limit" class="col-sm-3 col-lg-2 control-label vertical-center text-left"> Memory limit (MB) </label>
<div class="col-sm-6">
<por-slider
min="ctrl.ResourceQuotaDefaults.MemoryLimit"
@ -197,7 +197,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 col-lg-2 control-label text-left !pt-0" for="registries-selector"> Select registries </label>
<label class="col-sm-3 col-lg-2 control-label !pt-0 text-left" for="registries-selector"> Select registries </label>
<div class="col-sm-9 col-lg-4">
<span class="small text-muted" ng-if="!ctrl.registries.length && ctrl.isAdmin">
No registries available. Head over to the <a ui-sref="portainer.registries">registry view</a> to define a container registry.

View File

@ -23,7 +23,7 @@ ctrl.state.transition.name,
<div class="col-sm-12 form-section-title"> Actions </div>
<!-- auto-refresh -->
<div class="form-group">
<label class="control-label text-left col-sm-3 col-lg-2 vertical-center !py-2">
<label class="control-label col-sm-3 col-lg-2 vertical-center !py-2 text-left">
Auto-refresh
<portainer-tooltip message="'Automatically refresh logs every 30 seconds'"></portainer-tooltip>
</label>
@ -54,7 +54,7 @@ ctrl.state.transition.name,
<!-- actions -->
<div class="form-group">
<div class="col-sm-12">
<button class="btn btn-primary btn-sm !ml-0 vertical-center" type="button" ng-click="ctrl.downloadLogs()">
<button class="btn btn-primary btn-sm vertical-center !ml-0" type="button" ng-click="ctrl.downloadLogs()">
<pr-icon icon="'download'"></pr-icon>
Download logs
</button>

View File

@ -1,5 +1,5 @@
<div class="flex justify-start items-center form-section-title interactive" ng-click="$ctrl.toggleSummary()" ng-if="$ctrl.state.resources.length > 0">
<pr-icon icon="$ctrl.state.expandedTemplate ? 'chevron-down' : 'chevron-right'" class="!mr-1 vertical-center"></pr-icon>
<div class="form-section-title interactive flex items-center justify-start" ng-click="$ctrl.toggleSummary()" ng-if="$ctrl.state.resources.length > 0">
<pr-icon icon="$ctrl.state.expandedTemplate ? 'chevron-down' : 'chevron-right'" class="vertical-center !mr-1"></pr-icon>
Summary
</div>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<!-- toolbar header actions and settings -->
<div class="toolBar !flex-col gap-1">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap !p-0 w-full">
<div class="toolBar vertical-center w-full flex-wrap !gap-x-5 !gap-y-1 !p-0">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="'hard-drive'"></pr-icon>
@ -59,11 +59,11 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th class="datatable-wide dropdown" ng-if="$ctrl.hasExpandableItems()">
<div class="cursor-pointer vertical-center" ng-click="$ctrl.expandAll()">
<div class="vertical-center cursor-pointer" ng-click="$ctrl.expandAll()">
<pr-icon ng-if="$ctrl.state.expandAll" icon="'chevron-down'"></pr-icon>
<pr-icon ng-if="!$ctrl.state.expandAll" icon="'chevron-right'"></pr-icon>
</div>
@ -121,10 +121,10 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No storage available.</td>
<td colspan="5" class="text-muted text-center">No storage available.</td>
</tr>
</tbody>
</table>

View File

@ -1,4 +1,4 @@
<a class="ml-5 vertical-center be-indicator" href="{{ $ctrl.url }}" target="_blank" rel="noopener" ng-if="$ctrl.limitedToBE">
<a class="vertical-center be-indicator ml-5" href="{{ $ctrl.url }}" target="_blank" rel="noopener" ng-if="$ctrl.limitedToBE">
<ng-transclude></ng-transclude>
<pr-icon icon="'briefcase'" class-name="'space-right be-indicator-icon'"></pr-icon>
<span class="be-indicator-label">Business Edition Feature</span>

View File

@ -32,7 +32,7 @@
</div>
</div>
<div class="mx-4 mb-4 small text-muted">
<div class="small text-muted mx-4 mb-4">
<div class="" ng-if="$ctrl.inheritFrom">
Access tagged as <code>inherited</code> are inherited from the group access. They cannot be removed or modified at the environment level but they can be overridden.
</div>
@ -40,7 +40,7 @@
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -86,10 +86,10 @@
<td>{{ item.Type }}</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="4" class="text-center text-muted">Loading...</td>
<td colspan="4" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="$ctrl.state.filteredDataSet.length === 0">
<td colspan="4" class="text-center text-muted">No authorized users or teams.</td>
<td colspan="4" class="text-muted text-center">No authorized users or teams.</td>
</tr>
</tbody>
</table>

View File

@ -1,5 +1,5 @@
<div class="datatable">
<table class="table table-hover">
<table class="table-hover table">
<div class="col-sm-12">
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
@ -47,15 +47,15 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="2" class="text-center text-muted">Loading...</td>
<td colspan="2" class="text-muted text-center">Loading...</td>
</tr>
<tr
ng-if="
$ctrl.dataset.length === 0 ||
($ctrl.dataset | filter: $ctrl.state.textFilter | orderBy: $ctrl.state.orderBy:$ctrl.state.reverseOrder | itemsPerPage: $ctrl.state.paginatedItemLimit).length === 0
($ctrl.dataset | filter : $ctrl.state.textFilter | orderBy : $ctrl.state.orderBy : $ctrl.state.reverseOrder | itemsPerPage : $ctrl.state.paginatedItemLimit).length === 0
"
>
<td colspan="2" class="text-center text-muted">{{ $ctrl.emptyDatasetMessage }}</td>
<td colspan="2" class="text-muted text-center">{{ $ctrl.emptyDatasetMessage }}</td>
</tr>
</tbody>
</table>

View File

@ -31,8 +31,8 @@
class="form-group mt-4"
ng-if="$ctrl.formData.AccessControlEnabled && $ctrl.formData.Ownership === $ctrl.RCO.RESTRICTED && ($ctrl.isAdmin || (!$ctrl.isAdmin && $ctrl.availableTeams.length > 1))"
>
<div class="w-full vertical-center">
<label for="group-access" class="control-label text-left col-sm-3 col-lg-2 !pt-0">
<div class="vertical-center w-full">
<label for="group-access" class="control-label col-sm-3 col-lg-2 !pt-0 text-left">
Authorized teams
<portainer-tooltip
ng-if="$ctrl.isAdmin && $ctrl.availableTeams.length > 0"
@ -62,8 +62,8 @@
<!-- !authorized-teams -->
<!-- authorized-users -->
<div class="form-group" ng-if="$ctrl.formData.AccessControlEnabled && $ctrl.formData.Ownership === $ctrl.RCO.RESTRICTED && $ctrl.isAdmin">
<div class="w-full vertical-center">
<label for="group-access" class="control-label text-left col-sm-3 col-lg-2 !pt-0">
<div class="vertical-center w-full">
<label for="group-access" class="control-label col-sm-3 col-lg-2 !pt-0 text-left">
Authorized users
<portainer-tooltip
ng-if="$ctrl.isAdmin && $ctrl.availableUsers.length > 0"

View File

@ -1,7 +1,7 @@
<ng-form name="commonCustomTemplateForm">
<!-- title-input -->
<div class="form-group mb-0">
<label for="template_title" class="col-sm-3 col-lg-2 control-label text-left required"> Title </label>
<label for="template_title" class="col-sm-3 col-lg-2 control-label required text-left"> Title </label>
<div class="col-sm-8">
<input
type="text"
@ -16,7 +16,7 @@
/>
<span class="help-block">
<div ng-show="commonCustomTemplateForm.template_title.$invalid">
<div class="mt-2 small text-warning">
<div class="small text-warning mt-2">
<div ng-messages="commonCustomTemplateForm.template_title.$error">
<p class="vertical-center" ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Title is required. </p>
<p class="vertical-center" ng-message="pattern">
@ -33,11 +33,11 @@
<!-- description-input -->
<div class="form-group mb-0">
<label for="description" class="col-sm-3 col-lg-2 control-label text-left required">Description</label>
<label for="description" class="col-sm-3 col-lg-2 control-label required text-left">Description</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="description" ng-model="$ctrl.formValues.Description" name="description" required />
<span class="help-block">
<div class="mt-2 small text-warning">
<div class="small text-warning mt-2">
<div ng-show="commonCustomTemplateForm.description.$invalid">
<div ng-messages="commonCustomTemplateForm.description.$error">
<p class="vertical-center" ng-message="required"> <pr-icon icon="'alert-triangle'" mode="'warning'"></pr-icon> Description is required.</p>

View File

@ -1,7 +1,7 @@
<div class="datatable">
<rd-widget>
<rd-widget-body classes="no-padding">
<div class="toolBar vertical-center !gap-x-5 !gap-y-1 flex-wrap">
<div class="toolBar vertical-center flex-wrap !gap-x-5 !gap-y-1">
<div class="toolBarTitle vertical-center">
<div class="widget-icon space-right">
<pr-icon icon="$ctrl.titleIcon"></pr-icon>
@ -28,7 +28,7 @@
</div>
</div>
<div class="blocklist !px-[20px] gap-y-2 !pb-[20px]">
<div class="blocklist gap-y-2 !px-[20px] !pb-[20px]">
<template-item
ng-repeat="template in $ctrl.templates | filter:$ctrl.state.textFilter"
model="template"
@ -48,8 +48,8 @@
</div>
</template-item-actions>
</template-item>
<div ng-if="!$ctrl.templates" class="text-center text-muted"> Loading... </div>
<div ng-if="($ctrl.templates | filter: $ctrl.state.textFilter).length === 0" class="text-center text-muted"> No templates available. </div>
<div ng-if="!$ctrl.templates" class="text-muted text-center"> Loading... </div>
<div ng-if="($ctrl.templates | filter : $ctrl.state.textFilter).length === 0" class="text-muted text-center"> No templates available. </div>
</div>
</rd-widget-body>
</rd-widget>

View File

@ -37,7 +37,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells">
<table class="table-hover nowrap-cells table">
<thead>
<tr>
<th>
@ -107,7 +107,7 @@
</td>
</tr>
<tr ng-if="!$ctrl.dataset">
<td colspan="3" class="text-center text-muted">Loading...</td>
<td colspan="3" class="text-muted text-center">Loading...</td>
</tr>
</tbody>
</table>

View File

@ -40,7 +40,7 @@
</div>
</div>
<div class="table-responsive">
<table class="table table-hover nowrap-cells" data-cy="endpoint-endpointTable">
<table class="table-hover nowrap-cells table" data-cy="endpoint-endpointTable">
<thead>
<tr>
<th>
@ -122,10 +122,10 @@
</td>
</tr>
<tr ng-if="$ctrl.state.loading">
<td colspan="5" class="text-center text-muted">Loading...</td>
<td colspan="5" class="text-muted text-center">Loading...</td>
</tr>
<tr ng-if="!$ctrl.state.loading && $ctrl.state.filteredDataSet.length === 0">
<td colspan="5" class="text-center text-muted">No environment available.</td>
<td colspan="5" class="text-muted text-center">No environment available.</td>
</tr>
</tbody>
</table>

Some files were not shown because too many files have changed in this diff Show More