@campxdev/shared 1.10.77 → 1.10.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/Input/MultiSelect.tsx +0 -1
- package/src/components/Selectors/ClassRoomSelector.tsx +97 -0
- package/src/components/Selectors/CourseSelector.tsx +4 -2
- package/src/components/Selectors/DepartmentSelector.tsx +67 -0
- package/src/components/Selectors/FacultySelector.tsx +92 -0
- package/src/components/Selectors/FormSelectors/FormClassRoomSelector.tsx +50 -0
- package/src/components/Selectors/FormSelectors/FormCourseSelector.tsx +3 -0
- package/src/components/Selectors/FormSelectors/FormDepartmentSelector.tsx +49 -0
- package/src/components/Selectors/FormSelectors/FormFacultySelector.tsx +55 -0
- package/src/components/Selectors/FormSelectors/FormProgramSelector.tsx +4 -1
- package/src/components/Selectors/FormSelectors/MultiSelect/MultiFacultySelector.tsx +106 -0
- package/src/components/Selectors/ProgramSelector.tsx +4 -2
- package/src/components/Selectors/index.tsx +14 -0
- package/src/permissions/PermissionsStore.ts +356 -0
- package/src/shared-state/PermissionsStore.ts +8 -0
package/package.json
CHANGED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { useEffect, useState } from 'react'
|
|
3
|
+
import axios from '../../config/axios'
|
|
4
|
+
import { SingleSelect } from '../Input'
|
|
5
|
+
|
|
6
|
+
type ClassRoomSelectorProps = {
|
|
7
|
+
name?: string
|
|
8
|
+
label: string
|
|
9
|
+
filters?: { programId: number; courseId: number; batch: string }
|
|
10
|
+
required?: boolean
|
|
11
|
+
onChange?: (value: any) => void
|
|
12
|
+
allowAll?: boolean
|
|
13
|
+
error?: boolean
|
|
14
|
+
helperText?: string
|
|
15
|
+
api?: string
|
|
16
|
+
} & SelectProps
|
|
17
|
+
const ClassRoomSelector = (props: ClassRoomSelectorProps) => {
|
|
18
|
+
const {
|
|
19
|
+
name,
|
|
20
|
+
required = false,
|
|
21
|
+
label,
|
|
22
|
+
multiple = false,
|
|
23
|
+
filters,
|
|
24
|
+
allowAll = true,
|
|
25
|
+
api = '/square/classrooms/filters',
|
|
26
|
+
} = props
|
|
27
|
+
const [options, setOptions] = useState([])
|
|
28
|
+
const [prevProgramId, setPrevProgramId] = useState(null)
|
|
29
|
+
const [prevBatch, setPrevBatch] = useState(null)
|
|
30
|
+
const [prevCourseId, setPrevCourseId] = useState(null)
|
|
31
|
+
const handleOpen = () => {
|
|
32
|
+
if (filters) {
|
|
33
|
+
if (
|
|
34
|
+
(filters?.programId && filters?.programId !== prevProgramId) ||
|
|
35
|
+
(filters?.batch &&
|
|
36
|
+
filters?.batch !== prevBatch &&
|
|
37
|
+
filters?.programId) ||
|
|
38
|
+
(filters?.courseId && filters?.courseId !== prevCourseId)
|
|
39
|
+
) {
|
|
40
|
+
setOptions([])
|
|
41
|
+
axios
|
|
42
|
+
.get(api, {
|
|
43
|
+
params: filters,
|
|
44
|
+
})
|
|
45
|
+
.then((response) => {
|
|
46
|
+
setOptions(response.data)
|
|
47
|
+
setPrevProgramId(filters.programId)
|
|
48
|
+
setPrevBatch(filters.batch)
|
|
49
|
+
setPrevCourseId(filters.courseId)
|
|
50
|
+
})
|
|
51
|
+
.catch((error) => {
|
|
52
|
+
console.error('Error fetching data from the API:', error)
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
} else if (options.length === 0) {
|
|
56
|
+
axios
|
|
57
|
+
.get(api)
|
|
58
|
+
.then((response) => {
|
|
59
|
+
setOptions(response.data)
|
|
60
|
+
})
|
|
61
|
+
.catch((error) => {
|
|
62
|
+
console.error('Error fetching data from the API:', error)
|
|
63
|
+
})
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (props?.value && props.value != 'all') {
|
|
68
|
+
handleOpen()
|
|
69
|
+
}
|
|
70
|
+
}, [props.value])
|
|
71
|
+
|
|
72
|
+
const handleOptions =
|
|
73
|
+
options.length > 0
|
|
74
|
+
? [
|
|
75
|
+
...(allowAll ? [{ value: 'all', label: 'All' }] : []),
|
|
76
|
+
...options.map((item) => ({
|
|
77
|
+
label: `${item.name}`,
|
|
78
|
+
value: `${item.id}`,
|
|
79
|
+
})),
|
|
80
|
+
]
|
|
81
|
+
: allowAll
|
|
82
|
+
? [{ value: 'all', label: 'All' }]
|
|
83
|
+
: []
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<SingleSelect
|
|
87
|
+
name={name}
|
|
88
|
+
label={label}
|
|
89
|
+
required={required}
|
|
90
|
+
options={handleOptions}
|
|
91
|
+
onOpen={handleOpen}
|
|
92
|
+
defaultValue="all"
|
|
93
|
+
{...props}
|
|
94
|
+
/>
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
export default ClassRoomSelector
|
|
@@ -12,6 +12,7 @@ type CourseSelectorProps = {
|
|
|
12
12
|
error?: boolean
|
|
13
13
|
helperText?: string
|
|
14
14
|
api?: string
|
|
15
|
+
valueByUniqueId?: boolean
|
|
15
16
|
} & SelectProps
|
|
16
17
|
export default function CourseSelector(props: CourseSelectorProps) {
|
|
17
18
|
const {
|
|
@@ -20,7 +21,8 @@ export default function CourseSelector(props: CourseSelectorProps) {
|
|
|
20
21
|
label,
|
|
21
22
|
onChange,
|
|
22
23
|
allowAll = true,
|
|
23
|
-
|
|
24
|
+
valueByUniqueId = false,
|
|
25
|
+
api = '/paymentx/domain/courses',
|
|
24
26
|
} = props
|
|
25
27
|
const [options, setOptions] = useState([])
|
|
26
28
|
|
|
@@ -47,7 +49,7 @@ export default function CourseSelector(props: CourseSelectorProps) {
|
|
|
47
49
|
...(allowAll ? [{ value: 'all', label: 'All' }] : []),
|
|
48
50
|
...options.map((item) => ({
|
|
49
51
|
label: `${item.courseName} `,
|
|
50
|
-
value: `${item.id}`,
|
|
52
|
+
value: !valueByUniqueId ? `${item.id}` : `${item.uniqueId}`,
|
|
51
53
|
})),
|
|
52
54
|
]
|
|
53
55
|
: allowAll
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { useEffect, useState } from 'react'
|
|
3
|
+
import axios from '../../config/axios'
|
|
4
|
+
import { SingleSelect } from '../Input'
|
|
5
|
+
|
|
6
|
+
type DepartmentSelectorProps = {
|
|
7
|
+
name?: string
|
|
8
|
+
label: string
|
|
9
|
+
required?: boolean
|
|
10
|
+
onChange?: (value: any) => void
|
|
11
|
+
allowAll?: boolean
|
|
12
|
+
error?: boolean
|
|
13
|
+
helperText?: string
|
|
14
|
+
api?: string
|
|
15
|
+
} & SelectProps
|
|
16
|
+
export default function DepartmentSelector(props: DepartmentSelectorProps) {
|
|
17
|
+
const {
|
|
18
|
+
name,
|
|
19
|
+
required = false,
|
|
20
|
+
label,
|
|
21
|
+
onChange,
|
|
22
|
+
allowAll = true,
|
|
23
|
+
api = '/hrms/departments',
|
|
24
|
+
} = props
|
|
25
|
+
const [options, setOptions] = useState([])
|
|
26
|
+
|
|
27
|
+
const handleOpen = () => {
|
|
28
|
+
if (options.length === 0) {
|
|
29
|
+
axios
|
|
30
|
+
.get(api)
|
|
31
|
+
.then((response) => {
|
|
32
|
+
setOptions(response.data.data)
|
|
33
|
+
})
|
|
34
|
+
.catch((error) => {
|
|
35
|
+
console.error('Error fetching data from the API:', error)
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (props?.value && props.value != 'all') {
|
|
41
|
+
handleOpen()
|
|
42
|
+
}
|
|
43
|
+
}, [props.value])
|
|
44
|
+
const handleOptions =
|
|
45
|
+
options.length > 0
|
|
46
|
+
? [
|
|
47
|
+
...(allowAll ? [{ value: 'all', label: 'All' }] : []),
|
|
48
|
+
...options.map((item) => ({
|
|
49
|
+
label: `${item.name} `,
|
|
50
|
+
value: `${item._id}`,
|
|
51
|
+
})),
|
|
52
|
+
]
|
|
53
|
+
: allowAll
|
|
54
|
+
? [{ value: 'all', label: 'All' }]
|
|
55
|
+
: []
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<SingleSelect
|
|
59
|
+
name={name}
|
|
60
|
+
label={label}
|
|
61
|
+
required={required}
|
|
62
|
+
options={handleOptions}
|
|
63
|
+
onOpen={handleOpen}
|
|
64
|
+
{...props}
|
|
65
|
+
/>
|
|
66
|
+
)
|
|
67
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { useEffect, useState } from 'react'
|
|
3
|
+
import axios from '../../config/axios'
|
|
4
|
+
import { SingleSelect } from '../Input'
|
|
5
|
+
|
|
6
|
+
type FacultySelectorProps = {
|
|
7
|
+
name?: string
|
|
8
|
+
label: string
|
|
9
|
+
filters?: {
|
|
10
|
+
departmentId: number | string
|
|
11
|
+
isSearch: boolean
|
|
12
|
+
isActive: boolean
|
|
13
|
+
type: string
|
|
14
|
+
}
|
|
15
|
+
required?: boolean
|
|
16
|
+
onChange?: (value: any) => void
|
|
17
|
+
allowAll?: boolean
|
|
18
|
+
error?: boolean
|
|
19
|
+
helperText?: string
|
|
20
|
+
api?: string
|
|
21
|
+
} & SelectProps
|
|
22
|
+
const FacultySelector = (props: FacultySelectorProps) => {
|
|
23
|
+
const {
|
|
24
|
+
name,
|
|
25
|
+
required = false,
|
|
26
|
+
label,
|
|
27
|
+
multiple = false,
|
|
28
|
+
filters,
|
|
29
|
+
allowAll = true,
|
|
30
|
+
api = '/hrms/employees',
|
|
31
|
+
} = props
|
|
32
|
+
const [options, setOptions] = useState([])
|
|
33
|
+
const [prevDepartmentId, setPrevDepartmentId] = useState(null)
|
|
34
|
+
const handleOpen = () => {
|
|
35
|
+
if (filters) {
|
|
36
|
+
if (filters.departmentId && filters.departmentId !== prevDepartmentId) {
|
|
37
|
+
setOptions([])
|
|
38
|
+
axios
|
|
39
|
+
.get(api, {
|
|
40
|
+
params: filters,
|
|
41
|
+
})
|
|
42
|
+
.then((response) => {
|
|
43
|
+
setOptions(response.data.data)
|
|
44
|
+
setPrevDepartmentId(filters.departmentId)
|
|
45
|
+
})
|
|
46
|
+
.catch((error) => {
|
|
47
|
+
console.error('Error fetching data from the API:', error)
|
|
48
|
+
})
|
|
49
|
+
}
|
|
50
|
+
} else if (options.length === 0) {
|
|
51
|
+
axios
|
|
52
|
+
.get(api)
|
|
53
|
+
.then((response) => {
|
|
54
|
+
setOptions(response.data.data)
|
|
55
|
+
})
|
|
56
|
+
.catch((error) => {
|
|
57
|
+
console.error('Error fetching data from the API:', error)
|
|
58
|
+
})
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (props?.value && props.value != 'all') {
|
|
63
|
+
handleOpen()
|
|
64
|
+
}
|
|
65
|
+
}, [props.value])
|
|
66
|
+
|
|
67
|
+
const handleOptions =
|
|
68
|
+
options.length > 0
|
|
69
|
+
? [
|
|
70
|
+
...(allowAll ? [{ value: 'all', label: 'All' }] : []),
|
|
71
|
+
...options.map((item) => ({
|
|
72
|
+
label: `${item.fullName}`,
|
|
73
|
+
value: `${item.userId}`,
|
|
74
|
+
})),
|
|
75
|
+
]
|
|
76
|
+
: allowAll
|
|
77
|
+
? [{ value: 'all', label: 'All' }]
|
|
78
|
+
: []
|
|
79
|
+
|
|
80
|
+
return (
|
|
81
|
+
<SingleSelect
|
|
82
|
+
name={name}
|
|
83
|
+
label={label}
|
|
84
|
+
required={required}
|
|
85
|
+
options={handleOptions}
|
|
86
|
+
onOpen={handleOpen}
|
|
87
|
+
defaultValue="all"
|
|
88
|
+
{...props}
|
|
89
|
+
/>
|
|
90
|
+
)
|
|
91
|
+
}
|
|
92
|
+
export default FacultySelector
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { Controller } from 'react-hook-form'
|
|
3
|
+
import ClassRoomSelector from '../ClassRoomSelector'
|
|
4
|
+
|
|
5
|
+
type ClassRoomSelectorProps = {
|
|
6
|
+
control: any
|
|
7
|
+
name: string
|
|
8
|
+
label: string
|
|
9
|
+
required?: boolean
|
|
10
|
+
multiple?: boolean
|
|
11
|
+
allowAll?: boolean
|
|
12
|
+
filters?: { programId: number; courseId: number; batch: string }
|
|
13
|
+
onChange?: (value: any) => void
|
|
14
|
+
api?: string
|
|
15
|
+
} & SelectProps
|
|
16
|
+
export default function FormClassRoomSelector(props: ClassRoomSelectorProps) {
|
|
17
|
+
const {
|
|
18
|
+
name,
|
|
19
|
+
required = false,
|
|
20
|
+
control,
|
|
21
|
+
label,
|
|
22
|
+
multiple = false,
|
|
23
|
+
allowAll = true,
|
|
24
|
+
onChange,
|
|
25
|
+
value,
|
|
26
|
+
filters,
|
|
27
|
+
api,
|
|
28
|
+
} = props
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<Controller
|
|
32
|
+
name={name}
|
|
33
|
+
control={control}
|
|
34
|
+
render={({ field, fieldState: { error } }) => (
|
|
35
|
+
<ClassRoomSelector
|
|
36
|
+
label={label}
|
|
37
|
+
name={name}
|
|
38
|
+
onChange={onChange ?? field.onChange}
|
|
39
|
+
value={value ?? field?.value}
|
|
40
|
+
allowAll={allowAll}
|
|
41
|
+
filters={filters}
|
|
42
|
+
required={required}
|
|
43
|
+
error={!!error}
|
|
44
|
+
helperText={error?.message}
|
|
45
|
+
{...props}
|
|
46
|
+
/>
|
|
47
|
+
)}
|
|
48
|
+
/>
|
|
49
|
+
)
|
|
50
|
+
}
|
|
@@ -11,6 +11,7 @@ type FormCourseSelectorProps = {
|
|
|
11
11
|
allowAll?: boolean
|
|
12
12
|
onChange?: (value: any) => void
|
|
13
13
|
api?: string
|
|
14
|
+
valueByUniqueId?: boolean
|
|
14
15
|
} & SelectProps
|
|
15
16
|
export default function FormCourseSelector(props: FormCourseSelectorProps) {
|
|
16
17
|
const {
|
|
@@ -23,6 +24,7 @@ export default function FormCourseSelector(props: FormCourseSelectorProps) {
|
|
|
23
24
|
onChange,
|
|
24
25
|
value,
|
|
25
26
|
api,
|
|
27
|
+
valueByUniqueId = false,
|
|
26
28
|
} = props
|
|
27
29
|
|
|
28
30
|
return (
|
|
@@ -39,6 +41,7 @@ export default function FormCourseSelector(props: FormCourseSelectorProps) {
|
|
|
39
41
|
required={required}
|
|
40
42
|
error={!!error}
|
|
41
43
|
helperText={error?.message}
|
|
44
|
+
valueByUniqueId={valueByUniqueId}
|
|
42
45
|
{...props}
|
|
43
46
|
/>
|
|
44
47
|
)}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { Controller } from 'react-hook-form'
|
|
3
|
+
import DepartmentSelector from '../DepartmentSelector'
|
|
4
|
+
|
|
5
|
+
type FormDepartmentSelectorProps = {
|
|
6
|
+
control: any
|
|
7
|
+
name: string
|
|
8
|
+
label: string
|
|
9
|
+
required?: boolean
|
|
10
|
+
multiple?: boolean
|
|
11
|
+
allowAll?: boolean
|
|
12
|
+
onChange?: (value: any) => void
|
|
13
|
+
api?: string
|
|
14
|
+
} & SelectProps
|
|
15
|
+
export default function FormDepartmentSelector(
|
|
16
|
+
props: FormDepartmentSelectorProps,
|
|
17
|
+
) {
|
|
18
|
+
const {
|
|
19
|
+
name,
|
|
20
|
+
required = false,
|
|
21
|
+
control,
|
|
22
|
+
label,
|
|
23
|
+
allowAll = true,
|
|
24
|
+
multiple = false,
|
|
25
|
+
onChange,
|
|
26
|
+
value,
|
|
27
|
+
api,
|
|
28
|
+
} = props
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<Controller
|
|
32
|
+
name={name}
|
|
33
|
+
control={control}
|
|
34
|
+
render={({ field, fieldState: { error } }) => (
|
|
35
|
+
<DepartmentSelector
|
|
36
|
+
label={label}
|
|
37
|
+
name={name}
|
|
38
|
+
onChange={onChange ?? field.onChange}
|
|
39
|
+
value={value ?? field?.value}
|
|
40
|
+
allowAll={allowAll}
|
|
41
|
+
required={required}
|
|
42
|
+
error={!!error}
|
|
43
|
+
helperText={error?.message}
|
|
44
|
+
{...props}
|
|
45
|
+
/>
|
|
46
|
+
)}
|
|
47
|
+
/>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { Controller } from 'react-hook-form'
|
|
3
|
+
import FacultySelector from '../FacultySelector'
|
|
4
|
+
|
|
5
|
+
type FacultySelectorProps = {
|
|
6
|
+
control: any
|
|
7
|
+
name: string
|
|
8
|
+
label: string
|
|
9
|
+
required?: boolean
|
|
10
|
+
multiple?: boolean
|
|
11
|
+
allowAll?: boolean
|
|
12
|
+
filters?: {
|
|
13
|
+
departmentId: number | string
|
|
14
|
+
isSearch: boolean
|
|
15
|
+
isActive: boolean
|
|
16
|
+
type: string
|
|
17
|
+
}
|
|
18
|
+
onChange?: (value: any) => void
|
|
19
|
+
api?: string
|
|
20
|
+
} & SelectProps
|
|
21
|
+
export default function FormFacultySelector(props: FacultySelectorProps) {
|
|
22
|
+
const {
|
|
23
|
+
name,
|
|
24
|
+
required = false,
|
|
25
|
+
control,
|
|
26
|
+
label,
|
|
27
|
+
multiple = false,
|
|
28
|
+
allowAll = true,
|
|
29
|
+
onChange,
|
|
30
|
+
value,
|
|
31
|
+
filters,
|
|
32
|
+
api,
|
|
33
|
+
} = props
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
<Controller
|
|
37
|
+
name={name}
|
|
38
|
+
control={control}
|
|
39
|
+
render={({ field, fieldState: { error } }) => (
|
|
40
|
+
<FacultySelector
|
|
41
|
+
label={label}
|
|
42
|
+
name={name}
|
|
43
|
+
onChange={onChange ?? field.onChange}
|
|
44
|
+
value={value ?? field?.value}
|
|
45
|
+
allowAll={allowAll}
|
|
46
|
+
filters={filters}
|
|
47
|
+
required={required}
|
|
48
|
+
error={!!error}
|
|
49
|
+
helperText={error?.message}
|
|
50
|
+
{...props}
|
|
51
|
+
/>
|
|
52
|
+
)}
|
|
53
|
+
/>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
@@ -12,6 +12,7 @@ type ProgramSelectorProps = {
|
|
|
12
12
|
filters?: { courseId: number }
|
|
13
13
|
onChange?: (value: any) => void
|
|
14
14
|
api?: string
|
|
15
|
+
valueByBranchCode?: boolean
|
|
15
16
|
} & SelectProps
|
|
16
17
|
export default function FormProgramSelector(props: ProgramSelectorProps) {
|
|
17
18
|
const {
|
|
@@ -24,7 +25,8 @@ export default function FormProgramSelector(props: ProgramSelectorProps) {
|
|
|
24
25
|
onChange,
|
|
25
26
|
value,
|
|
26
27
|
filters,
|
|
27
|
-
api
|
|
28
|
+
api,
|
|
29
|
+
valueByBranchCode = false,
|
|
28
30
|
} = props
|
|
29
31
|
|
|
30
32
|
return (
|
|
@@ -42,6 +44,7 @@ export default function FormProgramSelector(props: ProgramSelectorProps) {
|
|
|
42
44
|
required={required}
|
|
43
45
|
error={!!error}
|
|
44
46
|
helperText={error?.message}
|
|
47
|
+
valueByBranchCode={valueByBranchCode}
|
|
45
48
|
{...props}
|
|
46
49
|
/>
|
|
47
50
|
)}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { SelectProps } from '@mui/material'
|
|
2
|
+
import { useEffect, useState } from 'react'
|
|
3
|
+
import { Controller } from 'react-hook-form'
|
|
4
|
+
import axios from '../../../../config/axios'
|
|
5
|
+
import { MultiSelect } from '../../../Input'
|
|
6
|
+
|
|
7
|
+
type MultiFacultySelectorProps = {
|
|
8
|
+
control: any
|
|
9
|
+
name?: string
|
|
10
|
+
label: string
|
|
11
|
+
filters?: {
|
|
12
|
+
departmentId: string
|
|
13
|
+
isSearch: boolean
|
|
14
|
+
isActive: boolean
|
|
15
|
+
type: string
|
|
16
|
+
}
|
|
17
|
+
required?: boolean
|
|
18
|
+
onChange?: (value: any) => void
|
|
19
|
+
allowAll?: boolean
|
|
20
|
+
error?: boolean
|
|
21
|
+
helperText?: string
|
|
22
|
+
api?: string
|
|
23
|
+
} & SelectProps
|
|
24
|
+
const MultiFacultySelector = (props: MultiFacultySelectorProps) => {
|
|
25
|
+
const {
|
|
26
|
+
control,
|
|
27
|
+
onChange,
|
|
28
|
+
name,
|
|
29
|
+
required = false,
|
|
30
|
+
label,
|
|
31
|
+
multiple = true,
|
|
32
|
+
filters,
|
|
33
|
+
value,
|
|
34
|
+
allowAll = true,
|
|
35
|
+
api = '/hrms/employees',
|
|
36
|
+
} = props
|
|
37
|
+
const [options, setOptions] = useState([])
|
|
38
|
+
const [prevDepartmentId, setPrevDepartmentId] = useState(null)
|
|
39
|
+
const handleOpen = () => {
|
|
40
|
+
if (filters) {
|
|
41
|
+
if (filters.departmentId && filters.departmentId !== prevDepartmentId) {
|
|
42
|
+
setOptions([])
|
|
43
|
+
axios
|
|
44
|
+
.get(api, {
|
|
45
|
+
params: filters,
|
|
46
|
+
})
|
|
47
|
+
.then((response) => {
|
|
48
|
+
setOptions(response.data.data)
|
|
49
|
+
setPrevDepartmentId(filters.departmentId)
|
|
50
|
+
})
|
|
51
|
+
.catch((error) => {
|
|
52
|
+
console.error('Error fetching data from the API:', error)
|
|
53
|
+
})
|
|
54
|
+
}
|
|
55
|
+
} else if (options.length === 0) {
|
|
56
|
+
axios
|
|
57
|
+
.get(api)
|
|
58
|
+
.then((response) => {
|
|
59
|
+
setOptions(response.data.data)
|
|
60
|
+
})
|
|
61
|
+
.catch((error) => {
|
|
62
|
+
console.error('Error fetching data from the API:', error)
|
|
63
|
+
})
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (props?.value && props.value != 'all') {
|
|
68
|
+
handleOpen()
|
|
69
|
+
}
|
|
70
|
+
}, [props.value])
|
|
71
|
+
|
|
72
|
+
const handleOptions =
|
|
73
|
+
options.length > 0
|
|
74
|
+
? [
|
|
75
|
+
...(allowAll ? [{ value: 'all', label: 'All' }] : []),
|
|
76
|
+
...options.map((item) => ({
|
|
77
|
+
label: `${item.fullName}`,
|
|
78
|
+
value: `${item._id}`,
|
|
79
|
+
})),
|
|
80
|
+
]
|
|
81
|
+
: allowAll
|
|
82
|
+
? [{ value: 'all', label: 'All' }]
|
|
83
|
+
: []
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<Controller
|
|
87
|
+
name={name}
|
|
88
|
+
control={control}
|
|
89
|
+
render={({ field, fieldState: { error } }) => (
|
|
90
|
+
<MultiSelect
|
|
91
|
+
name={name}
|
|
92
|
+
label={label}
|
|
93
|
+
required={required}
|
|
94
|
+
options={handleOptions}
|
|
95
|
+
onOpen={handleOpen}
|
|
96
|
+
onChange={onChange ?? field.onChange}
|
|
97
|
+
value={value ?? field?.value}
|
|
98
|
+
error={!!error}
|
|
99
|
+
helperText={error?.message}
|
|
100
|
+
multiple={multiple}
|
|
101
|
+
/>
|
|
102
|
+
)}
|
|
103
|
+
/>
|
|
104
|
+
)
|
|
105
|
+
}
|
|
106
|
+
export default MultiFacultySelector
|
|
@@ -13,6 +13,7 @@ type ProgramSelectorProps = {
|
|
|
13
13
|
error?: boolean
|
|
14
14
|
helperText?: string
|
|
15
15
|
api?: string
|
|
16
|
+
valueByBranchCode?: boolean
|
|
16
17
|
} & SelectProps
|
|
17
18
|
const ProgramSelector = (props: ProgramSelectorProps) => {
|
|
18
19
|
const {
|
|
@@ -22,7 +23,8 @@ const ProgramSelector = (props: ProgramSelectorProps) => {
|
|
|
22
23
|
multiple = false,
|
|
23
24
|
filters,
|
|
24
25
|
allowAll = true,
|
|
25
|
-
|
|
26
|
+
valueByBranchCode = false,
|
|
27
|
+
api = '/paymentx/domain/programs',
|
|
26
28
|
} = props
|
|
27
29
|
const [options, setOptions] = useState([])
|
|
28
30
|
const [prevCourseId, setPrevCourseId] = useState(null)
|
|
@@ -65,7 +67,7 @@ const ProgramSelector = (props: ProgramSelectorProps) => {
|
|
|
65
67
|
...(allowAll ? [{ value: 'all', label: 'All' }] : []),
|
|
66
68
|
...options.map((item) => ({
|
|
67
69
|
label: `${item.branchName}`,
|
|
68
|
-
value: `${item.id}`,
|
|
70
|
+
value: !valueByBranchCode ? `${item.id}` : `${item.branchCode}`,
|
|
69
71
|
})),
|
|
70
72
|
]
|
|
71
73
|
: allowAll
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
import ClassRoomSelector from './ClassRoomSelector'
|
|
1
2
|
import CourseSelector from './CourseSelector'
|
|
3
|
+
import DepartmentSelector from './DepartmentSelector'
|
|
4
|
+
import FacultySelector from './FacultySelector'
|
|
2
5
|
import FeeTypeSelector from './FeeTypeSelector'
|
|
6
|
+
import FormClassRoomSelector from './FormSelectors/FormClassRoomSelector'
|
|
3
7
|
import FormCourseSelector from './FormSelectors/FormCourseSelector'
|
|
8
|
+
import FormDepartmentSelector from './FormSelectors/FormDepartmentSelector'
|
|
9
|
+
import FormFacultySelector from './FormSelectors/FormFacultySelector'
|
|
4
10
|
import FormFeeTypeSelector from './FormSelectors/FormFeeTypeSelector'
|
|
5
11
|
import FormProgramSelector from './FormSelectors/FormProgramSelector'
|
|
6
12
|
import FormQuotaSelector from './FormSelectors/FormQuotaSelector'
|
|
7
13
|
import FormSemseterSelector from './FormSelectors/FormSemesterSelector'
|
|
14
|
+
import MultiFacultySelector from './FormSelectors/MultiSelect/MultiFacultySelector'
|
|
8
15
|
import MultiFeeTypeSelector from './FormSelectors/MultiSelect/MultiFeeTypeSelector'
|
|
9
16
|
import MultiProgramSelector from './FormSelectors/MultiSelect/MultiProgramSelector'
|
|
10
17
|
import MultiQuotaSelector from './FormSelectors/MultiSelect/MultiQuotaSelector'
|
|
@@ -13,13 +20,20 @@ import QuotaSelector from './QuotaSelector'
|
|
|
13
20
|
import SemesterSelector from './SemesterSelector'
|
|
14
21
|
|
|
15
22
|
export {
|
|
23
|
+
ClassRoomSelector,
|
|
16
24
|
CourseSelector,
|
|
25
|
+
DepartmentSelector,
|
|
26
|
+
FacultySelector,
|
|
17
27
|
FeeTypeSelector,
|
|
28
|
+
FormClassRoomSelector,
|
|
18
29
|
FormCourseSelector,
|
|
30
|
+
FormDepartmentSelector,
|
|
31
|
+
FormFacultySelector,
|
|
19
32
|
FormFeeTypeSelector,
|
|
20
33
|
FormProgramSelector,
|
|
21
34
|
FormQuotaSelector,
|
|
22
35
|
FormSemseterSelector,
|
|
36
|
+
MultiFacultySelector,
|
|
23
37
|
MultiFeeTypeSelector,
|
|
24
38
|
MultiProgramSelector,
|
|
25
39
|
MultiQuotaSelector,
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import { Store } from "pullstate";
|
|
2
|
+
|
|
3
|
+
export enum Permission {
|
|
4
|
+
VIEW_AUDIT_LOGS = "can_view_audit_logs",
|
|
5
|
+
STUDENTS_VIEW = "can_students_view",
|
|
6
|
+
ADMISSIONS_VIEW = "can_admissions_view",
|
|
7
|
+
USERS_VIEW = "can_users_view",
|
|
8
|
+
SUBJECTS_VIEW = "can_subjects_view",
|
|
9
|
+
COURSE_REGISTRATION_VIEW = "can_course_registration_view",
|
|
10
|
+
END_SEMESTER_EXAMINATIONS_VIEW = "can_end_semester_examinations_view",
|
|
11
|
+
INTERNAL_EXAMINATIONS_VIEW = "can_internal_examinations_view",
|
|
12
|
+
VIEW_ANSWER_SHEET_REPORT = "can_view_answer_sheet_report",
|
|
13
|
+
SEATING_PLAN = "can_examinations_seating_plan",
|
|
14
|
+
VIEW_REPORTS = "can_results_processing_view_reports",
|
|
15
|
+
CAN_ADD_FEED = "can_feed_add",
|
|
16
|
+
MARKS_DIVISION = "can_examinations_manage_marks_division",
|
|
17
|
+
|
|
18
|
+
//classroom
|
|
19
|
+
|
|
20
|
+
CLASSROOM_VIEW = "can_classroom_view",
|
|
21
|
+
CLASSROOM_EDIT = "can_classroom_edit",
|
|
22
|
+
CLASSROOM_DELETE = "can_classroom_delete",
|
|
23
|
+
CLASSROOM_ADD = "can_classroom_add",
|
|
24
|
+
|
|
25
|
+
// Tasks
|
|
26
|
+
|
|
27
|
+
CAN_TASKS_ADD = "can_tasks_add",
|
|
28
|
+
CAN_TASKS_DELETE = "can_tasks_delete",
|
|
29
|
+
CAN_TASKS_EDIT = "can_tasks_edit",
|
|
30
|
+
CAN_TASKS_VIEW = "can_tasks_view",
|
|
31
|
+
CAN_TASKS_CHANGE_STATUS = "can_tasks_change_status",
|
|
32
|
+
CAN_REVOKE_MARKS = "can_classroom_revoke_marks",
|
|
33
|
+
|
|
34
|
+
// Academic Calendar
|
|
35
|
+
|
|
36
|
+
ACADEMIC_CALENDAR_VIEW = "can_academic_calendar_view",
|
|
37
|
+
ACADEMIC_CALENDAR_EVENT_ADD = "can_academic_calendar_event_add",
|
|
38
|
+
ACADEMIC_CALENDAR_EVENT_EDIT = "can_academic_calendar_event_edit",
|
|
39
|
+
ACADEMIC_CALENDAR_EVENT_DELETE = "can_academic_calendar_event_delete",
|
|
40
|
+
|
|
41
|
+
//Designations
|
|
42
|
+
DESIGNATIONS_ADD = "can_designations_add",
|
|
43
|
+
DESIGNATIONS_DELETE = "can_designations_delete",
|
|
44
|
+
DESIGNATIONS_EDIT = "can_designations_edit",
|
|
45
|
+
DESIGNATIONS_VIEW = "can_designations_view",
|
|
46
|
+
|
|
47
|
+
//bundling
|
|
48
|
+
|
|
49
|
+
BUNDLING_VIEW = "can_bundling_view",
|
|
50
|
+
BUNDLING_ADD = "can_bundling_add",
|
|
51
|
+
BUNDLING_EDIT = "can_bundling_edit",
|
|
52
|
+
BUNDLING_DELETE = "can_bundling_delete",
|
|
53
|
+
|
|
54
|
+
// manage
|
|
55
|
+
MANAGE_ROLES_AND_PROFILES = "can_manage_roles_and_profiles",
|
|
56
|
+
|
|
57
|
+
MANAGE_USER_GROUPS = "can_manage_user_groups",
|
|
58
|
+
MANAGE_ASSESSMENTS = "can_manage_assessments",
|
|
59
|
+
USERS_ADD = "can_users_add",
|
|
60
|
+
USERS_EDIT = "can_users_edit",
|
|
61
|
+
USERS_DELETE = "can_users_delete",
|
|
62
|
+
USERS_REORDER = "can_users_reorder",
|
|
63
|
+
USERS_UPLOAD_PHOTOS = "can_user_upload_photos",
|
|
64
|
+
USERS_EXPORT = "can_users_export",
|
|
65
|
+
ADMISSIONS_ADD = "can_admissions_add",
|
|
66
|
+
ADMISSIONS_EDIT = "can_admissions_edit",
|
|
67
|
+
ADMISSIONS_DELETE = "can_admissions_delete",
|
|
68
|
+
ADMISSIONS_CHANGE_STATUS = "can_admissions_change_status",
|
|
69
|
+
ADMISSIONS_IMPORT = "can_admissions_import",
|
|
70
|
+
ADMISSIONS_EXPORT = "can_admissions_export",
|
|
71
|
+
ADMISSIONS_CONFIRM = "can_admissions_confirm",
|
|
72
|
+
STUDENTS_ADD = "can_students_add",
|
|
73
|
+
STUDENTS_EDIT = "can_students_edit",
|
|
74
|
+
STUDENTS_DELETE = "can_students_delete",
|
|
75
|
+
STUDENTS_DETAIN = "can_students_detain",
|
|
76
|
+
STUDENTS_IMPORT = "can_students_import",
|
|
77
|
+
STUDENTS_EXPORT = "can_students_export",
|
|
78
|
+
STUDENTS_RESULTS = "can_students_results",
|
|
79
|
+
STUDENTS_UPLOAD_PHOTOS = "can_students_upload_photos",
|
|
80
|
+
STUDENTS_TRANSFER = "can_students_transfer",
|
|
81
|
+
STUDENTS_ALLOTMENT = "can_students_allotment",
|
|
82
|
+
SUBJECTS_ADD = "can_subjects_add",
|
|
83
|
+
SUBJECTS_EDIT = "can_subjects_edit",
|
|
84
|
+
SUBJECTS_DELETE = "can_subjects_delete",
|
|
85
|
+
SUBJECTS_EDIT_SUBJECT_INFO = "can_subjects_edit_subject_info",
|
|
86
|
+
COURSE_REGISTRATION_ADD = "can_course_registration_add",
|
|
87
|
+
COURSE_REGISTRATION_EDIT = "can_course_registration_edit",
|
|
88
|
+
COURSE_REGISTRATION_DELETE = "can_course_registration_delete",
|
|
89
|
+
END_SEMESTER_EXAMINATIONS_ADD = "can_end_semester_examinations_add",
|
|
90
|
+
END_SEMESTER_EXAMINATIONS_EDIT = "can_end_semester_examinations_edit",
|
|
91
|
+
END_SEMESTER_EXAMINATIONS_NOTIFICATION = "can_end_semester_examinations_notification",
|
|
92
|
+
END_SEMESTER_EXAMINATIONS_DELETE = "can_end_semester_examinations_delete",
|
|
93
|
+
END_SEMESTER_EXAMINATIONS_SEATING_PLAN = "can_end_semester_examinations_seating_plan",
|
|
94
|
+
END_SEMESTER_EXAMINATIONS_MANAGE_EXAM_FEE = "can_end_semester_examinations_manage_exam_fee",
|
|
95
|
+
END_SEMESTER_EXAMINATIONS_D_FORMS = "can_end_semester_examinations_d_forms",
|
|
96
|
+
END_SEMESTER_EXAMINATIONS_BUNDLING = "can_end_semester_examinations_bundling",
|
|
97
|
+
END_SEMESTER_EXAMINATIONS_MARKS_ENTRY = "can_end_semester_examinations_marks_entry",
|
|
98
|
+
END_SEMESTER_EXAMINATIONS_INVIGILATIONS = "can_end_semester_examinations_invigilations",
|
|
99
|
+
INTERNAL_EXAMINATIONS_ADD = "can_internal_examinations_add",
|
|
100
|
+
INTERNAL_EXAMINATIONS_EDIT = "can_internal_examinations_edit",
|
|
101
|
+
INTERNAL_EXAMINATIONS_DELETE = "can_internal_examinations_delete",
|
|
102
|
+
INTERNAL_EXAMINATIONS_MANAGE_EXAM_FEE = "can_internal_examinations_manage_exam_fee",
|
|
103
|
+
INTERNAL_EXAMINATIONS_MANAGE_HALLTICKETS = "can_internal_examinations_manage_halltickets",
|
|
104
|
+
INTERNAL_EXAMINATIONS_SEATING_PLAN = "can_internal_examinations_seating_plan",
|
|
105
|
+
INTERNAL_EXAMINATIONS_INVIGILATIONS = "can_internal_examinations_invigilations",
|
|
106
|
+
EXTRA_CURRICULAR_ACTIVITIES_NEWS_FEED = "can_extra_curricular_activities_news_feed",
|
|
107
|
+
EXTRA_CURRICULAR_ACTIVITIES_CLUBS = "can_extra_curricular_activities_clubs",
|
|
108
|
+
EXTRA_CURRICULAR_ACTIVITIES_EVENTS = "can_extra_curricular_activities_events",
|
|
109
|
+
EDIT_ANSWER_SHEET_MARKS = "can_edit_answer_sheet_marks",
|
|
110
|
+
EDIT_EXTERNAL_MARKS = "can_edit_external_marks",
|
|
111
|
+
EXAM_COLLATERALS = "can_exam_collaterals",
|
|
112
|
+
REVALUTION = "can_revaluation",
|
|
113
|
+
EDIT_INTERNAL_MARKS = "can_edit_internal_marks",
|
|
114
|
+
PROCESS_RESULTS = "can_process_results",
|
|
115
|
+
CAN_PROGRAMS_ADD = "can_programs_add",
|
|
116
|
+
CAN_PROGRAMS_DELETE = "can_programs_delete",
|
|
117
|
+
CAN_PROGRAMS_EDIT = "can_programs_edit",
|
|
118
|
+
CAN_PROGRAMS_VIEW = "can_programs_view",
|
|
119
|
+
CAN_DEGRESS_ADD = "can_degrees_add",
|
|
120
|
+
CAN_DEGRESS_DELETE = "can_degrees_delete",
|
|
121
|
+
CAN_DEGRESS_EDIT = "can_degrees_edit",
|
|
122
|
+
CAN_SETTINGS_VIEW = "can_settings_view",
|
|
123
|
+
CAN_DASHBOARD_VIEW = "can_dashboard_view",
|
|
124
|
+
CAN_DEGRESS_VIEW = "can_degrees_view",
|
|
125
|
+
CAN_SEMESTERS_ADD = "can_semesters_add",
|
|
126
|
+
CAN_SEMESTERS_DELETE = "can_semesters_delete",
|
|
127
|
+
CAN_SEMESTERS_EDIT = "can_semesters_edit",
|
|
128
|
+
CAN_SEMESTERS_VIEW = "can_semesters_view",
|
|
129
|
+
CAN_CURRICULUMS_ADD = "can_curriculums_add",
|
|
130
|
+
CAN_CURRICULUMS_DELETE = "can_curriculums_delete",
|
|
131
|
+
CAN_CURRICULUMS_EDIT = "can_curriculums_edit",
|
|
132
|
+
CAN_CURRICULUMS_VIEW = "can_curriculums_view",
|
|
133
|
+
CAN_ASSESSMENT_RULES_ADD = "can_assessment_rules_add",
|
|
134
|
+
CAN_ASSESSMENT_RULES_DELETE = "can_assessment_rules_delete",
|
|
135
|
+
CAN_ASSESSMENT_RULES_EDIT = "can_assessment_rules_edit",
|
|
136
|
+
CAN_ASSESSMENT_RULES_VIEW = "can_assessment_rules_view",
|
|
137
|
+
CAN_RESULTS_PROCESSING_GENERATE_MEMOS = "can_results_processing_generate_memos",
|
|
138
|
+
CAN_RESULTS_PROCESSING_MODERATION_AND_GRAFTING = "can_results_processing_moderation_and_grafting",
|
|
139
|
+
CAN_RESULTS_PROCESSING_PUBLISH_RESULTS = "can_results_processing_publish_results",
|
|
140
|
+
CAN_RESULTS_PROCESSING_UPDATE_INTERNAL_MARKS = "can_results_processing_update_internal_marks",
|
|
141
|
+
CAN_RESULTS_PROCESSING_VIEW = "can_results_processing_view",
|
|
142
|
+
|
|
143
|
+
//newly added permissions
|
|
144
|
+
|
|
145
|
+
CAN_PHD_FORM_VIEW = "can_admissions_view_phd_applications",
|
|
146
|
+
CAN_PHD_FORM_DOWNLOAD = "can_admissions_download_phd_applications",
|
|
147
|
+
CAN_CET_VIEW = "can_admissions_view_cet",
|
|
148
|
+
CAN_CET_DOWNLOAD = "can_admissions_download_cet",
|
|
149
|
+
CAN_HOSTELER_DASHBOARD_VIEW = "can_hosteler_dashboard_view",
|
|
150
|
+
CAN_HOSTELER_VIEW = "can_hosteler_view",
|
|
151
|
+
CAN_HOSTELER_ADD = "can_hosteler_add",
|
|
152
|
+
CAN_HOSTELER_EDIT = "can_hosteler_edit",
|
|
153
|
+
CAN_HOSTELER_CHANGE_STATUS = "can_hosteler_change_status",
|
|
154
|
+
CAN_HOSTELER_FACE_DATA_RESET = "can_hosteler_face_data_reset",
|
|
155
|
+
CAN_HOSTELER_FEE_PAYMENT_VIEW = "can_hosteler_fee_payments_view",
|
|
156
|
+
CAN_HOSTELER_REPORTS_VIEW = "can_hosteler_reports_view",
|
|
157
|
+
CAN_HOSTELER_SETTINGS_VIEW_CONFIGURATION = "can_hosteler_settings_view_configuration",
|
|
158
|
+
CAN_HOSTELER_SETTINGS_EDIT_CONFIGURATION = "can_hosteler_settings_edit_configuration",
|
|
159
|
+
CAN_HOSTELER_SETTINGS_ADD_FEE_TYPES = "can_hosteler_settings_add_fee_types",
|
|
160
|
+
CAN_HOSTELER_SETTINGS_VIEW_FEE_TYPES = "can_hosteler_settings_view_fee_types",
|
|
161
|
+
CAN_HOSTELER_SETTINGS_EDIT_FEE_TYPES = "can_hosteler_settings_edit_fee_types",
|
|
162
|
+
CAN_HOSTELER_SETTINGS_DELETE_FEE_TYPES = "can_hosteler_settings_delete_fee_types",
|
|
163
|
+
CAN_HOSTELERS_SETTINGS_BLOCK_VIEW = "can_hosteler_settings_blocks_view",
|
|
164
|
+
CAN_HOSTELERS_SETTINGS_BLOCK_ADD = "can_hosteler_settings_blocks_add",
|
|
165
|
+
CAN_HOSTELERS_SETTINGS_BLOCK_EDIT = "can_hosteler_settings_blocks_edit",
|
|
166
|
+
CAN_HOSTELERS_SETTINGS_BLOCK_DELETE = "can_hosteler_settings_blocks_delete",
|
|
167
|
+
CAN_HOSTELERS_SETTINGS_ROOMS_VIEW = "can_hosteler_settings_rooms_view",
|
|
168
|
+
CAN_HOSTELERS_SETTINGS_ROOMS_ADD = "can_hosteler_settings_rooms_add",
|
|
169
|
+
CAN_HOSTELERS_SETTINGS_ROOMS_EDIT = "can_hosteler_settings_rooms_edit",
|
|
170
|
+
CAN_HOSTELERS_SETTINGS_ROOMS_DELETE = "can_hosteler_settings_rooms_delete",
|
|
171
|
+
CAN_HOSTELERS_SETTINGS_ROOMS_IMPORT = "can_hosteler_settings_import_hostel_rooms",
|
|
172
|
+
CAN_HOSTELERS_SETTINGS_AMENITIES_VIEW = "can_hosteler_settings_amenities_view",
|
|
173
|
+
CAN_HOSTELERS_SETTINGS_AMENITIES_ADD = "can_hosteler_settings_amenities_add",
|
|
174
|
+
CAN_HOSTELERS_SETTINGS_AMENITIES_EDIT = "can_hosteler_settings_amenities_edit",
|
|
175
|
+
CAN_HOSTELERS_SETTINGS_AMENITIES_DELETE = "can_hosteler_settings_amenities_delete",
|
|
176
|
+
CAN_ADMISSIONS_DASHBOARD_VIEW = "can_admission_dashboard_view",
|
|
177
|
+
CAN_LEAD_STATUS_VIEW = "can_lead_status_view",
|
|
178
|
+
CAN_LEAD_STATUS_EDIT = "can_lead_status_edit",
|
|
179
|
+
CAN_LEAD_STATUS_ADD = "can_lead_status_add",
|
|
180
|
+
CAN_LEAD_STATUS_DELETE = "can_lead_status_delete",
|
|
181
|
+
SCHOOLS_VIEW = "can_schools_view",
|
|
182
|
+
SCHOOLS_ADD = "can_schools_add",
|
|
183
|
+
SCHOOLS_EDIT = "can_schools_edit",
|
|
184
|
+
SCHOOLS_DELETE = "can_schools_delete",
|
|
185
|
+
SUBJECT_TYPE_VIEW = "can_subject_types_view",
|
|
186
|
+
SUBJECT_TYPE_ADD = "can_subject_types_add",
|
|
187
|
+
SUBJECT_TYPE_EDIT = "can_subject_types_edit",
|
|
188
|
+
SUBJECT_TYPE_DELETE = "can_subject_types_delete",
|
|
189
|
+
ASSESSMENT_TYPE_VIEW = "can_assessment_types_view",
|
|
190
|
+
ASSESSMENT_TYPE_ADD = "can_assessment_types_add",
|
|
191
|
+
ASSESSMENT_TYPE_EDIT = "can_assessment_types_edit",
|
|
192
|
+
ASSESSMENT_TYPE_DELETE = "can_assessment_types_delete",
|
|
193
|
+
CLASSROOM_REPORTS = "can_classroom_reports",
|
|
194
|
+
CLASSROOM_REASSIGN_FACULTY = "can_classroom_re_assign_faculty",
|
|
195
|
+
CAN_INDIVIDUAL_PAGES_VIEW = "can_individual_pages_view",
|
|
196
|
+
|
|
197
|
+
// Exams
|
|
198
|
+
|
|
199
|
+
// OMRS
|
|
200
|
+
CAN_OMRS_VIEW = "can_omrs_view",
|
|
201
|
+
CAN_OMRS_UPDATE = "can_omrs_update",
|
|
202
|
+
CAN_OMRS_DOWNLOAD = "can_omrs_download",
|
|
203
|
+
|
|
204
|
+
// Hall tickets
|
|
205
|
+
CAN_HALL_TICKETS_VIEW = "can_hall_tickets_view",
|
|
206
|
+
CAN_HALL_TICKETS_DOWNLOAD = "can_hall_tickets_download",
|
|
207
|
+
|
|
208
|
+
// Paper Configuration
|
|
209
|
+
CAN_PAPER_CONFIGURATION_VIEW = "can_paper_configuration_view",
|
|
210
|
+
CAN_PAPER_CONFIGURATION_ADD = "can_paper_configuration_add",
|
|
211
|
+
CAN_PAPER_CONFIGURATION_EDIT = "can_paper_configuration_edit",
|
|
212
|
+
CAN_PAPER_CONFIGURATION_DELETE = "can_paper_configuration_delete",
|
|
213
|
+
CAN_PAPER_CONFIGURATION_UPLOAD = "can_paper_configuration_upload",
|
|
214
|
+
CAN_PAPER_CONFIGURATION_DOWNLOAD = "can_paper_configuration_download",
|
|
215
|
+
|
|
216
|
+
// Time table
|
|
217
|
+
CAN_EXAM_TIMETABLE_VIEW = "can_exam_timetable_view",
|
|
218
|
+
CAN_EXAM_TIMETABLE_ADD = "can_exam_timetable_add",
|
|
219
|
+
CAN_EXAM_TIMETABLE_EDIT = "can_exam_timetable_edit",
|
|
220
|
+
CAN_EXAM_TIMETABLE_DELETE = "can_exam_timetable_delete",
|
|
221
|
+
|
|
222
|
+
// Registrations
|
|
223
|
+
CAN_REGISTARTIONS_VIEW = "can_exam_registrations_view",
|
|
224
|
+
CAN_REGISTARTIONS_ADD = "can_exam_registrations_add",
|
|
225
|
+
CAN_REGISTARTIONS_CHALAN_UPLOAD = "can_exam_registrations_chalan_upload",
|
|
226
|
+
CAN_REGISTARTIONS_SUBMIT = "can_exam_registrations_submit",
|
|
227
|
+
|
|
228
|
+
// Internal Marks
|
|
229
|
+
CAN_INTERNAL_MARKS_VIEW = "can_internal_marks_view",
|
|
230
|
+
CAN_INTERNAL_MARKS_ADD = "can_internal_marks_add",
|
|
231
|
+
CAN_INTERNAL_MARKS_EDIT = "can_internal_marks_edit",
|
|
232
|
+
|
|
233
|
+
// External Marks
|
|
234
|
+
CAN_EXTERNAL_MARKS_VIEW = "can_external_marks_view",
|
|
235
|
+
CAN_EXTERNAL_MARKS_ADD = "can_external_marks_add",
|
|
236
|
+
CAN_EXTERNAL_MARKS_EDIT = "can_external_marks_edit",
|
|
237
|
+
|
|
238
|
+
// D Form
|
|
239
|
+
CAN_D_FORM_VIEW = "can_d_forms_view",
|
|
240
|
+
CAN_D_FORM_ADD = "can_d_forms_add",
|
|
241
|
+
CAN_D_FORM_DOWNLOAD = "can_d_forms_download",
|
|
242
|
+
|
|
243
|
+
// Evaluators
|
|
244
|
+
CAN_EVALUATORS_VIEW = "can_evaluators_view",
|
|
245
|
+
CAN_EVALUATORS_ADD = "can_evaluators_add",
|
|
246
|
+
CAN_EVALUATORS_EDIT = "can_evaluators_edi",
|
|
247
|
+
CAN_EVALUATORS_DELETE = "can_evaluators_delete",
|
|
248
|
+
|
|
249
|
+
// Rooms
|
|
250
|
+
CAN_EXAM_ROOM_VIEW = "can_exam_rooms_view",
|
|
251
|
+
CAN_EXAM_ROOM_ADD = "can_exam_rooms_add",
|
|
252
|
+
CAN_EXAM_ROOM_EDIT = "can_exam_rooms_edit",
|
|
253
|
+
CAN_EXAM_ROOM_DELETE = "can_exam_rooms_delete",
|
|
254
|
+
|
|
255
|
+
// Time slots
|
|
256
|
+
CAN_TIME_SLOTS_VIEW = "can_time_slots_view",
|
|
257
|
+
CAN_TIME_SLOTS_ADD = "can_time_slots_add",
|
|
258
|
+
CAN_TIME_SLOTS_EDIT = "can_time_slots_edit",
|
|
259
|
+
CAN_TIME_SLOTS_DELETE = "can_time_slots_delete",
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export interface IPermissions {
|
|
263
|
+
// view
|
|
264
|
+
can_view_audit_logs: boolean;
|
|
265
|
+
can_students_view: boolean;
|
|
266
|
+
can_admissions_view: boolean;
|
|
267
|
+
can_users_view: boolean;
|
|
268
|
+
can_subjects_view: boolean;
|
|
269
|
+
can_course_registration_view: boolean;
|
|
270
|
+
can_end_semester_examinations_view: boolean;
|
|
271
|
+
can_internal_examinations_view: boolean;
|
|
272
|
+
can_view_answer_sheet_report: boolean;
|
|
273
|
+
can_feed_add: boolean;
|
|
274
|
+
can_classroom_view: boolean;
|
|
275
|
+
can_classroom_edit: boolean;
|
|
276
|
+
can_classroom_delete: boolean;
|
|
277
|
+
can_classroom_add: boolean;
|
|
278
|
+
can_tasks_view: boolean;
|
|
279
|
+
can_classroom_revoke_marks: boolean;
|
|
280
|
+
// manage
|
|
281
|
+
can_manage_roles_and_profiles: boolean;
|
|
282
|
+
can_manage_user_groups: boolean;
|
|
283
|
+
can_manage_programs: boolean;
|
|
284
|
+
can_manage_courses: boolean;
|
|
285
|
+
can_manage_semesters: boolean;
|
|
286
|
+
can_manage_curriculums: boolean;
|
|
287
|
+
can_manage_assessments: boolean;
|
|
288
|
+
can_users_add: boolean;
|
|
289
|
+
can_users_edit: boolean;
|
|
290
|
+
can_users_delete: boolean;
|
|
291
|
+
can_users_reorder: boolean;
|
|
292
|
+
can_admissions_add: boolean;
|
|
293
|
+
can_admissions_edit: boolean;
|
|
294
|
+
can_admissions_delete: boolean;
|
|
295
|
+
can_admissions_change_status: boolean;
|
|
296
|
+
can_admissions_import: boolean;
|
|
297
|
+
can_admissions_export: boolean;
|
|
298
|
+
can_admissions_confirm: boolean;
|
|
299
|
+
can_students_add: boolean;
|
|
300
|
+
can_students_edit: boolean;
|
|
301
|
+
can_students_delete: boolean;
|
|
302
|
+
can_students_detain: boolean;
|
|
303
|
+
can_students_import: boolean;
|
|
304
|
+
can_students_export: boolean;
|
|
305
|
+
can_students_results: boolean;
|
|
306
|
+
can_students_upload_photos: boolean;
|
|
307
|
+
can_students_transfer: boolean;
|
|
308
|
+
can_students_allotment: boolean;
|
|
309
|
+
can_subjects_add: boolean;
|
|
310
|
+
can_subjects_edit: boolean;
|
|
311
|
+
can_subjects_delete: boolean;
|
|
312
|
+
can_subjects_edit_subject_info: boolean;
|
|
313
|
+
can_course_registration_add: boolean;
|
|
314
|
+
can_course_registration_edit: boolean;
|
|
315
|
+
can_course_registration_delete: boolean;
|
|
316
|
+
can_end_semester_examinations_add: boolean;
|
|
317
|
+
can_end_semester_examinations_edit: boolean;
|
|
318
|
+
can_end_semester_examinations_delete: boolean;
|
|
319
|
+
can_end_semester_examinations_seating_plan: boolean;
|
|
320
|
+
can_end_semester_examinations_manage_exam_fee: boolean;
|
|
321
|
+
can_end_semester_examinations_d_forms: boolean;
|
|
322
|
+
can_end_semester_examinations_bundling: boolean;
|
|
323
|
+
can_end_semester_examinations_marks_entry: boolean;
|
|
324
|
+
can_end_semester_examinations_invigilations: boolean;
|
|
325
|
+
can_examinations_seating_plan: boolean;
|
|
326
|
+
can_internal_examinations_add: boolean;
|
|
327
|
+
can_internal_examinations_edit: boolean;
|
|
328
|
+
can_internal_examinations_delete: boolean;
|
|
329
|
+
can_internal_examinations_manage_exam_fee: boolean;
|
|
330
|
+
can_internal_examinations_manage_halltickets: boolean;
|
|
331
|
+
can_internal_examinations_seating_plan: boolean;
|
|
332
|
+
can_internal_examinations_invigilations: boolean;
|
|
333
|
+
can_extra_curricular_activities_news_feed: boolean;
|
|
334
|
+
can_extra_curricular_activities_clubs: boolean;
|
|
335
|
+
can_extra_curricular_activities_events: boolean;
|
|
336
|
+
can_edit_answer_sheet_marks: boolean;
|
|
337
|
+
can_edit_external_marks: boolean;
|
|
338
|
+
can_exam_collaterals: boolean;
|
|
339
|
+
can_revalution: boolean;
|
|
340
|
+
can_edit_internal_marks: boolean;
|
|
341
|
+
can_process_results: boolean;
|
|
342
|
+
can_generate_memos: boolean;
|
|
343
|
+
can_individual_pages_view: boolean;
|
|
344
|
+
can_tasks_add: boolean;
|
|
345
|
+
can_tasks_edit: boolean;
|
|
346
|
+
can_tasks_change_status: boolean;
|
|
347
|
+
can_tasks_delete: boolean;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
interface IPermissionsStore {
|
|
351
|
+
permissions: IPermissions;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
export const PermissionsStore = new Store<IPermissionsStore>({
|
|
355
|
+
permissions: null,
|
|
356
|
+
});
|
|
@@ -1064,15 +1064,19 @@ export enum Permission {
|
|
|
1064
1064
|
CAN_MANAGE_EXAMS_PROFILE_PERMISSIONS_EDIT = 'can_manage_exams_profile_permissions_edit',
|
|
1065
1065
|
CAN_MANAGE_EXAMS_PROFILE_PERMISSIONS_DELETE = 'can_manage_exams_profile_permissions_delete',
|
|
1066
1066
|
|
|
1067
|
+
|
|
1067
1068
|
// End Semester Examination
|
|
1068
1069
|
CAN_END_SEMESTER_EXAMINATIONS_VIEW = 'can_end_semester_examinations_view',
|
|
1069
1070
|
CAN_END_SEMESTER_EXAMINATIONS_ADD = 'can_end_semester_examinations_add',
|
|
1070
1071
|
CAN_END_SEMESTER_EXAMINATIONS_EDIT = 'can_end_semester_examinations_edit',
|
|
1071
1072
|
CAN_END_SEMESTER_EXAMINATIONS_DELETE = 'can_end_semester_examinations_delete',
|
|
1073
|
+
CAN_END_SEMESTER_EXAMINATIONS_NOTIFICATION_DETAILS_VIEW = "can_end_semester_examinations_notification_details_view",
|
|
1072
1074
|
|
|
1073
1075
|
// Registrations
|
|
1074
1076
|
CAN_EXAM_REGISTARTIONS_VIEW = 'can_exam_registrations_view',
|
|
1075
1077
|
CAN_EXAM_REGISTARTIONS_ADD = 'can_exam_registrations_add',
|
|
1078
|
+
CAN_EXAM_REGISTARTIONS_CHALLAN_UPLOAD = "can_exam_registrations_challan_upload",
|
|
1079
|
+
CAN_EXAM_REGISTARTIONS_SUBMIT = "can_exam_registrations_submit",
|
|
1076
1080
|
|
|
1077
1081
|
// Fee configuration
|
|
1078
1082
|
EXAM_FEE_CONFIGURATION_VIEW = 'can_exam_fee_configuration_view',
|
|
@@ -1086,21 +1090,25 @@ export enum Permission {
|
|
|
1086
1090
|
|
|
1087
1091
|
// Hall tickets
|
|
1088
1092
|
CAN_HALL_TICKETS_VIEW = 'can_hall_tickets_view',
|
|
1093
|
+
CAN_HALL_TICKETS_DOWNLOAD = "can_hall_tickets_download",
|
|
1089
1094
|
|
|
1090
1095
|
// OMRS
|
|
1091
1096
|
CAN_OMRS_VIEW = 'can_omrs_view',
|
|
1092
1097
|
CAN_OMRS_UPDATE = 'can_omrs_update',
|
|
1093
1098
|
CAN_OMRS_GENERATE = 'can_omrs_generate',
|
|
1099
|
+
CAN_OMRS_DOWNLOAD = "can_omrs_download",
|
|
1094
1100
|
|
|
1095
1101
|
// Paper Configuration
|
|
1096
1102
|
CAN_PAPER_CONFIGURATION_VIEW = 'can_paper_configuration_view',
|
|
1097
1103
|
CAN_PAPER_CONFIGURATION_ADD = 'can_paper_configuration_add',
|
|
1098
1104
|
CAN_PAPER_CONFIGURATION_EDIT = 'can_paper_configuration_edit',
|
|
1099
1105
|
CAN_PAPER_CONFIGURATION_DELETE = 'can_paper_configuration_delete',
|
|
1106
|
+
CAN_PAPER_CONFIGURATION_DOWNLOAD = "can_paper_configuration_download",
|
|
1100
1107
|
|
|
1101
1108
|
// D Form
|
|
1102
1109
|
CAN_D_FORM_VIEW = 'can_d_forms_view',
|
|
1103
1110
|
CAN_D_FORM_ADD = 'can_d_forms_add',
|
|
1111
|
+
CAN_D_FORM_DOWNLOAD = "can_d_forms_download",
|
|
1104
1112
|
|
|
1105
1113
|
// Bundling
|
|
1106
1114
|
CAN_VIEW_ANSWER_SHEET_REPORT = 'can_view_answer_sheet_report',
|