11import React , { useEffect , useState } from 'react' ;
2- import { Table , TableBody , TableHeader , TableVariant } from '@patternfly/react-table' ;
32import {
43 Badge ,
4+ Button ,
55 Bullseye ,
66 EmptyState ,
77 EmptyStateBody ,
@@ -30,6 +30,10 @@ import {
3030import { useTranslation } from 'react-i18next' ;
3131import { useFetchTask } from '@app/services/tasksHook' ;
3232import { ExecuteTasks } from '@app/Tasks/ExecuteTasks' ;
33+ import { ConsoleServices } from '@services/ConsoleServices' ;
34+ import { ConsoleACL } from '@services/securityService' ;
35+ import { useConnectedUser } from '@app/services/userManagementHook' ;
36+ import { CreateTask } from '@app/Tasks/CreateTask' ;
3337
3438const TasksTableDisplay = ( props : { setTasksCount : ( number ) => void ; isVisible : boolean } ) => {
3539 const { tasks, loading, error, reload } = useFetchTask ( ) ;
@@ -40,11 +44,13 @@ const TasksTableDisplay = (props: { setTasksCount: (number) => void; isVisible:
4044 } ) ;
4145 const [ rows , setRows ] = useState < ( string | any ) [ ] > ( [ ] ) ;
4246 const [ taskToExecute , setTaskToExecute ] = useState < Task > ( ) ;
47+ const [ isCreateTask , setIsCreateTask ] = useState ( false ) ;
4348 const { t } = useTranslation ( ) ;
4449 const brandname = t ( 'brandname.brandname' ) ;
50+ const { connectedUser } = useConnectedUser ( ) ;
4551
4652 const columnNames = {
47- name : t ( 'cache-managers.tasks.task- name' ) ,
53+ name : t ( 'cache-managers.tasks.name' ) ,
4854 type : t ( 'cache-managers.tasks.task-type' ) ,
4955 context : t ( 'cache-managers.tasks.context-name' ) ,
5056 operation : t ( 'cache-managers.tasks.operation-name' ) ,
@@ -135,14 +141,28 @@ const TasksTableDisplay = (props: { setTasksCount: (number) => void; isVisible:
135141 ) ;
136142 } ;
137143
144+ const buildCreateTaskButton = ( ) => {
145+ if ( ! ConsoleServices . security ( ) . hasConsoleACL ( ConsoleACL . CREATE , connectedUser ) ) {
146+ return < ToolbarItem /> ;
147+ }
148+ return (
149+ < React . Fragment >
150+ < ToolbarItem >
151+ < Button onClick = { ( ) => setIsCreateTask ( ! isCreateTask ) } > Add task</ Button >
152+ </ ToolbarItem >
153+ </ React . Fragment >
154+ ) ;
155+ } ;
156+
138157 if ( ! props . isVisible ) {
139158 return < span /> ;
140159 }
141160
142161 return (
143162 < React . Fragment >
144- < Toolbar id = "counters -table-toolbar" >
163+ < Toolbar id = "task -table-toolbar" >
145164 < ToolbarContent >
165+ { buildCreateTaskButton ( ) }
146166 < ToolbarItem variant = { ToolbarItemVariant . pagination } >
147167 < Pagination
148168 itemCount = { filteredTasks . length }
@@ -213,6 +233,14 @@ const TasksTableDisplay = (props: { setTasksCount: (number) => void; isVisible:
213233 reload ( ) ;
214234 } }
215235 />
236+ < CreateTask
237+ isModalOpen = { isCreateTask }
238+ submitModal = { ( ) => {
239+ reload ( ) ;
240+ setIsCreateTask ( false ) ;
241+ } }
242+ closeModal = { ( ) => setIsCreateTask ( false ) }
243+ />
216244 </ React . Fragment >
217245 ) ;
218246} ;
0 commit comments