Compare commits
8 Commits
test-versi
...
XT-807-ui-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0c024f8434 | ||
|
|
305fb55cce | ||
|
|
06dd61558e | ||
|
|
4fe2fe714c | ||
|
|
1a6a5d2004 | ||
|
|
0eb5dc9f74 | ||
|
|
63c7eb8553 | ||
|
|
b87fe58043 |
@@ -2,5 +2,7 @@
|
||||
<div class="text-muted">
|
||||
Published URL
|
||||
</div>
|
||||
<a ng-href="{{ $ctrl.publishedUrl }}" target="_blank" class="publish-url-link"> <i class="fa fa-external-link-alt" aria-hidden="true"></i> {{ $ctrl.publishedUrl }} </a>
|
||||
<a ng-href="{{ $ctrl.publishedUrl }}" target="_blank" class="publish-url-link" data-cy="k8sAppList-publishedUrl">
|
||||
<i class="fa fa-external-link-alt" aria-hidden="true"></i> {{ $ctrl.publishedUrl }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -180,27 +180,37 @@
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a ng-if="item.KubernetesApplications" ui-sref="kubernetes.helm({ name: item.Name, namespace: item.ResourcePool })" ng-click="$event.stopPropagation()"
|
||||
<a
|
||||
ng-if="item.KubernetesApplications"
|
||||
ui-sref="kubernetes.helm({ name: item.Name, namespace: item.ResourcePool })"
|
||||
ng-click="$event.stopPropagation()"
|
||||
data-cy="k8sAppList-kubeAppName"
|
||||
>{{ item.Name }}
|
||||
</a>
|
||||
<a
|
||||
ng-if="!item.KubernetesApplications"
|
||||
ui-sref="kubernetes.applications.application({ name: item.Name, namespace: item.ResourcePool })"
|
||||
ng-click="$event.stopPropagation()"
|
||||
data-cy="k8sAppList-nonKubeAppName_{{ item.Name }}"
|
||||
>{{ item.Name }}
|
||||
</a>
|
||||
<span class="label label-info image-tag label-margins" ng-if="$ctrl.isSystemNamespace(item)">system</span>
|
||||
<span class="label label-primary image-tag label-margins" ng-if="!$ctrl.isSystemNamespace(item) && $ctrl.isExternalApplication(item)">external</span>
|
||||
</td>
|
||||
<td>{{ item.StackName || '-' }}</td>
|
||||
<td data-cy="k8sAppList-appStackName_{{ item.Name }}">{{ item.StackName || '-' }}</td>
|
||||
<td>
|
||||
<a ui-sref="kubernetes.resourcePools.resourcePool({ id: item.ResourcePool })" ng-click="$event.stopPropagation()">{{ item.ResourcePool }}</a>
|
||||
<a
|
||||
ui-sref="kubernetes.resourcePools.resourcePool({ id: item.ResourcePool })"
|
||||
ng-click="$event.stopPropagation()"
|
||||
data-cy="k8sAppList-appNamespace_{{ item.Name }}"
|
||||
>{{ item.ResourcePool }}</a
|
||||
>
|
||||
</td>
|
||||
<td title="{{ item.Image }}"
|
||||
<td title="{{ item.Image }}" data-cy="k8sAppList-appImageName_{{ item.Name }}"
|
||||
>{{ 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">
|
||||
<td data-cy="k8sAppList-appType_{{ item.Name }}">{{ item.ApplicationType | kubernetesApplicationTypeText }}</td>
|
||||
<td ng-if="item.ApplicationType !== $ctrl.KubernetesApplicationTypes.POD" data-cy="k8sAppList-appReplicationType_{{ item.Name }}">
|
||||
<span ng-if="item.DeploymentType === $ctrl.KubernetesApplicationDeploymentTypes.REPLICATED">Replicated</span>
|
||||
<span ng-if="item.DeploymentType === $ctrl.KubernetesApplicationDeploymentTypes.GLOBAL">Global</span>
|
||||
<span ng-if="item.RunningPodsCount >= 0 && item.TotalPodsCount >= 0">
|
||||
@@ -208,13 +218,13 @@
|
||||
</span>
|
||||
<span ng-if="item.KubernetesApplications">{{ item.Status }}</span>
|
||||
</td>
|
||||
<td ng-if="item.ApplicationType === $ctrl.KubernetesApplicationTypes.POD">
|
||||
<td ng-if="item.ApplicationType === $ctrl.KubernetesApplicationTypes.POD" data-cy="k8sAppList-appStatus_{{ item.Name }}">
|
||||
{{ item.Pods[0].Status }}
|
||||
</td>
|
||||
<td>
|
||||
<span ng-if="item.PublishedPorts.length">
|
||||
<span>
|
||||
<a ng-click="$ctrl.onPublishingModeClick(item); $event.stopPropagation()">
|
||||
<a ng-click="$ctrl.onPublishingModeClick(item); $event.stopPropagation()" data-cy="k8sAppList-appServiceType_{{ item.Name }}">
|
||||
<i class="fa {{ item.ServiceType | kubernetesApplicationServiceTypeIcon }}" aria-hidden="true" style="margin-right: 2px;"> </i>
|
||||
{{ item.ServiceType | kubernetesApplicationServiceTypeText }}
|
||||
</a>
|
||||
@@ -222,7 +232,7 @@
|
||||
</span>
|
||||
<span ng-if="item.PublishedPorts.length === 0">-</span>
|
||||
</td>
|
||||
<td>{{ item.CreationDate | getisodate }} {{ item.ApplicationOwner ? 'by ' + item.ApplicationOwner : '' }}</td>
|
||||
<td data-cy="k8sAppList-appCreationDate_{{ item.Name }}">{{ item.CreationDate | getisodate }} {{ item.ApplicationOwner ? 'by ' + item.ApplicationOwner : '' }}</td>
|
||||
</tr>
|
||||
<tr dir-paginate-end ng-show="$ctrl.isExpandable(item) && $ctrl.isItemExpanded(item)" ng-class="{ 'secondary-body': $ctrl.isPrimary && !item.KubernetesApplications }">
|
||||
<td></td>
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
placeholder="https://charts.bitnami.com/bitnami"
|
||||
ng-pattern="/^https?:///"
|
||||
required
|
||||
data-cy="helmTemplateList-addRepoInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -47,6 +48,7 @@
|
||||
analytics-on
|
||||
analytics-category="kubernetes"
|
||||
analytics-event="kubernetes-helm-add-repository"
|
||||
data-cy="helmTemplateList-addRepo"
|
||||
>
|
||||
Add repository
|
||||
</button>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<!-- blocklist-item-line1 -->
|
||||
<div class="blocklist-item-line">
|
||||
<span>
|
||||
<span class="blocklist-item-title">
|
||||
<span class="blocklist-item-title" data-cy="helmTemplateList-chartName_{{ $ctrl.model.name }}">
|
||||
{{ $ctrl.model.name }}
|
||||
</span>
|
||||
<span class="space-left blocklist-item-subtitle">
|
||||
@@ -31,10 +31,10 @@
|
||||
<span class="blocklist-item-actions" ng-transclude="actions"></span>
|
||||
<!-- blocklist-item-line2 -->
|
||||
<div class="blocklist-item-line helm-template-item-details-sub">
|
||||
<span class="blocklist-item-desc">
|
||||
<span class="blocklist-item-desc" data-cy="helmTemplateList-chartDescription_{{ $ctrl.model.name }}">
|
||||
{{ $ctrl.model.description }}
|
||||
</span>
|
||||
<span class="small text-muted" ng-if="$ctrl.model.annotations.category">
|
||||
<span class="small text-muted" ng-if="$ctrl.model.annotations.category" data-cy="helmTemplateList-chartCategory_{{ $ctrl.model.name }}">
|
||||
{{ $ctrl.model.annotations.category }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="actionBar">
|
||||
<div>
|
||||
<span style="width: 25%;">
|
||||
<ui-select ng-model="$ctrl.state.selectedCategory" theme="bootstrap">
|
||||
<ui-select ng-model="$ctrl.state.selectedCategory" theme="bootstrap" data-cy="helmTemplateList-categorySelect">
|
||||
<ui-select-match placeholder="Select a category">
|
||||
<a class="btn btn-xs btn-link pull-right" ng-click="$ctrl.clearCategory()"><i class="glyphicon glyphicon-remove"></i></a>
|
||||
<span>{{ $select.selected }}</span>
|
||||
@@ -31,6 +31,7 @@
|
||||
placeholder="Search..."
|
||||
auto-focus
|
||||
ng-model-options="{ debounce: 300 }"
|
||||
data-cy="helmTemplateList-chartSearchInput"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -42,13 +43,13 @@
|
||||
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-center text-muted" data-cy="helmTemplateList-loadingCharts">
|
||||
Loading...
|
||||
<div class="text-center text-muted">
|
||||
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">
|
||||
<div ng-if="!$ctrl.loading && $ctrl.charts.length === 0" class="text-center text-muted" data-cy="helmTemplateList-noCharts">
|
||||
No helm charts available.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<!-- helmchart-form -->
|
||||
<div class="col-sm-12" ng-if="$ctrl.state.chart">
|
||||
<rd-widget>
|
||||
<rd-widget-custom-header icon="$ctrl.state.chart.icon" title-text="$ctrl.state.chart.name"></rd-widget-custom-header>
|
||||
<rd-widget-custom-header data-cy="helmTemplateList-chartName" icon="$ctrl.state.chart.icon" title-text="$ctrl.state.chart.name"></rd-widget-custom-header>
|
||||
<rd-widget-body classes="padding">
|
||||
<form class="form-horizontal" name="$ctrl.helmTemplateCreationForm">
|
||||
<!-- description -->
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<div class="template-note" ng-bind-html="$ctrl.state.chart.description"></div>
|
||||
<div class="template-note" ng-bind-html="$ctrl.state.chart.description" data-cy="helmTemplateList-chartDescription"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -49,6 +49,7 @@
|
||||
ng-options="resourcePool.Namespace.Name for resourcePool in $ctrl.state.resourcePools"
|
||||
ng-change=""
|
||||
ng-disabled="$ctrl.state.isEdit"
|
||||
data-cy="helmTemplateList-nsSelect"
|
||||
></select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -72,6 +73,7 @@
|
||||
placeholder="e.g. my-app"
|
||||
required
|
||||
ng-pattern="/^[a-z]([-a-z0-9]*[a-z0-9])?$/"
|
||||
data-cy="helmTemplateList-nameInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -89,11 +91,16 @@
|
||||
<!-- !name-input -->
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<a class="small interactive" ng-if="!$ctrl.state.showCustomValues && !$ctrl.state.loadingValues" ng-click="$ctrl.state.showCustomValues = true;">
|
||||
<a
|
||||
class="small interactive"
|
||||
ng-if="!$ctrl.state.showCustomValues && !$ctrl.state.loadingValues"
|
||||
ng-click="$ctrl.state.showCustomValues = true;"
|
||||
data-cy="helmTemplateList-showCustomValuesButton"
|
||||
>
|
||||
<i class="fa fa-plus space-right" aria-hidden="true"></i> Show custom values
|
||||
</a>
|
||||
<span class="small interactive" ng-if="$ctrl.state.loadingValues"> <i class="fa fa-sync-alt space-right" aria-hidden="true"></i> Loading values.yaml... </span>
|
||||
<a class="small interactive" ng-if="$ctrl.state.showCustomValues" ng-click="$ctrl.state.showCustomValues = false;">
|
||||
<a class="small interactive" ng-if="$ctrl.state.showCustomValues" ng-click="$ctrl.state.showCustomValues = false;" data-cy="helmTemplateList-hideCustomValuesButton">
|
||||
<i class="fa fa-minus space-right" aria-hidden="true"></i> Hide custom values
|
||||
</a>
|
||||
</div>
|
||||
@@ -119,6 +126,7 @@
|
||||
yml="true"
|
||||
on-change="($ctrl.editorUpdate)"
|
||||
value="$ctrl.state.values"
|
||||
data-cy="helmTemplateList-webEditor"
|
||||
></code-editor>
|
||||
</div>
|
||||
</div>
|
||||
@@ -139,10 +147,10 @@
|
||||
ng-click="$ctrl.installHelmchart()"
|
||||
button-spinner="$ctrl.state.actionInProgress"
|
||||
>
|
||||
<span ng-hide="$ctrl.state.actionInProgress">Install</span>
|
||||
<span ng-hide="$ctrl.state.actionInProgress" data-cy="helmTemplateList-installButton">Install</span>
|
||||
<span ng-hide="!$ctrl.state.actionInProgress">Helm installing in progress</span>
|
||||
</button>
|
||||
<button type="button" class="btn btn-sm btn-default" ng-click="$ctrl.state.chart = null">Hide</button>
|
||||
<button type="button" class="btn btn-sm btn-default" ng-click="$ctrl.state.chart = null" data-cy="helmTemplateList-hideButton">Hide</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !helm actions -->
|
||||
|
||||
@@ -349,7 +349,7 @@
|
||||
type="button"
|
||||
ng-click="ctrl.removeConfiguration(index)"
|
||||
ng-if="ctrl.formValues.Containers.length <= 1"
|
||||
data-cy="k8sAppCreate-configRemoveButton"
|
||||
data-cy="k8sAppCreate-configRemoveButton_{{ $index }}"
|
||||
>
|
||||
<i class="fa fa-trash-alt" aria-hidden="true"></i> Remove
|
||||
</button>
|
||||
@@ -862,14 +862,8 @@
|
||||
<div class="form-group" style="margin-bottom: 0;">
|
||||
<div class="boxselector_wrapper">
|
||||
<div>
|
||||
<input
|
||||
type="radio"
|
||||
id="deployment_replicated"
|
||||
ng-value="ctrl.ApplicationDeploymentTypes.REPLICATED"
|
||||
ng-model="ctrl.formValues.DeploymentType"
|
||||
data-cy="k8sAppCreate-replicatedDeploymentButton"
|
||||
/>
|
||||
<label for="deployment_replicated">
|
||||
<input type="radio" id="deployment_replicated" ng-value="ctrl.ApplicationDeploymentTypes.REPLICATED" ng-model="ctrl.formValues.DeploymentType" />
|
||||
<label for="deployment_replicated" data-cy="k8sAppCreate-replicatedDeploymentButton">
|
||||
<div class="boxselector_header">
|
||||
<i class="fa fa-cube" aria-hidden="true" style="margin-right: 2px;"></i>
|
||||
Replicated
|
||||
@@ -901,9 +895,8 @@
|
||||
ng-value="ctrl.ApplicationDeploymentTypes.GLOBAL"
|
||||
ng-model="ctrl.formValues.DeploymentType"
|
||||
ng-click="ctrl.unselectAutoScaler()"
|
||||
data-cy="k8sAppCreate-globalDeployButton"
|
||||
/>
|
||||
<label for="deployment_global">
|
||||
<label for="deployment_global" data-cy="k8sAppCreate-globalDeployButton">
|
||||
<div class="boxselector_header">
|
||||
<i class="fa fa-cubes" aria-hidden="true" style="margin-right: 2px;"></i>
|
||||
Global
|
||||
@@ -1255,7 +1248,6 @@
|
||||
ng-model="ctrl.formValues.PublishingType"
|
||||
ng-change="ctrl.onChangePublishedPorts()"
|
||||
ng-disabled="ctrl.isPublishingTypeEditDisabled()"
|
||||
data-cy="k8sAppCreate-internalPublishButton"
|
||||
/>
|
||||
<label
|
||||
for="publishing_internal"
|
||||
@@ -1263,6 +1255,7 @@
|
||||
!ctrl.isPublishingTypeEditDisabled() ||
|
||||
(ctrl.isPublishingTypeEditDisabled() && ctrl.formValues.PublishingType === ctrl.ApplicationPublishingTypes.INTERNAL)
|
||||
"
|
||||
data-cy="k8sAppCreate-internalPublishButton"
|
||||
>
|
||||
<div class="boxselector_header">
|
||||
<i class="fa fa-list-alt" aria-hidden="true" style="margin-right: 2px;"></i>
|
||||
@@ -1295,7 +1288,6 @@
|
||||
ng-model="ctrl.formValues.PublishingType"
|
||||
ng-change="ctrl.onChangePublishedPorts()"
|
||||
ng-disabled="ctrl.isPublishingTypeEditDisabled()"
|
||||
data-cy="k8sAppCreate-clusterPublishButton"
|
||||
/>
|
||||
<label
|
||||
for="publishing_cluster"
|
||||
@@ -1303,6 +1295,7 @@
|
||||
!ctrl.isPublishingTypeEditDisabled() ||
|
||||
(ctrl.isPublishingTypeEditDisabled() && ctrl.formValues.PublishingType === ctrl.ApplicationPublishingTypes.CLUSTER)
|
||||
"
|
||||
data-cy="k8sAppCreate-clusterPublishButton"
|
||||
>
|
||||
<div class="boxselector_header">
|
||||
<i class="fa fa-list" aria-hidden="true" style="margin-right: 2px;"></i>
|
||||
@@ -1334,7 +1327,6 @@
|
||||
ng-model="ctrl.formValues.PublishingType"
|
||||
ng-change="ctrl.onChangePublishedPorts()"
|
||||
ng-disabled="ctrl.isPublishingTypeEditDisabled()"
|
||||
data-cy="k8sAppCreate-ingressPublishButton"
|
||||
/>
|
||||
<label
|
||||
for="publishing_ingress"
|
||||
@@ -1342,6 +1334,7 @@
|
||||
!ctrl.isPublishingTypeEditDisabled() ||
|
||||
(ctrl.isPublishingTypeEditDisabled() && ctrl.formValues.PublishingType === ctrl.ApplicationPublishingTypes.INGRESS)
|
||||
"
|
||||
data-cy="k8sAppCreate-ingressPublishButton"
|
||||
>
|
||||
<div class="boxselector_header">
|
||||
<i class="fa fa-route" aria-hidden="true" style="margin-right: 2px;"></i>
|
||||
@@ -1373,7 +1366,6 @@
|
||||
ng-model="ctrl.formValues.PublishingType"
|
||||
ng-change="ctrl.onChangePublishedPorts()"
|
||||
ng-disabled="ctrl.isPublishingTypeEditDisabled()"
|
||||
data-cy="k8sAppCreate-lbPublichButton"
|
||||
/>
|
||||
<label
|
||||
for="publishing_loadbalancer"
|
||||
@@ -1381,6 +1373,7 @@
|
||||
!ctrl.isPublishingTypeEditDisabled() ||
|
||||
(ctrl.isPublishingTypeEditDisabled() && ctrl.formValues.PublishingType === ctrl.ApplicationPublishingTypes.LOAD_BALANCER)
|
||||
"
|
||||
data-cy="k8sAppCreate-lbPublishButton"
|
||||
>
|
||||
<div class="boxselector_header">
|
||||
<i class="fa fa-project-diagram" aria-hidden="true" style="margin-right: 2px;"></i>
|
||||
@@ -1485,7 +1478,7 @@
|
||||
ng-change="ctrl.onChangePortMappingNodePort()"
|
||||
ng-disabled="ctrl.disableLoadBalancerEdit() || ctrl.isEditAndNotNewPublishedPort($index)"
|
||||
data-cy="k8sAppCreate-nodePort_{{ $index }}"
|
||||
/>
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div
|
||||
|
||||
@@ -334,12 +334,12 @@
|
||||
<td style="width: 50%;">HTTP route</td>
|
||||
</tr>
|
||||
<tr ng-repeat-start="port in ctrl.application.PublishedPorts">
|
||||
<td ng-if="!ctrl.portHasIngressRules(port)" data-cy="k8sAppDetail-containerPort">{{ port.TargetPort }}/{{ port.Protocol }}</td>
|
||||
<td ng-if="!ctrl.portHasIngressRules(port)" data-cy="k8sAppDetail-containerPort_{{ $index }}">{{ port.TargetPort }}/{{ port.Protocol }}</td>
|
||||
<td ng-if="!ctrl.portHasIngressRules(port)">
|
||||
<span ng-if="ctrl.application.ServiceType === ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-nodePort">
|
||||
<span ng-if="ctrl.application.ServiceType === ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-nodePort_{{ $index }}">
|
||||
{{ port.NodePort }}
|
||||
</span>
|
||||
<span ng-if="ctrl.application.ServiceType !== ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-containerPort">
|
||||
<span ng-if="ctrl.application.ServiceType !== ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-lbPort_{{ $index }}">
|
||||
{{ port.Port }}
|
||||
</span>
|
||||
<a
|
||||
@@ -347,7 +347,7 @@
|
||||
ng-href="http://{{ ctrl.application.LoadBalancerIPAddress }}:{{ port.Port }}"
|
||||
target="_blank"
|
||||
style="margin-left: 5px;"
|
||||
data-cy="k8sAppDetail-accessLink"
|
||||
data-cy="k8sAppDetail-accessLink_{{ $index }}"
|
||||
>
|
||||
<i class="fa fa-external-link-alt" aria-hidden="true"></i> access
|
||||
</a>
|
||||
@@ -355,12 +355,12 @@
|
||||
<td ng-if="!ctrl.portHasIngressRules(port)">-</td>
|
||||
</tr>
|
||||
<tr ng-repeat-end ng-repeat="rule in port.IngressRules">
|
||||
<td data-cy="k8sAppDetail-httpRoute">{{ port.TargetPort }}/{{ port.Protocol }}</td>
|
||||
<td data-cy="k8sAppDetail-portwProtocol_{{ $index }}">{{ port.TargetPort }}/{{ port.Protocol }}</td>
|
||||
<td>
|
||||
<span ng-if="ctrl.application.ServiceType === ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-nodePort">
|
||||
<span ng-if="ctrl.application.ServiceType === ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-nodePort_{{ $index }}">
|
||||
{{ port.NodePort }}
|
||||
</span>
|
||||
<span ng-if="ctrl.application.ServiceType !== ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-port">
|
||||
<span ng-if="ctrl.application.ServiceType !== ctrl.KubernetesServiceTypes.NODE_PORT" data-cy="k8sAppDetail-port_{{ $index }}">
|
||||
{{ port.Port }}
|
||||
</span>
|
||||
<a
|
||||
@@ -384,7 +384,7 @@
|
||||
>pending
|
||||
</span>
|
||||
<span ng-if="ctrl.ruleCanBeDisplayed(rule)">
|
||||
<a ng-href="{{ ctrl.buildIngressRuleURL(rule) }}" target="_blank" data-cy="k8sAppDetail-httpRouteLink">
|
||||
<a ng-href="{{ ctrl.buildIngressRuleURL(rule) }}" target="_blank" data-cy="k8sAppDetail-httpRouteLink_{{ $index }}">
|
||||
{{ ctrl.buildIngressRuleURL(rule) | stripprotocol }}
|
||||
</a>
|
||||
</span>
|
||||
|
||||
@@ -24,19 +24,19 @@
|
||||
<tbody class="release-table">
|
||||
<tr>
|
||||
<td>Name</td>
|
||||
<td>
|
||||
<td data-cy="helmDetail-name">
|
||||
{{ $ctrl.state.release.name }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Chart</td>
|
||||
<td>
|
||||
<td data-cy="helmDetail-chart">
|
||||
{{ $ctrl.state.release.chart }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>App version</td>
|
||||
<td>
|
||||
<td data-cy="helmDetail-version">
|
||||
{{ $ctrl.state.release.app_version }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
Allow users to use external load balancer
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="ctrl.formValues.UseLoadBalancer" /><i data-cy="kubeSetup-loadBalancerToggle"></i>
|
||||
<input type="checkbox" ng-model="ctrl.formValues.UseLoadBalancer" data-cy="kubeSetup-loadBalancerToggle" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<label class="control-label text-left">Ingress controller</label>
|
||||
<span class="label label-default interactive" style="margin-left: 10px;" ng-click="ctrl.addIngressClass()" data-cy="kubeSetup-congifIngressButton">
|
||||
<span class="label label-default interactive" style="margin-left: 10px;" ng-click="ctrl.addIngressClass()" data-cy="kubeSetup-addIngressButton">
|
||||
<i class="fa fa-plus-circle" aria-hidden="true"></i> configure ingress controller
|
||||
</span>
|
||||
</div>
|
||||
@@ -63,7 +63,7 @@
|
||||
ng-pattern="/^[a-z]([-a-z0-9]*[a-z0-9])?$/"
|
||||
ng-change="ctrl.onChangeIngressClassName($index)"
|
||||
required
|
||||
data-cy="kubeSetup-ingressClassName"
|
||||
data-cy="kubeSetup-ingressClassName_{{ $index }}"
|
||||
/>
|
||||
</div>
|
||||
<div class="col-sm-3 input-group input-group-sm" ng-class="{ striked: ingressClass.NeedsDeletion }">
|
||||
@@ -74,7 +74,7 @@
|
||||
ng-model="ingressClass.Type"
|
||||
ng-options="value as value for (key, value) in ctrl.IngressClassTypes"
|
||||
required
|
||||
data-cy="kubeSetup-ingressType"
|
||||
data-cy="kubeSetup-ingressType_{{ $index }}"
|
||||
>
|
||||
<option selected disabled hidden value="">Select a type</option>
|
||||
</select>
|
||||
@@ -85,7 +85,7 @@
|
||||
class="btn btn-sm btn-danger"
|
||||
type="button"
|
||||
ng-click="ctrl.removeIngressClass($index)"
|
||||
data-cy="kubeSetup-deleteIngress"
|
||||
data-cy="kubeSetup-deleteIngress_{{ $index }}"
|
||||
>
|
||||
<i class="fa fa-trash-alt" aria-hidden="true"></i>
|
||||
</button>
|
||||
@@ -156,7 +156,7 @@
|
||||
Restrict access to the default namespace
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="ctrl.formValues.RestrictDefaultNamespace" /><i data-cy="kubeSetup-restrictDefaultNsToggle"></i>
|
||||
<input type="checkbox" ng-model="ctrl.formValues.RestrictDefaultNamespace" data-cy="kubeSetup-restrictDefaultNsToggle" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -181,7 +181,7 @@
|
||||
<label class="control-label text-left">
|
||||
Allow resource over-commit
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;"> <input type="checkbox" checked disabled /><i data-cy="kubeSetup-resourceOverCommitToggle"></i> </label>
|
||||
<label class="switch" style="margin-left: 20px;"> <input type="checkbox" checked disabled data-cy="kubeSetup-resourceOverCommitToggle" /><i></i> </label>
|
||||
<span class="text-muted small" style="margin-left: 15px;">
|
||||
<i class="fa fa-user" aria-hidden="true"></i>
|
||||
This feature is available in <a href="https://www.portainer.io/business-upsell?from=k8s-setup-overcommit" target="_blank"> Portainer Business Edition</a>.
|
||||
@@ -205,7 +205,7 @@
|
||||
Enable features using the metrics API
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="ctrl.formValues.UseServerMetrics" ng-change="ctrl.enableMetricsServer()" /><i data-cy="kubeSetup-metricsToggle"></i>
|
||||
<input type="checkbox" ng-model="ctrl.formValues.UseServerMetrics" ng-change="ctrl.enableMetricsServer()" data-cy="kubeSetup-metricsToggle" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
<div ng-if="ctrl.state.metrics.pending && ctrl.state.metrics.userClick" class="col-sm-12 small text-muted" style="margin-top: 5px;">
|
||||
@@ -265,7 +265,7 @@
|
||||
<td>
|
||||
<div style="margin: 5px;">
|
||||
<label class="switch" style="margin-right: 10px;">
|
||||
<input type="checkbox" ng-model="class.selected" /><i data-cy="kubeSetup-storageToggle{{ class.Name }}"></i>
|
||||
<input type="checkbox" ng-model="class.selected" data-cy="kubeSetup-storageToggle{{ class.Name }}" /><i></i>
|
||||
</label>
|
||||
<span>{{ class.Name }}</span>
|
||||
</div>
|
||||
@@ -288,7 +288,7 @@
|
||||
<td>
|
||||
<div style="margin: 5px;">
|
||||
<label class="switch"
|
||||
><input type="checkbox" ng-model="class.AllowVolumeExpansion" /><i data-cy="kubeSetup-storageExpansionToggle{{ class.Name }}"></i>
|
||||
><input type="checkbox" ng-model="class.AllowVolumeExpansion" data-cy="kubeSetup-storageExpansionToggle{{ class.Name }}" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
Resource assignment
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="$ctrl.formValues.HasQuota" /><i data-cy="k8sNamespaceCreate-resourceAssignmentToggle"></i>
|
||||
<input type="checkbox" ng-model="$ctrl.formValues.HasQuota" data-cy="k8sNamespaceCreate-resourceAssignmentToggle" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -239,7 +239,7 @@
|
||||
Allow users to use this ingress
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="ic.Selected" /><i data-cy="namespaceCreate-ingressToggle{{ ic.IngressClass.Name }}"></i>
|
||||
<input type="checkbox" ng-model="ic.Selected" data-cy="namespaceCreate-ingressToggle{{ ic.IngressClass.Name }}" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -315,7 +315,7 @@
|
||||
</portainer-tooltip>
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="ic.RewriteTarget" /><i data-cy="namespaceCreate-redirectRoutesToggle{{ ic.IngressClass.Name }}"></i>
|
||||
<input type="checkbox" ng-model="ic.RewriteTarget" data-cy="namespaceCreate-redirectRoutesToggle{{ ic.IngressClass.Name }}" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="sensitive-details-container">
|
||||
<div class="sensitive-details-container" data-cy="k8sApplist-appSecretDiv_{{ $ctrl.key }}">
|
||||
<div class="text-wrap">{{ $ctrl.key }}</div>
|
||||
<show-hide class="show-hide-container" value="$ctrl.value" use-asterisk="true"></show-hide>
|
||||
<copy-button value="$ctrl.value"></copy-button>
|
||||
|
||||
@@ -209,7 +209,7 @@
|
||||
Connect via socket
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="formValues.ConnectSocket" /><i data-cy="endpointCreate-connectSocketSwitch"></i>
|
||||
<input type="checkbox" ng-model="formValues.ConnectSocket" data-cy="endpointCreate-connectSocketSwitch" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -220,7 +220,7 @@
|
||||
Override default socket path
|
||||
</label>
|
||||
<label class="switch" style="margin-left: 20px;">
|
||||
<input type="checkbox" ng-model="formValues.OverrideSocket" /><i data-cy="endpointCreate-overrideSocketSwitch"></i>
|
||||
<input type="checkbox" ng-model="formValues.OverrideSocket" data-cy="endpointCreate-overrideSocketSwitch" /><i></i>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user