1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-02 20:35:25 +02:00

chore(data-cy): require data-cy attributes [EE-6880] (#11453)
Some checks are pending
ci / build_images (map[arch:amd64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
ci / build_images (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
ci / build_images (map[arch:arm platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:arm64 platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:ppc64le platform:linux version:]) (push) Waiting to run
ci / build_images (map[arch:s390x platform:linux version:]) (push) Waiting to run
ci / build_manifests (push) Blocked by required conditions
/ triage (push) Waiting to run
Lint / Run linters (push) Waiting to run
Test / test-client (push) Waiting to run
Test / test-server (map[arch:amd64 platform:linux]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:1809]) (push) Waiting to run
Test / test-server (map[arch:amd64 platform:windows version:ltsc2022]) (push) Waiting to run
Test / test-server (map[arch:arm64 platform:linux]) (push) Waiting to run

This commit is contained in:
Ali 2024-04-11 12:11:38 +12:00 committed by GitHub
parent 3cad13388c
commit d38085a560
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
538 changed files with 2571 additions and 595 deletions

View file

@ -21,7 +21,13 @@
<div class="menuContent">
<div>
<div class="md-checkbox" ng-if="$ctrl.isAdmin">
<input id="applications_setting_show_system" type="checkbox" ng-model="$ctrl.settings.showSystem" ng-change="$ctrl.onSettingsShowSystemChange()" />
<input
id="applications_setting_show_system"
type="checkbox"
ng-model="$ctrl.settings.showSystem"
ng-change="$ctrl.onSettingsShowSystemChange()"
data-cy="k8sApp-showSystemCheckbox"
/>
<label for="applications_setting_show_system">Show system resources</label>
</div>
<div class="md-checkbox">
@ -100,20 +106,20 @@
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
<input
type="text"
data-cy="k8sApp-searchApplicationsInput"
class="searchInput"
ng-model="$ctrl.state.textFilter"
ng-change="$ctrl.onTextFilterChange()"
placeholder="Search..."
auto-focus
ng-model-options="{ debounce: 300 }"
data-cy="k8sApp-searchApplicationsInput"
/>
</div>
</div>
</div>
<div class="toolBar !pt-0">
<div class="w-full">
<div class="form-group float-right !h-[30px] min-w-[140px] mr-2">
<div class="form-group float-right mr-2 !h-[30px] min-w-[140px]">
<div class="input-group">
<span class="input-group-addon">
<div className="flex items-center gap-1">
@ -218,7 +224,13 @@
<div class="menuHeader"> Filter by application type </div>
<div class="menuContent">
<div class="md-checkbox" ng-repeat="filter in $ctrl.filters.state.values track by $index">
<input id="filter_state_{{ $index }}" type="checkbox" ng-model="filter.display" ng-change="$ctrl.onStateFilterChange()" />
<input
id="filter_state_{{ $index }}"
type="checkbox"
ng-model="filter.display"
ng-change="$ctrl.onStateFilterChange()"
data-cy="k8sApp-filter-state-{{ $index }}"
/>
<label for="filter_state_{{ $index }}">{{ filter.type }}</label>
</div>
</div>
@ -261,6 +273,7 @@
<input
id="select_{{ $index }}"
type="checkbox"
data-cy="k8sApp-checkbox-{{ item.Name }}"
ng-model="item.Checked"
ng-click="$ctrl.selectItem(item, $event); $event.stopPropagation()"
ng-disabled="$ctrl.isSystemNamespace(item)"
@ -307,13 +320,9 @@
>
<span ng-if="item.KubernetesApplications">{{ item.Status }}</span>
</td>
<td ng-if="item.ApplicationType === $ctrl.KubernetesApplicationTypes.Pod">
{{ item.Pods[0].Status }}
</td>
<td ng-if="item.ApplicationType === $ctrl.KubernetesApplicationTypes.Pod"> {{ item.Pods[0].Status }} </td>
<td>
<span>
{{ item.Services.length === 0 ? 'No' : 'Yes' }}
</span>
<span> {{ item.Services.length === 0 ? 'No' : 'Yes' }} </span>
</td>
<td>{{ item.CreationDate | getisodate }} {{ item.ApplicationOwner ? 'by ' + item.ApplicationOwner : '' }}</td>
</tr>

View file

@ -10,13 +10,13 @@
<pr-icon icon="'search'" class="vertical-center"></pr-icon>
<input
type="text"
data-cy="k8sConfigDetail-eventsTableSearchInput"
class="searchInput ml-1"
ng-model="$ctrl.state.textFilter"
ng-change="$ctrl.onTextFilterChange()"
placeholder="Search for an event..."
auto-focus
ng-model-options="{ debounce: 300 }"
data-cy="k8sConfigDetail-eventsTableSearchInput"
/>
</div>
<div class="settings">
@ -28,12 +28,24 @@
<div class="menuContent">
<div>
<div class="md-checkbox">
<input id="setting_auto_refresh" type="checkbox" ng-model="$ctrl.settings.repeater.autoRefresh" ng-change="$ctrl.onSettingsRepeaterChange()" />
<input
id="setting_auto_refresh"
type="checkbox"
ng-model="$ctrl.settings.repeater.autoRefresh"
ng-change="$ctrl.onSettingsRepeaterChange()"
data-cy="k8sConfigDetail-eventsTableAutoRefreshCheckbox"
/>
<label for="setting_auto_refresh">Auto refresh</label>
</div>
<div ng-if="$ctrl.settings.repeater.autoRefresh">
<label for="settings_refresh_rate"> Refresh rate </label>
<select id="settings_refresh_rate" ng-model="$ctrl.settings.repeater.refreshRate" ng-change="$ctrl.onSettingsRepeaterChange()" class="small-select">
<select
id="settings_refresh_rate"
ng-model="$ctrl.settings.repeater.refreshRate"
ng-change="$ctrl.onSettingsRepeaterChange()"
class="small-select"
data-cy="k8sConfigDetail-eventsTableRefreshRateSelect"
>
<option value="10">10s</option>
<option value="30">30s</option>
<option value="60">1min</option>

View file

@ -1,12 +1,19 @@
<section class="datatable" aria-label="Helm charts">
<div class="toolBar vertical-center relative w-full flex-wrap !gap-x-5 !gap-y-1 !px-0">
<div class="toolBarTitle vertical-center">
{{ $ctrl.titleText }}
</div>
<div class="toolBarTitle vertical-center"> {{ $ctrl.titleText }} </div>
<div class="searchBar vertical-center !mr-0">
<pr-icon icon="'search'" class="searchIcon"></pr-icon>
<input type="text" class="searchInput" ng-model="$ctrl.state.textFilter" placeholder="Search..." auto-focus ng-model-options="{ debounce: 300 }" aria-label="Search input" />
<input
type="text"
data-cy="helm-templates-search"
class="searchInput"
ng-model="$ctrl.state.textFilter"
placeholder="Search..."
auto-focus
ng-model-options="{ debounce: 300 }"
aria-label="Search input"
/>
</div>
<div class="w-1/5">
<por-select
@ -20,7 +27,7 @@
</div>
</div>
<div class="w-full">
<div class="mb-2 small text-muted"
<div class="small text-muted mb-2"
>Select the Helm chart to use. Bring further Helm charts into your selection list via
<a ui-sref="portainer.account({'#': 'helm-repositories'})">User settings - Helm repositories</a>.</div
>

View file

@ -72,6 +72,7 @@
<div class="col-sm-8 col-lg-9">
<input
type="text"
data-cy="k8sConfigCreate-keyInput"
class="form-control"
maxlength="253"
id="configuration_data_key_{{ index }}"
@ -111,6 +112,7 @@
<div class="col-sm-8 col-lg-9">
<textarea
class="form-control"
data-cy="k8sConfigCreate-configurationDataValue"
rows="5"
id="configuration_data_value_{{ index }}"
name="configuration_data_value_{{ index }}"
@ -156,7 +158,7 @@
</div>
<div class="form-group !px-[15px]" ng-if="!$ctrl.formValues.IsSimple">
<input type="text" ng-model="$ctrl.formValues.DataYaml" required style="display: none" />
<input type="text" ng-model="$ctrl.formValues.DataYaml" required style="display: none" data-cy="k8sConfigCreate-configurationDataYaml" />
<web-editor-form
identifier="kubernetes-configuration-editor"

View file

@ -142,6 +142,7 @@ export const ngModule = angular
'identifier',
'data',
'hideMessage',
'data-cy',
])
)
.component(
@ -227,6 +228,7 @@ export const ngModule = angular
'onRefresh',
'tableKey',
'tableTitle',
'dataCy',
])
);

View file

@ -57,7 +57,7 @@
<div class="form-group">
<label for="refreshRate" class="col-sm-3 col-md-2 col-lg-2 margin-sm-top control-label text-left"> Refresh rate </label>
<div class="col-sm-3 col-md-2">
<select id="refreshRate" ng-model="ctrl.state.refreshRate" ng-change="ctrl.changeUpdateRepeater()" class="form-control">
<select id="refreshRate" ng-model="ctrl.state.refreshRate" ng-change="ctrl.changeUpdateRepeater()" class="form-control" data-cy="app-stats-refresh-rate">
<option value="30">30s</option>
<option value="60">60s</option>
</select>

View file

@ -40,19 +40,21 @@
<tr>
<td>Status</td>
<td>
<span class="label label-{{ ctrl.node.Status | kubernetesNodeStatusColor }}">
{{ ctrl.node.Status }}
</span>
<span ng-if="ctrl.node.Status == 'Warning'" class="text text-warning">
{{ ctrl.node.Conditions | kubernetesNodeConditionsMessage }}
</span>
<span class="label label-{{ ctrl.node.Status | kubernetesNodeStatusColor }}"> {{ ctrl.node.Status }} </span>
<span ng-if="ctrl.node.Status == 'Warning'" class="text text-warning"> {{ ctrl.node.Conditions | kubernetesNodeConditionsMessage }} </span>
</td>
</tr>
<tr>
<td class="col-xs-3"> Availability </td>
<td class="col-xs-9">
<div class="flex flex-col">
<select class="form-control" name="availability" style="display: inline-block; width: 16rem" ng-model="ctrl.formValues.Availability">
<select
class="form-control"
data-cy="node-availability-select"
name="availability"
style="display: inline-block; width: 16rem"
ng-model="ctrl.formValues.Availability"
>
<option>{{ ctrl.availabilities.ACTIVE }}</option>
<option>{{ ctrl.availabilities.PAUSE }}</option>
<option>{{ ctrl.availabilities.DRAIN }}</option>
@ -99,6 +101,7 @@
<span class="input-group-addon">Key</span>
<input
type="text"
data-cy="label-key-input-{{ $index }}"
class="form-control"
name="label_key_{{ $index }}"
ng-model="label.Key"
@ -111,6 +114,7 @@
<span class="input-group-addon">Value</span>
<input
type="text"
data-cy="label-value-input-{{ $index }}"
class="form-control"
name="label_value_{{ $index }}"
ng-change="ctrl.onChangeLabel($index)"
@ -158,15 +162,31 @@
<div class="form-inline" ng-repeat="taint in ctrl.formValues.Taints" style="padding: 3px 0 3px 0">
<div class="input-group col-sm-3 input-group-sm" ng-class="{ striked: taint.NeedsDeletion }">
<span class="input-group-addon">Key</span>
<input type="text" class="form-control" name="taint_key_{{ $index }}" ng-model="taint.Key" ng-change="ctrl.onChangeTaintKey($index)" required />
<input
type="text"
data-cy="taint-key-input-{{ $index }}"
class="form-control"
name="taint_key_{{ $index }}"
ng-model="taint.Key"
ng-change="ctrl.onChangeTaintKey($index)"
required
/>
</div>
<div class="input-group col-sm-3 input-group-sm" ng-class="{ striked: taint.NeedsDeletion }">
<span class="input-group-addon">Value</span>
<input type="text" class="form-control" name="taint_value_{{ $index }}" ng-model="taint.Value" ng-change="ctrl.onChangeTaint($index)" />
<input
type="text"
data-cy="taint-value-input-{{ $index }}"
class="form-control"
name="taint_value_{{ $index }}"
ng-model="taint.Value"
ng-change="ctrl.onChangeTaint($index)"
/>
</div>
<div class="input-group col-sm-3 input-group-sm" ng-class="{ striked: taint.NeedsDeletion }">
<span class="input-group-addon">Effect</span>
<select
data-cy="taint_effect_{{ $index }}"
id="taint_effect_{{ $index }}"
name="taint_effect_{{ $index }}"
class="form-control"
@ -247,7 +267,7 @@
<div class="flex-center gap-1"> <pr-icon icon="'code'" size="'sm'"></pr-icon> YAML </div>
</uib-tab-heading>
<div style="padding-right: 25px" ng-if="ctrl.state.showEditorTab">
<kube-yaml-inspector identifier="'node-yaml'" data="ctrl.node.Yaml" hide-message="true" />
<kube-yaml-inspector identifier="'node-yaml'" data="ctrl.node.Yaml" hide-message="true" data-cy="node-yaml-inspector" />
</div>
</uib-tab>
</uib-tabset>

View file

@ -45,7 +45,7 @@
<div class="form-group">
<label for="refreshRate" class="col-sm-3 col-md-2 col-lg-2 margin-sm-top control-label text-left"> Refresh rate </label>
<div class="col-sm-3 col-md-2">
<select id="refreshRate" ng-model="ctrl.state.refreshRate" ng-change="ctrl.changeUpdateRepeater()" class="form-control">
<select id="refreshRate" ng-model="ctrl.state.refreshRate" ng-change="ctrl.changeUpdateRepeater()" class="form-control" data-cy="node-stats-refresh-rate">
<option value="30">30s</option>
<option value="60">60s</option>
</select>

View file

@ -33,9 +33,7 @@
<tbody>
<tr>
<td class="w-[40%] !border-none !pl-0">Name</td>
<td class="!border-none">
{{ ctrl.configuration.Name }}
</td>
<td class="!border-none"> {{ ctrl.configuration.Name }} </td>
</tr>
<tr>
<td class="!pl-0">Namespace</td>
@ -75,7 +73,7 @@
YAML
</uib-tab-heading>
<div class="px-5 !pt-5" ng-if="ctrl.state.showEditorTab">
<kube-yaml-inspector identifier="'configuration-yaml'" data="ctrl.configuration.Yaml" hide-message="true" />
<kube-yaml-inspector data-cy="k8sConfigDetail-yamlInspector" identifier="'configuration-yaml'" data="ctrl.configuration.Yaml" hide-message="true" />
</div>
</uib-tab>
</uib-tabset>

View file

@ -48,6 +48,7 @@
<div class="col-sm-8 col-lg-9 mb-0">
<input
type="text"
data-cy="k8sConfigCreate-nameInput"
class="form-control"
id="configuration_name"
name="configuration_name"
@ -57,7 +58,6 @@
placeholder="my-secret"
auto-focus
required
data-cy="k8sConfigCreate-nameInput"
/>
<div ng-show="kubernetesConfigurationCreationForm.configuration_name.$invalid || ctrl.state.alreadyExist">
<div class="help-block small text-warning">
@ -102,6 +102,7 @@
ng-model="ctrl.formValues.Type"
ng-options="value.value as value.name for (name, value) in ctrl.KubernetesSecretTypeOptions"
ng-change="ctrl.onSecretTypeChange()"
data-cy="k8sConfigCreate-typeDropdown"
></select>
<div class="col-sm-3 col-lg-2"></div>
@ -141,6 +142,7 @@
<div class="col-sm-8 col-lg-9">
<input
type="text"
data-cy="k8sConfigCreate-customType-input"
name="custom_type"
class="form-control"
id="configuration_data_customtype"

View file

@ -47,9 +47,7 @@
</tr>
<tr ng-if="ctrl.secretTypeName">
<td class="!pl-0">Secret Type</td>
<td>
{{ ctrl.secretTypeName }}
</td>
<td> {{ ctrl.secretTypeName }} </td>
</tr>
</tbody>
</table>
@ -82,7 +80,7 @@
YAML
</uib-tab-heading>
<div class="px-5 !pt-5" ng-if="ctrl.state.showEditorTab">
<kube-yaml-inspector identifier="'secret-yaml'" data="ctrl.configuration.Yaml" hide-message="true" />
<kube-yaml-inspector data-cy="k8sConfigDetail-yamlInspector" identifier="'secret-yaml'" data="ctrl.configuration.Yaml" hide-message="true" />
</div>
</uib-tab>
</uib-tabset>

View file

@ -33,7 +33,7 @@
</label>
<div class="col-sm-8 vertical-center pt-3">
<label class="switch">
<input type="checkbox" name="toggle_logo" ng-model="ctrl.formValues.namespace_toggle" />
<input type="checkbox" name="toggle_logo" ng-model="ctrl.formValues.namespace_toggle" data-cy="use-namespce-from-menifest" />
<span class="slider round"></span>
</label>
</div>
@ -44,6 +44,7 @@
<div class="col-sm-8">
<select
ng-if="!ctrl.formValues.namespace_toggle || ctrl.state.BuildMethod === ctrl.BuildMethods.HELM"
data-cy="namespace-select"
ng-disabled="ctrl.formValues.namespace_toggle && ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM"
class="form-control"
ng-model="ctrl.formValues.Namespace"
@ -71,6 +72,7 @@
<div class="col-sm-8" ng-if="ctrl.state.BuildMethod === ctrl.BuildMethods.HELM">
<input
type="text"
data-cy="name-input"
class="form-control"
ng-model="ctrl.formValues.Name"
id="name"
@ -87,7 +89,7 @@
</div>
<div ng-if="!ctrl.deploymentOptions.hideStacksFunctionality && ctrl.state.BuildMethod !== ctrl.BuildMethods.HELM">
<div class="w-fit mb-4">
<div class="mb-4 w-fit">
<stack-name-label-insight></stack-name-label-insight>
</div>
<kube-stack-name stack-name="ctrl.formValues.StackName" set-stack-name="(ctrl.setStackName)" stacks="ctrl.stacks"></kube-stack-name>
@ -175,11 +177,11 @@
<div class="col-sm-8">
<input
type="text"
data-cy="k8sAppDeploy-urlFileUrl"
class="form-control"
ng-model="ctrl.formValues.ManifestURL"
id="manifest_url"
placeholder="https://raw.githubusercontent.com/kubernetes/website/main/content/en/examples/controllers/nginx-deployment.yaml"
data-cy="k8sAppDeploy-urlFileUrl"
/>
</div>
</div>

View file

@ -100,6 +100,7 @@
<input
name="memory_limit"
type="number"
data-cy="k8sNamespaceEdit-memoryLimitInput"
min="{{ ctrl.ResourceQuotaDefaults.MemoryLimit }}"
max="{{ ctrl.state.sliderMaxMemory }}"
class="form-control"
@ -188,9 +189,7 @@
<div class="form-group" ng-if="!ctrl.isAdmin || ctrl.isSystem">
<label class="col-sm-3 col-lg-2 control-label text-left" style="padding-top: 0"> Selected registries </label>
<div class="col-sm-9 col-lg-4">
{{ ctrl.selectedRegistries ? ctrl.selectedRegistries : 'None' }}
</div>
<div class="col-sm-9 col-lg-4"> {{ ctrl.selectedRegistries ? ctrl.selectedRegistries : 'None' }} </div>
</div>
<div ng-if="ctrl.isAdmin && !ctrl.isSystem">
@ -300,7 +299,7 @@
<uib-tab index="2" ng-if="ctrl.pool.Yaml" select="ctrl.showEditor()" classes="btn-sm">
<uib-tab-heading class="vertical-center"><pr-icon icon="'code'"></pr-icon> YAML </uib-tab-heading>
<div class="px-5" ng-if="ctrl.state.showEditorTab">
<kube-yaml-inspector identifier="'namespace-yaml'" data="ctrl.pool.Yaml" hide-message="true" />
<kube-yaml-inspector identifier="'namespace-yaml'" data="ctrl.pool.Yaml" data-cy="k8sNamespaceEdit-yamlEditor" hide-message="true" />
</div>
</uib-tab>
</uib-tabset>

View file

@ -56,7 +56,7 @@
<td>Access Modes</td>
<td data-cy="k8sVolDetail-volAccessPolicy">
<div ng-repeat="(index, accessPolicy) in ctrl.state.volumeSharedAccessPolicies" class="flex flex-col gap-y-1">
<div class="items-center flex gap-x-1">
<div class="flex items-center gap-x-1">
{{ accessPolicy }}
<portainer-tooltip
ng-if="ctrl.state.volumeSharedAccessPolicyTooltips[index]"
@ -95,6 +95,7 @@
<div class="input-group input-group-sm">
<input
type="number"
data-cy="k8sVolDetail-increaseSizeInput"
class="form-control"
name="size"
ng-model="ctrl.state.volumeSize"
@ -171,7 +172,7 @@
<uib-tab index="2" ng-if="ctrl.volume.PersistentVolumeClaim.Yaml" select="ctrl.showEditor()" classes="btn-sm">
<uib-tab-heading class="vertical-center" data-cy="k8sVolDetail-volYamlTab"> <pr-icon icon="'code'"></pr-icon> YAML </uib-tab-heading>
<div class="px-5" ng-if="ctrl.state.showEditorTab">
<kube-yaml-inspector identifier="'volume-yaml'" data="ctrl.volume.PersistentVolumeClaim.Yaml" hide-message="true" />
<kube-yaml-inspector data-cy="k8sVolDetail-volYaml" identifier="'volume-yaml'" data="ctrl.volume.PersistentVolumeClaim.Yaml" hide-message="true" />
</div>
</uib-tab>
</uib-tabset>