Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/forgot-user…
Browse files Browse the repository at this point in the history
…name

* origin/master: (37 commits)
  Improve javadocs slightly
  Fixed assert OID in test (user vs shadow oid)
  Fixed query playground script parsing after it was disabled.
  Exposed set(name, value) for prepared queries.
  Added implementation for ValueBasedDefinitionLookup for shadows
  Fix IDE warnings in ConnectorManager
  change task for reload button - use import instance of bulk action
  MID-8965 request access better support for requesting with more relations, wip
  MID-8965 prism serialization default value updated for proxies to true
  Derive expression profile from any archetype
  fix compilation error
  fix for small bugs and improvements from office days
  MID-8842 ninja - fixed import, failed build
  MID-8842 ninja - help command + updated -h behavior (by default only lists commands)
  fix for virtual containers in vertical form panels
  fix for compilation error
  Add settable defaults for scripting profiles
  create util method for create container definition model
  MID-8842 ninja - minor logging improvements
  fix for css of tiles
  ...

# Conflicts:
#	gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/util/WebComponentUtil.java
#	model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/controller/ModelInteractionServiceImpl.java
  • Loading branch information
katkav committed Aug 18, 2023
2 parents fc2539c + c6dada6 commit 80f2fab
Show file tree
Hide file tree
Showing 162 changed files with 3,360 additions and 1,052 deletions.
6 changes: 3 additions & 3 deletions gui/admin-gui/src/frontend/scss/midpoint.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1752,8 +1752,8 @@ th.debug-list-buttons {

.request-access-wizard {
& .simple-tile {
width: 250px;
height: 250px;
width: 220px;
height: 220px;
}

& .role-catalog-tiles-table .catalog-tile-panel {
Expand Down Expand Up @@ -1847,7 +1847,7 @@ th.debug-list-buttons {

.colored-form-#{$color}, .colored-form-#{$color}:hover, .colored-form-#{$color}:active, .colored-form-#{$color}:focus {
color: $value;
background-color: mix(#ffffff00, $value, 85%);
background-color: mix(#ffffff, $value, 85%);
border-color: $value;

option {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="d-flex flex-column align-items-center mt-5">
<h2 class="mb-3" wicket:id="text"/>
<h2 class="mb-4 font-weight-bold" wicket:id="text"/>
<h5 class="text-center text-secondary mb-5" wicket:id="subText"/>

<wicket:child/>
<div class="d-flex gap-3 justify-content-center mt-5">
<a class="btn btn-outline-primary" wicket:id="back">
<a class="btn text-primary" wicket:id="back">
<i class="fas fa-arrow-left mr-2"></i>
<wicket:message key="WizardHeader.back"/>
</a>
<a class="btn btn-outline-primary" wicket:id="exit">
<a class="btn btn-default" wicket:id="exit">
<i class="fas fa-right-from-bracket mr-2"></i>
<wicket:message key="WizardPanel.exit"/>
</a>
<a class="btn btn-primary" wicket:id="customButtons" />
<a class="btn btn-default" wicket:id="customButtons" />
<a class="btn btn-success" wicket:id="submit">
<i class="fas fa-check mr-2"/>
<span wicket:id="submitLabel"/>
</a>
<a class="btn btn-success" wicket:id="next">
<a class="btn btn-primary" wicket:id="next">
<wicket:message key="WizardHeader.next"/>
<span wicket:id="nextLabel"/>
<i class="fas fa-arrow-right ml-2"></i>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,29 @@

import java.util.List;
import java.util.Set;
import java.util.function.BiFunction;
import java.util.function.Function;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.impl.prism.wrapper.PrismReferenceValueWrapperImpl;
import com.evolveum.midpoint.prism.PrismReference;
import com.evolveum.midpoint.prism.PrismReferenceDefinition;
import com.evolveum.midpoint.prism.Referencable;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.util.Producer;
import com.evolveum.midpoint.xml.ns._public.common.common_3.SearchItemType;

/**
* @author katka
*/
public interface PrismReferenceWrapper<R extends Referencable> extends ItemWrapper<PrismReference, PrismReferenceValueWrapperImpl<R>>, PrismReferenceDefinition {

ObjectFilter getFilter();
ObjectFilter getFilter(PageBase pageBase);
void setFilter(ObjectFilter filter);

void setFilter(BiFunction<PrismReferenceWrapper, PageBase, ObjectFilter> filterFunction);

List<QName> getTargetTypes();

// Set<SerializableSupplier<FilterableSearchItemWrapper>> getSpecialSearchItemFunctions();
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,18 @@
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils;
import com.evolveum.midpoint.gui.impl.page.admin.abstractrole.component.TaskAwareExecutor;
import com.evolveum.midpoint.gui.impl.page.admin.resource.component.ResourceObjectsPanel;
import com.evolveum.midpoint.model.api.ActivitySubmissionOptions;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.util.task.TaskTypeUtil;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.evolveum.midpoint.web.component.AjaxIconButton;

import com.evolveum.midpoint.web.component.dialog.ConfirmationPanel;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import org.apache.wicket.ajax.AjaxRequestTarget;
Expand All @@ -42,7 +46,11 @@ public abstract class ReloadableButton extends AjaxIconButton {
private final PageBase pageBase;

public ReloadableButton(String id, PageBase pageBase) {
super(id, Model.of(""), pageBase.createStringResource("ReloadableButton.reload"));
this(id, pageBase, PageBase.createStringResourceStatic("ReloadableButton.reload"));
}

public ReloadableButton(String id, PageBase pageBase, IModel<String> buttonLabel) {
super(id, Model.of(""), buttonLabel);
this.pageBase = pageBase;
}

Expand Down Expand Up @@ -72,21 +80,13 @@ private IModel<String> createIconModel() {
};
}

@Override
public void onClick(AjaxRequestTarget target) {
private void onClickReloadButton(AjaxRequestTarget target) {
taskOidForReloaded = pageBase.taskAwareExecutor(target, OPERATION_RELOAD)
.withOpResultOptions(
OpResult.Options.create()
.withHideSuccess(true)
.withHideInProgress(true))
.run((task, result) -> pageBase.getModelInteractionService().submit(
createActivityDefinition(),
ActivitySubmissionOptions.create()
.withTaskTemplate(new TaskType()
.name(getTaskName())
.cleanupAfterCompletion(XmlTypeConverter.createDuration("PT0S"))),
task, result)
);
.run(getTaskExecutor());
reloadedBehaviour = new AjaxSelfUpdatingTimerBehavior(Duration.ofSeconds(5)) {

@Override
Expand All @@ -105,18 +105,66 @@ protected void onPostProcessTarget(AjaxRequestTarget target) {
stop(target);
taskOidForReloaded = null;
}
if (WebComponentUtil.isSuspendedTask(taskBean.asObjectable())) {
OperationResult taskResult = OperationResult.createOperationResult(taskBean.asObjectable().getResult());
if (taskResult != null && (taskResult.isFatalError() || taskResult.isPartialError())) {
stop(target);
pageBase.showResult(taskResult);
target.add(pageBase.getFeedbackPanel());
taskOidForReloaded = null;
}
}
refresh(target);
}
};
add(reloadedBehaviour);
refresh(target);
}

@Override
public void onClick(AjaxRequestTarget target) {
if (useConfirmationPopup()) {
IModel<String> confirmModel = getConfirmMessage();

ConfirmationPanel confirmationPanel = new ConfirmationPanel(pageBase.getMainPopupBodyId(), confirmModel) {
@Override
public void yesPerformed(AjaxRequestTarget target) {
onClickReloadButton(target);
}
};
pageBase.showMainPopup(confirmationPanel, target);
} else {
onClickReloadButton(target);
}
}

protected IModel<String> getConfirmMessage() {
return Model.of("");
}

protected boolean useConfirmationPopup() {
return false;
}

protected TaskAwareExecutor.Executable<String> getTaskExecutor() {
return (task, result) -> pageBase.getModelInteractionService().submit(
createActivityDefinition(),
ActivitySubmissionOptions.create()
.withTaskTemplate(new TaskType()
.name(getTaskName())
.cleanupAfterCompletion(XmlTypeConverter.createDuration("PT0S"))),
task, result);
}

protected abstract void refresh(AjaxRequestTarget target);

protected abstract ActivityDefinitionType createActivityDefinition() throws SchemaException;
protected ActivityDefinitionType createActivityDefinition() throws SchemaException {
return null;
}

protected abstract String getTaskName();
protected String getTaskName() {
return null;
}

@Override
protected void onComponentTag(ComponentTag tag) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<i class="fa-4x text-lightblue mt-5" wicket:id="icon"></i>
<span class="mt-4 text-secondary text-capitalize" wicket:id="title"/>
<i class="text-lightblue" style="font-size: 2.625rem;" wicket:id="icon"></i>
<span class="mt-4 text-secondary text-capitalize text-center" wicket:id="title"/>
<div class="tile-description mt-2 text-center text-secondary flex-grow-1" style="display: -webkit-box; text-overflow: ellipsis;" wicket:id="description"/>
</wicket:panel>
</html>
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public TilePanel(String id, IModel<T> model) {
}

private void initLayout() {
add(AttributeAppender.append("class", "tile-panel d-flex flex-column align-items-center bg-white rounded p-3"));
add(AttributeAppender.append("class", "tile-panel d-flex flex-column align-items-center bg-white rounded p-3 justify-content-center"));
add(AttributeAppender.append("class", () -> getModelObject().isSelected() ? "active" : null));
setOutputMarkupId(true);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +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 class="row justify-content-left pt-3" wicket:id="tilesContainer"/>
<div class="d-flex" wicket:id="footerContainer">
<div class="d-flex">
<div wicket:id="buttonToolbar"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,20 @@ protected IModel<?> getTitleModel() {
protected WrapperContext createWrapperContext() {
return getDetailsModel().createWrapperContext();
}

@Override
protected boolean isVisibleSubContainer(PrismContainerWrapper c) {
return AbstractFormWizardStepPanel.this.isVisibleSubContainer(c);
}
};
panel.setOutputMarkupId(true);
add(panel);
}

protected boolean isVisibleSubContainer(PrismContainerWrapper c) {
return false;
}

protected IModel<? extends PrismContainerWrapper> getContainerFormModel() {
return this.getDetailsModel().getObjectWrapperModel();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,22 @@
<body>
<wicket:panel>
<div class="d-flex flex-column gap-3 align-items-center mt-5">
<div>
<div class="mb-3">
<ol class="breadcrumb p-0 bg-transparent">
<li class="breadcrumb-item" wicket:id="breadcrumb">
<span wicket:id="bcName"/>
</li>
</ol>
</div>
<h2 class="mb-3" wicket:id="text"/>
<h2 class="mb-1 font-weight-bold" wicket:id="text"/>
<h5 class="text-center text-secondary mb-5 col-xxl-8 col-10" wicket:id="subText"/>
<div class="col-12">
<div wicket:id="feedbackContainer" class="feedbackContainer mx-auto p-0">
<div wicket:id="feedback" class="messagePanel"/>
</div>
<wicket:child/>
</div>
<div class="d-flex gap-3 justify-content-center" wicket:id="buttonsContainer">
<div class="d-flex mt-5 gap-3 justify-content-center" wicket:id="buttonsContainer">
<a class="btn" wicket:id="buttons"/>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,20 @@ protected void populateItem(ListItem<Breadcrumb> item) {

RepeatingView buttons = new RepeatingView(ID_BUTTONS);

AjaxIconButton back = new AjaxIconButton(
buttons.newChildId(),
Model.of("fa fa-right-from-bracket"),
getExitLabel()) {
@Override
public void onClick(AjaxRequestTarget target) {
onExitPerformed(target);
}
};
back.showTitleAsLabel(true);
back.add(new VisibleBehaviour(() -> isBackButtonVisible()));
back.add(AttributeAppender.append("class", "btn text-primary"));
buttons.add(back);

AjaxIconButton exit = new AjaxIconButton(
buttons.newChildId(),
Model.of("fa fa-right-from-bracket"),
Expand Down Expand Up @@ -167,6 +181,10 @@ public void onClick(AjaxRequestTarget target) {
buttons.add(saveButton);
}

protected boolean isBackButtonVisible() {
return false;
}

protected String getCssForWidthOfFeedbackPanel() {
return "col-12";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,13 @@ protected List<Tile<T>> load() {
}

protected void addDefaultTile(List<Tile<T>> list) {
list.add(createDefaultTile(getObjectType()));
if (addDefaultTile()) {
list.add(createDefaultTile(getObjectType()));
}
}

protected boolean addDefaultTile() {
return true;
}

@Override
Expand Down Expand Up @@ -106,7 +112,7 @@ private Tile<T> createDefaultTile(QName type) {
).getString());
}

private void goToObjectPerformed(QName type) {
protected void goToObjectPerformed(QName type) {
Class<? extends ObjectType> typeClass = WebComponentUtil.qnameToClass(PrismContext.get(), type, ObjectType.class);
if (typeClass == null) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public PrismReferencePanelContext(IModel<PrismReferenceWrapper<R>> itemWrapper)
}

public ObjectFilter getFilter() {
return unwrapWrapperModel().getFilter();
return unwrapWrapperModel().getFilter(getPageBase());
}


Expand Down

0 comments on commit 80f2fab

Please sign in to comment.