Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/shadow-marks
Browse files Browse the repository at this point in the history
  • Loading branch information
tonydamage committed Feb 22, 2023
2 parents 18ba3ae + e3ef1c4 commit 7b82f7b
Show file tree
Hide file tree
Showing 70 changed files with 1,895 additions and 719 deletions.
5 changes: 5 additions & 0 deletions gui/admin-gui/src/frontend/scss/midpoint.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1220,10 +1220,15 @@ td .prism-property-value {
}

.card.card-outline,
.card.card-outline-left,
.card.card-outline-tabs {
& .card-header .search-panel-form a {
border-top: 0 !important;
}

& > .card-header > .card-tools > a.btn.btn-tool {
border-top: 0 !important;
}
}

// handling dark mode, would be automatically fixed when we get rid of .search-item and .search-item-label and
Expand Down
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 @@ -60,6 +60,7 @@ public void onClick(AjaxRequestTarget target) {
}
};
button.add(AttributeAppender.append("class", () -> item.getModelObject().isActive() ? "active" : null));
button.add(AttributeAppender.replace("aria-pressed", () -> item.getModelObject().isActive() ? "true" : "false"));
item.add(button);

Component content = createButtonContent(ID_CONTENT, item.getModel());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public VisualizationDto getObject() {
}

};
VisualizationPanel deltaPanel = new VisualizationPanel(ID_DELTA_PANEL, deltaModel, true) {
VisualizationPanel deltaPanel = new VisualizationPanel(ID_DELTA_PANEL, deltaModel, true, true) {
@Override
public void headerOnClickPerformed(AjaxRequestTarget target, IModel<VisualizationDto> model) {
super.headerOnClickPerformed(target, model);
Expand Down
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

0 comments on commit 7b82f7b

Please sign in to comment.