Skip to content

Commit

Permalink
added buttons column to audit event table on the user's page
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Oct 30, 2016
1 parent 99f0c61 commit 0a95f76
Show file tree
Hide file tree
Showing 6 changed files with 106 additions and 76 deletions.
Expand Up @@ -80,7 +80,7 @@ public boolean isButtonVisible(int id, IModel<T> model) {
}


private String getButtonCssClass(int id) {
protected String getButtonCssClass(int id) {
StringBuilder sb = new StringBuilder();
sb.append(DoubleButtonColumn.BUTTON_BASE_CLASS).append(" ");
sb.append(getButtonColorCssClass(id)).append(" ").append(getButtonSizeCssClass(id));
Expand Down
Expand Up @@ -64,6 +64,11 @@ public boolean isButtonVisible(int id, IModel<T> model) {
return MultiButtonColumn.this.isButtonVisible(id, model);
}

@Override
protected String getButtonCssClass(int id) {
return MultiButtonColumn.this.getButtonCssClass(id);
}

@Override
public String getButtonSizeCssClass(int id) {
return MultiButtonColumn.this.getButtonSizeCssClass(id);
Expand All @@ -88,6 +93,13 @@ public boolean isButtonEnabled(int id, IModel<T> model) {
return true;
}

protected String getButtonCssClass(int id) {
StringBuilder sb = new StringBuilder();
sb.append(DoubleButtonColumn.BUTTON_BASE_CLASS).append(" ");
sb.append(getButtonColorCssClass(id)).append(" ").append(getButtonSizeCssClass(id));
return sb.toString();
}

public boolean isButtonVisible(int id, IModel<T> model) {
return true;
}
Expand Down
Expand Up @@ -17,13 +17,27 @@

import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.web.component.data.column.DoubleButtonColumn;
import com.evolveum.midpoint.web.component.data.column.MultiButtonColumn;
import com.evolveum.midpoint.web.component.form.Form;
import com.evolveum.midpoint.web.component.prism.ObjectWrapper;
import com.evolveum.midpoint.web.component.util.SelectableBean;
import com.evolveum.midpoint.web.page.admin.reports.component.AuditLogViewerPanel;
import com.evolveum.midpoint.web.page.admin.reports.dto.AuditSearchDto;
import com.evolveum.midpoint.web.page.admin.users.PageUser;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventStageType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.AccessCertificationDefinitionType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.FocusType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectReferenceType;
import com.evolveum.midpoint.xml.ns._public.common.common_3.UserType;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;

import java.util.ArrayList;
import java.util.List;

/**
* Created by honchar.
Expand All @@ -37,19 +51,80 @@ public ObjectHistoryTabPanel(String id, Form mainForm, LoadableModel<ObjectWrapp
initLayout(focusWrapperModel, page);
}

private void initLayout(LoadableModel<ObjectWrapper<F>> focusWrapperModel, PageBase page) {
private void initLayout(final LoadableModel<ObjectWrapper<F>> focusWrapperModel, PageBase page) {
AuditSearchDto searchDto = new AuditSearchDto();
ObjectReferenceType ort = new ObjectReferenceType();
ort.setOid(focusWrapperModel.getObject().getOid());
searchDto.setTargetName(ort);

searchDto.setEventStage(AuditEventStageType.EXECUTION);

AuditLogViewerPanel panel = new AuditLogViewerPanel(ID_MAIN_PANEL, page, searchDto);
AuditLogViewerPanel panel = new AuditLogViewerPanel(ID_MAIN_PANEL, page, searchDto){
@Override
protected boolean isTargetNameVisible(){
return false;
}

@Override
protected boolean isEventStageVisible(){
return false;
}

@Override
protected List<IColumn<AuditEventRecordType, String>> initColumns() {
List<IColumn<AuditEventRecordType, String>> columns = super.initColumns();
IColumn<AuditEventRecordType, String> column
= new MultiButtonColumn<AuditEventRecordType>(new Model(), 2) {

private final DoubleButtonColumn.BUTTON_COLOR_CLASS[] colors = {
DoubleButtonColumn.BUTTON_COLOR_CLASS.INFO,
DoubleButtonColumn.BUTTON_COLOR_CLASS.SUCCESS
};

@Override
public String getCaption(int id) {
return "";
}

@Override
public String getButtonColorCssClass(int id) {
return colors[id].toString();
}

@Override
protected String getButtonCssClass(int id) {
StringBuilder sb = new StringBuilder();
sb.append(DoubleButtonColumn.BUTTON_BASE_CLASS).append(" ");
sb.append(getButtonColorCssClass(id)).append(" ");
switch (id) {
case 0: sb.append("fa fa-circle-o"); break;
case 1: sb.append("fa fa-exchange"); break;
}
return sb.toString();
}

@Override
public void clickPerformed(int id, AjaxRequestTarget target, IModel<AuditEventRecordType> model) {
switch (id) {
case 0: currentStateButtonClicked(target, focusWrapperModel);break;
case 1: break;
}
}

};
columns.add(column);

return columns;
}

};
panel.setOutputMarkupId(true);
add(panel);
}

private void currentStateButtonClicked(AjaxRequestTarget target, LoadableModel<ObjectWrapper<F>> focusWrapperModel){
setResponsePage(new PageUser(((ObjectWrapper<UserType>)focusWrapperModel.getObject()).getObject()));
}


}
Expand Up @@ -10,12 +10,9 @@
import com.evolveum.midpoint.web.component.DateLabelComponent;
import com.evolveum.midpoint.web.component.data.BoxedTablePanel;
import com.evolveum.midpoint.web.page.admin.reports.dto.AuditEventRecordProvider;
import com.evolveum.midpoint.web.page.admin.reports.dto.AuditSearchDto;
import com.evolveum.midpoint.web.page.admin.workflow.dto.ProcessInstanceDto;
import com.evolveum.midpoint.web.session.UserProfileStorage;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventStageType;
import com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventTypeType;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.behavior.AttributeAppender;
Expand All @@ -26,7 +23,6 @@
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.PropertyModel;
Expand Down
Expand Up @@ -178,8 +178,7 @@ private void initParametersPanel(Form mainForm) {
eventStageLabel.add(new VisibleEnableBehaviour(){
@Override
public boolean isVisible(){
return searchDto.getEventStage() == null ||
StringUtils.isEmpty(searchDto.getEventStage().value());
return isTargetNameVisible();
}
});
eventStageLabel.setOutputMarkupId(true);
Expand All @@ -195,8 +194,7 @@ public boolean isVisible(){
eventStage.add(new VisibleEnableBehaviour() {
@Override
public boolean isVisible() {
return searchDto.getEventStage() == null ||
StringUtils.isEmpty(searchDto.getEventStage().value());
return isEventStageVisible();
}
});
eventStage.getBaseFormComponent().add(new EmptyOnChangeAjaxFormUpdatingBehavior());
Expand Down Expand Up @@ -356,7 +354,7 @@ public Map<String, Object> getParameters() {
mainForm.addOrReplace(table);
}

private List<IColumn<AuditEventRecordType, String>> initColumns() {
protected List<IColumn<AuditEventRecordType, String>> initColumns() {
List<IColumn<AuditEventRecordType, String>> columns = new ArrayList<IColumn<AuditEventRecordType, String>>();
IColumn<AuditEventRecordType, String> linkColumn = new LinkColumn<AuditEventRecordType>(
createStringResource("AuditEventRecordType.timestamp"), "timestamp") {
Expand Down Expand Up @@ -394,10 +392,11 @@ public void populateItem(Item<ICellPopulator<AuditEventRecordType>> item, String
};
columns.add(initiatorRefColumn);

IColumn<AuditEventRecordType, String> eventStageColumn = new PropertyColumn<AuditEventRecordType, String>(
createStringResource("PageAuditLogViewer.eventStageLabel"), "eventStage");
columns.add(eventStageColumn);

if (isEventStageVisible()) {
IColumn<AuditEventRecordType, String> eventStageColumn = new PropertyColumn<AuditEventRecordType, String>(
createStringResource("PageAuditLogViewer.eventStageLabel"), "eventStage");
columns.add(eventStageColumn);
}
IColumn<AuditEventRecordType, String> eventTypeColumn = new PropertyColumn<AuditEventRecordType, String>(
createStringResource("PageAuditLogViewer.eventTypeLabel"), "eventType");
columns.add(eventTypeColumn);
Expand Down Expand Up @@ -482,4 +481,12 @@ private void createReferenceColumn(ObjectReferenceType ref, Item item, String co
public WebMarkupContainer getFeedbackPanel() {
return (FeedbackPanel) get(pageBase.createComponentPath(ID_MAIN_FORM, ID_FEEDBACK));
}

protected boolean isTargetNameVisible(){
return true;
}

protected boolean isEventStageVisible(){
return true;
}
}
Expand Up @@ -206,66 +206,6 @@ private Component getMergeResultObjectPanel(){
return mergeObjectsResultPanel;
}

private void initButtonPanel(Form mainForm){
AjaxSubmitButton switchDirectionButton = new AjaxSubmitButton(ID_SWITCH_DIRECTION_BUTTON, pageBase.createStringResource("PageMergeObjects.switchDirectionButton")) {

@Override
protected void onSubmit(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
}

@Override
protected void onError(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
target.add(pageBase.getFeedbackPanel());
}
};
mainForm.add(switchDirectionButton);

AjaxSubmitButton mergeDeltaPreviewButton = new AjaxSubmitButton(ID_MERGE_DELTA_PREVIEW_BUTTON,
pageBase.createStringResource("PageMergeObjects.mergeDeltaPreviewButton")) {

@Override
protected void onSubmit(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
}

@Override
protected void onError(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
target.add(pageBase.getFeedbackPanel());
}
};
mainForm.add(mergeDeltaPreviewButton);

AjaxSubmitButton mergeButton = new AjaxSubmitButton(ID_MERGE_BUTTON,
pageBase.createStringResource("PageMergeObjects.mergeButton")) {

@Override
protected void onSubmit(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
}

@Override
protected void onError(AjaxRequestTarget target,
org.apache.wicket.markup.html.form.Form<?> form) {
target.add(pageBase.getFeedbackPanel());
}
};
mainForm.add(mergeButton);

AjaxButton back = new AjaxButton(ID_BACK_BUTTON, pageBase.createStringResource("PageMergeObjects.backButton")) {

@Override
public void onClick(AjaxRequestTarget target) {
pageBase.redirectBack();
}

};
mainForm.add(back);

}

private List<String> getMergeTypeNames(){
List<String> mergeTypeNamesList = new ArrayList<>();
Task task = pageBase.createAnonymousTask(OPERATION_LOAD_MERGE_TYPE_NAMES);
Expand Down

0 comments on commit 0a95f76

Please sign in to comment.