diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java index f9eb73d5abd..5e7482d5bbd 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/GuiStyleConstants.java @@ -160,11 +160,16 @@ public class GuiStyleConstants { public static final String CLASS_FILE_TEXT = "fa fa-file-text-o"; public static final String CLASS_FILE_EXCEL = "fa fa-file-excel-o"; + public static final String CLASS_FILE_BLACK_FILLED = "fa fa-file"; + public static final String CLASS_FILE_WHITE_FILLED = "fa fa-file-o"; + public static final String CLASS_FILE_ARCHIVE = "fa fa-file-archive-o"; public static final String CLASS_LOCK_STATUS = "fa fa-lock"; public static final String CLASS_POLICY_RULES_ICON = "fa fa-balance-scale"; public static final String CLASS_POLICY_RULES_ICON_COLORED = "fa fa-balance-scale"; //TODO public static final String CLASS_VALUE_POLICY_ICON = "fa fa-asterisk"; + public static final String CLASS_ARCHIVE = "fa fa-archive"; + public static final String CLASS_BAN = "fa fa-ban"; public static final String CLASS_SYSTEM_CONFIGURATION_ICON = "fa fa-cog"; public static final String CLASS_SYSTEM_CONFIGURATION_ICON_COLORED = CLASS_SYSTEM_CONFIGURATION_ICON + " object-shadow-color"; diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java index 4ed22461486..75bb72fa1c2 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java @@ -87,7 +87,6 @@ import com.evolveum.midpoint.web.page.admin.archetype.PageArchetype; import com.evolveum.midpoint.web.page.admin.cases.PageCase; import com.evolveum.midpoint.web.page.admin.reports.PageReport; -import com.evolveum.midpoint.web.page.admin.reports.PageReports; import com.evolveum.midpoint.web.page.admin.resources.PageResource; import com.evolveum.midpoint.web.page.admin.resources.PageResourceWizard; import com.evolveum.midpoint.web.page.admin.resources.PageResources; @@ -120,7 +119,6 @@ import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType; import com.evolveum.prism.xml.ns._public.types_3.PolyStringType; import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType; -import net.sf.cglib.core.Local; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; @@ -3335,17 +3333,41 @@ public static CompositedIcon createCompositeIconForObject } IconType lifecycleStateIcon = getIconForLifecycleState(obj); IconType activationStatusIcon = getIconForActivationStatus(obj); + StringBuilder title = new StringBuilder(basicIconDisplayType.getTooltip() != null ? basicIconDisplayType.getTooltip().getOrig() : ""); + if (StringUtils.isNotEmpty(lifecycleStateIcon.getCssClass())){ + if (title.length() > 0){ + title.append("\n"); + } + title.append(pageBase.createStringResource("ObjectType.lifecycleState").getString()) + .append(": ") + .append(obj.getLifecycleState()); + } + if (StringUtils.isNotEmpty(activationStatusIcon.getCssClass()) && obj instanceof FocusType + && ((FocusType)obj).getActivation() != null){ + if (title.length() > 0){ + title.append("\n"); + } + String lockedStatus = LockoutStatusType.LOCKED.equals(((FocusType)obj).getActivation().getLockoutStatus()) ? + ((FocusType)obj).getActivation().getLockoutStatus().value() : ""; + String effectiveStatus = ((FocusType)obj).getActivation().getEffectiveStatus() != null ? + ((FocusType)obj).getActivation().getEffectiveStatus().value() : ""; + title.append(pageBase.createStringResource("CapabilitiesType.activationStatus").getString()) + .append(": ") + .append(StringUtils.isNotEmpty(lockedStatus) ? lockedStatus : effectiveStatus); + } String iconColor = getIconColor(basicIconDisplayType); - CompositedIcon compositedIconForObject = iconBuilder.setBasicIcon( + CompositedIconBuilder builder = iconBuilder.setBasicIcon( getIconCssClass(basicIconDisplayType), IconCssStyle.IN_ROW_STYLE) .appendColorHtmlValue(StringUtils.isNotEmpty(iconColor) ? iconColor : "") .appendLayerIcon(lifecycleStateIcon, IconCssStyle.BOTTOM_LEFT_FOR_COLUMN_STYLE) - .appendLayerIcon(activationStatusIcon, IconCssStyle.BOTTOM_RIGHT_FOR_COLUMN_STYLE) - .build(); + .appendLayerIcon(activationStatusIcon, IconCssStyle.BOTTOM_RIGHT_FOR_COLUMN_STYLE); - return compositedIconForObject; + if (StringUtils.isNotEmpty(title.toString())){ + builder.setTitle(title.toString()); + } + return builder.build(); } public static IconType getIconForLifecycleState(O obj){ @@ -3356,6 +3378,10 @@ public static IconType getIconForLifecycleState(O obj){ } if (SchemaConstants.LIFECYCLE_ARCHIVED.equals(obj.getLifecycleState())){ icon.setCssClass(GuiStyleConstants.CLASS_FILE_EXCEL); + } else if (SchemaConstants.LIFECYCLE_DRAFT.equals(obj.getLifecycleState())){ + icon.setCssClass(GuiStyleConstants.CLASS_FILE_BLACK_FILLED); + } else if (SchemaConstants.LIFECYCLE_PROPOSED.equals(obj.getLifecycleState())){ + icon.setCssClass(GuiStyleConstants.CLASS_FILE_WHITE_FILLED); } if (icon.getCssClass() == null){ icon.setCssClass(""); @@ -3373,7 +3399,11 @@ public static IconType getIconForActivationStatus(O obj){ if (LockoutStatusType.LOCKED.equals(((FocusType) obj).getActivation().getLockoutStatus())){ icon.setCssClass(GuiStyleConstants.CLASS_LOCK_STATUS); } else if (ActivationStatusType.DISABLED.equals(((FocusType) obj).getActivation().getEffectiveStatus())){ + icon.setCssClass(GuiStyleConstants.CLASS_BAN); + } else if (ActivationStatusType.ARCHIVED.equals(((FocusType) obj).getActivation().getEffectiveStatus())){ icon.setCssClass(GuiStyleConstants.CLASS_ICON_NO_OBJECTS); + } else if (!ActivationStatusType.ENABLED.equals(((FocusType) obj).getActivation().getEffectiveStatus())){ + icon.setCssClass(GuiStyleConstants.CLASS_TEST_CONNECTION_MENU_ITEM); } if (icon.getCssClass() == null){ icon.setCssClass(""); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/init/PostInitialDataImport.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/init/PostInitialDataImport.java index 7a841a4766c..c7a9c0f605b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/init/PostInitialDataImport.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/init/PostInitialDataImport.java @@ -10,6 +10,7 @@ import java.io.File; import java.util.Arrays; +import com.evolveum.midpoint.xml.ns._public.common.common_3.ModelExecuteOptionsType; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.Validate; @@ -126,6 +127,7 @@ private boolean importObject(File file, Task task, OperationResult mainResult) { LOGGER.info("Starting post-initial import of file {}.", file.getName()); ImportOptionsType options = new ImportOptionsType(); options.overwrite(true); + options.setModelExecutionOptions(new ModelExecuteOptionsType().raw(false)); model.importObjectsFromFile(file, options, task, result); result.recordSuccess(); return true;