mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Add pagination sort by column (#48)
## Purpose Fixes [issues/9743](https://roadmap.entgra.net/issues/9743) ## Improvement Sort in ASC OR DESC on pagination requested by column name Co-authored-by: Rushdi <rushdi@entgra.io> Co-authored-by: Pahansith Gunathilake <pahansith@entgra.io> Reviewed-on: https://repository.entgra.net/community/device-mgt-core/pulls/48 Co-authored-by: Rushdi Mohamed <rushdi@entgra.io> Co-committed-by: Rushdi Mohamed <rushdi@entgra.io>
This commit is contained in:
parent
d69619bf65
commit
a7cf4fa86c
@ -44,6 +44,7 @@ public class PaginationRequest {
|
|||||||
private Map<String, Object> property = new HashMap<>();
|
private Map<String, Object> property = new HashMap<>();
|
||||||
private List<String> statusList = new ArrayList<>();
|
private List<String> statusList = new ArrayList<>();
|
||||||
private OperationLogFilters operationLogFilters = new OperationLogFilters();
|
private OperationLogFilters operationLogFilters = new OperationLogFilters();
|
||||||
|
private List<SortColumn> sortColumn = new ArrayList<>();
|
||||||
public OperationLogFilters getOperationLogFilters() {
|
public OperationLogFilters getOperationLogFilters() {
|
||||||
return operationLogFilters;
|
return operationLogFilters;
|
||||||
}
|
}
|
||||||
@ -172,11 +173,38 @@ public class PaginationRequest {
|
|||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSortColumn(List<SortColumn> sortColumn) { this.sortColumn = sortColumn; }
|
||||||
|
|
||||||
|
public List<SortColumn> getSortColumn() { return sortColumn; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert SortColumns field parameter and splitting string into columnName and sortType
|
||||||
|
*
|
||||||
|
* @param sortColumns which is separated by a colon(:) and first will be the columnNane and the second will be type ASC or DESC,
|
||||||
|
* if there is no colon(:) detected, ASC will be default
|
||||||
|
* (Ex: sort=col1:ASC&sort=col2:DESC, sort=col1&sort=col2:DESC)
|
||||||
|
* @return sortColumnList as a list of sortColumn
|
||||||
|
*/
|
||||||
|
public void setSortColumns(List<String> sortColumns) {
|
||||||
|
List<SortColumn> sortColumnList = new ArrayList<>();
|
||||||
|
SortColumn sortColumn;
|
||||||
|
String[] sorting;
|
||||||
|
for (String sortBy: sortColumns) {
|
||||||
|
sortColumn = new SortColumn();
|
||||||
|
sorting = sortBy.split(":");
|
||||||
|
sortColumn.setName(sorting[0]);
|
||||||
|
sortColumn.setType(sorting.length >= 2 && (sorting[1].equalsIgnoreCase("desc"))
|
||||||
|
? SortColumn.types.DESC : SortColumn.types.ASC);
|
||||||
|
sortColumnList.add(sortColumn);
|
||||||
|
}
|
||||||
|
setSortColumn(sortColumnList);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Device type '" + this.deviceType + "' Device Name '" + this.deviceName + "' row count: " + this.rowCount
|
return "Device type '" + this.deviceType + "' Device Name '" + this.deviceName + "' row count: " + this.rowCount
|
||||||
+ " Owner role '" + this.ownerRole + "' owner pattern '" + this.ownerPattern + "' ownership "
|
+ " Owner role '" + this.ownerRole + "' owner pattern '" + this.ownerPattern + "' ownership "
|
||||||
+ this.ownership + "' Status '" + this.statusList + "' owner '" + this.owner + "' groupId: " + this.groupId
|
+ this.ownership + "' Status '" + this.statusList + "' owner '" + this.owner + "' groupId: " + this.groupId
|
||||||
+ " start index: " + this.startIndex;
|
+ " start index: " + this.startIndex + ", SortColumns: " + this.sortColumn;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2023, Entgra (pvt) Ltd. (https://entgra.io) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Entgra (Pvt) Ltd. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.common;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class holds required parameters for a querying a sort by column in pagination.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SortColumn {
|
||||||
|
String name;
|
||||||
|
SortColumn.types type;
|
||||||
|
|
||||||
|
public enum types {
|
||||||
|
ASC, DESC
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ColumnName setter method
|
||||||
|
* @param name of the column
|
||||||
|
*/
|
||||||
|
public void setName(String name) { this.name = name; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the name of the column
|
||||||
|
* @return name
|
||||||
|
*/
|
||||||
|
public String getName() { return name; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Column sort type
|
||||||
|
* @param type of sort as ASC or DESC
|
||||||
|
*/
|
||||||
|
public void setType(SortColumn.types type) { this.type = type; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get column sort type
|
||||||
|
* @return type of sort
|
||||||
|
*/
|
||||||
|
public SortColumn.types getType() { return type; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Column Name - " + this.name + ", Type - " + this.type ;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user