package com.constellio.app.ui.framework.data.event.category; import static com.constellio.app.ui.i18n.i18n.$; import org.joda.time.LocalDateTime; import com.constellio.app.modules.rm.services.events.RMEventsSearchServices; import com.constellio.app.ui.pages.events.EventsCategoryDataProvider; import com.constellio.model.entities.records.wrappers.EventType; import com.constellio.model.entities.records.wrappers.User; import com.constellio.model.services.factories.ModelLayerFactory; import com.constellio.model.services.search.query.logical.LogicalSearchQuery; public class ByUserEventsDataProvider extends DefaultEventsDataProvider implements EventsCategoryDataProvider { public ByUserEventsDataProvider(ModelLayerFactory modelLayerFactory, String collection, String currentUserName, LocalDateTime startDate, LocalDateTime endDate, String id) { super(modelLayerFactory, collection, currentUserName, startDate, endDate, id); } @Override protected LogicalSearchQuery createSpecificQuery(ModelLayerFactory modelLayerFactory, User currentUser, String eventType, LocalDateTime startDate, LocalDateTime endDate, String id) { RMEventsSearchServices rmSchemasRecordsServices = new RMEventsSearchServices(modelLayerFactory, collection); if (eventType.equals(EventType.CURRENTLY_BORROWED_FOLDERS)) { return rmSchemasRecordsServices.newFindCurrentlyBorrowedFoldersByUser(currentUser, id); } else if (eventType.equals(EventType.LATE_BORROWED_FOLDERS)) { return rmSchemasRecordsServices .newFindLateBorrowedFoldersByUserAndDateRangeQuery(currentUser, id); } else { return rmSchemasRecordsServices .newFindEventByDateRangeAndByUserIdQuery(currentUser, eventType, startDate, endDate, id); } } @Override public String getEventType(Integer index) { if (index == 0) { return EventType.OPEN_SESSION; } else if (index == 1) { return EventType.VIEW_FOLDER; } else if (index == 2) { return EventType.CREATE_FOLDER; } else if (index == 3) { return EventType.MODIFY_FOLDER; } else if (index == 4) { return EventType.DELETE_FOLDER; } else if (index == 5) { return EventType.BORROW_FOLDER; } else if (index == 6) { return EventType.RETURN_FOLDER; } else if (index == 7) { return EventType.CONSULTATION_FOLDER; } else if (index == 8) { return EventType.CURRENTLY_BORROWED_FOLDERS; } else if (index == 9) { return EventType.LATE_BORROWED_FOLDERS; } else if (index == 10) { return EventType.VIEW_DOCUMENT; } else if (index == 11) { return EventType.BORROW_DOCUMENT; } else if (index == 12) { return EventType.CREATE_DOCUMENT; } else if (index == 13) { return EventType.MODIFY_DOCUMENT; } else if (index == 14) { return EventType.DELETE_DOCUMENT; } else if (index == 15) { return EventType.CREATE_USER; } else if (index == 16) { return EventType.DELETE_USER; } else if (index == 17) { return EventType.CREATE_GROUP; } else if (index == 18) { return EventType.DELETE_GROUP; } else if (index == 19) { return EventType.GRANT_PERMISSION_FOLDER; } else if (index == 20) { return EventType.MODIFY_PERMISSION_FOLDER; } else if (index == 21) { return EventType.DELETE_PERMISSION_FOLDER; } else if (index == 22) { return EventType.GRANT_PERMISSION_DOCUMENT; } else if (index == 23) { return EventType.MODIFY_PERMISSION_DOCUMENT; } else if (index == 24) { return EventType.DELETE_PERMISSION_DOCUMENT; } else if (index == 25) { return EventType.CREATE_TASK; } else if (index == 26) { return EventType.MODIFY_TASK; } else { return EventType.DELETE_TASK; } } @Override public int specificSize() { return 28; } @Override public String getDataTitle() { return $("ListEventsView.eventsByUser"); } @Override public String getDataReportTitle() { return $("ListEventsView.reportTitle.allActivities"); } }