Skip to content

Commit

Permalink
fix label and placeholder for SecretProviderPanel
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Apr 10, 2024
1 parent b9872cd commit ae815d2
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="d-flex flex-column">
<label class="text-body">
<wicket:message key="SecretProviderPanel.label"/>
</label>
<div class="input-group">
<div class="input-group-prepend">
<button aria-expanded="false" type="button" class="btn btn-sm btn-default dropdown-toggle dropdown-icon" data-toggle="dropdown"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,19 @@
import org.apache.wicket.Application;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.apache.wicket.model.Model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;

/**
* Panel for SecretProvider
Expand All @@ -45,16 +48,40 @@ public class SecretProviderPanel extends BasePanel<ExternalDataType> {
private static final String ID_PROVIDER_IDENTIFIER_LABEL = "providerIdentifierLabel";
private static final String ID_PROVIDER_KEY = "providerKey";

private LoadableDetachableModel<List<SecretProvider>> secretProviders;

public SecretProviderPanel(String id, IModel<ExternalDataType> model) {
super(id, model);
}

@Override
protected void onInitialize() {
super.onInitialize();
initModels();
initLayout();
}

private void initModels() {
secretProviders = new LoadableDetachableModel<>() {
@Override
protected List<SecretProvider> load() {
ArrayList<SecretProvider> identifiers = new ArrayList<>();

Protector protector = getProtector();
if (protector instanceof SecretsResolver resolver) {
identifiers.addAll(
getParentPage().getSecretsProviderManager().getSecretsProviderDescriptions(resolver)
.entrySet().stream()
.map(entry -> new SecretProvider(
entry.getKey(),
LocalizationUtil.translatePolyString(entry.getValue().getLabel())))
.toList());
}
return identifiers;
}
};
}

private void initLayout() {

AjaxButton dropdownButton = new AjaxButton(ID_PROVIDER_IDENTIFIER_DROPDOWN_BUTTON) {
Expand All @@ -71,7 +98,10 @@ public String getObject() {
if (getModelObject() == null || StringUtils.isEmpty(getModelObject().getProvider())) {
return LocalizationUtil.translate("SecretProviderPanel.emptyIdentifier");
}
return getModelObject().getProvider();
Optional<SecretProvider> secretProvider = getIdentifiers().stream()
.filter(provider -> provider.identifier.equals(getModelObject().getProvider()))
.findFirst();
return secretProvider.isPresent() ? secretProvider.get().displayName : getModelObject().getProvider();
}

@Override
Expand Down Expand Up @@ -159,6 +189,9 @@ protected void onEvent(AjaxRequestTarget target) {
refreshFeedback(target);
}
});
providerKeyPanel.getBaseFormComponent().add(AttributeAppender.append(
"placeholder",
LocalizationUtil.translate("SecretProviderPanel.key.placeholder")));
providerKeyPanel.setOutputMarkupId(true);
add(providerKeyPanel);
}
Expand All @@ -167,20 +200,7 @@ protected void refreshFeedback(AjaxRequestTarget target) {
}

private List<SecretProvider> getIdentifiers() {

ArrayList<SecretProvider> identifiers = new ArrayList<>();

Protector protector = getProtector();
if (protector instanceof SecretsResolver resolver) {
identifiers.addAll(
getParentPage().getSecretsProviderManager().getSecretsProviderDescriptions(resolver)
.entrySet().stream()
.map(entry -> new SecretProvider(
entry.getKey(),
LocalizationUtil.translatePolyString(entry.getValue().getLabel())))
.toList());
}
return identifiers;
return secretProviders.getObject();
}

private Protector getProtector() {
Expand All @@ -199,7 +219,7 @@ private SecretProvider(String identifier, String displayName) {
}

public FormComponent getKeyTextPanel() {
return ((TextPanel)get(ID_PROVIDER_KEY)).getBaseFormComponent();
return ((TextPanel) get(ID_PROVIDER_KEY)).getBaseFormComponent();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public String toJsConfiguration() {
.append(": '")
.append(LocalizationUtil.translate("DateTimePickerOptions." + key))
.append("', "));
sb.append("dayViewHeaderFormat: { month: 'long', year: 'numeric', hour: '2-digit' }, ");
sb.append("dayViewHeaderFormat: { month: 'long', year: 'numeric'}, ");

@NotNull Locale locale = LocalizationUtil.findLocale();
sb.append("locale: '").append(locale.toLanguageTag()).append("', ");
Expand Down

0 comments on commit ae815d2

Please sign in to comment.