From b4ec3478c4b18178ecca918b9602e7097677b3b9 Mon Sep 17 00:00:00 2001 From: Jeroen Laverman Date: Mon, 6 May 2019 13:47:02 +0200 Subject: [PATCH] Fix localisation in System Configuration View (#822) * Fix localisation: * Regenerate Key * SSL Issuer Hash * Rollouts Tooltip Signed-off-by: Jeroen Laverman * add final Signed-off-by: Jeroen Laverman * add parameter description Signed-off-by: Jeroen Laverman * Review findings Signed-off-by: Jeroen Laverman * remove TODO-ID Signed-off-by: Jeroen Laverman --- .../ui/rollout/DistributionBarHelper.java | 58 +++++++++++++++---- .../ui/rollout/rollout/RolloutListGrid.java | 4 +- .../rolloutgroup/RolloutGroupListGrid.java | 4 +- ...ficateAuthenticationConfigurationItem.java | 4 +- ...yTokenAuthenticationConfigurationItem.java | 2 +- .../src/main/resources/messages.properties | 4 ++ 6 files changed, 59 insertions(+), 17 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/DistributionBarHelper.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/DistributionBarHelper.java index 327f096d7..e6d56dd7c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/DistributionBarHelper.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/DistributionBarHelper.java @@ -14,6 +14,7 @@ import java.util.Map.Entry; import java.util.stream.Collectors; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus.Status; +import org.eclipse.hawkbit.ui.utils.VaadinMessageSource; import org.vaadin.alump.distributionbar.gwt.client.GwtDistributionBar; /** @@ -38,9 +39,12 @@ public final class DistributionBarHelper { * @param statusTotalCountMap * map with status and count * + * @param i18n + * the i18n + * * @return string of format "status1:count,status2:count" */ - public static String getDistributionBarAsHTMLString(final Map statusTotalCountMap) { + public static String getDistributionBarAsHTMLString(final Map statusTotalCountMap, final VaadinMessageSource i18n) { final StringBuilder htmlString = new StringBuilder(); final Map statusMapWithNonZeroValues = getStatusMapWithNonZeroValues(statusTotalCountMap); final Long totalValue = getTotalSizes(statusTotalCountMap); @@ -51,7 +55,7 @@ public final class DistributionBarHelper { htmlString.append(getParentDivStart()); for (final Map.Entry entry : statusMapWithNonZeroValues.entrySet()) { if (entry.getValue() > 0) { - htmlString.append(getPart(partIndex, entry.getKey(), entry.getValue(), totalValue, + htmlString.append(getPart(partIndex, getLabel(entry.getKey(), i18n), entry.getValue(), totalValue, statusMapWithNonZeroValues.size())); partIndex++; } @@ -69,7 +73,7 @@ public final class DistributionBarHelper { */ public static Map getStatusMapWithNonZeroValues(final Map statusTotalCountMap) { return statusTotalCountMap.entrySet().stream().filter(p -> p.getValue() > 0) - .collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue())); + .collect(Collectors.toMap(Entry::getKey, Entry::getValue)); } /** @@ -77,19 +81,54 @@ public final class DistributionBarHelper { * * @param statusCountMap * map with status and count details + * + * @param i18n + * the i18n + * * @return tool tip */ - public static String getTooltip(final Map statusCountMap) { + public static String getTooltip(final Map statusCountMap, final VaadinMessageSource i18n) { final Map nonZeroStatusCountMap = DistributionBarHelper .getStatusMapWithNonZeroValues(statusCountMap); final StringBuilder tooltip = new StringBuilder(); for (final Entry entry : nonZeroStatusCountMap.entrySet()) { - tooltip.append(entry.getKey().toString().toLowerCase()).append(" : ").append(entry.getValue()) + tooltip.append(getLabel(entry.getKey(), i18n)).append(" : ").append(entry.getValue()) .append("
"); } return tooltip.toString(); } + private static String getLabel(final Status status, final VaadinMessageSource i18n) { + + String label; + + switch (status) { + + case SCHEDULED : + label = "label.scheduled"; + break; + case RUNNING : + label = "label.running"; + break; + case ERROR : + label = "label.error"; + break; + case FINISHED : + label = "label.finished"; + break; + case CANCELLED : + label = "label.cancelled"; + break; + case NOTSTARTED : + label = "label.notStarted"; + break; + default : + throw new IllegalStateException("The status " + status + " is not supported."); + } + + return i18n.getMessage(label); + } + private static String getPartStyle(final int partIndex, final int noOfParts, final String customStyle) { final StringBuilder mainStyle = new StringBuilder(); final StringBuilder styleName = new StringBuilder(GwtDistributionBar.CLASSNAME); @@ -104,9 +143,9 @@ public final class DistributionBarHelper { } mainStyle.append(styleName).append(" "); mainStyle.append(DISTRIBUTION_BAR_PART_MAIN_STYLE).append(" "); - mainStyle.append(DISTRIBUTION_BAR_PART_CLASSNAME_PREFIX + partIndex); + mainStyle.append(DISTRIBUTION_BAR_PART_CLASSNAME_PREFIX).append(partIndex); if (customStyle != null) { - mainStyle.append(" ").append("status-bar-part-" + customStyle); + mainStyle.append(" ").append("status-bar-part-").append(customStyle); } return mainStyle.toString(); } @@ -120,10 +159,9 @@ public final class DistributionBarHelper { return String.format(Locale.ENGLISH, "%.3f", val) + "%"; } - private static String getPart(final int partIndex, final Status status, final Long value, final Long totalValue, + private static String getPart(final int partIndex, final String status, final Long value, final Long totalValue, final int noOfParts) { - final String partValue = status.toString().toLowerCase(); - return "
" + value + "
"; } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java index d3df87de5..ab804ca4c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java @@ -647,7 +647,7 @@ public class RolloutListGrid extends AbstractGrid { } else if (ROLLOUT_RENDERER_DATA.equals(cell.getPropertyId())) { description = ((RolloutRendererData) cell.getProperty().getValue()).getName(); } else if (SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS.equals(cell.getPropertyId())) { - description = getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap()); + description = getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap(), i18n); } return description; @@ -799,7 +799,7 @@ public class RolloutListGrid extends AbstractGrid { @Override public String convertToPresentation(final TotalTargetCountStatus value, final Class targetType, final Locale locale) { - return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); + return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap(), i18n); } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java index c90d09ecc..d7cdd53bc 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rolloutgroup/RolloutGroupListGrid.java @@ -271,7 +271,7 @@ public class RolloutGroupListGrid extends AbstractGrid { return ((RolloutRendererData) cell.getProperty().getValue()).getName(); } else if (SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS.equals(cell.getPropertyId())) { return DistributionBarHelper - .getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap()); + .getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap(), i18n); } return null; } @@ -326,7 +326,7 @@ public class RolloutGroupListGrid extends AbstractGrid { @Override public String convertToPresentation(final TotalTargetCountStatus value, final Class targetType, final Locale locale) { - return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap()); + return DistributionBarHelper.getDistributionBarAsHTMLString(value.getStatusTotalCountMap(), i18n); } @Override diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/CertificateAuthenticationConfigurationItem.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/CertificateAuthenticationConfigurationItem.java index 6c63dfaa4..e63e9c010 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/CertificateAuthenticationConfigurationItem.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/CertificateAuthenticationConfigurationItem.java @@ -49,9 +49,9 @@ public class CertificateAuthenticationConfigurationItem extends AbstractBooleanT final HorizontalLayout caRootAuthorityLayout = new HorizontalLayout(); caRootAuthorityLayout.setSpacing(true); - final Label caRootAuthorityLabel = new LabelBuilder().name("SSL Issuer Hash:").buildLabel(); + final Label caRootAuthorityLabel = new LabelBuilder().name(i18n.getMessage("label.configuration.auth.hashField")).buildLabel(); caRootAuthorityLabel.setDescription( - "The SSL Issuer iRules.X509 hash, to validate against the controller request certifcate."); + i18n.getMessage("label.configuration.auth.hashField.tooltip")); caRootAuthorityLabel.setWidthUndefined(); caRootAuthorityTextField = new TextFieldBuilder(TenantConfiguration.VALUE_MAX_SIZE).buildTextComponent(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/GatewaySecurityTokenAuthenticationConfigurationItem.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/GatewaySecurityTokenAuthenticationConfigurationItem.java index b970838cf..b7f24e66c 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/GatewaySecurityTokenAuthenticationConfigurationItem.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/tenantconfiguration/authentication/GatewaySecurityTokenAuthenticationConfigurationItem.java @@ -58,7 +58,7 @@ public class GatewaySecurityTokenAuthenticationConfigurationItem extends Abstrac detailLayout = new VerticalLayout(); detailLayout.setImmediate(true); - final Button gatewaytokenBtn = SPUIComponentProvider.getButton("TODO-ID", "Regenerate Key", "", + final Button gatewaytokenBtn = SPUIComponentProvider.getButton(null, i18n.getMessage("configuration.button.regenerateKey"), "", ValoTheme.BUTTON_TINY + " " + "redicon", true, null, SPUIButtonStyleSmall.class); gatewaytokenBtn.setImmediate(true); gatewaytokenBtn.setIcon(FontAwesome.REFRESH); diff --git a/hawkbit-ui/src/main/resources/messages.properties b/hawkbit-ui/src/main/resources/messages.properties index d138cddc3..938bed19a 100644 --- a/hawkbit-ui/src/main/resources/messages.properties +++ b/hawkbit-ui/src/main/resources/messages.properties @@ -213,6 +213,7 @@ label.filter.custom = Custom label.target.filter.truncated={0} targets has been truncated in the list due the target size limit of {1}, use filters to reduce the targets to be shown label.inactive = In-active label.finished = Finished +label.notStarted = Not Started label.error = Error label.warning = Warning label.running = Running @@ -232,6 +233,8 @@ label.target.attributes.update.pending = Update pending.. label.target.lastpolldate = Last poll : label.tag.name = Tag name label.configuration.auth.header = Allow targets to authenticate via a certificate authenticated by a reverse proxy +label.configuration.auth.hashField = SSL Issuer Hash +label.configuration.auth.hashField.tooltip = The SSL Issuer iRules.X509 hash, to validate against the controller request certificate. label.configuration.auth.gatewaytoken = Allow a gateway to authenticate and manage multiple targets through a gateway security token label.configuration.auth.targettoken = Allow targets to authenticate directly with their target security token label.configuration.repository.autoclose.action = Autoclose running actions when a new distribution set is assigned @@ -548,6 +551,7 @@ configuration.defaultdistributionset.title=Distribution Configuration configuration.defaultdistributionset.select.label=Select the default distribution set type: configuration.savebutton.tooltip=Save Configurations configuration.cancellbutton.tooltip=Cancel Configurations +configuration.button.regenerateKey = Regenerate Key configuration.authentication.title=Authentication Configuration configuration.repository.title=Repository Configuration configuration.polling.title=Polling Configuration