1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
/**
* ============LICENSE_START========================================================================
* ONAP : ccsdk feature sdnr wt odlux
* =================================================================================================
* Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
* =================================================================================================
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
* ============LICENSE_END==========================================================================
*/
import * as React from 'react';
import Button from '@material-ui/core/Button';
import Dialog from '@material-ui/core/Dialog';
import DialogActions from '@material-ui/core/DialogActions';
import DialogContent from '@material-ui/core/DialogContent';
import DialogContentText from '@material-ui/core/DialogContentText';
import DialogTitle from '@material-ui/core/DialogTitle';
import { alarmLogEntriesReloadAction } from '../handlers/alarmLogEntriesHandler';
import { IDispatcher, connect, Connect } from '../../../../framework/src/flux/connect';
import { Fault } from '../models/fault';
export enum RefreshAlarmLogDialogMode {
None = "none",
RefreshAlarmLogTable = "RefreshAlarmLogTable",
}
const mapDispatch = (dispatcher: IDispatcher) => ({
refreshAlarmLog: () => dispatcher.dispatch(alarmLogEntriesReloadAction)
});
type DialogSettings = {
dialogTitle: string,
dialogDescription: string,
applyButtonText: string,
cancelButtonText: string,
enableMountIdEditor: boolean,
enableUsernameEditor: boolean,
enableExtendedEditor: boolean,
}
const settings: { [key: string]: DialogSettings } = {
[RefreshAlarmLogDialogMode.None]: {
dialogTitle: "",
dialogDescription: "",
applyButtonText: "",
cancelButtonText: "",
enableMountIdEditor: false,
enableUsernameEditor: false,
enableExtendedEditor: false,
},
[RefreshAlarmLogDialogMode.RefreshAlarmLogTable]: {
dialogTitle: "Do you want to refresh the Alarm Log?",
dialogDescription: "",
applyButtonText: "Yes",
cancelButtonText: "Cancel",
enableMountIdEditor: true,
enableUsernameEditor: true,
enableExtendedEditor: true,
}
}
type RefreshAlarmLogDialogComponentProps = Connect<undefined, typeof mapDispatch> & {
mode: RefreshAlarmLogDialogMode;
onClose: () => void;
};
type RefreshAlarmLogDialogComponentState = Fault & { isNameValid: boolean, isHostSet: boolean };
class RefreshAlarmLogDialogComponent extends React.Component<RefreshAlarmLogDialogComponentProps, RefreshAlarmLogDialogComponentState> {
constructor(props: RefreshAlarmLogDialogComponentProps) {
super(props);
}
render(): JSX.Element {
const setting = settings[this.props.mode];
return (
<Dialog open={this.props.mode !== RefreshAlarmLogDialogMode.None}>
<DialogTitle id="form-dialog-title" aria-label={`${setting.dialogTitle.replace(/ /g, "-").toLowerCase()}-dialog`}>{setting.dialogTitle}</DialogTitle>
<DialogContent>
<DialogContentText>
{setting.dialogDescription}
</DialogContentText>
</DialogContent>
<DialogActions>
<Button aria-label="dialog-confirm-button" onClick={(event) => {
this.onRefresh();
}} > {setting.applyButtonText} </Button>
<Button aria-label="dialog-cancel-button" onClick={(event) => {
this.onCancel();
}} color="secondary"> {setting.cancelButtonText} </Button>
</DialogActions>
</Dialog>
)
}
private onRefresh = () => {
this.props.refreshAlarmLog();
this.props.onClose();
};
private onCancel = () => {
this.props.onClose();
}
}
export const RefreshAlarmLogDialog = connect(undefined, mapDispatch)(RefreshAlarmLogDialogComponent);
export default RefreshAlarmLogDialog;
|