Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,9 @@ public Result<ArrayNode> queryWorkflowDefinitionSimpleList(@Parameter(hidden = t
@Parameter(name = "userId", description = "USER_ID", required = false, schema = @Schema(implementation = int.class, example = "100")),
@Parameter(name = "pageNo", description = "PAGE_NO", required = true, schema = @Schema(implementation = int.class, example = "1")),
@Parameter(name = "pageSize", description = "PAGE_SIZE", required = true, schema = @Schema(implementation = int.class, example = "10")),
@Parameter(name = "otherParamsJson", description = "OTHER_PARAMS_JSON", required = false, schema = @Schema(implementation = String.class))
@Parameter(name = "otherParamsJson", description = "OTHER_PARAMS_JSON", required = false, schema = @Schema(implementation = String.class)),
@Parameter(name = "sortField", description = "SORT_FIELD", required = false, schema = @Schema(implementation = String.class, example = "updateTime")),
@Parameter(name = "sortOrder", description = "SORT_ORDER", required = false, schema = @Schema(implementation = String.class, example = "desc"))
})
@GetMapping()
@ResponseStatus(HttpStatus.OK)
Expand All @@ -491,13 +493,15 @@ public Result<PageInfo<WorkflowDefinition>> queryWorkflowDefinitionListPaging(
@RequestParam(value = "otherParamsJson", required = false) String otherParamsJson,
@RequestParam(value = "userId", required = false, defaultValue = "0") Integer userId,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize) {
@RequestParam("pageSize") Integer pageSize,
@RequestParam(value = "sortField", required = false) String sortField,
@RequestParam(value = "sortOrder", required = false) String sortOrder) {

checkPageParams(pageNo, pageSize);
searchVal = ParameterUtils.handleEscapes(searchVal);

PageInfo<WorkflowDefinition> pageInfo = workflowDefinitionService.queryWorkflowDefinitionListPaging(
loginUser, projectCode, searchVal, otherParamsJson, userId, pageNo, pageSize);
loginUser, projectCode, searchVal, otherParamsJson, userId, pageNo, pageSize, sortField, sortOrder);
if (pageInfo != null && pageInfo.getTotalList() != null) {
pageInfo.setTotalList(pageInfo.getTotalList().stream()
.map(SensitivePropertyUtils::mask)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,9 @@ PageInfo<WorkflowDefinition> queryWorkflowDefinitionListPaging(User loginUser,
String otherParamsJson,
Integer userId,
Integer pageNo,
Integer pageSize);
Integer pageSize,
String sortField,
String sortOrder);

/**
* query detail of workflow definition
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -506,14 +506,16 @@ public PageInfo<WorkflowDefinition> queryWorkflowDefinitionListPaging(@NonNull U
String otherParamsJson,
Integer userId,
Integer pageNo,
Integer pageSize) {
Integer pageSize,
String sortField,
String sortOrder) {

// check user access for project
projectService.checkProjectAndAuthThrowException(loginUser, projectCode, WORKFLOW_DEFINITION);

PageListingResult<WorkflowDefinition> workflowDefinitionPageListingResult =
workflowDefinitionDao.listingWorkflowDefinition(
pageNo, pageSize, searchVal, userId, projectCode);
pageNo, pageSize, searchVal, userId, projectCode, sortField, sortOrder);
List<WorkflowDefinition> workflowDefinitions = workflowDefinitionPageListingResult.getRecords();

List<Long> workflowDefinitionCodes =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,10 +310,11 @@ public void testQueryWorkflowDefinitionListPaging() {

Mockito.when(
processDefinitionService.queryWorkflowDefinitionListPaging(user, projectCode, searchVal, "", userId,
pageNo, pageSize))
pageNo, pageSize, null, null))
.thenReturn(pageInfo);
Result<PageInfo<WorkflowDefinition>> response = workflowDefinitionController
.queryWorkflowDefinitionListPaging(user, projectCode, searchVal, "", userId, pageNo, pageSize);
.queryWorkflowDefinitionListPaging(user, projectCode, searchVal, "", userId, pageNo, pageSize,
null, null);

Assertions.assertTrue(response != null && response.isSuccess());
assertMaskedAndOriginalUnchanged(workflowDefinition.getGlobalParams(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,8 @@ public void testQueryWorkflowDefinitionListPaging() {
try {
doThrow(new ServiceException(Status.PROJECT_NOT_EXIST)).when(projectService)
.checkProjectAndAuthThrowException(user, projectCode, WORKFLOW_DEFINITION);
workflowDefinitionService.queryWorkflowDefinitionListPaging(user, projectCode, "", "", 1, 5, 0);
workflowDefinitionService.queryWorkflowDefinitionListPaging(user, projectCode, "", "", 1, 5, 0, null,
null);
} catch (ServiceException serviceException) {
Assertions.assertEquals(Status.PROJECT_NOT_EXIST.getCode(), serviceException.getCode());
}
Expand All @@ -363,7 +364,9 @@ public void testQueryWorkflowDefinitionListPaging() {
eq(10),
eq(""),
eq(1),
eq(projectCode))).thenReturn(pageListingResult);
eq(projectCode),
any(),
any())).thenReturn(pageListingResult);
String user1 = "user1";
String user2 = "user2";
when(userDao.queryUserWithWorkflowDefinitionCode(processDefinitionCodes))
Expand Down Expand Up @@ -391,7 +394,9 @@ public void testQueryWorkflowDefinitionListPaging() {
"",
1,
0,
10);
10,
null,
null);
Assertions.assertNotNull(pageInfo);
WorkflowDefinition pd1 = pageInfo.getTotalList().stream()
.filter(pd -> pd.getCode() == processDefinitionCode1).findFirst().orElse(null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@ WorkflowDefinition queryByDefineName(@Param("projectCode") long projectCode,
IPage<WorkflowDefinition> queryDefineListPaging(IPage<WorkflowDefinition> page,
@Param("searchVal") String searchVal,
@Param("userId") int userId,
@Param("projectCode") long projectCode);
@Param("projectCode") long projectCode,
@Param("sortField") String sortField,
@Param("sortOrder") String sortOrder);

/**
* Filter workflow definitions
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ PageListingResult<WorkflowDefinition> listingWorkflowDefinition(
int pageSize,
@Nullable String searchVal,
int userId,
long projectCode);
long projectCode,
@Nullable String sortField,
@Nullable String sortOrder);

Optional<WorkflowDefinition> queryByCode(long code);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,11 @@ public WorkflowDefinitionDaoImpl(@NonNull WorkflowDefinitionMapper workflowDefin
@Override
public PageListingResult<WorkflowDefinition> listingWorkflowDefinition(int pageNumber, int pageSize,
String searchVal,
int userId, long projectCode) {
int userId, long projectCode,
String sortField, String sortOrder) {
Page<WorkflowDefinition> page = new Page<>(pageNumber, pageSize);
IPage<WorkflowDefinition> processDefinitions =
mybatisMapper.queryDefineListPaging(page, searchVal, userId, projectCode);
mybatisMapper.queryDefineListPaging(page, searchVal, userId, projectCode, sortField, sortOrder);

return PageListingResult.<WorkflowDefinition>builder()
.totalCount(processDefinitions.getTotal())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,29 @@
name like concat('%', #{searchVal}, '%') OR description like concat('%', #{searchVal}, '%')
)
</if>
order by update_time desc, id asc
order by
<choose>
<when test='sortField != null and "name".equals(sortField)'>
<choose>
<when test='sortOrder != null and "asc".equals(sortOrder)'>name asc</when>
<otherwise>name desc</otherwise>
</choose>
</when>
<when test='sortField != null and "createTime".equals(sortField)'>
<choose>
<when test='sortOrder != null and "asc".equals(sortOrder)'>create_time asc</when>
<otherwise>create_time desc</otherwise>
</choose>
</when>
<when test='sortField != null and "updateTime".equals(sortField)'>
<choose>
<when test='sortOrder != null and "asc".equals(sortOrder)'>update_time asc</when>
<otherwise>update_time desc</otherwise>
</choose>
</when>
<otherwise>update_time desc</otherwise>
</choose>
, id asc
</select>
<select id="filterWorkflowDefinition"
parameterType="org.apache.dolphinscheduler.dao.entity.WorkflowDefinition"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,15 +236,74 @@
}

/**
* test page
* Insert three definitions whose name, createTime and updateTime each yield a
* different, verifiable ordering, then assert the returned row order for every
* supported sortField/sortOrder combination, the default (no-sort) path, and the
* invalid-field fallback path. Exercises the ORDER BY whitelist in
* {@code queryDefineListPaging} against a real H2 mapper.
*/
@Test
public void testQueryDefineListPaging() {
insertOne("def 1");
Page<WorkflowDefinition> page = new Page(1, 3);
IPage<WorkflowDefinition> processDefinitionIPage =
workflowDefinitionMapper.queryDefineListPaging(page, "def", 101, 1010L);
Assertions.assertNotEquals(0, processDefinitionIPage.getTotal());
// Fixed absolute instants so the create/update orderings are distinct and
// independent of the test machine's timezone. wf-gamma is updated last on
// purpose so update_time order differs from create_time order.
// wf-gamma: create base+0, update base+300s (update newest)
// wf-alpha: create base+60s, update base+60s
// wf-beta: create base+120s, update base+120s
long base = 1_700_000_000_000L;
insertWithTimes("wf-gamma", base, base + 300_000L);
insertWithTimes("wf-alpha", base + 60_000L, base + 60_000L);
insertWithTimes("wf-beta", base + 120_000L, base + 120_000L);

// default (no sort) -> update_time desc, id asc
Assertions.assertEquals(List.of("wf-gamma", "wf-beta", "wf-alpha"),

Check failure on line 259 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 259 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 259 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 259 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 259 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging(null, null)));
// name asc / desc
Assertions.assertEquals(List.of("wf-alpha", "wf-beta", "wf-gamma"),

Check failure on line 262 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 262 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 262 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 262 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 262 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("name", "asc")));
Assertions.assertEquals(List.of("wf-gamma", "wf-beta", "wf-alpha"),

Check failure on line 264 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 264 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 264 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 264 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 264 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("name", "desc")));
// createTime asc / desc
Assertions.assertEquals(List.of("wf-gamma", "wf-alpha", "wf-beta"),

Check failure on line 267 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 267 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 267 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 267 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 267 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("createTime", "asc")));
Assertions.assertEquals(List.of("wf-beta", "wf-alpha", "wf-gamma"),

Check failure on line 269 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 269 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 269 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 269 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 269 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("createTime", "desc")));
// updateTime asc / desc
Assertions.assertEquals(List.of("wf-alpha", "wf-beta", "wf-gamma"),

Check failure on line 272 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 272 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 272 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 272 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 272 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("updateTime", "asc")));
Assertions.assertEquals(List.of("wf-gamma", "wf-beta", "wf-alpha"),

Check failure on line 274 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 274 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 274 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 274 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 274 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("updateTime", "desc")));
// invalid sortField/sortOrder -> fallback to default (update_time desc, id asc)
Assertions.assertEquals(List.of("wf-gamma", "wf-beta", "wf-alpha"),

Check failure on line 277 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 277 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 277 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 277 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 277 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("foo", "bar")));
// invalid sortField with a valid sortOrder=asc must still yield the
// complete default (update_time desc, id asc), not update_time asc
Assertions.assertEquals(List.of("wf-gamma", "wf-beta", "wf-alpha"),

Check failure on line 281 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 281 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 281 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 281 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 281 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("foo", "asc")));
// sortField without sortOrder -> default direction desc
Assertions.assertEquals(List.of("wf-gamma", "wf-beta", "wf-alpha"),

Check failure on line 284 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-master | Java 8)

cannot find symbol

Check failure on line 284 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 8)

cannot find symbol

Check failure on line 284 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-tools | Java 8)

cannot find symbol

Check failure on line 284 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 8)

cannot find symbol

Check failure on line 284 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-api | Java 8)

cannot find symbol
definitionNames(queryPaging("name", null)));
}

private IPage<WorkflowDefinition> queryPaging(String sortField, String sortOrder) {
return workflowDefinitionMapper.queryDefineListPaging(
new Page<>(1, 10), "", 101, 1010L, sortField, sortOrder);
}

private List<String> definitionNames(IPage<WorkflowDefinition> page) {
return page.getRecords().stream().map(WorkflowDefinition::getName).toList();

Check failure on line 294 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 11)

cannot find symbol

Check failure on line 294 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-service | Java 11)

cannot find symbol

Check failure on line 294 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 11)

cannot find symbol

Check failure on line 294 in dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/WorkflowDefinitionMapperTest.java

View workflow job for this annotation

GitHub Actions / Unit-Test (dolphinscheduler-dao | Java 11)

cannot find symbol
}

private WorkflowDefinition insertWithTimes(String name, long createTimeMillis, long updateTimeMillis) {
WorkflowDefinition workflowDefinition = new WorkflowDefinition();
workflowDefinition.setCode(atomicLong.getAndIncrement());
workflowDefinition.setName(name);
workflowDefinition.setProjectCode(1010L);
workflowDefinition.setUserId(101);
workflowDefinition.setCreateTime(new Date(createTimeMillis));
workflowDefinition.setUpdateTime(new Date(updateTimeMillis));
workflowDefinitionMapper.insert(workflowDefinition);
return workflowDefinition;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ interface PageReq {
interface ListReq extends PageReq {
searchVal?: string
userId?: number
sortField?: string
sortOrder?: string
}

interface WorkflowDefinitionReq {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ export default defineComponent({
})
}

const handleSorterChange = (sorter: any) => {
variables.sorter = sorter
variables.page = 1
requestData()
}

const handleUpdateList = () => {
requestData()
}
Expand Down Expand Up @@ -129,6 +135,7 @@ export default defineComponent({
handleSearch,
onClearSearch,
handleUpdateList,
handleSorterChange,
createDefinition,
createDefinitionDynamic,
handleChangePageSize,
Expand Down Expand Up @@ -185,6 +192,8 @@ export default defineComponent({
<Card title={t('project.workflow.workflow_definition')}>
<NSpace vertical>
<NDataTable
remote
onUpdateSorter={this.handleSorterChange}
loading={loadingRef}
rowKey={(row) => row.code}
columns={this.columns}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,11 @@ import {
} from '@/common/column-width-config'
import type { IDefinitionParam } from './types'
import type { Router } from 'vue-router'
import type { TableColumns, RowKey } from 'naive-ui/es/data-table/src/interface'
import type {
TableColumns,
RowKey,
SortState
} from 'naive-ui/es/data-table/src/interface'
import { useDependencies } from '../../components/dependencies/use-dependencies'

export function useTable() {
Expand All @@ -60,6 +64,7 @@ export function useTable() {
page: ref(1),
pageSize: ref(10),
searchVal: ref(),
sorter: ref<SortState | null>(null),
totalPage: ref(1),
totalCount: ref(0),
timingType: ref('create'),
Expand Down Expand Up @@ -96,6 +101,7 @@ export function useTable() {
{
title: t('project.workflow.workflow_name'),
key: 'name',
sorter: 'default',
className: 'workflow-name',
...COLUMN_WIDTH_CONFIG['name'],
titleColSpan: 3,
Expand Down Expand Up @@ -238,11 +244,13 @@ export function useTable() {
{
title: t('project.workflow.create_time'),
key: 'createTime',
sorter: 'default',
...COLUMN_WIDTH_CONFIG['time']
},
{
title: t('project.workflow.update_time'),
key: 'updateTime',
sorter: 'default',
...COLUMN_WIDTH_CONFIG['time']
},
{
Expand Down Expand Up @@ -507,8 +515,17 @@ export function useTable() {
if (variables.loadingRef) return
variables.loadingRef = true
// Always release loading lock, even when request fails.
const sorter = variables.sorter
const sortField =
sorter && sorter.order ? String(sorter.columnKey) : undefined
const sortOrder =
sorter && sorter.order === 'ascend'
? 'asc'
: sorter && sorter.order === 'descend'
? 'desc'
: undefined
const queryStatePromise = queryListPaging(
{ ...params },
{ ...params, sortField, sortOrder },
variables.projectCode
)
.then((res: any) => {
Expand Down
Loading