Skip to content

Commit

Permalink
Merge branch 'master' of github.com:Evolveum/midpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
1azyman committed Feb 22, 2023
2 parents d62aa42 + 231f3d7 commit 16831ae
Show file tree
Hide file tree
Showing 37 changed files with 1,060 additions and 351 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
import org.apache.wicket.extensions.markup.html.repeater.data.table.DataTable;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.markup.html.panel.Fragment;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

Expand Down Expand Up @@ -57,7 +59,7 @@ protected void onInitialize() {
add(parametersPanelFragment);
}

protected Component initObjectListPanel() {
protected PopupObjectListPanel initObjectListPanel() {
PopupObjectListPanel<O> listPanel = new PopupObjectListPanel<>
(ID_OBJECT_LIST_PANEL, getObjectType().getClassDefinition(), true) {

Expand Down Expand Up @@ -118,6 +120,12 @@ protected ObjectQuery getCustomizeContentQuery() {
return customQuery;
}

@Override
protected void customProcessNewRowItem(Item<SelectableBean<O>> item, IModel<SelectableBean<O>> model) {
item.add(AttributeAppender.append(
"class",
() -> item != null && item.getModelObject() != null &&item.getModelObject().isSelected() ? "table-primary" : ""));
}
};
listPanel.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
<div wicket:id="tabsPanel"/>

<p align="right">
<a class="btn btn-default btn-sm" wicket:id="cancelButton"/>
<a class="btn btn-default btn-sm" wicket:id="addButton"/>
<a class="btn btn-outline-primary " wicket:id="cancelButton"/>
<a class="btn btn-success " wicket:id="addButton"/>
</p>
</form>
</wicket:panel>
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.impl.component.search.Search;
import com.evolveum.midpoint.gui.impl.component.search.wrapper.AbstractRoleSearchItemWrapper;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.QNameUtil;

Expand Down Expand Up @@ -164,12 +163,16 @@ public void onClick(AjaxRequestTarget target) {

private void addOrReplaceTabPanels(Form form, AssignmentObjectRelation relationSpec) {
tabs = createAssignmentTabs(relationSpec);
TabbedPanel<ITab> tabPanel = WebComponentUtil.createTabPanel(ID_TABS_PANEL, getPageBase(), tabs, null);
TabCenterTabbedPanel<ITab> tabPanel = new TabCenterTabbedPanel(ID_TABS_PANEL, tabs);
tabPanel.add(new VisibleBehaviour(() -> !isCompositedButtonsPanelVisible));
tabPanel.setOutputMarkupId(true);
form.addOrReplace(tabPanel);
}

protected QName getRelationIfIsStable() {
return null;
}

protected List<ITab> createAssignmentTabs(AssignmentObjectRelation relationSpec) {
List<ITab> tabs = new ArrayList<>();
List<QName> objectTypes = relationSpec != null && CollectionUtils.isNotEmpty(relationSpec.getObjectTypes()) ?
Expand All @@ -183,24 +186,7 @@ protected List<ITab> createAssignmentTabs(AssignmentObjectRelation relationSpec)

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel<UserType>(panelId, search, archetypeRefList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, List<IModel<SelectableBean<UserType>>> rowModelList, DataTable dataTable){
tabLabelPanelUpdate(target);
}

@Override
protected ObjectTypes getObjectType(){
return ObjectTypes.USER;
}

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}
};
return createMemberPopup(panelId, ObjectTypes.USER, archetypeRefList);
}

@Override
Expand All @@ -216,24 +202,7 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel<RoleType>(panelId, search, archetypeRefList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, List<IModel<SelectableBean<RoleType>>> rowModelList, DataTable dataTable){
tabLabelPanelUpdate(target);
}

@Override
protected ObjectTypes getObjectType(){
return ObjectTypes.ROLE;
}

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}
};
return createMemberPopup(panelId, ObjectTypes.SERVICE, archetypeRefList);
}

@Override
Expand All @@ -250,31 +219,7 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel<OrgType>(panelId, search, archetypeRefList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, List<IModel<SelectableBean<OrgType>>> rowModelList, DataTable dataTable){
selectedOrgsListUpdate(rowModelList);
tabLabelPanelUpdate(target);
}

@Override
protected ObjectTypes getObjectType(){
return ObjectTypes.ORG;
}

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

// @Override
// protected List<OrgType> getPreselectedObjects(){
// return selectedOrgsList;
// }

};
return createMemberPopup(panelId, ObjectTypes.ORG, archetypeRefList);
}

@Override
Expand Down Expand Up @@ -327,25 +272,7 @@ public String getCount() {

@Override
public WebMarkupContainer createPanel(String panelId) {
return new MemberPopupTabPanel<ServiceType>(panelId, search, archetypeRefList){
private static final long serialVersionUID = 1L;

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
protected ObjectTypes getObjectType(){
return ObjectTypes.SERVICE;
}

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, List<IModel<SelectableBean<ServiceType>>> rowModelList, DataTable dataTable){
tabLabelPanelUpdate(target);
}

};
return createMemberPopup(panelId, ObjectTypes.SERVICE, archetypeRefList);
}

@Override
Expand All @@ -357,6 +284,40 @@ public String getCount() {
return tabs;
}

private WebMarkupContainer createMemberPopup(String panelId, ObjectTypes objectType, List<ObjectReferenceType> archetypeRefList) {
return new MemberPopupTabPanel(panelId, search, archetypeRefList){
private static final long serialVersionUID = 1L;

@Override
protected void onSelectionPerformed(AjaxRequestTarget target, List rowModelList, DataTable dataTable) {
if (ObjectTypes.ORG.equals(objectType)) {
selectedOrgsListUpdate(rowModelList);
}
tabLabelPanelUpdate(target);
}

@Override
protected ObjectTypes getObjectType(){
return objectType;
}

@Override
protected T getAbstractRoleTypeObject(){
return ChooseMemberPopup.this.getAssignmentTargetRefObject();
}

@Override
protected QName getDefaultRelation() {
return getRelationIfIsStable() != null ? getRelationIfIsStable() : super.getDefaultRelation();
}

@Override
protected boolean isVisibleParameterPanel() {
return getRelationIfIsStable() == null;
}
};
}

protected final List<QName> getAvailableObjectTypes(){
return search.getAllowedTypeList();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@
<wicket:extend>
<wicket:child/>
<wicket:fragment wicket:id="parametersPanelFragment">
<label>
<wicket:message key="AssignmentPanel.newAssignmentParameters"/>
</label>
<div class="d-flex flex-wrap gap-2">
<div class="d-flex flex-wrap gap-2 mr-4">
<span class="col-form-label-sm"><wicket:message key="ObjectReferenceType.relation"/></span>
<select class="form-control form-control-sm w-auto" wicket:id="relation"/>
<div class="pl-3">
<label>
<wicket:message key="AssignmentPanel.newAssignmentParameters"/>
</label>
<div class="d-flex flex-wrap gap-2">
<div class="d-flex flex-wrap gap-2 mr-4">
<span class="col-form-label-sm"><wicket:message key="ObjectReferenceType.relation"/></span>
<select class="form-control form-control-sm w-auto" wicket:id="relation"/>
</div>
</div>
</div>
</wicket:fragment>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
import com.evolveum.midpoint.gui.impl.component.search.wrapper.AbstractRoleSearchItemWrapper;
import com.evolveum.midpoint.web.component.input.RelationDropDownChoice;

import com.evolveum.midpoint.web.component.util.VisibleBehaviour;

import org.apache.commons.collections4.CollectionUtils;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.panel.Fragment;
import org.jetbrains.annotations.NotNull;

Expand Down Expand Up @@ -92,9 +95,15 @@ public boolean isEnabled() {
}
});
parametersPanel.add(relation);

parametersPanel.add(new VisibleBehaviour(() -> isVisibleParameterPanel()));
}

protected boolean isVisibleParameterPanel() {
return true;
}

private QName getDefaultRelation() {
protected QName getDefaultRelation() {
QName relation = getRelationValueFromSearch();
if (QNameUtil.match(relation, PrismConstants.Q_ANY)) {
QName defRelation = WebComponentUtil.getDefaultRelation();
Expand Down Expand Up @@ -146,4 +155,10 @@ protected List<ObjectReferenceType> getArchetypeRefList() {
private RelationDropDownChoice getRelationDropDown() {
return (RelationDropDownChoice) get(ID_PARAMETERS_PANEL).get(ID_RELATION);
}

@Override
protected void onBeforeRender() {
super.onBeforeRender();
getObjectListPanel().getTable().setShowAsCard(false);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,11 @@ public String getMainPopupBodyId() {
return ModalDialog.CONTENT_ID;
}

public void replaceMainPopup(Popupable popupable, AjaxRequestTarget target) {
target.appendJavaScript("$('.modal-backdrop').remove();");
showMainPopup(popupable, target);
}

public void showMainPopup(Popupable popupable, AjaxRequestTarget target) {
MainPopupDialog dialog = getMainPopup();
dialog.getDialogComponent().add(AttributeModifier.replace("style",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.request.resource.IResource;

import java.io.Serializable;
Expand Down Expand Up @@ -131,10 +132,18 @@ protected DisplayType createDisplayType(IModel<T> model) {
}

protected IModel<IResource> createPreferredImage(IModel<T> model) {
return null;
return Model.of();
}

protected RoundedImagePanel getLogo() {
return (RoundedImagePanel) get(ID_LOGO);
}

protected Label getTitle() {
return (Label) get(ID_TITLE);
}

protected WebMarkupContainer getIcon() {
return (WebMarkupContainer) get(ID_ICON);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,15 @@ public MemberTilePanel(String id, IModel<TemplateTile<T>> model) {
protected void initLayout() {
super.initLayout();

getLogo().add(new AjaxEventBehavior("click") {
if (isSelectable()) {
getLogo().add(new AjaxEventBehavior("click") {

@Override
protected void onEvent(AjaxRequestTarget target) {
MemberTilePanel.this.onClick(target);
}
});
@Override
protected void onEvent(AjaxRequestTarget target) {
MemberTilePanel.this.onClick(target);
}
});
}

add(AttributeAppender.append("class", "card catalog-tile-panel d-flex flex-column align-items-center bordered p-3 h-100 mb-0"));
add(AttributeAppender.append("class", () -> getModelObject().isSelected() ? "active selectable" : null));
Expand All @@ -92,6 +94,7 @@ public void onUpdate(AjaxRequestTarget target) {
onClick(target);
}
};
check.add(new VisibleBehaviour(this::isSelectable));
add(check);

DropdownButtonPanel menu = new DropdownButtonPanel(
Expand Down Expand Up @@ -158,6 +161,10 @@ protected void populateItem(ListItem<DisplayType> item) {
add(unassign);
}

protected boolean isSelectable() {
return true;
}

protected String getCssForUnassignButton() {
return "btn btn-link mt-3 ml-auto";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@
<wicket:enclosure child="tilesContainer">
<div class="d-flex flex-column flex-grow-1">
<div wicket:id="header"/>
<div class="row pt-3 card-footer mx-0" wicket:id="tilesContainer">
<div wicket:id="tiles" style="min-height: 250px;">
<div wicket:id="tile"/>
</div>
</div>
<div class="row pt-3 card-footer mx-0" wicket:id="tilesContainer"/>
<div class="d-flex card-header" wicket:id="footerContainer">
<div class="d-flex">
<div wicket:id="buttonToolbar"/>
Expand Down Expand Up @@ -53,5 +49,9 @@
</div>
</div>
</wicket:fragment>

<wicket:fragment wicket:id="tilesFragment">
<div wicket:id="tiles" style="min-height: 250px;">
<div wicket:id="tile"/>
</div>
</wicket:fragment>
</html>

0 comments on commit 16831ae

Please sign in to comment.