Skip to content

Commit

Permalink
MID-8871:fix for css style of self registration page
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Jun 2, 2023
1 parent 1ac8845 commit 6f9550a
Show file tree
Hide file tree
Showing 10 changed files with 82 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,20 @@

import com.evolveum.midpoint.authentication.api.util.AuthUtil;

import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanel;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanelSettings;
import com.evolveum.midpoint.gui.impl.prism.panel.vertical.form.VerticalFormPasswordPropertyPanel;
import com.evolveum.midpoint.gui.impl.prism.panel.vertical.form.VerticalFormPrismPropertyPanel;
import com.evolveum.midpoint.gui.impl.prism.panel.vertical.form.VerticalFormPrismReferencePanel;
import com.evolveum.midpoint.gui.impl.prism.wrapper.ProtectedStringTypeWrapperImpl;
import com.evolveum.midpoint.schema.processor.*;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.util.ExpressionUtil;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -36,6 +45,8 @@
import com.evolveum.midpoint.web.component.prism.ValueStatus;
import com.evolveum.midpoint.web.security.MidPointApplication;

import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.model.IModel;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

Expand Down Expand Up @@ -412,4 +423,19 @@ public static List<ResourceAttributeDefinition> searchAttributeDefinitions(
}
return allAttributes;
}

public static ItemPanel createVerticalPropertyPanel(String id, IModel<? extends ItemWrapper<?, ?>> model, ItemPanelSettings origSettings) {
ItemPanel propertyPanel;
ItemPanelSettings settings = origSettings != null ? origSettings.copy() : null;
if (model.getObject() instanceof ProtectedStringTypeWrapperImpl) {
propertyPanel = new VerticalFormPasswordPropertyPanel(
id, (IModel<PrismPropertyWrapper<ProtectedStringType>>) model, settings);
} else if (model.getObject() instanceof PrismPropertyWrapper) {
propertyPanel = new VerticalFormPrismPropertyPanel(id, model, settings);
} else {
propertyPanel = new VerticalFormPrismReferencePanel(id, model, settings);
}
propertyPanel.setOutputMarkupId(true);
return propertyPanel;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@

<wicket:fragment wicket:id="dynamicContent">
<div wicket:id="dynamicForm"/>
<div class="col-md-offset-6">
<div class="pt-3 text-center">
<div wicket:id="captcha"/>
</div>
</wicket:fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.evolveum.midpoint.gui.api.prism.wrapper.*;
import com.evolveum.midpoint.gui.api.util.GuiDisplayTypeUtil;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebPrismUtil;
import com.evolveum.midpoint.gui.impl.prism.panel.*;
import com.evolveum.midpoint.gui.impl.prism.wrapper.ProtectedStringTypeWrapperImpl;
import com.evolveum.midpoint.gui.impl.util.GuiDisplayNameUtil;
Expand Down Expand Up @@ -92,18 +93,9 @@ protected void populateItem(ListItem<ItemWrapper<?, ?>> item) {
protected void populateNonContainer(ListItem<? extends ItemWrapper<?, ?>> item) {
item.setOutputMarkupId(true);

ItemPanel propertyPanel;
ItemPanelSettings settings = getSettings() != null ? getSettings().copy() : null;
if (item.getModelObject() instanceof ProtectedStringTypeWrapperImpl) {
propertyPanel = new VerticalFormPasswordPropertyPanel(
ID_PROPERTY, (IModel<PrismPropertyWrapper<ProtectedStringType>>) item.getModel(), settings);
} else if (item.getModelObject() instanceof PrismPropertyWrapper) {
propertyPanel = new VerticalFormPrismPropertyPanel(ID_PROPERTY, item.getModel(), settings);
} else {
propertyPanel = new VerticalFormPrismReferencePanel(ID_PROPERTY, item.getModel(), settings);
}
propertyPanel.setOutputMarkupId(true);
ItemPanel propertyPanel = WebPrismUtil.createVerticalPropertyPanel(ID_PROPERTY, item.getModel(), getSettings());

ItemPanelSettings settings = propertyPanel.getSettings();
if (settings != null) {
propertyPanel.add(
new VisibleBehaviour(() -> isNonContainerVisible(item, settings)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ public class VerticalFormPrismPropertyHeaderPanel<T> extends PrismPropertyHeader

private static final long serialVersionUID = 1L;

private boolean isRequiredTagVisibleInHeaderPanel = false;


/**
* @param id
Expand All @@ -42,7 +44,11 @@ public VerticalFormPrismPropertyHeaderPanel(String id, IModel<PrismPropertyWrapp
@Override
protected void createRequired(String id) {
WebMarkupContainer required = new WebMarkupContainer(id);
required.add(new VisibleBehaviour(() -> false));
required.add(new VisibleBehaviour(() -> isRequiredTagVisibleInHeaderPanel));
add(required);
}

public void setRequiredTagVisibleInHeaderPanel(boolean requiredTagVisibleInHeaderPanel) {
isRequiredTagVisibleInHeaderPanel = requiredTagVisibleInHeaderPanel;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,25 +35,22 @@ public class VerticalFormPrismPropertyPanel<T> extends PrismPropertyPanel<T> {

private static final String ID_HEADER = "header";

private boolean isRequiredTagVisibleInHeaderPanel = false;

public VerticalFormPrismPropertyPanel(String id, IModel<PrismPropertyWrapper<T>> model, ItemPanelSettings settings) {
super(id, model, settings);
}

@Override
protected Component createHeaderPanel() {
return new VerticalFormPrismPropertyHeaderPanel<T>(ID_HEADER, getModel()) {
VerticalFormPrismPropertyHeaderPanel<T> header = new VerticalFormPrismPropertyHeaderPanel<T>(ID_HEADER, getModel()) {
@Override
protected void refreshPanel(AjaxRequestTarget target) {
target.add(VerticalFormPrismPropertyPanel.this);
}

@Override
protected void createRequired(String id) {
WebMarkupContainer required = new WebMarkupContainer(id);
required.add(new VisibleBehaviour(() -> false));
add(required);
}
};
header.setRequiredTagVisibleInHeaderPanel(this.isRequiredTagVisibleInHeaderPanel);
return header;
}

@Override
Expand All @@ -72,4 +69,8 @@ protected void remove(PrismPropertyValueWrapper<T> valueToRemove, AjaxRequestTar
protected String getCssClassForValueContainer() {
return "";
}

public void setRequiredTagVisibleInHeaderPanel(boolean requiredTagVisibleInHeaderPanel) {
isRequiredTagVisibleInHeaderPanel = requiredTagVisibleInHeaderPanel;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,20 @@ public class VerticalFormPrismReferenceHeaderPanel<R extends Referencable> exten

private static final long serialVersionUID = 1L;

private boolean isRequiredTagVisibleInHeaderPanel = false;

public VerticalFormPrismReferenceHeaderPanel(String id, IModel<PrismReferenceWrapper<R>> model) {
super(id, model);
}

@Override
protected void createRequired(String id) {
WebMarkupContainer required = new WebMarkupContainer(id);
required.add(new VisibleBehaviour(() -> false));
required.add(new VisibleBehaviour(() -> isRequiredTagVisibleInHeaderPanel));
add(required);
}

public void setRequiredTagVisibleInHeaderPanel(boolean requiredTagVisibleInHeaderPanel) {
isRequiredTagVisibleInHeaderPanel = requiredTagVisibleInHeaderPanel;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
public class VerticalFormPrismReferencePanel<R extends Referencable>
extends PrismReferencePanel<R> {

private boolean isRequiredTagVisibleInHeaderPanel = false;

public VerticalFormPrismReferencePanel(
String id,
IModel<PrismReferenceWrapper<R>> model,
Expand All @@ -53,15 +55,21 @@ protected void remove(

@Override
protected Component createHeaderPanel() {
return new VerticalFormPrismReferenceHeaderPanel<R>(ID_HEADER, getModel()) {
VerticalFormPrismReferenceHeaderPanel<R> header = new VerticalFormPrismReferenceHeaderPanel<R>(ID_HEADER, getModel()) {
@Override
protected void refreshPanel(AjaxRequestTarget target) {
target.add(VerticalFormPrismReferencePanel.this);
}
};
header.setRequiredTagVisibleInHeaderPanel(this.isRequiredTagVisibleInHeaderPanel);
return header;
}

protected String getCssClassForValueContainer() {
return "";
}

public void setRequiredTagVisibleInHeaderPanel(boolean requiredTagVisibleInHeaderPanel) {
isRequiredTagVisibleInHeaderPanel = requiredTagVisibleInHeaderPanel;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="prism-title row col-md-12" style="padding-bottom: 10px;" wicket:id="header"/>
<div class="prism-properties top-level-prism-container" style="border-top:none;">
<div class="col-12 p-0 pt-4 text-bold" wicket:id="header"/>
<div class="border-top py-2">
<div>
<div class="row prism-property" wicket:id="property"/>
<div wicket:id="property"/>
</div>
</div>
</wicket:panel>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@

import com.evolveum.midpoint.gui.api.util.WebComponentUtil;

import com.evolveum.midpoint.gui.api.util.WebPrismUtil;
import com.evolveum.midpoint.gui.impl.prism.panel.ItemPanel;

import com.evolveum.midpoint.gui.impl.prism.panel.vertical.form.VerticalFormPrismPropertyPanel;

import com.evolveum.midpoint.gui.impl.prism.panel.vertical.form.VerticalFormPrismReferencePanel;

import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.markup.html.basic.Label;
Expand Down Expand Up @@ -90,16 +97,14 @@ private void initLayout(String groupName, List<AbstractFormItemType> formItems,
continue;
}

ItemWrapper<?, ?> itemWrapper = findAndTailorItemWrapper(formItem, getObjectWrapper());

try {
Panel panel = parentPage.initItemPanel(itemView.newChildId(), itemWrapper.getTypeName(), Model.of(itemWrapper), null);
panel.setOutputMarkupId(true);
itemView.add(panel);
} catch (SchemaException e) {
getSession().error("Cannot create panel " + e.getMessage());
IModel<ItemWrapper<?, ?>> model = () -> findAndTailorItemWrapper(formItem, getObjectWrapper());
Panel panel = WebPrismUtil.createVerticalPropertyPanel(itemView.newChildId(), model, null);
if (panel instanceof VerticalFormPrismPropertyPanel<?>) {
((VerticalFormPrismPropertyPanel)panel).setRequiredTagVisibleInHeaderPanel(true);
} else if (panel instanceof VerticalFormPrismReferencePanel<?>) {
((VerticalFormPrismReferencePanel)panel).setRequiredTagVisibleInHeaderPanel(true);
}

itemView.add(panel);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="container-fluid prism-object" >
<div class="row col-md-12">
<div class="container-fluid prism-container" wicket:id="formFields"/>
<div>
<div class="col-md-12 p-0">
<div wicket:id="formFields"/>
</div>
</div>
</wicket:panel>
Expand Down

0 comments on commit 6f9550a

Please sign in to comment.