package fr.openwide.core.basicapp.web.application.administration.component; import static fr.openwide.core.basicapp.web.application.property.BasicApplicationWebappPropertyIds.PORTFOLIO_ITEMS_PER_PAGE; import org.apache.wicket.model.IModel; import org.apache.wicket.model.ResourceModel; import org.apache.wicket.spring.injection.annot.SpringBean; import fr.openwide.core.basicapp.core.business.history.model.atomic.HistoryEventType; import fr.openwide.core.basicapp.core.business.user.model.User; import fr.openwide.core.basicapp.core.util.binding.Bindings; import fr.openwide.core.basicapp.web.application.history.column.HistoryLogDetailColumn; import fr.openwide.core.basicapp.web.application.history.model.HistoryLogDataProvider; import fr.openwide.core.jpa.more.business.history.search.HistoryLogSort; import fr.openwide.core.spring.property.service.IPropertyService; import fr.openwide.core.wicket.markup.html.panel.GenericPanel; import fr.openwide.core.wicket.more.markup.repeater.table.DecoratedCoreDataTablePanel.AddInPlacement; import fr.openwide.core.wicket.more.markup.repeater.table.builder.DataTableBuilder; import fr.openwide.core.wicket.more.markup.html.sort.SortIconStyle; import fr.openwide.core.wicket.more.markup.html.sort.TableSortLink.CycleMode; import fr.openwide.core.wicket.more.util.DatePattern; public class UserHistoryLogPanel extends GenericPanel<User> { private static final long serialVersionUID = 809335942700940194L; @SpringBean private IPropertyService propertyService; public UserHistoryLogPanel(String id, final IModel<? extends User> userModel) { super(id, userModel); setOutputMarkupPlaceholderTag(true); HistoryLogDataProvider dataProvider = HistoryLogDataProvider.object(userModel); dataProvider.addMandatoryDifferenceEventType(HistoryEventType.UPDATE); add( DataTableBuilder.start(dataProvider, dataProvider.getSortModel()) .addLabelColumn(new ResourceModel("business.history.date"), Bindings.historyLog().date(), DatePattern.SHORT_DATETIME) .withSort(HistoryLogSort.DATE, SortIconStyle.DEFAULT, CycleMode.DEFAULT_REVERSE) .withClass("date date-lg") .addLabelColumn(new ResourceModel("business.history.subject"), Bindings.historyLog().subject()) .withClass("text text-sm") .addColumn(new HistoryLogDetailColumn()) .withClass("text") .bootstrapPanel() .title("administration.user.audits") .ajaxPager(AddInPlacement.FOOTER_RIGHT) .build("history", propertyService.get(PORTFOLIO_ITEMS_PER_PAGE)) ); } }