Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into feature/password-reset
Browse files Browse the repository at this point in the history
* origin/master:
  ModelInteractionService: added support (ifs) for reference search
  simulation ui, delta viewer code cleanup, wip
  postgres-new-audit.sql: notes about partition "inheritance" + docs link
  support for focusRecordId column
  • Loading branch information
katkav committed Feb 21, 2023
2 parents 5f5aabf + e95cd9b commit 928fe82
Show file tree
Hide file tree
Showing 14 changed files with 173 additions and 158 deletions.
10 changes: 10 additions & 0 deletions config/sql/native-new/postgres-new-audit.sql
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,11 @@ CREATE TABLE ma_audit_event_default PARTITION OF ma_audit_event DEFAULT;
CREATE TABLE ma_audit_delta_default PARTITION OF ma_audit_delta DEFAULT;
CREATE TABLE ma_audit_ref_default PARTITION OF ma_audit_ref DEFAULT;

/*
For info about what is and is not automatically created on the partition, see:
https://www.postgresql.org/docs/13/sql-createtable.html (search for "PARTITION OF parent_table")
In short, for our case PK and constraints are created automatically, but FK are not.
*/
ALTER TABLE ma_audit_delta_default ADD CONSTRAINT ma_audit_delta_default_fk
FOREIGN KEY (recordId, timestamp) REFERENCES ma_audit_event_default (id, timestamp)
ON DELETE CASCADE;
Expand Down Expand Up @@ -287,6 +292,11 @@ BEGIN
'CREATE TABLE %I PARTITION OF ma_audit_ref FOR VALUES FROM (%L) TO (%L);',
'ma_audit_ref_' || tableSuffix, dateFrom, dateTo);

/*
For info about what is and is not automatically created on the partition, see:
https://www.postgresql.org/docs/13/sql-createtable.html (search for "PARTITION OF parent_table")
In short, for our case PK and constraints are created automatically, but FK are not.
*/
EXECUTE format(
'ALTER TABLE %I ADD CONSTRAINT %I FOREIGN KEY (recordId, timestamp)' ||
' REFERENCES %I (id, timestamp) ON DELETE CASCADE',
Expand Down
1 change: 1 addition & 0 deletions config/sql/native-new/postgres-new-upgrade.sql
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ CREATE TABLE m_simulation_result_processed_object (
objectBefore BYTEA,
objectAfter BYTEA,
transactionId TEXT,
focusRecordId BIGINT,

PRIMARY KEY (ownerOid, cid)
) PARTITION BY LIST(ownerOid);
Expand Down
1 change: 1 addition & 0 deletions config/sql/native-new/postgres-new.sql
Original file line number Diff line number Diff line change
Expand Up @@ -1916,6 +1916,7 @@ CREATE TABLE m_simulation_result_processed_object (
objectBefore BYTEA,
objectAfter BYTEA,
transactionId TEXT,
focusRecordId BIGINT

PRIMARY KEY (ownerOid, cid)
) PARTITION BY LIST(ownerOid);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
import java.util.Collections;
import java.util.List;

import com.evolveum.midpoint.web.component.prism.show.SimpleVisualizationPanel;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
Expand All @@ -22,9 +20,9 @@
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.CardObjectVisualizationPanel;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.ObjectVisualization;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.ObjectVisualizationPanel;
import com.evolveum.midpoint.gui.impl.page.admin.simulation.visualization.VisualizationFactory;
import com.evolveum.midpoint.model.api.visualizer.Visualization;
import com.evolveum.midpoint.web.component.prism.show.SimpleVisualizationPanel;
import com.evolveum.midpoint.web.component.prism.show.VisualizationDto;
import com.evolveum.midpoint.web.component.prism.show.VisualizationPanel;
import com.evolveum.midpoint.web.component.util.VisibleBehaviour;
import com.evolveum.prism.xml.ns._public.types_3.ObjectDeltaType;

Expand Down Expand Up @@ -60,33 +58,35 @@ public ChangesPanel(String id, IModel<List<ObjectDeltaType>> model) {
private void initModels() {
changesViewModel = Model.of(ChangesView.SIMPLE);

IModel<Visualization> visualizationModel = new LoadableModel<>(false) {

@Override
protected Visualization load() {
ObjectDeltaType objectDelta = getModelObject().get(0);
return SimulationsGuiUtil.createVisualization(objectDelta, getPageBase());
}
};

changesModel = new LoadableModel<>(false) {

@Override
protected VisualizationDto load() {
ObjectDeltaType objectDelta = getModelObject().get(0); // todo improve
return SimulationsGuiUtil.createDeltaVisualization(objectDelta, getPageBase());
Visualization visualization = visualizationModel.getObject();

return SimulationsGuiUtil.createVisualizationDto(visualization);
}
};

changesNewModel = new LoadableModel<>() {

@Override
protected List<ObjectVisualization> load() {
ObjectDeltaType delta = getModelObject().get(0); // todo improve
if (delta == null) {
Visualization visualization = visualizationModel.getObject();
if (visualization == null) {
return Collections.emptyList();
}

try {
ObjectVisualization visualization = VisualizationFactory.createObjectVisualization(delta);

return Collections.singletonList(visualization);
} catch (Exception ex) {
// todo handle exception
ex.printStackTrace();
}

return Collections.emptyList();
return Collections.singletonList(new ObjectVisualization());
}
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ protected String load() {
@Override
protected VisualizationDto load() {
ObjectDeltaType objectDelta = objectModel.getObject().getDelta();
return SimulationsGuiUtil.createDeltaVisualization(objectDelta, PageSimulationResultObject.this);
return SimulationsGuiUtil.createVisualizationDto(objectDelta, PageSimulationResultObject.this);
}
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,58 +10,62 @@
<body>
<wicket:extend>
<div wicket:id="navigation"/>
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between">
<h5 class="flex-grow-1">Simulations summary</h5>
<a class="btn btn-xs">
<i class="fas fa-ellipsis-h"/>
</a>
</div>
<div class="d-flex gap-3">
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>

<wicket:remove>
<!-- todo summary widgets will be implemented later -->
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between">
<h5 class="flex-grow-1">Simulations summary</h5>
<a class="btn btn-xs">
<i class="fas fa-ellipsis-h"/>
</a>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
<div class="d-flex gap-3">
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
<div class="flex-fill">
<span class="text-secondary">Total simulations</span>
<h4>6</h4>
<span class="badge trend trend-success">
<i class="fa-solid fa-arrow-trend-up mr-1"></i>
+12% more last month
</span>
</div>
</div>
</div>
</div>
</div>
</wicket:remove>
<form wicket:id="form" class="clearfix form-horizontal">
<div wicket:id="table"/>
</form>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,24 +109,38 @@ protected DisplayType createDisplayType(IModel<SelectableBean<SimulationResultPr
};
}

public static VisualizationDto createDeltaVisualization(ObjectDeltaType objectDelta, PageBase page) {
public static Visualization createVisualization(ObjectDeltaType objectDelta, PageBase page) {
if (objectDelta == null) {
return null;
}

Visualization visualization;
try {
ObjectDelta delta = DeltaConvertor.createObjectDelta(objectDelta);

Task task = page.getPageTask();
OperationResult result = task.getResult();

visualization = page.getModelInteractionService().visualizeDelta(delta, task, result);
return page.getModelInteractionService().visualizeDelta(delta, task, result);
} catch (SchemaException | ExpressionEvaluationException e) {
LOGGER.debug("Couldn't convert and visualize delta", e);

throw new SystemException(e);
}
}

public static VisualizationDto createVisualizationDto(ObjectDeltaType objectDelta, PageBase page) {
if (objectDelta == null) {
return null;
}

Visualization visualization = createVisualization(objectDelta, page);
return createVisualizationDto(visualization);
}

public static VisualizationDto createVisualizationDto(Visualization visualization) {
if (visualization == null) {
return null;
}

if (LOGGER.isTraceEnabled()) {
LOGGER.trace("Creating dto for deltas:\n{}", DebugUtil.debugDump(visualization));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</table>

<wicket:container wicket:id="partialVisualizations">
<div class="m-2" wicket:id="partialVisualization"/>
<div class="m-3" wicket:id="partialVisualization"/>
</wicket:container>
<div class="show-empty-button" wicket:id="showOperationalItemsLink"/>
</wicket:panel>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ <h3 class="card-title">
</div>

<div wicket:id="body" class="card-body p-0">
<div class="m-2" wicket:id="visualization"/>
<div class="m-3" wicket:id="visualization"/>
</div>
</wicket:panel>
</html>

0 comments on commit 928fe82

Please sign in to comment.