Merge pull request #146 from bsinno/Bug/Show_User_Information
Bug/show user information
This commit is contained in:
0
3rd-dependencies/listDeps.sh
Executable file → Normal file
0
3rd-dependencies/listDeps.sh
Executable file → Normal file
@@ -16,6 +16,7 @@ import org.eclipse.hawkbit.repository.OffsetBasedPageRequest;
|
|||||||
import org.eclipse.hawkbit.repository.SoftwareManagement;
|
import org.eclipse.hawkbit.repository.SoftwareManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
||||||
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||||
@@ -101,8 +102,8 @@ public class BaseSwModuleBeanQuery extends AbstractBeanQuery<ProxyBaseSoftwareMo
|
|||||||
proxy.setVersion(bean.getVersion());
|
proxy.setVersion(bean.getVersion());
|
||||||
proxy.setVendor(bean.getVendor());
|
proxy.setVendor(bean.getVendor());
|
||||||
proxy.setDescription(bean.getDescription());
|
proxy.setDescription(bean.getDescription());
|
||||||
proxy.setCreatedByUser(HawkbitCommonUtil.getIMUser(bean.getCreatedBy()));
|
proxy.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(bean));
|
||||||
proxy.setModifiedByUser(HawkbitCommonUtil.getIMUser(bean.getLastModifiedBy()));
|
proxy.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(bean));
|
||||||
return proxy;
|
return proxy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,183 @@
|
|||||||
|
/**
|
||||||
|
* 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 java.util.Collections;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.eclipse.hawkbit.im.authentication.UserPrincipal;
|
||||||
|
import org.eclipse.hawkbit.repository.model.BaseEntity;
|
||||||
|
import org.eclipse.hawkbit.ui.utils.SpringContextHelper;
|
||||||
|
import org.springframework.security.core.context.SecurityContext;
|
||||||
|
import org.springframework.security.core.userdetails.User;
|
||||||
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
|
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
|
||||||
|
|
||||||
|
import com.vaadin.server.VaadinService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Utility class to user details e.g. username
|
||||||
|
*/
|
||||||
|
public final class UserDetailsFormatter {
|
||||||
|
|
||||||
|
private static final String TRIM_APPENDIX = "...";
|
||||||
|
private static final String DETAIL_SEPERATOR = ", ";
|
||||||
|
|
||||||
|
private UserDetailsFormatter() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load user details by the user name and format the user name to max 100
|
||||||
|
* characters.
|
||||||
|
*
|
||||||
|
* @see {@link UserDetailsFormatter#loadAndFormatUsername(String, int)}
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* the user name
|
||||||
|
* @return the formatted user name (max 100 characters) cannot be <null>
|
||||||
|
*/
|
||||||
|
public static String loadAndFormatUsername(final String username) {
|
||||||
|
return loadAndFormatUsername(username, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load user details by {@link BaseEntity#getCreatedBy()} and format the
|
||||||
|
* user name. Use {@link UserDetailsFormatter#loadAndFormatUsername(String)}
|
||||||
|
*
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return the formatted 'created at user name' (max 100 characters) cannot
|
||||||
|
* be <null>
|
||||||
|
*/
|
||||||
|
public static String loadAndFormatCreatedBy(final BaseEntity baseEntity) {
|
||||||
|
if (baseEntity == null || baseEntity.getCreatedBy() == null) {
|
||||||
|
return StringUtils.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
return loadAndFormatUsername(baseEntity.getCreatedBy());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load user details by {@link BaseEntity#getLastModifiedBy()} and format
|
||||||
|
* the user name. Use
|
||||||
|
* {@link UserDetailsFormatter#loadAndFormatUsername(String)}
|
||||||
|
*
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return the formatted 'last modefied by user name' (max 100 characters)
|
||||||
|
* cannot be <null>
|
||||||
|
*/
|
||||||
|
public static String loadAndFormatLastModifiedBy(final BaseEntity baseEntity) {
|
||||||
|
if (baseEntity == null || baseEntity.getLastModifiedBy() == null) {
|
||||||
|
return StringUtils.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
return loadAndFormatUsername(baseEntity.getLastModifiedBy());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load user details by the current session information and format the user
|
||||||
|
* name to max 12 characters. @see
|
||||||
|
* {@link UserDetailsFormatter#loadAndFormatUsername(String, int)}
|
||||||
|
*
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return the formatted user name (max 12 characters) cannot be <null>
|
||||||
|
*/
|
||||||
|
public static String loadAndFormatCurrentUsername() {
|
||||||
|
return loadAndFormatUsername(getCurrentUser().getUsername(), 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load user details by the user name and format the user name. If the
|
||||||
|
* loaded {@link UserDetails} is not an instance of a {@link UserPrincipal},
|
||||||
|
* then just the {@link UserDetails#getUsername()} will return.
|
||||||
|
*
|
||||||
|
* If first and last name available, they will combined. Otherwise the
|
||||||
|
* {@link UserPrincipal#getLoginname()} will formatted. The formatted name
|
||||||
|
* is reduced to 100 characters.
|
||||||
|
*
|
||||||
|
* @param username
|
||||||
|
* the user name
|
||||||
|
* @param expectedNameLength
|
||||||
|
* the name size of each name part
|
||||||
|
* @return the formatted user name (max expectedNameLength characters)
|
||||||
|
* cannot be <null>
|
||||||
|
*/
|
||||||
|
public static String loadAndFormatUsername(final String username, final int expectedNameLength) {
|
||||||
|
final UserDetails userDetails = loadUserByUsername(username);
|
||||||
|
if (!(userDetails instanceof UserPrincipal)) {
|
||||||
|
return userDetails.getUsername();
|
||||||
|
}
|
||||||
|
|
||||||
|
final UserPrincipal userPrincipal = (UserPrincipal) userDetails;
|
||||||
|
|
||||||
|
String firstname = StringUtils.defaultIfEmpty(userPrincipal.getFirstname(), StringUtils.EMPTY);
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(firstname)) {
|
||||||
|
firstname += DETAIL_SEPERATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String firstAndLastname = firstname
|
||||||
|
+ StringUtils.defaultIfEmpty(userPrincipal.getLastname(), StringUtils.EMPTY);
|
||||||
|
|
||||||
|
final String trimmedUsername = trimAndFormatDetail(firstAndLastname, expectedNameLength);
|
||||||
|
|
||||||
|
if (StringUtils.isEmpty(trimmedUsername)) {
|
||||||
|
return trimAndFormatDetail(userPrincipal.getLoginname(), expectedNameLength);
|
||||||
|
}
|
||||||
|
return firstAndLastname;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Format the current tenant. The information is loaded by the current
|
||||||
|
* session information.
|
||||||
|
*
|
||||||
|
* @return the formatted user name (max 8 characters) can be <null>
|
||||||
|
*/
|
||||||
|
public static String formatCurrentTenant() {
|
||||||
|
final UserDetails userDetails = getCurrentUser();
|
||||||
|
if (!(userDetails instanceof UserPrincipal)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
final UserPrincipal userPrincipal = (UserPrincipal) userDetails;
|
||||||
|
return trimAndFormatDetail(userPrincipal.getTenant(), 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static UserDetails getCurrentUser() {
|
||||||
|
final SecurityContext context = (SecurityContext) VaadinService.getCurrentRequest().getWrappedSession()
|
||||||
|
.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
|
||||||
|
return (UserDetails) context.getAuthentication().getPrincipal();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String trimAndFormatDetail(final String formatString, final int expectedDetailLength) {
|
||||||
|
final String detail = StringUtils.defaultIfEmpty(formatString, StringUtils.EMPTY);
|
||||||
|
final String trimmedDetail = StringUtils.substring(detail, 0, expectedDetailLength);
|
||||||
|
if (StringUtils.length(detail) > expectedDetailLength) {
|
||||||
|
return trimmedDetail + TRIM_APPENDIX;
|
||||||
|
}
|
||||||
|
return trimmedDetail;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static UserDetails loadUserByUsername(final String username) {
|
||||||
|
final UserDetailsService userDetailsService = SpringContextHelper.getBean(UserDetailsService.class);
|
||||||
|
try {
|
||||||
|
final UserDetails loadUserByUsername = userDetailsService.loadUserByUsername(username);
|
||||||
|
if (loadUserByUsername == null) {
|
||||||
|
throw new UsernameNotFoundException("User not found " + username);
|
||||||
|
}
|
||||||
|
return loadUserByUsername;
|
||||||
|
} catch (final UsernameNotFoundException e) {
|
||||||
|
return new User(username, "", Collections.emptyList());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -171,9 +171,7 @@ public abstract class AbstractTableDetailsLayout<T extends NamedEntity> extends
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Label createHeaderCaption() {
|
private Label createHeaderCaption() {
|
||||||
final Label captionLabel = SPUIComponentProvider.getLabel(getDefaultCaption(),
|
return SPUIComponentProvider.getLabel(getDefaultCaption(), SPUILabelDefinitions.SP_WIDGET_CAPTION);
|
||||||
SPUILabelDefinitions.SP_WIDGET_CAPTION);
|
|
||||||
return captionLabel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected VerticalLayout getTabLayout() {
|
protected VerticalLayout getTabLayout() {
|
||||||
@@ -213,22 +211,22 @@ public abstract class AbstractTableDetailsLayout<T extends NamedEntity> extends
|
|||||||
populateDetailsWidget();
|
populateDetailsWidget();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateLogLayout(final VerticalLayout changeLogLayout, final Long lastModifiedAt,
|
protected void populateLog() {
|
||||||
final String lastModifiedBy, final Long createdAt, final String createdBy, final I18N i18n) {
|
logLayout.removeAllComponents();
|
||||||
changeLogLayout.removeAllComponents();
|
|
||||||
changeLogLayout.addComponent(SPUIComponentProvider.createNameValueLabel(i18n.get("label.created.at"),
|
|
||||||
createdAt == null ? "" : SPDateTimeUtil.getFormattedDate(createdAt)));
|
|
||||||
|
|
||||||
changeLogLayout.addComponent(SPUIComponentProvider.createNameValueLabel(i18n.get("label.created.by"),
|
logLayout.addComponent(SPUIComponentProvider.createNameValueLabel(i18n.get("label.created.at"),
|
||||||
createdBy == null ? "" : HawkbitCommonUtil.getIMUser(createdBy)));
|
SPDateTimeUtil.formatCreatedAt(selectedBaseEntity)));
|
||||||
|
|
||||||
if (null != lastModifiedAt) {
|
logLayout.addComponent(SPUIComponentProvider.createCreatedByLabel(i18n, selectedBaseEntity));
|
||||||
changeLogLayout.addComponent(SPUIComponentProvider.createNameValueLabel(i18n.get("label.modified.date"),
|
|
||||||
SPDateTimeUtil.getFormattedDate(lastModifiedAt)));
|
|
||||||
|
|
||||||
changeLogLayout.addComponent(SPUIComponentProvider.createNameValueLabel(i18n.get("label.modified.by"),
|
if (selectedBaseEntity == null || selectedBaseEntity.getLastModifiedAt() == null) {
|
||||||
lastModifiedBy == null ? "" : HawkbitCommonUtil.getIMUser(lastModifiedBy)));
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logLayout.addComponent(SPUIComponentProvider.createNameValueLabel(i18n.get("label.modified.date"),
|
||||||
|
SPDateTimeUtil.formatLastModifiedAt(selectedBaseEntity)));
|
||||||
|
|
||||||
|
logLayout.addComponent(SPUIComponentProvider.createLastModifiedByLabel(i18n, selectedBaseEntity));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateDescriptionLayout(final String descriptionLabel, final String description) {
|
protected void updateDescriptionLayout(final String descriptionLabel, final String description) {
|
||||||
@@ -320,19 +318,6 @@ public abstract class AbstractTableDetailsLayout<T extends NamedEntity> extends
|
|||||||
return detailsLayout;
|
return detailsLayout;
|
||||||
}
|
}
|
||||||
|
|
||||||
public VerticalLayout getLogLayout() {
|
|
||||||
return logLayout;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void populateLog() {
|
|
||||||
if (selectedBaseEntity == null) {
|
|
||||||
updateLogLayout(getLogLayout(), null, StringUtils.EMPTY, null, null, i18n);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
updateLogLayout(getLogLayout(), selectedBaseEntity.getLastModifiedAt(), selectedBaseEntity.getLastModifiedBy(),
|
|
||||||
selectedBaseEntity.getCreatedAt(), selectedBaseEntity.getCreatedBy(), i18n);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void populateDescription() {
|
private void populateDescription() {
|
||||||
if (selectedBaseEntity != null) {
|
if (selectedBaseEntity != null) {
|
||||||
updateDescriptionLayout(i18n.get("label.description"), selectedBaseEntity.getDescription());
|
updateDescriptionLayout(i18n.get("label.description"), selectedBaseEntity.getDescription());
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import javax.annotation.PreDestroy;
|
|||||||
import org.eclipse.hawkbit.repository.model.NamedEntity;
|
import org.eclipse.hawkbit.repository.model.NamedEntity;
|
||||||
import org.eclipse.hawkbit.ui.artifacts.event.UploadArtifactUIEvent;
|
import org.eclipse.hawkbit.ui.artifacts.event.UploadArtifactUIEvent;
|
||||||
import org.eclipse.hawkbit.ui.common.ManagmentEntityState;
|
import org.eclipse.hawkbit.ui.common.ManagmentEntityState;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||||
@@ -212,9 +212,9 @@ public abstract class AbstractTable<E extends NamedEntity, I> extends Table {
|
|||||||
item.getItemProperty(SPUILabelDefinitions.VAR_ID).setValue(baseEntity.getId());
|
item.getItemProperty(SPUILabelDefinitions.VAR_ID).setValue(baseEntity.getId());
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(baseEntity.getDescription());
|
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(baseEntity.getDescription());
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY)
|
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY)
|
||||||
.setValue(HawkbitCommonUtil.getIMUser(baseEntity.getCreatedBy()));
|
.setValue(UserDetailsFormatter.loadAndFormatCreatedBy(baseEntity));
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
|
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
|
||||||
.setValue(HawkbitCommonUtil.getIMUser(baseEntity.getLastModifiedBy()));
|
.setValue(UserDetailsFormatter.loadAndFormatLastModifiedBy(baseEntity));
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE)
|
item.getItemProperty(SPUILabelDefinitions.VAR_CREATED_DATE)
|
||||||
.setValue(SPDateTimeUtil.getFormattedDate(baseEntity.getCreatedAt()));
|
.setValue(SPDateTimeUtil.getFormattedDate(baseEntity.getCreatedAt()));
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
|
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
|
||||||
@@ -329,6 +329,17 @@ public abstract class AbstractTable<E extends NamedEntity, I> extends Table {
|
|||||||
columnList.add(
|
columnList.add(
|
||||||
new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), 0.1F));
|
new TableColumn(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE, i18n.get("header.modifiedDate"), 0.1F));
|
||||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2F));
|
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_DESC, i18n.get("header.description"), 0.2F));
|
||||||
|
setItemDescriptionGenerator((source, itemId, propertyId) -> {
|
||||||
|
|
||||||
|
if (SPUILabelDefinitions.VAR_CREATED_BY.equals(propertyId)) {
|
||||||
|
return getItem(itemId).getItemProperty(SPUILabelDefinitions.VAR_CREATED_BY).getValue().toString();
|
||||||
|
}
|
||||||
|
if (SPUILabelDefinitions.VAR_LAST_MODIFIED_BY.equals(propertyId)) {
|
||||||
|
return getItem(itemId).getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY).getValue().toString();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
return columnList;
|
return columnList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ import java.util.Arrays;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.eclipse.hawkbit.repository.model.BaseEntity;
|
||||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.decorators.SPUIButtonDecorator;
|
import org.eclipse.hawkbit.ui.decorators.SPUIButtonDecorator;
|
||||||
import org.eclipse.hawkbit.ui.decorators.SPUIComboBoxDecorator;
|
import org.eclipse.hawkbit.ui.decorators.SPUIComboBoxDecorator;
|
||||||
import org.eclipse.hawkbit.ui.decorators.SPUIHeaderLayoutDecorator;
|
import org.eclipse.hawkbit.ui.decorators.SPUIHeaderLayoutDecorator;
|
||||||
@@ -20,6 +22,7 @@ import org.eclipse.hawkbit.ui.decorators.SPUILabelDecorator;
|
|||||||
import org.eclipse.hawkbit.ui.decorators.SPUITextAreaDecorator;
|
import org.eclipse.hawkbit.ui.decorators.SPUITextAreaDecorator;
|
||||||
import org.eclipse.hawkbit.ui.decorators.SPUITextFieldDecorator;
|
import org.eclipse.hawkbit.ui.decorators.SPUITextFieldDecorator;
|
||||||
import org.eclipse.hawkbit.ui.decorators.SPUIWindowDecorator;
|
import org.eclipse.hawkbit.ui.decorators.SPUIWindowDecorator;
|
||||||
|
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -328,6 +331,50 @@ public final class SPUIComponentProvider {
|
|||||||
return nameValueLabel;
|
return nameValueLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Label createUsernameLabel(final String label, final String username) {
|
||||||
|
String loadAndFormatUsername = StringUtils.EMPTY;
|
||||||
|
if (!StringUtils.isEmpty(username)) {
|
||||||
|
loadAndFormatUsername = UserDetailsFormatter.loadAndFormatUsername(username);
|
||||||
|
}
|
||||||
|
|
||||||
|
final Label nameValueLabel = new Label(getBoldHTMLText(label) + loadAndFormatUsername, ContentMode.HTML);
|
||||||
|
nameValueLabel.setSizeFull();
|
||||||
|
nameValueLabel.addStyleName(SPUIDefinitions.TEXT_STYLE);
|
||||||
|
nameValueLabel.addStyleName("label-style");
|
||||||
|
nameValueLabel.setDescription(loadAndFormatUsername);
|
||||||
|
return nameValueLabel;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create label which represents the {@link BaseEntity#getCreatedBy()} by
|
||||||
|
* user name
|
||||||
|
*
|
||||||
|
* @param i18n
|
||||||
|
* the i18n
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return the label
|
||||||
|
*/
|
||||||
|
public static Label createCreatedByLabel(final I18N i18n, final BaseEntity baseEntity) {
|
||||||
|
return createUsernameLabel(i18n.get("label.created.by"),
|
||||||
|
baseEntity == null ? StringUtils.EMPTY : baseEntity.getCreatedBy());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create label which represents the
|
||||||
|
* {@link BaseEntity#getLastModifiedBy()()} by user name
|
||||||
|
*
|
||||||
|
* @param i18n
|
||||||
|
* the i18n
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return the label
|
||||||
|
*/
|
||||||
|
public static Label createLastModifiedByLabel(final I18N i18n, final BaseEntity baseEntity) {
|
||||||
|
return createUsernameLabel(i18n.get("label.modified.by"),
|
||||||
|
baseEntity == null ? StringUtils.EMPTY : baseEntity.getLastModifiedBy());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Bold Text.
|
* Get Bold Text.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
|||||||
import org.eclipse.hawkbit.repository.OffsetBasedPageRequest;
|
import org.eclipse.hawkbit.repository.OffsetBasedPageRequest;
|
||||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||||
import org.eclipse.hawkbit.repository.model.DistributionSetType;
|
import org.eclipse.hawkbit.repository.model.DistributionSetType;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
@@ -113,8 +114,8 @@ public class ManageDistBeanQuery extends AbstractBeanQuery<ProxyDistribution> {
|
|||||||
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
||||||
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
||||||
proxyDistribution.setDescription(distributionSet.getDescription());
|
proxyDistribution.setDescription(distributionSet.getDescription());
|
||||||
proxyDistribution.setCreatedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy()));
|
proxyDistribution.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(distributionSet));
|
||||||
proxyDistribution.setModifiedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy()));
|
proxyDistribution.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(distributionSet));
|
||||||
proxyDistribution.setIsComplete(distributionSet.isComplete());
|
proxyDistribution.setIsComplete(distributionSet.isComplete());
|
||||||
proxyDistributions.add(proxyDistribution);
|
proxyDistributions.add(proxyDistribution);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.eclipse.hawkbit.repository.SoftwareManagement;
|
|||||||
import org.eclipse.hawkbit.repository.model.CustomSoftwareModule;
|
import org.eclipse.hawkbit.repository.model.CustomSoftwareModule;
|
||||||
import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
import org.eclipse.hawkbit.repository.model.SoftwareModule;
|
||||||
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||||
@@ -99,8 +100,8 @@ public class SwModuleBeanQuery extends AbstractBeanQuery<ProxyBaseSwModuleItem>
|
|||||||
proxyItem.setVersion(bean.getVersion());
|
proxyItem.setVersion(bean.getVersion());
|
||||||
proxyItem.setVendor(bean.getVendor());
|
proxyItem.setVendor(bean.getVendor());
|
||||||
proxyItem.setDescription(bean.getDescription());
|
proxyItem.setDescription(bean.getDescription());
|
||||||
proxyItem.setCreatedByUser(HawkbitCommonUtil.getIMUser(bean.getCreatedBy()));
|
proxyItem.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(bean));
|
||||||
proxyItem.setModifiedByUser(HawkbitCommonUtil.getIMUser(bean.getLastModifiedBy()));
|
proxyItem.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(bean));
|
||||||
proxyItem.setAssigned(customSoftwareModule.isAssigned());
|
proxyItem.setAssigned(customSoftwareModule.isAssigned());
|
||||||
proxyItem.setColour(bean.getType().getColour());
|
proxyItem.setColour(bean.getType().getColour());
|
||||||
proxyItem.setTypeId(bean.getType().getId());
|
proxyItem.setTypeId(bean.getType().getId());
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import java.util.Map;
|
|||||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||||
import org.eclipse.hawkbit.repository.model.Target;
|
import org.eclipse.hawkbit.repository.model.Target;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyTarget;
|
import org.eclipse.hawkbit.ui.components.ProxyTarget;
|
||||||
import org.eclipse.hawkbit.ui.filtermanagement.state.FilterManagementUIState;
|
import org.eclipse.hawkbit.ui.filtermanagement.state.FilterManagementUIState;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
@@ -118,8 +119,8 @@ public class CustomTargetBeanQuery extends AbstractBeanQuery<ProxyTarget> {
|
|||||||
prxyTarget.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(targ.getLastModifiedAt()));
|
prxyTarget.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(targ.getLastModifiedAt()));
|
||||||
prxyTarget.setCreatedDate(SPDateTimeUtil.getFormattedDate(targ.getCreatedAt()));
|
prxyTarget.setCreatedDate(SPDateTimeUtil.getFormattedDate(targ.getCreatedAt()));
|
||||||
prxyTarget.setCreatedAt(targ.getCreatedAt());
|
prxyTarget.setCreatedAt(targ.getCreatedAt());
|
||||||
prxyTarget.setCreatedByUser(HawkbitCommonUtil.getIMUser(targ.getCreatedBy()));
|
prxyTarget.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(targ));
|
||||||
prxyTarget.setModifiedByUser(HawkbitCommonUtil.getIMUser(targ.getLastModifiedBy()));
|
prxyTarget.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(targ));
|
||||||
final Target target = getTargetManagement().findTargetByControllerIDWithDetails(targ.getControllerId());
|
final Target target = getTargetManagement().findTargetByControllerIDWithDetails(targ.getControllerId());
|
||||||
final DistributionSet installedDistributionSet = target.getTargetInfo().getInstalledDistributionSet();
|
final DistributionSet installedDistributionSet = target.getTargetInfo().getInstalledDistributionSet();
|
||||||
prxyTarget.setInstalledDistributionSet(installedDistributionSet);
|
prxyTarget.setInstalledDistributionSet(installedDistributionSet);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyTargetFilter;
|
import org.eclipse.hawkbit.ui.components.ProxyTargetFilter;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
@@ -93,9 +94,9 @@ public class TargetFilterBeanQuery extends AbstractBeanQuery<ProxyTargetFilter>
|
|||||||
proxyTarFilter.setName(tarFilterQuery.getName());
|
proxyTarFilter.setName(tarFilterQuery.getName());
|
||||||
proxyTarFilter.setId(tarFilterQuery.getId());
|
proxyTarFilter.setId(tarFilterQuery.getId());
|
||||||
proxyTarFilter.setCreatedDate(SPDateTimeUtil.getFormattedDate(tarFilterQuery.getCreatedAt()));
|
proxyTarFilter.setCreatedDate(SPDateTimeUtil.getFormattedDate(tarFilterQuery.getCreatedAt()));
|
||||||
proxyTarFilter.setCreatedBy(HawkbitCommonUtil.getIMUser(tarFilterQuery.getCreatedBy()));
|
proxyTarFilter.setCreatedBy(UserDetailsFormatter.loadAndFormatCreatedBy(tarFilterQuery));
|
||||||
proxyTarFilter.setModifiedDate(SPDateTimeUtil.getFormattedDate(tarFilterQuery.getLastModifiedAt()));
|
proxyTarFilter.setModifiedDate(SPDateTimeUtil.getFormattedDate(tarFilterQuery.getLastModifiedAt()));
|
||||||
proxyTarFilter.setLastModifiedBy(HawkbitCommonUtil.getIMUser(tarFilterQuery.getLastModifiedBy()));
|
proxyTarFilter.setLastModifiedBy(UserDetailsFormatter.loadAndFormatLastModifiedBy(tarFilterQuery));
|
||||||
proxyTarFilter.setQuery(tarFilterQuery.getQuery());
|
proxyTarFilter.setQuery(tarFilterQuery.getQuery());
|
||||||
proxyTargetFilter.add(proxyTarFilter);
|
proxyTargetFilter.add(proxyTarFilter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import org.eclipse.hawkbit.repository.DistributionSetFilter.DistributionSetFilte
|
|||||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||||
import org.eclipse.hawkbit.repository.OffsetBasedPageRequest;
|
import org.eclipse.hawkbit.repository.OffsetBasedPageRequest;
|
||||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
@@ -129,8 +130,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
|
|||||||
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
||||||
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
||||||
proxyDistribution.setDescription(distributionSet.getDescription());
|
proxyDistribution.setDescription(distributionSet.getDescription());
|
||||||
proxyDistribution.setCreatedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy()));
|
proxyDistribution.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(distributionSet));
|
||||||
proxyDistribution.setModifiedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy()));
|
proxyDistribution.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(distributionSet));
|
||||||
proxyDistribution.setNameVersion(
|
proxyDistribution.setNameVersion(
|
||||||
HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
|
HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
|
||||||
proxyDistributions.add(proxyDistribution);
|
proxyDistributions.add(proxyDistribution);
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import org.eclipse.hawkbit.repository.model.DistributionSet;
|
|||||||
import org.eclipse.hawkbit.repository.model.Target;
|
import org.eclipse.hawkbit.repository.model.Target;
|
||||||
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||||
import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
|
import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyTarget;
|
import org.eclipse.hawkbit.ui.components.ProxyTarget;
|
||||||
import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
|
import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
@@ -130,8 +131,8 @@ public class TargetBeanQuery extends AbstractBeanQuery<ProxyTarget> {
|
|||||||
prxyTarget.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(targ.getLastModifiedAt()));
|
prxyTarget.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(targ.getLastModifiedAt()));
|
||||||
prxyTarget.setCreatedDate(SPDateTimeUtil.getFormattedDate(targ.getCreatedAt()));
|
prxyTarget.setCreatedDate(SPDateTimeUtil.getFormattedDate(targ.getCreatedAt()));
|
||||||
prxyTarget.setCreatedAt(targ.getCreatedAt());
|
prxyTarget.setCreatedAt(targ.getCreatedAt());
|
||||||
prxyTarget.setCreatedByUser(HawkbitCommonUtil.getIMUser(targ.getCreatedBy()));
|
prxyTarget.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(targ));
|
||||||
prxyTarget.setModifiedByUser(HawkbitCommonUtil.getIMUser(targ.getLastModifiedBy()));
|
prxyTarget.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(targ));
|
||||||
|
|
||||||
if (pinnedDistId == null) {
|
if (pinnedDistId == null) {
|
||||||
prxyTarget.setInstalledDistributionSet(null);
|
prxyTarget.setInstalledDistributionSet(null);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.eclipse.hawkbit.repository.model.TargetInfo;
|
|||||||
import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult;
|
import org.eclipse.hawkbit.repository.model.TargetTagAssignmentResult;
|
||||||
import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
|
import org.eclipse.hawkbit.repository.model.TargetUpdateStatus;
|
||||||
import org.eclipse.hawkbit.ui.common.ManagmentEntityState;
|
import org.eclipse.hawkbit.ui.common.ManagmentEntityState;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.common.table.AbstractTable;
|
import org.eclipse.hawkbit.ui.common.table.AbstractTable;
|
||||||
import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
|
import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
|
||||||
import org.eclipse.hawkbit.ui.filter.FilterExpression;
|
import org.eclipse.hawkbit.ui.filter.FilterExpression;
|
||||||
@@ -739,7 +740,7 @@ public class TargetTable extends AbstractTable<Target, TargetIdName> implements
|
|||||||
.setValue(updatedTarget.getTargetInfo().getLastTargetQuery());
|
.setValue(updatedTarget.getTargetInfo().getLastTargetQuery());
|
||||||
|
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
|
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_BY)
|
||||||
.setValue(HawkbitCommonUtil.getIMUser(updatedTarget.getLastModifiedBy()));
|
.setValue(UserDetailsFormatter.loadAndFormatLastModifiedBy(updatedTarget));
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
|
item.getItemProperty(SPUILabelDefinitions.VAR_LAST_MODIFIED_DATE)
|
||||||
.setValue(SPDateTimeUtil.getFormattedDate(updatedTarget.getLastModifiedAt()));
|
.setValue(SPDateTimeUtil.getFormattedDate(updatedTarget.getLastModifiedAt()));
|
||||||
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(updatedTarget.getDescription());
|
item.getItemProperty(SPUILabelDefinitions.VAR_DESC).setValue(updatedTarget.getDescription());
|
||||||
|
|||||||
@@ -18,23 +18,20 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.eclipse.hawkbit.HawkbitServerProperties;
|
import org.eclipse.hawkbit.HawkbitServerProperties;
|
||||||
import org.eclipse.hawkbit.im.authentication.PermissionService;
|
import org.eclipse.hawkbit.im.authentication.PermissionService;
|
||||||
import org.eclipse.hawkbit.im.authentication.UserPrincipal;
|
|
||||||
import org.eclipse.hawkbit.ui.UiProperties;
|
import org.eclipse.hawkbit.ui.UiProperties;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
||||||
import org.eclipse.hawkbit.ui.menu.DashboardEvent.PostViewChangeEvent;
|
import org.eclipse.hawkbit.ui.menu.DashboardEvent.PostViewChangeEvent;
|
||||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider;
|
import org.eclipse.hawkbit.ui.utils.SPUIComponetIdProvider;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.core.context.SecurityContext;
|
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
|
||||||
import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
|
|
||||||
|
|
||||||
import com.vaadin.server.FontAwesome;
|
import com.vaadin.server.FontAwesome;
|
||||||
import com.vaadin.server.Page;
|
import com.vaadin.server.Page;
|
||||||
import com.vaadin.server.ThemeResource;
|
import com.vaadin.server.ThemeResource;
|
||||||
import com.vaadin.server.VaadinService;
|
|
||||||
import com.vaadin.shared.ui.label.ContentMode;
|
import com.vaadin.shared.ui.label.ContentMode;
|
||||||
import com.vaadin.spring.annotation.SpringComponent;
|
import com.vaadin.spring.annotation.SpringComponent;
|
||||||
import com.vaadin.spring.annotation.UIScope;
|
import com.vaadin.spring.annotation.UIScope;
|
||||||
@@ -189,63 +186,27 @@ public final class DashboardMenu extends CustomComponent {
|
|||||||
return links;
|
return links;
|
||||||
}
|
}
|
||||||
|
|
||||||
private UserDetails getCurrentUser() {
|
|
||||||
final SecurityContext context = (SecurityContext) VaadinService.getCurrentRequest().getWrappedSession()
|
|
||||||
.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY);
|
|
||||||
return (UserDetails) context.getAuthentication().getPrincipal();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Component buildUserMenu() {
|
private Component buildUserMenu() {
|
||||||
final MenuBar settings = new MenuBar();
|
final MenuBar settings = new MenuBar();
|
||||||
settings.addStyleName("user-menu");
|
settings.addStyleName("user-menu");
|
||||||
final UserDetails user = getCurrentUser();
|
settings.setHtmlContentAllowed(true);
|
||||||
final MenuItem settingsItem = settings.addItem("", new ThemeResource("images/profile-pic-57px.jpg"), null);
|
final MenuItem settingsItem = settings.addItem("", new ThemeResource("images/profile-pic-57px.jpg"), null);
|
||||||
if (user instanceof UserPrincipal
|
|
||||||
&& (((UserPrincipal) user).getFirstname() != null || ((UserPrincipal) user).getLastname() != null)) {
|
final String formattedTenant = UserDetailsFormatter.formatCurrentTenant();
|
||||||
settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n"
|
final String formattedUsername = UserDetailsFormatter.loadAndFormatCurrentUsername();
|
||||||
+ concateFNameLName(((UserPrincipal) user).getFirstname(), ((UserPrincipal) user).getLastname()));
|
String tenantAndUsernameHtml = "";
|
||||||
settingsItem.setDescription(
|
if (!StringUtils.isEmpty(formattedTenant)) {
|
||||||
((UserPrincipal) user).getFirstname() + " / " + ((UserPrincipal) user).getLastname());
|
tenantAndUsernameHtml += formattedTenant + "<br>";
|
||||||
} else if (user instanceof UserPrincipal) {
|
|
||||||
if (((UserPrincipal) user).getLoginname().length() > 10) {
|
|
||||||
settingsItem.setText(trimTanent(((UserPrincipal) user).getTenant()) + "\n"
|
|
||||||
+ ((UserPrincipal) user).getLoginname().substring(0, 10) + "..");
|
|
||||||
} else {
|
|
||||||
settingsItem.setText(
|
|
||||||
trimTanent(((UserPrincipal) user).getTenant()) + "\n" + ((UserPrincipal) user).getLoginname());
|
|
||||||
}
|
|
||||||
settingsItem.setDescription(((UserPrincipal) user).getLoginname());
|
|
||||||
} else if (user != null) {
|
|
||||||
settingsItem.setText(user.getUsername());
|
|
||||||
settingsItem.setDescription(user.getUsername());
|
|
||||||
}
|
}
|
||||||
|
tenantAndUsernameHtml += formattedUsername;
|
||||||
|
settingsItem.setText(tenantAndUsernameHtml);
|
||||||
|
settingsItem.setDescription(formattedUsername);
|
||||||
|
settingsItem.setStyleName("user-menuitem");
|
||||||
|
|
||||||
settingsItem.addItem("Sign Out", selectedItem -> Page.getCurrent().setLocation("/UI/logout"));
|
settingsItem.addItem("Sign Out", selectedItem -> Page.getCurrent().setLocation("/UI/logout"));
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String concateFNameLName(final String fName, final String lName) {
|
|
||||||
final StringBuilder userName = new StringBuilder();
|
|
||||||
if (fName != null && fName.length() > 6) {
|
|
||||||
userName.append(fName.substring(0, 6) + ".." + ", ");
|
|
||||||
} else {
|
|
||||||
userName.append(fName).append(", ");
|
|
||||||
}
|
|
||||||
if (lName != null && lName.length() > 6) {
|
|
||||||
userName.append(lName.substring(0, 6) + "..");
|
|
||||||
} else {
|
|
||||||
userName.append(lName);
|
|
||||||
}
|
|
||||||
return userName.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String trimTanent(final String tanent) {
|
|
||||||
if (tanent != null && tanent.length() > 8) {
|
|
||||||
return tanent.substring(0, 8) + "..";
|
|
||||||
}
|
|
||||||
return tanent;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Component buildToggleButton() {
|
private Component buildToggleButton() {
|
||||||
final Button valoMenuToggleButton = new Button("Menu", (ClickListener) event -> {
|
final Button valoMenuToggleButton = new Button("Menu", (ClickListener) event -> {
|
||||||
if (getCompositionRoot().getStyleName().contains(STYLE_VISIBLE)) {
|
if (getCompositionRoot().getStyleName().contains(STYLE_VISIBLE)) {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ import org.eclipse.hawkbit.repository.DistributionSetFilter;
|
|||||||
import org.eclipse.hawkbit.repository.DistributionSetFilter.DistributionSetFilterBuilder;
|
import org.eclipse.hawkbit.repository.DistributionSetFilter.DistributionSetFilterBuilder;
|
||||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||||
@@ -62,7 +63,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
|
|||||||
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]);
|
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]);
|
||||||
// Add sort
|
// Add sort
|
||||||
for (int distId = 1; distId < sortPropertyIds.length; distId++) {
|
for (int distId = 1; distId < sortPropertyIds.length; distId++) {
|
||||||
sort.and(new Sort(sortStates[distId] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[distId]));
|
sort.and(new Sort(sortStates[distId] ? Direction.ASC : Direction.DESC,
|
||||||
|
(String) sortPropertyIds[distId]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,8 +105,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
|
|||||||
final List<ProxyDistribution> proxyDistributions = new ArrayList<>();
|
final List<ProxyDistribution> proxyDistributions = new ArrayList<>();
|
||||||
for (final DistributionSet distributionSet : distBeans) {
|
for (final DistributionSet distributionSet : distBeans) {
|
||||||
final ProxyDistribution proxyDistribution = new ProxyDistribution();
|
final ProxyDistribution proxyDistribution = new ProxyDistribution();
|
||||||
proxyDistribution.setName(HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(),
|
proxyDistribution.setName(
|
||||||
distributionSet.getVersion()));
|
HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
|
||||||
proxyDistribution.setDescription(distributionSet.getDescription());
|
proxyDistribution.setDescription(distributionSet.getDescription());
|
||||||
proxyDistribution.setDistId(distributionSet.getId());
|
proxyDistribution.setDistId(distributionSet.getId());
|
||||||
proxyDistribution.setId(distributionSet.getId());
|
proxyDistribution.setId(distributionSet.getId());
|
||||||
@@ -112,8 +114,8 @@ public class DistributionBeanQuery extends AbstractBeanQuery<ProxyDistribution>
|
|||||||
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
||||||
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
||||||
proxyDistribution.setDescription(distributionSet.getDescription());
|
proxyDistribution.setDescription(distributionSet.getDescription());
|
||||||
proxyDistribution.setCreatedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getCreatedBy()));
|
proxyDistribution.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(distributionSet));
|
||||||
proxyDistribution.setModifiedByUser(HawkbitCommonUtil.getIMUser(distributionSet.getLastModifiedBy()));
|
proxyDistribution.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(distributionSet));
|
||||||
proxyDistribution.setIsComplete(distributionSet.isComplete());
|
proxyDistribution.setIsComplete(distributionSet.isComplete());
|
||||||
proxyDistributions.add(proxyDistribution);
|
proxyDistributions.add(proxyDistribution);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
|||||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||||
import org.eclipse.hawkbit.repository.model.Rollout;
|
import org.eclipse.hawkbit.repository.model.Rollout;
|
||||||
import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
|
import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RolloutRendererData;
|
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RolloutRendererData;
|
||||||
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
|
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
@@ -40,165 +41,166 @@ import com.google.common.base.Strings;
|
|||||||
*/
|
*/
|
||||||
public class RolloutBeanQuery extends AbstractBeanQuery<ProxyRollout> {
|
public class RolloutBeanQuery extends AbstractBeanQuery<ProxyRollout> {
|
||||||
|
|
||||||
private static final long serialVersionUID = 4027879794344836185L;
|
private static final long serialVersionUID = 4027879794344836185L;
|
||||||
|
|
||||||
private final String searchText;
|
private final String searchText;
|
||||||
|
|
||||||
private Sort sort = new Sort(Direction.ASC, "createdAt");
|
private Sort sort = new Sort(Direction.ASC, "createdAt");
|
||||||
|
|
||||||
private transient RolloutManagement rolloutManagement;
|
private transient RolloutManagement rolloutManagement;
|
||||||
|
|
||||||
private transient TargetFilterQueryManagement filterQueryManagement;
|
private transient TargetFilterQueryManagement filterQueryManagement;
|
||||||
|
|
||||||
private transient RolloutUIState rolloutUIState;
|
private transient RolloutUIState rolloutUIState;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parametric Constructor.
|
* Parametric Constructor.
|
||||||
*
|
*
|
||||||
* @param definition
|
* @param definition
|
||||||
* as QueryDefinition
|
* as QueryDefinition
|
||||||
* @param queryConfig
|
* @param queryConfig
|
||||||
* as Config
|
* as Config
|
||||||
* @param sortIds
|
* @param sortIds
|
||||||
* as sort
|
* as sort
|
||||||
* @param sortStates
|
* @param sortStates
|
||||||
* as Sort status
|
* as Sort status
|
||||||
*/
|
*/
|
||||||
public RolloutBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig,
|
public RolloutBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig,
|
||||||
final Object[] sortIds, final boolean[] sortStates) {
|
final Object[] sortIds, final boolean[] sortStates) {
|
||||||
super(definition, queryConfig, sortIds, sortStates);
|
super(definition, queryConfig, sortIds, sortStates);
|
||||||
|
|
||||||
searchText = getSearchText();
|
searchText = getSearchText();
|
||||||
|
|
||||||
if (HawkbitCommonUtil.checkBolArray(sortStates)) {
|
if (HawkbitCommonUtil.checkBolArray(sortStates)) {
|
||||||
// Initalize Sor
|
// Initalize Sor
|
||||||
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortIds[0]);
|
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortIds[0]);
|
||||||
// Add sort.
|
// Add sort.
|
||||||
for (int targetId = 1; targetId < sortIds.length; targetId++) {
|
for (int targetId = 1; targetId < sortIds.length; targetId++) {
|
||||||
sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC, (String) sortIds[targetId]));
|
sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC, (String) sortIds[targetId]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getSearchText() {
|
private String getSearchText() {
|
||||||
if (getRolloutUIState().getSearchText().isPresent()) {
|
if (getRolloutUIState().getSearchText().isPresent()) {
|
||||||
return String.format("%%%s%%", getRolloutUIState().getSearchText().get());
|
return String.format("%%%s%%", getRolloutUIState().getSearchText().get());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ProxyRollout constructBean() {
|
protected ProxyRollout constructBean() {
|
||||||
return new ProxyRollout();
|
return new ProxyRollout();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see
|
* @see
|
||||||
* org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#loadBeans(int,
|
* org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#loadBeans(int,
|
||||||
* int)
|
* int)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected List<ProxyRollout> loadBeans(final int startIndex, final int count) {
|
protected List<ProxyRollout> loadBeans(final int startIndex, final int count) {
|
||||||
final Slice<Rollout> rolloutBeans;
|
final Slice<Rollout> rolloutBeans;
|
||||||
if (Strings.isNullOrEmpty(searchText)) {
|
if (Strings.isNullOrEmpty(searchText)) {
|
||||||
rolloutBeans = getRolloutManagement().findAllRolloutsWithDetailedStatus(
|
rolloutBeans = getRolloutManagement().findAllRolloutsWithDetailedStatus(
|
||||||
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort));
|
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort));
|
||||||
} else {
|
} else {
|
||||||
rolloutBeans = getRolloutManagement().findRolloutByFilters(
|
rolloutBeans = getRolloutManagement().findRolloutByFilters(
|
||||||
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort),
|
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort),
|
||||||
searchText);
|
searchText);
|
||||||
}
|
}
|
||||||
return getProxyRolloutList(rolloutBeans);
|
return getProxyRolloutList(rolloutBeans);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ProxyRollout> getProxyRolloutList(final Slice<Rollout> rolloutBeans) {
|
private List<ProxyRollout> getProxyRolloutList(final Slice<Rollout> rolloutBeans) {
|
||||||
final List<ProxyRollout> proxyRolloutList = new ArrayList<>();
|
final List<ProxyRollout> proxyRolloutList = new ArrayList<>();
|
||||||
for (final Rollout rollout : rolloutBeans) {
|
for (final Rollout rollout : rolloutBeans) {
|
||||||
final ProxyRollout proxyRollout = new ProxyRollout();
|
final ProxyRollout proxyRollout = new ProxyRollout();
|
||||||
proxyRollout.setName(rollout.getName());
|
proxyRollout.setName(rollout.getName());
|
||||||
proxyRollout.setDescription(rollout.getDescription());
|
proxyRollout.setDescription(rollout.getDescription());
|
||||||
final DistributionSet distributionSet = rollout.getDistributionSet();
|
final DistributionSet distributionSet = rollout.getDistributionSet();
|
||||||
proxyRollout.setDistributionSetNameVersion(
|
proxyRollout.setDistributionSetNameVersion(
|
||||||
HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
|
HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
|
||||||
proxyRollout.setDistributionSet(distributionSet);
|
proxyRollout.setDistributionSet(distributionSet);
|
||||||
proxyRollout.setNumberOfGroups(Long.valueOf(rollout.getRolloutGroups().size()));
|
proxyRollout.setNumberOfGroups(Long.valueOf(rollout.getRolloutGroups().size()));
|
||||||
proxyRollout.setCreatedDate(SPDateTimeUtil.getFormattedDate(rollout.getCreatedAt()));
|
proxyRollout.setCreatedDate(SPDateTimeUtil.getFormattedDate(rollout.getCreatedAt()));
|
||||||
proxyRollout.setModifiedDate(SPDateTimeUtil.getFormattedDate(rollout.getLastModifiedAt()));
|
proxyRollout.setModifiedDate(SPDateTimeUtil.getFormattedDate(rollout.getLastModifiedAt()));
|
||||||
proxyRollout.setCreatedBy(HawkbitCommonUtil.getIMUser(rollout.getCreatedBy()));
|
proxyRollout.setCreatedBy(UserDetailsFormatter.loadAndFormatCreatedBy(rollout));
|
||||||
proxyRollout.setLastModifiedBy(HawkbitCommonUtil.getIMUser(rollout.getLastModifiedBy()));
|
proxyRollout.setLastModifiedBy(UserDetailsFormatter.loadAndFormatLastModifiedBy(rollout));
|
||||||
proxyRollout.setForcedTime(rollout.getForcedTime());
|
proxyRollout.setForcedTime(rollout.getForcedTime());
|
||||||
proxyRollout.setId(rollout.getId());
|
proxyRollout.setId(rollout.getId());
|
||||||
proxyRollout.setStatus(rollout.getStatus());
|
proxyRollout.setStatus(rollout.getStatus());
|
||||||
proxyRollout.setRolloutRendererData(new RolloutRendererData(rollout.getName(), rollout.getStatus().toString()));
|
proxyRollout
|
||||||
|
.setRolloutRendererData(new RolloutRendererData(rollout.getName(), rollout.getStatus().toString()));
|
||||||
|
|
||||||
final TotalTargetCountStatus totalTargetCountActionStatus = rollout.getTotalTargetCountStatus();
|
final TotalTargetCountStatus totalTargetCountActionStatus = rollout.getTotalTargetCountStatus();
|
||||||
proxyRollout.setTotalTargetCountStatus(totalTargetCountActionStatus);
|
proxyRollout.setTotalTargetCountStatus(totalTargetCountActionStatus);
|
||||||
proxyRollout.setTotalTargetsCount(String.valueOf(rollout.getTotalTargets()));
|
proxyRollout.setTotalTargetsCount(String.valueOf(rollout.getTotalTargets()));
|
||||||
|
|
||||||
proxyRolloutList.add(proxyRollout);
|
proxyRolloutList.add(proxyRollout);
|
||||||
}
|
}
|
||||||
return proxyRolloutList;
|
return proxyRolloutList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see
|
* @see
|
||||||
* org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#saveBeans(java
|
* org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#saveBeans(java
|
||||||
* .util.List, java.util.List, java.util.List)
|
* .util.List, java.util.List, java.util.List)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void saveBeans(final List<ProxyRollout> arg0, final List<ProxyRollout> arg1,
|
protected void saveBeans(final List<ProxyRollout> arg0, final List<ProxyRollout> arg1,
|
||||||
final List<ProxyRollout> arg2) {
|
final List<ProxyRollout> arg2) {
|
||||||
/**
|
/**
|
||||||
* CRUD operations on Target will be done through repository methods
|
* CRUD operations on Target will be done through repository methods
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#size()
|
* @see org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#size()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int size() {
|
public int size() {
|
||||||
int size = getRolloutManagement().countRolloutsAll().intValue();
|
int size = getRolloutManagement().countRolloutsAll().intValue();
|
||||||
if (!Strings.isNullOrEmpty(searchText)) {
|
if (!Strings.isNullOrEmpty(searchText)) {
|
||||||
size = getRolloutManagement().countRolloutsAllByFilters(searchText).intValue();
|
size = getRolloutManagement().countRolloutsAllByFilters(searchText).intValue();
|
||||||
}
|
}
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the rolloutManagement
|
* @return the rolloutManagement
|
||||||
*/
|
*/
|
||||||
public RolloutManagement getRolloutManagement() {
|
public RolloutManagement getRolloutManagement() {
|
||||||
if (null == rolloutManagement) {
|
if (null == rolloutManagement) {
|
||||||
rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
|
rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
|
||||||
}
|
}
|
||||||
return rolloutManagement;
|
return rolloutManagement;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the filterQueryManagement
|
* @return the filterQueryManagement
|
||||||
*/
|
*/
|
||||||
public TargetFilterQueryManagement getFilterQueryManagement() {
|
public TargetFilterQueryManagement getFilterQueryManagement() {
|
||||||
if (null == filterQueryManagement) {
|
if (null == filterQueryManagement) {
|
||||||
filterQueryManagement = SpringContextHelper.getBean(TargetFilterQueryManagement.class);
|
filterQueryManagement = SpringContextHelper.getBean(TargetFilterQueryManagement.class);
|
||||||
}
|
}
|
||||||
return filterQueryManagement;
|
return filterQueryManagement;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the rolloutUIState
|
* @return the rolloutUIState
|
||||||
*/
|
*/
|
||||||
public RolloutUIState getRolloutUIState() {
|
public RolloutUIState getRolloutUIState() {
|
||||||
if (null == rolloutUIState) {
|
if (null == rolloutUIState) {
|
||||||
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class);
|
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class);
|
||||||
}
|
}
|
||||||
return rolloutUIState;
|
return rolloutUIState;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import java.util.Map;
|
|||||||
import org.eclipse.hawkbit.repository.RolloutGroupManagement;
|
import org.eclipse.hawkbit.repository.RolloutGroupManagement;
|
||||||
import org.eclipse.hawkbit.repository.RolloutManagement;
|
import org.eclipse.hawkbit.repository.RolloutManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.RolloutGroup;
|
import org.eclipse.hawkbit.repository.model.RolloutGroup;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RolloutRendererData;
|
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RolloutRendererData;
|
||||||
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
|
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
@@ -35,160 +36,160 @@ import org.vaadin.addons.lazyquerycontainer.QueryDefinition;
|
|||||||
*/
|
*/
|
||||||
public class RolloutGroupBeanQuery extends AbstractBeanQuery<ProxyRolloutGroup> {
|
public class RolloutGroupBeanQuery extends AbstractBeanQuery<ProxyRolloutGroup> {
|
||||||
|
|
||||||
private static final long serialVersionUID = 5342450502894318589L;
|
private static final long serialVersionUID = 5342450502894318589L;
|
||||||
|
|
||||||
private Sort sort = new Sort(Direction.ASC, "createdAt");
|
private Sort sort = new Sort(Direction.ASC, "createdAt");
|
||||||
|
|
||||||
private transient Page<RolloutGroup> firstPageRolloutGroupSets = null;
|
private transient Page<RolloutGroup> firstPageRolloutGroupSets = null;
|
||||||
|
|
||||||
private transient RolloutManagement rolloutManagement;
|
private transient RolloutManagement rolloutManagement;
|
||||||
|
|
||||||
private transient RolloutGroupManagement rolloutGroupManagement;
|
private transient RolloutGroupManagement rolloutGroupManagement;
|
||||||
|
|
||||||
private transient RolloutUIState rolloutUIState;
|
private transient RolloutUIState rolloutUIState;
|
||||||
|
|
||||||
private final Long rolloutId;
|
private final Long rolloutId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parametric Constructor.
|
* Parametric Constructor.
|
||||||
*
|
*
|
||||||
* @param definition
|
* @param definition
|
||||||
* as QueryDefinition
|
* as QueryDefinition
|
||||||
* @param queryConfig
|
* @param queryConfig
|
||||||
* as Config
|
* as Config
|
||||||
* @param sortPropertyIds
|
* @param sortPropertyIds
|
||||||
* as sort
|
* as sort
|
||||||
* @param sortStates
|
* @param sortStates
|
||||||
* as Sort status
|
* as Sort status
|
||||||
*/
|
*/
|
||||||
public RolloutGroupBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig,
|
public RolloutGroupBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig,
|
||||||
final Object[] sortPropertyIds, final boolean[] sortStates) {
|
final Object[] sortPropertyIds, final boolean[] sortStates) {
|
||||||
super(definition, queryConfig, sortPropertyIds, sortStates);
|
super(definition, queryConfig, sortPropertyIds, sortStates);
|
||||||
|
|
||||||
rolloutId = getRolloutId();
|
rolloutId = getRolloutId();
|
||||||
|
|
||||||
if (HawkbitCommonUtil.checkBolArray(sortStates)) {
|
if (HawkbitCommonUtil.checkBolArray(sortStates)) {
|
||||||
// Initalize Sor
|
// Initalize Sor
|
||||||
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]);
|
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]);
|
||||||
// Add sort.
|
// Add sort.
|
||||||
for (int targetId = 1; targetId < sortPropertyIds.length; targetId++) {
|
for (int targetId = 1; targetId < sortPropertyIds.length; targetId++) {
|
||||||
sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC,
|
sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC,
|
||||||
(String) sortPropertyIds[targetId]));
|
(String) sortPropertyIds[targetId]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Long getRolloutId() {
|
private Long getRolloutId() {
|
||||||
return getRolloutUIState().getRolloutId().isPresent() ? getRolloutUIState().getRolloutId().get() : null;
|
return getRolloutUIState().getRolloutId().isPresent() ? getRolloutUIState().getRolloutId().get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ProxyRolloutGroup constructBean() {
|
protected ProxyRolloutGroup constructBean() {
|
||||||
return new ProxyRolloutGroup();
|
return new ProxyRolloutGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<ProxyRolloutGroup> loadBeans(final int startIndex, final int count) {
|
protected List<ProxyRolloutGroup> loadBeans(final int startIndex, final int count) {
|
||||||
List<RolloutGroup> proxyRolloutGroupsList = new ArrayList<>();
|
List<RolloutGroup> proxyRolloutGroupsList = new ArrayList<>();
|
||||||
if (startIndex == 0 && firstPageRolloutGroupSets != null) {
|
if (startIndex == 0 && firstPageRolloutGroupSets != null) {
|
||||||
proxyRolloutGroupsList = firstPageRolloutGroupSets.getContent();
|
proxyRolloutGroupsList = firstPageRolloutGroupSets.getContent();
|
||||||
} else if (null != rolloutId) {
|
} else if (null != rolloutId) {
|
||||||
proxyRolloutGroupsList = getRolloutGroupManagement()
|
proxyRolloutGroupsList = getRolloutGroupManagement()
|
||||||
.findAllRolloutGroupsWithDetailedStatus(rolloutId, new PageRequest(startIndex / count, count))
|
.findAllRolloutGroupsWithDetailedStatus(rolloutId, new PageRequest(startIndex / count, count))
|
||||||
.getContent();
|
.getContent();
|
||||||
}
|
}
|
||||||
return getProxyRolloutGroupList(proxyRolloutGroupsList);
|
return getProxyRolloutGroupList(proxyRolloutGroupsList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ProxyRolloutGroup> getProxyRolloutGroupList(final List<RolloutGroup> rolloutGroupBeans) {
|
private List<ProxyRolloutGroup> getProxyRolloutGroupList(final List<RolloutGroup> rolloutGroupBeans) {
|
||||||
final List<ProxyRolloutGroup> proxyRolloutGroupsList = new ArrayList<>();
|
final List<ProxyRolloutGroup> proxyRolloutGroupsList = new ArrayList<>();
|
||||||
for (final RolloutGroup rolloutGroup : rolloutGroupBeans) {
|
for (final RolloutGroup rolloutGroup : rolloutGroupBeans) {
|
||||||
final ProxyRolloutGroup proxyRolloutGroup = new ProxyRolloutGroup();
|
final ProxyRolloutGroup proxyRolloutGroup = new ProxyRolloutGroup();
|
||||||
proxyRolloutGroup.setName(rolloutGroup.getName());
|
proxyRolloutGroup.setName(rolloutGroup.getName());
|
||||||
proxyRolloutGroup.setDescription(rolloutGroup.getDescription());
|
proxyRolloutGroup.setDescription(rolloutGroup.getDescription());
|
||||||
proxyRolloutGroup.setCreatedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getCreatedAt()));
|
proxyRolloutGroup.setCreatedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getCreatedAt()));
|
||||||
proxyRolloutGroup.setModifiedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getLastModifiedAt()));
|
proxyRolloutGroup.setModifiedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getLastModifiedAt()));
|
||||||
proxyRolloutGroup.setCreatedBy(HawkbitCommonUtil.getIMUser(rolloutGroup.getCreatedBy()));
|
proxyRolloutGroup.setCreatedBy(UserDetailsFormatter.loadAndFormatCreatedBy(rolloutGroup));
|
||||||
proxyRolloutGroup.setLastModifiedBy(HawkbitCommonUtil.getIMUser(rolloutGroup.getLastModifiedBy()));
|
proxyRolloutGroup.setLastModifiedBy(UserDetailsFormatter.loadAndFormatLastModifiedBy(rolloutGroup));
|
||||||
proxyRolloutGroup.setId(rolloutGroup.getId());
|
proxyRolloutGroup.setId(rolloutGroup.getId());
|
||||||
proxyRolloutGroup.setStatus(rolloutGroup.getStatus());
|
proxyRolloutGroup.setStatus(rolloutGroup.getStatus());
|
||||||
proxyRolloutGroup.setErrorAction(rolloutGroup.getErrorAction());
|
proxyRolloutGroup.setErrorAction(rolloutGroup.getErrorAction());
|
||||||
proxyRolloutGroup.setErrorActionExp(rolloutGroup.getErrorActionExp());
|
proxyRolloutGroup.setErrorActionExp(rolloutGroup.getErrorActionExp());
|
||||||
proxyRolloutGroup.setErrorCondition(rolloutGroup.getErrorCondition());
|
proxyRolloutGroup.setErrorCondition(rolloutGroup.getErrorCondition());
|
||||||
proxyRolloutGroup.setErrorConditionExp(rolloutGroup.getErrorConditionExp());
|
proxyRolloutGroup.setErrorConditionExp(rolloutGroup.getErrorConditionExp());
|
||||||
proxyRolloutGroup.setSuccessCondition(rolloutGroup.getSuccessCondition());
|
proxyRolloutGroup.setSuccessCondition(rolloutGroup.getSuccessCondition());
|
||||||
proxyRolloutGroup.setSuccessConditionExp(rolloutGroup.getSuccessConditionExp());
|
proxyRolloutGroup.setSuccessConditionExp(rolloutGroup.getSuccessConditionExp());
|
||||||
proxyRolloutGroup.setFinishedPercentage(calculateFinishedPercentage(rolloutGroup));
|
proxyRolloutGroup.setFinishedPercentage(calculateFinishedPercentage(rolloutGroup));
|
||||||
|
|
||||||
proxyRolloutGroup.setRolloutRendererData(new RolloutRendererData(rolloutGroup.getName(), null));
|
proxyRolloutGroup.setRolloutRendererData(new RolloutRendererData(rolloutGroup.getName(), null));
|
||||||
|
|
||||||
proxyRolloutGroup.setTotalTargetsCount(String.valueOf(rolloutGroup.getTotalTargets()));
|
proxyRolloutGroup.setTotalTargetsCount(String.valueOf(rolloutGroup.getTotalTargets()));
|
||||||
proxyRolloutGroup.setTotalTargetCountStatus(rolloutGroup.getTotalTargetCountStatus());
|
proxyRolloutGroup.setTotalTargetCountStatus(rolloutGroup.getTotalTargetCountStatus());
|
||||||
|
|
||||||
proxyRolloutGroupsList.add(proxyRolloutGroup);
|
proxyRolloutGroupsList.add(proxyRolloutGroup);
|
||||||
}
|
}
|
||||||
return proxyRolloutGroupsList;
|
return proxyRolloutGroupsList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String calculateFinishedPercentage(final RolloutGroup rolloutGroup) {
|
private String calculateFinishedPercentage(final RolloutGroup rolloutGroup) {
|
||||||
return HawkbitCommonUtil.formattingFinishedPercentage(rolloutGroup, getRolloutManagement()
|
return HawkbitCommonUtil.formattingFinishedPercentage(rolloutGroup, getRolloutManagement()
|
||||||
.getFinishedPercentForRunningGroup(rolloutGroup.getRollout().getId(), rolloutGroup));
|
.getFinishedPercentForRunningGroup(rolloutGroup.getRollout().getId(), rolloutGroup));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void saveBeans(final List<ProxyRolloutGroup> arg0, final List<ProxyRolloutGroup> arg1,
|
protected void saveBeans(final List<ProxyRolloutGroup> arg0, final List<ProxyRolloutGroup> arg1,
|
||||||
final List<ProxyRolloutGroup> arg2) {
|
final List<ProxyRolloutGroup> arg2) {
|
||||||
/**
|
/**
|
||||||
* CRUD operations be done through repository methods.
|
* CRUD operations be done through repository methods.
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int size() {
|
public int size() {
|
||||||
long size = 0;
|
long size = 0;
|
||||||
if (null != rolloutId) {
|
if (null != rolloutId) {
|
||||||
firstPageRolloutGroupSets = getRolloutGroupManagement().findAllRolloutGroupsWithDetailedStatus(rolloutId,
|
firstPageRolloutGroupSets = getRolloutGroupManagement().findAllRolloutGroupsWithDetailedStatus(rolloutId,
|
||||||
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort));
|
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort));
|
||||||
size = firstPageRolloutGroupSets.getTotalElements();
|
size = firstPageRolloutGroupSets.getTotalElements();
|
||||||
}
|
}
|
||||||
if (size > Integer.MAX_VALUE) {
|
if (size > Integer.MAX_VALUE) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (int) size;
|
return (int) size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the rolloutManagement
|
* @return the rolloutManagement
|
||||||
*/
|
*/
|
||||||
public RolloutManagement getRolloutManagement() {
|
public RolloutManagement getRolloutManagement() {
|
||||||
if (null == rolloutManagement) {
|
if (null == rolloutManagement) {
|
||||||
rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
|
rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
|
||||||
}
|
}
|
||||||
return rolloutManagement;
|
return rolloutManagement;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the rolloutManagement
|
* @return the rolloutManagement
|
||||||
*/
|
*/
|
||||||
public RolloutGroupManagement getRolloutGroupManagement() {
|
public RolloutGroupManagement getRolloutGroupManagement() {
|
||||||
if (null == rolloutGroupManagement) {
|
if (null == rolloutGroupManagement) {
|
||||||
rolloutGroupManagement = SpringContextHelper.getBean(RolloutGroupManagement.class);
|
rolloutGroupManagement = SpringContextHelper.getBean(RolloutGroupManagement.class);
|
||||||
}
|
}
|
||||||
return rolloutGroupManagement;
|
return rolloutGroupManagement;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the rolloutUIState
|
* @return the rolloutUIState
|
||||||
*/
|
*/
|
||||||
public RolloutUIState getRolloutUIState() {
|
public RolloutUIState getRolloutUIState() {
|
||||||
if (null == rolloutUIState) {
|
if (null == rolloutUIState) {
|
||||||
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class);
|
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class);
|
||||||
}
|
}
|
||||||
return rolloutUIState;
|
return rolloutUIState;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.eclipse.hawkbit.repository.RolloutManagement;
|
|||||||
import org.eclipse.hawkbit.repository.model.RolloutGroup;
|
import org.eclipse.hawkbit.repository.model.RolloutGroup;
|
||||||
import org.eclipse.hawkbit.repository.model.Target;
|
import org.eclipse.hawkbit.repository.model.Target;
|
||||||
import org.eclipse.hawkbit.repository.model.TargetWithActionStatus;
|
import org.eclipse.hawkbit.repository.model.TargetWithActionStatus;
|
||||||
|
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||||
import org.eclipse.hawkbit.ui.components.ProxyTarget;
|
import org.eclipse.hawkbit.ui.components.ProxyTarget;
|
||||||
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
|
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
|
||||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||||
@@ -105,8 +106,8 @@ public class RolloutGroupTargetsBeanQuery extends AbstractBeanQuery<ProxyTarget>
|
|||||||
prxyTarget.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(targ.getLastModifiedAt()));
|
prxyTarget.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(targ.getLastModifiedAt()));
|
||||||
prxyTarget.setCreatedDate(SPDateTimeUtil.getFormattedDate(targ.getCreatedAt()));
|
prxyTarget.setCreatedDate(SPDateTimeUtil.getFormattedDate(targ.getCreatedAt()));
|
||||||
prxyTarget.setCreatedAt(targ.getCreatedAt());
|
prxyTarget.setCreatedAt(targ.getCreatedAt());
|
||||||
prxyTarget.setCreatedByUser(HawkbitCommonUtil.getIMUser(targ.getCreatedBy()));
|
prxyTarget.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(targ));
|
||||||
prxyTarget.setModifiedByUser(HawkbitCommonUtil.getIMUser(targ.getLastModifiedBy()));
|
prxyTarget.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(targ));
|
||||||
if (targetWithActionStatus.getStatus() != null) {
|
if (targetWithActionStatus.getStatus() != null) {
|
||||||
prxyTarget.setStatus(targetWithActionStatus.getStatus());
|
prxyTarget.setStatus(targetWithActionStatus.getStatus());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ import java.util.Map.Entry;
|
|||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.eclipse.hawkbit.im.authentication.UserPrincipal;
|
|
||||||
import org.eclipse.hawkbit.repository.SoftwareManagement;
|
import org.eclipse.hawkbit.repository.SoftwareManagement;
|
||||||
import org.eclipse.hawkbit.repository.model.AssignmentResult;
|
import org.eclipse.hawkbit.repository.model.AssignmentResult;
|
||||||
import org.eclipse.hawkbit.repository.model.NamedEntity;
|
import org.eclipse.hawkbit.repository.model.NamedEntity;
|
||||||
@@ -34,9 +33,6 @@ import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus.Status;
|
|||||||
import org.eclipse.hawkbit.ui.rollout.StatusFontIcon;
|
import org.eclipse.hawkbit.ui.rollout.StatusFontIcon;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
|
||||||
import org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery;
|
import org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery;
|
||||||
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
||||||
import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
|
import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
|
||||||
@@ -605,31 +601,6 @@ public final class HawkbitCommonUtil {
|
|||||||
return requiredExtraWidth + minTableWidth;
|
return requiredExtraWidth + minTableWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* get formatted name - lastname,firstname.
|
|
||||||
*
|
|
||||||
* @param user
|
|
||||||
* user name
|
|
||||||
* @return String formatted name
|
|
||||||
*/
|
|
||||||
public static String getFormattedName(final UserDetails user) {
|
|
||||||
final StringBuilder formattedName = new StringBuilder();
|
|
||||||
if (user instanceof UserPrincipal) {
|
|
||||||
if (trimAndNullIfEmpty(((UserPrincipal) user).getLastname()) != null) {
|
|
||||||
formattedName.append(((UserPrincipal) user).getLastname());
|
|
||||||
}
|
|
||||||
if (trimAndNullIfEmpty(((UserPrincipal) user).getFirstname()) != null) {
|
|
||||||
if (formattedName.length() > 0) {
|
|
||||||
formattedName.append(", ");
|
|
||||||
}
|
|
||||||
formattedName.append(((UserPrincipal) user).getFirstname());
|
|
||||||
}
|
|
||||||
} else if (user != null) {
|
|
||||||
formattedName.append(user.getUsername());
|
|
||||||
}
|
|
||||||
return formattedName.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get the Last sequence of string which is after last dot in String.
|
* get the Last sequence of string which is after last dot in String.
|
||||||
*
|
*
|
||||||
@@ -686,30 +657,6 @@ public final class HawkbitCommonUtil {
|
|||||||
return exeJS.toString();
|
return exeJS.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get IM User for user UUID.
|
|
||||||
*
|
|
||||||
* @param uuid
|
|
||||||
* @return imReslovedUser user details
|
|
||||||
*/
|
|
||||||
public static String getIMUser(final String uuid) {
|
|
||||||
// Get modifed user
|
|
||||||
String imReslovedUser = HawkbitCommonUtil.SP_STRING_SPACE;
|
|
||||||
if (HawkbitCommonUtil.trimAndNullIfEmpty(uuid) != null) {
|
|
||||||
final UserDetailsService idManagement = SpringContextHelper.getBean(UserDetailsService.class);
|
|
||||||
try {
|
|
||||||
imReslovedUser = HawkbitCommonUtil.getFormattedName(idManagement.loadUserByUsername(uuid));
|
|
||||||
} catch (final UsernameNotFoundException e) { // NOSONAR
|
|
||||||
// nope not need to handle
|
|
||||||
}
|
|
||||||
// If Null display the UID
|
|
||||||
if (HawkbitCommonUtil.trimAndNullIfEmpty(imReslovedUser) == null) {
|
|
||||||
imReslovedUser = uuid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return imReslovedUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get formatted label.Appends ellipses if content does not fit the label.
|
* Get formatted label.Appends ellipses if content does not fit the label.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.time.DurationFormatUtils;
|
import org.apache.commons.lang3.time.DurationFormatUtils;
|
||||||
|
import org.eclipse.hawkbit.repository.model.BaseEntity;
|
||||||
|
|
||||||
import com.vaadin.server.WebBrowser;
|
import com.vaadin.server.WebBrowser;
|
||||||
|
|
||||||
@@ -80,14 +82,45 @@ public final class SPDateTimeUtil {
|
|||||||
* @param lastQueryDate
|
* @param lastQueryDate
|
||||||
* @return String formatted date
|
* @return String formatted date
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public static String getFormattedDate(final Long lastQueryDate) {
|
public static String getFormattedDate(final Long lastQueryDate) {
|
||||||
|
return formatDate(lastQueryDate, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get formatted date 'created at' by entity.
|
||||||
|
*
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return String formatted date
|
||||||
|
*/
|
||||||
|
public static String formatCreatedAt(final BaseEntity baseEntity) {
|
||||||
|
if (baseEntity == null) {
|
||||||
|
return StringUtils.EMPTY;
|
||||||
|
}
|
||||||
|
return formatDate(baseEntity.getCreatedAt(), StringUtils.EMPTY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get formatted date 'last modified at' by entity.
|
||||||
|
*
|
||||||
|
* @param baseEntity
|
||||||
|
* the entity
|
||||||
|
* @return String formatted date
|
||||||
|
*/
|
||||||
|
public static String formatLastModifiedAt(final BaseEntity baseEntity) {
|
||||||
|
if (baseEntity == null) {
|
||||||
|
return StringUtils.EMPTY;
|
||||||
|
}
|
||||||
|
return formatDate(baseEntity.getLastModifiedAt(), StringUtils.EMPTY);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String formatDate(final Long lastQueryDate, final String defaultString) {
|
||||||
if (lastQueryDate != null) {
|
if (lastQueryDate != null) {
|
||||||
final SimpleDateFormat format = new SimpleDateFormat(SPUIDefinitions.LAST_QUERY_DATE_FORMAT);
|
final SimpleDateFormat format = new SimpleDateFormat(SPUIDefinitions.LAST_QUERY_DATE_FORMAT);
|
||||||
format.setTimeZone(getBrowserTimeZone());
|
format.setTimeZone(getBrowserTimeZone());
|
||||||
return format.format(new Date(lastQueryDate));
|
return format.format(new Date(lastQueryDate));
|
||||||
}
|
}
|
||||||
return null;
|
return defaultString;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -143,9 +143,15 @@
|
|||||||
.valo-menu-title {
|
.valo-menu-title {
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.v-menubar-user-menu:after {
|
.v-menubar-user-menu:after {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.v-menubar-menuitem-user-menuitem {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.v-menubar-user-menu > .v-menubar-menuitem {
|
.v-menubar-user-menu > .v-menubar-menuitem {
|
||||||
white-space: normal !important;
|
white-space: normal !important;
|
||||||
.v-icon {
|
.v-icon {
|
||||||
|
|||||||
Reference in New Issue
Block a user