use of com.evolveum.midpoint.gui.api.component.button.CsvDownloadButtonPanel in project midpoint by Evolveum.
the class AuditLogViewerPanel method initLayout.
private void initLayout() {
ContainerableListPanel<AuditEventRecordType, SelectableBean<AuditEventRecordType>> auditLogViewerTable = new ContainerableListPanel<>(ID_AUDIT_LOG_VIEWER_TABLE, AuditEventRecordType.class) {
@Override
protected List<IColumn<SelectableBean<AuditEventRecordType>, String>> createDefaultColumns() {
return AuditLogViewerPanel.this.createColumns();
}
@Override
protected List<InlineMenuItem> createInlineMenu() {
return null;
}
@Override
protected IColumn<SelectableBean<AuditEventRecordType>, String> createNameColumn(IModel<String> displayModel, GuiObjectColumnType customColumn, ItemPath itemPath, ExpressionType expression) {
return AuditLogViewerPanel.this.createNameColumn();
}
@Override
protected IColumn<SelectableBean<AuditEventRecordType>, String> createCheckboxColumn() {
return null;
}
@Override
protected IColumn<SelectableBean<AuditEventRecordType>, String> createIconColumn() {
return null;
}
@Override
protected Search createSearch(Class<AuditEventRecordType> type) {
// TODO: use storage?
AuditLogStorage storage = (AuditLogStorage) getPageStorage();
Search search = SearchFactory.createContainerSearch(new ContainerTypeSearchItem(new SearchValue(type, "")), AuditEventRecordType.F_TIMESTAMP, getPageBase(), true);
DateSearchItem timestampItem = (DateSearchItem) search.findPropertySearchItem(AuditEventRecordType.F_TIMESTAMP);
if (timestampItem != null && timestampItem.getFromDate() == null && timestampItem.getToDate() == null && !isCollectionViewPanelForWidget()) {
Date todayDate = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
timestampItem.setFromDate(MiscUtil.asXMLGregorianCalendar(todayDate));
}
return search;
}
@Override
protected UserProfileStorage.TableId getTableId() {
return UserProfileStorage.TableId.PAGE_AUDIT_LOG_VIEWER;
}
@Override
protected String getStorageKey() {
String collectionNameValue = null;
if (isCollectionViewPanelForCompiledView()) {
StringValue collectionName = getCollectionNameParameterValue();
collectionNameValue = collectionName != null ? collectionName.toString() : "";
}
return getAuditStorageKey(collectionNameValue);
}
@Override
protected ISelectableDataProvider createProvider() {
PageStorage pageStorage = getPageStorage();
SelectableBeanContainerDataProvider<AuditEventRecordType> provider = new SelectableBeanContainerDataProvider<AuditEventRecordType>(AuditLogViewerPanel.this, getSearchModel(), null, false) {
@Override
protected PageStorage getPageStorage() {
return pageStorage;
}
@Override
protected Integer countObjects(Class<? extends AuditEventRecordType> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> currentOptions, Task task, OperationResult result) throws CommonException {
return getPageBase().getModelAuditService().countObjects(query, currentOptions, task, result);
}
@Override
protected List<AuditEventRecordType> searchObjects(Class<? extends AuditEventRecordType> type, ObjectQuery query, Collection<SelectorOptions<GetOperationOptions>> options, Task task, OperationResult result) throws CommonException {
return getPageBase().getModelAuditService().searchObjects(query, options, task, result);
}
@NotNull
@Override
protected List<ObjectOrdering> createObjectOrderings(SortParam<String> sortParam) {
if (sortParam != null && sortParam.getProperty() != null) {
OrderDirection order = sortParam.isAscending() ? OrderDirection.ASCENDING : OrderDirection.DESCENDING;
return Collections.singletonList(getPrismContext().queryFactory().createOrdering(ItemPath.create(new QName(AuditEventRecordType.COMPLEX_TYPE.getNamespaceURI(), sortParam.getProperty())), order));
} else {
return Collections.emptyList();
}
}
@Override
protected ObjectQuery getCustomizeContentQuery() {
return AuditLogViewerPanel.this.getCustomizeContentQuery();
}
};
provider.setSort(AuditEventRecordType.F_TIMESTAMP.getLocalPart(), SortOrder.DESCENDING);
return provider;
}
@Override
protected AuditEventRecordType getRowRealValue(SelectableBean<AuditEventRecordType> rowModelObject) {
if (rowModelObject == null) {
return null;
}
return rowModelObject.getValue();
}
@Override
protected List<Component> createToolbarButtonsList(String idButton) {
List<Component> buttonsList = new ArrayList<>();
CsvDownloadButtonPanel exportDataLink = new CsvDownloadButtonPanel(idButton) {
private static final long serialVersionUID = 1L;
@Override
protected String getFilename() {
return "AuditLogViewer_" + createStringResource("MainObjectListPanel.exportFileName").getString();
}
@Override
protected DataTable<?, ?> getDataTable() {
return getTable().getDataTable();
}
};
exportDataLink.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_CSV_EXPORT_ACTION_URI);
}
});
buttonsList.add(exportDataLink);
AjaxCompositedIconButton createReport = new AjaxCompositedIconButton(idButton, WebComponentUtil.createCreateReportIcon(), getPageBase().createStringResource("MainObjectListPanel.createReport")) {
private static final long serialVersionUID = 1L;
@Override
public void onClick(AjaxRequestTarget target) {
createReportPerformed(target);
}
};
createReport.add(AttributeAppender.append("class", "btn btn-default btn-sm btn-margin-right"));
buttonsList.add(createReport);
return buttonsList;
}
};
auditLogViewerTable.setOutputMarkupId(true);
add(auditLogViewerTable);
}
use of com.evolveum.midpoint.gui.api.component.button.CsvDownloadButtonPanel in project midpoint by Evolveum.
the class MainObjectListPanel method createDownloadButton.
private CsvDownloadButtonPanel createDownloadButton(String buttonId) {
boolean canCountBeforeExporting = getType() == null || !ShadowType.class.isAssignableFrom(getType()) || isRawOrNoFetchOption(getOptions());
CsvDownloadButtonPanel exportDataLink = new CsvDownloadButtonPanel(buttonId, canCountBeforeExporting) {
private static final long serialVersionUID = 1L;
@Override
protected DataTable<?, ?> getDataTable() {
return getTable().getDataTable();
}
@Override
protected String getFilename() {
return getType().getSimpleName() + "_" + createStringResource("MainObjectListPanel.exportFileName").getString();
}
};
exportDataLink.add(new VisibleEnableBehaviour() {
private static final long serialVersionUID = 1L;
@Override
public boolean isVisible() {
return WebComponentUtil.isAuthorized(AuthorizationConstants.AUTZ_UI_ADMIN_CSV_EXPORT_ACTION_URI);
}
});
return exportDataLink;
}
Aggregations