Skip to content

Commit 6f18ee8

Browse files
Copilotclackner-gpa
andcommitted
Add quick-save button to WizardHome for edit mode (btn-success, left of Next)
Co-authored-by: clackner-gpa <52460212+clackner-gpa@users.noreply.github.com> Agent-Logs-Url: https://github.com/GridProtectionAlliance/openXDA/sessions/bad3bfe2-e021-4f1b-a406-78811ea47a03
1 parent 3aa33fc commit 6f18ee8

File tree

1 file changed

+17
-1
lines changed
  • Source/Applications/openXDA/openXDA/wwwroot/SPCTools/Scripts/TSX/Wizard

1 file changed

+17
-1
lines changed

Source/Applications/openXDA/openXDA/wwwroot/SPCTools/Scripts/TSX/Wizard/WizardHome.tsx

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import * as React from 'react';
2525
import GeneralSettings from './GeneralSettings';
2626

27-
import { selectStatus, next, back, selectTab, selectErrors, SaveWizard, selectWizardEror, ResetWizzard } from './DynamicWizzardSlice'
27+
import { selectStatus, next, back, selectTab, selectErrors, SaveWizard, selectWizardEror, ResetWizzard, selectAlarmGroup } from './DynamicWizzardSlice'
2828
import { useSelector, useDispatch } from 'react-redux';
2929

3030
import { ToolTip, ProgressBar, ServerErrorIcon, LoadingIcon } from '@gpa-gemstone/react-interactive';
@@ -47,8 +47,12 @@ const WizardHome = (props: IProps) => {
4747
const dispatch = useDispatch();
4848
const errors = useSelector(selectErrors);
4949
const wizardError = useSelector(selectWizardEror);
50+
const alarmGroup = useSelector(selectAlarmGroup);
51+
52+
const isEditMode = alarmGroup != null && alarmGroup.ID != null && alarmGroup.ID !== -1;
5053

5154
const [hover, setHover] = React.useState<boolean>(false);
55+
const [hoverSave, setHoverSave] = React.useState<boolean>(false);
5256

5357

5458
// Define Step Numbers
@@ -116,6 +120,13 @@ const WizardHome = (props: IProps) => {
116120
</div>
117121
</div>
118122
<div className="btn-group mr-2 " role="group">
123+
{isEditMode && tab !== 'test' ?
124+
<button type="button" className={"btn btn-success" + (errors.some(item => (item.complete == 'required')) ? ' disabled' : '')}
125+
onClick={() => { if (!errors.some(item => (item.complete == 'required'))) dispatch(SaveWizard()); }}
126+
data-tooltip='quickSaveTip' onMouseEnter={() => setHoverSave(true)} onMouseLeave={() => setHoverSave(false)}>
127+
{status != 'idle' ? <LoadingIcon Show={true} Size={40} /> : "Save"}
128+
</button>
129+
: null}
119130
<button type="button" className={"btn btn-success" + (errors.some(item => (item.complete == 'required')) ? ' disabled' : '')}
120131
onClick={() => Continue()} data-tooltip='registerTip' onMouseEnter={() => setHover(true)} onMouseLeave={() => setHover(false)}>
121132
{status != 'idle' ? <LoadingIcon Show={true} Size={40} /> : (tab == "test" ? "Save" : "Continue")}
@@ -127,6 +138,11 @@ const WizardHome = (props: IProps) => {
127138
{errors.map((item, index) => <Requirements {...item} key={index} />)}
128139
</ToolTip>
129140
: null}
141+
{isEditMode && tab !== 'test' ?
142+
<ToolTip Show={hoverSave && errors.length > 0} Position={'left'} Theme={'dark'} Target={"quickSaveTip"}>
143+
{errors.map((item, index) => <Requirements {...item} key={index} />)}
144+
</ToolTip>
145+
: null}
130146
{tab == 'setpoint' ? <FunctionHelp /> : null}
131147
</div>
132148
);

0 commit comments

Comments
 (0)