From 470ceb43517f29a17da73b62af1e3a0e4dfd53f8 Mon Sep 17 00:00:00 2001 From: davidjumani Date: Mon, 13 Sep 2021 20:20:19 +0530 Subject: [PATCH] ui: Allow searching in dropdowns (#5395) --- .../components/header/SamlDomainSwitcher.vue | 5 ++ ui/src/components/view/DedicateDomain.vue | 19 +++++- ui/src/components/view/FormView.vue | 7 ++- ui/src/components/view/SearchView.vue | 5 ++ ui/src/views/AutogenView.vue | 17 ++++- ui/src/views/auth/Login.vue | 22 ++++++- ui/src/views/compute/AssignInstance.vue | 46 ++++++++++++-- ui/src/views/compute/AttachIso.vue | 7 ++- ui/src/views/compute/CreateSnapshotWizard.vue | 8 ++- ui/src/views/compute/DeployVM.vue | 18 +++++- ui/src/views/compute/DestroyVM.vue | 7 ++- ui/src/views/compute/InstanceTab.vue | 23 +++++-- ui/src/views/compute/MigrateVMStorage.vue | 7 ++- ui/src/views/compute/backup/FormSchedule.vue | 14 +++++ .../compute/wizard/MultiDiskSelection.vue | 7 ++- .../compute/wizard/MultiNetworkSelection.vue | 7 ++- ui/src/views/dashboard/CapacityDashboard.vue | 9 ++- ui/src/views/iam/AddAccount.vue | 29 +++++++-- ui/src/views/iam/AddLdapAccount.vue | 41 +++++++++--- ui/src/views/iam/AddUser.vue | 29 +++++++-- ui/src/views/iam/ConfigureSamlSsoAuth.vue | 7 ++- ui/src/views/iam/CreateRole.vue | 14 ++++- ui/src/views/iam/DomainActionForm.vue | 12 +++- ui/src/views/iam/EditUser.vue | 8 ++- ui/src/views/iam/ImportRole.vue | 7 ++- ui/src/views/iam/PermissionEditable.vue | 7 ++- .../views/image/RegisterOrUploadTemplate.vue | 31 +++++++++- .../image/UpdateTemplateIsoPermissions.vue | 31 ++++++++-- ui/src/views/infra/AddPrimaryStorage.vue | 62 ++++++++++++++++--- ui/src/views/infra/AddSecondaryStorage.vue | 12 +++- ui/src/views/infra/ClusterAdd.vue | 27 +++++++- ui/src/views/infra/HostAdd.vue | 34 ++++++++-- ui/src/views/infra/MigrateData.vue | 18 +++++- ui/src/views/infra/PodAdd.vue | 7 ++- .../views/infra/network/DedicatedVLANTab.vue | 28 +++++++-- .../views/infra/network/EditTrafficLabel.vue | 7 ++- .../infra/network/IpRangesTabManagement.vue | 6 +- .../views/infra/network/IpRangesTabPublic.vue | 22 ++++++- .../infra/network/IpRangesTabStorage.vue | 6 +- .../infra/network/ServiceProvidersTab.vue | 7 ++- .../network/providers/AddF5LoadBalancer.vue | 7 ++- .../providers/AddNetscalerLoadBalancer.vue | 7 ++- .../network/providers/AddPaloAltoFirewall.vue | 7 ++- .../network/providers/AddSrxFirewall.vue | 7 ++- ui/src/views/infra/zone/StaticInputsForm.vue | 6 +- .../ZoneWizardPhysicalNetworkSetupStep.vue | 20 +++++- .../infra/zone/ZoneWizardZoneDetailsStep.vue | 19 ++++-- ui/src/views/network/AclListRulesTab.vue | 24 ++++++- ui/src/views/network/CreateVlanIpRange.vue | 6 +- ui/src/views/network/CreateVpc.vue | 14 ++++- .../network/CreateVpnCustomerGateway.vue | 49 ++++++++++++--- ui/src/views/network/EgressRulesTab.vue | 10 ++- ui/src/views/network/EnableStaticNat.vue | 14 ++++- ui/src/views/network/FirewallRules.vue | 10 ++- .../network/IngressEgressRuleConfigure.vue | 7 ++- .../views/network/InternalLBAssignVmForm.vue | 6 +- ui/src/views/network/IpAddressesTab.vue | 12 +++- ui/src/views/network/LoadBalancing.vue | 56 ++++++++++++++--- ui/src/views/network/PortForwarding.vue | 22 ++++++- ui/src/views/network/VpcTab.vue | 26 +++++++- ui/src/views/network/VpcTiersTab.vue | 21 ++++++- ui/src/views/offering/AddComputeOffering.vue | 7 ++- ui/src/views/offering/AddDiskOffering.vue | 7 ++- .../views/offering/ImportBackupOffering.vue | 15 ++++- .../project/AddAccountOrUserToProject.vue | 30 ++++++--- ui/src/views/storage/AttachVolume.vue | 7 ++- .../storage/CreateSnapshotFromVMSnapshot.vue | 6 +- ui/src/views/storage/CreateVolume.vue | 13 +++- ui/src/views/storage/FormSchedule.vue | 22 +++++-- ui/src/views/storage/MigrateVolume.vue | 16 ++++- ui/src/views/storage/ResizeVolume.vue | 6 +- .../storage/RestoreAttachBackupVolume.vue | 15 ++++- ui/src/views/storage/UploadLocalVolume.vue | 14 ++++- 73 files changed, 1012 insertions(+), 176 deletions(-) diff --git a/ui/src/components/header/SamlDomainSwitcher.vue b/ui/src/components/header/SamlDomainSwitcher.vue index c1931943835..30c15833719 100644 --- a/ui/src/components/header/SamlDomainSwitcher.vue +++ b/ui/src/components/header/SamlDomainSwitcher.vue @@ -22,6 +22,11 @@ :loading="loading" :defaultValue="currentAccount" :value="currentAccount" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" @change="changeAccount" @focus="fetchData" > diff --git a/ui/src/components/view/DedicateDomain.vue b/ui/src/components/view/DedicateDomain.vue index 3cdd80434ad..0ae08d51c2f 100644 --- a/ui/src/components/view/DedicateDomain.vue +++ b/ui/src/components/view/DedicateDomain.vue @@ -21,7 +21,15 @@

{{ $t('label.domain') }}*

{{ $t('label.required') }}

- + {{ domain.path || domain.name || domain.description }} @@ -30,7 +38,14 @@

{{ $t('label.account') }}

- + {{ account.name }} diff --git a/ui/src/components/view/FormView.vue b/ui/src/components/view/FormView.vue index 020f280b540..76a16bec69a 100644 --- a/ui/src/components/view/FormView.vue +++ b/ui/src/components/view/FormView.vue @@ -52,8 +52,11 @@ rules: [{ required: field.required, message: `${this.$t('message.error.select')}` }] }]" :placeholder="field.description" - - > + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" > {{ opt.name || opt.description }} diff --git a/ui/src/components/view/SearchView.vue b/ui/src/components/view/SearchView.vue index 29e19024ce6..86ffe88cdca 100644 --- a/ui/src/components/view/SearchView.vue +++ b/ui/src/components/view/SearchView.vue @@ -58,6 +58,11 @@ v-decorator="[field.name, { initialValue: fieldValues[field.name] || null }]" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" :loading="field.loading"> + @change="changeFilter" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" > {{ $t('label.all') }} @@ -215,6 +220,11 @@ }]" :placeholder="field.description" :autoFocus="fieldIndex === firstIndex" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" > {{ }} @@ -274,6 +284,11 @@ }]" :placeholder="field.description" :autoFocus="fieldIndex === firstIndex" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" > {{ opt.name && opt.type ? opt.name + ' (' + opt.type + ')' : opt.name || opt.description }} diff --git a/ui/src/views/auth/Login.vue b/ui/src/views/auth/Login.vue index 89d11cff7c2..53099644ab1 100644 --- a/ui/src/views/auth/Login.vue +++ b/ui/src/views/auth/Login.vue @@ -46,7 +46,12 @@ initialValue: (server.apiHost || '') + server.apiBase } ]" - @change="onChangeServer"> + @change="onChangeServer" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" > {{ item.name }} @@ -113,7 +118,12 @@ initialValue: (server.apiHost || '') + server.apiBase } ]" - @change="onChangeServer"> + @change="onChangeServer" + showSearch + optionFilterProp="children" + :filterOption="(input, option) => { + return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0 + }" > {{ item.name }} @@ -121,7 +131,13 @@ - + {{ idp.orgName }} diff --git a/ui/src/views/compute/AssignInstance.vue b/ui/src/views/compute/AssignInstance.vue index 23da3e2e85d..085c53fae79 100644 --- a/ui/src/views/compute/AssignInstance.vue +++ b/ui/src/views/compute/AssignInstance.vue @@ -29,7 +29,15 @@

{{ $t('label.accounttype') }}

- + {{ $t('label.account') }} {{ $t('label.project') }} @@ -37,7 +45,15 @@

*{{ $t('label.domain') }}

- + {{ domain.path || domain.name || domain.description }} @@ -47,7 +63,14 @@