Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/messaging-a…
Browse files Browse the repository at this point in the history
…s-source

# Conflicts:
#	provisioning/ucf-api/src/main/java/com/evolveum/midpoint/provisioning/ucf/api/ConnectorInstance.java
  • Loading branch information
mederly committed Mar 13, 2019
2 parents 13a64cf + f8b5359 commit ab655fe
Show file tree
Hide file tree
Showing 78 changed files with 2,189 additions and 1,516 deletions.
2 changes: 1 addition & 1 deletion build-system/pom.xml
Expand Up @@ -83,7 +83,7 @@
<activiti-spring.version>5.22.0</activiti-spring.version>
<commons-email.version>1.3</commons-email.version>
<xmlsec.version>2.0.6</xmlsec.version>
<connid.version>1.5.0.8</connid.version>
<connid.version>1.5.0.10</connid.version>
<jasper.version>6.5.0</jasper.version>
<derby.version>10.11.1.1</derby.version>
<wro4j.version>1.8.0</wro4j.version>
Expand Down
Expand Up @@ -1778,7 +1778,9 @@ public String getBubbleLabel() {

createFocusPageViewMenu(item.getItems(), "PageAdmin.menu.top.caseWorkItems.view", PageCaseWorkItem.class);

addMenuItem(item, "PageAdmin.menu.top.case.new", PageCase.class);
MenuItem newCaseMenu = new MenuItem(createStringResource("PageAdmin.menu.top.case.new"), GuiStyleConstants.CLASS_PLUS_CIRCLE, PageCase.class, null,
new VisibleEnableBehaviour());
item.getItems().add(newCaseMenu);

return item;
}
Expand All @@ -1788,15 +1790,16 @@ private MainMenuItem createServerTasksItems() {
createStringResource("PageAdmin.menu.top.serverTasks"), null);

addMenuItem(item, "PageAdmin.menu.top.serverTasks.list", PageTasks.class);
addMenuItem(item, "PageAdmin.menu.top.serverTasks.new", PageTaskAdd.class);
//should we support archetype view for TaskType?
// addCollectionsMenuItems(item.getItems(), TaskType.COMPLEX_TYPE);
MenuItem newTaskMenu = new MenuItem(createStringResource("PageAdmin.menu.top.serverTasks.new"), GuiStyleConstants.CLASS_PLUS_CIRCLE, PageTaskAdd.class, null,
new VisibleEnableBehaviour());
item.getItems().add(newTaskMenu);

MenuItem menuItem = new MenuItem(createStringResource("PageAdmin.menu.top.serverTasks.edit"),
PageTaskEdit.class, null, createVisibleDisabledBehaviorForEditMenu(PageTaskEdit.class));
item.getItems().add(menuItem);

//should we support archetype view for TaskType?
// addCollectionsMenuItems(item.getItems(), TaskType.COMPLEX_TYPE);

return item;
}

Expand All @@ -1820,15 +1823,15 @@ && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null)
};
item.getItems().add(menu);

addCollectionsMenuItems(item.getItems(), ResourceType.COMPLEX_TYPE, PageResources.class);

createFocusPageViewMenu(item.getItems(), "PageAdmin.menu.top.resources.view", PageResource.class);
createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.resources.new",
"PageAdmin.menu.top.resources.edit", PageResourceWizard.class, false);

addMenuItem(item, "PageAdmin.menu.top.resources.import", PageImportResource.class);
addMenuItem(item, "PageAdmin.menu.top.connectorHosts.list", PageConnectorHosts.class);

addCollectionsMenuItems(item.getItems(), ResourceType.COMPLEX_TYPE, PageResources.class);

return item;
}

Expand Down Expand Up @@ -1880,7 +1883,6 @@ public String getBubbleLabel() {
};

addMenuItem(item, "PageAdmin.menu.top.certification.definitions", PageCertDefinitions.class);
addMenuItem(item, "PageAdmin.menu.top.certification.newDefinition", PageCertDefinition.class);
addMenuItem(item, "PageAdmin.menu.top.certification.campaigns", PageCertCampaigns.class);

PageParameters params = new PageParameters();
Expand All @@ -1891,6 +1893,10 @@ public String getBubbleLabel() {

addMenuItem(item, "PageAdmin.menu.top.certification.decisions", PageCertDecisions.class);

MenuItem newCertificationMenu = new MenuItem(createStringResource("PageAdmin.menu.top.certification.newDefinition"), GuiStyleConstants.CLASS_PLUS_CIRCLE, PageCertDefinition.class, null,
new VisibleEnableBehaviour());
item.getItems().add(newCertificationMenu);

return item;
}

Expand Down Expand Up @@ -1966,12 +1972,10 @@ && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null)
}
};
item.getItems().add(menu);
addCollectionsMenuItems(item.getItems(), UserType.COMPLEX_TYPE, PageUsers.class);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.users.new",
"PageAdmin.menu.top.users.edit", PageUser.class, true);

addCollectionsMenuItems(item.getItems(), UserType.COMPLEX_TYPE, PageUsers.class);

return item;
}

Expand Down Expand Up @@ -2086,12 +2090,12 @@ private MainMenuItem createOrganizationsMenu() {
MenuItem orgTree = new MenuItem(createStringResource("PageAdmin.menu.top.users.org.tree"),
GuiStyleConstants.CLASS_OBJECT_ORG_ICON, PageOrgTree.class);
item.getItems().add(orgTree);
createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.users.org.new", "PageAdmin.menu.top.users.org.edit",
PageOrgUnit.class, true);

//todo should we have org list page for collection/archetype view?
// addCollectionsMenuItems(item.getItems(), OrgType.COMPLEX_TYPE);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.users.org.new", "PageAdmin.menu.top.users.org.edit",
PageOrgUnit.class, true);

return item;
}

Expand All @@ -2114,12 +2118,11 @@ && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null)
}
};
item.getItems().add(menu);
addCollectionsMenuItems(item.getItems(), RoleType.COMPLEX_TYPE, PageRoles.class);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.roles.new", "PageAdmin.menu.top.roles.edit",
PageRole.class, true);

addCollectionsMenuItems(item.getItems(), RoleType.COMPLEX_TYPE, PageRoles.class);

return item;
}

Expand All @@ -2142,12 +2145,11 @@ && getPageParameters().get(PARAMETER_OBJECT_COLLECTION_NAME).toString() != null)
}
};
item.getItems().add(menu);
addCollectionsMenuItems(item.getItems(), ServiceType.COMPLEX_TYPE, PageServices.class);

createFocusPageNewEditMenu(item.getItems(), "PageAdmin.menu.top.services.new", "PageAdmin.menu.top.services.edit",
PageService.class, true);

addCollectionsMenuItems(item.getItems(), ServiceType.COMPLEX_TYPE, PageServices.class);

return item;
}

Expand Down
Expand Up @@ -23,7 +23,9 @@
import com.evolveum.midpoint.gui.impl.component.icon.IconCssStyle;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DisplayType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.IconType;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.markup.repeater.RepeatingView;
Expand All @@ -36,7 +38,7 @@
/**
* Created by honchar
*/
public class MultifunctionalButton<S extends Serializable> extends BasePanel<S> {
public abstract class MultifunctionalButton<S extends Serializable> extends BasePanel<S> {

private static String ID_MAIN_BUTTON = "mainButton";
private static String ID_BUTTON = "additionalButton";
Expand All @@ -56,7 +58,12 @@ protected void onInitialize(){
private void initLayout(){
List<S> additionalButtons = getAdditionalButtonsObjects();

DisplayType mainButtonDisplayType = getMainButtonDisplayType();
DisplayType defaultObjectButtonDisplayType = validateDisplayType(getDefaultObjectButtonDisplayType());
DisplayType mainButtonDisplayType = validateDisplayType(getMainButtonDisplayType());
//we set default button icon class if no other is defined
if (StringUtils.isEmpty(mainButtonDisplayType.getIcon().getCssClass())){
mainButtonDisplayType.getIcon().setCssClass(defaultObjectButtonDisplayType.getIcon().getCssClass());
}
CompositedIconBuilder builder = new CompositedIconBuilder();
builder.setBasicIcon(WebComponentUtil.getIconCssClass(mainButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(mainButtonDisplayType));
Expand All @@ -82,7 +89,11 @@ public void onClick(AjaxRequestTarget target) {

if (additionalButtonsExist()){
additionalButtons.forEach(additionalButtonObject -> {
DisplayType additionalButtonDisplayType = getAdditionalButtonDisplayType(additionalButtonObject);
DisplayType additionalButtonDisplayType = validateDisplayType(getAdditionalButtonDisplayType(additionalButtonObject));
//we set default button icon class if no other is defined
if (StringUtils.isEmpty(additionalButtonDisplayType.getIcon().getCssClass())){
additionalButtonDisplayType.getIcon().setCssClass(defaultObjectButtonDisplayType.getIcon().getCssClass());
}

CompositedIconBuilder additionalButtonBuilder = new CompositedIconBuilder();
additionalButtonBuilder.setBasicIcon(WebComponentUtil.getIconCssClass(additionalButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
Expand All @@ -103,7 +114,10 @@ public void onClick(AjaxRequestTarget target) {
buttonsPanel.add(additionalButton);
});

DisplayType defaultObjectButtonDisplayType = getDefaultObjectButtonDisplayType();
//we set main button icon class if no other is defined
if (StringUtils.isEmpty(defaultObjectButtonDisplayType.getIcon().getCssClass())){
defaultObjectButtonDisplayType.getIcon().setCssClass(mainButtonDisplayType.getIcon().getCssClass());
}
CompositedIconBuilder defaultObjectButtonBuilder = new CompositedIconBuilder();
defaultObjectButtonBuilder.setBasicIcon(WebComponentUtil.getIconCssClass(defaultObjectButtonDisplayType), IconCssStyle.IN_ROW_STYLE)
.appendColorHtmlValue(WebComponentUtil.getIconColor(defaultObjectButtonDisplayType))
Expand All @@ -125,21 +139,29 @@ public void onClick(AjaxRequestTarget target) {
}
}

protected DisplayType getMainButtonDisplayType(){
return null;
}
protected abstract DisplayType getMainButtonDisplayType();

protected DisplayType getAdditionalButtonDisplayType(S buttonObject){
return null;
}
protected abstract DisplayType getAdditionalButtonDisplayType(S buttonObject);

/**
* this method should return the display properties for the last button on the dropdown panel with additional buttons.
* The last button is supposed to produce a default action (an action with no additional objects to process)
* @return
*/
protected DisplayType getDefaultObjectButtonDisplayType(){
return null;
protected abstract DisplayType getDefaultObjectButtonDisplayType();

private DisplayType validateDisplayType(DisplayType displayType){
if (displayType == null){
displayType = new DisplayType();
}
if (displayType.getIcon() == null){
displayType.setIcon(new IconType());
}
if (displayType.getIcon().getCssClass() == null){
displayType.getIcon().setCssClass("");
}

return displayType;
}

protected void buttonClickPerformed(AjaxRequestTarget target, S buttonObject){
Expand Down
Expand Up @@ -15,19 +15,17 @@
*/
package com.evolveum.midpoint.web.component.data.column;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.model.api.AssignmentCandidatesSpecification;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.ShadowUtil;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Component;
import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator;
import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
Expand All @@ -41,12 +39,11 @@
import org.apache.wicket.model.PropertyModel;
import org.apache.wicket.model.StringResourceModel;

import com.evolveum.midpoint.gui.api.GuiStyleConstants;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.util.ShadowUtil;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import javax.xml.namespace.QName;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

public class ColumnUtils {

Expand Down Expand Up @@ -156,15 +153,15 @@ public IModel<String> getDataModel(IModel<SelectableBean<O>> rowModel) {

}

private static <T extends ObjectType> String getIconColumnValue(IModel<SelectableBean<T>> rowModel){
T object = rowModel.getObject().getValue();
if (object == null){
private static <T extends ObjectType> String getIconColumnValue(IModel<SelectableBean<T>> rowModel) {
if (rowModel == null || rowModel.getObject() == null || rowModel.getObject().getValue() == null) {
return "";
}
Class<T> type = (Class<T>)rowModel.getObject().getValue().getClass();
if (object == null && !ShadowType.class.equals(type)){
return null;
} else if (type.equals(ObjectType.class)){

T object = rowModel.getObject().getValue();

Class<T> type = (Class<T>) object.getClass();
if (type.equals(ObjectType.class)) {
return WebComponentUtil.createDefaultIcon(object.asPrismObject());
} else if (type.equals(UserType.class)) {
return WebComponentUtil.createUserIcon(object.asPrismContainer());
Expand All @@ -173,7 +170,7 @@ private static <T extends ObjectType> String getIconColumnValue(IModel<Selectabl
} else if (OrgType.class.equals(type)) {
return WebComponentUtil.createOrgIcon(object.asPrismContainer());
} else if (ServiceType.class.equals(type)) {
return WebComponentUtil.createServiceIcon(object.asPrismContainer()) ;
return WebComponentUtil.createServiceIcon(object.asPrismContainer());
} else if (ShadowType.class.equals(type)) {
if (object == null) {
return WebComponentUtil.createErrorIcon(rowModel.getObject().getResult());
Expand All @@ -186,11 +183,9 @@ private static <T extends ObjectType> String getIconColumnValue(IModel<Selectabl
return WebComponentUtil.createResourceIcon(object.asPrismContainer());
} else if (type.equals(AccessCertificationDefinitionType.class)) {
return GuiStyleConstants.CLASS_OBJECT_CERT_DEF_ICON + " " + GuiStyleConstants.CLASS_ICON_STYLE_NORMAL;
} else {
return "";
// throw new UnsupportedOperationException("Will be implemented eventually");
}

return "";
}

private static <T extends ObjectType> IModel<String> getIconColumnDataModel(IModel<SelectableBean<T>> rowModel){
Expand All @@ -208,6 +203,14 @@ private static <T extends ObjectType> IModel<String> getIconColumnDataModel(IMod
}

private static <T extends ObjectType> String getIconColumnTitle(IModel<SelectableBean<T>> rowModel){
if (rowModel == null || rowModel.getObject() == null){
return null;
}
if (rowModel.getObject().getResult() != null && rowModel.getObject().getResult().isFatalError()){
OperationResult result = rowModel.getObject().getResult();
return result.getUserFriendlyMessage() != null ?
result.getUserFriendlyMessage().getFallbackMessage() : result.getMessage();
}
Class<T> type = (Class<T>)rowModel.getObject().getValue().getClass();
T object = rowModel.getObject().getValue();
if (object == null && !ShadowType.class.equals(type)){
Expand Down
Expand Up @@ -103,7 +103,6 @@ public class SearchFactory {
ItemPath.create(UserType.F_EMPLOYEE_NUMBER),
ItemPath.create(UserType.F_EMPLOYEE_TYPE),
ItemPath.create(UserType.F_ORGANIZATIONAL_UNIT),
ItemPath.create(UserType.F_COST_CENTER),
ItemPath.create(UserType.F_LOCALITY)));
SEARCHABLE_OBJECTS.put(RoleType.class, Arrays.asList(
ItemPath.create(RoleType.F_NAME),
Expand Down
Expand Up @@ -216,7 +216,15 @@ public Object getDisplayValue(PrismObject<ConnectorType> object) {

@Override
public String getIdValue(PrismObject<ConnectorType> object, int index) {
return Integer.toString(index);
if (index < 0){
List<PrismObject<ConnectorType>> connectors = relevantConnectorsModel.getObject();
for (PrismObject<ConnectorType> connector : connectors){
if (connector.getOid().equals(selectedConnectorModel.getObject().getOid())){
return Integer.toString(connectors.indexOf(connector));
}
}
}
return Integer.toString(index);
}
}, createStringResource("NameStep.connectorType"), "col-md-3", "col-md-6", true) {

Expand Down
Expand Up @@ -165,7 +165,7 @@ protected String getTableIdKeyValue(){
@Override
protected String getStorageKey() {
StringValue collectionName = getCollectionNameParameterValue();
String key = !isCollectionViewPage() ?
String key = isCollectionViewPage() ?
SessionStorage.KEY_OBJECT_LIST + "." + collectionName : SessionStorage.KEY_OBJECT_LIST + "." + getType().getSimpleName();
return key;
}
Expand Down Expand Up @@ -246,7 +246,7 @@ public MainObjectListPanel<O, CompiledObjectCollectionView> getObjectListPanel()

private boolean isCollectionViewPage(){
StringValue collectionNameParam = getCollectionNameParameterValue();
return collectionNameParam != null && !collectionNameParam.isEmpty();
return collectionNameParam != null && !collectionNameParam.isEmpty() && !collectionNameParam.toString().equals("null");
}

private DisplayType getCollectionViewDisplayType(CompiledObjectCollectionView view){
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -110,7 +110,7 @@ AssignmentPreviewDialog.label=Zobrazit přímá i nepřímá přiřazení
AssignmentPreviewDialog.delegationPreviewLabel=Omezit výsady
AssignmentPreviewDialog.type.direct=Přímé
AssignmentPreviewDialog.type.indirect=Nepřímé
AssignmentPreviewDialog.tooltip.indirect.parent=Předchůdce
AssignmentPreviewDialog.tooltip.indirect.parent=Nadřazený
AssignmentTablePanel.menu.assign=Přidat přiřazení
AssignmentTablePanel.menu.assignOrg=Přiřadit organizaci
AssignmentTablePanel.menu.assignOrg.noorgs=Organizační struktura není definovaná.
Expand Down Expand Up @@ -3605,7 +3605,7 @@ PageAdmin.menu.top.services=Služby
PageAdmin.menu.top.services.list=Všechny služby
PageAdmin.menu.top.services.new=Nová služba
PageAdmin.menu.top.services.edit=Upravit službu
taskShowAdvancedFeaturesPanel.label=Zobrazit rozšířené rysy
taskShowAdvancedFeaturesPanel.label=Zobrazit rozšířené funkce
taskWfParentPanel.changesNotRequiringApproval=Změny, které nevyžadují schválení
taskOtherChangesPanel.label.state=Stav:
taskOtherChangesPanel.state.FINAL=Změny byly provedeny (úspěšně či neúspěšně)
Expand Down

0 comments on commit ab655fe

Please sign in to comment.