Skip to content

Commit 249f119

Browse files
committed
Merge remote-tracking branch 'upstream/dev' into dev
2 parents ee6aa12 + 9489fbb commit 249f119

File tree

3 files changed

+44
-16
lines changed

3 files changed

+44
-16
lines changed

src/components/tables/CippDatatable.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export default function CippDatatable({ path, params, ...rest }) {
2323
{data?.Metadata?.Queued && <CCallout color="info">{data?.Metadata?.QueueMessage}</CCallout>}
2424
<CippTable
2525
{...rest}
26+
endpointName={path}
2627
data={Array.isArray(data?.Results) ? data?.Results : data}
2728
isFetching={isFetching}
2829
error={error}

src/components/tables/CippTable.jsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import { debounce, update } from 'lodash-es'
3737
import { useSearchParams } from 'react-router-dom'
3838
import CopyToClipboard from 'react-copy-to-clipboard'
3939
import { setDefaultColumns } from 'src/store/features/app'
40+
import { end } from '@popperjs/core'
4041

4142
const FilterComponent = ({ filterText, onFilter, onClear, filterlist, onFilterPreset }) => (
4243
<>
@@ -122,6 +123,7 @@ export default function CippTable({
122123
exportFiltered = false,
123124
filterlist,
124125
showFilter = true,
126+
endpointName,
125127
tableProps: {
126128
keyField = 'id',
127129
theme = 'cyberdrain',
@@ -146,7 +148,7 @@ export default function CippTable({
146148
}) {
147149
const inputRef = useRef('')
148150
const [loopRunning, setLoopRunning] = React.useState(false)
149-
const defaultColumns = useSelector((state) => state.app.defaultColumns[reportName])
151+
const defaultColumns = useSelector((state) => state.app.defaultColumns[endpointName])
150152
const [defaultColumnsSet, setDefaultColumnsSet] = React.useState(false)
151153
const [massResults, setMassResults] = React.useState([])
152154
const [filterText, setFilterText] = React.useState(defaultFilterText)
@@ -334,14 +336,14 @@ export default function CippTable({
334336

335337
const resetDropdown = () => {
336338
setUpdatedColumns(originalColumns)
337-
setColumnDefaultLayout(reportName, null)
339+
setColumnDefaultLayout(endpointName, null)
338340
}
339341
const dispatch = useDispatch()
340342
useEffect(() => {
341343
if (columns.length !== updatedColumns.length) {
342344
setUpdatedColumns(updatedColumns)
343345
setColumnDefaultLayout(
344-
reportName,
346+
endpointName,
345347
updatedColumns.map((column) => column.exportSelector).join(','),
346348
)
347349
}
@@ -351,7 +353,7 @@ export default function CippTable({
351353
dispatch,
352354
dynamicColumns,
353355
originalColumns,
354-
reportName,
356+
endpointName,
355357
setColumnDefaultLayout,
356358
updatedColumns,
357359
])
@@ -855,7 +857,8 @@ export default function CippTable({
855857
data,
856858
dynamicColumns,
857859
reportName,
858-
originalColumns,
860+
resetDropdown,
861+
updatedColumns,
859862
addColumn,
860863
setGraphFilter,
861864
])

src/views/tenant/administration/ListAlertsQueue.jsx

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import React, { useState } from 'react'
22
import { CButton, CCallout, CCol, CForm, CRow, CSpinner, CTooltip } from '@coreui/react'
33
import { useSelector } from 'react-redux'
4-
import { Field, Form } from 'react-final-form'
5-
import { RFFCFormSwitch } from 'src/components/forms'
4+
import { Field, Form, FormSpy } from 'react-final-form'
5+
import { RFFCFormInput, RFFCFormSwitch } from 'src/components/forms'
66
import {
77
useGenericGetRequestQuery,
88
useLazyGenericGetRequestQuery,
@@ -14,7 +14,6 @@ import { CippContentCard, CippPage, CippPageList } from 'src/components/layout'
1414
import { CellTip } from 'src/components/tables/CellGenericFormat'
1515
import 'react-datepicker/dist/react-datepicker.css'
1616
import { CippActionsOffcanvas, ModalService, TenantSelector } from 'src/components/utilities'
17-
import CippCodeOffCanvas from 'src/components/utilities/CippCodeOffcanvas'
1817
import arrayMutators from 'final-form-arrays'
1918
const alertsList = [
2019
{ name: 'MFAAlertUsers', label: 'Alert on users without any form of MFA' },
@@ -25,8 +24,20 @@ const alertsList = [
2524
'Alert on tenants without a Conditional Access policy, while having Conditional Access licensing available.',
2625
},
2726
{ name: 'AdminPassword', label: 'Alert on changed admin Passwords' },
28-
{ name: 'QuotaUsed', label: 'Alert on 90% mailbox quota used' },
29-
{ name: 'SharePointQuota', label: 'Alert on 90% SharePoint quota used' },
27+
{
28+
name: 'QuotaUsed',
29+
label: 'Alert on % mailbox quota used',
30+
requiresInput: true,
31+
inputLabel: 'Enter quota percentage',
32+
inputName: 'QuotaUsedQuota',
33+
},
34+
{
35+
name: 'SharePointQuota',
36+
label: 'Alert on % SharePoint quota used',
37+
requiresInput: true,
38+
inputLabel: 'Enter quota percentage',
39+
inputName: 'SharePointQuotaQuota',
40+
},
3041
{ name: 'ExpiringLicenses', label: 'Alert on licenses expiring in 30 days' },
3142
{ name: 'SecDefaultsUpsell', label: 'Alert on Security Defaults automatic enablement' },
3243
{
@@ -121,7 +132,7 @@ const ListClassicAlerts = () => {
121132
const [genericPostRequest, postResults] = useLazyGenericPostRequestQuery()
122133
const onSubmit = (values) => {
123134
Object.keys(values).filter(function (x) {
124-
if (values[x] === null) {
135+
if (values[x] === null || values[x] === 0) {
125136
delete values[x]
126137
}
127138
return null
@@ -201,11 +212,24 @@ const ListClassicAlerts = () => {
201212
<hr />
202213
{alertsList.map((alert, index) => (
203214
<CCol key={alert.name} md="6">
204-
<RFFCFormSwitch
205-
name={alert.name}
206-
label={alert.label}
207-
sublabel={getLabel(alert.name)}
208-
/>
215+
<RFFCFormSwitch name={alert.name} label={alert.label} />
216+
{alert.requiresInput && (
217+
<FormSpy subscription={{ values: true }}>
218+
{({ values }) => {
219+
if (values[alert.name]) {
220+
return (
221+
<RFFCFormInput
222+
name={`${alert.inputName}`}
223+
placeholder={alert.inputLabel}
224+
initialValue={alert.defaultValue} // Set the initial value
225+
type="number"
226+
/>
227+
)
228+
}
229+
return null
230+
}}
231+
</FormSpy>
232+
)}
209233
</CCol>
210234
))}
211235
</CRow>

0 commit comments

Comments
 (0)