mirror of
https://github.com/portainer/portainer.git
synced 2025-08-07 14:55:27 +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
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:
parent
3cad13388c
commit
d38085a560
538 changed files with 2571 additions and 595 deletions
|
@ -12,6 +12,7 @@
|
|||
<pr-icon icon="'search'" class-name="'searchIcon'"></pr-icon>
|
||||
<input
|
||||
type="text"
|
||||
data-cy="accessDatatable-searchInput"
|
||||
class="searchInput"
|
||||
ng-model="$ctrl.state.textFilter"
|
||||
ng-change="$ctrl.onTextFilterChange()"
|
||||
|
@ -46,7 +47,7 @@
|
|||
<th>
|
||||
<div class="vertical-center">
|
||||
<span class="md-checkbox">
|
||||
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" />
|
||||
<input id="select_all" type="checkbox" ng-model="$ctrl.state.selectAll" ng-change="$ctrl.selectAll()" data-cy="select-all-checkbox" />
|
||||
<label for="select_all"></label>
|
||||
</span>
|
||||
<table-column-header
|
||||
|
@ -76,7 +77,14 @@
|
|||
>
|
||||
<td>
|
||||
<span class="md-checkbox">
|
||||
<input id="select_{{ $index }}" type="checkbox" ng-model="item.Checked" ng-disabled="$ctrl.disableRemove(item)" ng-click="$ctrl.selectItem(item, $event)" />
|
||||
<input
|
||||
id="select_{{ $index }}"
|
||||
type="checkbox"
|
||||
ng-model="item.Checked"
|
||||
ng-disabled="$ctrl.disableRemove(item)"
|
||||
ng-click="$ctrl.selectItem(item, $event)"
|
||||
data-cy="select-checkbox"
|
||||
/>
|
||||
<label for="select_{{ $index }}"></label>
|
||||
</span>
|
||||
{{ item.Name }}
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
<div>
|
||||
<select
|
||||
class="form-control"
|
||||
data-cy="access-management-role-select"
|
||||
ng-model="ctrl.formValues.selectedRole"
|
||||
ng-options="role as ctrl.roleLabel(role) disable when ctrl.isRoleLimitedToBE(role) for role in ctrl.roles"
|
||||
>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<div class="col-sm-8 vertical-center">
|
||||
<select
|
||||
ng-if="$ctrl.templates.length"
|
||||
data-cy="custom-template-selector"
|
||||
class="form-control"
|
||||
ng-model="$ctrl.value"
|
||||
ng-options="template.Id as template.label for template in $ctrl.templates"
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div class="menuHeader"> Show / Hide Columns </div>
|
||||
<div class="menuContent">
|
||||
<div class="md-checkbox" ng-repeat="(key, value) in $ctrl.columns">
|
||||
<input id="col_vis_{{::key}}" ng-change="$ctrl.onChange($ctrl.columns)" type="checkbox" ng-model="value.display" />
|
||||
<input id="col_vis_{{::key}}" ng-change="$ctrl.onChange($ctrl.columns)" type="checkbox" ng-model="value.display" data-cy="column-visibility-checkbox" />
|
||||
<label for="col_vis_{{::key}}">{{ value.label }}</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -14,13 +14,12 @@
|
|||
<input
|
||||
id="filter_{{ $ctrl.filterKey }}_{{ $index }}"
|
||||
type="checkbox"
|
||||
data-cy="filter-checkbox"
|
||||
ng-value="filter.value"
|
||||
ng-checked="$ctrl.state.includes(filter.value)"
|
||||
ng-click="$ctrl.onChangeItem(filter.value)"
|
||||
/>
|
||||
<label for="filter_{{ $ctrl.filterKey }}_{{ $index }}">
|
||||
{{ filter.label }}
|
||||
</label>
|
||||
<label for="filter_{{ $ctrl.filterKey }}_{{ $index }}"> {{ filter.label }} </label>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<form class="form-inline">
|
||||
<span class="limitSelector">
|
||||
<span style="margin-right: 5px"> Items per page </span>
|
||||
<select class="form-control" ng-model="$ctrl.limit" ng-change="$ctrl.onChangeLimit($ctrl.limit)">
|
||||
<select class="form-control" ng-model="$ctrl.limit" ng-change="$ctrl.onChangeLimit($ctrl.limit)" data-cy="pagination-limit-select">
|
||||
<option ng-if="$ctrl.enableNoLimit" ng-value="0">All</option>
|
||||
<option ng-value="10">10</option>
|
||||
<option ng-value="25">25</option>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div class="form-group">
|
||||
<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" class="form-control" name="group_name" ng-model="$ctrl.model.Name" placeholder="e.g. my-group" required auto-focus />
|
||||
<input type="text" class="form-control" name="group_name" ng-model="$ctrl.model.Name" placeholder="e.g. my-group" required auto-focus data-cy="group-name-input" />
|
||||
<div class="help-block" ng-show="endpointGroupForm.group_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="endpointGroupForm.group_name.$error">
|
||||
|
@ -21,7 +21,14 @@
|
|||
<div class="form-group">
|
||||
<label for="group_description" class="col-sm-3 col-lg-2 control-label text-left">Description</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="group_description" ng-model="$ctrl.model.Description" placeholder="e.g. production environments..." />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="group_description"
|
||||
ng-model="$ctrl.model.Description"
|
||||
placeholder="e.g. production environments..."
|
||||
data-cy="group-description-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !description-input -->
|
||||
|
|
|
@ -13,7 +13,17 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_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" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="my-ecr-registry" required auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_name"
|
||||
name="registry_name"
|
||||
ng-model="$ctrl.model.Name"
|
||||
placeholder="my-ecr-registry"
|
||||
required
|
||||
auto-focus
|
||||
data-cy="registry-name-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormEcr.registry_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormEcr.registry_name.$error">
|
||||
|
@ -41,6 +51,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="registry-url-input"
|
||||
class="form-control"
|
||||
id="registry_url"
|
||||
name="registry_url"
|
||||
|
@ -83,7 +94,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_access_key" class="col-sm-3 col-lg-2 control-label required text-left">AWS Access Key</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_access_key" name="registry_access_key" ng-model="$ctrl.model.Username" required />
|
||||
<input type="text" class="form-control" id="registry_access_key" name="registry_access_key" ng-model="$ctrl.model.Username" required data-cy="registry-access-key-input" />
|
||||
<div class="help-block" ng-show="$ctrl.registryFormEcr.registry_access_key.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormEcr.registry_access_key.$error">
|
||||
|
@ -121,7 +132,16 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_region" class="col-sm-3 col-lg-2 control-label required text-left">Region</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_region" name="registry_region" placeholder="us-west-1" ng-model="$ctrl.model.Ecr.Region" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_region"
|
||||
name="registry_region"
|
||||
placeholder="us-west-1"
|
||||
ng-model="$ctrl.model.Ecr.Region"
|
||||
required
|
||||
data-cy="registry-region-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormEcr.registry_region.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormEcr.registry_region.$error">
|
||||
|
|
|
@ -4,7 +4,17 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_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" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="my-azure-registry" required auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_name"
|
||||
name="registry_name"
|
||||
ng-model="$ctrl.model.Name"
|
||||
placeholder="my-azure-registry"
|
||||
required
|
||||
auto-focus
|
||||
data-cy="registry-name-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormAzure.registry_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormAzure.registry_name.$error">
|
||||
|
@ -29,7 +39,16 @@
|
|||
<portainer-tooltip message="'URL of an Azure Container Registry. Any protocol will be stripped.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_url" name="registry_url" ng-model="$ctrl.model.URL" placeholder="myproject.azurecr.io" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_url"
|
||||
name="registry_url"
|
||||
ng-model="$ctrl.model.URL"
|
||||
placeholder="myproject.azurecr.io"
|
||||
required
|
||||
data-cy="registry-url-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormAzure.registry_url.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormAzure.registry_url.$error">
|
||||
|
@ -47,7 +66,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_username" class="col-sm-3 col-lg-2 control-label required text-left">Username</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required />
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required data-cy="registry-username-input" />
|
||||
<div class="help-block" ng-show="$ctrl.registryFormAzure.registry_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormAzure.registry_username.$error">
|
||||
|
|
|
@ -11,7 +11,17 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_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" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="my-custom-registry" required auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_name"
|
||||
name="registry_name"
|
||||
ng-model="$ctrl.model.Name"
|
||||
placeholder="my-custom-registry"
|
||||
required
|
||||
auto-focus
|
||||
data-cy="component-registryNameInput"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormCustom.registry_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormCustom.registry_name.$error">
|
||||
|
@ -36,7 +46,16 @@
|
|||
<portainer-tooltip message="'URL or IP address of a Docker registry. Any protocol and trailing slash will be stripped if present.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_url" name="registry_url" ng-model="$ctrl.model.URL" placeholder="10.0.0.10:5000 or myregistry.domain.tld" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_url"
|
||||
name="registry_url"
|
||||
ng-model="$ctrl.model.URL"
|
||||
placeholder="10.0.0.10:5000 or myregistry.domain.tld"
|
||||
required
|
||||
data-cy="component-registryUrlInput"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormCustom.registry_url.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormCustom.registry_url.$error">
|
||||
|
@ -70,7 +89,15 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_username" class="col-sm-3 col-lg-2 control-label required text-left">Username</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_username"
|
||||
name="registry_username"
|
||||
ng-model="$ctrl.model.Username"
|
||||
required
|
||||
data-cy="component-registryUsernameInput"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormCustom.registry_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormCustom.registry_username.$error">
|
||||
|
|
|
@ -13,7 +13,16 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_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" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="dockerhub-prod-us" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_name"
|
||||
name="registry_name"
|
||||
ng-model="$ctrl.model.Name"
|
||||
placeholder="dockerhub-prod-us"
|
||||
required
|
||||
data-cy="component-registryName"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormDockerhub.registry_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormDockerhub.registry_name.$error">
|
||||
|
@ -35,7 +44,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_username" class="col-sm-3 col-lg-2 control-label required text-left">DockerHub username</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required />
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required data-cy="component-registryUsername" />
|
||||
<div class="help-block" ng-show="$ctrl.registryFormDockerhub.registry_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormDockerhub.registry_username.$error">
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_username" class="col-sm-3 col-lg-2 control-label required text-left">Username</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required />
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required data-cy="registry-username-input" />
|
||||
<div class="help-block" ng-show="registryFormGitlab.registry_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="registryFormGitlab.registry_username.$error">
|
||||
|
@ -76,7 +76,16 @@
|
|||
<portainer-tooltip message="'URL of Gitlab instance.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="instance_url" name="instance_url" ng-model="$ctrl.model.Gitlab.InstanceURL" placeholder="https://gitlab.com" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="instance_url"
|
||||
name="instance_url"
|
||||
ng-model="$ctrl.model.Gitlab.InstanceURL"
|
||||
placeholder="https://gitlab.com"
|
||||
required
|
||||
data-cy="instance-url-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="registryFormGitlab.instance_url.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="registryFormGitlab.instance_url.$error">
|
||||
|
@ -97,7 +106,16 @@
|
|||
<portainer-tooltip message="'URL of Gitlab registry instance.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_url" name="registry_url" ng-model="$ctrl.model.URL" placeholder="https://registry.gitlab.com" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_url"
|
||||
name="registry_url"
|
||||
ng-model="$ctrl.model.URL"
|
||||
placeholder="https://registry.gitlab.com"
|
||||
required
|
||||
data-cy="registry-url-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="registryFormGitlab.registry_url.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="registryFormGitlab.registry_url.$error">
|
||||
|
|
|
@ -11,7 +11,17 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_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" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="proget-registry" required auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_name"
|
||||
name="registry_name"
|
||||
ng-model="$ctrl.model.Name"
|
||||
placeholder="proget-registry"
|
||||
required
|
||||
auto-focus
|
||||
data-cy="registry-name-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormProGet.registry_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormProGet.registry_name.$error">
|
||||
|
@ -36,7 +46,16 @@
|
|||
<portainer-tooltip message="'The URL of the ProGet registry including the Feed name'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_url" name="registry_url" ng-model="$ctrl.model.URL" placeholder="proget.example.com/example-registry" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_url"
|
||||
name="registry_url"
|
||||
ng-model="$ctrl.model.URL"
|
||||
placeholder="proget.example.com/example-registry"
|
||||
required
|
||||
data-cy="registry-url-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormProGet.registry_url.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormProGet.registry_url.$error">
|
||||
|
@ -57,7 +76,16 @@
|
|||
<portainer-tooltip message="'The base URL of the ProGet registry'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_base_url" name="registry_base_url" ng-model="$ctrl.model.BaseURL" placeholder="proget.example.com" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_base_url"
|
||||
name="registry_base_url"
|
||||
ng-model="$ctrl.model.BaseURL"
|
||||
placeholder="proget.example.com"
|
||||
required
|
||||
data-cy="registry-base-url-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormProGet.registry_base_url.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormProGet.registry_base_url.$error">
|
||||
|
@ -76,7 +104,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_username" class="col-sm-3 col-lg-2 control-label required text-left">Username</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required />
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required data-cy="registry-username-input" />
|
||||
<div class="help-block" ng-show="$ctrl.registryFormProGet.registry_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormProGet.registry_username.$error">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_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" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="Quay" required />
|
||||
<input type="text" class="form-control" id="registry_name" name="registry_name" ng-model="$ctrl.model.Name" placeholder="Quay" required data-cy="registry-name-input" />
|
||||
<div class="help-block" ng-show="$ctrl.registryFormQuay.registry_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormQuay.registry_name.$error">
|
||||
|
@ -26,7 +26,16 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_username" class="col-sm-3 col-lg-2 control-label required text-left">Username</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_username" name="registry_username" ng-model="$ctrl.model.Username" required auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_username"
|
||||
name="registry_username"
|
||||
ng-model="$ctrl.model.Username"
|
||||
required
|
||||
auto-focus
|
||||
data-cy="registry-username-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormQuay.registry_username.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormQuay.registry_username.$error">
|
||||
|
@ -76,7 +85,15 @@
|
|||
<div class="form-group">
|
||||
<label for="organisation_name" class="col-sm-3 col-lg-2 control-label required text-left">Organization name</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="organisation_name" name="organisation_name" ng-model="$ctrl.model.Quay.organisationName" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="organisation_name"
|
||||
name="organisation_name"
|
||||
ng-model="$ctrl.model.Quay.organisationName"
|
||||
required
|
||||
data-cy="registry-organisation-name-input"
|
||||
/>
|
||||
<div class="help-block" ng-show="$ctrl.registryFormQuay.organisation_name.$invalid">
|
||||
<div class="small text-warning">
|
||||
<div ng-messages="$ctrl.registryFormQuay.organisation_name.$error">
|
||||
|
|
|
@ -16,7 +16,16 @@
|
|||
<div class="form-group">
|
||||
<label for="template_name" class="col-sm-2 control-label text-left">Name</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="template_name" class="form-control" ng-model="$ctrl.formValues.name" ng-pattern="$ctrl.nameRegex" placeholder="e.g. myStack" required />
|
||||
<input
|
||||
type="text"
|
||||
name="template_name"
|
||||
class="form-control"
|
||||
ng-model="$ctrl.formValues.name"
|
||||
ng-pattern="$ctrl.nameRegex"
|
||||
placeholder="e.g. myStack"
|
||||
required
|
||||
data-cy="stack-name-input"
|
||||
/>
|
||||
<div class="form-group" ng-if="stackTemplateForm.template_name.$invalid">
|
||||
<div class="col-sm-12 small text-warning">
|
||||
<div ng-messages="stackTemplateForm.template_name.$error">
|
||||
|
@ -39,8 +48,8 @@
|
|||
<portainer-tooltip ng-if="var.description" message="var.description"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" ng-if="!var.select" ng-model="var.value" id="field_{{ $index }}" />
|
||||
<select class="form-control" ng-if="var.select" ng-model="var.value" id="field_{{ $index }}">
|
||||
<input type="text" class="form-control" ng-if="!var.select" ng-model="var.value" id="field_{{ $index }}" data-cy="stackFromTemplateForm-input" />
|
||||
<select class="form-control" ng-if="var.select" ng-model="var.value" id="field_{{ $index }}" data-cy="stackFromTemplateForm-select">
|
||||
<option selected disabled hidden value="">Select value</option>
|
||||
<option ng-repeat="choice in var.select" value="{{ choice.value }}">{{ choice.text }}</option>
|
||||
</select>
|
||||
|
|
|
@ -4,7 +4,15 @@
|
|||
<div class="form-group">
|
||||
<label for="azure_credential_appid" class="col-sm-3 col-lg-2 control-label text-left">Application ID</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" name="azure_credential_appid" ng-model="$ctrl.applicationId" placeholder="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
name="azure_credential_appid"
|
||||
ng-model="$ctrl.applicationId"
|
||||
placeholder="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
required
|
||||
data-cy="azure-credential-appid-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !applicationId-input -->
|
||||
|
@ -12,7 +20,15 @@
|
|||
<div class="form-group">
|
||||
<label for="azure_credential_tenantid" class="col-sm-3 col-lg-2 control-label text-left">Tenant ID</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" name="azure_credential_tenantid" ng-model="$ctrl.tenantId" placeholder="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
name="azure_credential_tenantid"
|
||||
ng-model="$ctrl.tenantId"
|
||||
placeholder="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
||||
required
|
||||
data-cy="azure-credential-tenantid-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !tenantId-input -->
|
||||
|
@ -22,6 +38,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="azure-credential-authkey-input"
|
||||
class="form-control"
|
||||
name="azure_credential_authkey"
|
||||
ng-model="$ctrl.authenticationKey"
|
||||
|
|
|
@ -65,6 +65,7 @@
|
|||
ng-disabled="$ctrl.settings.OAuthAutoMapTeamMemberships"
|
||||
ng-model="$ctrl.settings.DefaultTeamID"
|
||||
ng-options="team.Id as team.Name for team in $ctrl.teams"
|
||||
data-cy="default-team-select"
|
||||
>
|
||||
<option value="">No team</option>
|
||||
</select>
|
||||
|
@ -106,7 +107,14 @@
|
|||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<div class="col-xs-11 col-lg-10">
|
||||
<input type="text" class="form-control" id="oauth_token_claim_name" ng-model="$ctrl.settings.TeamMemberships.OAuthClaimName" placeholder="groups" />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="oauth_token_claim_name"
|
||||
ng-model="$ctrl.settings.TeamMemberships.OAuthClaimName"
|
||||
placeholder="groups"
|
||||
data-cy="oauth-token-claim-name"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -122,13 +130,14 @@
|
|||
<div class="col-sm-12 form-inline" ng-repeat="mapping in $ctrl.settings.TeamMemberships.OAuthClaimMappings" style="margin-top: 0.75em">
|
||||
<div class="input-group input-group-sm col-sm-5">
|
||||
<span class="input-group-addon">claim value regex</span>
|
||||
<input type="text" class="form-control" ng-model="mapping.ClaimValRegex" />
|
||||
<input type="text" class="form-control" ng-model="mapping.ClaimValRegex" data-cy="claim-value-regex" />
|
||||
</div>
|
||||
<span style="margin: 0px 0.5em">maps to</span>
|
||||
<div class="input-group input-group-sm col-sm-3 col-lg-4">
|
||||
<span class="input-group-addon">team</span>
|
||||
<select
|
||||
class="form-control"
|
||||
data-cy="team-select"
|
||||
ng-init="mapping.Team = mapping.Team || $ctrl.settings.DefaultTeamID"
|
||||
ng-model="mapping.Team"
|
||||
ng-options="team.Id as team.Name for team in $ctrl.teams"
|
||||
|
@ -159,7 +168,7 @@
|
|||
|
||||
<div class="col-sm-9" ng-if="$ctrl.teams.length > 0">
|
||||
<div class="col-xs-11">
|
||||
<select class="form-control" ng-model="$ctrl.settings.DefaultTeamID" ng-options="team.Id as team.Name for team in $ctrl.teams">
|
||||
<select class="form-control" ng-model="$ctrl.settings.DefaultTeamID" ng-options="team.Id as team.Name for team in $ctrl.teams" data-cy="default-team-select">
|
||||
<option value="">No team</option>
|
||||
</select>
|
||||
</div>
|
||||
|
@ -191,9 +200,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="oauth_client_secret" class="col-sm-3 col-lg-2 control-label text-left">
|
||||
{{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }}
|
||||
</label>
|
||||
<label for="oauth_client_secret" class="col-sm-3 col-lg-2 control-label text-left"> {{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }} </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="password"
|
||||
|
@ -217,6 +224,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-authorization-uri"
|
||||
class="form-control"
|
||||
id="oauth_authorization_uri"
|
||||
ng-model="$ctrl.settings.AuthorizationURI"
|
||||
|
@ -235,6 +243,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-access-token-uri"
|
||||
class="form-control"
|
||||
id="oauth_access_token_uri"
|
||||
ng-model="$ctrl.settings.AccessTokenURI"
|
||||
|
@ -253,6 +262,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-resource-uri"
|
||||
class="form-control"
|
||||
id="oauth_resource_uri"
|
||||
ng-model="$ctrl.settings.ResourceURI"
|
||||
|
@ -273,6 +283,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-redirect-uri"
|
||||
class="form-control"
|
||||
id="oauth_redirect_uri"
|
||||
ng-model="$ctrl.settings.RedirectURI"
|
||||
|
@ -293,6 +304,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-logout-url"
|
||||
class="form-control"
|
||||
id="oauth_logout_url"
|
||||
ng-model="$ctrl.settings.LogoutURI"
|
||||
|
@ -312,6 +324,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-user-identifier"
|
||||
class="form-control"
|
||||
id="oauth_user_identifier"
|
||||
ng-model="$ctrl.settings.UserIdentifier"
|
||||
|
@ -332,6 +345,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-scopes"
|
||||
class="form-control"
|
||||
id="oauth_scopes"
|
||||
ng-model="$ctrl.settings.Scopes"
|
||||
|
@ -364,6 +378,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-microsoft-tenant-id"
|
||||
class="form-control"
|
||||
id="oauth_microsoft_tenant_id"
|
||||
placeholder="xxxxxxxxxxxxxxxxxxxx"
|
||||
|
@ -386,6 +401,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="oauth-client-id"
|
||||
id="oauth_client_id"
|
||||
ng-model="$ctrl.settings.ClientID"
|
||||
placeholder="xxxxxxxxxxxxxxxxxxxx"
|
||||
|
@ -397,9 +413,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="oauth_client_secret" class="col-sm-3 col-lg-2 control-label text-left">
|
||||
{{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }}
|
||||
</label>
|
||||
<label for="oauth_client_secret" class="col-sm-3 col-lg-2 control-label text-left"> {{ $ctrl.state.provider == 'microsoft' ? 'Application key' : 'Client secret' }} </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="password"
|
||||
|
|
|
@ -9,6 +9,7 @@ export const fileUploadField = r2a(FileUploadField, [
|
|||
'required',
|
||||
'accept',
|
||||
'inputId',
|
||||
'data-cy',
|
||||
'color',
|
||||
'name',
|
||||
]);
|
||||
|
|
|
@ -78,6 +78,7 @@ export const ngModule = angular
|
|||
'buttonText',
|
||||
'className',
|
||||
'buttonClassName',
|
||||
'data-cy',
|
||||
])
|
||||
)
|
||||
.component(
|
||||
|
@ -224,6 +225,7 @@ export const ngModule = angular
|
|||
'onChange',
|
||||
'value',
|
||||
'height',
|
||||
'data-cy',
|
||||
])
|
||||
)
|
||||
.component(
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<div class="col-sm-12 vertical-center">
|
||||
<label for="tls" class="control-label !pt-0 text-left"> Automatic user provisioning </label>
|
||||
<label class="switch my-0 ml-6">
|
||||
<input type="checkbox" ng-model="$ctrl.ngModel" />
|
||||
<input type="checkbox" ng-model="$ctrl.ngModel" data-cy="auto-user-provision-toggle" />
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
<div ng-repeat="url in $ctrl.settings.URLs track by $index" style="display: flex; margin-bottom: 10px">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-url"
|
||||
class="form-control"
|
||||
id="ldap_url"
|
||||
ng-model="$ctrl.settings.URLs[$index]"
|
||||
|
@ -77,6 +78,7 @@
|
|||
<div class="col-sm-9">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-username"
|
||||
class="form-control"
|
||||
id="ldap_username"
|
||||
ng-model="$ctrl.settings.ReaderDN"
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
<div class="col-sm-8 col-md-4">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-admin-group-basedn"
|
||||
class="form-control"
|
||||
id="ldap_admin_group_basedn_{{ $index }}"
|
||||
ng-model="config.GroupBaseDN"
|
||||
|
@ -35,6 +36,7 @@
|
|||
<div class="col-sm-8 col-md-4">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-admin-group-att"
|
||||
class="form-control"
|
||||
id="ldap_admin_group_att_{{ $index }}"
|
||||
ng-model="config.GroupAttribute"
|
||||
|
@ -54,6 +56,7 @@
|
|||
<div class="col-sm-8 col-md-10 vertical-center">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-admin-group-filter"
|
||||
class="form-control"
|
||||
id="ldap_admin_group_filter_{{ $index }}"
|
||||
ng-model="config.GroupFilter"
|
||||
|
@ -102,7 +105,14 @@
|
|||
Assign admin rights to group(s)
|
||||
</label>
|
||||
<label class="switch my-0 ml-7" ng-class="{ 'business limited': $ctrl.isLimitedFeatureSelfContained }">
|
||||
<input id="admin-auto-populate" ng-disabled="!$ctrl.enableAssignAdminGroup" name="admin-auto-populate" type="checkbox" ng-model="$ctrl.settings.AdminAutoPopulate" />
|
||||
<input
|
||||
id="admin-auto-populate"
|
||||
ng-disabled="!$ctrl.enableAssignAdminGroup"
|
||||
name="admin-auto-populate"
|
||||
type="checkbox"
|
||||
ng-model="$ctrl.settings.AdminAutoPopulate"
|
||||
data-cy="admin-auto-populate"
|
||||
/>
|
||||
<span class="slider round before:content-['']"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,14 @@
|
|||
<portainer-tooltip message="'The distinguished name of the element from which the LDAP server will search for groups.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-4">
|
||||
<input type="text" class="form-control" id="ldap_group_basedn_{{ $index }}" ng-model="config.GroupBaseDN" placeholder="dc=ldap,dc=domain,dc=tld" />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="ldap_group_basedn_{{ $index }}"
|
||||
ng-model="config.GroupBaseDN"
|
||||
placeholder="dc=ldap,dc=domain,dc=tld"
|
||||
data-cy="ldap-group-basedn-input"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<label for="ldap_group_att_{{ $index }}" class="col-sm-4 col-md-2 control-label text-left">
|
||||
|
@ -20,7 +27,7 @@
|
|||
<portainer-tooltip message="'LDAP attribute which denotes the group membership.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-4">
|
||||
<input type="text" class="form-control" id="ldap_group_att_{{ $index }}" ng-model="config.GroupAttribute" placeholder="member" />
|
||||
<input type="text" class="form-control" id="ldap_group_att_{{ $index }}" ng-model="config.GroupAttribute" placeholder="member" data-cy="ldap-group-attribute-input" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -29,7 +36,14 @@
|
|||
<portainer-tooltip message="'The LDAP search filter used to select group elements, optional.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-10 vertical-center">
|
||||
<input type="text" class="form-control" id="ldap_group_filter_{{ $index }}" ng-model="config.GroupFilter" placeholder="(objectClass=account)" />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="ldap_group_filter_{{ $index }}"
|
||||
ng-model="config.GroupFilter"
|
||||
placeholder="(objectClass=account)"
|
||||
data-cy="ldap-group-filter-input"
|
||||
/>
|
||||
<button class="btn btn-md btn-danger" type="button" ng-click="$ctrl.onRemoveClick($index)" ng-if="$index > 0">
|
||||
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
|
||||
</button>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<portainer-tooltip message="'The distinguished name of the element from which the LDAP server will search for users.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-4">
|
||||
<input type="text" class="form-control" id="ldap_basedn_{{ $index }}" ng-model="config.BaseDN" placeholder="dc=ldap,dc=domain,dc=tld" />
|
||||
<input type="text" class="form-control" id="ldap_basedn_{{ $index }}" ng-model="config.BaseDN" placeholder="dc=ldap,dc=domain,dc=tld" data-cy="ldap-basedn-input" />
|
||||
</div>
|
||||
|
||||
<label for="ldap_username_att_{{ $index }}" class="col-sm-4 col-md-3 col-lg-2 control-label text-left">
|
||||
|
@ -20,7 +20,7 @@
|
|||
<portainer-tooltip message="'LDAP attribute which denotes the username.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-3 col-lg-4">
|
||||
<input type="text" class="form-control" id="ldap_username_att_{{ $index }}" ng-model="config.UserNameAttribute" placeholder="uid" />
|
||||
<input type="text" class="form-control" id="ldap_username_att_{{ $index }}" ng-model="config.UserNameAttribute" placeholder="uid" data-cy="ldap-username-attribute-input" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -29,7 +29,7 @@
|
|||
<portainer-tooltip message="'The LDAP search filter used to select user elements, optional.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-8 col-md-10 vertical-center">
|
||||
<input type="text" class="form-control" id="ldap_filter_{{ $index }}" ng-model="config.Filter" placeholder="(objectClass=account)" />
|
||||
<input type="text" class="form-control" id="ldap_filter_{{ $index }}" ng-model="config.Filter" placeholder="(objectClass=account)" data-cy="ldap-filter-input" />
|
||||
<button class="btn btn-md btn-danger" type="button" ng-click="$ctrl.onRemoveClick($index)" ng-if="$index > 0">
|
||||
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
|
||||
</button>
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-4 col-md-2 control-label text-left"> Group Base DN </label>
|
||||
<div class="col-sm-8 col-md-10">
|
||||
{{ $ctrl.config.GroupBaseDN }}
|
||||
</div>
|
||||
<div class="col-sm-8 col-md-10"> {{ $ctrl.config.GroupBaseDN }} </div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
|
@ -39,7 +37,14 @@
|
|||
<div class="w-full px-5 pt-3">
|
||||
<div class="form-group no-margin-last-child" ng-repeat="entry in $ctrl.groups">
|
||||
<div class="col-sm-4">
|
||||
<select class="form-control" ng-model="entry.type" ng-change="$ctrl.onGroupsChange()" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1">
|
||||
<select
|
||||
class="form-control"
|
||||
data-cy="ldap-group-search-item-select"
|
||||
ng-model="entry.type"
|
||||
ng-change="$ctrl.onGroupsChange()"
|
||||
limited-feature-dir="{{::$ctrl.limitedFeatureId}}"
|
||||
limited-feature-tabindex="-1"
|
||||
>
|
||||
<option value="ou">OU Name</option>
|
||||
<option value="cn">Folder Name</option>
|
||||
</select>
|
||||
|
@ -71,8 +76,6 @@
|
|||
|
||||
<div class="form-group no-margin-last-child">
|
||||
<label class="col-sm-4 col-md-2 control-label text-left"> Group Filter </label>
|
||||
<div class="col-sm-8 col-md-10">
|
||||
{{ $ctrl.config.GroupFilter }}
|
||||
</div>
|
||||
<div class="col-sm-8 col-md-10"> {{ $ctrl.config.GroupFilter }} </div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -21,7 +21,15 @@
|
|||
<label for="ldap_url" class="col-sm-3 col-lg-2 control-label flex flex-wrap text-left"> LDAP Server </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<div class="mb-3 flex" ng-repeat="url in $ctrl.settings.URLs track by $index">
|
||||
<input type="text" class="form-control" id="ldap_url" ng-model="$ctrl.settings.URLs[$index]" placeholder="e.g. 10.0.0.10:389 or myldap.domain.tld:389" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="ldap_url"
|
||||
ng-model="$ctrl.settings.URLs[$index]"
|
||||
placeholder="e.g. 10.0.0.10:389 or myldap.domain.tld:389"
|
||||
required
|
||||
data-cy="ldap-url-input"
|
||||
/>
|
||||
<button ng-if="$index > 0" class="btn btn-sm btn-danger" type="button" ng-click="$ctrl.removeLDAPUrl($index)">
|
||||
<pr-icon icon="'trash-2'" size="'md'"></pr-icon>
|
||||
</button>
|
||||
|
@ -45,7 +53,14 @@
|
|||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<label class="switch">
|
||||
<input type="checkbox" id="anonymous_mode" ng-model="$ctrl.settings.AnonymousMode" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" />
|
||||
<input
|
||||
type="checkbox"
|
||||
id="anonymous_mode"
|
||||
ng-model="$ctrl.settings.AnonymousMode"
|
||||
limited-feature-dir="{{::$ctrl.limitedFeatureId}}"
|
||||
limited-feature-tabindex="-1"
|
||||
data-cy="anonymous-mode-checkbox"
|
||||
/>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -59,7 +74,7 @@
|
|||
<portainer-tooltip message="'Account that will be used to search for users.'"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="ldap_username" ng-model="$ctrl.settings.ReaderDN" placeholder="cn=user,dc=domain,dc=tld" />
|
||||
<input type="text" class="form-control" id="ldap_username" ng-model="$ctrl.settings.ReaderDN" placeholder="cn=user,dc=domain,dc=tld" data-cy="ldap-username-input" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -18,7 +18,15 @@
|
|||
<rd-widget-body>
|
||||
<div class="form-group no-margin-last-child" ng-repeat="entry in $ctrl.entries">
|
||||
<div class="col-sm-4">
|
||||
<select class="form-control" ng-model="entry.type" ng-change="$ctrl.onEntriesChange()" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1">
|
||||
<select
|
||||
class="form-control"
|
||||
ng-model="entry.type"
|
||||
ng-change="$ctrl.onEntriesChange()"
|
||||
limited-feature-dir="{{::$ctrl.limitedFeatureId}}"
|
||||
limited-feature-tabindex="-1"
|
||||
data-cy="ldap-dn-builder-select"
|
||||
>
|
||||
>
|
||||
<option value="ou">OU Name</option>
|
||||
<option value="cn">Folder Name</option>
|
||||
</select>
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
<div class="col-sm-7" style="padding-left: 0">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="group-name-input"
|
||||
class="form-control"
|
||||
id="group-name-input"
|
||||
ng-model="$ctrl.groupName"
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
<div ng-repeat="url in $ctrl.settings.URLs track by $index" style="display: flex; margin-bottom: 10px">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-url"
|
||||
class="form-control"
|
||||
id="ldap_url"
|
||||
ng-model="$ctrl.settings.URLs[$index]"
|
||||
|
@ -71,7 +72,14 @@
|
|||
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<label class="switch">
|
||||
<input type="checkbox" id="anonymous_mode" ng-model="$ctrl.settings.AnonymousMode" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" />
|
||||
<input
|
||||
type="checkbox"
|
||||
id="anonymous_mode"
|
||||
ng-model="$ctrl.settings.AnonymousMode"
|
||||
limited-feature-dir="{{::$ctrl.limitedFeatureId}}"
|
||||
limited-feature-tabindex="-1"
|
||||
data-cy="ldap-anonymous-mode"
|
||||
/>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -88,6 +96,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-reader-dn"
|
||||
class="form-control"
|
||||
id="ldap_username"
|
||||
ng-model="$ctrl.settings.ReaderDN"
|
||||
|
@ -124,6 +133,7 @@
|
|||
<div class="col-sm-9">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="ldap-domain-root"
|
||||
class="form-control"
|
||||
id="ldap_domain_root"
|
||||
ng-model="$ctrl.domainSuffix"
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
<div class="col-sm-12 form-section-title">
|
||||
{{ $ctrl.title || 'LDAP security' }}
|
||||
</div>
|
||||
<div class="col-sm-12 form-section-title"> {{ $ctrl.title || 'LDAP security' }} </div>
|
||||
|
||||
<!-- starttls -->
|
||||
<div class="form-group" ng-if="!$ctrl.settings.TLSConfig.TLS">
|
||||
|
@ -10,7 +8,7 @@
|
|||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<label class="switch">
|
||||
<input type="checkbox" ng-model="$ctrl.settings.StartTLS" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" />
|
||||
<input type="checkbox" ng-model="$ctrl.settings.StartTLS" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" data-cy="starttls-toggle" />
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -25,7 +23,7 @@
|
|||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<label class="switch">
|
||||
<input type="checkbox" ng-model="$ctrl.settings.TLSConfig.TLS" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" />
|
||||
<input type="checkbox" ng-model="$ctrl.settings.TLSConfig.TLS" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" data-cy="tls-toggle" />
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
@ -40,7 +38,13 @@
|
|||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<label class="switch">
|
||||
<input type="checkbox" ng-model="$ctrl.settings.TLSConfig.TLSSkipVerify" limited-feature-dir="{{::$ctrl.limitedFeatureId}}" limited-feature-tabindex="-1" />
|
||||
<input
|
||||
type="checkbox"
|
||||
ng-model="$ctrl.settings.TLSConfig.TLSSkipVerify"
|
||||
limited-feature-dir="{{::$ctrl.limitedFeatureId}}"
|
||||
limited-feature-tabindex="-1"
|
||||
data-cy="tls-skip-verify-toggle"
|
||||
/>
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div>
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
limited-feature-class=" {{ $ctrl.isLimitedFeatureSelfContained && 'limited-be' }}"
|
||||
ng-disabled="{{ $ctrl.isLimitedFeatureSelfContained }}"
|
||||
limited-feature-tabindex="-1"
|
||||
data-cy="ldap-test-username"
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -62,11 +62,11 @@
|
|||
<input
|
||||
id="username"
|
||||
type="text"
|
||||
data-cy="auth-usernameInput"
|
||||
class="form-control"
|
||||
name="username"
|
||||
ng-model="ctrl.formValues.Username"
|
||||
auto-focus
|
||||
data-cy="auth-usernameInput"
|
||||
placeholder="Enter your username"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="deviceImport-deviceNameInput"
|
||||
class="form-control"
|
||||
name="device_name"
|
||||
placeholder="e.g. FDO-Test01"
|
||||
|
@ -77,7 +78,6 @@
|
|||
ng-required="state.vouchersUploaded"
|
||||
ng-disabled="!state.vouchersUploaded"
|
||||
auto-focus
|
||||
data-cy="deviceImport-deviceNameInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -104,6 +104,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="deviceImport-suffixInput"
|
||||
class="form-control"
|
||||
name="suffix"
|
||||
ng-model="formValues.Suffix"
|
||||
|
@ -112,7 +113,6 @@
|
|||
ng-pattern="/^[0-9]+$/"
|
||||
placeholder="1"
|
||||
required
|
||||
data-cy="deviceImport-suffixInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -140,6 +140,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="deviceImport-portainerServerUrlInput"
|
||||
class="form-control"
|
||||
name="endpoint_url"
|
||||
ng-model="formValues.PortainerURL"
|
||||
|
@ -147,7 +148,6 @@
|
|||
ng-disabled="!state.vouchersUploaded"
|
||||
placeholder="e.g. https://10.0.0.10:9443"
|
||||
required
|
||||
data-cy="deviceImport-portainerServerUrlInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -167,7 +167,14 @@
|
|||
<div class="form-group">
|
||||
<label for="device_profile" class="col-sm-3 col-lg-2 control-label text-left">Device Profile</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<select id="device_profile" ng-model="formValues.DeviceProfile" class="form-control" ng-required="state.vouchersUploaded" ng-disabled="!state.vouchersUploaded">
|
||||
<select
|
||||
id="device_profile"
|
||||
data-cy="deviceImport-deviceProfileSelect"
|
||||
ng-model="formValues.DeviceProfile"
|
||||
class="form-control"
|
||||
ng-required="state.vouchersUploaded"
|
||||
ng-disabled="!state.vouchersUploaded"
|
||||
>
|
||||
<option selected disabled hidden value="">Select a profile for your device</option>
|
||||
<option ng-repeat="profile in profiles | orderBy: 'name'" ng-value="profile.id">{{ profile.name }}</option>
|
||||
</select>
|
||||
|
@ -190,6 +197,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<select
|
||||
class="form-control"
|
||||
data-cy="deviceImport-deviceGroupSelect"
|
||||
ng-options="group.Id as group.Name for group in groups"
|
||||
ng-model="formValues.GroupId"
|
||||
id="device_group"
|
||||
|
|
|
@ -10,7 +10,16 @@
|
|||
<div class="form-group">
|
||||
<label for="stack_name" class="col-sm-1 control-label text-left">Name</label>
|
||||
<div class="col-sm-11">
|
||||
<input type="text" class="form-control" ng-model="formValues.name" id="profile_name" name="profile_name" placeholder="e.g. myprofile" auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
ng-model="formValues.name"
|
||||
id="profile_name"
|
||||
name="profile_name"
|
||||
placeholder="e.g. myprofile"
|
||||
auto-focus
|
||||
data-cy="profile-name-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !name-input -->
|
||||
|
|
|
@ -10,7 +10,16 @@
|
|||
<div class="form-group">
|
||||
<label for="stack_name" class="col-sm-1 control-label text-left">Name</label>
|
||||
<div class="col-sm-11">
|
||||
<input type="text" class="form-control" ng-model="formValues.name" id="profile_name" name="profile_name" placeholder="e.g. myprofile" auto-focus />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
ng-model="formValues.name"
|
||||
id="profile_name"
|
||||
name="profile_name"
|
||||
placeholder="e.g. myprofile"
|
||||
auto-focus
|
||||
data-cy="profile-name-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !name-input -->
|
||||
|
|
|
@ -73,7 +73,14 @@
|
|||
<div class="form-group">
|
||||
<label for="container_name" class="col-sm-3 col-lg-2 control-label text-left">Name</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="container_name" ng-model="endpoint.Name" placeholder="e.g. kubernetes-cluster01 / docker-prod01" />
|
||||
<input
|
||||
type="text"
|
||||
data-cy="container-name-input"
|
||||
class="form-control"
|
||||
id="container_name"
|
||||
ng-model="endpoint.Name"
|
||||
placeholder="e.g. kubernetes-cluster01 / docker-prod01"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !name-input -->
|
||||
|
@ -93,6 +100,7 @@
|
|||
<input
|
||||
ng-disabled="endpointType === 'local' || state.azureEndpoint"
|
||||
type="text"
|
||||
data-cy="endpoint-url-input"
|
||||
class="form-control"
|
||||
id="endpoint_url"
|
||||
ng-model="endpoint.URL"
|
||||
|
@ -109,7 +117,14 @@
|
|||
</portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="endpoint_public_url" ng-model="endpoint.PublicURL" placeholder="e.g. 10.0.0.10 or mydocker.mydomain.com" />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="endpoint_public_url"
|
||||
ng-model="endpoint.PublicURL"
|
||||
placeholder="e.g. 10.0.0.10 or mydocker.mydomain.com"
|
||||
data-cy="public-url-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -138,7 +153,13 @@
|
|||
<div class="form-group">
|
||||
<label for="endpoint_group" class="col-sm-3 col-lg-2 control-label text-left"> Group </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<select ng-options="group.Id as group.Name for group in groups" ng-model="endpoint.GroupId" id="endpoint_group" class="form-control"></select>
|
||||
<select
|
||||
ng-options="group.Id as group.Name for group in groups"
|
||||
ng-model="endpoint.GroupId"
|
||||
id="endpoint_group"
|
||||
class="form-control"
|
||||
data-cy="endpoint-group-select"
|
||||
></select>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !group -->
|
||||
|
@ -152,14 +173,30 @@
|
|||
<div class="form-group">
|
||||
<label for="endpoint_managementinfoVersion" class="col-sm-3 col-lg-2 control-label text-left"> AMT Version </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" ng-disabled="true" class="form-control" id="endpoint_managementinfoVersion" ng-model="endpoint.ManagementInfo['AMT']" placeholder="Loading..." />
|
||||
<input
|
||||
type="text"
|
||||
ng-disabled="true"
|
||||
class="form-control"
|
||||
id="endpoint_managementinfoVersion"
|
||||
ng-model="endpoint.ManagementInfo['AMT']"
|
||||
placeholder="Loading..."
|
||||
data-cy="endpoint-managementinfoVersion"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="endpoint_managementinfoUUID" class="col-sm-3 col-lg-2 control-label text-left"> UUID </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" ng-disabled="true" class="form-control" id="endpoint_managementinfoUUID" ng-model="endpoint.ManagementInfo['UUID']" placeholder="Loading..." />
|
||||
<input
|
||||
type="text"
|
||||
ng-disabled="true"
|
||||
class="form-control"
|
||||
id="endpoint_managementinfoUUID"
|
||||
ng-model="endpoint.ManagementInfo['UUID']"
|
||||
placeholder="Loading..."
|
||||
data-cy="endpoint-managementinfoUUID"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -168,6 +205,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="endpoint-managementinfoBuildNumber"
|
||||
ng-disabled="true"
|
||||
class="form-control"
|
||||
id="endpoint_managementinfoBuildNumber"
|
||||
|
@ -182,6 +220,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="endpoint-managementinfoControlMode"
|
||||
ng-disabled="true"
|
||||
class="form-control"
|
||||
id="endpoint_managementinfoControlMode"
|
||||
|
@ -196,6 +235,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="endpoint-managementinfoDNSSuffix"
|
||||
ng-disabled="true"
|
||||
class="form-control"
|
||||
id="endpoint_managementinfoDNSSuffix"
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<div class="form-group">
|
||||
<label for="username" class="col-sm-4 control-label text-left"> Username </label>
|
||||
<div class="col-sm-8">
|
||||
<input type="text" class="form-control" id="username" ng-model="formValues.Username" placeholder="e.g. admin" />
|
||||
<input type="text" class="form-control" id="username" ng-model="formValues.Username" placeholder="e.g. admin" data-cy="init-username" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- !username-input -->
|
||||
|
@ -92,7 +92,7 @@
|
|||
<!-- enableTelemetry-->
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12 vertical-center">
|
||||
<input type="checkbox" name="toggle_enableTelemetry" ng-model="formValues.enableTelemetry" />
|
||||
<input type="checkbox" name="toggle_enableTelemetry" ng-model="formValues.enableTelemetry" data-cy="init-enableTelemetry" />
|
||||
<span class="text-muted small"
|
||||
>Allow collection of anonymous statistics. You can find more information about this in our
|
||||
<a class="hyperlink" href="https://www.portainer.io/documentation/in-app-analytics-and-privacy-policy/" target="_blank">privacy policy</a>.</span
|
||||
|
@ -192,12 +192,12 @@
|
|||
<div class="col-sm-9">
|
||||
<input
|
||||
type="password"
|
||||
data-cy="init-secretAccessKeyInput"
|
||||
class="form-control"
|
||||
id="secret_access_key"
|
||||
name="secret_access_key"
|
||||
ng-model="formValues.SecretAccessKey"
|
||||
required
|
||||
data-cy="init-secretAccessKeyInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -208,12 +208,12 @@
|
|||
<div class="col-sm-9">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="init-s3RegionInput"
|
||||
class="form-control"
|
||||
placeholder="default region is us-east-1 if left empty"
|
||||
id="backup-s3-region"
|
||||
name="backup-s3-region"
|
||||
ng-model="formValues.Region"
|
||||
data-cy="init-s3RegionInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -235,12 +235,12 @@
|
|||
<div class="col-sm-9">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="init-s3CompatibleHostInput"
|
||||
class="form-control"
|
||||
id="s3-compatible-host"
|
||||
name="s3-compatible-host"
|
||||
ng-model="formValues.S3CompatibleHost"
|
||||
placeholder="leave empty for AWS S3"
|
||||
data-cy="init-s3CompatibleHostInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -251,12 +251,12 @@
|
|||
<div class="col-sm-9">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="init-backupFilenameInput"
|
||||
class="form-control"
|
||||
id="backup-s3-filename"
|
||||
name="backup-s3-filename"
|
||||
ng-model="formValues.Filename"
|
||||
required
|
||||
data-cy="init-backupFilenameInput"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_name" class="col-sm-3 col-lg-2 control-label text-left">Provider</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" ng-model="$ctrl.provider" disabled />
|
||||
<input type="text" class="form-control" ng-model="$ctrl.provider" disabled data-cy="registries-provider-input" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="registry-name-input"
|
||||
class="form-control"
|
||||
id="registry_name"
|
||||
name="registry_name"
|
||||
|
@ -59,6 +60,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="registry-url-input"
|
||||
class="form-control"
|
||||
id="registry_url"
|
||||
name="registry_url"
|
||||
|
@ -90,6 +92,7 @@
|
|||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="registry-base-url-input"
|
||||
class="form-control"
|
||||
id="registry_base_url"
|
||||
name="registry_base_url"
|
||||
|
@ -141,7 +144,15 @@
|
|||
{{ $ctrl.registry.Type === $ctrl.RegistryTypes.ECR ? 'AWS Access Key' : 'Username' }}
|
||||
</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="credentials_username" name="credentials_username" ng-model="$ctrl.registry.Username" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="credentials_username"
|
||||
name="credentials_username"
|
||||
ng-model="$ctrl.registry.Username"
|
||||
required
|
||||
data-cy="registries-username-credential-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-show="editRegistry.credentials_username.$invalid">
|
||||
|
@ -157,9 +168,7 @@
|
|||
<!-- !credentials-user -->
|
||||
<!-- credentials-password -->
|
||||
<div class="form-group">
|
||||
<label for="credentials_password" class="col-sm-3 col-lg-2 control-label text-left">
|
||||
{{ $ctrl.passwordLabel() }}
|
||||
</label>
|
||||
<label for="credentials_password" class="col-sm-3 col-lg-2 control-label text-left"> {{ $ctrl.passwordLabel() }} </label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input
|
||||
type="password"
|
||||
|
@ -187,7 +196,16 @@
|
|||
<div class="form-group">
|
||||
<label for="registry_region" class="col-sm-3 col-lg-2 control-label required text-left">Region</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="registry_region" name="registry_region" ng-model="$ctrl.registry.Ecr.Region" placeholder="us-west-1" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="registry_region"
|
||||
name="registry_region"
|
||||
ng-model="$ctrl.registry.Ecr.Region"
|
||||
placeholder="us-west-1"
|
||||
required
|
||||
data-cy="registries-region-credential-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-show="editRegistry.registry_region.$invalid">
|
||||
|
@ -224,7 +242,15 @@
|
|||
<div class="form-group">
|
||||
<label for="organisation_name" class="col-sm-3 col-lg-2 control-label required text-left">Organization name</label>
|
||||
<div class="col-sm-9 col-lg-10">
|
||||
<input type="text" class="form-control" id="organisation_name" name="organisation_name" ng-model="$ctrl.registry.Quay.OrganisationName" required />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
id="organisation_name"
|
||||
name="organisation_name"
|
||||
ng-model="$ctrl.registry.Quay.OrganisationName"
|
||||
required
|
||||
data-cy="registries-organisation-credential-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" ng-show="editRegistry.organisation_name.$invalid">
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
<div class="col-sm-10">
|
||||
<select
|
||||
id="user_timeout"
|
||||
data-cy="user-timeout-select"
|
||||
class="form-control"
|
||||
ng-model="settings.UserSessionTimeout"
|
||||
ng-options="opt.value as opt.key for opt in state.availableUserSessionTimeoutOptions"
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
<div class="col-sm-11">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="stack-name-input"
|
||||
class="form-control"
|
||||
ng-model="formValues.Name"
|
||||
id="stack_name"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<div class="col-sm-10">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="tag-name-input"
|
||||
class="form-control"
|
||||
name="name"
|
||||
ng-model="formValues.Name"
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<div class="form-group">
|
||||
<label for="container_name" class="col-sm-2 control-label text-left">Name</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="container_name" class="form-control" ng-model="formValues.name" placeholder="e.g. web (optional)" />
|
||||
<input type="text" name="container_name" class="form-control" ng-model="formValues.name" placeholder="e.g. web (optional)" data-cy="container-name-input" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- !name-input -->
|
||||
|
@ -39,7 +39,7 @@
|
|||
<div class="form-group">
|
||||
<label for="container_network" class="col-sm-2 control-label text-left">Network</label>
|
||||
<div class="col-sm-6">
|
||||
<select class="form-control" ng-options="net.Name for net in availableNetworks | orderBy: 'Name'" ng-model="formValues.network">
|
||||
<select class="form-control" ng-options="net.Name for net in availableNetworks | orderBy: 'Name'" ng-model="formValues.network" data-cy="network-select">
|
||||
<option disabled hidden value="">Select a network</option>
|
||||
</select>
|
||||
</div>
|
||||
|
@ -52,8 +52,8 @@
|
|||
<portainer-tooltip ng-if="var.description" message="var.description"></portainer-tooltip>
|
||||
</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" ng-if="!var.select" ng-model="var.value" id="field_{{ $index }}" />
|
||||
<select class="form-control" ng-if="var.select" ng-model="var.value" id="field_{{ $index }}">
|
||||
<input type="text" class="form-control" ng-if="!var.select" ng-model="var.value" id="field_{{ $index }}" data-cy="env-input-{{ $index}" />
|
||||
<select class="form-control" ng-if="var.select" ng-model="var.value" id="field_{{ $index }}" data-cy="env-select-{{ $index }}">
|
||||
<option selected disabled hidden value="">Select value</option>
|
||||
<option ng-repeat="choice in var.select" value="{{ choice.value }}">{{ choice.text }}</option>
|
||||
</select>
|
||||
|
@ -82,14 +82,20 @@
|
|||
<!-- host-port -->
|
||||
<div class="input-group col-sm-4 input-group-sm">
|
||||
<span class="input-group-addon">host</span>
|
||||
<input type="text" class="form-control" ng-model="portBinding.hostPort" placeholder="e.g. 80 or 1.2.3.4:80 (optional)" />
|
||||
<input
|
||||
type="text"
|
||||
class="form-control"
|
||||
ng-model="portBinding.hostPort"
|
||||
placeholder="e.g. 80 or 1.2.3.4:80 (optional)"
|
||||
data-cy="host-port-input-{{ $index }}"
|
||||
/>
|
||||
</div>
|
||||
<!-- !host-port -->
|
||||
<pr-icon icon="'arrow-right'"></pr-icon>
|
||||
<!-- container-port -->
|
||||
<div class="input-group col-sm-4 input-group-sm">
|
||||
<span class="input-group-addon">container</span>
|
||||
<input type="text" class="form-control" ng-model="portBinding.containerPort" placeholder="e.g. 80" />
|
||||
<input type="text" class="form-control" ng-model="portBinding.containerPort" placeholder="e.g. 80" data-cy="container-port-input-{{ $index }}" />
|
||||
</div>
|
||||
<!-- !container-port -->
|
||||
<!-- protocol-actions -->
|
||||
|
@ -125,7 +131,7 @@
|
|||
<!-- container-path -->
|
||||
<div class="input-group input-group-sm col-sm-6">
|
||||
<span class="input-group-addon">container</span>
|
||||
<input type="text" class="form-control" ng-model="volume.container" placeholder="e.g. /path/in/container" />
|
||||
<input type="text" class="form-control" ng-model="volume.container" placeholder="e.g. /path/in/container" data-cy="container-path-input-{{ $index }}" />
|
||||
</div>
|
||||
<!-- !container-path -->
|
||||
<!-- volume-type -->
|
||||
|
@ -150,7 +156,7 @@
|
|||
<div class="col-sm-12 input-group">
|
||||
<span class="input-group-addon">volume</span>
|
||||
<div class="col-sm-12 input-group">
|
||||
<select class="form-control" ng-model="volume.bind" ng-options="vol.Name as vol.Name for vol in availableVolumes">
|
||||
<select class="form-control" ng-model="volume.bind" ng-options="vol.Name as vol.Name for vol in availableVolumes" data-cy="volume-bind-select">
|
||||
<option value="" disabled selected>Select a volume</option>
|
||||
</select>
|
||||
</div>
|
||||
|
@ -160,7 +166,7 @@
|
|||
<!-- bind -->
|
||||
<div class="input-group input-group-sm col-sm-6" ng-if="volume.type === 'bind'">
|
||||
<span class="input-group-addon">host</span>
|
||||
<input type="text" class="form-control" ng-model="volume.bind" placeholder="e.g. /path/on/host" />
|
||||
<input type="text" class="form-control" ng-model="volume.bind" placeholder="e.g. /path/on/host" data-cy="host-path-input-{{ $index }}" />
|
||||
</div>
|
||||
<!-- !bind -->
|
||||
<!-- read-only -->
|
||||
|
@ -192,7 +198,7 @@
|
|||
<div class="form-inline mt-2" ng-repeat="(idx, host) in state.selectedTemplate.Hosts track by $index">
|
||||
<div class="input-group col-sm-5 input-group-sm">
|
||||
<span class="input-group-addon">value</span>
|
||||
<input type="text" class="form-control" ng-model="state.selectedTemplate.Hosts[idx]" placeholder="e.g. host:IP" />
|
||||
<input type="text" class="form-control" ng-model="state.selectedTemplate.Hosts[idx]" placeholder="e.g. host:IP" data-cy="host-input-{{ $index }}" />
|
||||
</div>
|
||||
<button class="btn btn-light" type="button" ng-click="removeExtraHost($index)">
|
||||
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
|
||||
|
@ -216,11 +222,11 @@
|
|||
<div class="form-inline mt-2" ng-repeat="label in state.selectedTemplate.Labels">
|
||||
<div class="input-group col-sm-5 input-group-sm">
|
||||
<span class="input-group-addon">name</span>
|
||||
<input type="text" class="form-control" ng-model="label.name" placeholder="e.g. com.example.foo" />
|
||||
<input type="text" class="form-control" ng-model="label.name" placeholder="e.g. com.example.foo" data-cy="label-name-input-{{ $index }}" />
|
||||
</div>
|
||||
<div class="input-group col-sm-5 input-group-sm">
|
||||
<span class="input-group-addon">value</span>
|
||||
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" />
|
||||
<input type="text" class="form-control" ng-model="label.value" placeholder="e.g. bar" data-cy="label-value-input-{{ $index }}" />
|
||||
</div>
|
||||
<button class="btn btn-light" type="button" ng-click="removeLabel($index)">
|
||||
<pr-icon icon="'trash-2'" class-name="'icon-secondary icon-md'"></pr-icon>
|
||||
|
@ -238,7 +244,14 @@
|
|||
<div class="form-group mt-4">
|
||||
<label for="container_hostname" class="col-sm-2 control-label text-left">Hostname</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" name="container_hostname" class="form-control" ng-model="state.selectedTemplate.Hostname" placeholder="leave empty to use docker default" />
|
||||
<input
|
||||
type="text"
|
||||
name="container_hostname"
|
||||
class="form-control"
|
||||
ng-model="state.selectedTemplate.Hostname"
|
||||
placeholder="leave empty to use docker default"
|
||||
data-cy="hostname-input"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- !hostname -->
|
||||
|
|
|
@ -16,13 +16,13 @@
|
|||
<div class="input-group">
|
||||
<input
|
||||
type="text"
|
||||
data-cy="user-usernameInput"
|
||||
class="form-control"
|
||||
id="username"
|
||||
ng-model="formValues.Username"
|
||||
ng-change="checkUsernameValidity()"
|
||||
placeholder="e.g. jdoe"
|
||||
auto-focus
|
||||
data-cy="user-usernameInput"
|
||||
/>
|
||||
<span class="input-group-addon">
|
||||
<pr-icon mode="'success'" icon="'check'" ng-if="state.validUsername"></pr-icon>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue