Fix cancel action status (#429)
* Fixed handling of action cancellation status updates. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Fix broken DDI test. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Code readibility. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Reduce access to default. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Added test for finished on action that is in cancelling. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Update MariaDb driver Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Wrong branch Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Remove duplicate status definition. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Use updated picture in docs. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Leverage existing statics. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Fix picture upload. Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com> * Revert change Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -33,6 +33,7 @@ import org.eclipse.hawkbit.ui.management.state.ManagementUIState;
|
||||
import org.eclipse.hawkbit.ui.utils.I18N;
|
||||
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIDefinitions;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
|
||||
import org.eclipse.hawkbit.ui.utils.UIComponentIdProvider;
|
||||
import org.eclipse.hawkbit.ui.utils.UINotification;
|
||||
import org.slf4j.Logger;
|
||||
@@ -72,7 +73,6 @@ public class ActionHistoryTable extends TreeTable {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ActionHistoryTable.class);
|
||||
private static final String BUTTON_CANCEL = "button.cancel";
|
||||
private static final String BUTTON_OK = "button.ok";
|
||||
private static final String STATUS_ICON_GREEN = "statusIconGreen";
|
||||
|
||||
private final I18N i18n;
|
||||
private final transient DeploymentManagement deploymentManagement;
|
||||
@@ -504,50 +504,21 @@ public class ActionHistoryTable extends TreeTable {
|
||||
*/
|
||||
private Label getStatusIcon(final Action.Status status) {
|
||||
final Label label = new LabelBuilder().name("").buildLabel();
|
||||
final String statusIconPending = "statusIconPending";
|
||||
label.setContentMode(ContentMode.HTML);
|
||||
if (Action.Status.FINISHED == status) {
|
||||
label.setDescription(i18n.get("label.finished"));
|
||||
label.setStyleName(STATUS_ICON_GREEN);
|
||||
label.setValue(FontAwesome.CHECK_CIRCLE.getHtml());
|
||||
} else if (Action.Status.ERROR == status) {
|
||||
label.setDescription(i18n.get("label.error"));
|
||||
label.setStyleName("statusIconRed");
|
||||
label.setValue(FontAwesome.EXCLAMATION_CIRCLE.getHtml());
|
||||
} else if (Action.Status.WARNING == status) {
|
||||
label.setStyleName("statusIconOrange");
|
||||
label.setDescription(i18n.get("label.warning"));
|
||||
label.setValue(FontAwesome.EXCLAMATION_CIRCLE.getHtml());
|
||||
} else if (Action.Status.RUNNING == status) {
|
||||
// dynamic spinner
|
||||
label.setStyleName(statusIconPending);
|
||||
label.setDescription(i18n.get("label.running"));
|
||||
label.setValue(FontAwesome.ADJUST.getHtml());
|
||||
} else if (Action.Status.CANCELING == status) {
|
||||
label.setStyleName(statusIconPending);
|
||||
label.setDescription(i18n.get("label.cancelling"));
|
||||
label.setValue(FontAwesome.TIMES_CIRCLE.getHtml());
|
||||
} else if (Action.Status.CANCELED == status) {
|
||||
label.setStyleName(statusIconPending);
|
||||
label.setDescription(i18n.get("label.cancelled"));
|
||||
label.setStyleName(STATUS_ICON_GREEN);
|
||||
label.setValue(FontAwesome.TIMES_CIRCLE.getHtml());
|
||||
} else if (Action.Status.RETRIEVED == status) {
|
||||
label.setStyleName(statusIconPending);
|
||||
label.setDescription(i18n.get("label.retrieved"));
|
||||
label.setValue(FontAwesome.CIRCLE_O.getHtml());
|
||||
} else if (Action.Status.DOWNLOAD == status) {
|
||||
label.setStyleName(statusIconPending);
|
||||
label.setDescription(i18n.get("label.download"));
|
||||
label.setValue(FontAwesome.CLOUD_DOWNLOAD.getHtml());
|
||||
} else if (Action.Status.SCHEDULED == status) {
|
||||
label.setStyleName(statusIconPending);
|
||||
label.setDescription(i18n.get("label.scheduled"));
|
||||
label.setValue(FontAwesome.HOURGLASS_1.getHtml());
|
||||
} else {
|
||||
|
||||
final ActionStatusIconMapper mapping = ActionStatusIconMapper.MAPPINGS.get(status);
|
||||
|
||||
if (mapping == null) {
|
||||
LOG.error("Unknown status icon mapping");
|
||||
label.setDescription("");
|
||||
label.setValue("");
|
||||
return label;
|
||||
}
|
||||
|
||||
label.setDescription(i18n.get(mapping.getDescriptionI18N()));
|
||||
label.setStyleName(mapping.getStyleName());
|
||||
label.setValue(mapping.getIcon().getHtml());
|
||||
|
||||
return label;
|
||||
|
||||
}
|
||||
@@ -568,7 +539,7 @@ public class ActionHistoryTable extends TreeTable {
|
||||
|
||||
if (actionWithActiveStatus.isHitAutoForceTime(currentTimeMillis)) {
|
||||
autoForceLabel.setDescription("autoforced");
|
||||
autoForceLabel.setStyleName(STATUS_ICON_GREEN);
|
||||
autoForceLabel.setStyleName(SPUIStyleDefinitions.STATUS_ICON_GREEN);
|
||||
autoForceLabel.setDescription("auto forced since " + SPDateTimeUtil
|
||||
.getDurationFormattedString(actionWithActiveStatus.getForcedTime(), currentTimeMillis, i18n));
|
||||
} else {
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* 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.management.actionhistory;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.hawkbit.repository.model.Action;
|
||||
import org.eclipse.hawkbit.repository.model.ActionStatus;
|
||||
import org.eclipse.hawkbit.ui.utils.SPUIStyleDefinitions;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.vaadin.server.FontAwesome;
|
||||
|
||||
/**
|
||||
* Mapping utility for {@link ActionStatus} to icon in action history table.
|
||||
*
|
||||
*/
|
||||
public final class ActionStatusIconMapper {
|
||||
static final Map<Action.Status, ActionStatusIconMapper> MAPPINGS = Maps.newHashMapWithExpectedSize(10);
|
||||
|
||||
static {
|
||||
MAPPINGS.put(Action.Status.FINISHED, new ActionStatusIconMapper("label.finished",
|
||||
SPUIStyleDefinitions.STATUS_ICON_GREEN, FontAwesome.CHECK_CIRCLE));
|
||||
MAPPINGS.put(Action.Status.CANCELED, new ActionStatusIconMapper("label.cancelled",
|
||||
SPUIStyleDefinitions.STATUS_ICON_GREEN, FontAwesome.TIMES_CIRCLE));
|
||||
|
||||
MAPPINGS.put(Action.Status.ERROR, new ActionStatusIconMapper("label.error",
|
||||
SPUIStyleDefinitions.STATUS_ICON_RED, FontAwesome.EXCLAMATION_CIRCLE));
|
||||
|
||||
MAPPINGS.put(Action.Status.WARNING, new ActionStatusIconMapper("label.warning",
|
||||
SPUIStyleDefinitions.STATUS_ICON_ORANGE, FontAwesome.EXCLAMATION_CIRCLE));
|
||||
MAPPINGS.put(Action.Status.CANCEL_REJECTED, new ActionStatusIconMapper("label.warning",
|
||||
SPUIStyleDefinitions.STATUS_ICON_ORANGE, FontAwesome.EXCLAMATION_CIRCLE));
|
||||
|
||||
MAPPINGS.put(Action.Status.RUNNING, new ActionStatusIconMapper("label.running",
|
||||
SPUIStyleDefinitions.STATUS_ICON_PENDING, FontAwesome.ADJUST));
|
||||
MAPPINGS.put(Action.Status.CANCELING, new ActionStatusIconMapper("label.cancelling",
|
||||
SPUIStyleDefinitions.STATUS_ICON_PENDING, FontAwesome.TIMES_CIRCLE));
|
||||
MAPPINGS.put(Action.Status.RETRIEVED, new ActionStatusIconMapper("label.retrieved",
|
||||
SPUIStyleDefinitions.STATUS_ICON_PENDING, FontAwesome.CIRCLE_O));
|
||||
MAPPINGS.put(Action.Status.DOWNLOAD, new ActionStatusIconMapper("label.download",
|
||||
SPUIStyleDefinitions.STATUS_ICON_PENDING, FontAwesome.CLOUD_DOWNLOAD));
|
||||
MAPPINGS.put(Action.Status.SCHEDULED, new ActionStatusIconMapper("label.scheduled",
|
||||
SPUIStyleDefinitions.STATUS_ICON_PENDING, FontAwesome.HOURGLASS_1));
|
||||
}
|
||||
|
||||
private final String descriptionI18N;
|
||||
private final String styleName;
|
||||
private final FontAwesome icon;
|
||||
|
||||
private ActionStatusIconMapper(final String descriptionI18N, final String styleName, final FontAwesome icon) {
|
||||
this.descriptionI18N = descriptionI18N;
|
||||
this.styleName = styleName;
|
||||
this.icon = icon;
|
||||
}
|
||||
|
||||
String getDescriptionI18N() {
|
||||
return descriptionI18N;
|
||||
}
|
||||
|
||||
String getStyleName() {
|
||||
return styleName;
|
||||
}
|
||||
|
||||
FontAwesome getIcon() {
|
||||
return icon;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -183,6 +183,11 @@ public final class SPUIStyleDefinitions {
|
||||
*/
|
||||
public static final String STATUS_ICON_RED = "statusIconRed";
|
||||
|
||||
/**
|
||||
* Status icon style - orange color.
|
||||
*/
|
||||
public static final String STATUS_ICON_ORANGE = "statusIconOrange";
|
||||
|
||||
/**
|
||||
* Status icon style - green color.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user