Skip to content

Commit

Permalink
Backend sorting enabled for GWT console
Browse files Browse the repository at this point in the history
Signed-off-by: Claudio Mezzasalma <claudio.mezzasalma@eurotech.com>
  • Loading branch information
Claudio Mezzasalma authored and Coduz committed Nov 7, 2017
1 parent 38e25f3 commit 0dded69
Show file tree
Hide file tree
Showing 16 changed files with 116 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,13 @@ protected List<ColumnConfig> getColumns() {
column = new ColumnConfig("orgName", 120);
column.setHeader(MSGS.accountTableOrgName());
column.setWidth(150);
column.setSortable(false);
configs.add(column);

column = new ColumnConfig("orgEmail", 120);
column.setHeader(MSGS.accountTableOrgEmail());
column.setWidth(150);
column.setSortable(false);
configs.add(column);

column = new ColumnConfig("modifiedOnFormatted", MSGS.accountTableModifiedOn(), 130);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,19 @@
*******************************************************************************/
package org.eclipse.kapua.app.console.module.account.shared.util;

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.app.console.module.api.shared.util.GwtKapuaCommonsModelConverter;
import org.eclipse.kapua.app.console.module.account.shared.model.GwtAccountQuery;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria.SortOrder;
import org.eclipse.kapua.commons.model.query.predicate.AndPredicate;
import org.eclipse.kapua.commons.model.query.predicate.AttributePredicate;
import org.eclipse.kapua.locator.KapuaLocator;
import org.eclipse.kapua.model.query.predicate.KapuaAttributePredicate.Operator;
import org.eclipse.kapua.service.account.AccountFactory;
import org.eclipse.kapua.service.account.AccountPredicates;
import org.eclipse.kapua.service.account.AccountQuery;

public class GwtKapuaAccountModelConverter {
Expand All @@ -43,6 +48,13 @@ public static AccountQuery convertAccountQuery(PagingLoadConfig loadConfig, GwtA
predicate.and(new AttributePredicate<String>("organization.email", gwtAccountQuery.getOrganizationEmail(), Operator.LIKE));
}

String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? AccountPredicates.NAME : loadConfig.getSortField();
if (sortField.equals("modifiedOnFormatted")) {
sortField = AccountPredicates.MODIFIED_ON;
}
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
query.setSortCriteria(sortCriteria);
query.setPredicate(predicate);

return query;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,6 @@ public KapuaGrid(ListStore<M> store, ColumnModel cm) {
gridView.setAutoFill(true);
gridView.setForceFit(true);
gridView.setSortingEnabled(true);
store.getLoader().setRemoteSort(true);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,18 @@
*******************************************************************************/
package org.eclipse.kapua.app.console.module.authentication.shared.util;

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.app.console.module.api.shared.util.GwtKapuaCommonsModelConverter;
import org.eclipse.kapua.app.console.module.authentication.shared.model.GwtCredential;
import org.eclipse.kapua.app.console.module.authentication.shared.model.GwtCredentialCreator;
import org.eclipse.kapua.app.console.module.authentication.shared.model.GwtCredentialQuery;
import org.eclipse.kapua.app.console.module.authentication.shared.model.GwtCredentialStatus;
import org.eclipse.kapua.app.console.module.authentication.shared.model.GwtCredentialType;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria.SortOrder;
import org.eclipse.kapua.commons.model.query.predicate.AndPredicate;
import org.eclipse.kapua.commons.model.query.predicate.AttributePredicate;
import org.eclipse.kapua.locator.KapuaLocator;
Expand Down Expand Up @@ -68,6 +72,10 @@ public static CredentialQuery convertCredentialQuery(PagingLoadConfig loadConfig
if (gwtCredentialQuery.getType() != null && gwtCredentialQuery.getType() != GwtCredentialType.ALL) {
andPredicate.and(new AttributePredicate<CredentialType>(CredentialPredicates.CREDENTIAL_TYPE, convertCredentialType(gwtCredentialQuery.getType()), Operator.EQUAL));
}
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? CredentialPredicates.CREDENTIAL_TYPE : loadConfig.getSortField();
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
credentialQuery.setSortCriteria(sortCriteria);
credentialQuery.setPredicate(andPredicate);
credentialQuery.setOffset(loadConfig.getOffset());
credentialQuery.setLimit(loadConfig.getLimit());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ protected List<ColumnConfig> getColumns() {
columnConfigs.add(columnConfig);

columnConfig = new ColumnConfig("userName", MSGS.gridGroupColumnHeaderCreatedBy(), 200);
columnConfig.setSortable(false);
columnConfigs.add(columnConfig);

return columnConfigs;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ protected List<ColumnConfig> getColumns() {
columnConfigs.add(columnConfig);

columnConfig = new ColumnConfig("userName", MSGS.gridRoleColumnHeaderCreatedBy(), 200);
columnConfig.setSortable(false);
columnConfigs.add(columnConfig);

columnConfig = new ColumnConfig("createdOnFormatted", MSGS.gridRoleColumnHeaderCreatedOn(), 200);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
*******************************************************************************/
package org.eclipse.kapua.app.console.module.authorization.shared.util;

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.BaseModel;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.KapuaException;
import org.eclipse.kapua.app.console.module.api.shared.util.GwtKapuaCommonsModelConverter;
import org.eclipse.kapua.app.console.module.authorization.shared.model.GwtAccessInfoCreator;
Expand All @@ -28,6 +30,8 @@
import org.eclipse.kapua.app.console.module.authorization.shared.model.GwtRolePermission;
import org.eclipse.kapua.app.console.module.authorization.shared.model.GwtRoleQuery;
import org.eclipse.kapua.commons.model.id.KapuaEid;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria.SortOrder;
import org.eclipse.kapua.commons.model.query.predicate.AttributePredicate;
import org.eclipse.kapua.locator.KapuaLocator;
import org.eclipse.kapua.model.KapuaEntity;
Expand All @@ -47,6 +51,7 @@
import org.eclipse.kapua.service.authorization.domain.DomainService;
import org.eclipse.kapua.service.authorization.group.GroupFactory;
import org.eclipse.kapua.service.authorization.group.GroupQuery;
import org.eclipse.kapua.service.authorization.group.shiro.GroupPredicates;
import org.eclipse.kapua.service.authorization.permission.Action;
import org.eclipse.kapua.service.authorization.permission.Actions;
import org.eclipse.kapua.service.authorization.permission.Permission;
Expand Down Expand Up @@ -79,6 +84,13 @@ public static GroupQuery convertGroupQuery(PagingLoadConfig loadConfig,
groupQuery
.setPredicate(new AttributePredicate<String>("name", gwtGroupQuery.getName(), Operator.LIKE));
}
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? GroupPredicates.NAME : loadConfig.getSortField();
if (sortField.equals("groupName")) {
sortField = GroupPredicates.NAME;
}
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
groupQuery.setSortCriteria(sortCriteria);
groupQuery.setOffset(loadConfig.getOffset());
groupQuery.setLimit(loadConfig.getLimit());

Expand All @@ -105,6 +117,13 @@ public static RoleQuery convertRoleQuery(PagingLoadConfig loadConfig, GwtRoleQue
if (gwtRoleQuery.getName() != null && !gwtRoleQuery.getName().trim().isEmpty()) {
roleQuery.setPredicate(new AttributePredicate<String>(RolePredicates.NAME, gwtRoleQuery.getName(), Operator.LIKE));
}
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? RolePredicates.NAME : loadConfig.getSortField();
if (sortField.equals("createdOnFormatted")) {
sortField = RolePredicates.CREATED_ON;
}
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
roleQuery.setSortCriteria(sortCriteria);
roleQuery.setOffset(loadConfig.getOffset());
roleQuery.setLimit(loadConfig.getLimit());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ public String render(GwtDeviceConnection gwtDeviceConnection, String property, C

column = new ColumnConfig("userName", 120);
column.setHeader(MSGS.connectionTableUserName());
column.setSortable(false);
column.setWidth(150);
configs.add(column);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
*******************************************************************************/
package org.eclipse.kapua.app.console.module.device.shared.util;

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.app.console.module.api.shared.util.GwtKapuaCommonsModelConverter;
import org.eclipse.kapua.app.console.module.device.shared.model.GwtDeviceConnectionQuery;
import org.eclipse.kapua.app.console.module.device.shared.model.GwtDeviceConnectionStatus;
Expand Down Expand Up @@ -41,6 +43,7 @@
import org.eclipse.kapua.service.device.registry.DeviceQuery;
import org.eclipse.kapua.service.device.registry.DeviceStatus;
import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionFactory;
import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionPredicates;
import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionQuery;
import org.eclipse.kapua.service.device.registry.connection.DeviceConnectionStatus;

Expand Down Expand Up @@ -68,6 +71,15 @@ public static DeviceConnectionQuery convertConnectionQuery(PagingLoadConfig load
predicate.and(new AttributePredicate<String>("clientIp", gwtDeviceConnectionQuery.getClientIP(), Operator.LIKE));
}

String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? "clientId" : loadConfig.getSortField();
if (sortField.equals("connectionUserCouplingMode")) {
sortField = DeviceConnectionPredicates.USER_COUPLING_MODE;
} else if (sortField.equals("modifiedOnFormatted")) {
sortField = DeviceConnectionPredicates.MODIFIED_ON;
}
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
query.setSortCriteria(sortCriteria);
query.setPredicate(predicate);

return query;
Expand Down Expand Up @@ -130,6 +142,10 @@ public static DeviceQuery convertDeviceQuery(PagingLoadConfig loadConfig, GwtDev
if (loadConfig != null) {
deviceQuery.setLimit(loadConfig.getLimit() + 1);
deviceQuery.setOffset(loadConfig.getOffset());
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? DevicePredicates.CLIENT_ID : loadConfig.getSortField();
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
deviceQuery.setSortCriteria(sortCriteria);
}

GwtDeviceQueryPredicates predicates = gwtDeviceQuery.getPredicates();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ protected void selectionChangedEvent(GwtJob selectedItem) {
protected List<ColumnConfig> getColumns() {
List<ColumnConfig> columnConfigs = new ArrayList<ColumnConfig>();

ColumnConfig columnConfig = new ColumnConfig("status", MSGS.gridJobColumnHeaderStatus(), 50);
columnConfigs.add(columnConfig);
// ColumnConfig columnConfig = new ColumnConfig("status", MSGS.gridJobColumnHeaderStatus(), 50);
// columnConfigs.add(columnConfig);

columnConfig = new ColumnConfig("id", MSGS.gridJobColumnHeaderId(), 100);
ColumnConfig columnConfig = new ColumnConfig("id", MSGS.gridJobColumnHeaderId(), 100);
columnConfig.setHidden(true);
columnConfigs.add(columnConfig);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.app.console.module.api.shared.util.GwtKapuaCommonsModelConverter;
import org.eclipse.kapua.app.console.module.job.shared.model.job.GwtExecutionQuery;
import org.eclipse.kapua.app.console.module.job.shared.model.job.GwtJob;
Expand All @@ -33,6 +34,7 @@
import org.eclipse.kapua.model.id.KapuaId;
import org.eclipse.kapua.service.job.Job;
import org.eclipse.kapua.service.job.JobFactory;
import org.eclipse.kapua.service.job.JobPredicates;
import org.eclipse.kapua.service.job.JobQuery;
import org.eclipse.kapua.service.job.execution.JobExecutionFactory;
import org.eclipse.kapua.service.job.execution.JobExecutionPredicates;
Expand Down Expand Up @@ -108,6 +110,13 @@ public static JobQuery convertJobQuery(GwtJobQuery gwtJobQuery, PagingLoadConfig
JobQuery jobQuery = jobFactory.newQuery(GwtKapuaCommonsModelConverter.convertKapuaId(gwtJobQuery.getScopeId()));
jobQuery.setLimit(loadConfig.getLimit());
jobQuery.setOffset(loadConfig.getOffset());
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? JobPredicates.NAME : loadConfig.getSortField();
if (sortField.equals("jobName")) {
sortField = JobPredicates.NAME;
}
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
jobQuery.setSortCriteria(sortCriteria);
return jobQuery;
}

Expand All @@ -123,6 +132,10 @@ public static JobTargetQuery convertJobTargetQuery(GwtJobTargetQuery gwtJobTarge
if (loadConfig != null) {
jobTargetQuery.setLimit(loadConfig.getLimit());
jobTargetQuery.setOffset(loadConfig.getOffset());
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? JobTargetPredicates.ENTITY_ID : loadConfig.getSortField();
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
jobTargetQuery.setSortCriteria(sortCriteria);
}
return jobTargetQuery;
}
Expand Down Expand Up @@ -150,6 +163,10 @@ public static JobStepQuery convertJobStepQuery(GwtJobStepQuery gwtJobStepQuery,
jobStepQuery.setSortCriteria(criteria);
}
jobStepQuery.setPredicate(andPredicate);
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? JobStepPredicates.STEP_INDEX : loadConfig.getSortField();
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
jobStepQuery.setSortCriteria(sortCriteria);
jobStepQuery.setLimit(loadConfig.getLimit());
jobStepQuery.setOffset(loadConfig.getOffset());
return jobStepQuery;
Expand Down Expand Up @@ -199,6 +216,10 @@ public static TriggerQuery convertTriggerQuery(GwtTriggerQuery gwtTriggerQuery,
AttributePredicate<String> kapuaPropertyValueAttributePredicate = new AttributePredicate<String>(TriggerPredicates.TRIGGER_PROPERTIES_VALUE, gwtTriggerQuery.getJobId());
AttributePredicate<String> kapuaPropertyTypeAttributePredicate = new AttributePredicate<String>(TriggerPredicates.TRIGGER_PROPERTIES_TYPE, KapuaId.class.getName());
AndPredicate andPredicate = new AndPredicate().and(kapuaPropertyNameAttributePredicate).and(kapuaPropertyValueAttributePredicate).and(kapuaPropertyTypeAttributePredicate);
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? TriggerPredicates.ENTITY_ID : loadConfig.getSortField();
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
triggerQuery.setSortCriteria(sortCriteria);
triggerQuery.setPredicate(andPredicate);
triggerQuery.setLimit(loadConfig.getLimit());
triggerQuery.setOffset(loadConfig.getOffset());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ protected List<ColumnConfig> getColumns() {
columnConfigs.add(columnConfig);

columnConfig = new ColumnConfig("userName", MSGS.gridTagColumnHeaderCreatedBy(), 200);
columnConfig.setSortable(false);
columnConfigs.add(columnConfig);

return columnConfigs;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,13 @@
*******************************************************************************/
package org.eclipse.kapua.app.console.module.tag.shared.util;

import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.kapua.app.console.module.api.shared.util.GwtKapuaCommonsModelConverter;
import org.eclipse.kapua.app.console.module.tag.shared.model.GwtTagQuery;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria;
import org.eclipse.kapua.commons.model.query.FieldSortCriteria.SortOrder;
import org.eclipse.kapua.commons.model.query.predicate.AttributePredicate;
import org.eclipse.kapua.locator.KapuaLocator;
import org.eclipse.kapua.model.query.predicate.KapuaAttributePredicate.Operator;
Expand All @@ -39,6 +43,13 @@ public static TagQuery convertTagQuery(PagingLoadConfig loadConfig, GwtTagQuery
if (gwtTagQuery.getName() != null && !gwtTagQuery.getName().isEmpty()) {
tagQuery.setPredicate(new AttributePredicate<String>(TagPredicates.NAME, gwtTagQuery.getName(), Operator.LIKE));
}
String sortField = StringUtils.isEmpty(loadConfig.getSortField()) ? TagPredicates.NAME : loadConfig.getSortField();
if (sortField.equals("tagName")) {
sortField = TagPredicates.NAME;
}
SortOrder sortOrder = loadConfig.getSortDir().equals(SortDir.DESC) ? SortOrder.DESCENDING : SortOrder.ASCENDING;
FieldSortCriteria sortCriteria = new FieldSortCriteria(sortField, sortOrder);
tagQuery.setSortCriteria(sortCriteria);
tagQuery.setOffset(loadConfig.getOffset());
tagQuery.setLimit(loadConfig.getLimit());

Expand Down
Loading

0 comments on commit 0dded69

Please sign in to comment.