From 15aa489273471d4b2d4c0d32c9e5bb2a8539cdb5 Mon Sep 17 00:00:00 2001 From: SirWayne Date: Wed, 22 Jun 2016 17:15:05 +0200 Subject: [PATCH] Add action column in table Signed-off-by: SirWayne --- .../client/renderers/HtmlButtonRenderer.java | 41 ++- .../renderers/HtmlButtonRenderer.java | 2 +- .../filtermanagement/TargetFilterTable.java | 2 +- .../ui/rollout/rollout/RolloutListGrid.java | 302 ++++++++---------- .../ui/utils/SPUIComponentIdProvider.java | 18 +- .../src/main/resources/messages.properties | 6 + .../src/main/resources/messages_de.properties | 9 + .../src/main/resources/messages_en.properties | 8 + 8 files changed, 215 insertions(+), 173 deletions(-) diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java index 1e4a35002..87b834883 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/client/renderers/HtmlButtonRenderer.java @@ -15,31 +15,56 @@ import com.vaadin.client.widget.grid.RendererCellReference; /** * - * Renders button with provided HTML content. - * Used to display button with icons. + * Renders button with provided HTML content. Used to display button with icons. + * + * + * * */ public class HtmlButtonRenderer extends ButtonRenderer { + + public static final String DISABLE_VALUE = "_Disabled_"; + @Override - public void render(RendererCellReference cell, String text, Button button) { + public void render(final RendererCellReference cell, final String text, final Button button) { + final boolean buttonEnable = isButtonEnable(cell.getElement().getClassName()); if (text != null) { button.setHTML(text); } - applystyles(button); + applystyles(button, buttonEnable); // this is to allow the button to disappear, if the text is null button.setVisible(text != null); - button.getElement().setId("rollout.action.button.id"); + + button.getElement().setId("rollout.action.button.id." + cell.getColumnIndex()); + + button.setEnabled(buttonEnable); + } - private void applystyles(Button button) { + /** + * see here https://vaadin.com/forum#!/thread/9418390/9765924 + * + * @param text + * the button text + * @return is button enable. + */ + private static boolean isButtonEnable(final String text) { + return !text.contains(DISABLE_VALUE); + } + + private void applystyles(final Button button, final boolean buttonEnable) { button.setStyleName(VButton.CLASSNAME); button.addStyleName(getStyle("tiny")); button.addStyleName(getStyle("borderless")); button.addStyleName(getStyle("icon-only")); button.addStyleName(getStyle("button-no-border")); + + if (buttonEnable) { + return; + } + button.addStyleName("v-disabled"); } - - + private String getStyle(final String style) { return new StringBuilder(style).append(" ").append(VButton.CLASSNAME).append("-").append(style).toString(); } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java index 367c9dc8b..0bc0a4f97 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/customrenderers/renderers/HtmlButtonRenderer.java @@ -31,7 +31,7 @@ public class HtmlButtonRenderer extends ButtonRenderer { * @param listener * RendererClickListener */ - public HtmlButtonRenderer(RendererClickListener listener) { + public HtmlButtonRenderer(final RendererClickListener listener) { super(listener); } } diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java index 6e83769b5..5ee3be084 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/filtermanagement/TargetFilterTable.java @@ -87,7 +87,7 @@ public class TargetFilterTable extends Table { setStyleName("sp-table"); setSizeFull(); setImmediate(true); - setHeight(100.0f, Unit.PERCENTAGE); + setHeight(100.0F, Unit.PERCENTAGE); addStyleName(ValoTheme.TABLE_NO_VERTICAL_LINES); addStyleName(ValoTheme.TABLE_SMALL); addCustomGeneratedColumns(); diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java index 20c2ca710..b8b3c5394 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/rollout/rollout/RolloutListGrid.java @@ -14,8 +14,8 @@ import static org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil.HTML_UL_CLOSE_TAG; import static org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil.HTML_UL_OPEN_TAG; import java.util.ArrayList; -import java.util.Arrays; import java.util.EnumMap; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -47,17 +47,12 @@ 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.peter.contextmenu.ContextMenu; -import org.vaadin.peter.contextmenu.ContextMenu.ContextMenuItem; -import org.vaadin.peter.contextmenu.ContextMenu.ContextMenuItemClickEvent; import org.vaadin.spring.events.EventScope; import org.vaadin.spring.events.annotation.EventBusListenerMethod; import com.vaadin.data.Container; import com.vaadin.data.Item; -import com.vaadin.data.util.PropertyValueGenerator; import com.vaadin.data.util.converter.Converter; -import com.vaadin.server.AbstractClientConnector; import com.vaadin.server.FontAwesome; import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.ViewScope; @@ -198,9 +193,18 @@ public class RolloutListGrid extends AbstractGrid { rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS, TotalTargetCountStatus.class, null, false, false); - rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.ACTION, String.class, - FontAwesome.CIRCLE_O.getHtml(), false, false); + rolloutGridContainer.addContainerProperty(START_OPTION, String.class, FontAwesome.PLAY.getHtml(), false, false); + rolloutGridContainer.addContainerProperty(PAUSE_OPTION, String.class, FontAwesome.PAUSE.getHtml(), false, + false); + + rolloutGridContainer.addContainerProperty(RESUME_OPTION, String.class, FontAwesome.FORWARD.getHtml(), false, + false); + + if (permissionChecker.hasRolloutUpdatePermission()) { + rolloutGridContainer.addContainerProperty(UPDATE_OPTION, String.class, FontAwesome.EDIT.getHtml(), false, + false); + } } @Override @@ -221,8 +225,19 @@ public class RolloutListGrid extends AbstractGrid { getColumn(SPUILabelDefinitions.VAR_NUMBER_OF_GROUPS).setMinimumWidth(40); getColumn(SPUILabelDefinitions.VAR_NUMBER_OF_GROUPS).setMaximumWidth(100); - getColumn(SPUILabelDefinitions.ACTION).setMinimumWidth(75); - getColumn(SPUILabelDefinitions.ACTION).setMaximumWidth(75); + getColumn(START_OPTION).setMinimumWidth(35); + getColumn(START_OPTION).setMaximumWidth(35); + + getColumn(PAUSE_OPTION).setMinimumWidth(35); + getColumn(PAUSE_OPTION).setMaximumWidth(35); + + getColumn(RESUME_OPTION).setMinimumWidth(35); + getColumn(RESUME_OPTION).setMaximumWidth(35); + + if (permissionChecker.hasRolloutUpdatePermission()) { + getColumn(UPDATE_OPTION).setMinimumWidth(35); + getColumn(UPDATE_OPTION).setMaximumWidth(35); + } getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS).setMinimumWidth(280); @@ -232,9 +247,9 @@ public class RolloutListGrid extends AbstractGrid { @Override protected void setColumnHeaderNames() { getColumn(ROLLOUT_RENDERER_DATA).setHeaderCaption(i18n.get("header.name")); - getColumn(DS_TYPE).setHeaderCaption("Type"); - getColumn(SW_MODULES).setHeaderCaption("swModules"); - getColumn(IS_REQUIRED_MIGRATION_STEP).setHeaderCaption("IsRequiredMigrationStep"); + getColumn(DS_TYPE).setHeaderCaption(i18n.get("header.type")); + getColumn(SW_MODULES).setHeaderCaption(i18n.get("header.swmodules")); + getColumn(IS_REQUIRED_MIGRATION_STEP).setHeaderCaption(i18n.get("header.migrations.step")); getColumn(SPUILabelDefinitions.VAR_DIST_NAME_VERSION).setHeaderCaption(i18n.get("header.distributionset")); getColumn(SPUILabelDefinitions.VAR_NUMBER_OF_GROUPS).setHeaderCaption(i18n.get("header.numberofgroups")); getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS).setHeaderCaption(i18n.get("header.total.targets")); @@ -246,7 +261,17 @@ public class RolloutListGrid extends AbstractGrid { getColumn(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS) .setHeaderCaption(i18n.get("header.detail.status")); getColumn(SPUILabelDefinitions.VAR_STATUS).setHeaderCaption(i18n.get("header.status")); - getColumn(SPUILabelDefinitions.ACTION).setHeaderCaption(i18n.get("upload.action")); + + getColumn(START_OPTION).setHeaderCaption(i18n.get("header.action.start")); + getColumn(PAUSE_OPTION).setHeaderCaption(i18n.get("header.action.pause")); + getColumn(RESUME_OPTION).setHeaderCaption(i18n.get("header.action.resume")); + + if (permissionChecker.hasRolloutUpdatePermission()) { + getColumn(UPDATE_OPTION).setHeaderCaption(i18n.get("header.action.update")); + } + + getDefaultHeaderRow().join(START_OPTION, PAUSE_OPTION, RESUME_OPTION, UPDATE_OPTION) + .setText(i18n.get("header.action")); } @Override @@ -266,7 +291,14 @@ public class RolloutListGrid extends AbstractGrid { columnList.add(SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS); columnList.add(SPUILabelDefinitions.VAR_NUMBER_OF_GROUPS); columnList.add(SPUILabelDefinitions.VAR_TOTAL_TARGETS); - columnList.add(SPUILabelDefinitions.ACTION); + + columnList.add(START_OPTION); + columnList.add(PAUSE_OPTION); + columnList.add(RESUME_OPTION); + + if (permissionChecker.hasRolloutUpdatePermission()) { + columnList.add(UPDATE_OPTION); + } columnList.add(SPUILabelDefinitions.VAR_CREATED_DATE); columnList.add(SPUILabelDefinitions.VAR_CREATED_USER); @@ -310,12 +342,24 @@ public class RolloutListGrid extends AbstractGrid { createRolloutStatusToFontMap(); getColumn(SPUILabelDefinitions.VAR_STATUS).setRenderer(new HtmlLabelRenderer(), new RolloutStatusConverter()); - getColumn(SPUILabelDefinitions.ACTION).setRenderer(new HtmlButtonRenderer(this::onClickOfActionBtn)); - final RolloutRenderer customObjectRenderer = new RolloutRenderer(RolloutRendererData.class); customObjectRenderer.addClickListener(this::onClickOfRolloutName); getColumn(ROLLOUT_RENDERER_DATA).setRenderer(customObjectRenderer); + getColumn(START_OPTION) + .setRenderer(new HtmlButtonRenderer(clickEvent -> startRolloutAsync((Long) clickEvent.getItemId()))); + + getColumn(PAUSE_OPTION) + .setRenderer(new HtmlButtonRenderer(clickEvent -> pauseRollout((Long) clickEvent.getItemId()))); + + getColumn(RESUME_OPTION) + .setRenderer(new HtmlButtonRenderer(clickEvent -> resumeRollout((Long) clickEvent.getItemId()))); + + if (permissionChecker.hasRolloutUpdatePermission()) { + getColumn(UPDATE_OPTION) + .setRenderer(new HtmlButtonRenderer(clickEvent -> updateRollout((Long) clickEvent.getItemId()))); + } + } private void createRolloutStatusToFontMap() { @@ -337,18 +381,7 @@ public class RolloutListGrid extends AbstractGrid { } private void alignColumns() { - setCellStyleGenerator(new CellStyleGenerator() { - private static final long serialVersionUID = 5573570647129792429L; - - @Override - public String getStyle(final CellReference cellReference) { - final String[] coulmnNames = { SPUILabelDefinitions.VAR_STATUS, SPUILabelDefinitions.ACTION }; - if (Arrays.asList(coulmnNames).contains(cellReference.getPropertyId())) { - return "centeralign"; - } - return null; - } - }); + setCellStyleGenerator(new RollouStatusCellStyleGenerator(getContainerDataSource())); } private void onClickOfRolloutName(final RendererClickEvent event) { @@ -362,82 +395,55 @@ public class RolloutListGrid extends AbstractGrid { eventBus.publish(this, RolloutEvent.SHOW_ROLLOUT_GROUPS); } - private void onClickOfActionBtn(final RendererClickEvent event) { - final ContextMenu contextMenu = createContextMenu((Long) event.getItemId()); - contextMenu.setAsContextMenuOf((AbstractClientConnector) event.getComponent()); - contextMenu.open(event.getClientX(), event.getClientY()); - } - - private ContextMenu createContextMenu(final Long rolloutId) { - final ContextMenu context = new ContextMenu(); - context.addItemClickListener(this::menuItemClicked); + private void pauseRollout(final Long rolloutId) { final Item row = getContainerDataSource().getItem(rolloutId); + final RolloutStatus rolloutStatus = (RolloutStatus) row.getItemProperty(SPUILabelDefinitions.VAR_STATUS) .getValue(); - switch (rolloutStatus) { - case READY: - final ContextMenuItem startItem = context.addItem(START_OPTION); - startItem.setData(new ContextMenuData(rolloutId, ACTION.START)); - break; - case RUNNING: - final ContextMenuItem pauseItem = context.addItem(PAUSE_OPTION); - pauseItem.setData(new ContextMenuData(rolloutId, ACTION.PAUSE)); - break; - case PAUSED: - final ContextMenuItem resumeItem = context.addItem(RESUME_OPTION); - resumeItem.setData(new ContextMenuData(rolloutId, ACTION.RESUME)); - break; - case STARTING: - case CREATING: - case ERROR_CREATING: - case ERROR_STARTING: - // do not provide any action on these statuses - return context; - default: - break; - } - getUpdateMenuItem(context, rolloutId); - return context; - } - - private void getUpdateMenuItem(final ContextMenu context, final Long rolloutId) { - // Add 'Update' option only if user has update permission - if (!permissionChecker.hasRolloutUpdatePermission()) { + if (!RolloutStatus.RUNNING.equals(rolloutStatus)) { return; } - final ContextMenuItem cancelItem = context.addItem(UPDATE_OPTION); - cancelItem.setData(new ContextMenuData(rolloutId, ACTION.UPDATE)); - } - private void menuItemClicked(final ContextMenuItemClickEvent event) { - final ContextMenuItem item = (ContextMenuItem) event.getSource(); - final ContextMenuData contextMenuData = (ContextMenuData) item.getData(); - final Item row = getContainerDataSource().getItem(contextMenuData.getRolloutId()); final String rolloutName = (String) row.getItemProperty(SPUILabelDefinitions.VAR_NAME).getValue(); - switch (contextMenuData.getAction()) { - case PAUSE: - rolloutManagement.pauseRollout(rolloutManagement.findRolloutById(contextMenuData.getRolloutId())); - uiNotification.displaySuccess(i18n.get("message.rollout.paused", rolloutName)); - break; - case RESUME: - rolloutManagement.resumeRollout(rolloutManagement.findRolloutById(contextMenuData.getRolloutId())); - uiNotification.displaySuccess(i18n.get("message.rollout.resumed", rolloutName)); - break; - case START: - rolloutManagement.startRolloutAsync(rolloutManagement.findRolloutByName(rolloutName)); - uiNotification.displaySuccess(i18n.get("message.rollout.started", rolloutName)); - break; - case UPDATE: - onUpdate(contextMenuData); - break; - default: - break; - } + + rolloutManagement.pauseRollout(rolloutManagement.findRolloutById(rolloutId)); + uiNotification.displaySuccess(i18n.get("message.rollout.paused", rolloutName)); } - private void onUpdate(final ContextMenuData contextMenuData) { - addUpdateRolloutWindow.populateData(contextMenuData.getRolloutId()); + private void resumeRollout(final Long rolloutId) { + final Item row = getContainerDataSource().getItem(rolloutId); + + final RolloutStatus rolloutStatus = (RolloutStatus) row.getItemProperty(SPUILabelDefinitions.VAR_STATUS) + .getValue(); + + if (!RolloutStatus.PAUSED.equals(rolloutStatus)) { + return; + } + + final String rolloutName = (String) row.getItemProperty(SPUILabelDefinitions.VAR_NAME).getValue(); + + rolloutManagement.resumeRollout(rolloutManagement.findRolloutById(rolloutId)); + uiNotification.displaySuccess(i18n.get("message.rollout.resumed", rolloutName)); + } + + private void startRolloutAsync(final Long rolloutId) { + final Item row = getContainerDataSource().getItem(rolloutId); + + final RolloutStatus rolloutStatus = (RolloutStatus) row.getItemProperty(SPUILabelDefinitions.VAR_STATUS) + .getValue(); + + if (!RolloutStatus.READY.equals(rolloutStatus)) { + return; + } + + final String rolloutName = (String) row.getItemProperty(SPUILabelDefinitions.VAR_NAME).getValue(); + rolloutManagement.startRolloutAsync(rolloutManagement.findRolloutByName(rolloutName)); + uiNotification.displaySuccess(i18n.get("message.rollout.started", rolloutName)); + } + + private void updateRollout(final Long rolloutId) { + addUpdateRolloutWindow.populateData(rolloutId); final Window addTargetWindow = addUpdateRolloutWindow.getWindow(); addTargetWindow.setCaption(i18n.get("caption.update.rollout")); UI.getCurrent().addWindow(addTargetWindow); @@ -448,29 +454,6 @@ public class RolloutListGrid extends AbstractGrid { ((LazyQueryContainer) getContainerDataSource()).refresh(); } - /** - * Generator to generate fontIcon by String. - */ - public final class FontIconGenerator extends PropertyValueGenerator { - - private static final long serialVersionUID = 2544026030795375748L; - private final FontAwesome fontIcon; - - public FontIconGenerator(final FontAwesome icon) { - this.fontIcon = icon; - } - - @Override - public String getValue(final Item item, final Object itemId, final Object propertyId) { - return fontIcon.getHtml(); - } - - @Override - public Class getType() { - return String.class; - } - } - private String getDescription(final CellReference cell) { if (SPUILabelDefinitions.VAR_STATUS.equals(cell.getPropertyId())) { return cell.getProperty().getValue().toString().toLowerCase(); @@ -524,62 +507,61 @@ public class RolloutListGrid extends AbstractGrid { return stringBuilder.toString(); } - enum ACTION { - PAUSE, RESUME, START, UPDATE - } + private static class RollouStatusCellStyleGenerator implements CellStyleGenerator { - /** - * Represents data of context menu item. - * - */ - public static class ContextMenuData { + private static final long serialVersionUID = 1L; + /** + * Contains all expected rollout status per column to enable or disable + * the button. + */ + private static final Map EXPECTED_ROLLOUT_STATUS_ENABLE_BUTTON = new HashMap<>(); + private final Container.Indexed containerDataSource; - private Long rolloutId; - - private ACTION action; + static { + EXPECTED_ROLLOUT_STATUS_ENABLE_BUTTON.put(START_OPTION, RolloutStatus.READY); + EXPECTED_ROLLOUT_STATUS_ENABLE_BUTTON.put(PAUSE_OPTION, RolloutStatus.RUNNING); + EXPECTED_ROLLOUT_STATUS_ENABLE_BUTTON.put(RESUME_OPTION, RolloutStatus.PAUSED); + } /** - * Set rollout if and action. + * Constructor * - * @param rolloutId - * id of rollout - * @param action - * user action {@link ACTION} + * @param containerDataSource + * the container */ - public ContextMenuData(final Long rolloutId, final ACTION action) { - this.action = action; - this.rolloutId = rolloutId; + public RollouStatusCellStyleGenerator(final Container.Indexed containerDataSource) { + this.containerDataSource = containerDataSource; } - /** - * @return the rolloutId - */ - public Long getRolloutId() { - return rolloutId; + @Override + public String getStyle(final CellReference cellReference) { + if (SPUILabelDefinitions.VAR_STATUS.equals(cellReference.getPropertyId())) { + return "centeralign"; + } + return convertRolloutStatusToString(cellReference); } - /** - * @param rolloutId - * the rolloutId to set - */ - public void setRolloutId(final Long rolloutId) { - this.rolloutId = rolloutId; + private String convertRolloutStatusToString(final CellReference cellReference) { + final Object propertyId = cellReference.getPropertyId(); + final RolloutStatus expectedRolloutStatus = EXPECTED_ROLLOUT_STATUS_ENABLE_BUTTON.get(propertyId); + if (expectedRolloutStatus == null) { + return null; + } + + final RolloutStatus currentRolloutStatus = getRolloutStatus(cellReference.getItemId()); + + if (expectedRolloutStatus.equals(currentRolloutStatus)) { + return null; + } + + return org.eclipse.hawkbit.ui.customrenderers.client.renderers.HtmlButtonRenderer.DISABLE_VALUE; } - /** - * @return the action - */ - public ACTION getAction() { - return action; + private RolloutStatus getRolloutStatus(final Object itemId) { + final Item row = containerDataSource.getItem(itemId); + return (RolloutStatus) row.getItemProperty(SPUILabelDefinitions.VAR_STATUS).getValue(); } - /** - * @param action - * the action to set - */ - public void setAction(final ACTION action) { - this.action = action; - } } /** diff --git a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java index b4e89a191..92a51d5c4 100644 --- a/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java +++ b/hawkbit-ui/src/main/java/org/eclipse/hawkbit/ui/utils/SPUIComponentIdProvider.java @@ -817,19 +817,31 @@ public final class SPUIComponentIdProvider { * Rollout target filter query combo id. */ public static final String ROLLOUT_TARGET_FILTER_COMBO_ID = "rollout.target.filter.combo.id"; + /** * Rollout action button id. */ - public static final String ROLLOUT_ACTION_BUTTON_ID = "rollout.action.button.id"; + public static final String ROLLOUT_ACTION_ID = "rollout.action.button.id"; + + /** + * Rollout start button id. + */ + public static final String ROLLOUT_START_BUTTON_ID = ROLLOUT_ACTION_ID + ".9"; + /** * Rollout pause button id. */ - public static final String ROLLOUT_PAUSE_BUTTON_ID = "rollout.pause.button.id"; + public static final String ROLLOUT_PAUSE_BUTTON_ID = ROLLOUT_ACTION_ID + ".10"; /** * Rollout resume button id. */ - public static final String ROLLOUT_RESUME_BUTTON_ID = "rollout.resume.button.id"; + public static final String ROLLOUT_RESUME_BUTTON_ID = ROLLOUT_ACTION_ID + ".11"; + + /** + * Rollout resume button id. + */ + public static final String ROLLOUT_UPDATE_BUTTON_ID = ROLLOUT_ACTION_ID + ".12"; /** * Rollout save or start option group id. diff --git a/hawkbit-ui/src/main/resources/messages.properties b/hawkbit-ui/src/main/resources/messages.properties index 1fee8dcdb..9a7133e35 100644 --- a/hawkbit-ui/src/main/resources/messages.properties +++ b/hawkbit-ui/src/main/resources/messages.properties @@ -439,6 +439,12 @@ header.numberofgroups = No. of groups header.detail.status = Detail status header.total.targets = Total targets +header.action=Actions +header.action.start=Start +header.action.pause=Pause +header.action.resume=Resume +header.action.update=Edit + distribution.details.header = Distribution set target.details.header = Target header.caption.mandatory = Mandatory diff --git a/hawkbit-ui/src/main/resources/messages_de.properties b/hawkbit-ui/src/main/resources/messages_de.properties index 1c437071a..09f2b11c4 100644 --- a/hawkbit-ui/src/main/resources/messages_de.properties +++ b/hawkbit-ui/src/main/resources/messages_de.properties @@ -426,6 +426,15 @@ 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.start=Start +header.action.pause=Pause +header.action.resume=Resume +header.action.update=Edit header.rolloutgroup.installed.percentage = % Finished header.rolloutgroup.threshold.error = Error threshold diff --git a/hawkbit-ui/src/main/resources/messages_en.properties b/hawkbit-ui/src/main/resources/messages_en.properties index 7716da4f2..311d3175a 100644 --- a/hawkbit-ui/src/main/resources/messages_en.properties +++ b/hawkbit-ui/src/main/resources/messages_en.properties @@ -420,10 +420,18 @@ header.numberofgroups = No. of groups header.detail.status = Detail status header.total.targets = Total targets +header.action=Actions +header.action.start=Start +header.action.pause=Pause +header.action.resume=Resume +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