Skip to content

Commit

Permalink
feat: add edit sequence route (#550)
Browse files Browse the repository at this point in the history
* feat: add use sequence by id hook

* chore: add edit sequence page base

* chore: add sequence edit form base

* chore: add sequence edit route

* chore: add sequence edit form container export

* chore: update edit sequence form container

* chore(translations): update translations

* chore: add selected values to existing queueables

* chore: collapse sequence order field to single component

* style: fix formatting

* chore: fix linting errors

* chore: rename selectedValues

* chore: remove placeholder tests

* chore: simplify construction of options

* fix: remove lifting of pristine state

* chore: add update queue hook

* fix: remove unnecessary test

* chore: remove top back to overview button

* test: add sequence edit test

* test: add update queue test

* test: add integration tests for edit route

* chore: align sequence edit title with job edit title

* chore: add delete sequence button

* test: add delete sequence modal test

* test: add delete sequence button test

* test: add sequence edit form container test

* chore: add translations

* fix: add missing history import

* fix: use correct endpoint for delete

* refactor: simplify creation of initialValues

* fix: use correct endpoint for update
  • Loading branch information
ismay authored Aug 9, 2023
1 parent eb4010e commit d5fa50c
Show file tree
Hide file tree
Showing 73 changed files with 1,456 additions and 564 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[
{
"name": "one",
"type": "Sequence",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED",
"enabled": true,
"configurable": true,
"sequence": [
{
"id": "RWcaltWoKuN",
"name": "1",
"type": "DATA_INTEGRITY",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED"
},
{
"id": "p2HCjnAmSNE",
"name": "2",
"type": "MONITORING",
"status": "SCHEDULED"
}
]
},
{
"name": "3",
"type": "DISABLE_INACTIVE_USERS",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED",
"enabled": true,
"configurable": true,
"sequence": [
{
"id": "xkxSSOLKc7X",
"name": "3",
"type": "DISABLE_INACTIVE_USERS",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED"
}
]
},
{
"name": "4",
"type": "MATERIALIZED_SQL_VIEW_UPDATE",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED",
"enabled": true,
"configurable": true,
"sequence": [
{
"id": "RRKO5XbxBz4",
"name": "4",
"type": "MATERIALIZED_SQL_VIEW_UPDATE",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED"
}
]
}
]
27 changes: 27 additions & 0 deletions cypress/fixtures/edit-sequence/sequence.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[
{
"name": "one",
"type": "Sequence",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED",
"enabled": true,
"configurable": true,
"sequence": [
{
"id": "RWcaltWoKuN",
"name": "1",
"type": "DATA_INTEGRITY",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED"
},
{
"id": "p2HCjnAmSNE",
"name": "2",
"type": "MONITORING",
"status": "SCHEDULED"
}
]
}
]
40 changes: 40 additions & 0 deletions cypress/fixtures/edit-sequence/two-unqueued-jobs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[
{
"name": "3",
"type": "DISABLE_INACTIVE_USERS",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED",
"enabled": true,
"configurable": true,
"sequence": [
{
"id": "xkxSSOLKc7X",
"name": "3",
"type": "DISABLE_INACTIVE_USERS",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED"
}
]
},
{
"name": "4",
"type": "MATERIALIZED_SQL_VIEW_UPDATE",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED",
"enabled": true,
"configurable": true,
"sequence": [
{
"id": "RRKO5XbxBz4",
"name": "4",
"type": "MATERIALIZED_SQL_VIEW_UPDATE",
"cronExpression": "0 0 3 ? * MON",
"nextExecutionTime": "2023-08-07T03:00:00.000",
"status": "SCHEDULED"
}
]
}
]
234 changes: 117 additions & 117 deletions cypress/fixtures/network/41/static_resources.json

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions cypress/fixtures/network/41/summary.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"count": 994,
"totalResponseSize": 1015719,
"duplicates": 884,
"count": 951,
"totalResponseSize": 1022634,
"duplicates": 840,
"nonDeterministicResponses": 91,
"apiVersion": "41",
"fixtureFiles": [
Expand All @@ -16,6 +16,7 @@
"users_should_be_able_to_view_jobs.json",
"users_should_be_able_to_edit_jobs_that_take_parameters.json",
"users_should_be_able_to_edit_jobs_without_parameters.json",
"users_should_be_able_to_edit_a_sequence.json",
"jobs_can_be_filtered.json",
"system_job_visibility_can_be_toggled.json",
"user_jobs_can_be_enabled_and_disabled.json",
Expand Down
28 changes: 14 additions & 14 deletions cypress/fixtures/network/41/user_job_actions.json

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@
"sec-fetch-mode": "cors"
},
"statusCode": 200,
"responseBody": "[{\"name\":\"User account expiry alert\",\"type\":\"ACCOUNT_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"fUWM1At1TUx\",\"name\":\"User account expiry alert\",\"type\":\"ACCOUNT_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"File resource clean up\",\"type\":\"FILE_RESOURCE_CLEANUP\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"pd6O228pqr0\",\"name\":\"File resource clean up\",\"type\":\"FILE_RESOURCE_CLEANUP\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Data statistics\",\"type\":\"DATA_STATISTICS\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"BFa3jDsbtdO\",\"name\":\"Data statistics\",\"type\":\"DATA_STATISTICS\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Remove expired or used reserved values\",\"type\":\"REMOVE_USED_OR_EXPIRED_RESERVED_VALUES\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"uwWCT2BMmlq\",\"name\":\"Remove expired or used reserved values\",\"type\":\"REMOVE_USED_OR_EXPIRED_RESERVED_VALUES\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Dataset notification\",\"type\":\"DATA_SET_NOTIFICATION\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"YvAwAmrqAtN\",\"name\":\"Dataset notification\",\"type\":\"DATA_SET_NOTIFICATION\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Remove lock exceptions older than 6 months\",\"type\":\"LOCK_EXCEPTION_CLEANUP\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":true,\"sequence\":[{\"id\":\"OQ9KeLgqy20\",\"name\":\"Remove lock exceptions older than 6 months\",\"type\":\"LOCK_EXCEPTION_CLEANUP\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Credentials expiry alert\",\"type\":\"CREDENTIALS_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"sHMedQF7VYa\",\"name\":\"Credentials expiry alert\",\"type\":\"CREDENTIALS_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-06-20T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"System version update check notification\",\"type\":\"SYSTEM_VERSION_UPDATE_CHECK\",\"cronExpression\":\"44 8 3 ? * *\",\"nextExecutionTime\":\"2023-06-20T03:08:44.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"vt21671bgno\",\"name\":\"System version update check notification\",\"type\":\"SYSTEM_VERSION_UPDATE_CHECK\",\"cronExpression\":\"44 8 3 ? * *\",\"nextExecutionTime\":\"2023-06-20T03:08:44.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Validation result notification\",\"type\":\"VALIDATION_RESULTS_NOTIFICATION\",\"cronExpression\":\"0 0 7 * * ?\",\"nextExecutionTime\":\"2023-06-20T07:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"Js3vHn2AVuG\",\"name\":\"Validation result notification\",\"type\":\"VALIDATION_RESULTS_NOTIFICATION\",\"cronExpression\":\"0 0 7 * * ?\",\"nextExecutionTime\":\"2023-06-20T07:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"2\",\"type\":\"RESOURCE_TABLE\",\"cronExpression\":\"0 0 3 ? * MON\",\"nextExecutionTime\":\"2023-06-26T03:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":true,\"sequence\":[{\"id\":\"vFpCA8dV8cT\",\"name\":\"2\",\"type\":\"RESOURCE_TABLE\",\"cronExpression\":\"0 0 3 ? * MON\",\"nextExecutionTime\":\"2023-06-26T03:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"1\",\"type\":\"PROGRAM_NOTIFICATIONS\",\"cronExpression\":\"0 0 3 ? * MON\",\"nextExecutionTime\":\"2023-06-26T03:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":true,\"sequence\":[{\"id\":\"TMddx5FxNgF\",\"name\":\"1\",\"type\":\"PROGRAM_NOTIFICATIONS\",\"cronExpression\":\"0 0 3 ? * MON\",\"nextExecutionTime\":\"2023-06-26T03:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Queue\",\"type\":\"Sequence\",\"cronExpression\":\"0 0 3 ? * MON\",\"nextExecutionTime\":\"2023-06-26T03:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":true,\"sequence\":[{\"id\":\"baeT2xCyDlW\",\"name\":\"123\",\"type\":\"LOCK_EXCEPTION_CLEANUP\",\"cronExpression\":\"0 0 3 ? * MON\",\"nextExecutionTime\":\"2023-06-26T03:00:00.000\",\"status\":\"SCHEDULED\"},{\"id\":\"Nx6d0HgSi5l\",\"name\":\"asdf\",\"type\":\"EVENT_PROGRAMS_DATA_SYNC\",\"status\":\"SCHEDULED\"}]}]",
"responseSize": 4859,
"responseBody": "[{\"name\":\"User account expiry alert\",\"type\":\"ACCOUNT_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"fUWM1At1TUx\",\"name\":\"User account expiry alert\",\"type\":\"ACCOUNT_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"File resource clean up\",\"type\":\"FILE_RESOURCE_CLEANUP\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"pd6O228pqr0\",\"name\":\"File resource clean up\",\"type\":\"FILE_RESOURCE_CLEANUP\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Data statistics\",\"type\":\"DATA_STATISTICS\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"BFa3jDsbtdO\",\"name\":\"Data statistics\",\"type\":\"DATA_STATISTICS\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Remove expired or used reserved values\",\"type\":\"REMOVE_USED_OR_EXPIRED_RESERVED_VALUES\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"uwWCT2BMmlq\",\"name\":\"Remove expired or used reserved values\",\"type\":\"REMOVE_USED_OR_EXPIRED_RESERVED_VALUES\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Dataset notification\",\"type\":\"DATA_SET_NOTIFICATION\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"YvAwAmrqAtN\",\"name\":\"Dataset notification\",\"type\":\"DATA_SET_NOTIFICATION\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Remove lock exceptions older than 6 months\",\"type\":\"LOCK_EXCEPTION_CLEANUP\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":true,\"sequence\":[{\"id\":\"OQ9KeLgqy20\",\"name\":\"Remove lock exceptions older than 6 months\",\"type\":\"LOCK_EXCEPTION_CLEANUP\",\"cronExpression\":\"0 0 2 ? * *\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Credentials expiry alert\",\"type\":\"CREDENTIALS_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"sHMedQF7VYa\",\"name\":\"Credentials expiry alert\",\"type\":\"CREDENTIALS_EXPIRY_ALERT\",\"cronExpression\":\"0 0 2 * * ?\",\"nextExecutionTime\":\"2023-08-02T02:00:00.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"System version update check notification\",\"type\":\"SYSTEM_VERSION_UPDATE_CHECK\",\"cronExpression\":\"44 8 3 ? * *\",\"nextExecutionTime\":\"2023-08-02T03:08:44.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"vt21671bgno\",\"name\":\"System version update check notification\",\"type\":\"SYSTEM_VERSION_UPDATE_CHECK\",\"cronExpression\":\"44 8 3 ? * *\",\"nextExecutionTime\":\"2023-08-02T03:08:44.000\",\"status\":\"SCHEDULED\"}]},{\"name\":\"Validation result notification\",\"type\":\"VALIDATION_RESULTS_NOTIFICATION\",\"cronExpression\":\"0 0 7 * * ?\",\"nextExecutionTime\":\"2023-08-02T07:00:00.000\",\"status\":\"SCHEDULED\",\"enabled\":true,\"configurable\":false,\"sequence\":[{\"id\":\"Js3vHn2AVuG\",\"name\":\"Validation result notification\",\"type\":\"VALIDATION_RESULTS_NOTIFICATION\",\"cronExpression\":\"0 0 7 * * ?\",\"nextExecutionTime\":\"2023-08-02T07:00:00.000\",\"status\":\"SCHEDULED\"}]}]",
"responseSize": 3724,
"responseHeaders": {
"server": "nginx/1.23.0",
"content-type": "application/json;charset=UTF-8",
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
[
{
"path": "/api/41/systemSettings/helpPageLink",
"featureName": "Users should be able to edit a sequence",
"static": false,
"count": 1,
"nonDeterministic": false,
"method": "GET",
"requestBody": "",
"requestHeaders": {
"host": "debug.dhis2.org",
"connection": "keep-alive",
"accept": "application/json",
"origin": "http://localhost:3000",
"sec-fetch-site": "cross-site",
"sec-fetch-mode": "cors"
},
"statusCode": 200,
"responseBody": "{\"helpPageLink\":\"https://dhis2.github.io/dhis2-docs/master/en/user/html/dhis2_user_manual_en.html\"}",
"responseSize": 99,
"responseHeaders": {
"server": "nginx/1.23.0",
"content-type": "application/json;charset=UTF-8",
"transfer-encoding": "chunked",
"connection": "keep-alive",
"access-control-allow-credentials": "true",
"access-control-allow-origin": "http://localhost:3000",
"vary": "Origin",
"access-control-expose-headers": "ETag, Location",
"cache-control": "no-cache, private",
"x-content-type-options": "nosniff",
"x-xss-protection": "1; mode=block"
}
}
]
Loading

1 comment on commit d5fa50c

@dhis2-bot
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.