Added auto assign distribution set to target filter query feature
Signed-off-by: Dominik Herbst <dominik.herbst@bosch-si.com>
This commit is contained in:
@@ -263,9 +263,9 @@ public class CommonDialogWindow extends Window {
|
||||
|
||||
if (field instanceof Table) {
|
||||
((Table) field).addItemSetChangeListener(new ChangeListener(field));
|
||||
} else {
|
||||
field.addValueChangeListener(new ChangeListener(field));
|
||||
}
|
||||
field.addValueChangeListener(new ChangeListener(field));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
/**
|
||||
* 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.detailslayout;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.vaadin.data.Container;
|
||||
import com.vaadin.data.Item;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||
|
||||
import com.vaadin.data.util.IndexedContainer;
|
||||
import com.vaadin.spring.annotation.SpringComponent;
|
||||
import com.vaadin.spring.annotation.VaadinSessionScope;
|
||||
import com.vaadin.ui.Table;
|
||||
import com.vaadin.ui.themes.ValoTheme;
|
||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
|
||||
|
||||
/**
|
||||
*
|
||||
* DistributionSet TargetFilterQuery table
|
||||
*
|
||||
*/
|
||||
|
||||
@SpringComponent
|
||||
@VaadinSessionScope
|
||||
public class TargetFilterQueryDetailsTable extends Table {
|
||||
|
||||
private static final long serialVersionUID = 2913758299611837718L;
|
||||
|
||||
private static final String TFQ_NAME = "name";
|
||||
private static final String TFQ_QUERY = "query";
|
||||
|
||||
private I18N i18n;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param i18n
|
||||
*/
|
||||
public void init(final I18N i18n) {
|
||||
this.i18n = i18n;
|
||||
createTable();
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate software module metadata.
|
||||
*
|
||||
* @param distributionSet the selected distribution set
|
||||
*/
|
||||
public void populateTableByDistributionSet(final DistributionSet distributionSet) {
|
||||
removeAllItems();
|
||||
if (null == distributionSet) {
|
||||
return;
|
||||
}
|
||||
|
||||
Container dataSource = getContainerDataSource();
|
||||
List<TargetFilterQuery> filters = distributionSet.getAutoAssignFilters();
|
||||
filters.forEach(query -> {
|
||||
Object itemId = dataSource.addItem();
|
||||
Item item = dataSource.getItem(itemId);
|
||||
item.getItemProperty(TFQ_NAME).setValue(query.getName());
|
||||
item.getItemProperty(TFQ_QUERY).setValue(query.getQuery());
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void createTable() {
|
||||
addStyleName(ValoTheme.TABLE_NO_HORIZONTAL_LINES);
|
||||
addStyleName(ValoTheme.TABLE_NO_STRIPES);
|
||||
addStyleName(SPUIStyleDefinitions.SW_MODULE_TABLE);
|
||||
addStyleName("details-layout");
|
||||
setSelectable(false);
|
||||
setImmediate(true);
|
||||
setContainerDataSource(getDistSetContainer());
|
||||
setColumnHeaderMode(ColumnHeaderMode.EXPLICIT);
|
||||
addTableHeader();
|
||||
setSizeFull();
|
||||
// same as height of other tabs in details tabsheet
|
||||
setHeight(116, Unit.PIXELS);
|
||||
}
|
||||
|
||||
private IndexedContainer getDistSetContainer() {
|
||||
final IndexedContainer container = new IndexedContainer();
|
||||
container.addContainerProperty(TFQ_NAME, String.class, "");
|
||||
container.addContainerProperty(TFQ_QUERY, String.class, "");
|
||||
setColumnExpandRatio(TFQ_NAME, 0.4F);
|
||||
setColumnAlignment(TFQ_NAME, Align.LEFT);
|
||||
setColumnExpandRatio(TFQ_QUERY, 0.6F);
|
||||
setColumnAlignment(TFQ_QUERY, Align.LEFT);
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
private void addTableHeader() {
|
||||
setColumnHeader(TFQ_NAME, i18n.get("header.target.filter.name"));
|
||||
setColumnHeader(TFQ_QUERY, i18n.get("header.target.filter.query"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -10,6 +10,9 @@ package org.eclipse.hawkbit.ui.components;
|
||||
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.ui.common.DistributionSetIdName;
|
||||
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||
|
||||
/**
|
||||
* Proxy for {@link DistributionSet}.
|
||||
@@ -39,6 +42,33 @@ public class ProxyDistribution {
|
||||
private String version;
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* Creates an empty proxy distribution set
|
||||
*/
|
||||
public ProxyDistribution() {
|
||||
// Default constructor
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new proxy distribution set by using the values from a distribution set
|
||||
* @param distributionSet the source distribution set
|
||||
*/
|
||||
public ProxyDistribution(DistributionSet distributionSet) {
|
||||
setName(distributionSet.getName());
|
||||
setDescription(distributionSet.getDescription());
|
||||
setDistId(distributionSet.getId());
|
||||
setId(distributionSet.getId());
|
||||
setVersion(distributionSet.getVersion());
|
||||
setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
||||
setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
||||
setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(distributionSet));
|
||||
setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(distributionSet));
|
||||
setNameVersion(
|
||||
HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
|
||||
setIsComplete(distributionSet.isComplete());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return the nameVersion
|
||||
*/
|
||||
|
||||
@@ -26,6 +26,7 @@ public class ProxyTargetFilter {
|
||||
private String createdBy;
|
||||
private String lastModifiedBy;
|
||||
private String query;
|
||||
private ProxyDistribution autoAssignDistributionSet;
|
||||
|
||||
public String getCreatedDate() {
|
||||
return createdDate;
|
||||
@@ -90,4 +91,11 @@ public class ProxyTargetFilter {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public ProxyDistribution getAutoAssignDistributionSet() {
|
||||
return autoAssignDistributionSet;
|
||||
}
|
||||
|
||||
public void setAutoAssignDistributionSet(ProxyDistribution autoAssignDistributionSet) {
|
||||
this.autoAssignDistributionSet = autoAssignDistributionSet;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.eclipse.hawkbit.ui.common.DistributionSetIdName;
|
||||
import org.eclipse.hawkbit.ui.common.detailslayout.AbstractNamedVersionedEntityTableDetailsLayout;
|
||||
import org.eclipse.hawkbit.ui.common.detailslayout.DistributionSetMetadatadetailslayout;
|
||||
import org.eclipse.hawkbit.ui.common.detailslayout.SoftwareModuleDetailsTable;
|
||||
import org.eclipse.hawkbit.ui.common.detailslayout.TargetFilterQueryDetailsTable;
|
||||
import org.eclipse.hawkbit.ui.common.tagdetails.DistributionTagToken;
|
||||
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
||||
import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder;
|
||||
@@ -91,6 +92,8 @@ public class DistributionSetDetails extends AbstractNamedVersionedEntityTableDet
|
||||
|
||||
private DistributionSetMetadatadetailslayout dsMetadataTable;
|
||||
|
||||
private TargetFilterQueryDetailsTable tfqDetailsTable;
|
||||
|
||||
private VerticalLayout tagsLayout;
|
||||
|
||||
private final Map<String, StringBuilder> assignedSWModule = new HashMap<>();
|
||||
@@ -103,9 +106,14 @@ public class DistributionSetDetails extends AbstractNamedVersionedEntityTableDet
|
||||
softwareModuleTable = new SoftwareModuleDetailsTable();
|
||||
softwareModuleTable.init(getI18n(), true, getPermissionChecker(), distributionSetManagement, getEventBus(),
|
||||
manageDistUIState);
|
||||
|
||||
dsMetadataTable = new DistributionSetMetadatadetailslayout();
|
||||
dsMetadataTable.init(getI18n(), getPermissionChecker(), distributionSetManagement, dsMetadataPopupLayout,
|
||||
entityFactory);
|
||||
|
||||
tfqDetailsTable = new TargetFilterQueryDetailsTable();
|
||||
tfqDetailsTable.init(getI18n());
|
||||
|
||||
super.init();
|
||||
}
|
||||
|
||||
@@ -120,6 +128,7 @@ public class DistributionSetDetails extends AbstractNamedVersionedEntityTableDet
|
||||
populateModule();
|
||||
populateTags();
|
||||
populateMetadataDetails();
|
||||
populateTargetFilterQueries();
|
||||
}
|
||||
|
||||
private void populateModule() {
|
||||
@@ -268,6 +277,10 @@ public class DistributionSetDetails extends AbstractNamedVersionedEntityTableDet
|
||||
dsMetadataTable.populateDSMetadata(getSelectedBaseEntity());
|
||||
}
|
||||
|
||||
protected void populateTargetFilterQueries() {
|
||||
tfqDetailsTable.populateTableByDistributionSet(getSelectedBaseEntity());
|
||||
}
|
||||
|
||||
private void updateDistributionSetDetailsLayout(final String type, final Boolean isMigrationRequired) {
|
||||
final VerticalLayout detailsTabLayout = getDetailsLayout();
|
||||
detailsTabLayout.removeAllComponents();
|
||||
@@ -323,6 +336,7 @@ public class DistributionSetDetails extends AbstractNamedVersionedEntityTableDet
|
||||
detailsTab.addTab(createTagsLayout(), getI18n().get("caption.tags.tab"), null);
|
||||
detailsTab.addTab(createLogLayout(), getI18n().get("caption.logs.tab"), null);
|
||||
detailsTab.addTab(dsMetadataTable, getI18n().get("caption.metadata"), null);
|
||||
detailsTab.addTab(tfqDetailsTable, getI18n().get("caption.auto.assignment.ds"), null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,10 +20,8 @@ import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSetFilter;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSetFilter.DistributionSetFilterBuilder;
|
||||
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.utils.HawkbitCommonUtil;
|
||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||
import org.eclipse.hawkbit.ui.utils.SpringContextHelper;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -48,6 +46,7 @@ public class ManageDistBeanQuery extends AbstractBeanQuery<ProxyDistribution> {
|
||||
private transient Page<DistributionSet> firstPageDistributionSets = null;
|
||||
|
||||
private DistributionSetType distributionSetType = null;
|
||||
private Boolean dsComplete = null;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -69,6 +68,9 @@ public class ManageDistBeanQuery extends AbstractBeanQuery<ProxyDistribution> {
|
||||
distributionSetType = (DistributionSetType) queryConfig
|
||||
.get(SPUIDefinitions.FILTER_BY_DISTRIBUTION_SET_TYPE);
|
||||
}
|
||||
if(null != queryConfig.get(SPUIDefinitions.FILTER_BY_DS_COMPLETE)) {
|
||||
dsComplete = (Boolean)queryConfig.get(SPUIDefinitions.FILTER_BY_DS_COMPLETE);
|
||||
}
|
||||
}
|
||||
|
||||
if (sortStates.length > 0) {
|
||||
@@ -96,27 +98,17 @@ public class ManageDistBeanQuery extends AbstractBeanQuery<ProxyDistribution> {
|
||||
} else if (Strings.isNullOrEmpty(searchText)) {
|
||||
// if no search filters available
|
||||
distBeans = getDistributionSetManagement().findDistributionSetsByDeletedAndOrCompleted(
|
||||
new OffsetBasedPageRequest(startIndex, count, sort), false, null);
|
||||
new OffsetBasedPageRequest(startIndex, count, sort), false, dsComplete);
|
||||
} else {
|
||||
final DistributionSetFilter distributionSetFilter = new DistributionSetFilterBuilder().setIsDeleted(false)
|
||||
.setIsComplete(dsComplete)
|
||||
.setSearchText(searchText).setSelectDSWithNoTag(Boolean.FALSE).setType(distributionSetType).build();
|
||||
distBeans = getDistributionSetManagement().findDistributionSetsByFilters(
|
||||
new PageRequest(startIndex / count, count, sort), distributionSetFilter);
|
||||
}
|
||||
|
||||
for (final DistributionSet distributionSet : distBeans) {
|
||||
final ProxyDistribution proxyDistribution = new ProxyDistribution();
|
||||
proxyDistribution.setName(distributionSet.getName());
|
||||
proxyDistribution.setDescription(distributionSet.getDescription());
|
||||
proxyDistribution.setDistId(distributionSet.getId());
|
||||
proxyDistribution.setId(distributionSet.getId());
|
||||
proxyDistribution.setVersion(distributionSet.getVersion());
|
||||
proxyDistribution.setCreatedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getCreatedAt()));
|
||||
proxyDistribution.setLastModifiedDate(SPDateTimeUtil.getFormattedDate(distributionSet.getLastModifiedAt()));
|
||||
proxyDistribution.setCreatedByUser(UserDetailsFormatter.loadAndFormatCreatedBy(distributionSet));
|
||||
proxyDistribution.setModifiedByUser(UserDetailsFormatter.loadAndFormatLastModifiedBy(distributionSet));
|
||||
proxyDistribution.setIsComplete(distributionSet.isComplete());
|
||||
proxyDistributions.add(proxyDistribution);
|
||||
proxyDistributions.add(new ProxyDistribution(distributionSet));
|
||||
}
|
||||
return proxyDistributions;
|
||||
}
|
||||
@@ -132,9 +124,10 @@ public class ManageDistBeanQuery extends AbstractBeanQuery<ProxyDistribution> {
|
||||
if (Strings.isNullOrEmpty(searchText) && null == distributionSetType) {
|
||||
// if no search filters available
|
||||
firstPageDistributionSets = getDistributionSetManagement().findDistributionSetsByDeletedAndOrCompleted(
|
||||
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), false, null);
|
||||
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), false, dsComplete);
|
||||
} else {
|
||||
final DistributionSetFilter distributionSetFilter = new DistributionSetFilterBuilder().setIsDeleted(false)
|
||||
.setIsComplete(dsComplete)
|
||||
.setSearchText(searchText).setSelectDSWithNoTag(Boolean.FALSE).setType(distributionSetType).build();
|
||||
firstPageDistributionSets = getDistributionSetManagement().findDistributionSetsByFilters(
|
||||
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), distributionSetFilter);
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
/**
|
||||
* 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.filtermanagement;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
import org.eclipse.hawkbit.repository.eventbus.event.DistributionCreatedEvent;
|
||||
import org.eclipse.hawkbit.repository.eventbus.event.DistributionDeletedEvent;
|
||||
import org.eclipse.hawkbit.ui.distributions.dstable.ManageDistBeanQuery;
|
||||
import org.eclipse.hawkbit.ui.distributions.state.ManageDistUIState;
|
||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUILabelDefinitions;
|
||||
import org.eclipse.hawkbit.ui.utils.TableColumn;
|
||||
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.vaadin.addons.lazyquerycontainer.BeanQueryFactory;
|
||||
import org.vaadin.addons.lazyquerycontainer.LazyQueryContainer;
|
||||
import org.vaadin.addons.lazyquerycontainer.LazyQueryDefinition;
|
||||
import org.vaadin.spring.events.EventBus;
|
||||
import org.vaadin.spring.events.EventScope;
|
||||
import org.vaadin.spring.events.annotation.EventBusListenerMethod;
|
||||
|
||||
import com.vaadin.data.Container;
|
||||
import com.vaadin.spring.annotation.SpringComponent;
|
||||
import com.vaadin.spring.annotation.ViewScope;
|
||||
import com.vaadin.ui.Table;
|
||||
import com.vaadin.ui.themes.ValoTheme;
|
||||
|
||||
/**
|
||||
* Table for selecting a distribution set.
|
||||
*/
|
||||
@SpringComponent
|
||||
@ViewScope
|
||||
public class DistributionSetSelectTable extends Table {
|
||||
|
||||
private static final long serialVersionUID = -4307487829435471759L;
|
||||
|
||||
@Autowired
|
||||
private I18N i18n;
|
||||
|
||||
@Autowired
|
||||
private transient EventBus.SessionEventBus eventBus;
|
||||
|
||||
@Autowired
|
||||
private ManageDistUIState manageDistUIState;
|
||||
|
||||
private Container container;
|
||||
|
||||
/**
|
||||
* Initialize the component.
|
||||
*/
|
||||
@PostConstruct
|
||||
protected void init() {
|
||||
setStyleName("sp-table");
|
||||
setSizeFull();
|
||||
setSelectable(true);
|
||||
setMultiSelect(false);
|
||||
setImmediate(true);
|
||||
addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES);
|
||||
addStyleName(ValoTheme.TABLE_SMALL);
|
||||
populateTableData();
|
||||
setColumnCollapsingAllowed(false);
|
||||
setColumnProperties();
|
||||
setId(UIComponentIdProvider.DIST_SET_SELECT_TABLE_ID);
|
||||
eventBus.subscribe(this);
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
void destroy() {
|
||||
eventBus.unsubscribe(this);
|
||||
}
|
||||
|
||||
@EventBusListenerMethod(scope = EventScope.SESSION)
|
||||
void onEvents(final List<?> events) {
|
||||
final Object firstEvent = events.get(0);
|
||||
if (DistributionCreatedEvent.class.isInstance(firstEvent)
|
||||
|| DistributionDeletedEvent.class.isInstance(firstEvent)) {
|
||||
refreshDistributions();
|
||||
}
|
||||
}
|
||||
|
||||
private void populateTableData() {
|
||||
container = createContainer();
|
||||
addContainerproperties();
|
||||
setContainerDataSource(container);
|
||||
setColumnProperties();
|
||||
|
||||
}
|
||||
|
||||
protected Container createContainer() {
|
||||
|
||||
final Map<String, Object> queryConfiguration = prepareQueryConfigFilters();
|
||||
final BeanQueryFactory<ManageDistBeanQuery> distributionQF = new BeanQueryFactory<>(ManageDistBeanQuery.class);
|
||||
|
||||
distributionQF.setQueryConfiguration(queryConfiguration);
|
||||
return new LazyQueryContainer(
|
||||
new LazyQueryDefinition(true, SPUIDefinitions.PAGE_SIZE, SPUILabelDefinitions.VAR_DIST_ID_NAME),
|
||||
distributionQF);
|
||||
}
|
||||
|
||||
private void addContainerproperties() {
|
||||
/* Create HierarchicalContainer container */
|
||||
container.addContainerProperty(SPUILabelDefinitions.NAME, String.class, null);
|
||||
container.addContainerProperty(SPUILabelDefinitions.VAR_VERSION, String.class, null);
|
||||
}
|
||||
|
||||
private List<TableColumn> getVisbleColumns() {
|
||||
final List<TableColumn> columnList = new ArrayList<>();
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.NAME, i18n.get("header.name"), 0.6F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_VERSION, i18n.get("header.version"), 0.4F));
|
||||
return columnList;
|
||||
|
||||
}
|
||||
|
||||
private void setColumnProperties() {
|
||||
final List<TableColumn> columnList = getVisbleColumns();
|
||||
final List<Object> swColumnIds = new ArrayList<>();
|
||||
for (final TableColumn column : columnList) {
|
||||
setColumnHeader(column.getColumnPropertyId(), column.getColumnHeader());
|
||||
setColumnExpandRatio(column.getColumnPropertyId(), column.getExpandRatio());
|
||||
swColumnIds.add(column.getColumnPropertyId());
|
||||
}
|
||||
setVisibleColumns(swColumnIds.toArray());
|
||||
}
|
||||
|
||||
private Map<String, Object> prepareQueryConfigFilters() {
|
||||
final Map<String, Object> queryConfig = new HashMap<>();
|
||||
manageDistUIState.getManageDistFilters().getSearchText()
|
||||
.ifPresent(value -> queryConfig.put(SPUIDefinitions.FILTER_BY_TEXT, value));
|
||||
|
||||
if (null != manageDistUIState.getManageDistFilters().getClickedDistSetType()) {
|
||||
queryConfig.put(SPUIDefinitions.FILTER_BY_DISTRIBUTION_SET_TYPE,
|
||||
manageDistUIState.getManageDistFilters().getClickedDistSetType());
|
||||
}
|
||||
|
||||
queryConfig.put(SPUIDefinitions.FILTER_BY_DS_COMPLETE, Boolean.TRUE);
|
||||
|
||||
return queryConfig;
|
||||
}
|
||||
|
||||
private void refreshDistributions() {
|
||||
final LazyQueryContainer dsContainer = (LazyQueryContainer) getContainerDataSource();
|
||||
final int size = dsContainer.size();
|
||||
if (size < SPUIDefinitions.MAX_TABLE_ENTRIES) {
|
||||
refreshTablecontainer();
|
||||
}
|
||||
if (size != 0) {
|
||||
setData(SPUIDefinitions.DATA_AVAILABLE);
|
||||
}
|
||||
}
|
||||
|
||||
private Object getItemIdToSelect() {
|
||||
if (manageDistUIState.getSelectedDistributions().isPresent()) {
|
||||
return manageDistUIState.getSelectedDistributions().get();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void selectRow() {
|
||||
setValue(getItemIdToSelect());
|
||||
}
|
||||
|
||||
private void refreshTablecontainer() {
|
||||
final LazyQueryContainer dsContainer = (LazyQueryContainer) getContainerDataSource();
|
||||
dsContainer.refresh();
|
||||
selectRow();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,307 @@
|
||||
/**
|
||||
* 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.filtermanagement;
|
||||
|
||||
import com.vaadin.server.FontAwesome;
|
||||
import com.vaadin.ui.Alignment;
|
||||
import com.vaadin.ui.Button;
|
||||
import com.vaadin.ui.CheckBox;
|
||||
import com.vaadin.ui.HorizontalLayout;
|
||||
import com.vaadin.ui.Label;
|
||||
import com.vaadin.ui.UI;
|
||||
import com.vaadin.ui.VerticalLayout;
|
||||
import com.vaadin.ui.Window;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetManagement;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||
import org.eclipse.hawkbit.ui.common.CommonDialogWindow;
|
||||
import org.eclipse.hawkbit.ui.common.DistributionSetIdName;
|
||||
import org.eclipse.hawkbit.ui.common.builder.WindowBuilder;
|
||||
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
||||
import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleNoBorderWithIcon;
|
||||
import org.eclipse.hawkbit.ui.filtermanagement.event.CustomFilterUIEvent;
|
||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.vaadin.spring.events.EventBus;
|
||||
|
||||
import com.vaadin.data.Property;
|
||||
import com.vaadin.server.Sizeable;
|
||||
import com.vaadin.spring.annotation.SpringComponent;
|
||||
import com.vaadin.spring.annotation.ViewScope;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Creates a dialog window to select the distribution set for a target filter query.
|
||||
*/
|
||||
@SpringComponent
|
||||
@ViewScope
|
||||
public class DistributionSetSelectWindow
|
||||
implements CommonDialogWindow.SaveDialogCloseListener, Property.ValueChangeListener {
|
||||
|
||||
private static final long serialVersionUID = 4752345414134989396L;
|
||||
|
||||
@Autowired
|
||||
private I18N i18n;
|
||||
|
||||
@Autowired
|
||||
private DistributionSetSelectTable dsTable;
|
||||
|
||||
@Autowired
|
||||
private transient EventBus.SessionEventBus eventBus;
|
||||
|
||||
@Autowired
|
||||
private transient DistributionSetManagement distributionSetManagement;
|
||||
|
||||
@Autowired
|
||||
private transient TargetManagement targetManagement;
|
||||
|
||||
@Autowired
|
||||
private transient TargetFilterQueryManagement targetFilterQueryManagement;
|
||||
|
||||
private CommonDialogWindow window;
|
||||
private CheckBox checkBox;
|
||||
private VerticalLayout verticalLayout;
|
||||
private Long tfqId;
|
||||
|
||||
private void init() {
|
||||
Label label = new Label(i18n.get("label.auto.assign.description"));
|
||||
|
||||
checkBox = new CheckBox(i18n.get("label.auto.assign.enable"));
|
||||
checkBox.setId(UIComponentIdProvider.DIST_SET_SELECT_ENABLE_ID);
|
||||
checkBox.setImmediate(true);
|
||||
checkBox.addValueChangeListener(this);
|
||||
|
||||
verticalLayout = new VerticalLayout();
|
||||
verticalLayout.addComponent(label);
|
||||
verticalLayout.addComponent(checkBox);
|
||||
verticalLayout.addComponent(dsTable);
|
||||
|
||||
window = new WindowBuilder(SPUIDefinitions.CREATE_UPDATE_WINDOW)
|
||||
.caption(i18n.get("caption.select.auto.assign.dist")).content(verticalLayout).layout(verticalLayout)
|
||||
.i18n(i18n).saveDialogCloseListener(this).buildCommonDialogWindow();
|
||||
window.setId(UIComponentIdProvider.DIST_SET_SELECT_WINDOW_ID);
|
||||
}
|
||||
|
||||
public void setValue(DistributionSetIdName distSet) {
|
||||
dsTable.setVisible(distSet != null);
|
||||
checkBox.setValue(distSet != null);
|
||||
dsTable.setValue(distSet);
|
||||
dsTable.setCurrentPageFirstItemId(distSet);
|
||||
}
|
||||
|
||||
public DistributionSetIdName getValue() {
|
||||
if (checkBox.getValue()) {
|
||||
return (DistributionSetIdName) dsTable.getValue();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows a distribution set select window for the given target filter query
|
||||
*
|
||||
* @param tfqId
|
||||
* target filter query id
|
||||
*/
|
||||
public void showForTargetFilter(Long tfqId) {
|
||||
this.tfqId = tfqId;
|
||||
TargetFilterQuery tfq = targetFilterQueryManagement.findTargetFilterQueryById(tfqId);
|
||||
if(tfq == null) {
|
||||
throw new IllegalStateException("TargetFilterQuery does not exist for the given id");
|
||||
}
|
||||
|
||||
init();
|
||||
|
||||
DistributionSet distributionSet = tfq.getAutoAssignDistributionSet();
|
||||
if(distributionSet != null) {
|
||||
setValue(DistributionSetIdName.generate(distributionSet));
|
||||
} else {
|
||||
setValue(null);
|
||||
}
|
||||
|
||||
window.setWidth(40.0F, Sizeable.Unit.PERCENTAGE);
|
||||
UI.getCurrent().addWindow(window);
|
||||
window.setVisible(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is triggered when the checkbox value changes
|
||||
*
|
||||
* @param event
|
||||
* change event
|
||||
*/
|
||||
@Override
|
||||
public void valueChange(Property.ValueChangeEvent event) {
|
||||
dsTable.setVisible(checkBox.getValue());
|
||||
if (window != null) {
|
||||
window.center();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is triggered when the save button is clicked
|
||||
*
|
||||
* @return whether the click should be allowed
|
||||
*/
|
||||
@Override
|
||||
public boolean canWindowSaveOrUpdate() {
|
||||
return !checkBox.getValue() || dsTable.getValue() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is called when the new value should be saved after the save button has
|
||||
* been clicked
|
||||
*/
|
||||
@Override
|
||||
public void saveOrUpdate() {
|
||||
if(checkBox.getValue() && dsTable.getValue() != null) {
|
||||
DistributionSetIdName ds = (DistributionSetIdName) dsTable.getValue();
|
||||
updateTargetFilterQueryDS(tfqId, ds.getId());
|
||||
|
||||
} else if(!checkBox.getValue()) {
|
||||
updateTargetFilterQueryDS(tfqId, null);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateTargetFilterQueryDS(final Long targetFilterQueryId, final Long dsId) {
|
||||
TargetFilterQuery tfq = targetFilterQueryManagement.findTargetFilterQueryById(targetFilterQueryId);
|
||||
|
||||
|
||||
|
||||
if(dsId != null) {
|
||||
confirmWithConsequencesDialog(tfq, dsId);
|
||||
} else {
|
||||
tfq.setAutoAssignDistributionSet(null);
|
||||
targetFilterQueryManagement.updateTargetFilterQuery(tfq);
|
||||
eventBus.publish(this, CustomFilterUIEvent.UPDATED_TARGET_FILTER_QUERY);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void confirmWithConsequencesDialog(TargetFilterQuery tfq, final Long dsId) {
|
||||
|
||||
ConfirmConsequencesDialog dialog = new ConfirmConsequencesDialog(tfq, dsId, new ConfirmCallback() {
|
||||
@Override
|
||||
public void onConfirmResult(boolean accepted) {
|
||||
if(accepted) {
|
||||
tfq.setAutoAssignDistributionSet(distributionSetManagement.findDistributionSetById(dsId));
|
||||
targetFilterQueryManagement.updateTargetFilterQuery(tfq);
|
||||
eventBus.publish(this, CustomFilterUIEvent.UPDATED_TARGET_FILTER_QUERY);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
dialog.setWidth(40.0F, Sizeable.Unit.PERCENTAGE);
|
||||
|
||||
UI.getCurrent().addWindow(dialog);
|
||||
dialog.setVisible(true);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* A dialog that displays how many targets will be assigned immediately with the
|
||||
*/
|
||||
private class ConfirmConsequencesDialog extends Window implements Button.ClickListener {
|
||||
|
||||
private static final long serialVersionUID = 7738545414137389326L;
|
||||
|
||||
private TargetFilterQuery targetFilterQuery;
|
||||
private Long distributionSetId;
|
||||
|
||||
private Button okButton;
|
||||
private Button cancelButton;
|
||||
|
||||
private ConfirmCallback callback;
|
||||
|
||||
public ConfirmConsequencesDialog(TargetFilterQuery targetFilterQuery, final Long dsId, ConfirmCallback callback) {
|
||||
super(i18n.get("caption.confirm.assign.consequences"));
|
||||
|
||||
this.callback = callback;
|
||||
this.targetFilterQuery = targetFilterQuery;
|
||||
this.distributionSetId = dsId;
|
||||
|
||||
init();
|
||||
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setId(UIComponentIdProvider.DIST_SET_SELECT_CONS_WINDOW_ID);
|
||||
setModal(true);
|
||||
setResizable(false);
|
||||
|
||||
VerticalLayout layout = new VerticalLayout();
|
||||
layout.setSpacing(true);
|
||||
layout.setMargin(true);
|
||||
setContent(layout);
|
||||
|
||||
Long targetsCount = targetManagement.countTargetByTargetFilterQueryAndNonDS(distributionSetId, targetFilterQuery);
|
||||
Label mainTextLabel;
|
||||
if(targetsCount == 0) {
|
||||
mainTextLabel = new Label(i18n.get("message.confirm.assign.consequences.none"));
|
||||
} else {
|
||||
mainTextLabel = new Label(i18n.get("message.confirm.assign.consequences.text", new Object[]{targetsCount}));
|
||||
}
|
||||
|
||||
layout.addComponent(mainTextLabel);
|
||||
|
||||
HorizontalLayout buttonsLayout = new HorizontalLayout();
|
||||
buttonsLayout.setSizeFull();
|
||||
buttonsLayout.setSpacing(true);
|
||||
buttonsLayout.addStyleName("actionButtonsMargin");
|
||||
layout.addComponent(buttonsLayout);
|
||||
|
||||
|
||||
okButton = SPUIComponentProvider.getButton(UIComponentIdProvider.SAVE_BUTTON, i18n.get("button.ok"), "", "", true,
|
||||
FontAwesome.SAVE, SPUIButtonStyleNoBorderWithIcon.class);
|
||||
okButton.setSizeUndefined();
|
||||
okButton.addStyleName("default-color");
|
||||
okButton.addClickListener(this);
|
||||
buttonsLayout.addComponent(okButton);
|
||||
buttonsLayout.setComponentAlignment(okButton, Alignment.MIDDLE_RIGHT);
|
||||
buttonsLayout.setExpandRatio(okButton, 1.0F);
|
||||
|
||||
|
||||
cancelButton = SPUIComponentProvider.getButton(UIComponentIdProvider.CANCEL_BUTTON, i18n.get("button.cancel"), "", "", true,
|
||||
FontAwesome.TIMES, SPUIButtonStyleNoBorderWithIcon.class);
|
||||
cancelButton.setSizeUndefined();
|
||||
cancelButton.addStyleName("default-color");
|
||||
cancelButton.addClickListener(this);
|
||||
buttonsLayout.addComponent(cancelButton);
|
||||
buttonsLayout.setComponentAlignment(cancelButton, Alignment.MIDDLE_LEFT);
|
||||
buttonsLayout.setExpandRatio(cancelButton, 1.0F);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buttonClick(Button.ClickEvent event) {
|
||||
if(event.getButton().getId().equals(okButton.getId())) {
|
||||
callback.onConfirmResult(true);
|
||||
} else {
|
||||
callback.onConfirmResult(false);
|
||||
}
|
||||
|
||||
close();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@FunctionalInterface
|
||||
private interface ConfirmCallback extends Serializable {
|
||||
void onConfirmResult(boolean accepted);
|
||||
}
|
||||
}
|
||||
@@ -13,8 +13,10 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||
import org.eclipse.hawkbit.repository.model.DistributionSet;
|
||||
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||
import org.eclipse.hawkbit.ui.common.UserDetailsFormatter;
|
||||
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
||||
import org.eclipse.hawkbit.ui.components.ProxyTargetFilter;
|
||||
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
|
||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||
@@ -85,7 +87,7 @@ public class TargetFilterBeanQuery extends AbstractBeanQuery<ProxyTargetFilter>
|
||||
targetFilterQuery = getTargetFilterQueryManagement().findAllTargetFilterQuery(
|
||||
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort));
|
||||
} else {
|
||||
targetFilterQuery = getTargetFilterQueryManagement().findTargetFilterQueryByFilters(
|
||||
targetFilterQuery = getTargetFilterQueryManagement().findTargetFilterQueryByName(
|
||||
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort),
|
||||
searchText);
|
||||
}
|
||||
@@ -98,6 +100,11 @@ public class TargetFilterBeanQuery extends AbstractBeanQuery<ProxyTargetFilter>
|
||||
proxyTarFilter.setModifiedDate(SPDateTimeUtil.getFormattedDate(tarFilterQuery.getLastModifiedAt()));
|
||||
proxyTarFilter.setLastModifiedBy(UserDetailsFormatter.loadAndFormatLastModifiedBy(tarFilterQuery));
|
||||
proxyTarFilter.setQuery(tarFilterQuery.getQuery());
|
||||
|
||||
final DistributionSet distributionSet = tarFilterQuery.getAutoAssignDistributionSet();
|
||||
if (distributionSet != null) {
|
||||
proxyTarFilter.setAutoAssignDistributionSet(new ProxyDistribution(distributionSet));
|
||||
}
|
||||
proxyTargetFilter.add(proxyTarFilter);
|
||||
}
|
||||
return proxyTargetFilter;
|
||||
@@ -117,7 +124,7 @@ public class TargetFilterBeanQuery extends AbstractBeanQuery<ProxyTargetFilter>
|
||||
.findAllTargetFilterQuery(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort));
|
||||
} else {
|
||||
firstPageTargetFilter = getTargetFilterQueryManagement()
|
||||
.findTargetFilterQueryByFilters(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), searchText);
|
||||
.findTargetFilterQueryByName(new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort), searchText);
|
||||
}
|
||||
final long size = firstPageTargetFilter.getTotalElements();
|
||||
|
||||
|
||||
@@ -17,9 +17,15 @@ import java.util.Map;
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
import com.vaadin.ui.Button;
|
||||
import com.vaadin.ui.Link;
|
||||
import com.vaadin.ui.Table;
|
||||
import com.vaadin.ui.UI;
|
||||
import org.eclipse.hawkbit.repository.DistributionSetManagement;
|
||||
import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
|
||||
import org.eclipse.hawkbit.repository.model.TargetFilterQuery;
|
||||
import org.eclipse.hawkbit.ui.common.ConfirmationDialog;
|
||||
import org.eclipse.hawkbit.ui.components.ProxyDistribution;
|
||||
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
|
||||
import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder;
|
||||
import org.eclipse.hawkbit.ui.filtermanagement.event.CustomFilterUIEvent;
|
||||
@@ -43,15 +49,11 @@ import com.vaadin.data.Item;
|
||||
import com.vaadin.server.FontAwesome;
|
||||
import com.vaadin.spring.annotation.SpringComponent;
|
||||
import com.vaadin.spring.annotation.ViewScope;
|
||||
import com.vaadin.ui.Button;
|
||||
import com.vaadin.ui.Button.ClickEvent;
|
||||
import com.vaadin.ui.Link;
|
||||
import com.vaadin.ui.Table;
|
||||
import com.vaadin.ui.UI;
|
||||
import com.vaadin.ui.themes.ValoTheme;
|
||||
|
||||
/**
|
||||
*
|
||||
* Displays list of target filter queries
|
||||
*
|
||||
*/
|
||||
@SpringComponent
|
||||
@@ -75,6 +77,12 @@ public class TargetFilterTable extends Table {
|
||||
@Autowired
|
||||
private transient TargetFilterQueryManagement targetFilterQueryManagement;
|
||||
|
||||
@Autowired
|
||||
private transient DistributionSetManagement distributionSetManagement;
|
||||
|
||||
@Autowired
|
||||
private DistributionSetSelectWindow dsSelectWindow;
|
||||
|
||||
private Container container;
|
||||
|
||||
private static final int PROPERTY_DEPT = 3;
|
||||
@@ -141,15 +149,17 @@ public class TargetFilterTable extends Table {
|
||||
container.addContainerProperty(SPUILabelDefinitions.VAR_CREATED_DATE, Date.class, null);
|
||||
container.addContainerProperty(SPUILabelDefinitions.VAR_MODIFIED_DATE, Date.class, null);
|
||||
container.addContainerProperty(SPUILabelDefinitions.VAR_MODIFIED_BY, String.class, null);
|
||||
container.addContainerProperty(SPUILabelDefinitions.AUTO_ASSIGN_DISTRIBUTION_SET, String.class, null);
|
||||
}
|
||||
|
||||
private List<TableColumn> getVisbleColumns() {
|
||||
final List<TableColumn> columnList = new ArrayList<>();
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.NAME, i18n.get("header.name"), 0.2F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_USER, i18n.get("header.createdBy"), 0.15F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_USER, i18n.get("header.createdBy"), 0.1F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_CREATED_DATE, i18n.get("header.createdDate"), 0.2F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.15F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_MODIFIED_BY, i18n.get("header.modifiedBy"), 0.1F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.VAR_MODIFIED_DATE, i18n.get("header.modifiedDate"), 0.2F));
|
||||
columnList.add(new TableColumn(SPUILabelDefinitions.AUTO_ASSIGN_DISTRIBUTION_SET, i18n.get("header.auto.assignment.ds"), 0.1F));
|
||||
columnList.add(new TableColumn(SPUIDefinitions.CUSTOM_FILTER_DELETE, i18n.get("header.delete"), 0.1F));
|
||||
return columnList;
|
||||
|
||||
@@ -171,7 +181,7 @@ public class TargetFilterTable extends Table {
|
||||
return deleteIcon;
|
||||
}
|
||||
|
||||
private String getDeleteIconId(final String targetFilterName) {
|
||||
private static String getDeleteIconId(final String targetFilterName) {
|
||||
return new StringBuilder(UIComponentIdProvider.CUSTOM_FILTER_DELETE_ICON).append('.').append(targetFilterName)
|
||||
.toString();
|
||||
}
|
||||
@@ -207,6 +217,9 @@ public class TargetFilterTable extends Table {
|
||||
addGeneratedColumn(SPUILabelDefinitions.NAME,
|
||||
(source, itemId, columnId) -> customFilterDetailButton((Long) itemId));
|
||||
|
||||
addGeneratedColumn(SPUILabelDefinitions.AUTO_ASSIGN_DISTRIBUTION_SET,
|
||||
(source, itemId, columnId) -> customFilterDistributionSetButton((Long) itemId));
|
||||
|
||||
}
|
||||
|
||||
private Button customFilterDetailButton(final Long itemId) {
|
||||
@@ -221,6 +234,34 @@ public class TargetFilterTable extends Table {
|
||||
return updateIcon;
|
||||
}
|
||||
|
||||
private Button customFilterDistributionSetButton(final Long itemId) {
|
||||
final Item row1 = getItem(itemId);
|
||||
final ProxyDistribution distSet = (ProxyDistribution) row1.getItemProperty(SPUILabelDefinitions.AUTO_ASSIGN_DISTRIBUTION_SET).getValue();
|
||||
final String buttonId = "distSetButton";
|
||||
Button updateIcon;
|
||||
if(distSet == null) {
|
||||
updateIcon = SPUIComponentProvider.getButton(buttonId, i18n.get("button.no.auto.assignment"),
|
||||
i18n.get("button.auto.assignment.desc"), null, false, null, SPUIButtonStyleSmallNoBorder.class);
|
||||
} else {
|
||||
updateIcon = SPUIComponentProvider.getButton(buttonId, distSet.getNameVersion(),
|
||||
i18n.get("button.auto.assignment.desc"), null, false, null, SPUIButtonStyleSmallNoBorder.class);
|
||||
}
|
||||
|
||||
updateIcon.addClickListener(this::onClickOfDistributionSetButton);
|
||||
updateIcon.setData(row1);
|
||||
updateIcon.addStyleName(ValoTheme.LINK_SMALL + " " + "on-focus-no-border link");
|
||||
|
||||
return updateIcon;
|
||||
}
|
||||
|
||||
private void onClickOfDistributionSetButton(final ClickEvent event) {
|
||||
final Item item = (Item) ((Button) event.getComponent()).getData();
|
||||
final Long tfqId = (Long)item.getItemProperty(SPUILabelDefinitions.VAR_ID).getValue();
|
||||
|
||||
dsSelectWindow.showForTargetFilter(tfqId);
|
||||
|
||||
}
|
||||
|
||||
private void onClickOfDetailButton(final ClickEvent event) {
|
||||
final String targetFilterName = (String) ((Button) event.getComponent()).getData();
|
||||
final TargetFilterQuery targetFilterQuery = targetFilterQueryManagement
|
||||
|
||||
@@ -481,6 +481,11 @@ public final class SPUIDefinitions {
|
||||
*/
|
||||
public static final String FILTER_BY_INVALID_QUERY = "FilterByInvalidFilterQueryText";
|
||||
|
||||
/**
|
||||
* Filter by distribution set complete.
|
||||
*/
|
||||
public static final String FILTER_BY_DS_COMPLETE = "FilterByDistributionSetComplete";
|
||||
|
||||
/**
|
||||
* Sort order of column - created at in target table.
|
||||
*/
|
||||
|
||||
@@ -203,6 +203,10 @@ public final class SPUILabelDefinitions {
|
||||
* ASSIGNED DISTRIBUTION ID.
|
||||
*/
|
||||
public static final String ASSIGNED_DISTRIBUTION_ID = "assignedDistributionSet.id";
|
||||
/**
|
||||
* AUTO ASSIGN DISTRIBUTION SET ID
|
||||
*/
|
||||
public static final String AUTO_ASSIGN_DISTRIBUTION_SET = "autoAssignDistributionSet";
|
||||
/**
|
||||
* ASSIGNED DISTRIBUTION Name & Version.
|
||||
*/
|
||||
|
||||
@@ -877,6 +877,26 @@ public final class UIComponentIdProvider {
|
||||
*/
|
||||
public static final String DOWNLOAD_ANONYMOUS_CHECKBOX = "downloadanonymouscheckbox";
|
||||
|
||||
/**
|
||||
* Distribution set select table id
|
||||
*/
|
||||
public static final String DIST_SET_SELECT_TABLE_ID = "distribution.set.select.table";
|
||||
|
||||
/**
|
||||
* Distribution set select window id
|
||||
*/
|
||||
public static final String DIST_SET_SELECT_WINDOW_ID = "distribution.set.select.window";
|
||||
|
||||
/**
|
||||
* Distribution set select consequences window id
|
||||
*/
|
||||
public static final String DIST_SET_SELECT_CONS_WINDOW_ID = "distribution.set.select.consequences.window";
|
||||
|
||||
/**
|
||||
* Distribution set select enable checkbox id
|
||||
*/
|
||||
public static final String DIST_SET_SELECT_ENABLE_ID = "distribution.set.select.enable";
|
||||
|
||||
/**
|
||||
* /* Private Constructor.
|
||||
*/
|
||||
|
||||
@@ -168,6 +168,7 @@
|
||||
|
||||
.v-table-cell-content {
|
||||
height: 27px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ button.no.actions = No actions
|
||||
button.ok = OK
|
||||
button.cancel = Cancel
|
||||
button.upload.file = Upload File
|
||||
button.no.auto.assignment = none
|
||||
button.auto.assignment.desc = Select auto assign distribution set
|
||||
bulk.targets.upload = Please upload csv file.
|
||||
bulkupload.ds.name = DS Name
|
||||
|
||||
@@ -59,6 +61,7 @@ caption.filter.simple = Simple Filter
|
||||
caption.filter.custom = Custom Filter
|
||||
caption.metadata = Metadata
|
||||
|
||||
caption.select.auto.assign.dist = Select auto assignment distribution set
|
||||
caption.add.softwaremodule = Configure Software Module
|
||||
caption.add.new.dist = Configure New Distribution
|
||||
caption.update.dist = Configure Update Distribution
|
||||
@@ -92,26 +95,27 @@ caption.confirm.abort.action = Confirm Abort Action
|
||||
caption.filter.delete.confirmbox = Confirm Filter Delete Action
|
||||
caption.metadata.popup = Metadata of
|
||||
caption.metadata.delete.action.confirmbox = Confirm Metadata Delete Action
|
||||
|
||||
caption.confirm.assign.consequences = Auto assign consequences
|
||||
caption.auto.assignment.ds = Auto assignment
|
||||
|
||||
# Labels prefix with - label
|
||||
label.dist.details.type = Type :
|
||||
label.dist.details.name = Name :
|
||||
label.dist.details.version = Version :
|
||||
label.dist.details.vendor = Vendor :
|
||||
label.dist.details.jvm = Runtime :
|
||||
label.dist.details.ah = Application :
|
||||
label.dist.details.os = OS :
|
||||
label.modified.date = Last modified at :
|
||||
label.modified.by = Last modified by :
|
||||
label.created.at = Created at :
|
||||
label.created.by = Created by :
|
||||
label.target.count = Targets :
|
||||
label.description = Description :
|
||||
label.ip = Address :
|
||||
label.type = Type :
|
||||
label.assigned.type = Assignment type :
|
||||
label.assigned.count = {0} Assigned
|
||||
label.dist.details.type = Type :
|
||||
label.dist.details.name = Name :
|
||||
label.dist.details.version = Version :
|
||||
label.dist.details.vendor = Vendor :
|
||||
label.dist.details.jvm = Runtime :
|
||||
label.dist.details.ah = Application :
|
||||
label.dist.details.os = OS :
|
||||
label.modified.date = Last modified at :
|
||||
label.modified.by = Last modified by :
|
||||
label.created.at = Created at :
|
||||
label.created.by = Created by :
|
||||
label.target.count = Targets :
|
||||
label.description = Description :
|
||||
label.ip = Address :
|
||||
label.type = Type :
|
||||
label.assigned.type = Assignment type :
|
||||
label.assigned.count = {0} Assigned
|
||||
label.installed.count = {0} Installed
|
||||
label.mandatory.field = * Mandatory Field
|
||||
label.components.drop.area = Drop here to delete
|
||||
@@ -133,10 +137,6 @@ label.target.filter.count = Total Targets:
|
||||
label.target.filtered.total = Total filtered targets :
|
||||
label.filter.selected = Selected:
|
||||
label.filter.shown = Shown:
|
||||
label.filter = Filter :
|
||||
label.target.filter.count = Total Targets :
|
||||
label.filter.selected = Selected :
|
||||
label.filter.shown = Shown :
|
||||
label.filter.targets = Filtered targets :
|
||||
label.filter.status = Status,
|
||||
label.filter.tags = Tags,
|
||||
@@ -155,9 +155,9 @@ label.cancelling = Canceling
|
||||
label.retrieved = Retrieved
|
||||
label.download = Downloading
|
||||
label.unknown = Unknown
|
||||
label.target.id = Controller Id :
|
||||
label.target.ip = Controller IP :
|
||||
label.target.security.token = Security token :
|
||||
label.target.id = Controller Id :
|
||||
label.target.ip = Controller IP :
|
||||
label.target.security.token = Security token :
|
||||
label.filter.by.status = Filter by Status
|
||||
label.target.controller.attrs = <b>Controller attributes</b>
|
||||
label.target.lastpolldate = Last poll :
|
||||
@@ -168,9 +168,11 @@ label.configuration.auth.gatewaytoken = Allow a gateway to authenticate and mana
|
||||
label.configuration.auth.targettoken = Allow targets to authenticate directly with their target security token
|
||||
label.configuration.anonymous.download = Allow targets to download artifacts without security credentials
|
||||
label.unsupported.browser.ie=Sorry! current browser is not supported. Please use Internet Explorer 11 and above
|
||||
label.auto.assign.description=When an auto assign distribution set is selected, it will be automatically assigned to all targets that match the target filter.
|
||||
label.auto.assign.enable=Enable auto assignment
|
||||
|
||||
# Checkbox label prefix with - checkbox
|
||||
checkbox.dist.migration.required = Required Migration Step :
|
||||
checkbox.dist.migration.required = Required Migration Step :
|
||||
checkbox.dist.required.migration.step = Required Migration Step
|
||||
|
||||
# TextFields prefix with - textfield
|
||||
@@ -186,7 +188,7 @@ prompt.target.id = Controller ID
|
||||
|
||||
|
||||
#Tooltips prefix with - tooltip
|
||||
tooltip.add.module = Add Software Module
|
||||
tooltip.add.module = Add Software Module
|
||||
tooltip.status.unknown = Unknown
|
||||
tooltip.status.registered = Registered
|
||||
tooltip.status.pending = Pending
|
||||
@@ -240,7 +242,7 @@ message.software.type.discard.success = All software moduleTypes selected for de
|
||||
message.assign.software.discard.success = All software moduleTypes selected for assign are discarded successfully !
|
||||
message.software.delete.success = All software modules selected for delete are deleted successfully !
|
||||
message.software.type.delete.success = All software modules types selected for delete are deleted successfully !
|
||||
message.dist.set.type.deleted.success = {0} DistributionSetType deleted successfully !
|
||||
message.dist.set.type.deleted.success = {0} DistributionSetType deleted successfully !
|
||||
message.new.dist.save.success = {0} - {1} saved successfully
|
||||
message.dist.update.success = {0} - {1} updated successfully
|
||||
message.duplicate.dist = Distribution set [{0}] or version [{1}] must be unique, entered value already exists.
|
||||
@@ -248,7 +250,7 @@ message.error.view = No such view: {0}
|
||||
message.accessdenied.view = No access to view: {0}
|
||||
message.no.data = No data available
|
||||
message.target.assignment = {0} Assignment(s) done
|
||||
message.target.deleted = {0} Target(s) deleted
|
||||
message.target.deleted = {0} Target(s) deleted
|
||||
message.dist.deleted = {0} Distribution set(s) deleted
|
||||
message.tag.update.mandatory = Please select the Tag to update
|
||||
message.tag.duplicate.check = {0} already exists, please enter another value
|
||||
@@ -274,7 +276,7 @@ message.error.ah.softmodule = Please select the Application to delete
|
||||
message.error.softmodule.deleted = The selected Software Module is already deleted
|
||||
message.cancel.action = Cancel..
|
||||
message.cancel.action.success = Action cancelled successfully !
|
||||
message.cancel.action.failed = Unable to cancel the action !
|
||||
message.cancel.action.failed = Unable to cancel the action !
|
||||
message.cancel.action.confirm = Are you sure that you want to cancel this action?
|
||||
message.target.alreadyAssigned = {0} Target(s) were already assigned
|
||||
message.dist.alreadyAssigned = {0} Distribution Set(s) were already assigned
|
||||
@@ -283,8 +285,8 @@ message.force.action.confirm = Are you sure that you want to force this action?
|
||||
message.force.action.success = Action forced successfully !
|
||||
message.forcequit.action = Force Quit..
|
||||
message.forcequit.action.success = Action has been force quit successfully !
|
||||
message.forcequit.action.failed = Force Quitting the action is not possible !
|
||||
message.forcequit.action.confirm = Attention!\nForce quit should only be used when the assignment action is not working properly.\nForce quitting an action has no effect on the connected target. It is just resetting \nthe data stored on the SP update server. \nAre you absolutely sure that you want to force quit this action?
|
||||
message.forcequit.action.failed = Force Quitting the action is not possible !
|
||||
message.forcequit.action.confirm = Attention!\nForce quit should only be used when the assignment action is not working properly.\nForce quitting an action has no effect on the connected target. It is just resetting \nthe data stored on the SP update server. \nAre you absolutely sure that you want to force quit this action?
|
||||
message.distribution.no.update = distribution {0} set is already assigned to targets and cannot be changed
|
||||
message.action.not.allowed = Action not allowed
|
||||
message.action.did.not.work = Action did not work. Please try again.
|
||||
@@ -306,12 +308,14 @@ message.update.filter.success = Custom filter updated Successfully!
|
||||
message.target.filter.validation = Please enter name and query
|
||||
message.target.filter.duplicate = {0} already exists, please enter another value
|
||||
message.tag.use.bulk.upload = {0} cannot be deleted .It is in use in targets bulk upload
|
||||
message.bulk.upload.tag.assignment.failed = Tag {0} assignment failed as tag no longer exists
|
||||
message.bulk.upload.tag.assignments.failed= Few tag assignments failed as tags no longer exists
|
||||
message.bulk.upload.tag.assignment.failed = Tag {0} assignment failed as tag no longer exists
|
||||
message.bulk.upload.tag.assignments.failed= Few tag assignments failed as tags no longer exists
|
||||
message.confirm.assign.consequences.none = This auto assignment will not have any effect on the currently available targets. In future added targets might match the filter and will receive the selected distribution set automatically.
|
||||
message.confirm.assign.consequences.text = When you confirm this auto assignment, {0} targets which match the filter will immediately get assigned with the selected distribution set.
|
||||
|
||||
# action info
|
||||
action.target.table.selectall = Select all (Ctrl+A)
|
||||
action.target.table.clear = Clear selections
|
||||
action.target.table.clear = Clear selections
|
||||
|
||||
#reused messages
|
||||
soft.module.jvm =Runtime
|
||||
@@ -322,8 +326,8 @@ soft.module.os =OS
|
||||
message.error.noFileSelected = No file selected for upload
|
||||
message.error.noProvidedName = Please provide custom file name
|
||||
message.error.noSwModuleSelected = Please select a Software Module
|
||||
message.no.duplicateFiles = Duplicate files selected
|
||||
message.no.duplicateFile = Duplicate file selected :
|
||||
message.no.duplicateFiles = Duplicate files selected
|
||||
message.no.duplicateFile = Duplicate file selected :
|
||||
message.delete.artifact = Are you sure that you want to delete artifact {0} ?
|
||||
message.duplicate.filename = Duplicate file name
|
||||
message.swModule.deleted = {0} Software Module(s) deleted
|
||||
@@ -337,7 +341,7 @@ message.abort.upload = Are you sure that you want to abort the upload?
|
||||
|
||||
|
||||
upload.swModuleTable.header = Software Module
|
||||
upload.selectedfile.name = file selected for upload
|
||||
upload.selectedfile.name = file selected for upload
|
||||
upload.file.name = File name
|
||||
upload.sha1 = SHA1 checksum
|
||||
upload.md5 = MD5 checksum
|
||||
@@ -366,7 +370,6 @@ custom.created.date = Created Date
|
||||
|
||||
#Manage distributions view
|
||||
label.drop.dist.delete.area = Drop here<br>to delete
|
||||
label.no.tag.assigned = NO TAG
|
||||
caption.assign.software.dist.accordion.tab = Assign Software Modules
|
||||
message.software.assignment = {0} Software Module(s) Assignment(s) done
|
||||
message.dist.inuse = {0} Distribution is already assigned to target
|
||||
@@ -376,9 +379,7 @@ message.target.assigned = {0} is assigned to {1}
|
||||
message.dist.type.delete = {0} DistributionType(s) Deleted successfully.
|
||||
message.sw.module.type.delete = {0} Software Module Type(s) deleted successfully.
|
||||
message.dist.type.discard.success = All Distribution Types are discarded successfully !
|
||||
message.dist.discard.success = All Distributions are discarded successfully !
|
||||
message.assign.discard.success = All assignments are discarded successfully !
|
||||
message.target.ds.assign.success = Assignments saved successfully !
|
||||
message.bulk.upload.assignment.failed = Distribution set assignment failed as distribution set no longer exists!
|
||||
message.key.missing = Key is missing !
|
||||
message.value.missing = Value is missing !
|
||||
@@ -449,12 +450,12 @@ header.assigned.ds = Assigned DS
|
||||
header.installed.ds = Installed DS
|
||||
header.target.status = Status
|
||||
header.target.tags = Tags
|
||||
header.distributionset = Distribution set
|
||||
header.numberofgroups = No. of groups
|
||||
header.detail.status = Detail status
|
||||
header.total.targets = Total targets
|
||||
header.total.targets = Total targets
|
||||
header.key = Key
|
||||
header.value = Value
|
||||
header.auto.assignment.ds = Auto assignment
|
||||
header.target.filter.name = Target filter name
|
||||
header.target.filter.query = Target filter query
|
||||
|
||||
distribution.details.header = Distribution set
|
||||
target.details.header = Target
|
||||
|
||||
@@ -1,505 +0,0 @@
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
#########################################################################################
|
||||
# This is the messages_en.properties file
|
||||
#########################################################################################
|
||||
|
||||
# Button names prefix with - button
|
||||
button.save = Save
|
||||
button.delete = Delete
|
||||
button.discard = Discard
|
||||
button.discard.all = Discard All
|
||||
button.delete.all = Delete All
|
||||
button.assign.all = Save Assign
|
||||
button.actions = You have actions
|
||||
button.no.actions = No actions
|
||||
button.ok = OK
|
||||
button.cancel = Cancel
|
||||
button.upload.file = Upload File
|
||||
bulk.targets.upload = Please upload csv file.
|
||||
bulkupload.ds.name = DS Name
|
||||
|
||||
# Headers prefix with - header
|
||||
header.target.table=Targets
|
||||
header.dist.table=Distributions
|
||||
header.filter.tag=Filter by Tag
|
||||
header.target.filter.tag=Filters
|
||||
header.first.assignment.table = Targets
|
||||
header.second.assignment.table = Distributions
|
||||
header.dist.first.assignment.table = Distributions
|
||||
header.dist.second.assignment.table = Software Modules
|
||||
header.third.assignment.table = Discard
|
||||
header.one.deletedist.table = Distribution Name
|
||||
header.second.deletedist.table = Discard Changes
|
||||
header.first.deletetarget.table = Target Name
|
||||
header.second.deletetarget.table = Discard Changes
|
||||
header.first.deleteswmodule.table = Delete software
|
||||
header.first.delete.dist.type.table = DistributionSetType
|
||||
header.second.delete.dist.type.table = Discard
|
||||
header.first.delete.swmodule.type.table = Software Module Type
|
||||
header.second.delete.swmodule.type.table = Discard
|
||||
header.dist.twintable.selected=Selected
|
||||
header.dist.twintable.available=Available
|
||||
header.target.installed = Installed
|
||||
header.target.assigned = Assigned
|
||||
|
||||
# Captions prefix with - caption
|
||||
caption.action.history = Action history for {0}
|
||||
caption.error = Error
|
||||
caption.new.softwaremodule.application = Configure New Application
|
||||
caption.new.softwaremodule.jvm = Configure New Runtime
|
||||
caption.new.softwaremodule.os = Configure New OS
|
||||
caption.metadata = Metadata
|
||||
|
||||
|
||||
caption.add.softwaremodule = Configure Software Module
|
||||
caption.add.new.dist = Configure New Distribution
|
||||
caption.update.dist = Configure Update Distribution
|
||||
caption.add.tag = Configure Tag
|
||||
caption.add.type = Configure Type
|
||||
caption.add.new.target = Configure New Target
|
||||
caption.update.target = Configure Update Target
|
||||
caption.bulk.upload.targets = Bulk Upload
|
||||
caption.softwares.distdetail.tab = Modules
|
||||
caption.tags.tab = Tags
|
||||
caption.logs.tab = Logs
|
||||
caption.attributes.tab = Attributes
|
||||
caption.types.tab = Types
|
||||
caption.save.window = Action Details
|
||||
caption.assign.dist.accordion.tab = Assign Distribution Set
|
||||
caption.delete.dist.accordion.tab = Delete Distributions
|
||||
caption.delete.target.accordion.tab = Delete Targets
|
||||
caption.delete.swmodule.accordion.tab = Delete SW Modules
|
||||
caption.delete.dist.set.type.accordion.tab = Delete Distribution Set Type
|
||||
caption.delete.sw.module.type.accordion.tab = Delete Software Module Type
|
||||
caption.attributes = Attributes
|
||||
caption.panel.dist.installed = Installed Distribution Set
|
||||
caption.panel.dist.assigned = Assigned Distribution Set
|
||||
caption.soft.delete.confirmbox = Confirm Software Module Delete Action
|
||||
caption.cancel.action.confirmbox = Confirm Action Cancellation
|
||||
caption.forced.datefield = Force update at time
|
||||
caption.force.action.confirmbox = Confirm Force Active Action
|
||||
caption.filter.simple = Simple Filter
|
||||
caption.filter.custom = Custom Filter
|
||||
caption.filter.delete.confirmbox = Confirm Filter Delete Action
|
||||
caption.confirm.abort.action = Confirm Abort Action
|
||||
|
||||
caption.metadata.popup = Metadata of
|
||||
caption.metadata.delete.action.confirmbox = Confirm Metadata Delete Action
|
||||
|
||||
# Labels prefix with - label
|
||||
label.dist.details.type = Type :
|
||||
label.dist.details.name = Name :
|
||||
label.dist.details.version = Version :
|
||||
label.dist.details.vendor = Vendor :
|
||||
label.dist.details.jvm = Runtime :
|
||||
label.dist.details.ah = Application :
|
||||
label.dist.details.os = OS :
|
||||
label.modified.date = Last modified at :
|
||||
label.modified.by = Last modified by :
|
||||
label.created.at = Created at :
|
||||
label.created.by = Created by :
|
||||
label.target.count = Targets :
|
||||
label.description = Description :
|
||||
label.ip = Address :
|
||||
label.type = Type :
|
||||
label.assigned.type = Assignment type :
|
||||
label.assigned.count = {0} Assigned
|
||||
label.installed.count = {0} Installed
|
||||
label.mandatory.field = * Mandatory Field
|
||||
label.components.drop.area = Drop here to delete
|
||||
label.software.module.drop.area = Delete Software
|
||||
label.create.tag = Create Tag
|
||||
label.update.tag = Update Tag
|
||||
label.create.type = Create Type
|
||||
label.update.type = Update Type
|
||||
label.singleAssign.type = Firmware (FW)
|
||||
label.multiAssign.type = Software (SW)
|
||||
label.choose.type = Choose Type
|
||||
label.choose.type.color = Choose Type Color
|
||||
label.combobox.type = Select Type
|
||||
label.combobox.tag = Select Tag
|
||||
label.choose.tag = Choose Tag to update
|
||||
label.choose.tag.color = Choose Tag Color
|
||||
label.filter = Filter:
|
||||
label.target.filter.count = Total Targets:
|
||||
label.target.filtered.total = Total filtered targets :
|
||||
label.filter.selected = Selected:
|
||||
label.filter.shown = Shown:
|
||||
label.filter = Filter :
|
||||
label.target.filter.count = Total Targets :
|
||||
label.filter.selected = Selected :
|
||||
label.filter.shown = Shown :
|
||||
label.filter.status = Status,
|
||||
label.filter.tags = Tags,
|
||||
label.filter.text = Search Text
|
||||
label.filter.dist = Distribution,
|
||||
label.filter.custom = Custom
|
||||
label.target.filter.truncated={0} targets has been truncated in the list due the target size limit of {1}, use filters to reduce the targets to be shown
|
||||
label.active =Active
|
||||
label.inactive = In-active
|
||||
label.finished = Finished
|
||||
label.error = Error
|
||||
label.warning = Warning
|
||||
label.running = Running
|
||||
label.cancelled = Cancelled
|
||||
label.cancelling = Canceling
|
||||
label.retrieved = Retrieved
|
||||
label.download = Downloading
|
||||
label.scheduled = Scheduled
|
||||
label.target.id = Controller Id :
|
||||
label.target.ip = Controller IP :
|
||||
label.target.security.token = Security token :
|
||||
label.filter.by.status = Filter by Status
|
||||
label.target.controller.attrs = <b>Controller attributes</b>
|
||||
label.target.lastpolldate = Last poll :
|
||||
label.no.tag.assigned = NO TAG
|
||||
label.tag.name = Tag name
|
||||
label.configuration.auth.header = Allow targets to authenticate via a certificate authenticated by an reverse proxy
|
||||
label.configuration.auth.gatewaytoken = Allow a gateway to authenticate and manage multiple targets through a gateway security token
|
||||
label.configuration.auth.targettoken = Allow targets to authenticate directly with their target security token
|
||||
label.configuration.anonymous.download = Allow targets to download artifacts without security credentials
|
||||
label.unsupported.browser.ie=Sorry! current browser is not supported. Please use Internet Explorer 11 and above
|
||||
|
||||
# Checkbox label prefix with - checkbox
|
||||
checkbox.dist.migration.required = Required Migration Step :
|
||||
checkbox.dist.required.migration.step = Required Migration Step
|
||||
|
||||
# TextFields prefix with - textfield
|
||||
textfield.name = Name
|
||||
textfield.key = Key
|
||||
textfield.version = Version
|
||||
textfield.vendor = Vendor
|
||||
textfield.description = Description
|
||||
textfield.customfiltername = Filter name
|
||||
textfield.value = Value
|
||||
ui.version = Powered by Bosch IoT Software Provisioning
|
||||
prompt.target.id = Controller ID
|
||||
|
||||
|
||||
#Tooltips prefix with - tooltip
|
||||
tooltip.add.module = Add Software Module
|
||||
tooltip.status.unknown = Unknown
|
||||
tooltip.status.registered = Registered
|
||||
tooltip.status.pending = Pending
|
||||
tooltip.status.error = Error
|
||||
tooltip.status.insync = In-sync
|
||||
tooltip.delete.module = Select and delete Software Module
|
||||
tooltip.forced.item=Forced update action
|
||||
tooltip.soft.item=Soft update action which interacts with an user as a attempt update action for example
|
||||
tooltip.timeforced.item=Soft update until a specific time and then the action will be forced
|
||||
tooltip.check.for.mandatory=Check to make Mandatory
|
||||
tooltip.artifact.icon=Show Artifact Details
|
||||
tooltip.click.to.edit = Click to edit
|
||||
tooltip.metadata.icon = Manage Metadata
|
||||
|
||||
|
||||
# Notification messages prefix with - message
|
||||
message.save.success = {0} saved successfully
|
||||
message.update.success = {0} updated successfully
|
||||
message.delete.success = {0} deleted successfully
|
||||
message.dist.installedorassigned = Target {targId} is already assigned/installed with distribution
|
||||
message.dist.pending.action = Target {0} is already assigned with distribution {1} . Pending for action
|
||||
message.empty.target.tags= No Tags Created
|
||||
message.empty.disttype.tags = No Distribution type tags created
|
||||
message.select.row = Please select a row to drag
|
||||
message.error = Unknown error occured during the operation. Please contact administrator
|
||||
message.dist.assigned.one = {0} is assigned to {1}
|
||||
message.dist.assigned.many = {0} DistributionSets are assigned to {1}
|
||||
message.dist.unassigned.one = {0} is unassigned from {1}
|
||||
message.dist.unassigned.many = {0} DistributionSets are unassigned from {1}
|
||||
message.target.assigned.one = {0} is assigned to {1}
|
||||
message.target.assigned.many = {0} Targets are assigned to {1}
|
||||
message.target.unassigned.one = {0} is unassigned from {1}
|
||||
message.target.unassigned.many = {0} Targets are unassigned from {1}
|
||||
message.target.assigned.pending = Some target(s) are already assigned.Pending for action
|
||||
message.cannot.delete = Cannot be deleted
|
||||
message.check.softwaremodule = Please provide both name and version!
|
||||
message.cannot.delete.default.dstype = Default distribution set type cannot be deleted
|
||||
message.duplicate.softwaremodule = {0} : {1} already exists!
|
||||
message.cannot.delete.default.dstype = Default distribution set type cannot be deleted
|
||||
message.tag.delete = Please unclick the tag {0}, then try to delete
|
||||
message.dist.type.check.delete = Please unclick the distribution type {0}, then try to delete
|
||||
message.swmodule.type.check.delete = Please unclick the Software Module type {0}, then try to delete
|
||||
message.targets.already.deleted = Few Target(s) are already deleted.Pending for action
|
||||
message.dists.already.deleted = Few distribution(s) are already deleted.Pending for action
|
||||
message.target.deleted.pending = Target(s) already deleted.Pending for action
|
||||
message.dist.deleted.pending = Distribution(s) already deleted.Pending for action
|
||||
message.dist.delete.success = All selected distribution sets are deleted successfully !
|
||||
message.dist.discard.success = All distributions selected for delete are discarded successfully !
|
||||
message.target.delete.success = All selected targets are deleted successfully !
|
||||
message.target.discard.success = All targets selected for delete are discarded successfully !
|
||||
message.software.discard.success = All software modules selected for delete are discarded successfully !
|
||||
message.software.type.discard.success = All software moduleTypes selected for delete are discarded successfully !
|
||||
message.assign.software.discard.success = All software moduleTypes selected for assign are discarded successfully !
|
||||
message.software.delete.success = All software modules selected for delete are deleted successfully !
|
||||
message.software.type.delete.success = All software modules types selected for delete are deleted successfully !
|
||||
message.dist.set.type.deleted.success = {0} DistributionSetType deleted successfully !
|
||||
message.new.dist.save.success = {0} - {1} saved successfully
|
||||
message.dist.update.success = {0} - {1} updated successfully
|
||||
message.duplicate.dist = Distribution set [{0}] or version [{1}] must be unique, entered value already exists.
|
||||
message.error.view = No such view: {0}
|
||||
message.accessdenied.view = No access to view: {0}
|
||||
message.no.data = No data available
|
||||
message.target.assignment = {0} Assignment(s) done
|
||||
message.target.deleted = {0} Target(s) deleted
|
||||
message.dist.deleted = {0} Distribution Set(s) deleted
|
||||
message.tag.update.mandatory = Please select the Tag to update
|
||||
message.tag.duplicate.check = {0} already exists, please enter another value
|
||||
message.type.key.duplicate.check = Distribution type with key {0} already exists, please give another value
|
||||
message.type.key.swmodule.duplicate.check = Software Module type with key {0} already exists, please give another value
|
||||
message.no.action.history = No action history is available for the target : {0}
|
||||
message.no.available = --No messages available--
|
||||
message.no.actionupdateds.available = No other updates available for this action
|
||||
message.mandatory.check = Mandatory details are missing
|
||||
message.target.duplicate.check = Target [ {0} ] must be unique, entered value already exists.
|
||||
message.permission.insufficient = Insufficient permissions to perform this action.
|
||||
message.error.temp = The operation cannot be fulfilled due to {0}. Please contact administrator
|
||||
message.dist.alreadyassigned = {0} : {1} is already assigned/installed, cannot be updated
|
||||
message.dist.tag.alreadyassigned = {0} : {1} is already assigned/installed, cannot assign/un-assign to tag
|
||||
message.dists.unassign.tag.alreadyassigned = Few of the DistributionSet's are already assigned to Target, those cannot be unassigned from Tag"
|
||||
message.dists.assign.tag.alreadyassigned = Few of the DistributionSet's are already assigned to Target, those cannot be assigned to Tag"
|
||||
message.dists.tag.assigned = {0} DistributionSet's assigned to Tag {1}
|
||||
message.dists.tag.unassigned = {0} DistributionSet's un-assigned from Tag {1}
|
||||
message.dist.no.operation = {0} - already assigned/installed, No operation
|
||||
message.sm.delete.confirm = Are you sure that you want to delete the selected {0} Software Module?
|
||||
message.error.os.softmodule = Please select the OS to delete
|
||||
message.error.ah.softmodule = Please select the Application to delete
|
||||
message.error.softmodule.deleted = The selected Software Module is already deleted
|
||||
message.cancel.action = Cancel
|
||||
message.cancel.action.success = Action cancelled successfully !
|
||||
message.cancel.action.failed = Unable to cancel the action !
|
||||
message.cancel.action.confirm = Are you sure that you want to cancel this action?
|
||||
message.target.alreadyAssigned = {0} Target(s) were already assigned
|
||||
message.dist.alreadyAssigned = {0} Distribution Set(s) were already assigned
|
||||
message.force.action = Force
|
||||
message.force.action.confirm = Are you sure that you want to force this action?
|
||||
message.force.action.success = Action forced successfully !
|
||||
message.distribution.no.update = distribution {0} set is already assigned to targets and cannot be changed
|
||||
message.action.not.allowed = Action not allowed
|
||||
message.action.did.not.work = Action did not work. Please try again.
|
||||
message.onlyone.distribution.assigned = Only one distribution set can be assigned
|
||||
message.onlyone.distribution.dropallowed = Only one distribution set can be dropped
|
||||
message.error.missing.typename = Missing Type Name
|
||||
message.error.missing.typenameorkey = Missing Type Name or Key
|
||||
message.tag.cannot.be.assigned = Target/DS cannot be assigned to {0}
|
||||
message.no.targets.assiged.fortag = No targets are assigned to tag {0}
|
||||
message.error.missing.tagname = Please select tag name
|
||||
message.type.delete = Please unclick the distribution type {0}, then try to delete
|
||||
message.error.dist.set.type.update= Distribution Set Type is already assigned to targets and cannot be changed
|
||||
message.target.ds.assign.success = Assignments saved successfully !
|
||||
message.no.directory.upload = Directory upload is not supported
|
||||
|
||||
message.delete.filter.confirm = Are you sure that you want to delete custom filter?
|
||||
message.delete.filter.success = Custom filter {0} deleted Successfully!
|
||||
message.create.filter.success = Custom filter {0} created Successfully!
|
||||
message.update.filter.success = Custom filter updated Successfully!
|
||||
message.target.filter.validation = Please enter name and query
|
||||
message.target.filter.duplicate = {0} already exists, please enter another value
|
||||
message.tag.use.bulk.upload = {0} cannot be deleted .It is in use in targets bulk upload
|
||||
message.bulk.upload.tag.assignment.failed = Tag {0} assignment failed as tag no longer exists
|
||||
message.bulk.upload.tag.assignments.failed= Few tag assignments failed as tags no longer exists
|
||||
|
||||
#reused messages
|
||||
soft.module.jvm =Runtime
|
||||
soft.module.application =Application
|
||||
soft.module.os =OS
|
||||
|
||||
#Artifact upload
|
||||
message.error.noFileSelected = No file selected for upload
|
||||
message.error.noProvidedName = Please provide custom file name
|
||||
message.error.noSwModuleSelected = Please select a Software Module
|
||||
message.no.duplicateFiles = Duplicate files selected
|
||||
message.no.duplicateFile = Duplicate file selected :
|
||||
message.delete.artifact = Are you sure that you want to delete artifact {0} ?
|
||||
message.duplicate.filename = Duplicate file name
|
||||
message.swModule.deleted = {0} Software Module(s) deleted
|
||||
message.error.missing.tagname = Please select tag name
|
||||
message.upload.failed = Streaming Failed
|
||||
message.uploadedfile.size.exceeded = File size exceeded .Allowed size {0} bytes
|
||||
message.uploadedfile.aborted = File upload aborted
|
||||
message.file.not.found = File not found
|
||||
message.artifact.deleted =Artifact with file {0} deleted successfully
|
||||
message.abort.upload = Are you sure that you want to abort the upload?
|
||||
|
||||
|
||||
|
||||
upload.swModuleTable.header = Software Module
|
||||
upload.selectedfile.name = file selected for upload
|
||||
upload.file.name = File name
|
||||
upload.sha1 = SHA1 checksum
|
||||
upload.md5 = MD5 checksum
|
||||
upload.last.modified.date=Last modified date
|
||||
upload.failed = Failed
|
||||
upload.success = Success
|
||||
upload.caption.add.new.swmodule = Configure New Software Module
|
||||
upload.caption.delete.swmodule = Configure Delete Software Module
|
||||
upload.swmodule.type = Type
|
||||
upload.artifact.alreadyExists = Artifact will be overridden as the given name already exists
|
||||
upload.size = Size(B)
|
||||
upload.validation = Validation
|
||||
upload.reason = Reason
|
||||
upload.action = Action
|
||||
upload.result.status = Upload status
|
||||
upload.file = Upload File
|
||||
upload.caption.update.swmodule = Update Software Module
|
||||
caption.tab.details = Details
|
||||
caption.tab.description = Description
|
||||
|
||||
caption.delete.artifact.confirmbox = Confirm Artifact Delete Action
|
||||
|
||||
#Manage distributions view
|
||||
label.drop.dist.delete.area = Drop here<br>to delete
|
||||
caption.assign.software.dist.accordion.tab = Assign Software Modules
|
||||
message.software.assignment = {0} Assignment(s) done
|
||||
message.dist.inuse = {0} Distribution is already assigned to target
|
||||
message.software.dist.already.assigned = {0} Distribution already has Software Module {1}
|
||||
message.software.dist.type.notallowed = {0} Software Module type can not assign to Distribution {1}
|
||||
message.target.assigned = {0} is assigned to {1}
|
||||
message.dist.type.delete = {0} DistributionType(s) Deleted successfully.
|
||||
message.sw.module.type.delete = {0} Software Module Type(s) deleted successfully.
|
||||
message.dist.type.discard.success = All Distribution Types are discarded successfully !
|
||||
message.dist.discard.success = All Distributions are discarded successfully !
|
||||
message.assign.discard.success = All assignments are discarded successfully !
|
||||
message.bulk.upload.assignment.failed = Distribution set assignment failed as distribution set no longer exists!
|
||||
message.key.missing = Key is missing !
|
||||
message.value.missing = Value is missing !
|
||||
message.metadata.saved = Metadata with key {0} successfully saved !
|
||||
message.metadata.updated = Metadata with key {0} successfully updated !
|
||||
message.metadata.duplicate.check = Metadata with key {0} already exists, please enter another value
|
||||
message.metadata.deleted.successfully = Metadata with key {0} successfully deleted !
|
||||
message.confirm.delete.metadata = Are you sure that you want to delete metadata with key {0} ?
|
||||
message.error.notification.ds.target.assigned = Distribution set {0}:{1} is already assigned to targets and cannot be changed
|
||||
|
||||
|
||||
# Login view
|
||||
notification.login.title=Welcome to Bosch IoT Software Provisioning.
|
||||
notification.login.description=Please login with your Bosch Identity Management credentials.
|
||||
notification.login.failed.title=Login failed!
|
||||
notification.login.failed.description=Login with the given credentials failed.
|
||||
notification.login.failed.credentialsexpired.title=Passwort Abgelaufen!
|
||||
notification.login.failed.credentialsexpired.description=Passwort ist entweder abgelaufen or muss initial gesetzt werden, bitte im Benutzer Verwaltungssystem <20>ndern.
|
||||
label.login.tenant=Tenant
|
||||
label.login.username=Username
|
||||
label.login.password=Password
|
||||
button.login.signin=Sign in
|
||||
checkbox.login.rememberme=Remember me
|
||||
|
||||
# Links
|
||||
link.documentation.name=Dokumentation
|
||||
link.demo.name=Demo
|
||||
link.requestaccount.name=Beantragung eines Accounts
|
||||
link.support.name=Support
|
||||
link.usermanagement.name=Benutzerverwaltung
|
||||
|
||||
|
||||
# System Configuration View
|
||||
notification.configuration.save=Ver<EFBFBD>nderungen gespeichert
|
||||
configuration.defaultdistributionset.title=Distribution Set Typ
|
||||
configuration.defaultdistributionset.select.label=Wahl des default Distribution Set typs:
|
||||
configuration.savebutton.tooltip=Konfigurationen speichern
|
||||
configuration.cancellbutton.tooltip=Konfigurationen zur<75>cksetzen
|
||||
configuration.authentication.title=Authentifikationseinstellungen
|
||||
|
||||
#Calendar
|
||||
calendar.year=Jahr
|
||||
calendar.years=Jahre
|
||||
calendar.month=Monat
|
||||
calendar.months=Monate
|
||||
calendar.day=Tag
|
||||
calendar.days=Tage
|
||||
calendar.hour=Stunde
|
||||
calendar.hours=Stunden
|
||||
calendar.minute=Minute
|
||||
calendar.minutes=Minuten
|
||||
calendar.second=Sekunde
|
||||
calendar.seconds=Sekunden
|
||||
|
||||
header.name = Name
|
||||
header.vendor = Vendor
|
||||
header.version = Version
|
||||
header.description = Description
|
||||
header.createdBy = Created By
|
||||
header.createdDate = Created Date
|
||||
header.modifiedBy = Modified By
|
||||
header.modifiedDate = Modified Date
|
||||
header.delete = Delete
|
||||
header.assigned.ds = Assigned DS
|
||||
header.installed.ds = Installed DS
|
||||
header.status = Status
|
||||
header.target.tags = Tags
|
||||
header.distributionset = Distribution set
|
||||
header.numberofgroups = No. of groups
|
||||
header.detail.status = Detail status
|
||||
header.total.targets = Total targets
|
||||
header.type = Type
|
||||
header.swmodules = SwModules
|
||||
header.migrations.step=IsRequiredMigrationStep
|
||||
|
||||
header.action=Actions
|
||||
header.action.run=Run
|
||||
header.action.pause=Pause
|
||||
header.action.update=Edit
|
||||
|
||||
header.rolloutgroup.installed.percentage = % Finished
|
||||
header.rolloutgroup.threshold.error = Error threshold
|
||||
header.rolloutgroup.threshold = Trigger threshold
|
||||
|
||||
header.rolloutgroup.target.date = Date and time
|
||||
header.rolloutgroup.target.message = Messages
|
||||
|
||||
rollout.group.label.target.truncated = {0} targets has been truncated in the list due the target size limit of {1}
|
||||
|
||||
distribution.details.header = Distribution Set
|
||||
target.details.header = Target
|
||||
header.caption.mandatory = Mandatory
|
||||
header.caption.typename = SoftwareModuleType
|
||||
header.caption.softwaremodule = SoftwareModule
|
||||
header.caption.unassign = Unassign
|
||||
message.sw.unassigned = Software Module {0} successfully unassigned
|
||||
header.caption.upload.details = Upload details
|
||||
header.key = Key
|
||||
header.value = Value
|
||||
combo.type.tag.name = Type tag name
|
||||
|
||||
label.yes = Yes
|
||||
label.no =No
|
||||
|
||||
|
||||
#Menu
|
||||
menu.title = Software Provisioning
|
||||
|
||||
|
||||
#Rollout management
|
||||
prompt.number.of.groups = Number of groups
|
||||
prompt.tigger.threshold = Trigger threshold
|
||||
prompt.error.threshold = Error threshold
|
||||
prompt.distribution.set = Distribution Set
|
||||
caption.configure.rollout = Configure Rollout
|
||||
caption.update.rollout = Update Rollout
|
||||
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.field.value.range = Value should be in range {0} to {1}
|
||||
message.correct.invalid.value = Please correct invalid values
|
||||
message.enter.number = Please enter number
|
||||
message.rollout.started = Rollout {0} started successfully
|
||||
message.rollout.paused = Rollout {0} paused successfully
|
||||
message.rollout.resumed = Rollout {0} resumed successfully
|
||||
message.rollout.noofgroups.or.targetfilter.missing = Please enter number of groups and select target filter
|
||||
message.rollouts = Rollouts
|
||||
label.target.per.group = Targets per group :
|
||||
message.dist.already.assigned = Distribution {0} is already assigned to target
|
||||
message.error.creating.rollout = Server error. Error creating Rollout. Please contact the administrator
|
||||
message.error.starting.rollout = Server error. Error starting Rollout. Please contact the administrator
|
||||
|
||||
#Target Filter Management
|
||||
breadcrumb.target.filter.custom.filters = Custom Filters
|
||||
@@ -1,501 +0,0 @@
|
||||
#
|
||||
# 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
|
||||
#
|
||||
|
||||
#########################################################################################
|
||||
# This is the messages_en.properties file
|
||||
#########################################################################################
|
||||
|
||||
# Button names prefix with - button
|
||||
button.save = Save
|
||||
button.delete = Delete
|
||||
button.discard = Discard
|
||||
button.discard.all = Discard All
|
||||
button.delete.all = Delete All
|
||||
button.assign.all = Save Assign
|
||||
button.actions = You have actions
|
||||
button.no.actions = No actions
|
||||
button.ok = OK
|
||||
button.cancel = Cancel
|
||||
button.upload.file = Upload File
|
||||
bulk.targets.upload = Please upload csv file.
|
||||
bulkupload.ds.name = DS Name
|
||||
|
||||
# Headers prefix with - header
|
||||
header.target.table=Targets
|
||||
header.dist.table=Distributions
|
||||
header.filter.tag=Filter by Tag
|
||||
header.target.filter.tag=Filters
|
||||
header.first.assignment.table = Targets
|
||||
header.second.assignment.table = Distributions
|
||||
header.dist.first.assignment.table = Distributions
|
||||
header.dist.second.assignment.table = Software Modules
|
||||
header.third.assignment.table = Discard
|
||||
header.one.deletedist.table = Distribution Name
|
||||
header.second.deletedist.table = Discard Changes
|
||||
header.first.deletetarget.table = Target Name
|
||||
header.second.deletetarget.table = Discard Changes
|
||||
header.first.deleteswmodule.table = Delete software
|
||||
header.first.delete.dist.type.table = DistributionSetType
|
||||
header.second.delete.dist.type.table = Discard
|
||||
header.first.delete.swmodule.type.table = Software Module Type
|
||||
header.second.delete.swmodule.type.table = Discard
|
||||
header.dist.twintable.selected=Selected
|
||||
header.dist.twintable.available=Available
|
||||
header.target.installed = Installed
|
||||
header.target.assigned = Assigned
|
||||
|
||||
# Captions prefix with - caption
|
||||
caption.action.history = Action history for {0}
|
||||
caption.error = Error
|
||||
caption.new.softwaremodule.application = Configure New Application
|
||||
caption.new.softwaremodule.jvm = Configure New Runtime
|
||||
caption.new.softwaremodule.os = Configure New OS
|
||||
caption.filter.simple = Simple Filter
|
||||
caption.filter.custom = Custom Filter
|
||||
caption.metadata = Metadata
|
||||
|
||||
caption.add.softwaremodule = Configure Software Module
|
||||
caption.add.new.dist = Configure New Distribution
|
||||
caption.update.dist = Configure Update Distribution
|
||||
caption.add.tag = Configure Tag
|
||||
caption.add.type = Configure Type
|
||||
caption.add.new.target = Configure New Target
|
||||
caption.update.target = Configure Update Target
|
||||
caption.bulk.upload.targets = Bulk Upload
|
||||
caption.softwares.distdetail.tab = Modules
|
||||
caption.tags.tab = Tags
|
||||
caption.logs.tab = Logs
|
||||
caption.attributes.tab = Attributes
|
||||
caption.types.tab = Types
|
||||
caption.save.window = Action Details
|
||||
caption.assign.dist.accordion.tab = Assign Software Module
|
||||
caption.delete.dist.accordion.tab = Delete Distributions
|
||||
caption.delete.target.accordion.tab = Delete Targets
|
||||
caption.delete.swmodule.accordion.tab = Delete SW Modules
|
||||
caption.delete.dist.set.type.accordion.tab = Delete Distribution Set Type
|
||||
caption.delete.sw.module.type.accordion.tab = Delete Software Module Type
|
||||
caption.attributes = Attributes
|
||||
caption.panel.dist.installed = Installed Distribution Set
|
||||
caption.panel.dist.assigned = Assigned Distribution Set
|
||||
caption.soft.delete.confirmbox = Confirm Software Module Delete Action
|
||||
caption.cancel.action.confirmbox = Confirm Action Cancellation
|
||||
caption.forced.datefield = Force update at time
|
||||
caption.force.action.confirmbox = Confirm Force Active Action
|
||||
caption.filter.delete.confirmbox = Confirm Filter Delete Action
|
||||
caption.metadata.popup = Metadata of
|
||||
caption.metadata.delete.action.confirmbox = Confirm Metadata Delete Action
|
||||
|
||||
caption.confirm.abort.action = Confirm Abort Action
|
||||
|
||||
# Labels prefix with - label
|
||||
label.dist.details.type = Type :
|
||||
label.dist.details.name = Name :
|
||||
label.dist.details.version = Version :
|
||||
label.dist.details.vendor = Vendor :
|
||||
label.dist.details.jvm = Runtime :
|
||||
label.dist.details.ah = Application :
|
||||
label.dist.details.os = OS :
|
||||
label.modified.date = Last modified at :
|
||||
label.modified.by = Last modified by :
|
||||
label.created.at = Created at :
|
||||
label.created.by = Created by :
|
||||
label.target.count = Targets :
|
||||
label.description = Description :
|
||||
label.ip = Address :
|
||||
label.type = Type :
|
||||
label.assigned.type = Assignment type :
|
||||
label.assigned.count = {0} Assigned
|
||||
label.installed.count = {0} Installed
|
||||
label.mandatory.field = * Mandatory Field
|
||||
label.components.drop.area = Drop here to delete
|
||||
label.software.module.drop.area = Delete Software
|
||||
label.create.tag = Create Tag
|
||||
label.update.tag = Update Tag
|
||||
label.create.type = Create Type
|
||||
label.update.type = Update Type
|
||||
label.singleAssign.type = Firmware (FW)
|
||||
label.multiAssign.type = Software (SW)
|
||||
label.choose.type = Choose Type to Update
|
||||
label.choose.type.color = Choose Type Color
|
||||
label.combobox.type = Select Type
|
||||
label.combobox.tag = Select Tag
|
||||
label.choose.tag = Choose Tag to update
|
||||
label.choose.tag.color = Choose Tag Color
|
||||
label.filter = Filter:
|
||||
label.target.filter.count = Total Targets:
|
||||
label.target.filtered.total = Total filtered targets :
|
||||
label.filter.selected = Selected:
|
||||
label.filter.shown = Shown:
|
||||
label.filter.targets = Filtered targets :
|
||||
label.filter = Filter :
|
||||
label.target.filter.count = Total Targets :
|
||||
label.filter.selected = Selected :
|
||||
label.filter.shown = Shown :
|
||||
label.filter.status = Status,
|
||||
label.filter.tags = Tags,
|
||||
label.filter.text = Search Text
|
||||
label.filter.dist = Distribution,
|
||||
label.filter.custom = Custom
|
||||
label.target.filter.truncated={0} targets has been truncated in the list due the target size limit of {1}, use filters to reduce the targets to be shown
|
||||
label.active =Active
|
||||
label.inactive = In-active
|
||||
label.finished = Finished
|
||||
label.error = Error
|
||||
label.warning = Warning
|
||||
label.running = Running
|
||||
label.cancelled = Cancelled
|
||||
label.cancelling = Canceling
|
||||
label.retrieved = Retrieved
|
||||
label.download = Downloading
|
||||
label.scheduled = Scheduled
|
||||
label.target.id = Controller Id :
|
||||
label.target.ip = Controller IP :
|
||||
label.target.security.token = Security token :
|
||||
label.filter.by.status = Filter by Status
|
||||
label.target.controller.attrs = <b>Controller attributes</b>
|
||||
label.target.lastpolldate = Last poll :
|
||||
label.no.tag.assigned = NO TAG
|
||||
label.tag.name = Tag name
|
||||
label.configuration.auth.header = Allow targets to authenticate via a certificate authenticated by an reverse proxy
|
||||
label.configuration.auth.gatewaytoken = Allow a gateway to authenticate and manage multiple targets through a gateway security token
|
||||
label.configuration.auth.targettoken = Allow targets to authenticate directly with their target security token
|
||||
label.configuration.anonymous.download = Allow targets to download artifacts without security credentials
|
||||
label.unsupported.browser.ie=Sorry! current browser is not supported. Please use Internet Explorer 11 and above
|
||||
|
||||
# Checkbox label prefix with - checkbox
|
||||
checkbox.dist.migration.required = Required Migration Step :
|
||||
checkbox.dist.required.migration.step = Required Migration Step
|
||||
|
||||
# TextFields prefix with - textfield
|
||||
textfield.name = Name
|
||||
textfield.key = Key
|
||||
textfield.version = Version
|
||||
textfield.vendor = Vendor
|
||||
textfield.description = Description
|
||||
textfield.customfiltername = Filter name
|
||||
textfield.value = Value
|
||||
ui.version = Powered by Bosch IoT Software Provisioning
|
||||
prompt.target.id = Controller ID
|
||||
|
||||
|
||||
#Tooltips prefix with - tooltip
|
||||
tooltip.add.module = Add Software Module
|
||||
tooltip.status.unknown = Unknown
|
||||
tooltip.status.registered = Registered
|
||||
tooltip.status.pending = Pending
|
||||
tooltip.status.error = Error
|
||||
tooltip.status.insync = In-sync
|
||||
tooltip.delete.module = Select and delete Software Module
|
||||
tooltip.forced.item=Forced update action
|
||||
tooltip.soft.item=Soft update action which interacts with an user as a attempt update action for example
|
||||
tooltip.timeforced.item=Soft update until a specific time and then the action will be forced
|
||||
tooltip.check.for.mandatory=Check to make Mandatory
|
||||
tooltip.artifact.icon=Show Artifact Details
|
||||
tooltip.click.to.edit = Click to edit
|
||||
tooltip.metadata.icon = Manage Metadata
|
||||
|
||||
|
||||
# Notification messages prefix with - message
|
||||
message.save.success = {0} saved successfully
|
||||
message.update.success = {0} updated successfully
|
||||
message.delete.success = {0} deleted successfully
|
||||
message.dist.installedorassigned = Target {targId} is already assigned/installed with distribution
|
||||
message.dist.pending.action = Target {0} is already assigned with distribution {1} . Pending for action
|
||||
message.empty.target.tags= No Tags Created
|
||||
message.empty.disttype.tags = No Distribution type tags created
|
||||
message.select.row = Please select a row to drag
|
||||
message.error = Unknown error occured during the operation. Please contact administrator
|
||||
message.dist.assigned.one = {0} is assigned to {1}
|
||||
message.dist.assigned.many = {0} DistributionSets are assigned to {1}
|
||||
message.dist.unassigned.one = {0} is unassigned from {1}
|
||||
message.dist.unassigned.many = {0} DistributionSets are unassigned from {1}
|
||||
message.target.assigned.one = {0} is assigned to {1}
|
||||
message.target.assigned.many = {0} Targets are assigned to {1}
|
||||
message.target.unassigned.one = {0} is unassigned from {1}
|
||||
message.target.unassigned.many = {0} Targets are unassigned from {1}
|
||||
message.target.assigned.pending = Some target(s) are already assigned.Pending for action
|
||||
message.cannot.delete = Cannot be deleted
|
||||
message.check.softwaremodule = Please provide both name and version!
|
||||
message.duplicate.softwaremodule = {0} : {1} already exists!
|
||||
message.tag.delete = Please unclick the tag {0}, then try to delete
|
||||
message.dist.type.check.delete = Please unclick the distribution type {0}, then try to delete
|
||||
message.swmodule.type.check.delete = Please unclick the Software Module type {0}, then try to delete
|
||||
message.targets.already.deleted = Few Target(s) are already deleted.Pending for action
|
||||
message.dists.already.deleted = Few distribution(s) are already deleted.Pending for action
|
||||
message.target.deleted.pending = Target(s) already deleted.Pending for action
|
||||
message.dist.deleted.pending = Distribution(s) already deleted.Pending for action
|
||||
message.dist.delete.success = All selected distribution sets are deleted successfully !
|
||||
message.dist.discard.success = All distributions selected for delete are discarded successfully !
|
||||
message.target.delete.success = All selected targets are deleted successfully !
|
||||
message.target.discard.success = All targets selected for delete are discarded successfully !
|
||||
message.software.discard.success = All software modules selected for delete are discarded successfully !
|
||||
message.software.type.discard.success = All software moduleTypes selected for delete are discarded successfully !
|
||||
message.assign.software.discard.success = All software moduleTypes selected for assign are discarded successfully !
|
||||
message.software.delete.success = All software modules selected for delete are deleted successfully !
|
||||
message.software.type.delete.success = All software modules types selected for delete are deleted successfully !
|
||||
message.dist.set.type.deleted.success = {0} DistributionSetType deleted successfully !
|
||||
message.new.dist.save.success = {0} - {1} saved successfully
|
||||
message.dist.update.success = {0} - {1} updated successfully
|
||||
message.duplicate.dist = Distribution set [{0}] or version [{1}] must be unique, entered value already exists.
|
||||
message.error.view = No such view: {0}
|
||||
message.accessdenied.view = No access to view: {0}
|
||||
message.no.data = No data available
|
||||
message.target.assignment = {0} Assignment(s) done
|
||||
message.target.deleted = {0} Target(s) deleted
|
||||
message.dist.deleted = {0} Distribution set(s) deleted
|
||||
message.tag.update.mandatory = Please select the Tag to update
|
||||
message.tag.duplicate.check = {0} already exists, please enter another value
|
||||
message.type.key.duplicate.check = Distribution type with key {0} already exists, please give another value
|
||||
message.type.key.swmodule.duplicate.check = Software Module type with key {0} already exists, please give another value
|
||||
message.no.action.history = No action history is available for the target : {0}
|
||||
message.no.available = --No messages available--
|
||||
message.no.actionupdateds.available = No other updates available for this action
|
||||
message.mandatory.check = Mandatory details are missing
|
||||
message.target.duplicate.check = Target [ {0} ] must be unique, entered value already exists.
|
||||
message.permission.insufficient = Insufficient permissions to perform this action.
|
||||
message.error.temp = The operation cannot be fulfilled due to {0}. Please contact administrator
|
||||
message.dist.alreadyassigned = {0} : {1} is already assigned/installed, cannot be updated
|
||||
message.dist.tag.alreadyassigned = {0} : {1} is already assigned/installed, cannot assign/un-assign to tag
|
||||
message.dists.unassign.tag.alreadyassigned = Few of the DistributionSet's are already assigned to Target, those cannot be unassigned from Tag"
|
||||
message.dists.assign.tag.alreadyassigned = Few of the DistributionSet's are already assigned to Target, those cannot be assigned to Tag"
|
||||
message.dists.tag.assigned = {0} DistributionSet's assigned to Tag {1}
|
||||
message.dists.tag.unassigned = {0} DistributionSet's un-assigned from Tag {1}
|
||||
message.dist.no.operation = {0} - already assigned/installed, No operation
|
||||
message.sm.delete.confirm = Are you sure that you want to delete the selected {0} Software Module?
|
||||
message.error.os.softmodule = Please select the OS to delete
|
||||
message.error.ah.softmodule = Please select the Application to delete
|
||||
message.error.softmodule.deleted = The selected Software Module is already deleted
|
||||
message.cancel.action = Cancel
|
||||
message.cancel.action.success = Action cancelled successfully !
|
||||
message.cancel.action.failed = Unable to cancel the action !
|
||||
message.cancel.action.confirm = Are you sure that you want to cancel this action?
|
||||
message.target.alreadyAssigned = {0} Target(s) were already assigned
|
||||
message.dist.alreadyAssigned = {0} Distribution Set(s) were already assigned
|
||||
message.force.action = Force
|
||||
message.force.action.confirm = Are you sure that you want to force this action?
|
||||
message.force.action.success = Action forced successfully !
|
||||
message.distribution.no.update = distribution {0} set is already assigned to targets and cannot be changed
|
||||
message.action.not.allowed = Action not allowed
|
||||
message.action.did.not.work = Action did not work. Please try again.
|
||||
message.onlyone.distribution.assigned = Only one distribution set can be assigned
|
||||
message.onlyone.distribution.dropallowed = Only one distribution set can be dropped
|
||||
message.error.missing.typename = Missing Type Name
|
||||
message.error.missing.typenameorkey = Missing Type Name or Key or Software Module type
|
||||
message.tag.cannot.be.assigned = Target/DS cannot be assigned to {0}
|
||||
message.no.targets.assiged.fortag = No targets are assigned to tag {0}
|
||||
message.error.missing.tagname = Please select tag name
|
||||
message.type.delete = Please unclick the distribution type {0}, then try to delete
|
||||
message.error.dist.set.type.update= Distribution Set Type is already assigned to targets and cannot be changed
|
||||
message.target.ds.assign.success = Assignments saved successfully !
|
||||
message.no.directory.upload = Directory upload is not supported
|
||||
|
||||
message.delete.filter.confirm = Are you sure that you want to delete custom filter?
|
||||
message.delete.filter.success = Custom filter {0} deleted Successfully!
|
||||
message.create.filter.success = Custom filter {0} created Successfully!
|
||||
message.update.filter.success = Custom filter updated Successfully!
|
||||
message.target.filter.validation = Please enter name and query
|
||||
message.target.filter.duplicate = {0} already exists, please enter another value
|
||||
|
||||
# action info
|
||||
action.target.table.selectall = Select all (Ctrl+A)
|
||||
action.target.table.clear = Clear selections
|
||||
|
||||
#reused messages
|
||||
soft.module.jvm =Runtime
|
||||
soft.module.application =Application
|
||||
soft.module.os =OS
|
||||
|
||||
#Artifact upload
|
||||
message.error.noFileSelected = No file selected for upload
|
||||
message.error.noProvidedName = Please provide custom file name
|
||||
message.error.noSwModuleSelected = Please select a Software Module
|
||||
message.no.duplicateFiles = Duplicate files selected
|
||||
message.no.duplicateFile = Duplicate file selected :
|
||||
message.delete.artifact = Are you sure that you want to delete artifact {0} ?
|
||||
message.duplicate.filename = Duplicate file name
|
||||
message.swModule.deleted = {0} Software Module(s) deleted
|
||||
message.upload.failed = Streaming Failed
|
||||
message.uploadedfile.size.exceeded = File size exceeded .Allowed size {0} bytes
|
||||
message.uploadedfile.aborted = File upload aborted
|
||||
message.file.not.found = File not found
|
||||
message.abort.upload = Are you sure that you want to abort the upload?
|
||||
|
||||
|
||||
upload.swModuleTable.header = Software Module
|
||||
upload.selectedfile.name = file selected for upload
|
||||
upload.file.name = File name
|
||||
upload.sha1 = SHA1 checksum
|
||||
upload.md5 = MD5 checksum
|
||||
upload.last.modified.date=Last modified date
|
||||
upload.failed = Failed
|
||||
upload.success = Success
|
||||
upload.caption.add.new.swmodule = Configure New Software Module
|
||||
upload.caption.delete.swmodule = Configure Delete Software Module
|
||||
upload.swmodule.type = Type
|
||||
upload.artifact.alreadyExists = Artifact will be overridden as the given name already exists
|
||||
upload.size = Size(B)
|
||||
upload.validation = Validation
|
||||
upload.reason = Reason
|
||||
upload.action = Action
|
||||
upload.result.status = Upload status
|
||||
upload.file = Upload File
|
||||
upload.caption.update.swmodule = Update Software Module
|
||||
caption.tab.details = Details
|
||||
caption.tab.description = Description
|
||||
|
||||
caption.delete.artifact.confirmbox = Confirm Artifact Delete Action
|
||||
|
||||
|
||||
#Manage distributions view
|
||||
label.drop.dist.delete.area = Drop here<br>to delete
|
||||
caption.assign.software.dist.accordion.tab = Assign Software Modules
|
||||
message.software.assignment = {0} Software Module(s) Assignment(s) done
|
||||
message.dist.inuse = {0} Distribution is already assigned to target
|
||||
message.software.dist.already.assigned = {0} Distribution already has Software Module {1}
|
||||
message.software.dist.type.notallowed = {0} Software Module type can not assign to Distribution {1}
|
||||
message.target.assigned = {0} is assigned to {1}
|
||||
message.dist.type.delete = {0} DistributionType(s) Deleted successfully.
|
||||
message.sw.module.type.delete = {0} Software Module Type(s) deleted successfully.
|
||||
message.dist.type.discard.success = All Distribution Types are discarded successfully !
|
||||
message.dist.discard.success = All Distributions are discarded successfully !
|
||||
message.assign.discard.success = All assignments are discarded successfully !
|
||||
message.key.missing = Key is missing !
|
||||
message.value.missing = Value is missing !
|
||||
message.metadata.saved = Metadata with key {0} successfully saved !
|
||||
message.metadata.updated = Metadata with key {0} successfully updated !
|
||||
message.metadata.duplicate.check = Metadata with key {0} already exists, please enter another value
|
||||
message.metadata.deleted.successfully = Metadata with key {0} successfully deleted !
|
||||
message.confirm.delete.metadata = Are you sure that you want to delete metadata with key {0} ?
|
||||
message.error.notification.ds.target.assigned = Distribution set {0}:{1} is already assigned to targets and cannot be changed
|
||||
|
||||
# Login view
|
||||
notification.login.title=Welcome to Bosch IoT Software Provisioning.
|
||||
notification.login.description=Please login with your Bosch Identity Management credentials.
|
||||
notification.login.failed.title=Login failed!
|
||||
notification.login.failed.description=Login with the given credentials failed.
|
||||
notification.login.failed.credentialsexpired.title=Password Expired!
|
||||
notification.login.failed.credentialsexpired.description=Password has been expired or needs to be set initially, please visit the User Management to change or set your password.
|
||||
label.login.tenant=Tenant
|
||||
label.login.username=Username
|
||||
label.login.password=Password
|
||||
button.login.signin=Sign in
|
||||
checkbox.login.rememberme=Remember me
|
||||
|
||||
# Links
|
||||
link.documentation.name=Documentation
|
||||
link.demo.name=Demo
|
||||
link.requestaccount.name=Request Account
|
||||
link.support.name=Support
|
||||
link.usermanagement.name=User Management
|
||||
|
||||
# System Configuration View
|
||||
notification.configuration.save=Saved changes
|
||||
configuration.defaultdistributionset.title=Distribution Set Type
|
||||
configuration.defaultdistributionset.select.label=Select the default Distribution Set type:
|
||||
configuration.savebutton.tooltip=Save Configurations
|
||||
configuration.cancellbutton.tooltip=Cancel Configurations
|
||||
configuration.authentication.title=Authentication Configuration
|
||||
controller.polling.title=Polling Configuration
|
||||
controller.polling.time=Polling Time
|
||||
controller.polling.overduetime=Polling Overdue Time
|
||||
|
||||
#Calendar
|
||||
calendar.year=year
|
||||
calendar.years=years
|
||||
calendar.month=month
|
||||
calendar.months=months
|
||||
calendar.day=day
|
||||
calendar.days=days
|
||||
calendar.hour=hour
|
||||
calendar.hours=hours
|
||||
calendar.minute=minute
|
||||
calendar.minutes=minutes
|
||||
calendar.second=second
|
||||
calendar.seconds=seconds
|
||||
|
||||
header.name = Name
|
||||
header.vendor = Vendor
|
||||
header.version = Version
|
||||
header.description = Description
|
||||
header.createdBy = Created By
|
||||
header.createdDate = Created Date
|
||||
header.modifiedBy = Modified By
|
||||
header.modifiedDate = Modified Date
|
||||
header.delete = Delete
|
||||
header.assigned.ds = Assigned DS
|
||||
header.installed.ds = Installed DS
|
||||
header.status = Status
|
||||
header.target.tags = Tags
|
||||
header.distributionset = Distribution Set
|
||||
header.numberofgroups = No. of groups
|
||||
header.detail.status = Detail status
|
||||
header.total.targets = Total targets
|
||||
header.type = Type
|
||||
header.swmodules = SwModules
|
||||
header.migrations.step=IsRequiredMigrationStep
|
||||
|
||||
header.action=Actions
|
||||
header.action.run=Run
|
||||
header.action.pause=Pause
|
||||
header.action.update=Edit
|
||||
|
||||
header.rolloutgroup.installed.percentage = % Finished
|
||||
header.rolloutgroup.threshold.error = Error threshold
|
||||
header.rolloutgroup.threshold = Trigger threshold
|
||||
|
||||
|
||||
|
||||
header.rolloutgroup.target.date = Date and time
|
||||
header.rolloutgroup.target.message = Messages
|
||||
|
||||
rollout.group.label.target.truncated = {0} targets has been truncated in the list due the target size limit of {1}
|
||||
|
||||
distribution.details.header = Distribution Set
|
||||
target.details.header = Target
|
||||
header.caption.mandatory = Mandatory
|
||||
header.caption.typename = SoftwareModuleType
|
||||
header.caption.softwaremodule = SoftwareModule
|
||||
header.caption.upload.details = Upload details
|
||||
header.key = Key
|
||||
header.value = Value
|
||||
combo.type.tag.name = Type tag name
|
||||
|
||||
label.yes = Yes
|
||||
label.no =No
|
||||
|
||||
#Menu
|
||||
menu.title = Software Provisioning
|
||||
|
||||
|
||||
#Rollout management
|
||||
prompt.number.of.groups = Number of groups
|
||||
prompt.tigger.threshold = Trigger threshold
|
||||
prompt.error.threshold = Error threshold
|
||||
prompt.distribution.set = Distribution Set
|
||||
caption.configure.rollout = Configure Rollout
|
||||
caption.update.rollout = Update Rollout
|
||||
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.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}
|
||||
message.rollout.started = Rollout {0} started successfully
|
||||
message.rollout.paused = Rollout {0} paused successfully
|
||||
message.rollout.resumed = Rollout {0} resumed successfully
|
||||
message.rollout.noofgroups.or.targetfilter.missing = Please enter number of groups and select target filter
|
||||
message.rollouts = Rollouts
|
||||
label.target.per.group = Targets per group :
|
||||
message.dist.already.assigned = Distribution {0} is already assigned to target
|
||||
message.error.creating.rollout = Server error. Error creating Rollout. Please contact the administrator
|
||||
message.error.starting.rollout = Server error. Error starting Rollout. Please contact the administrator
|
||||
|
||||
#Target Filter Management
|
||||
breadcrumb.target.filter.custom.filters = Custom Filters
|
||||
Reference in New Issue
Block a user