Skip to content

Commit

Permalink
adding resource wizard steps for configuration and discovery
Browse files Browse the repository at this point in the history
  • Loading branch information
skublik committed Jun 6, 2022
1 parent a7337eb commit adb3a87
Show file tree
Hide file tree
Showing 22 changed files with 526 additions and 241 deletions.
41 changes: 0 additions & 41 deletions gui/admin-gui/src/frontend/scss/_admin-lte-overrides.scss
Original file line number Diff line number Diff line change
Expand Up @@ -16,44 +16,3 @@
color: darken($button-default-color, 10%);
}
}

.col-5i,
.col-sm-5i,
.col-md-5i,
.col-lg-5i,
.col-xl-5i {
position: relative;
width: 100%;
padding-right: 15px;
padding-left: 15px;
}

.col-5i {
flex: 0 0 20%;
max-width: 20%;
}

@media (min-width: 576px){
.col-sm-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
@media (min-width: 768px){
.col-md-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
@media (min-width: 992px){
.col-lg-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
@media (min-width: 1200px){
.col-xl-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
41 changes: 41 additions & 0 deletions gui/admin-gui/src/frontend/scss/midpoint.scss
Original file line number Diff line number Diff line change
Expand Up @@ -1710,3 +1710,44 @@ th.debug-list-buttons {
}
}
}

.col-5i,
.col-sm-5i,
.col-md-5i,
.col-lg-5i,
.col-xl-5i {
position: relative;
width: 100%;
padding-right: 15px;
padding-left: 15px;
}

.col-5i {
flex: 0 0 20%;
max-width: 20%;
}

@media (min-width: 576px){
.col-sm-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
@media (min-width: 768px){
.col-md-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
@media (min-width: 992px){
.col-lg-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
@media (min-width: 1200px){
.col-xl-5i {
flex: 0 0 20%;
max-width: 20%;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -88,32 +88,24 @@ protected IModel<?> getSubTextModel() {
}

private IModel<?> createNextStepLabel() {
MarkupContainer parent = getParent();
if (parent instanceof WizardPanel) {
WizardStep panel = ((WizardPanel) parent).getWizardModel().getNextPanel();
return panel.getTitle();
WizardStep nextPanel = getWizard().getNextPanel();
if (nextPanel != null){
return nextPanel.getTitle();
}
return Model.of();
}

private void onNextPerformed(AjaxRequestTarget target) {
MarkupContainer parent = getParent();
if (parent instanceof WizardPanel) {
((WizardPanel) parent).getWizardModel().next();
target.add(parent);
}
getWizard().next();
target.add(getParent());
}

protected void onBackPerformed(AjaxRequestTarget target) {
MarkupContainer parent = getParent();
if (parent instanceof WizardPanel) {
WizardPanel wizard = (WizardPanel) parent;
int index = wizard.getWizardModel().getActiveStepIndex();
if (index > 0) {
wizard.getWizardModel().previous();
target.add(wizard);
return;
}
int index = getWizard().getActiveStepIndex();
if (index > 0) {
getWizard().previous();
target.add(getParent());
return;
}
getPageBase().redirectBack();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

package com.evolveum.midpoint.gui.api.component.wizard;

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

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
Expand All @@ -17,6 +19,8 @@

import com.evolveum.midpoint.gui.api.component.BasePanel;

import org.jetbrains.annotations.NotNull;

/**
* Created by Viliam Repan (lazyman).
*/
Expand Down Expand Up @@ -71,10 +75,15 @@ public void onClick(AjaxRequestTarget target) {
next.setOutputMarkupPlaceholderTag(true);

next.add(new Label(ID_NEXT_LABEL, nextPanelTitle));

next.add(getNextVisibilityBehaviour());
return next;
}

@NotNull
protected VisibleEnableBehaviour getNextVisibilityBehaviour() {
return VisibleEnableBehaviour.ALWAYS_VISIBLE_ENABLED;
}

protected AjaxLink createBackButton(String id) {
AjaxLink back = new AjaxLink<>(id) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="bs-stepper-header flex-wrap flex-column flex-sm-row" role="tablist" wicket:id="header">
<div class="bs-stepper-header flex-row" role="tablist" wicket:id="header">
<wicket:container wicket:id="steps">
<div class="flex flex-row no-wrap" wicket:id="step"/>
<div class="line" wicket:id="line"/>
</wicket:container>
</div>
<div class="bs-stepper-content">
<div class="bs-stepper-content px-0">
<div wicket:id="contentHeader"/>
<div wicket:id="contentBody"/>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;

import org.jetbrains.annotations.NotNull;

/**
* Created by Viliam Repan (lazyman).
*/
Expand Down Expand Up @@ -73,6 +75,7 @@ private void initLayout() {

WebMarkupContainer header = new WebMarkupContainer(ID_HEADER);
header.setOutputMarkupId(true);
header.add(getVisibilityOfStepsHeader());
add(header);

ListView<IModel<String>> steps = new ListView<>(ID_STEPS, () -> wizardModel.getSteps().stream().map(s -> s.getTitle()).collect(Collectors.toList())) {
Expand Down Expand Up @@ -105,7 +108,11 @@ protected Component createHeaderContent(String id) {

@Override
protected void onBackPerformed(AjaxRequestTarget target) {
wizardModel.previous();
if (wizardModel.getActiveStepIndex() == 0) {
getPageBase().redirectBack();
} else {
wizardModel.previous();
}

target.add(WizardPanel.this);
}
Expand All @@ -116,6 +123,11 @@ protected void onNextPerformed(AjaxRequestTarget target) {

target.add(WizardPanel.this);
}

@Override
protected @NotNull VisibleEnableBehaviour getNextVisibilityBehaviour() {
return wizardModel.getActiveStep().getNextBehaviour();
}
};
contentHeader.add(new VisibleEnableBehaviour() {

Expand All @@ -137,6 +149,11 @@ public boolean isEnabled() {
addOrReplace(new WebMarkupContainer(ID_CONTENT_BODY));
}

@NotNull
protected VisibleEnableBehaviour getVisibilityOfStepsHeader() {
return VisibleEnableBehaviour.ALWAYS_VISIBLE_ENABLED;
}

public WizardStep getCurrentPanel() {
return wizardModel.getActiveStep();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,23 @@ public PageAssignmentHolderDetails(PrismObject<AH> assignmentHolder) {
@Override
protected void initLayout() {
if (isAdd() && isApplicableTemplate()) {
TemplateFragment templateFragment = new TemplateFragment(ID_DETAILS_VIEW, ID_TEMPLATE_VIEW, PageAssignmentHolderDetails.this);
Fragment templateFragment = createTemplateFragment();
add(templateFragment);
} else {
super.initLayout();
}
}

protected Fragment createTemplateFragment() {
return new TemplateFragment(ID_DETAILS_VIEW, ID_TEMPLATE_VIEW, PageAssignmentHolderDetails.this);
}

protected boolean isApplicableTemplate() {
Collection<CompiledObjectCollectionView> applicableArchetypes = findAllApplicableArchetypeViews();
return applicableArchetypes.size() > 1;
}

class TemplateFragment extends Fragment {
private class TemplateFragment extends Fragment {

public TemplateFragment(String id, String markupId, MarkupContainer markupProvider) {
super(id, markupId, markupProvider);
Expand All @@ -87,12 +91,12 @@ protected void onInitialize() {
}

protected void initTemplateLayout() {
add(createTemplatePanel(ID_TEMPLATE));
add(createTemplatePanel());
}
}

protected WebMarkupContainer createTemplatePanel(String id) {
return new CreateTemplatePanel<>(id) {
private WebMarkupContainer createTemplatePanel() {
return new CreateTemplatePanel<>(ID_TEMPLATE) {

@Override
protected Collection<CompiledObjectCollectionView> findAllApplicableArchetypeViews() {
Expand Down Expand Up @@ -121,14 +125,18 @@ protected void onTemplateChosePerformed(CompiledObjectCollectionView collectionV
}

reloadObjectDetailsModel(assignmentHolder);
Fragment fragment = createDetailsFragment();
Fragment fragment = createFragmentAfterChoseTemplate();
fragment.setOutputMarkupId(true);
PageAssignmentHolderDetails.this.replace(fragment);
target.add(fragment);
}
};
}

protected Fragment createFragmentAfterChoseTemplate() {
return createDetailsFragment();
}

protected List<ObjectReferenceType> getArchetypeReferencesList(CompiledObjectCollectionView collectionViews) {
return ObjectCollectionViewUtil.getArchetypeReferencesList(collectionViews);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<body>
<wicket:extend>
<wicket:fragment wicket:id="wizardView">
<form wicket:id="mainForm" class="d-flex justify-content-center">
<div wicket:id="wizard" class="mt-5"/>
<form wicket:id="mainForm">
<div wicket:id="wizard"/>
</form>
</wicket:fragment>
<wicket:child/>
Expand Down

0 comments on commit adb3a87

Please sign in to comment.