Skip to content

Commit

Permalink
fix redirect back for new system configuration page
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Aug 27, 2018
1 parent b1f9d66 commit bdbbadc
Show file tree
Hide file tree
Showing 9 changed files with 218 additions and 25 deletions.
Expand Up @@ -30,6 +30,7 @@
import com.evolveum.midpoint.gui.api.util.ModelServiceLocator;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.configuration.component.SystemConfigPanelNew;
import com.evolveum.midpoint.model.api.*;
import com.evolveum.midpoint.model.api.expr.MidpointFunctions;
import com.evolveum.midpoint.model.api.validator.ResourceValidator;
Expand Down Expand Up @@ -1490,6 +1491,19 @@ protected List<SideBarMenuItem> createMenuItems() {

return menus;
}

// private MainMenuItem createSystemConfigurationItems() {
// MainMenuItem item = new MainMenuItem(GuiStyleConstants.CLASS_SYSTEM_CONFIGURATION_ICON_COLORED,
// createStringResource("PageAdmin.menu.top.configuration.basic.new"), PageSystemConfigurationNew.class);
//
// addMenuItem(item, "PageAdmin.menu.top.configuration.basic", SystemConfigPanelNew.class);
// addMenuItem(item, "PageAdmin.menu.top.configuration.objectPolicy", PageUsers.class);
// addMenuItem(item, "PageAdmin.menu.top.users.list", PageUsers.class);
//
// addUsersViewMenuItems(item.getItems());
//
// return item;
// }

private void createConfigurationMenu(SideBarMenuItem item) {
addMainMenuItem(item, "fa fa-bullseye", "PageAdmin.menu.top.configuration.bulkActions", PageBulkAction.class);
Expand All @@ -1503,7 +1517,7 @@ private void createConfigurationMenu(SideBarMenuItem item) {
PageDebugView.class, null, createVisibleDisabledBehaviorForEditMenu(PageDebugView.class));
debugs.getItems().add(menu);

MainMenuItem systemItemNew = addMainMenuItem(item, "fa fa-cog", "PageAdmin.menu.top.configuration.basic.new", PageSystemConfigurationNew.class);
MainMenuItem systemItemNew = addMainMenuItem(item, "fa fa-cog", "PageAdmin.menu.top.configuration.basic.new", null);

addSystemMenuItemNew(systemItemNew, "PageAdmin.menu.top.configuration.basic",
PageSystemConfigurationNew.CONFIGURATION_TAB_BASIC);
Expand Down Expand Up @@ -1590,7 +1604,7 @@ public boolean isMenuActive(WebPage page) {
return false;
}

int index = getSelectedTabForConfiguration(page);
int index = getSelectedTabForNewConfiguration(page);
return tabIndex == index ? true : false;
}
};
Expand Down Expand Up @@ -1747,6 +1761,17 @@ private int getSelectedTabForConfiguration(WebPage page) {

return StringUtils.isNumeric(value) ? Integer.parseInt(value) : PageSystemConfiguration.CONFIGURATION_TAB_BASIC;
}

private int getSelectedTabForNewConfiguration(WebPage page) {
PageParameters params = page.getPageParameters();
StringValue val = params.get(PageSystemConfigurationNew.SELECTED_TAB_INDEX);
String value = null;
if (val != null && !val.isNull()) {
value = val.toString();
}

return StringUtils.isNumeric(value) ? Integer.parseInt(value) : PageSystemConfigurationNew.CONFIGURATION_TAB_BASIC;
}

private void createSelfServiceMenu(SideBarMenuItem menu) {
addMainMenuItem(menu, GuiStyleConstants.CLASS_ICON_DASHBOARD, "PageAdmin.menu.selfDashboard",
Expand Down
Expand Up @@ -22,15 +22,23 @@

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.prism.Containerable;
import com.evolveum.midpoint.prism.path.ItemPath;
import com.evolveum.midpoint.prism.path.ItemPath;import com.evolveum.midpoint.prism.path.ItemPathSegment;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.form.Form;
import com.evolveum.midpoint.web.component.prism.ItemVisibility;
import com.evolveum.midpoint.web.component.prism.ItemWrapper;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.component.prism.PrismContainerPanel;
import com.evolveum.midpoint.web.model.ContainerWrapperFromObjectWrapperModel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.DeploymentInformationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.LoggingConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PcpAspectConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.PrimaryChangeProcessorConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SystemConfigurationType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.WfConfigurationType;

/**
* @author skublik
Expand All @@ -39,6 +47,8 @@ public class ContainerOfSystemConfigurationPanel<C extends Containerable> extend

private static final long serialVersionUID = 1L;

private static final Trace LOGGER = TraceManager.getTrace(ContainerOfSystemConfigurationPanel.class);

private static final String ID_CONTAINER = "container";
private QName qNameContainer;

Expand All @@ -58,9 +68,37 @@ protected void initLayout() {
Form form = new Form<>("form");

ContainerWrapperFromObjectWrapperModel<C, SystemConfigurationType> model = new ContainerWrapperFromObjectWrapperModel<>(getModel(), new ItemPath(qNameContainer));
PrismContainerPanel<C> panel = new PrismContainerPanel<>(ID_CONTAINER, model, true, form, null, getPageBase());
PrismContainerPanel<C> panel = new PrismContainerPanel<>(ID_CONTAINER, model, true, form, itemWrapper -> getVisibity(itemWrapper.getPath()), getPageBase());
add(panel);

}

protected ItemVisibility getVisibity(ItemPath itemPath) {
if(itemPath.getFirstName().equals(SystemConfigurationType.F_WORKFLOW_CONFIGURATION)) {
if(itemPath.lastNamed().getName().equals(WfConfigurationType.F_APPROVER_COMMENTS_FORMATTING)) {
return ItemVisibility.HIDDEN;
}

if(itemPath.tail().equivalent(new ItemPath(WfConfigurationType.F_PRIMARY_CHANGE_PROCESSOR, PrimaryChangeProcessorConfigurationType.F_ADD_ASSOCIATION_ASPECT,
PcpAspectConfigurationType.F_APPROVER_REF))) {
return ItemVisibility.AUTO;
}

if(itemPath.tail().startsWithName(WfConfigurationType.F_PRIMARY_CHANGE_PROCESSOR)
&& (itemPath.lastNamed().getName().equals(PcpAspectConfigurationType.F_APPROVER_EXPRESSION)
|| itemPath.lastNamed().getName().equals(PcpAspectConfigurationType.F_APPROVER_REF)
|| itemPath.lastNamed().getName().equals(PcpAspectConfigurationType.F_AUTOMATICALLY_APPROVED)
|| itemPath.lastNamed().getName().equals(PcpAspectConfigurationType.F_APPLICABILITY_CONDITION))) {
return ItemVisibility.HIDDEN;
}
}

if(itemPath.equivalent(new ItemPath(SystemConfigurationType.F_ACCESS_CERTIFICATION, AccessCertificationConfigurationType.F_REVIEWER_COMMENTS_FORMATTING))) {
return ItemVisibility.HIDDEN;
}

return ItemVisibility.AUTO;
}


}
Expand Up @@ -32,6 +32,8 @@
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

import com.evolveum.midpoint.gui.api.component.BasePanel;
import com.evolveum.midpoint.gui.api.component.DisplayNamePanel;
Expand Down Expand Up @@ -60,6 +62,7 @@
import com.evolveum.midpoint.web.component.prism.ValueWrapper;
import com.evolveum.midpoint.web.component.search.SearchFactory;
import com.evolveum.midpoint.web.component.search.SearchItemDefinition;
import com.evolveum.midpoint.web.page.admin.configuration.PageSystemConfigurationNew;
import com.evolveum.midpoint.web.session.PageStorage;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.web.session.UserProfileStorage.TableId;
Expand All @@ -82,11 +85,22 @@ public class ObjectPolicyConfigurationTabPanel extends BasePanel<ContainerWrappe

public ObjectPolicyConfigurationTabPanel(String id, IModel<ContainerWrapper<ObjectPolicyConfigurationType>> model) {
super(id, model);


}

@Override
protected void onInitialize() {
super.onInitialize();

PageParameters params = getPage().getPageParameters();
StringValue val = params.get(PageSystemConfigurationNew.SELECTED_TAB_INDEX);
String value = null;
if (val != null && !val.isNull()) {
params.remove(params.getPosition(PageSystemConfigurationNew.SELECTED_TAB_INDEX));
}
params.set(PageSystemConfigurationNew.SELECTED_TAB_INDEX, PageSystemConfigurationNew.CONFIGURATION_TAB_OBJECT_POLICY);

initLayout();
}

Expand Down
Expand Up @@ -57,7 +57,7 @@ public abstract class AbstractObjectMainPanel<O extends ObjectType> extends Pane
public static final String PARAMETER_SELECTED_TAB = "tab";

private static final String ID_MAIN_FORM = "mainForm";
private static final String ID_TAB_PANEL = "tabPanel";
public static final String ID_TAB_PANEL = "tabPanel";
private static final String ID_EXECUTE_OPTIONS = "executeOptions";
private static final String ID_BACK = "back";
private static final String ID_SAVE = "save";
Expand Down
Expand Up @@ -794,7 +794,7 @@ public boolean containsMultipleMultivalueContainer(ItemVisibilityHandler isPanel
}
if (!((ContainerWrapper<C>) wrapper).getItemDefinition().isSingleValue()){
if(isPanelVisible != null) {
if(!isPanelVisible.isVisible(wrapper).equals(ItemVisibility.HIDDEN)
if(isPanelVisible.isVisible(wrapper).equals(ItemVisibility.VISIBLE)
|| (isPanelVisible.isVisible(wrapper).equals(ItemVisibility.AUTO) && ((ContainerWrapper<C>)wrapper).isVisible())) {
count++;
}
Expand Down
Expand Up @@ -81,7 +81,6 @@ public PrismContainerPanel(String id, final IModel<ContainerWrapper<C>> model, b
setExtendedForEmptyContainers(model);
}


LOGGER.trace("Creating container panel for {}", model.getObject());

//TODO: visible behaviour??
Expand Down
Expand Up @@ -23,14 +23,18 @@
import com.evolveum.midpoint.web.page.admin.PageAdminObjectDetails;
import com.evolveum.midpoint.web.page.admin.configuration.component.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.commons.lang.StringUtils;
import org.apache.wicket.Page;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
import org.apache.wicket.extensions.markup.html.tabs.ITab;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.util.string.StringValue;

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.configuration.component.GlobalPolicyRuleTabPanel;
import com.evolveum.midpoint.gui.impl.page.admin.configuration.component.LoggingConfigurationTabPanel;
Expand All @@ -47,6 +51,7 @@
import com.evolveum.midpoint.web.application.AuthorizationAction;
import com.evolveum.midpoint.web.application.PageDescriptor;
import com.evolveum.midpoint.web.component.ObjectSummaryPanel;
import com.evolveum.midpoint.web.component.TabbedPanel;
import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectMainPanel;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.model.ContainerWrapperFromObjectWrapperModel;
Expand Down Expand Up @@ -93,7 +98,9 @@ public class PageSystemConfigurationNew extends PageAdminObjectDetails<SystemCon
public static final int CONFIGURATION_TAB_INFRASTRUCTURE = 14;
public static final int CONFIGURATION_TAB_FULL_TEXT_SEARCH = 15;

private static final Trace LOGGER = TraceManager.getTrace(PageSystemConfiguration.class);
private static final Trace LOGGER = TraceManager.getTrace(PageSystemConfigurationNew.class);

private boolean initialized = false;

private static final String ID_SUMM_PANEL = "summaryPanel";

Expand All @@ -108,16 +115,16 @@ public PageSystemConfigurationNew(PageParameters parameters) {
initialize(null);
}

public PageSystemConfigurationNew(final PrismObject<SystemConfigurationType> userToEdit) {
initialize(userToEdit);
public PageSystemConfigurationNew(final PrismObject<SystemConfigurationType> configToEdit) {
initialize(configToEdit);
}

public PageSystemConfigurationNew(final PrismObject<SystemConfigurationType> unitToEdit, boolean isNewObject) {
initialize(unitToEdit, isNewObject);
public PageSystemConfigurationNew(final PrismObject<SystemConfigurationType> configToEdit, boolean isNewObject) {
initialize(configToEdit, isNewObject);
}

@Override
protected void initializeModel(final PrismObject<SystemConfigurationType> objectToEdit, boolean isNewObject, boolean isReadonly) {
protected void initializeModel(final PrismObject<SystemConfigurationType> configToEdit, boolean isNewObject, boolean isReadonly) {
super.initializeModel(WebModelServiceUtils.loadSystemConfigurationAsObjectWrapper(this).getObject(), false, isReadonly);
}

Expand Down Expand Up @@ -295,11 +302,6 @@ public WebMarkupContainer getPanel(String panelId) {
return tabs;
}

@Override
protected void onBeforeRender() {
super.onBeforeRender();
}

@Override
public void finishProcessing(AjaxRequestTarget target, OperationResult result, boolean returningFromAsync) {

Expand Down Expand Up @@ -340,6 +342,22 @@ protected boolean getOptionsPanelVisibility() {
protected boolean isPreviewButtonVisible() {
return false;
}

@Override
protected void initLayoutTabs(PageAdminObjectDetails<SystemConfigurationType> parentPage) {
List<ITab> tabs = createTabs(parentPage);
TabbedPanel<ITab> tabPanel = new TabbedPanel<ITab>(ID_TAB_PANEL, tabs) {

private static final long serialVersionUID = 1L;

@Override
protected void onTabChange(int index) {
PageParameters params = getPageParameters();
params.set(SELECTED_TAB_INDEX, index);
}
};
getMainForm().add(tabPanel);
}
};
}

Expand Down
17 changes: 17 additions & 0 deletions infra/schema/src/main/resources/localization/schema.properties
Expand Up @@ -245,6 +245,12 @@ DeploymentInformationType.partnerUrl=Partner url
DeploymentInformationType.subscriptionIdentifier=Subscription identifier
DetailsPageSaveMethodType.DIRECT=Direct
DetailsPageSaveMethodType.FORCED_PREVIEW=Forced preview
DisplayType.details=Display
DisplayType.label=Label
DisplayType.tooltip=Tooltip
DisplayType.help=Help
DisplayType.cssStyle=Css style
DisplayType.cssClass=Css class
DistinctSearchOptionType.AUTO=Auto
DistinctSearchOptionType.NEVER=Never
EscalateWorkItemActionType.escalationLevelName=Escalation level name
Expand All @@ -261,6 +267,14 @@ FocusType.inducement=Inducements
FocusType.delegations=Delegations
FocusType.delegatedToMe=Delegated to me
FocusType.displayName=Display Name
FormDisplayType.details=Form display
FormDisplayType.theme=Theme
FormItemDisplayType.details=Form item display
FormItemDisplayType.minOccurs=Min occurs
FormItemDisplayType.maxOccurs=Max occurs
FormItemDisplayType.size=Size
FormItemDisplayType.maxSize=Max size
FormItemDisplayType.newLine=New line
FormSpecificationType.title=Title
FormSpecificationType.formRef=Reference to form
FormSpecificationType.panelClass=Panel class
Expand Down Expand Up @@ -291,6 +305,9 @@ HasAssignmentPolicyConstraintType.targetRef=Target
HasAssignmentPolicyConstraintType.enabled=Enable
HasAssignmentPolicyConstraintType.direct=Direct
HasAssignmentPolicyConstraintType.relation=Relation
IconType.details=Icon
IconType.imageUrl=Image url
IconType.cssClass=Css class
InfrastructureConfigurationType.defaultHostname=Default hostname
InfrastructureConfigurationType.intraClusterHttpUrlPattern=Intra cluster http url pattern
InfrastructureConfigurationType.remoteHostAddressHeader
Expand Down

0 comments on commit bdbbadc

Please sign in to comment.