Remove String manipulations concerning whitespaces (#633)

* Add html tag Validator on strings. Add string trim.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Revert unintended changes. Sonar issues.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Remove weired comment.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Remove unnecessary trim operations. Trim is performed by the repository.

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Refactor

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Refactor

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* redo refactor

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Extend mandatory check in CommonDialogWindow, trim string before check

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Raise EclipseLink due to validation problem.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Fix permission.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Insert EmptyStringValidator

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Colour field test.

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>

* Assign EmptyStringValidator to required TextFields

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Remove String validation of CommonDialogWindow mandatory check

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Refactor

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>

* Extend EmptyStringValidator to check the max allowed characters in field

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>
This commit is contained in:
Melanie Retter
2018-02-19 08:27:54 +01:00
committed by Michael Hirsch
parent 5729e00c8b
commit 87969bdd8f
33 changed files with 283 additions and 424 deletions

View File

@@ -114,8 +114,8 @@ public interface DeploymentManagement {
* do not exist
*/
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY_AND_UPDATE_TARGET)
DistributionSetAssignmentResult assignDistributionSet(long dsID,
@NotEmpty Collection<TargetWithActionType> targets, String actionMessage);
DistributionSetAssignmentResult assignDistributionSet(long dsID, @NotEmpty Collection<TargetWithActionType> targets,
String actionMessage);
/**
* Method registers an "offline" assignment, i.e. adds a completed action
@@ -407,8 +407,7 @@ public interface DeploymentManagement {
* @return the amount of started actions
*/
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
long startScheduledActionsByRolloutGroupParent(long rolloutId, long distributionSetId,
Long rolloutGroupParentId);
long startScheduledActionsByRolloutGroupParent(long rolloutId, long distributionSetId, Long rolloutGroupParentId);
/**
* All {@link ActionStatus} entries in the repository.

View File

@@ -197,8 +197,8 @@ public interface DistributionSetManagement
* of distribution set with given ID does not exist
*/
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_REPOSITORY)
Page<DistributionSetMetadata> findMetaDataByDistributionSetIdAndRsql(@NotNull Pageable pageable,
long setId, @NotNull String rsqlParam);
Page<DistributionSetMetadata> findMetaDataByDistributionSetIdAndRsql(@NotNull Pageable pageable, long setId,
@NotNull String rsqlParam);
/**
* finds all {@link DistributionSet}s.

View File

@@ -508,8 +508,8 @@ public interface TargetManagement {
* if distribution set with given ID does not exist
*/
@PreAuthorize(SpringEvalExpressions.HAS_AUTH_READ_TARGET)
Slice<Target> findByFilterOrderByLinkedDistributionSet(@NotNull Pageable pageable,
long orderByDistributionId, @NotNull FilterParams filterParams);
Slice<Target> findByFilterOrderByLinkedDistributionSet(@NotNull Pageable pageable, long orderByDistributionId,
@NotNull FilterParams filterParams);
/**
* Find targets by tag name.

View File

@@ -76,9 +76,7 @@ public class BaseSwModuleBeanQuery extends AbstractBeanQuery<ProxyBaseSoftwareMo
final Slice<SoftwareModule> swModuleBeans;
if (type == null && StringUtils.isEmpty(searchText)) {
swModuleBeans = getSoftwareManagementService()
.findAll(new OffsetBasedPageRequest(startIndex, count, sort));
swModuleBeans = getSoftwareManagementService().findAll(new OffsetBasedPageRequest(startIndex, count, sort));
} else {
swModuleBeans = getSoftwareManagementService()
.findByTextAndType(new OffsetBasedPageRequest(startIndex, count, sort), searchText, type);

View File

@@ -20,6 +20,7 @@ import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleEvent;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener;
import org.eclipse.hawkbit.ui.common.EmptyStringValidator;
import org.eclipse.hawkbit.ui.common.SoftwareModuleTypeBeanQuery;
import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder;
import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder;
@@ -133,14 +134,13 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent {
}
private void addNewBaseSoftware() {
final String name = HawkbitCommonUtil.trimAndNullIfEmpty(nameTextField.getValue());
final String version = HawkbitCommonUtil.trimAndNullIfEmpty(versionTextField.getValue());
final String vendor = HawkbitCommonUtil.trimAndNullIfEmpty(vendorTextField.getValue());
final String description = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue());
final String name = nameTextField.getValue();
final String version = versionTextField.getValue();
final String vendor = vendorTextField.getValue();
final String description = descTextArea.getValue();
final String type = typeComboBox.getValue() != null ? typeComboBox.getValue().toString() : null;
final SoftwareModuleType softwareModuleTypeByName = softwareModuleTypeManagement
.getByName(type)
final SoftwareModuleType softwareModuleTypeByName = softwareModuleTypeManagement.getByName(type)
.orElseThrow(() -> new EntityNotFoundException(SoftwareModuleType.class, type));
final SoftwareModuleCreate softwareModule = entityFactory.softwareModule().create()
.type(softwareModuleTypeByName).name(name).version(version).description(description).vendor(vendor);
@@ -172,9 +172,8 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent {
* updates a softwareModule
*/
private void updateSwModule() {
final SoftwareModule newSWModule = softwareModuleManagement
.update(entityFactory.softwareModule().update(baseSwModuleId)
.description(descTextArea.getValue()).vendor(vendorTextField.getValue()));
final SoftwareModule newSWModule = softwareModuleManagement.update(entityFactory.softwareModule()
.update(baseSwModuleId).description(descTextArea.getValue()).vendor(vendorTextField.getValue()));
if (newSWModule != null) {
uiNotifcation.displaySuccess(i18n.getMessage("message.save.success",
new Object[] { newSWModule.getName() + ":" + newSWModule.getVersion() }));
@@ -213,8 +212,10 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent {
private void createRequiredComponents() {
nameTextField = createTextField("textfield.name", UIComponentIdProvider.SOFT_MODULE_NAME);
nameTextField.addValidator(new EmptyStringValidator(i18n));
versionTextField = createTextField("textfield.version", UIComponentIdProvider.SOFT_MODULE_VERSION);
versionTextField.addValidator(new EmptyStringValidator(i18n));
vendorTextField = createTextField("textfield.vendor", UIComponentIdProvider.SOFT_MODULE_VENDOR);
vendorTextField.setRequired(false);
@@ -292,8 +293,8 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent {
softwareModuleManagement.get(baseSwModuleId).ifPresent(swModule -> {
nameTextField.setValue(swModule.getName());
versionTextField.setValue(swModule.getVersion());
vendorTextField.setValue(HawkbitCommonUtil.trimAndNullIfEmpty(swModule.getVendor()));
descTextArea.setValue(HawkbitCommonUtil.trimAndNullIfEmpty(swModule.getDescription()));
vendorTextField.setValue(swModule.getVendor());
descTextArea.setValue(swModule.getDescription());
if (swModule.getType().isDeleted()) {
typeComboBox.addItem(swModule.getType().getName());

View File

@@ -20,6 +20,7 @@ import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleTypeEvent;
import org.eclipse.hawkbit.ui.artifacts.event.SoftwareModuleTypeEvent.SoftwareModuleTypeEnum;
import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants;
import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper;
import org.eclipse.hawkbit.ui.common.EmptyStringValidator;
import org.eclipse.hawkbit.ui.common.SoftwareModuleTypeBeanQuery;
import org.eclipse.hawkbit.ui.common.builder.LabelBuilder;
import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder;
@@ -129,7 +130,7 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout<Softw
private TextField createTextField(final String in18Key, final String styleName, final String id) {
return new TextFieldBuilder().caption(i18n.getMessage(in18Key))
.styleName(ValoTheme.TEXTFIELD_TINY + " " + styleName).required(true).prompt(i18n.getMessage(in18Key))
.immediate(true).id(id).buildTextComponent();
.validator(new EmptyStringValidator(i18n)).immediate(true).id(id).buildTextComponent();
}
@Override
@@ -250,9 +251,9 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout<Softw
private void createNewSWModuleType() {
int assignNumber = 0;
final String colorPicked = ColorPickerHelper.getColorPickedString(getColorPickerLayout().getSelPreview());
final String typeNameValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagName.getValue());
final String typeKeyValue = HawkbitCommonUtil.trimAndNullIfEmpty(typeKey.getValue());
final String typeDescValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagDesc.getValue());
final String typeNameValue = tagName.getValue();
final String typeKeyValue = typeKey.getValue();
final String typeDescValue = tagDesc.getValue();
final String assignValue = (String) assignOptiongroup.getValue();
if (assignValue != null && assignValue.equalsIgnoreCase(singleAssignStr)) {
assignNumber = 1;
@@ -261,8 +262,8 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout<Softw
}
if (typeNameValue != null && typeKeyValue != null) {
final SoftwareModuleType newSWType = softwareModuleTypeManagement.create(
entityFactory.softwareModuleType().create().key(typeKeyValue).name(typeNameValue)
final SoftwareModuleType newSWType = softwareModuleTypeManagement
.create(entityFactory.softwareModuleType().create().key(typeKeyValue).name(typeNameValue)
.description(typeDescValue).colour(colorPicked).maxAssignments(assignNumber));
uiNotification
.displaySuccess(i18n.getMessage("message.save.success", new Object[] { newSWType.getName() }));
@@ -274,8 +275,8 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout<Softw
}
private void updateSWModuleType(final SoftwareModuleType existingType) {
softwareModuleTypeManagement.update(
entityFactory.softwareModuleType().update(existingType.getId()).description(tagDesc.getValue())
softwareModuleTypeManagement
.update(entityFactory.softwareModuleType().update(existingType.getId()).description(tagDesc.getValue())
.colour(ColorPickerHelper.getColorPickedString(getColorPickerLayout().getSelPreview())));
uiNotification
.displaySuccess(i18n.getMessage("message.update.success", new Object[] { existingType.getName() }));

View File

@@ -36,6 +36,7 @@ import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import org.vaadin.spring.events.EventBus.UIEventBus;
import com.vaadin.data.Item;
@@ -102,7 +103,7 @@ public class UploadConfirmationWindow implements Button.ClickListener {
private final UploadLayout uploadLayout;
private IndexedContainer tabelContainer;
private IndexedContainer tableContainer;
private final List<UploadStatus> uploadResultList = new ArrayList<>();
@@ -145,9 +146,9 @@ public class UploadConfirmationWindow implements Button.ClickListener {
private Boolean preUploadValidation(final List<String> itemIds) {
Boolean validationSuccess = true;
for (final String itemId : itemIds) {
final Item item = tabelContainer.getItem(itemId);
final Item item = tableContainer.getItem(itemId);
final String providedFileName = (String) item.getItemProperty(FILE_NAME).getValue();
if (HawkbitCommonUtil.trimAndNullIfEmpty(providedFileName) == null) {
if (!StringUtils.hasText(providedFileName)) {
validationSuccess = false;
break;
}
@@ -189,9 +190,11 @@ public class UploadConfirmationWindow implements Button.ClickListener {
*/
private void setWarningIcon(final Label warningIconLabel, final String fileName, final Object itemId) {
final Item item = uploadDetailsTable.getItem(itemId);
if (HawkbitCommonUtil.trimAndNullIfEmpty(fileName) != null) {
if (StringUtils.hasText(fileName)) {
final String fileNameTrimmed = StringUtils.trimWhitespace(fileName);
final Long baseSwId = (Long) item.getItemProperty(BASE_SOFTWARE_ID).getValue();
final Optional<Artifact> artifact = artifactManagement.getByFilenameAndSoftwareModule(fileName, baseSwId);
final Optional<Artifact> artifact = artifactManagement.getByFilenameAndSoftwareModule(fileNameTrimmed,
baseSwId);
if (artifact.isPresent()) {
warningIconLabel.setVisible(true);
if (isErrorIcon(warningIconLabel)) {
@@ -199,7 +202,7 @@ public class UploadConfirmationWindow implements Button.ClickListener {
redErrorLabelCount--;
}
warningIconLabel.setDescription(i18n.getMessage(ALREADY_EXISTS_MSG));
if (checkForDuplicate(fileName, itemId, baseSwId)) {
if (checkForDuplicate(fileNameTrimmed, itemId, baseSwId)) {
warningIconLabel.setDescription(i18n.getMessage("message.duplicate.filename"));
warningIconLabel.addStyleName(SPUIStyleDefinitions.ERROR_LABEL);
redErrorLabelCount++;
@@ -216,8 +219,8 @@ public class UploadConfirmationWindow implements Button.ClickListener {
}
private Boolean checkForDuplicate(final String fileName, final Object itemId, final Long currentBaseSwId) {
for (final Object newItemId : tabelContainer.getItemIds()) {
final Item newItem = tabelContainer.getItem(newItemId);
for (final Object newItemId : tableContainer.getItemIds()) {
final Item newItem = tableContainer.getItem(newItemId);
final Long newBaseSwId = (Long) newItem.getItemProperty(BASE_SOFTWARE_ID).getValue();
final String newFileName = (String) newItem.getItemProperty(FILE_NAME).getValue();
if (!newItemId.equals(itemId) && newBaseSwId.equals(currentBaseSwId) && newFileName.equals(fileName)) {
@@ -232,7 +235,7 @@ public class UploadConfirmationWindow implements Button.ClickListener {
final String swNameVersion = HawkbitCommonUtil.getFormattedNameVersion(
customFile.getBaseSoftwareModuleName(), customFile.getBaseSoftwareModuleVersion());
final String itemId = swNameVersion + "/" + customFile.getFileName();
final Item newItem = tabelContainer.addItem(itemId);
final Item newItem = tableContainer.addItem(itemId);
final SoftwareModule bSoftwareModule = artifactUploadState.getBaseSwModuleList().get(swNameVersion);
newItem.getItemProperty(BASE_SOFTWARE_ID).setValue(bSoftwareModule.getId());
@@ -328,8 +331,8 @@ public class UploadConfirmationWindow implements Button.ClickListener {
* file name before modification
*/
private void modifyIconOfSameSwId(final Object itemId, final Long oldSwId, final String oldFileName) {
for (final Object rowId : tabelContainer.getItemIds()) {
final Item newItem = tabelContainer.getItem(rowId);
for (final Object rowId : tableContainer.getItemIds()) {
final Item newItem = tableContainer.getItem(rowId);
final Long newBaseSwId = (Long) newItem.getItemProperty(BASE_SOFTWARE_ID).getValue();
final String newFileName = (String) newItem.getItemProperty(FILE_NAME).getValue();
if (!rowId.equals(itemId) && newBaseSwId.equals(oldSwId) && newFileName.equals(oldFileName)) {
@@ -380,9 +383,9 @@ public class UploadConfirmationWindow implements Button.ClickListener {
}
private void newFileNameIsDuplicate(final Object itemId, final Long currentSwId, final String currentChangedText) {
for (final Object rowId : tabelContainer.getItemIds()) {
final Item currentItem = tabelContainer.getItem(itemId);
final Item newItem = tabelContainer.getItem(rowId);
for (final Object rowId : tableContainer.getItemIds()) {
final Item currentItem = tableContainer.getItem(itemId);
final Item newItem = tableContainer.getItem(rowId);
final Long newBaseSwId = (Long) newItem.getItemProperty(BASE_SOFTWARE_ID).getValue();
final String fileName = (String) newItem.getItemProperty(FILE_NAME).getValue();
if (!rowId.equals(itemId) && newBaseSwId.equals(currentSwId) && fileName.equals(currentChangedText)) {
@@ -406,8 +409,8 @@ public class UploadConfirmationWindow implements Button.ClickListener {
Label errorLabel = null;
int errorLabelCount = 0;
int duplicateCount = 0;
for (final Object rowId : tabelContainer.getItemIds()) {
final Item newItem = tabelContainer.getItem(rowId);
for (final Object rowId : tableContainer.getItemIds()) {
final Item newItem = tableContainer.getItem(rowId);
final Long newBaseSwId = (Long) newItem.getItemProperty(BASE_SOFTWARE_ID).getValue();
final String newFileName = (String) newItem.getItemProperty(FILE_NAME).getValue();
if (!rowId.equals(itemId) && newBaseSwId.equals(currentSwId) && newFileName.equals(oldFileName)) {
@@ -461,19 +464,19 @@ public class UploadConfirmationWindow implements Button.ClickListener {
}
private void setTableContainer() {
tabelContainer = new IndexedContainer();
tabelContainer.addContainerProperty(FILE_NAME_LAYOUT, HorizontalLayout.class, null);
tabelContainer.addContainerProperty(SW_MODULE_NAME, Label.class, null);
tabelContainer.addContainerProperty(SHA1_CHECKSUM, TextField.class, null);
tabelContainer.addContainerProperty(MD5_CHECKSUM, TextField.class, null);
tabelContainer.addContainerProperty(SIZE, Long.class, null);
tabelContainer.addContainerProperty(ACTION, Button.class, "");
tabelContainer.addContainerProperty(FILE_NAME, String.class, null);
tabelContainer.addContainerProperty(BASE_SOFTWARE_ID, Long.class, null);
tabelContainer.addContainerProperty(WARNING_ICON, Label.class, null);
tabelContainer.addContainerProperty(CUSTOM_FILE, CustomFile.class, null);
tableContainer = new IndexedContainer();
tableContainer.addContainerProperty(FILE_NAME_LAYOUT, HorizontalLayout.class, null);
tableContainer.addContainerProperty(SW_MODULE_NAME, Label.class, null);
tableContainer.addContainerProperty(SHA1_CHECKSUM, TextField.class, null);
tableContainer.addContainerProperty(MD5_CHECKSUM, TextField.class, null);
tableContainer.addContainerProperty(SIZE, Long.class, null);
tableContainer.addContainerProperty(ACTION, Button.class, "");
tableContainer.addContainerProperty(FILE_NAME, String.class, null);
tableContainer.addContainerProperty(BASE_SOFTWARE_ID, Long.class, null);
tableContainer.addContainerProperty(WARNING_ICON, Label.class, null);
tableContainer.addContainerProperty(CUSTOM_FILE, CustomFile.class, null);
uploadDetailsTable.setContainerDataSource(tabelContainer);
uploadDetailsTable.setContainerDataSource(tableContainer);
uploadDetailsTable.setPageLength(10);
uploadDetailsTable.setColumnHeader(FILE_NAME_LAYOUT, i18n.getMessage("upload.file.name"));
uploadDetailsTable.setColumnHeader(SW_MODULE_NAME, i18n.getMessage("upload.swModuleTable.header"));
@@ -619,9 +622,14 @@ public class UploadConfirmationWindow implements Button.ClickListener {
final SoftwareModule baseSw) {
final File newFile = new File(filePath);
final Item item = tabelContainer.getItem(itemId);
final String sha1Checksum = ((TextField) item.getItemProperty(SHA1_CHECKSUM).getValue()).getValue();
final String md5Checksum = ((TextField) item.getItemProperty(MD5_CHECKSUM).getValue()).getValue();
final Item item = tableContainer.getItem(itemId);
// We have to make sure that null is assigned to sha1Checksum and
// md5Checksum if no alphanumeric value is provided. Empty String will
// fail
final String sha1Checksum = HawkbitCommonUtil
.trimAndNullIfEmpty(((TextField) item.getItemProperty(SHA1_CHECKSUM).getValue()).getValue());
final String md5Checksum = HawkbitCommonUtil
.trimAndNullIfEmpty(((TextField) item.getItemProperty(MD5_CHECKSUM).getValue()).getValue());
final String providedFileName = (String) item.getItemProperty(FILE_NAME).getValue();
final CustomFile customFile = (CustomFile) item.getItemProperty(CUSTOM_FILE).getValue();
final String[] itemDet = itemId.split("/");
@@ -629,9 +637,8 @@ public class UploadConfirmationWindow implements Button.ClickListener {
try (FileInputStream fis = new FileInputStream(newFile)) {
artifactManagement.create(fis, baseSw.getId(), providedFileName,
HawkbitCommonUtil.trimAndNullIfEmpty(md5Checksum),
HawkbitCommonUtil.trimAndNullIfEmpty(sha1Checksum), true, customFile.getMimeType());
artifactManagement.create(fis, baseSw.getId(), providedFileName, md5Checksum, sha1Checksum, true,
customFile.getMimeType());
saveUploadStatus(providedFileName, swModuleNameVersion, SPUILabelDefinitions.SUCCESS, "");
} catch (final ArtifactUploadFailedException | InvalidSHA1HashException | InvalidMD5HashException

View File

@@ -239,7 +239,7 @@ public abstract class AbstractMetadataPopupLayout<E extends NamedVersionedEntity
final TextField keyField = new TextFieldBuilder().caption(i18n.getMessage("textfield.key")).required(true)
.prompt(i18n.getMessage("textfield.key")).immediate(true)
.id(UIComponentIdProvider.METADATA_KEY_FIELD_ID).maxLengthAllowed(MetaData.KEY_MAX_SIZE)
.buildTextComponent();
.validator(new EmptyStringValidator(i18n)).buildTextComponent();
keyField.addTextChangeListener(this::onKeyChange);
keyField.setTextChangeEventMode(TextChangeEventMode.EAGER);
keyField.setWidth("100%");
@@ -248,8 +248,9 @@ public abstract class AbstractMetadataPopupLayout<E extends NamedVersionedEntity
private TextArea createValueTextField() {
valueTextArea = new TextAreaBuilder().caption(i18n.getMessage("textfield.value")).required(true)
.prompt(i18n.getMessage("textfield.value")).immediate(true).id(UIComponentIdProvider.METADATA_VALUE_ID)
.maxLengthAllowed(MetaData.VALUE_MAX_SIZE).buildTextComponent();
.validator(new EmptyStringValidator(i18n)).prompt(i18n.getMessage("textfield.value")).immediate(true)
.id(UIComponentIdProvider.METADATA_VALUE_ID).maxLengthAllowed(MetaData.VALUE_MAX_SIZE)
.buildTextComponent();
valueTextArea.setNullRepresentation("");
valueTextArea.setSizeFull();
valueTextArea.setHeight(100, Unit.PERCENTAGE);

View File

@@ -31,7 +31,6 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.vaadin.hene.flexibleoptiongroup.FlexibleOptionGroupItemComponent;
import com.google.common.base.Strings;
import com.google.common.collect.Maps;
import com.vaadin.data.Container.ItemSetChangeEvent;
import com.vaadin.data.Container.ItemSetChangeListener;
@@ -334,10 +333,6 @@ public class CommonDialogWindow extends Window {
for (final AbstractField field : requiredComponents) {
Object value = getCurrentVaue(currentChangedComponent, newValue, field);
if (String.class.equals(field.getType())) {
value = Strings.emptyToNull((String) value);
}
if (Set.class.equals(field.getType())) {
value = emptyToNull((Collection<?>) value);
}

View File

@@ -0,0 +1,55 @@
/**
* Copyright (c) 2015 Bosch Software Innovations GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.hawkbit.ui.common;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import com.vaadin.data.validator.StringLengthValidator;
/**
* Assures that the entered text does not contain only whitespaces. At least one
* character has to be entered. Leading and trailing whitespaces are allowed as
* they will be trimmed by the repository.
*/
public class EmptyStringValidator extends StringLengthValidator {
private static final long serialVersionUID = 1L;
private static final String MESSAGE_KEY = "validator.textfield.min.length";
private static final int TEXT_FIELD_DEFAULT_MAX_LENGTH = 64;
/**
* Constructor for EmptyStringValidator
*
* @param i18n
* {@link VaadinMessageSource}
*/
public EmptyStringValidator(final VaadinMessageSource i18n) {
super(i18n.getMessage(MESSAGE_KEY), 1, TEXT_FIELD_DEFAULT_MAX_LENGTH, false);
}
/**
* Constructor for EmptyStringValidator
*
* @param i18n
* {@link VaadinMessageSource}
* @param maxLength
* max length of the textfield
*/
public EmptyStringValidator(final VaadinMessageSource i18n, final int maxLength) {
super(i18n.getMessage(MESSAGE_KEY), 1, maxLength, false);
}
@Override
public boolean isValid(final Object value) {
return super.isValid(value != null ? value.toString().trim() : null);
}
}

View File

@@ -8,8 +8,12 @@
*/
package org.eclipse.hawkbit.ui.common.builder;
import java.util.LinkedList;
import java.util.List;
import org.springframework.util.StringUtils;
import com.vaadin.data.Validator;
import com.vaadin.ui.AbstractTextField;
/**
@@ -30,6 +34,7 @@ public abstract class AbstractTextFieldBuilder<E extends AbstractTextField> {
private boolean readOnly;
private boolean enabled = true;
private int maxLengthAllowed;
private final List<Validator> validators = new LinkedList<>();
/**
* @param caption
@@ -131,6 +136,17 @@ public abstract class AbstractTextFieldBuilder<E extends AbstractTextField> {
return this;
}
/**
*
* @param validator
* the validator to set for this field
* @return the builder
*/
public AbstractTextFieldBuilder<E> validator(final Validator validator) {
validators.add(validator);
return this;
}
/**
* Build a textfield
*
@@ -167,6 +183,10 @@ public abstract class AbstractTextFieldBuilder<E extends AbstractTextField> {
textComponent.setId(id);
}
if (!validators.isEmpty()) {
validators.forEach(textComponent::addValidator);
}
return textComponent;
}

View File

@@ -20,8 +20,6 @@ import com.vaadin.ui.themes.ValoTheme;
*/
public class TextFieldBuilder extends AbstractTextFieldBuilder<TextField> {
private static final int TEXT_FIELD_DEFAULT_MAX_LENGTH = 64;
/**
* Constructor.
*/
@@ -36,7 +34,6 @@ public class TextFieldBuilder extends AbstractTextFieldBuilder<TextField> {
* the id
*/
public TextFieldBuilder(final String id) {
maxLengthAllowed(TEXT_FIELD_DEFAULT_MAX_LENGTH);
styleName(ValoTheme.TEXTAREA_TINY);
id(id);
}

View File

@@ -16,7 +16,6 @@ import org.eclipse.hawkbit.ui.artifacts.smtable.SoftwareModuleAddUpdateWindow;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.distributions.smtable.SwMetadataPopupLayout;
import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.vaadin.spring.events.EventBus.UIEventBus;
@@ -123,9 +122,8 @@ public abstract class AbstractSoftwareModuleDetails
detailsTabLayout.removeAllComponents();
final Label vendorLabel = SPUIComponentProvider.createNameValueLabel(
getI18n().getMessage("label.dist.details.vendor"),
HawkbitCommonUtil.trimAndNullIfEmpty(vendor) == null ? "" : vendor);
final Label vendorLabel = SPUIComponentProvider
.createNameValueLabel(getI18n().getMessage("label.dist.details.vendor"), vendor == null ? "" : vendor);
vendorLabel.setId(UIComponentIdProvider.DETAILS_VENDOR_LABEL_ID);
detailsTabLayout.addComponent(vendorLabel);
@@ -136,9 +134,8 @@ public abstract class AbstractSoftwareModuleDetails
detailsTabLayout.addComponent(typeLabel);
}
final Label assignLabel = SPUIComponentProvider.createNameValueLabel(
getI18n().getMessage("label.assigned.type"),
HawkbitCommonUtil.trimAndNullIfEmpty(maxAssign) == null ? "" : maxAssign);
final Label assignLabel = SPUIComponentProvider
.createNameValueLabel(getI18n().getMessage("label.assigned.type"), maxAssign == null ? "" : maxAssign);
assignLabel.setId(UIComponentIdProvider.SWM_DTLS_MAX_ASSIGN);
detailsTabLayout.addComponent(assignLabel);
}

View File

@@ -162,8 +162,7 @@ public abstract class AbstractTableDetailsLayout<T extends NamedEntity> extends
protected void updateDescriptionLayout(final String description) {
descriptionLayout.removeAllComponents();
final Label descLabel = SPUIComponentProvider.createNameValueLabel("",
HawkbitCommonUtil.trimAndNullIfEmpty(description) == null ? "" : description);
final Label descLabel = SPUIComponentProvider.createNameValueLabel("", description == null ? "" : description);
/**
* By default text will be truncated based on layout width. So removing
* it as we need full description.
@@ -181,8 +180,7 @@ public abstract class AbstractTableDetailsLayout<T extends NamedEntity> extends
attributesLayout.removeAllComponents();
for (final Map.Entry<String, String> entry : attributes.entrySet()) {
final Label conAttributeLabel = SPUIComponentProvider.createNameValueLabel(
entry.getKey().concat(" : "),
HawkbitCommonUtil.trimAndNullIfEmpty(entry.getValue()) == null ? "" : entry.getValue());
entry.getKey().concat(" : "), entry.getValue() == null ? "" : entry.getValue());
conAttributeLabel.setDescription(entry.getKey().concat(" : ") + entry.getValue());
conAttributeLabel.addStyleName("label-style");
attributesLayout.addComponent(conAttributeLabel);

View File

@@ -15,10 +15,10 @@ import java.util.List;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.decorators.SPUITagButtonStyle;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
import org.springframework.util.StringUtils;
import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
import org.vaadin.spring.events.EventBus;
import org.vaadin.spring.events.EventBus.UIEventBus;
@@ -95,14 +95,12 @@ public abstract class AbstractFilterButtons extends Table {
final Item item = getItem(itemId);
final Long id = (Long) item.getItemProperty(SPUILabelDefinitions.VAR_ID).getValue();
final String name = (String) item.getItemProperty(SPUILabelDefinitions.VAR_NAME).getValue();
final String desc = HawkbitCommonUtil
.trimAndNullIfEmpty((String) item.getItemProperty(SPUILabelDefinitions.VAR_DESC).getValue()) != null
? item.getItemProperty(SPUILabelDefinitions.VAR_DESC).getValue().toString() : null;
final String color = HawkbitCommonUtil
.trimAndNullIfEmpty((String) item.getItemProperty(SPUILabelDefinitions.VAR_COLOR).getValue()) != null
? item.getItemProperty(SPUILabelDefinitions.VAR_COLOR).getValue().toString() : DEFAULT_GREEN;
final String desc = (String) item.getItemProperty(SPUILabelDefinitions.VAR_DESC).getValue() != null
? item.getItemProperty(SPUILabelDefinitions.VAR_DESC).getValue().toString() : null;
final String color = (String) item.getItemProperty(SPUILabelDefinitions.VAR_COLOR).getValue() != null
? item.getItemProperty(SPUILabelDefinitions.VAR_COLOR).getValue().toString() : DEFAULT_GREEN;
final Button typeButton = createFilterButton(id, name, desc, color, itemId);
typeButton.addClickListener(event -> filterButtonClickBehaviour.processFilterButtonClick(event));
typeButton.addClickListener(filterButtonClickBehaviour::processFilterButtonClick);
if ((NO_TAG_BUTTON_ID.equals(typeButton.getData()) && isNoTagStateSelected())
|| (id != null && isClickedByDefault(name))) {
@@ -159,7 +157,7 @@ public abstract class AbstractFilterButtons extends Table {
button.setCaption(prepareFilterButtonCaption(button.getCaption(), color));
}
if (HawkbitCommonUtil.trimAndNullIfEmpty(description) != null) {
if (!StringUtils.isEmpty(description)) {
button.setDescription(description);
} else {
button.setDescription(name);

View File

@@ -17,10 +17,10 @@ import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder;
import org.eclipse.hawkbit.ui.distributions.state.ManageDistUIState;
import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.springframework.util.StringUtils;
import org.vaadin.spring.events.EventBus;
import org.vaadin.spring.events.EventBus.UIEventBus;
@@ -113,9 +113,9 @@ public abstract class AbstractTableHeader extends VerticalLayout {
private void restoreState() {
final String onLoadSearchBoxValue = onLoadSearchBoxValue();
if (HawkbitCommonUtil.trimAndNullIfEmpty(onLoadSearchBoxValue) != null) {
if (StringUtils.hasText(onLoadSearchBoxValue)) {
openSearchTextField();
searchField.setValue(onLoadSearchBoxValue);
searchField.setValue(onLoadSearchBoxValue.trim());
}
if (onLoadIsTableMaximized()) {

View File

@@ -8,6 +8,12 @@
*/
package org.eclipse.hawkbit.ui.components;
import java.util.Set;
import java.util.stream.Collectors;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import org.eclipse.hawkbit.ui.utils.SpringContextHelper;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.slf4j.Logger;
@@ -101,10 +107,20 @@ public class HawkbitUIErrorHandler extends DefaultErrorHandler {
private static String extractMessageFrom(final Throwable ex) {
if (!StringUtils.isEmpty(ex.getMessage())) {
return ex.getMessage();
if (!(ex instanceof ConstraintViolationException)) {
if (!StringUtils.isEmpty(ex.getMessage())) {
return ex.getMessage();
}
return ex.getClass().getSimpleName();
}
return ex.getClass().getSimpleName();
final Set<ConstraintViolation<?>> violations = ((ConstraintViolationException) ex).getConstraintViolations();
if (violations == null) {
return ex.getClass().getSimpleName();
} else {
return violations.stream().map(violation -> violation.getPropertyPath() + " " + violation.getMessage())
.collect(Collectors.joining(System.lineSeparator()));
}
}
}

View File

@@ -24,6 +24,7 @@ import org.eclipse.hawkbit.ui.SpPermissionChecker;
import org.eclipse.hawkbit.ui.colorpicker.ColorPickerConstants;
import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper;
import org.eclipse.hawkbit.ui.common.DistributionSetTypeBeanQuery;
import org.eclipse.hawkbit.ui.common.EmptyStringValidator;
import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder;
import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
@@ -39,6 +40,7 @@ import org.eclipse.hawkbit.ui.utils.UINotification;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.springframework.data.domain.PageRequest;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
import org.vaadin.spring.events.EventBus.UIEventBus;
@@ -137,7 +139,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout<Distri
private TextField createTextField(final String in18Key, final String styleName, final String id) {
return new TextFieldBuilder().caption(i18n.getMessage(in18Key))
.styleName(ValoTheme.TEXTFIELD_TINY + " " + styleName).required(true).prompt(i18n.getMessage(in18Key))
.immediate(true).id(id).buildTextComponent();
.validator(new EmptyStringValidator(i18n)).immediate(true).id(id).buildTextComponent();
}
@Override
@@ -235,7 +237,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout<Distri
public String generateDescription(final Component source, final Object itemId, final Object propertyId) {
final Item item = selectedTable.getItem(itemId);
final String description = (String) (item.getItemProperty(DIST_TYPE_DESCRIPTION).getValue());
if (DIST_TYPE_NAME.equals(propertyId) && HawkbitCommonUtil.trimAndNullIfEmpty(description) != null) {
if (DIST_TYPE_NAME.equals(propertyId) && !StringUtils.isEmpty(description)) {
return i18n.getMessage("label.description") + description;
} else if (DIST_TYPE_MANDATORY.equals(propertyId)) {
return i18n.getMessage("tooltip.check.for.mandatory");
@@ -339,7 +341,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout<Distri
public String generateDescription(final Component source, final Object itemId, final Object propertyId) {
final Item item = sourceTable.getItem(itemId);
final String description = (String) item.getItemProperty(DIST_TYPE_DESCRIPTION).getValue();
if (DIST_TYPE_NAME.equals(propertyId) && HawkbitCommonUtil.trimAndNullIfEmpty(description) != null) {
if (DIST_TYPE_NAME.equals(propertyId) && !StringUtils.isEmpty(description)) {
return i18n.getMessage("label.description") + description;
}
return null;
@@ -389,11 +391,11 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout<Distri
private void createNewDistributionSetType() {
final String colorPicked = ColorPickerHelper.getColorPickedString(getColorPickerLayout().getSelPreview());
final String typeNameValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagName.getValue());
final String typeKeyValue = HawkbitCommonUtil.trimAndNullIfEmpty(typeKey.getValue());
final String typeDescValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagDesc.getValue());
final String typeNameValue = tagName.getValue();
final String typeKeyValue = typeKey.getValue();
final String typeDescValue = tagDesc.getValue();
final List<Long> itemIds = (List<Long>) selectedTable.getItemIds();
if (null != typeNameValue && null != typeKeyValue && !CollectionUtils.isEmpty(itemIds)) {
if (typeNameValue != null && typeKeyValue != null && !CollectionUtils.isEmpty(itemIds)) {
final List<Long> mandatory = itemIds.stream()
.filter(itemId -> isMandatoryModuleType(selectedTable.getItem(itemId)))

View File

@@ -120,7 +120,7 @@ public class ManageDistBeanQuery extends AbstractBeanQuery<ProxyDistribution> {
@Override
public int size() {
if (StringUtils.isEmpty(searchText) && null == distributionSetType) {
if (StringUtils.isEmpty(searchText) && distributionSetType == null) {
// if no search filters available
firstPageDistributionSets = getDistributionSetManagement()
.findByCompleted(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), dsComplete);

View File

@@ -101,7 +101,7 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
private HorizontalLayout captionLayout;
private BlurListener nameTextFieldBlusListner;
private BlurListener nameTextFieldBlurListener;
private LayoutClickListener nameLayoutClickListner;
@@ -210,7 +210,7 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
}
private void createListeners() {
nameTextFieldBlusListner = event -> {
nameTextFieldBlurListener = event -> {
if (!StringUtils.isEmpty(nameTextField.getValue())) {
captionLayout.removeComponent(nameTextField);
captionLayout.addComponent(nameLabel);
@@ -283,12 +283,12 @@ public class CreateOrUpdateFilterHeader extends VerticalLayout implements Button
private void setUpCaptionLayout(final boolean isCreateView) {
captionLayout.removeAllComponents();
if (isCreateView) {
nameTextField.removeBlurListener(nameTextFieldBlusListner);
nameTextField.removeBlurListener(nameTextFieldBlurListener);
captionLayout.removeLayoutClickListener(nameLayoutClickListner);
captionLayout.addComponent(nameTextField);
} else {
captionLayout.addComponent(nameLabel);
nameTextField.addBlurListener(nameTextFieldBlusListner);
nameTextField.addBlurListener(nameTextFieldBlurListener);
captionLayout.addLayoutClickListener(nameLayoutClickListner);
}
}

View File

@@ -18,6 +18,7 @@ import org.eclipse.hawkbit.ui.colorpicker.ColorPickerHelper;
import org.eclipse.hawkbit.ui.colorpicker.ColorPickerLayout;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener;
import org.eclipse.hawkbit.ui.common.EmptyStringValidator;
import org.eclipse.hawkbit.ui.common.builder.LabelBuilder;
import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder;
import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder;
@@ -193,7 +194,7 @@ public abstract class AbstractCreateUpdateTagLayout<E extends NamedEntity> exten
tagName = new TextFieldBuilder().caption(i18n.getMessage("textfield.name"))
.styleName(ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TAG_NAME).required(true)
.prompt(i18n.getMessage("textfield.name")).immediate(true).id(SPUIDefinitions.NEW_TARGET_TAG_NAME)
.buildTextComponent();
.validator(new EmptyStringValidator(i18n)).buildTextComponent();
tagDesc = new TextAreaBuilder().caption(i18n.getMessage("textfield.description"))
.styleName(ValoTheme.TEXTFIELD_TINY + " " + SPUIDefinitions.TAG_DESC)
@@ -541,8 +542,8 @@ public abstract class AbstractCreateUpdateTagLayout<E extends NamedEntity> exten
*/
protected void createNewTag() {
colorPicked = ColorPickerHelper.getColorPickedString(colorPickerLayout.getSelPreview());
tagNameValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagName.getValue());
tagDescValue = HawkbitCommonUtil.trimAndNullIfEmpty(tagDesc.getValue());
tagNameValue = tagName.getValue();
tagDescValue = tagDesc.getValue();
}
protected void displaySuccess(final String tagName) {

View File

@@ -22,6 +22,7 @@ import org.eclipse.hawkbit.repository.model.TenantMetaData;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow.SaveDialogCloseListener;
import org.eclipse.hawkbit.ui.common.DistributionSetTypeBeanQuery;
import org.eclipse.hawkbit.ui.common.EmptyStringValidator;
import org.eclipse.hawkbit.ui.common.builder.TextAreaBuilder;
import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder;
import org.eclipse.hawkbit.ui.common.builder.WindowBuilder;
@@ -29,7 +30,6 @@ import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.distributions.dstable.DistributionSetTable;
import org.eclipse.hawkbit.ui.management.event.DistributionTableEvent;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
@@ -142,10 +142,9 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
final Long distSetTypeId = (Long) distsetTypeNameComboBox.getValue();
distributionSetTypeManagement.get(distSetTypeId).ifPresent(type -> {
final DistributionSet currentDS = distributionSetManagement.update(
entityFactory.distributionSet().update(editDistId).name(distNameTextField.getValue())
.description(descTextArea.getValue()).version(distVersionTextField.getValue())
.requiredMigrationStep(isMigStepReq).type(type));
final DistributionSet currentDS = distributionSetManagement.update(entityFactory.distributionSet()
.update(editDistId).name(distNameTextField.getValue()).description(descTextArea.getValue())
.version(distVersionTextField.getValue()).requiredMigrationStep(isMigStepReq).type(type));
notificationMessage.displaySuccess(i18n.getMessage("message.new.dist.save.success",
new Object[] { currentDS.getName(), currentDS.getVersion() }));
// update table row+details layout
@@ -159,18 +158,17 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
private void addNewDistribution() {
editDistribution = Boolean.FALSE;
final String name = HawkbitCommonUtil.trimAndNullIfEmpty(distNameTextField.getValue());
final String version = HawkbitCommonUtil.trimAndNullIfEmpty(distVersionTextField.getValue());
final String name = distNameTextField.getValue();
final String version = distVersionTextField.getValue();
final Long distSetTypeId = (Long) distsetTypeNameComboBox.getValue();
final String desc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue());
final String desc = descTextArea.getValue();
final boolean isMigStepReq = reqMigStepCheckbox.getValue();
final DistributionSetType distributionSetType = distributionSetTypeManagement
.get(distSetTypeId)
final DistributionSetType distributionSetType = distributionSetTypeManagement.get(distSetTypeId)
.orElseThrow(() -> new EntityNotFoundException(DistributionSetType.class, distSetTypeId));
final DistributionSet newDist = distributionSetManagement
.create(entityFactory.distributionSet().create().name(name).version(version)
.description(desc).type(distributionSetType).requiredMigrationStep(isMigStepReq));
.create(entityFactory.distributionSet().create().name(name).version(version).description(desc)
.type(distributionSetType).requiredMigrationStep(isMigStepReq));
eventBus.publish(this, new DistributionTableEvent(BaseEntityEventType.ADD_ENTITY, newDist));
notificationMessage.displaySuccess(i18n.getMessage("message.new.dist.save.success",
@@ -182,8 +180,7 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
final String name = distNameTextField.getValue();
final String version = distVersionTextField.getValue();
final Optional<DistributionSet> existingDs = distributionSetManagement
.getByNameAndVersion(name, version);
final Optional<DistributionSet> existingDs = distributionSetManagement.getByNameAndVersion(name, version);
/*
* Distribution should not exists with the same name & version.
* Display error message, when the "existingDs" is not null and it
@@ -247,7 +244,8 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
private TextField createTextField(final String in18Key, final String id) {
final TextField buildTextField = new TextFieldBuilder().caption(i18n.getMessage(in18Key)).required(true)
.prompt(i18n.getMessage(in18Key)).immediate(true).id(id).buildTextComponent();
.validator(new EmptyStringValidator(i18n)).prompt(i18n.getMessage(in18Key)).immediate(true).id(id)
.buildTextComponent();
buildTextField.setNullRepresentation("");
return buildTextField;
}
@@ -296,8 +294,7 @@ public class DistributionAddUpdateWindowLayout extends CustomComponent {
return;
}
final Optional<DistributionSet> distSet = distributionSetManagement
.getWithDetails(editDistId);
final Optional<DistributionSet> distSet = distributionSetManagement.getWithDetails(editDistId);
if (!distSet.isPresent()) {
return;
}

View File

@@ -25,9 +25,7 @@ import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
import org.eclipse.hawkbit.ui.components.RefreshableContainer;
import org.eclipse.hawkbit.ui.layouts.AbstractCreateUpdateTagLayout;
import org.eclipse.hawkbit.ui.management.event.DistributionSetTagTableEvent;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
import org.eclipse.hawkbit.ui.utils.UINotification;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.springframework.data.domain.PageRequest;
@@ -123,23 +121,16 @@ public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdat
@Override
protected void createNewTag() {
super.createNewTag();
final String tagNameValueTrimmed = HawkbitCommonUtil.trimAndNullIfEmpty(tagNameValue);
final String tagDescriptionTrimmed = HawkbitCommonUtil.trimAndNullIfEmpty(tagDescValue);
if (!StringUtils.isEmpty(tagNameValueTrimmed)) {
String colour = ColorPickerConstants.START_COLOR.getCSS();
if (!StringUtils.isEmpty(getColorPicked())) {
colour = getColorPicked();
}
final DistributionSetTag newDistTag = distributionSetTagManagement.create(entityFactory
.tag().create().name(tagNameValueTrimmed).description(tagDescriptionTrimmed).colour(colour));
eventBus.publish(this, new DistributionSetTagTableEvent(BaseEntityEventType.ADD_ENTITY, newDistTag));
displaySuccess(newDistTag.getName());
resetDistTagValues();
} else {
displayValidationError(i18n.getMessage(SPUILabelDefinitions.MISSING_TAG_NAME));
String colour = ColorPickerConstants.START_COLOR.getCSS();
if (!StringUtils.isEmpty(getColorPicked())) {
colour = getColorPicked();
}
final DistributionSetTag newDistTag = distributionSetTagManagement
.create(entityFactory.tag().create().name(tagNameValue).description(tagDescValue).colour(colour));
eventBus.publish(this, new DistributionSetTagTableEvent(BaseEntityEventType.ADD_ENTITY, newDistTag));
displaySuccess(newDistTag.getName());
resetDistTagValues();
}
/**
@@ -175,8 +166,7 @@ public class CreateUpdateDistributionTagLayoutWindow extends AbstractCreateUpdat
@Override
public void setTagDetails(final String distTagSelected) {
tagName.setValue(distTagSelected);
final Optional<DistributionSetTag> selectedDistTag = distributionSetTagManagement
.getByName(distTagSelected);
final Optional<DistributionSetTag> selectedDistTag = distributionSetTagManagement.getByName(distTagSelected);
if (selectedDistTag.isPresent()) {
tagDesc.setValue(selectedDistTag.get().getDescription());
if (null == selectedDistTag.get().getColour()) {

View File

@@ -40,7 +40,6 @@ import org.eclipse.hawkbit.ui.management.event.TargetTableEvent;
import org.eclipse.hawkbit.ui.management.event.TargetTableEvent.TargetComponentEvent;
import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
import org.eclipse.hawkbit.ui.management.state.TargetBulkUpload;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.slf4j.Logger;
@@ -108,8 +107,8 @@ public class BulkUploadHandler extends CustomComponent
BulkUploadHandler(final TargetBulkUpdateWindowLayout targetBulkUpdateWindowLayout,
final TargetManagement targetManagement, final TargetTagManagement tagManagement,
final EntityFactory entityFactory, final DistributionSetManagement distributionSetManagement,
final ManagementUIState managementUIState, final DeploymentManagement deploymentManagement, final VaadinMessageSource i18n,
final UI uiInstance, final Executor uiExecutor) {
final ManagementUIState managementUIState, final DeploymentManagement deploymentManagement,
final VaadinMessageSource i18n, final UI uiInstance, final Executor uiExecutor) {
this.uiInstance = uiInstance;
this.comboBox = targetBulkUpdateWindowLayout.getDsNamecomboBox();
this.descTextArea = targetBulkUpdateWindowLayout.getDescTextArea();
@@ -364,8 +363,8 @@ public class BulkUploadHandler extends CustomComponent
// Exception squid:S1166 - Targets that exist already are simply ignored
@SuppressWarnings("squid:S1166")
private void addNewTarget(final String controllerId, final String name) {
final String newControllerId = HawkbitCommonUtil.trimAndNullIfEmpty(controllerId);
final String description = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue());
final String newControllerId = controllerId;
final String description = descTextArea.getValue();
try {
targetManagement.create(entityFactory.target().create().controllerId(newControllerId).name(name)

View File

@@ -20,7 +20,6 @@ import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder;
import org.eclipse.hawkbit.ui.common.builder.WindowBuilder;
import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
import org.eclipse.hawkbit.ui.management.event.TargetTableEvent;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
@@ -140,9 +139,9 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
}
private void addNewTarget() {
final String newControllerId = HawkbitCommonUtil.trimAndNullIfEmpty(controllerIDTextField.getValue());
final String newName = HawkbitCommonUtil.trimAndNullIfEmpty(nameTextField.getValue());
final String newDesc = HawkbitCommonUtil.trimAndNullIfEmpty(descTextArea.getValue());
final String newControllerId = controllerIDTextField.getValue();
final String newName = nameTextField.getValue();
final String newDesc = descTextArea.getValue();
final Target newTarget = targetManagement.create(
entityFactory.target().create().controllerId(newControllerId).name(newName).description(newDesc));
@@ -156,7 +155,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW)
.caption(i18n.getMessage(UIComponentIdProvider.TARGET_ADD_CAPTION)).content(this).layout(formLayout)
.i18n(i18n).saveDialogCloseListener(new SaveOnDialogCloseListener()).buildCommonDialogWindow();
return window;
}

View File

@@ -23,7 +23,6 @@ import org.eclipse.hawkbit.ui.common.tagdetails.TargetTagToken;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.management.event.TargetTableEvent;
import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
@@ -164,14 +163,12 @@ public class TargetDetails extends AbstractTableDetailsLayout<Target> {
detailsTabLayout.removeAllComponents();
final Label controllerLabel = SPUIComponentProvider.createNameValueLabel(
getI18n().getMessage("label.target.id"),
HawkbitCommonUtil.trimAndNullIfEmpty(controllerId) == null ? "" : controllerId);
getI18n().getMessage("label.target.id"), controllerId == null ? "" : controllerId);
controllerLabel.setId(UIComponentIdProvider.TARGET_CONTROLLER_ID);
detailsTabLayout.addComponent(controllerLabel);
final Label lastPollDtLabel = SPUIComponentProvider.createNameValueLabel(
getI18n().getMessage("label.target.lastpolldate"),
HawkbitCommonUtil.trimAndNullIfEmpty(lastQueryDate) == null ? "" : lastQueryDate);
getI18n().getMessage("label.target.lastpolldate"), lastQueryDate == null ? "" : lastQueryDate);
lastPollDtLabel.setId(UIComponentIdProvider.TARGET_LAST_QUERY_DT);
detailsTabLayout.addComponent(lastPollDtLabel);

View File

@@ -276,7 +276,7 @@ public class TargetTable extends AbstractTable<Target> {
addGeneratedColumn(SPUIDefinitions.TARGET_STATUS_PIN_TOGGLE_ICON,
(source, itemId, columnId) -> getTagetPinButton(itemId));
addGeneratedColumn(SPUIDefinitions.TARGET_STATUS_POLL_TIME,
(source, itemId, columnId) -> getTagetPollTime(itemId));
(source, itemId, columnId) -> getTargetPollTime(itemId));
}
@Override
@@ -363,14 +363,14 @@ public class TargetTable extends AbstractTable<Target> {
return queryConfig;
}
private Label getTagetPollTime(final Object itemId) {
private Label getTargetPollTime(final Object itemId) {
final Label statusLabel = new Label();
statusLabel.addStyleName(ValoTheme.LABEL_SMALL);
statusLabel.setHeightUndefined();
statusLabel.setContentMode(ContentMode.HTML);
final String pollStatusToolTip = (String) getContainerDataSource().getItem(itemId)
.getItemProperty(SPUILabelDefinitions.VAR_POLL_STATUS_TOOL_TIP).getValue();
if (HawkbitCommonUtil.trimAndNullIfEmpty(pollStatusToolTip) != null) {
if (StringUtils.hasText(pollStatusToolTip)) {
statusLabel.setValue(FontAwesome.EXCLAMATION_CIRCLE.getHtml());
} else {
statusLabel.setValue(FontAwesome.CLOCK_O.getHtml());

View File

@@ -23,7 +23,6 @@ import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
import org.eclipse.hawkbit.ui.components.RefreshableContainer;
import org.eclipse.hawkbit.ui.layouts.AbstractCreateUpdateTagLayout;
import org.eclipse.hawkbit.ui.management.event.TargetTagTableEvent;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.UINotification;
import org.eclipse.hawkbit.ui.utils.VaadinMessageSource;
import org.springframework.data.domain.PageRequest;
@@ -134,16 +133,14 @@ public class CreateUpdateTargetTagLayoutWindow extends AbstractCreateUpdateTagLa
@Override
protected void createNewTag() {
super.createNewTag();
final String tagNameTrimmed = HawkbitCommonUtil.trimAndNullIfEmpty(tagNameValue);
final String tagDescriptionTrimmed = HawkbitCommonUtil.trimAndNullIfEmpty(tagDescValue);
if (!StringUtils.isEmpty(tagNameTrimmed)) {
if (!StringUtils.isEmpty(tagNameValue)) {
String colour = ColorPickerConstants.START_COLOR.getCSS();
if (!StringUtils.isEmpty(getColorPicked())) {
colour = getColorPicked();
}
final TargetTag newTargetTag = targetTagManagement.create(entityFactory.tag().create()
.name(tagNameTrimmed).description(tagDescriptionTrimmed).colour(colour));
final TargetTag newTargetTag = targetTagManagement
.create(entityFactory.tag().create().name(tagNameValue).description(tagDescValue).colour(colour));
eventBus.publish(this, new TargetTagTableEvent(BaseEntityEventType.ADD_ENTITY, newTargetTag));
displaySuccess(newTargetTag.getName());
} else {

View File

@@ -52,7 +52,6 @@ import org.eclipse.hawkbit.ui.management.footer.ActionTypeOptionGroupLayout;
import org.eclipse.hawkbit.ui.management.footer.ActionTypeOptionGroupLayout.ActionTypeOption;
import org.eclipse.hawkbit.ui.rollout.event.RolloutEvent;
import org.eclipse.hawkbit.ui.rollout.groupschart.GroupsPieChart;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
@@ -207,6 +206,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
@Override
public void saveOrUpdate() {
if (editRolloutEnabled) {
editRollout();
return;
@@ -228,6 +228,10 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
}
private boolean duplicateCheck() {
if (!StringUtils.hasText(rolloutName.getValue())) {
uiNotification.displayValidationError(i18n.getMessage("message.rollout.name.empty"));
return false;
}
if (rolloutManagement.getByName(getRolloutName()).isPresent()) {
uiNotification
.displayValidationError(i18n.getMessage("message.rollout.duplicate.check", getRolloutName()));
@@ -270,6 +274,10 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
}
private boolean duplicateCheckForEdit() {
if (!StringUtils.hasText(rolloutName.getValue())) {
uiNotification.displayValidationError(i18n.getMessage("message.rollout.name.empty"));
return false;
}
final String rolloutNameVal = getRolloutName();
if (!rollout.getName().equals(rolloutNameVal) && rolloutManagement.getByName(rolloutNameVal).isPresent()) {
uiNotification
@@ -280,7 +288,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
}
private String getRolloutName() {
return HawkbitCommonUtil.trimAndNullIfEmpty(rolloutName.getValue());
return StringUtils.trimWhitespace(rolloutName.getValue());
}
private Rollout saveRollout() {
@@ -756,13 +764,12 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
}
private String getTargetFilterQuery() {
if (null != targetFilterQueryCombo.getValue()
&& HawkbitCommonUtil.trimAndNullIfEmpty((String) targetFilterQueryCombo.getValue()) != null) {
final Item filterItem = targetFilterQueryCombo.getContainerDataSource()
.getItem(targetFilterQueryCombo.getValue());
return (String) filterItem.getItemProperty("query").getValue();
if (StringUtils.isEmpty(targetFilterQueryCombo.getValue())) {
return null;
}
return null;
final Item filterItem = targetFilterQueryCombo.getContainerDataSource()
.getItem(targetFilterQueryCombo.getValue());
return (String) filterItem.getItemProperty("query").getValue();
}
private void setDefaultSaveStartGroupOption() {
@@ -863,9 +870,9 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
}
private boolean isNoOfGroupsOrTargetFilterEmpty() {
return HawkbitCommonUtil.trimAndNullIfEmpty(noOfGroups.getValue()) == null
|| (HawkbitCommonUtil.trimAndNullIfEmpty((String) targetFilterQueryCombo.getValue()) == null
&& targetFilterQuery.getValue() == null);
return !StringUtils.hasText(noOfGroups.getValue())
|| (!StringUtils.hasText((String) targetFilterQueryCombo.getValue())
&& !StringUtils.hasText(targetFilterQuery.getValue()));
}
}

View File

@@ -31,7 +31,6 @@ import org.eclipse.hawkbit.ui.common.builder.TextFieldBuilder;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleNoBorderWithIcon;
import org.eclipse.hawkbit.ui.filtermanagement.TargetFilterBeanQuery;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
@@ -170,6 +169,7 @@ public class DefineGroupsLayout extends GridLayout {
button.setVisible(true);
button.addClickListener(event -> addGroupRowAndValidate());
return button;
}
private GroupRow addGroupRow() {
@@ -238,8 +238,9 @@ public class DefineGroupsLayout extends GridLayout {
removeAllRows();
final List<RolloutGroup> groups = rolloutGroupManagement.findByRollout(new PageRequest(0, quotaManagement.getMaxRolloutGroupsPerRollout()),
rollout.getId()).getContent();
final List<RolloutGroup> groups = rolloutGroupManagement
.findByRollout(new PageRequest(0, quotaManagement.getMaxRolloutGroupsPerRollout()), rollout.getId())
.getContent();
for (final RolloutGroup group : groups) {
final GroupRow groupRow = addGroupRow();
groupRow.populateByGroup(group);
@@ -299,6 +300,7 @@ public class DefineGroupsLayout extends GridLayout {
}
runningValidationsCounter.incrementAndGet();
}
/**
@@ -388,32 +390,31 @@ public class DefineGroupsLayout extends GridLayout {
groupName = createTextField("textfield.name", UIComponentIdProvider.ROLLOUT_GROUP_LIST_GRID_ID);
groupName.setValue(i18n.getMessage("textfield.rollout.group.default.name", groupsCount));
groupName.setStyleName("rollout-group-name");
groupName.addValueChangeListener(event -> valueChanged());
groupName.addValueChangeListener(
event -> valueChanged());
targetFilterQueryCombo =
createTargetFilterQueryCombo();
targetFilterQueryCombo = createTargetFilterQueryCombo();
populateTargetFilterQuery();
targetFilterQueryCombo.addValueChangeListener(event -> valueChanged());
targetFilterQuery = createTargetFilterQuery();
targetPercentage = createPercentageWithDecimalsField("textfield.target.percentage",
UIComponentIdProvider.ROLLOUT_GROUP_TARGET_PERC_ID);
targetPercentage.setValue("100");
targetPercentage.addValueChangeListener(event -> valueChanged());
triggerThreshold = createPercentageField("prompt.tigger.threshold",
UIComponentIdProvider.ROLLOUT_TRIGGER_THRESOLD_ID);
triggerThreshold.setValue(defaultTriggerThreshold);
triggerThreshold.addValueChangeListener(event -> valueChanged());
errorThreshold = createPercentageField("prompt.error.threshold",
UIComponentIdProvider.ROLLOUT_ERROR_THRESOLD_ID);
errorThreshold.setValue(defaultErrorThreshold);
errorThreshold.addValueChangeListener(event -> valueChanged());
optionsLayout = new HorizontalLayout();
optionsLayout.addComponent(createRemoveButton());
initialized = true;
}
@@ -540,13 +541,12 @@ public class DefineGroupsLayout extends GridLayout {
}
private String getTargetFilterQuery() {
if (null != targetFilterQueryCombo.getValue()
&& HawkbitCommonUtil.trimAndNullIfEmpty((String) targetFilterQueryCombo.getValue()) != null) {
final Item filterItem = targetFilterQueryCombo.getContainerDataSource()
.getItem(targetFilterQueryCombo.getValue());
return (String) filterItem.getItemProperty("query").getValue();
if (!StringUtils.hasText((String) targetFilterQueryCombo.getValue())) {
return null;
}
return null;
final Item filterItem = targetFilterQueryCombo.getContainerDataSource()
.getItem(targetFilterQueryCombo.getValue());
return (String) filterItem.getItemProperty("query").getValue();
}
/**

View File

@@ -77,19 +77,18 @@ public final class HawkbitCommonUtil {
}
/**
* Trim the text and convert into null in case of empty string.
* Trims the text and converts into null in case of an empty string.
*
* @param text
* as text to be trimed
* text to be trimmed
* @return null if the text is null or if the text is blank, text.trim() if
* the text is not empty.
*/
public static String trimAndNullIfEmpty(final String text) {
String resultStr = null;
if (text != null && !text.trim().isEmpty()) {
resultStr = text.trim();
return text.trim();
}
return resultStr;
return null;
}
/**

View File

@@ -12,11 +12,6 @@ import com.vaadin.ui.themes.ValoTheme;
/**
* RepositoryConstants required for Label.
*
*
*
*
*
*/
public final class SPUILabelDefinitions {
@@ -48,44 +43,11 @@ public final class SPUILabelDefinitions {
* Delay - Notification.
*/
public static final int SP_DELAY = 1000;
/**
* Cannot be deleted message.
*/
public static final String CANNOT_BE_DELETED_MESSAGE = "Cannot be deleted";
/**
* Only one distribution set can be assigned message.
*/
public static final String ONLY_ONE_DS_CAN_BE_ASSIGNED = "Only one distribution set can be assigned";
/**
* Only one distribution set can be dropped.
*/
public static final String ONLY_ONE_DS_CAN_BE_DROPPED = "Only one distribution set can be dropped";
/**
* Cannot be deleted message.
*/
public static final String ACTION_NOT_ALLOWED = "Action not allowed";
/**
* Target already assigned or installed.
*/
public static final String TARGET_ALREADY_ASSIGNED = "Some target(s) are already assigned or installed.Will be ignored";
/**
* Target already assigned or installed.
*/
public static final String TARGET_ALREADY_ASSIGNED_PENDING_ACTION = "Some target(s) are already assigned.Pending for action";
/**
* Duplicate distribution delete message.
*/
public static final String DUPLICATE_DISTRIBUTION_DELETE = "Distribution(s) already deleted.Pending for action";
/**
* Few distribution already deleted message.
*/
public static final String FEW_DISTRIBUTION_ALREADY_DELETED = "Few distribution(s) are already deleted.Pending for action";
/**
* NAME.
@@ -103,18 +65,10 @@ public final class SPUILabelDefinitions {
* Assigned.
*/
public static final String VAR_ASSIGNED = "assigned";
/**
* Softwarew type.
*/
public static final String VAR_SOFT_TYPE = "type";
/**
* Softwarew type ID.
*/
public static final String VAR_SOFT_TYPE_ID = "typeId";
/**
* CreatedAt.
*/
public static final String VAR_CREATED_AT = "createdAt";
/**
* CONT ID.
*/
@@ -130,10 +84,6 @@ public final class SPUILabelDefinitions {
*/
public static final String VAR_ID = "id";
/**
* Key.
*/
public static final String VAR_KEY = "key";
/**
* DESC.
*/
@@ -214,10 +164,6 @@ public final class SPUILabelDefinitions {
*/
public static final String INSTALLED_DISTRIBUTION_NAME_VER = "installedDistNameVersion";
/**
* Name description label.
*/
public static final String NAME_DESCRIPTION_LABEL = "nameDescLabel";
/**
* Name description label.
*/
@@ -227,32 +173,14 @@ public final class SPUILabelDefinitions {
*/
public static final String VAR_TARGET_STATUS = "updateStatus";
/**
* Duplicate target delete message.
*/
public static final String DUPLICATE_TARGET_DELETE = "Target(s) already deleted.Pending for action";
/**
* Few target already deleted message.
*/
public static final String FEW_TARGET_ALREADY_DELETED = "Few Target(s) are already deleted.Pending for action";
/**
* Discard all label.
*/
public static final String DISCARD_ALL = "Discard All";
/**
* Delete all label.
*/
public static final String DELETE_ALL = "Delete All";
/**
* Discard label.
*/
public static final String DISCARD = "Discard";
/**
* Delete Software label.
*/
public static final String DELETE_SOFTWARE_ARTIFACT = "Delete Sofware";
/**
* Delete Custom Filter.
@@ -264,78 +192,16 @@ public final class SPUILabelDefinitions {
*/
public static final String UPDATE_CUSTOM_FILTER = "Update Custom Filter";
/**
* Yes label.
*/
public static final String YES = "Yes";
/**
* No label.
*/
public static final String NO = "No";
/**
* JVM label.
*/
public static final String JVM_LABEL = "Runtime";
/**
* Agent hub label.
*/
public static final String AGENT_HUB_LABEL = "Application";
/**
* OS label.
*/
public static final String OS_LABEL = "OS";
/**
* Missing mandatory details message.
*/
public static final String MISSING_MANDATORY_MSG = "Mandatory details are missing";
/**
* Missing Jvm.
*/
public static final String MISSING_JVM = "Please select Runtime";
/**
* Missing Agent hub.
*/
public static final String MISSING_AH = "Please select Application";
/**
* Missing Os.
*/
public static final String MISSING_OS = "Please select OS";
/**
* Missing tag name.
*/
public static final String MISSING_TAG_NAME = "Please enter the Tag name";
/**
* Missing tag name.
*/
public static final String MISSING_TYPE_NAME_KEY = "Please enter the Type name and Key";
/**
* HTML space.
*/
public static final String HTML_SPACE = "&nbsp;";
/**
* No data available.
*/
public static final String NO_DATA_AVAIALABLE = "No data available";
/**
* Type.
*/
public static final String TYPE = "Filter by type";
/**
* Dist Type.
*/
public static final String DISTTYPE = "Filter by Disttype";
/**
* Name.
*/
@@ -345,35 +211,6 @@ public final class SPUILabelDefinitions {
* Upload - process button caption.
*/
public static final String PROCESS = "Process";
/**
* Upload - no action button caption.
*/
public static final String NO_ACTION = "No Action";
/**
* Files selected for upload.
*/
public static final String UPLOAD_FILES_DROPPED = " files are selected for upload";
/**
* Single file selected for upload.
*/
public static final String UPLOAD_FILE_DROPPED = " file is selected for upload";
/**
* Upload - upload button caption.
*/
public static final String UPLOAD = "Upload";
/**
* Upload - upload button caption.
*/
public static final String CANCEL = "Cancel";
/**
* No file selected for upload.
*/
public static final String NO_FILE_SELECTED = "No file selecetd for upload";
/**
* Upload results - label.
@@ -445,11 +282,6 @@ public final class SPUILabelDefinitions {
*/
public static final String VAR_STATUS = "status";
/**
* Target filter query - column property.
*/
public static final String VAR_TARGETFILTERQUERY = "targetFilterQuery";
/**
* Distribution name and version - column property.
*/
@@ -460,56 +292,10 @@ public final class SPUILabelDefinitions {
*/
public static final String VAR_NUMBER_OF_GROUPS = "numberOfGroups";
/**
* Delete label.
*/
public static final String DELETE = "Delete";
/**
* Rollout name link's description.
*/
public static final String SHOW_ROLLOUT_GROUP_DETAILS = "show group details";
/**
* Rollout action button description.
*/
public static final String ACTION = "Action";
/**
* Rollout pause button name.
*/
public static final String PAUSE = "Pause";
/**
* Rollout resume button name.
*/
public static final String RESUME = "Resume";
/**
* Rollout and rollout group property - count of not started targets.
*/
public static final String VAR_COUNT_TARGETS_NOT_STARTED = "notStartedTargetsCount";
/**
* Rollout and rollout group property - count of running targets.
*/
public static final String VAR_COUNT_TARGETS_RUNNING = "runningTargetsCount";
/**
* Rollout and rollout group property - count of scheduled targets.
*/
public static final String VAR_COUNT_TARGETS_SCHEDULED = "scheduledTargetsCount";
/**
* Rollout and rollout group property - count of targets in error.
*/
public static final String VAR_COUNT_TARGETS_ERROR = "errorTargetsCount";
/**
* Rollout and rollout group property - count of finished targets.
*/
public static final String VAR_COUNT_TARGETS_FINISHED = "finishedTargetsCount";
/**
* Rollout and rollout group property - count of targets cancelled targets.
*/
public static final String VAR_COUNT_TARGETS_CANCELLED = "cancelledTargetsCount";
/**
* Total target coulmn property name.

View File

@@ -553,6 +553,7 @@ prompt.target.filter = Custom Target Filter
message.rollout.nonzero.group.number = Number of groups must be greater than zero
message.rollout.max.group.number = Number of groups must not be greater than 500
message.rollout.duplicate.check = Rollout [ {0} ] must be unique, entered value already exists.
message.rollout.name.empty = Please enter a name for Rollout
message.correct.invalid.value = Please correct invalid values
message.enter.number = Please enter number
message.rollout.field.value.range = Value should be in range {0} to {1}
@@ -612,3 +613,5 @@ distributionset.not.existsDistribution=Distribution set does not exist. Maybe th
distributionsets.not.exists=Distribution sets do not exists. Maybe the sets were deleted.
targettag.not.exists=Target tag {0} does not exists. Maybe the target tag was deleted.
validator.textfield.min.length = Please enter a text consisting of at least one and a maximum of {0} characters.