@oneuptime/common 7.0.3309 → 7.0.3336
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/Server/Services/DatabaseService.ts +3 -0
- package/Server/Utils/Monitor/MonitorResource.ts +78 -0
- package/Types/ColorSwatch.ts +27 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -1
- package/Types/Dashboard/DashboardComponents/DashboardChartComponent.ts +6 -2
- package/Types/Dashboard/DashboardComponents/DashboardValueComponent.ts +3 -2
- package/Types/Metrics/MetricAliasData.ts +5 -3
- package/Types/Metrics/MetricQueryConfigData.ts +1 -1
- package/Types/ObjectID.ts +1 -1
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +12 -2
- package/UI/Components/Charts/Line/LineChart.tsx +8 -1
- package/UI/Components/Date/StartAndEndDate.tsx +131 -116
- package/UI/Components/Forms/BasicForm.tsx +7 -0
- package/UI/Components/HeaderAlert/HeaderAlert.tsx +8 -0
- package/UI/Components/Modal/ConfirmModal.tsx +2 -0
- package/UI/Components/Modal/Modal.tsx +4 -0
- package/UI/Components/Modal/ModalFooter.tsx +2 -1
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +1 -1
- package/Utils/Dashboard/Components/DashboardChartComponent.ts +45 -6
- package/Utils/Dashboard/Components/DashboardValueComponent.ts +21 -5
- package/Utils/Monitor/MonitorMetricType.ts +46 -0
- package/build/dist/Server/Services/DatabaseService.js +2 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +71 -13
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Types/ColorSwatch.js +28 -0
- package/build/dist/Types/ColorSwatch.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/ObjectID.js +2 -1
- package/build/dist/Types/ObjectID.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js +5 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Date/StartAndEndDate.js +2 -2
- package/build/dist/UI/Components/Date/StartAndEndDate.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js +5 -0
- package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
- package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +5 -0
- package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js +1 -1
- package/build/dist/UI/Components/Modal/ConfirmModal.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +1 -1
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js +41 -6
- package/build/dist/Utils/Dashboard/Components/DashboardChartComponent.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js +20 -5
- package/build/dist/Utils/Dashboard/Components/DashboardValueComponent.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +40 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/package.json +2 -2
|
@@ -1392,6 +1392,9 @@ class DatabaseService<TBaseModel extends BaseModel> extends BaseService {
|
|
|
1392
1392
|
...data,
|
|
1393
1393
|
} as any;
|
|
1394
1394
|
|
|
1395
|
+
logger.debug("Updated Item");
|
|
1396
|
+
logger.debug(JSON.stringify(updatedItem, null, 2));
|
|
1397
|
+
|
|
1395
1398
|
await this.getRepository().save(updatedItem);
|
|
1396
1399
|
|
|
1397
1400
|
// hit workflow.
|
|
@@ -93,6 +93,7 @@ export default class MonitorResourceUtil {
|
|
|
93
93
|
disableActiveMonitoringBecauseOfScheduledMaintenanceEvent: true,
|
|
94
94
|
currentMonitorStatusId: true,
|
|
95
95
|
_id: true,
|
|
96
|
+
name: true,
|
|
96
97
|
},
|
|
97
98
|
props: {
|
|
98
99
|
isRoot: true,
|
|
@@ -137,6 +138,9 @@ export default class MonitorResourceUtil {
|
|
|
137
138
|
);
|
|
138
139
|
}
|
|
139
140
|
|
|
141
|
+
let probeName: string | undefined = undefined;
|
|
142
|
+
const monitorName: string | undefined = monitor.name || undefined;
|
|
143
|
+
|
|
140
144
|
// save the last log to MonitorProbe.
|
|
141
145
|
|
|
142
146
|
// get last log. We do this because there are many monitoring steps and we need to store those.
|
|
@@ -160,6 +164,9 @@ export default class MonitorResourceUtil {
|
|
|
160
164
|
},
|
|
161
165
|
select: {
|
|
162
166
|
lastMonitoringLog: true,
|
|
167
|
+
probe: {
|
|
168
|
+
name: true,
|
|
169
|
+
},
|
|
163
170
|
},
|
|
164
171
|
props: {
|
|
165
172
|
isRoot: true,
|
|
@@ -170,6 +177,8 @@ export default class MonitorResourceUtil {
|
|
|
170
177
|
throw new BadDataException("Probe is not assigned to this monitor");
|
|
171
178
|
}
|
|
172
179
|
|
|
180
|
+
probeName = monitorProbe.probe?.name || undefined;
|
|
181
|
+
|
|
173
182
|
await MonitorProbeService.updateOneBy({
|
|
174
183
|
query: {
|
|
175
184
|
monitorId: monitor.id!,
|
|
@@ -252,6 +261,8 @@ export default class MonitorResourceUtil {
|
|
|
252
261
|
monitorId: monitor.id!,
|
|
253
262
|
projectId: monitor.projectId!,
|
|
254
263
|
dataToProcess: dataToProcess,
|
|
264
|
+
probeName: probeName || undefined,
|
|
265
|
+
monitorName: monitorName || undefined,
|
|
255
266
|
});
|
|
256
267
|
} catch (err) {
|
|
257
268
|
logger.error("Unable to save metrics");
|
|
@@ -564,6 +575,8 @@ export default class MonitorResourceUtil {
|
|
|
564
575
|
monitorId: ObjectID;
|
|
565
576
|
projectId: ObjectID;
|
|
566
577
|
dataToProcess: DataToProcess;
|
|
578
|
+
probeName: string | undefined;
|
|
579
|
+
monitorName: string | undefined;
|
|
567
580
|
}): Promise<void> {
|
|
568
581
|
if (!data.monitorId) {
|
|
569
582
|
return;
|
|
@@ -611,6 +624,14 @@ export default class MonitorResourceUtil {
|
|
|
611
624
|
projectId: data.projectId.toString(),
|
|
612
625
|
};
|
|
613
626
|
|
|
627
|
+
if (data.monitorName) {
|
|
628
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
if (data.probeName) {
|
|
632
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
633
|
+
}
|
|
634
|
+
|
|
614
635
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
615
636
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
616
637
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -641,6 +662,14 @@ export default class MonitorResourceUtil {
|
|
|
641
662
|
projectId: data.projectId.toString(),
|
|
642
663
|
};
|
|
643
664
|
|
|
665
|
+
if (data.monitorName) {
|
|
666
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
if (data.probeName) {
|
|
670
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
671
|
+
}
|
|
672
|
+
|
|
644
673
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
645
674
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
646
675
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -664,6 +693,14 @@ export default class MonitorResourceUtil {
|
|
|
664
693
|
projectId: data.projectId.toString(),
|
|
665
694
|
};
|
|
666
695
|
|
|
696
|
+
if (data.monitorName) {
|
|
697
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
if (data.probeName) {
|
|
701
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
702
|
+
}
|
|
703
|
+
|
|
667
704
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
668
705
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
669
706
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -689,6 +726,15 @@ export default class MonitorResourceUtil {
|
|
|
689
726
|
diskPath: diskMetric.diskPath,
|
|
690
727
|
};
|
|
691
728
|
|
|
729
|
+
if (data.monitorName) {
|
|
730
|
+
monitorMetric.attributes["monitorName"] =
|
|
731
|
+
data.monitorName.toString();
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
if (data.probeName) {
|
|
735
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
736
|
+
}
|
|
737
|
+
|
|
692
738
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
693
739
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
694
740
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -721,6 +767,14 @@ export default class MonitorResourceUtil {
|
|
|
721
767
|
).probeId.toString(),
|
|
722
768
|
};
|
|
723
769
|
|
|
770
|
+
if (data.monitorName) {
|
|
771
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
if (data.probeName) {
|
|
775
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
776
|
+
}
|
|
777
|
+
|
|
724
778
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
725
779
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
726
780
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -758,6 +812,14 @@ export default class MonitorResourceUtil {
|
|
|
758
812
|
screenSizeType: syntheticMonitorResponse.screenSizeType,
|
|
759
813
|
};
|
|
760
814
|
|
|
815
|
+
if (data.monitorName) {
|
|
816
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
817
|
+
}
|
|
818
|
+
|
|
819
|
+
if (data.probeName) {
|
|
820
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
821
|
+
}
|
|
822
|
+
|
|
761
823
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
762
824
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
763
825
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -786,6 +848,14 @@ export default class MonitorResourceUtil {
|
|
|
786
848
|
).probeId.toString(),
|
|
787
849
|
};
|
|
788
850
|
|
|
851
|
+
if (data.monitorName) {
|
|
852
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
if (data.probeName) {
|
|
856
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
857
|
+
}
|
|
858
|
+
|
|
789
859
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
790
860
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
791
861
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -814,6 +884,14 @@ export default class MonitorResourceUtil {
|
|
|
814
884
|
).probeId.toString(),
|
|
815
885
|
};
|
|
816
886
|
|
|
887
|
+
if (data.monitorName) {
|
|
888
|
+
monitorMetric.attributes["monitorName"] = data.monitorName.toString();
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
if (data.probeName) {
|
|
892
|
+
monitorMetric.attributes["probeName"] = data.probeName.toString();
|
|
893
|
+
}
|
|
894
|
+
|
|
817
895
|
monitorMetric.time = OneUptimeDate.getCurrentDate();
|
|
818
896
|
monitorMetric.timeUnixNano = OneUptimeDate.getCurrentDateAsUnixNano();
|
|
819
897
|
monitorMetric.metricPointType = MetricPointType.Sum;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
enum ColorSwatch {
|
|
2
|
+
Zinc = "zinc",
|
|
3
|
+
Neutra = "neutra",
|
|
4
|
+
Stone = "stone",
|
|
5
|
+
Slate = "slate",
|
|
6
|
+
Purple = "purple",
|
|
7
|
+
Pink = "pink",
|
|
8
|
+
Red = "red",
|
|
9
|
+
Orange = "orange",
|
|
10
|
+
Yellow = "yellow",
|
|
11
|
+
Green = "green",
|
|
12
|
+
Teal = "teal",
|
|
13
|
+
Cyan = "cyan",
|
|
14
|
+
Gray = "gray",
|
|
15
|
+
Moroon = "moroon",
|
|
16
|
+
Blue = "blue",
|
|
17
|
+
Indigo = "indigo",
|
|
18
|
+
Amber = "amber",
|
|
19
|
+
Lime = "lime",
|
|
20
|
+
Emerald = "emerald",
|
|
21
|
+
Sky = "sky",
|
|
22
|
+
Violet = "violet",
|
|
23
|
+
Fuchsia = "fuchsia",
|
|
24
|
+
Rose = "rose",
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default ColorSwatch;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import MetricQueryConfigData from "../../Metrics/MetricQueryConfigData";
|
|
2
2
|
import ObjectID from "../../ObjectID";
|
|
3
3
|
import DashboardComponentType from "../DashboardComponentType";
|
|
4
4
|
import BaseComponent from "./DashboardBaseComponent";
|
|
@@ -7,6 +7,10 @@ export default interface DashboardChartComponent extends BaseComponent {
|
|
|
7
7
|
componentType: DashboardComponentType.Chart;
|
|
8
8
|
componentId: ObjectID;
|
|
9
9
|
arguments: {
|
|
10
|
-
|
|
10
|
+
metricQueryConfig?: MetricQueryConfigData | undefined;
|
|
11
|
+
chartTitle?: string | undefined;
|
|
12
|
+
chartDescription?: string | undefined;
|
|
13
|
+
legendText?: string | undefined;
|
|
14
|
+
legendUnit?: string | undefined;
|
|
11
15
|
};
|
|
12
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import MetricQueryConfigData from "../../Metrics/MetricQueryConfigData";
|
|
2
2
|
import ObjectID from "../../ObjectID";
|
|
3
3
|
import DashboardComponentType from "../DashboardComponentType";
|
|
4
4
|
import BaseComponent from "./DashboardBaseComponent";
|
|
@@ -7,6 +7,7 @@ export default interface DashboardValueComponent extends BaseComponent {
|
|
|
7
7
|
componentType: DashboardComponentType.Value;
|
|
8
8
|
componentId: ObjectID;
|
|
9
9
|
arguments: {
|
|
10
|
-
|
|
10
|
+
metricQueryConfig?: MetricQueryConfigData | undefined;
|
|
11
|
+
title: string;
|
|
11
12
|
};
|
|
12
13
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export default interface MetricAliasData {
|
|
2
|
-
metricVariable: string;
|
|
3
|
-
title: string;
|
|
4
|
-
description: string;
|
|
2
|
+
metricVariable: string | undefined;
|
|
3
|
+
title: string | undefined;
|
|
4
|
+
description: string | undefined;
|
|
5
|
+
legend: string | undefined;
|
|
6
|
+
legendUnit: string | undefined;
|
|
5
7
|
}
|
|
@@ -7,7 +7,7 @@ export interface ChartSeries {
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export default interface MetricQueryConfigData {
|
|
10
|
-
metricAliasData
|
|
10
|
+
metricAliasData?: MetricAliasData | undefined;
|
|
11
11
|
metricQueryData: MetricQueryData;
|
|
12
12
|
getSeries?: ((data: AggregatedModel) => ChartSeries) | undefined;
|
|
13
13
|
}
|
package/Types/ObjectID.ts
CHANGED
|
@@ -36,7 +36,7 @@ export default class ObjectID extends DatabaseProperty {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
public equals(other: ObjectID): boolean {
|
|
39
|
-
return this.id
|
|
39
|
+
return (this.id?.toString() || "") === (other.id?.toString() || "");
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
public override toString(): string {
|
|
@@ -18,6 +18,8 @@ export interface Chart {
|
|
|
18
18
|
|
|
19
19
|
export interface ComponentProps {
|
|
20
20
|
charts: Array<Chart>;
|
|
21
|
+
hideCard?: boolean | undefined;
|
|
22
|
+
heightInPx?: number | undefined;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
const ChartGroup: FunctionComponent<ComponentProps> = (
|
|
@@ -31,7 +33,10 @@ const ChartGroup: FunctionComponent<ComponentProps> = (
|
|
|
31
33
|
switch (chart.type) {
|
|
32
34
|
case ChartType.LINE:
|
|
33
35
|
return (
|
|
34
|
-
<div
|
|
36
|
+
<div
|
|
37
|
+
key={index}
|
|
38
|
+
className={`p-6 ${props.hideCard ? "" : "rounded-md bg-white shadow"}`}
|
|
39
|
+
>
|
|
35
40
|
<h2
|
|
36
41
|
data-testid="card-details-heading"
|
|
37
42
|
id="card-details-heading"
|
|
@@ -47,7 +52,12 @@ const ChartGroup: FunctionComponent<ComponentProps> = (
|
|
|
47
52
|
{chart.description}
|
|
48
53
|
</p>
|
|
49
54
|
)}
|
|
50
|
-
<LineChart
|
|
55
|
+
<LineChart
|
|
56
|
+
key={index}
|
|
57
|
+
{...chart.props}
|
|
58
|
+
syncid={syncId}
|
|
59
|
+
heightInPx={props.heightInPx}
|
|
60
|
+
/>
|
|
51
61
|
</div>
|
|
52
62
|
);
|
|
53
63
|
default:
|
|
@@ -13,6 +13,7 @@ export interface ComponentProps {
|
|
|
13
13
|
yAxis: YAxis;
|
|
14
14
|
curve: ChartCurve;
|
|
15
15
|
sync: boolean;
|
|
16
|
+
heightInPx?: number | undefined;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
export interface LineInternalProps extends ComponentProps {
|
|
@@ -42,9 +43,15 @@ const LineChartElement: FunctionComponent<LineInternalProps> = (
|
|
|
42
43
|
setRecords(records);
|
|
43
44
|
}, [props.data]);
|
|
44
45
|
|
|
46
|
+
const className: string = props.heightInPx ? `` : "h-80";
|
|
47
|
+
const style: React.CSSProperties = props.heightInPx
|
|
48
|
+
? { height: `${props.heightInPx}px` }
|
|
49
|
+
: {};
|
|
50
|
+
|
|
45
51
|
return (
|
|
46
52
|
<LineChart
|
|
47
|
-
className=
|
|
53
|
+
className={className}
|
|
54
|
+
style={style}
|
|
48
55
|
data={records}
|
|
49
56
|
tickGap={1}
|
|
50
57
|
index={"Time"}
|
|
@@ -13,6 +13,7 @@ export interface ComponentProps {
|
|
|
13
13
|
initialValue?: InBetween<Date> | undefined;
|
|
14
14
|
onValueChanged: (value: InBetween<Date> | null) => void;
|
|
15
15
|
type: StartAndEndDateType;
|
|
16
|
+
hideTimeButtons?: boolean | undefined;
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
type DateFilterFunction = (props: ComponentProps) => ReactElement;
|
|
@@ -212,17 +213,135 @@ const StartAndEndDate: DateFilterFunction = (
|
|
|
212
213
|
</div>
|
|
213
214
|
</div>
|
|
214
215
|
|
|
215
|
-
|
|
216
|
-
|
|
216
|
+
{!props.hideTimeButtons && (
|
|
217
|
+
<div className="mt-1 flex space-x-2 -ml-3">
|
|
218
|
+
{props.type === StartAndEndDateType.DateTime && (
|
|
219
|
+
<Button
|
|
220
|
+
buttonStyle={
|
|
221
|
+
is1Hour ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
222
|
+
}
|
|
223
|
+
buttonSize={ButtonSize.Small}
|
|
224
|
+
onClick={() => {
|
|
225
|
+
// set it to past 1 hour
|
|
226
|
+
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
227
|
+
const startDate: Date = OneUptimeDate.addRemoveHours(
|
|
228
|
+
endDate,
|
|
229
|
+
-1,
|
|
230
|
+
);
|
|
231
|
+
|
|
232
|
+
setStartDateTime(startDate);
|
|
233
|
+
setEndDateTime(endDate);
|
|
234
|
+
}}
|
|
235
|
+
title="1 hour"
|
|
236
|
+
/>
|
|
237
|
+
)}
|
|
238
|
+
|
|
239
|
+
{props.type === StartAndEndDateType.DateTime && (
|
|
240
|
+
<Button
|
|
241
|
+
buttonStyle={
|
|
242
|
+
is3Hours ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
243
|
+
}
|
|
244
|
+
buttonSize={ButtonSize.Small}
|
|
245
|
+
onClick={() => {
|
|
246
|
+
// set it to past 3 hour
|
|
247
|
+
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
248
|
+
const startDate: Date = OneUptimeDate.addRemoveHours(
|
|
249
|
+
endDate,
|
|
250
|
+
-3,
|
|
251
|
+
);
|
|
252
|
+
|
|
253
|
+
setStartDateTime(startDate);
|
|
254
|
+
setEndDateTime(endDate);
|
|
255
|
+
}}
|
|
256
|
+
title="3 hours"
|
|
257
|
+
/>
|
|
258
|
+
)}
|
|
259
|
+
|
|
260
|
+
<Button
|
|
261
|
+
buttonStyle={
|
|
262
|
+
is1Day ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
263
|
+
}
|
|
264
|
+
buttonSize={ButtonSize.Small}
|
|
265
|
+
onClick={() => {
|
|
266
|
+
// set it to past 1 day
|
|
267
|
+
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
268
|
+
const startDate: Date = OneUptimeDate.addRemoveDays(
|
|
269
|
+
endDate,
|
|
270
|
+
-1,
|
|
271
|
+
);
|
|
272
|
+
|
|
273
|
+
setStartDateTime(startDate);
|
|
274
|
+
setEndDateTime(endDate);
|
|
275
|
+
}}
|
|
276
|
+
title="1 day"
|
|
277
|
+
/>
|
|
278
|
+
|
|
279
|
+
<Button
|
|
280
|
+
buttonStyle={
|
|
281
|
+
is1Week ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
282
|
+
}
|
|
283
|
+
buttonSize={ButtonSize.Small}
|
|
284
|
+
onClick={() => {
|
|
285
|
+
// set it to past 1 week
|
|
286
|
+
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
287
|
+
const startDate: Date = OneUptimeDate.addRemoveDays(
|
|
288
|
+
endDate,
|
|
289
|
+
-7,
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
setStartDateTime(startDate);
|
|
293
|
+
setEndDateTime(endDate);
|
|
294
|
+
}}
|
|
295
|
+
title="1 week"
|
|
296
|
+
/>
|
|
297
|
+
|
|
298
|
+
<Button
|
|
299
|
+
buttonStyle={
|
|
300
|
+
is2Weeks ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
301
|
+
}
|
|
302
|
+
buttonSize={ButtonSize.Small}
|
|
303
|
+
onClick={() => {
|
|
304
|
+
// set it to past 1 week
|
|
305
|
+
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
306
|
+
const startDate: Date = OneUptimeDate.addRemoveDays(
|
|
307
|
+
endDate,
|
|
308
|
+
-14,
|
|
309
|
+
);
|
|
310
|
+
|
|
311
|
+
setStartDateTime(startDate);
|
|
312
|
+
setEndDateTime(endDate);
|
|
313
|
+
}}
|
|
314
|
+
title="2 weeks"
|
|
315
|
+
/>
|
|
316
|
+
|
|
217
317
|
<Button
|
|
218
318
|
buttonStyle={
|
|
219
|
-
|
|
319
|
+
is3Weeks ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
220
320
|
}
|
|
221
321
|
buttonSize={ButtonSize.Small}
|
|
222
322
|
onClick={() => {
|
|
223
|
-
// set it to past 1
|
|
323
|
+
// set it to past 1 week
|
|
224
324
|
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
225
|
-
const startDate: Date = OneUptimeDate.
|
|
325
|
+
const startDate: Date = OneUptimeDate.addRemoveDays(
|
|
326
|
+
endDate,
|
|
327
|
+
-21,
|
|
328
|
+
);
|
|
329
|
+
|
|
330
|
+
setStartDateTime(startDate);
|
|
331
|
+
setEndDateTime(endDate);
|
|
332
|
+
}}
|
|
333
|
+
title="3 weeks"
|
|
334
|
+
/>
|
|
335
|
+
|
|
336
|
+
<Button
|
|
337
|
+
buttonStyle={
|
|
338
|
+
is1Month ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
339
|
+
}
|
|
340
|
+
buttonSize={ButtonSize.Small}
|
|
341
|
+
onClick={() => {
|
|
342
|
+
// set it to past 1 month
|
|
343
|
+
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
344
|
+
const startDate: Date = OneUptimeDate.addRemoveMonths(
|
|
226
345
|
endDate,
|
|
227
346
|
-1,
|
|
228
347
|
);
|
|
@@ -230,20 +349,18 @@ const StartAndEndDate: DateFilterFunction = (
|
|
|
230
349
|
setStartDateTime(startDate);
|
|
231
350
|
setEndDateTime(endDate);
|
|
232
351
|
}}
|
|
233
|
-
title="1
|
|
352
|
+
title="1 month"
|
|
234
353
|
/>
|
|
235
|
-
)}
|
|
236
354
|
|
|
237
|
-
{props.type === StartAndEndDateType.DateTime && (
|
|
238
355
|
<Button
|
|
239
356
|
buttonStyle={
|
|
240
|
-
|
|
357
|
+
is3Months ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
241
358
|
}
|
|
242
359
|
buttonSize={ButtonSize.Small}
|
|
243
360
|
onClick={() => {
|
|
244
|
-
// set it to past
|
|
361
|
+
// set it to past 1 month
|
|
245
362
|
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
246
|
-
const startDate: Date = OneUptimeDate.
|
|
363
|
+
const startDate: Date = OneUptimeDate.addRemoveMonths(
|
|
247
364
|
endDate,
|
|
248
365
|
-3,
|
|
249
366
|
);
|
|
@@ -251,112 +368,10 @@ const StartAndEndDate: DateFilterFunction = (
|
|
|
251
368
|
setStartDateTime(startDate);
|
|
252
369
|
setEndDateTime(endDate);
|
|
253
370
|
}}
|
|
254
|
-
title="3
|
|
371
|
+
title="3 months"
|
|
255
372
|
/>
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
<Button
|
|
259
|
-
buttonStyle={
|
|
260
|
-
is1Day ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
261
|
-
}
|
|
262
|
-
buttonSize={ButtonSize.Small}
|
|
263
|
-
onClick={() => {
|
|
264
|
-
// set it to past 1 day
|
|
265
|
-
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
266
|
-
const startDate: Date = OneUptimeDate.addRemoveDays(endDate, -1);
|
|
267
|
-
|
|
268
|
-
setStartDateTime(startDate);
|
|
269
|
-
setEndDateTime(endDate);
|
|
270
|
-
}}
|
|
271
|
-
title="1 day"
|
|
272
|
-
/>
|
|
273
|
-
|
|
274
|
-
<Button
|
|
275
|
-
buttonStyle={
|
|
276
|
-
is1Week ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
277
|
-
}
|
|
278
|
-
buttonSize={ButtonSize.Small}
|
|
279
|
-
onClick={() => {
|
|
280
|
-
// set it to past 1 week
|
|
281
|
-
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
282
|
-
const startDate: Date = OneUptimeDate.addRemoveDays(endDate, -7);
|
|
283
|
-
|
|
284
|
-
setStartDateTime(startDate);
|
|
285
|
-
setEndDateTime(endDate);
|
|
286
|
-
}}
|
|
287
|
-
title="1 week"
|
|
288
|
-
/>
|
|
289
|
-
|
|
290
|
-
<Button
|
|
291
|
-
buttonStyle={
|
|
292
|
-
is2Weeks ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
293
|
-
}
|
|
294
|
-
buttonSize={ButtonSize.Small}
|
|
295
|
-
onClick={() => {
|
|
296
|
-
// set it to past 1 week
|
|
297
|
-
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
298
|
-
const startDate: Date = OneUptimeDate.addRemoveDays(endDate, -14);
|
|
299
|
-
|
|
300
|
-
setStartDateTime(startDate);
|
|
301
|
-
setEndDateTime(endDate);
|
|
302
|
-
}}
|
|
303
|
-
title="2 weeks"
|
|
304
|
-
/>
|
|
305
|
-
|
|
306
|
-
<Button
|
|
307
|
-
buttonStyle={
|
|
308
|
-
is3Weeks ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
309
|
-
}
|
|
310
|
-
buttonSize={ButtonSize.Small}
|
|
311
|
-
onClick={() => {
|
|
312
|
-
// set it to past 1 week
|
|
313
|
-
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
314
|
-
const startDate: Date = OneUptimeDate.addRemoveDays(endDate, -21);
|
|
315
|
-
|
|
316
|
-
setStartDateTime(startDate);
|
|
317
|
-
setEndDateTime(endDate);
|
|
318
|
-
}}
|
|
319
|
-
title="3 weeks"
|
|
320
|
-
/>
|
|
321
|
-
|
|
322
|
-
<Button
|
|
323
|
-
buttonStyle={
|
|
324
|
-
is1Month ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
325
|
-
}
|
|
326
|
-
buttonSize={ButtonSize.Small}
|
|
327
|
-
onClick={() => {
|
|
328
|
-
// set it to past 1 month
|
|
329
|
-
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
330
|
-
const startDate: Date = OneUptimeDate.addRemoveMonths(
|
|
331
|
-
endDate,
|
|
332
|
-
-1,
|
|
333
|
-
);
|
|
334
|
-
|
|
335
|
-
setStartDateTime(startDate);
|
|
336
|
-
setEndDateTime(endDate);
|
|
337
|
-
}}
|
|
338
|
-
title="1 month"
|
|
339
|
-
/>
|
|
340
|
-
|
|
341
|
-
<Button
|
|
342
|
-
buttonStyle={
|
|
343
|
-
is3Months ? ButtonStyleType.PRIMARY : ButtonStyleType.NORMAL
|
|
344
|
-
}
|
|
345
|
-
buttonSize={ButtonSize.Small}
|
|
346
|
-
onClick={() => {
|
|
347
|
-
// set it to past 1 month
|
|
348
|
-
const endDate: Date = OneUptimeDate.getCurrentDate();
|
|
349
|
-
const startDate: Date = OneUptimeDate.addRemoveMonths(
|
|
350
|
-
endDate,
|
|
351
|
-
-3,
|
|
352
|
-
);
|
|
353
|
-
|
|
354
|
-
setStartDateTime(startDate);
|
|
355
|
-
setEndDateTime(endDate);
|
|
356
|
-
}}
|
|
357
|
-
title="3 months"
|
|
358
|
-
/>
|
|
359
|
-
</div>
|
|
373
|
+
</div>
|
|
374
|
+
)}
|
|
360
375
|
</div>
|
|
361
376
|
);
|
|
362
377
|
}
|
|
@@ -51,6 +51,7 @@ export const DefaultValidateFunction: DefaultValidateFunctionType = (
|
|
|
51
51
|
export interface BaseComponentProps<T> {
|
|
52
52
|
submitButtonStyleType?: ButtonStyleType | undefined;
|
|
53
53
|
initialValues?: FormValues<T> | undefined;
|
|
54
|
+
values?: FormValues<T> | undefined;
|
|
54
55
|
onValidate?: undefined | ((values: FormValues<T>) => JSONObject);
|
|
55
56
|
onChange?: undefined | ((values: FormValues<T>) => void);
|
|
56
57
|
fields: Fields<T>;
|
|
@@ -121,6 +122,12 @@ const BasicForm: ForwardRefExoticComponent<any> = forwardRef(
|
|
|
121
122
|
null,
|
|
122
123
|
);
|
|
123
124
|
|
|
125
|
+
useEffect(() => {
|
|
126
|
+
if (props.values) {
|
|
127
|
+
refCurrentValue.current = props.values || {};
|
|
128
|
+
}
|
|
129
|
+
}, [props.values]);
|
|
130
|
+
|
|
124
131
|
useEffect(() => {
|
|
125
132
|
if (formSteps && formSteps.length > 0 && formSteps[0]) {
|
|
126
133
|
setCurrentFormStepId(formSteps[0].id);
|
|
@@ -3,6 +3,7 @@ import IconProp from "Common/Types/Icon/IconProp";
|
|
|
3
3
|
import React, { ReactElement } from "react";
|
|
4
4
|
import Tooltip from "../Tooltip/Tooltip";
|
|
5
5
|
import { GetReactElementFunction } from "../../Types/FunctionTypes";
|
|
6
|
+
import ColorSwatch from "../../../Types/ColorSwatch";
|
|
6
7
|
|
|
7
8
|
export enum HeaderAlertType {
|
|
8
9
|
SUCCESS = "Success",
|
|
@@ -18,6 +19,7 @@ export interface ComponentProps {
|
|
|
18
19
|
className?: string | undefined;
|
|
19
20
|
alertType: HeaderAlertType;
|
|
20
21
|
tooltip?: string | undefined;
|
|
22
|
+
colorSwatch?: ColorSwatch | undefined;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
const HeaderAlert: (props: ComponentProps) => ReactElement = (
|
|
@@ -57,6 +59,12 @@ const HeaderAlert: (props: ComponentProps) => ReactElement = (
|
|
|
57
59
|
break;
|
|
58
60
|
}
|
|
59
61
|
|
|
62
|
+
// color swatch overrides the color.
|
|
63
|
+
if (props.colorSwatch) {
|
|
64
|
+
textColor = `text-${props.colorSwatch}-500 hover:text-${props.colorSwatch}-600`;
|
|
65
|
+
bgColor = `bg-${props.colorSwatch}`;
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
const getElement: GetReactElementFunction = (): ReactElement => {
|
|
61
69
|
return (
|
|
62
70
|
<div
|