From ebd5f9d4b72ef9dd90669ab8ca7ec4158fac45e3 Mon Sep 17 00:00:00 2001 From: Trong Le Date: Wed, 23 Aug 2023 00:14:14 -0700 Subject: [PATCH] Add default disable checks --- src/client/app/actions/admin.ts | 7 ++++- .../components/admin/PreferencesComponent.tsx | 27 ++++++++++++++++++- .../meters/CreateMeterModalComponent.tsx | 4 +-- .../containers/admin/PreferencesContainer.ts | 9 ++++--- src/client/app/reducers/admin.ts | 12 +++++++-- src/client/app/translations/data.js | 9 ++++--- src/client/app/types/items.ts | 1 + src/client/app/types/redux/actions.ts | 1 + src/client/app/types/redux/admin.ts | 9 ++++++- src/server/models/Preferences.js | 10 ++++--- src/server/routes/preferences.js | 3 +++ .../services/csvPipeline/uploadReadings.js | 2 +- .../services/obvius/loadLogfileToReadings.js | 2 +- src/server/services/readMamacMeters.js | 2 +- .../preferences/create_preferences_table.sql | 3 ++- .../sql/preferences/insert_default_row.sql | 4 +-- .../sql/preferences/update_preferences.sql | 3 ++- 17 files changed, 85 insertions(+), 23 deletions(-) diff --git a/src/client/app/actions/admin.ts b/src/client/app/actions/admin.ts index 06a18f241..178150cc7 100644 --- a/src/client/app/actions/admin.ts +++ b/src/client/app/actions/admin.ts @@ -85,6 +85,10 @@ export function updateDefaultMeterMaximumErrors(defaultMeterMaximumErrors: numbe return { type: ActionType.UpdateDefaultMeterMaximumErrors, defaultMeterMaximumErrors }; } +export function updateDefaultMeterDisableChecks(defaultMeterDisableChecks: boolean): t.UpdateDefaultMeterDisableChecksAction { + return { type: ActionType.UpdateDefaultMeterDisableChecks, defaultMeterDisableChecks }; +} + function requestPreferences(): t.RequestPreferencesAction { return { type: ActionType.RequestPreferences }; } @@ -187,7 +191,8 @@ export function submitPreferences() { defaultMeterMinimumDate: state.admin.defaultMeterMinimumDate, defaultMeterMaximumDate: state.admin.defaultMeterMaximumDate, defaultMeterReadingGap: state.admin.defaultMeterReadingGap, - defaultMeterMaximumErrors: state.admin.defaultMeterMaximumErrors + defaultMeterMaximumErrors: state.admin.defaultMeterMaximumErrors, + defaultMeterDisableChecks: state.admin.defaultMeterDisableChecks }); // Only return the defaultMeterReadingFrequency because the value from the DB // generally differs from what the user input so update state with DB value. diff --git a/src/client/app/components/admin/PreferencesComponent.tsx b/src/client/app/components/admin/PreferencesComponent.tsx index a636b5c67..b8e5683a3 100644 --- a/src/client/app/components/admin/PreferencesComponent.tsx +++ b/src/client/app/components/admin/PreferencesComponent.tsx @@ -21,7 +21,8 @@ import { UpdateDefaultMeterMinimumDateAction, UpdateDefaultMeterMaximumDateAction, UpdateDefaultMeterReadingGapAction, - UpdateDefaultMeterMaximumErrorsAction + UpdateDefaultMeterMaximumErrorsAction, + UpdateDefaultMeterDisableChecksAction } from '../../types/redux/admin'; import { removeUnsavedChanges, updateUnsavedChanges } from '../../actions/unsavedWarning'; @@ -31,6 +32,8 @@ import TimeZoneSelect from '../TimeZoneSelect'; import store from '../../index'; import { fetchPreferencesIfNeeded, submitPreferences } from '../../actions/admin'; import { AreaUnitType } from '../../utils/getAreaUnitConversion'; +import translate from '../../utils/translate'; +import { TrueFalseType } from '../../types/items'; interface PreferencesProps { displayTitle: string; @@ -50,6 +53,7 @@ interface PreferencesProps { defaultMeterMaximumDate: string; defaultMeterReadingGap: number; defaultMeterMaximumErrors: number; + defaultMeterDisableChecks: boolean; updateDisplayTitle(title: string): UpdateDisplayTitleAction; updateDefaultChartType(defaultChartToRender: ChartTypes): UpdateDefaultChartToRenderAction; toggleDefaultBarStacking(): ToggleDefaultBarStackingAction; @@ -67,10 +71,12 @@ interface PreferencesProps { updateDefaultMeterMaximumDate(defaultMeterMaximumDate: string): UpdateDefaultMeterMaximumDateAction; updateDefaultMeterReadingGap(defaultMeterReadingGap: number): UpdateDefaultMeterReadingGapAction; updateDefaultMeterMaximumErrors(defaultMeterMaximumErrors: number): UpdateDefaultMeterMaximumErrorsAction; + updateDefaultMeterDisableChecks(defaultMeterDisableChecks: boolean): UpdateDefaultMeterDisableChecksAction; } type PreferencesPropsWithIntl = PreferencesProps & WrappedComponentProps; +// TODO: Add warning for invalid data class PreferencesComponent extends React.Component { constructor(props: PreferencesPropsWithIntl) { super(props); @@ -91,6 +97,7 @@ class PreferencesComponent extends React.Component { this.handleDefaultMeterMaximumDateChange = this.handleDefaultMeterMaximumDateChange.bind(this); this.handleDefaultMeterReadingGapChange = this.handleDefaultMeterReadingGapChange.bind(this); this.handleDefaultMeterMaximumErrorsChange = this.handleDefaultMeterMaximumErrorsChange.bind(this); + this.handleDefaultMeterDisableChecksChange = this.handleDefaultMeterDisableChecksChange.bind(this); } public render() { @@ -385,6 +392,19 @@ class PreferencesComponent extends React.Component { maxLength={50} /> +
+

+ : +

+ + {Object.keys(TrueFalseType).map(key => { + return () + })} + +