Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scheduling frontend #700

Merged
merged 44 commits into from
Jul 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
cfe2164
remove usage of `any`
koonpeng Mar 7, 2023
074a920
add recurring ui to create task form
koonpeng Mar 8, 2023
5725273
disable scheduling for batch upload; pass schedule to submitTasks cb
koonpeng Mar 8, 2023
50584fa
wip adding calender ui
koonpeng Mar 8, 2023
a396394
add start_from; remove next_run
koonpeng Mar 8, 2023
82aa49f
convert recurring days to api schedule
koonpeng Mar 8, 2023
8ac0c78
add once param
koonpeng Mar 8, 2023
772f38b
use once schedule when it is not recurring
koonpeng Mar 8, 2023
7072567
use scheduled task endpoint
koonpeng Mar 17, 2023
f350824
allow schedule if at least 1 job can be run
koonpeng Mar 23, 2023
bfc7168
Merge remote-tracking branch 'origin/main' into kp/scheduling-frontend
koonpeng Mar 23, 2023
6fb8962
add start_from and until query
koonpeng Mar 23, 2023
b75b68d
add start_from and until docs
koonpeng Mar 23, 2023
e319844
change start_from and until to start_before and until_after
koonpeng Mar 23, 2023
8a2a35c
fix merge conflicts
koonpeng Mar 23, 2023
26d7fbf
remove once option
koonpeng Mar 24, 2023
3ec5a1e
use old task dispatch for immediate tasks
koonpeng Mar 24, 2023
1695f97
first successful sending schedule from frontend
koonpeng Mar 27, 2023
f36d64b
fix wrong time being returned
koonpeng Mar 28, 2023
b72b66a
calendar working but not refreshing when tasks are created/deleted
koonpeng Mar 29, 2023
73a25ae
workaround lack of refresh by remounting new instance
koonpeng Mar 30, 2023
91631e0
options for scheduling is now on 2nd view
koonpeng Apr 20, 2023
3bf6076
Merge remote-tracking branch 'origin/main' into kp/scheduling-frontend
koonpeng Apr 21, 2023
85c37b7
Merge branch 'main' into kp/scheduling-frontend
aaronchongth Jun 6, 2023
8d02736
Separate queue and calendar to be sub tabs under Task microapp
aaronchongth Jun 6, 2023
7db4f32
Fix unsubscribe access vs call
aaronchongth Jun 6, 2023
40bb50e
Resolved conflicted use of Dialog vs ConfirmationDialog
aaronchongth Jun 14, 2023
62ae8c6
Use Chip instead of Button, refactored submission
aaronchongth Jun 16, 2023
a513037
Refreshing task queue table after tasks have been submitted
aaronchongth Jun 19, 2023
5730a9f
Minimal scheduling dialog created
aaronchongth Jun 19, 2023
b51df94
Debugging scheduling range errors
aaronchongth Jun 20, 2023
49bb405
Fixed Date assignment as copy
aaronchongth Jun 20, 2023
b6a7bdb
Using startOfMinute and endOfMinute for schedule start and end time t…
aaronchongth Jun 20, 2023
f6cfd7e
Time of scheduled tasks seem to be fixed
aaronchongth Jun 20, 2023
5678cc3
api-server lint
aaronchongth Jun 20, 2023
9190e7d
react-components, lint
aaronchongth Jun 20, 2023
a841b8e
Unified task app refresh counter to be used for queue table and sched…
aaronchongth Jun 20, 2023
d156b20
Add job tag and fix delete job bug
Angatupyry Jun 27, 2023
c165fc5
Add return data type in get function
Angatupyry Jun 27, 2023
d452d7a
Changing delete order
Angatupyry Jun 27, 2023
17d1201
Adding getter for protected id member
aaronchongth Jun 30, 2023
31c250f
Revert use of single global client for tests, as concurrency with cli…
aaronchongth Jun 30, 2023
3189fca
Lint and fix e2e test
aaronchongth Jun 30, 2023
dc3cd88
Adding aria-label to submit button for e2e test
aaronchongth Jun 30, 2023
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
83 changes: 64 additions & 19 deletions packages/api-client/lib/openapi/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -257,39 +257,39 @@ export interface ApiServerModelsTortoiseModelsAlertsAlertLeaf {
/**
*
* @export
* @interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf
* @interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTask
*/
export interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf {
export interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTask {
/**
*
* @type {number}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask
*/
id: number;
/**
*
* @type {any}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask
*/
task_request?: any;
/**
*
* @type {string}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask
*/
created_by: string;
/**
*
* @type {string}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask
*/
last_ran?: string | null;
/**
*
* @type {string}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf
* @type {Array<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf>}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTask
*/
next_run?: string | null;
schedules: Array<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf>;
}
/**
* The schedules for a scheduled task request.<br/>A scheduled task may have multiple schedules.
Expand All @@ -305,10 +305,16 @@ export interface ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskSchedule
every?: number | null;
/**
*
* @type {number}
* @type {string}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf
*/
start_from?: string | null;
/**
*
* @type {string}
* @memberof ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskScheduleLeaf
*/
to?: number | null;
until?: string | null;
/**
* Monday: monday<br/>Tuesday: tuesday<br/>Wednesday: wednesday<br/>Thursday: thursday<br/>Friday: friday<br/>Saturday: saturday<br/>Sunday: sunday<br/>Day: day<br/>Hour: hour<br/>Minute: minute
* @type {string}
Expand Down Expand Up @@ -7075,18 +7081,26 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration
/**
*
* @summary Get Scheduled Tasks
* @param {string} startBefore Only return scheduled tasks that start before given timestamp
* @param {string} untilAfter Only return scheduled tasks that stop after given timestamp
* @param {number} [limit] defaults to 100
* @param {number} [offset] defaults to 0
* @param {string} [orderBy] common separated list of fields to order by, prefix with \&#39;-\&#39; to sort descendingly.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getScheduledTasksScheduledTasksGet: async (
startBefore: string,
untilAfter: string,
limit?: number,
offset?: number,
orderBy?: string,
options: AxiosRequestConfig = {},
): Promise<RequestArgs> => {
// verify required parameter 'startBefore' is not null or undefined
assertParamExists('getScheduledTasksScheduledTasksGet', 'startBefore', startBefore);
// verify required parameter 'untilAfter' is not null or undefined
assertParamExists('getScheduledTasksScheduledTasksGet', 'untilAfter', untilAfter);
const localVarPath = `/scheduled_tasks`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
Expand All @@ -7099,6 +7113,16 @@ export const TasksApiAxiosParamCreator = function (configuration?: Configuration
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;

if (startBefore !== undefined) {
localVarQueryParameter['start_before'] =
(startBefore as any) instanceof Date ? (startBefore as any).toISOString() : startBefore;
}

if (untilAfter !== undefined) {
localVarQueryParameter['until_after'] =
(untilAfter as any) instanceof Date ? (untilAfter as any).toISOString() : untilAfter;
}

if (limit !== undefined) {
localVarQueryParameter['limit'] = limit;
}
Expand Down Expand Up @@ -8005,7 +8029,7 @@ export const TasksApiFp = function (configuration?: Configuration) {
(
axios?: AxiosInstance,
basePath?: string,
) => AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf>
) => AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTask>
> {
const localVarAxiosArgs =
await localVarAxiosParamCreator.getScheduledTaskScheduledTasksTaskIdGet(taskId, options);
Expand All @@ -8014,13 +8038,17 @@ export const TasksApiFp = function (configuration?: Configuration) {
/**
*
* @summary Get Scheduled Tasks
* @param {string} startBefore Only return scheduled tasks that start before given timestamp
* @param {string} untilAfter Only return scheduled tasks that stop after given timestamp
* @param {number} [limit] defaults to 100
* @param {number} [offset] defaults to 0
* @param {string} [orderBy] common separated list of fields to order by, prefix with \&#39;-\&#39; to sort descendingly.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async getScheduledTasksScheduledTasksGet(
startBefore: string,
untilAfter: string,
limit?: number,
offset?: number,
orderBy?: string,
Expand All @@ -8029,9 +8057,11 @@ export const TasksApiFp = function (configuration?: Configuration) {
(
axios?: AxiosInstance,
basePath?: string,
) => AxiosPromise<Array<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf>>
) => AxiosPromise<Array<ApiServerModelsTortoiseModelsScheduledTaskScheduledTask>>
> {
const localVarAxiosArgs = await localVarAxiosParamCreator.getScheduledTasksScheduledTasksGet(
startBefore,
untilAfter,
limit,
offset,
orderBy,
Expand Down Expand Up @@ -8255,7 +8285,7 @@ export const TasksApiFp = function (configuration?: Configuration) {
(
axios?: AxiosInstance,
basePath?: string,
) => AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf>
) => AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTask>
> {
const localVarAxiosArgs = await localVarAxiosParamCreator.postScheduledTaskScheduledTasksPost(
postScheduledTaskRequest,
Expand Down Expand Up @@ -8419,28 +8449,39 @@ export const TasksApiFactory = function (
getScheduledTaskScheduledTasksTaskIdGet(
taskId: number,
options?: any,
): AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf> {
): AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTask> {
return localVarFp
.getScheduledTaskScheduledTasksTaskIdGet(taskId, options)
.then((request) => request(axios, basePath));
},
/**
*
* @summary Get Scheduled Tasks
* @param {string} startBefore Only return scheduled tasks that start before given timestamp
* @param {string} untilAfter Only return scheduled tasks that stop after given timestamp
* @param {number} [limit] defaults to 100
* @param {number} [offset] defaults to 0
* @param {string} [orderBy] common separated list of fields to order by, prefix with \&#39;-\&#39; to sort descendingly.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
getScheduledTasksScheduledTasksGet(
startBefore: string,
untilAfter: string,
limit?: number,
offset?: number,
orderBy?: string,
options?: any,
): AxiosPromise<Array<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf>> {
): AxiosPromise<Array<ApiServerModelsTortoiseModelsScheduledTaskScheduledTask>> {
return localVarFp
.getScheduledTasksScheduledTasksGet(limit, offset, orderBy, options)
.getScheduledTasksScheduledTasksGet(
startBefore,
untilAfter,
limit,
offset,
orderBy,
options,
)
.then((request) => request(axios, basePath));
},
/**
Expand Down Expand Up @@ -8617,7 +8658,7 @@ export const TasksApiFactory = function (
postScheduledTaskScheduledTasksPost(
postScheduledTaskRequest: PostScheduledTaskRequest,
options?: any,
): AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTaskLeaf> {
): AxiosPromise<ApiServerModelsTortoiseModelsScheduledTaskScheduledTask> {
return localVarFp
.postScheduledTaskScheduledTasksPost(postScheduledTaskRequest, options)
.then((request) => request(axios, basePath));
Expand Down Expand Up @@ -8780,6 +8821,8 @@ export class TasksApi extends BaseAPI {
/**
*
* @summary Get Scheduled Tasks
* @param {string} startBefore Only return scheduled tasks that start before given timestamp
* @param {string} untilAfter Only return scheduled tasks that stop after given timestamp
* @param {number} [limit] defaults to 100
* @param {number} [offset] defaults to 0
* @param {string} [orderBy] common separated list of fields to order by, prefix with \&#39;-\&#39; to sort descendingly.
Expand All @@ -8788,13 +8831,15 @@ export class TasksApi extends BaseAPI {
* @memberof TasksApi
*/
public getScheduledTasksScheduledTasksGet(
startBefore: string,
untilAfter: string,
limit?: number,
offset?: number,
orderBy?: string,
options?: AxiosRequestConfig,
) {
return TasksApiFp(this.configuration)
.getScheduledTasksScheduledTasksGet(limit, offset, orderBy, options)
.getScheduledTasksScheduledTasksGet(startBefore, untilAfter, limit, offset, orderBy, options)
.then((request) => request(this.axios, this.basePath));
}

Expand Down
2 changes: 1 addition & 1 deletion packages/api-client/lib/version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ import { version as rmfModelVer } from 'rmf-models';

export const version = {
rmfModels: rmfModelVer,
rmfServer: '30349c85b01862cdfb944bb94e4980065e817e0c',
rmfServer: '3bf607613b024426c272808520a476744fc80f3e',
openapiGenerator: '6.2.1',
};
56 changes: 45 additions & 11 deletions packages/api-client/schema/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,30 @@ export default {
summary: 'Get Scheduled Tasks',
operationId: 'get_scheduled_tasks_scheduled_tasks_get',
parameters: [
{
description: 'Only return scheduled tasks that start before given timestamp',
required: true,
schema: {
title: 'Start Before',
type: 'string',
description: 'Only return scheduled tasks that start before given timestamp',
format: 'date-time',
},
name: 'start_before',
in: 'query',
},
{
description: 'Only return scheduled tasks that stop after given timestamp',
required: true,
schema: {
title: 'Until After',
type: 'string',
description: 'Only return scheduled tasks that stop after given timestamp',
format: 'date-time',
},
name: 'until_after',
in: 'query',
},
{
description: 'defaults to 100',
required: false,
Expand Down Expand Up @@ -1010,11 +1034,7 @@ export default {
content: {
'application/json': {
schema: {
title: 'Response Get Scheduled Tasks Scheduled Tasks Get',
type: 'array',
items: {
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask.leaf',
},
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask_list',
},
},
},
Expand Down Expand Up @@ -1047,7 +1067,7 @@ export default {
content: {
'application/json': {
schema: {
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask.leaf',
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask',
},
},
},
Expand Down Expand Up @@ -1080,7 +1100,7 @@ export default {
content: {
'application/json': {
schema: {
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask.leaf',
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask',
},
},
},
Expand Down Expand Up @@ -3500,16 +3520,22 @@ export default {
additionalProperties: false,
description: 'General alert that can be triggered by events.',
},
'api_server.models.tortoise_models.scheduled_task.ScheduledTask.leaf': {
'api_server.models.tortoise_models.scheduled_task.ScheduledTask': {
title: 'ScheduledTask',
required: ['id', 'created_by'],
required: ['id', 'created_by', 'schedules'],
type: 'object',
properties: {
id: { title: 'Id', maximum: 2147483647.0, minimum: 1.0, type: 'integer' },
task_request: { title: 'Task Request' },
created_by: { title: 'Created By', maxLength: 255, type: 'string' },
last_ran: { title: 'Last Ran', type: 'string', format: 'date-time', nullable: true },
next_run: { title: 'Next Run', type: 'string', format: 'date-time', nullable: true },
schedules: {
title: 'Schedules',
type: 'array',
items: {
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTaskSchedule.leaf',
},
},
},
additionalProperties: false,
},
Expand All @@ -3525,7 +3551,8 @@ export default {
type: 'integer',
nullable: true,
},
to: { title: 'To', maximum: 32767.0, minimum: -32768.0, type: 'integer', nullable: true },
start_from: { title: 'Start From', type: 'string', format: 'date-time', nullable: true },
until: { title: 'Until', type: 'string', format: 'date-time', nullable: true },
period: {
title: 'Period',
maxLength: 9,
Expand All @@ -3539,6 +3566,13 @@ export default {
description:
'The schedules for a scheduled task request.<br/>A scheduled task may have multiple schedules.',
},
'api_server.models.tortoise_models.scheduled_task.ScheduledTask_list': {
title: 'ScheduledTask_list',
type: 'array',
items: {
$ref: '#/components/schemas/api_server.models.tortoise_models.scheduled_task.ScheduledTask',
},
},
'api_server.models.tortoise_models.tasks.TaskFavorite.leaf': {
title: 'TaskFavorite',
required: ['id', 'name', 'category', 'user'],
Expand Down
Loading
Loading