Skip to content

Commit

Permalink
fix for adding of new member on governance card and adding autorefres…
Browse files Browse the repository at this point in the history
…h of member table
  • Loading branch information
skublik committed Feb 21, 2023
1 parent cd26ae1 commit d6fd3d8
Show file tree
Hide file tree
Showing 22 changed files with 420 additions and 196 deletions.
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 @@ -170,6 +169,10 @@ private void addOrReplaceTabPanels(Form form, AssignmentObjectRelation relationS
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 @@ -14,6 +14,8 @@
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.markup.html.panel.Fragment;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -92,9 +94,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
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>
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 class="card-header" wicket:id="header"/>
<div class="row justify-content-center 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 justify-content-center 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 All @@ -34,4 +30,9 @@
<div class="ml-auto" wicket:id="panelHeader"/>
</div>
</wicket:fragment>
<wicket:fragment wicket:id="tilesFragment">
<div wicket:id="tiles" style="min-height: 250px;">
<div wicket:id="tile"/>
</div>
</wicket:fragment>
</html>
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 justify-content-center pt-3" wicket:id="tilesContainer">
<div wicket:id="tiles" style="min-height: 250px;">
<div wicket:id="tile"/>
</div>
</div>
<div class="row justify-content-center pt-3" wicket:id="tilesContainer"/>
<div class="d-flex" wicket:id="footerContainer">
<div class="d-flex">
<div wicket:id="buttonToolbar"/>
Expand All @@ -25,13 +21,22 @@
</wicket:enclosure>

<div wicket:id="table"/>
</wicket:panel>
<wicket:fragment wicket:id="headerFragment">
<div class="d-flex">
<div class="mr-auto pr-4">
<div wicket:id="viewToggle"/>

<wicket:fragment wicket:id="headerFragment">
<div class="d-flex">
<div class="mr-auto pr-4">
<div wicket:id="viewToggle"/>
</div>
<div class="ml-auto" wicket:id="panelHeader"/>
</div>
</wicket:fragment>
<wicket:fragment wicket:id="tilesFragment">
<div class="d-flex">
<div class="mr-auto pr-4">
<div wicket:id="viewToggle"/>
</div>
<div class="ml-auto" wicket:id="panelHeader"/>
</div>
<div class="ml-auto" wicket:id="panelHeader"/>
</div>
</wicket:fragment>
</wicket:fragment>
</wicket:panel>
</html>

0 comments on commit d6fd3d8

Please sign in to comment.