@oneuptime/common 7.0.3565 → 7.0.3579

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.
Files changed (36) hide show
  1. package/Models/DatabaseModels/MonitorTest.ts +1 -0
  2. package/Server/Infrastructure/Postgres/SchemaMigrations/1737997557974-MigrationName.ts +17 -0
  3. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
  4. package/Server/Services/IncidentService.ts +108 -44
  5. package/Server/Services/Index.ts +3 -0
  6. package/Types/Domain.ts +1 -1
  7. package/UI/Components/Forms/BasicForm.tsx +34 -2
  8. package/UI/Components/Forms/BasicModelForm.tsx +6 -0
  9. package/UI/Components/Forms/FormSummary.tsx +118 -0
  10. package/UI/Components/Forms/ModelForm.tsx +6 -0
  11. package/UI/Components/Forms/Types/Field.ts +2 -0
  12. package/UI/Components/Forms/Types/FormStep.ts +1 -0
  13. package/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.ts +84 -0
  14. package/build/dist/Models/DatabaseModels/MonitorTest.js +1 -0
  15. package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
  16. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1737997557974-MigrationName.js +12 -0
  17. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1737997557974-MigrationName.js.map +1 -0
  18. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
  19. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  20. package/build/dist/Server/Services/IncidentService.js +85 -40
  21. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  22. package/build/dist/Server/Services/Index.js +2 -0
  23. package/build/dist/Server/Services/Index.js.map +1 -1
  24. package/build/dist/Types/Domain.js +1 -1
  25. package/build/dist/Types/Domain.js.map +1 -1
  26. package/build/dist/UI/Components/Forms/BasicForm.js +34 -17
  27. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  28. package/build/dist/UI/Components/Forms/BasicModelForm.js +1 -1
  29. package/build/dist/UI/Components/Forms/BasicModelForm.js.map +1 -1
  30. package/build/dist/UI/Components/Forms/FormSummary.js +64 -0
  31. package/build/dist/UI/Components/Forms/FormSummary.js.map +1 -0
  32. package/build/dist/UI/Components/Forms/ModelForm.js +1 -1
  33. package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
  34. package/build/dist/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.js +81 -0
  35. package/build/dist/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.js.map +1 -0
  36. package/package.json +3 -3
@@ -442,6 +442,7 @@ export default class MonitorTest extends BaseModel {
442
442
  })
443
443
  public monitorStepProbeResponse?: MonitorStepProbeResponse = undefined;
444
444
 
445
+ @Index()
445
446
  @ColumnAccessControl({
446
447
  create: [
447
448
  Permission.ProjectOwner,
@@ -0,0 +1,17 @@
1
+ import { MigrationInterface, QueryRunner } from "typeorm";
2
+
3
+ export class MigrationName1737997557974 implements MigrationInterface {
4
+ public name = "MigrationName1737997557974";
5
+
6
+ public async up(queryRunner: QueryRunner): Promise<void> {
7
+ await queryRunner.query(
8
+ `CREATE INDEX "IDX_4d5e62631b2b63aaecb00950ef" ON "MonitorTest" ("isInQueue") `,
9
+ );
10
+ }
11
+
12
+ public async down(queryRunner: QueryRunner): Promise<void> {
13
+ await queryRunner.query(
14
+ `DROP INDEX "public"."IDX_4d5e62631b2b63aaecb00950ef"`,
15
+ );
16
+ }
17
+ }
@@ -98,6 +98,7 @@ import { MigrationName1736856662868 } from "./1736856662868-MigrationName";
98
98
  import { MigrationName1737141420441 } from "./1737141420441-MigrationName";
99
99
  import { MigrationName1737713529424 } from "./1737713529424-MigrationName";
100
100
  import { MigrationName1737715240684 } from "./1737715240684-MigrationName";
101
+ import { MigrationName1737997557974 } from "./1737997557974-MigrationName";
101
102
 
102
103
  export default [
103
104
  InitialMigration,
@@ -200,4 +201,5 @@ export default [
200
201
  MigrationName1737141420441,
201
202
  MigrationName1737713529424,
202
203
  MigrationName1737715240684,
204
+ MigrationName1737997557974,
203
205
  ];
@@ -50,6 +50,10 @@ import Semaphore, {
50
50
  import IncidentFeedService from "./IncidentFeedService";
51
51
  import { IncidentFeedEventType } from "../../Models/DatabaseModels/IncidentFeed";
52
52
  import { Gray500, Red500 } from "../../Types/BrandColors";
53
+ import Label from "../../Models/DatabaseModels/Label";
54
+ import LabelService from "./LabelService";
55
+ import IncidentSeverity from "../../Models/DatabaseModels/IncidentSeverity";
56
+ import IncidentSeverityService from "./IncidentSeverityService";
53
57
 
54
58
  export class Service extends DatabaseService<Model> {
55
59
  public constructor() {
@@ -644,74 +648,134 @@ ${createdItem.remediationNotes || "No remediation notes provided."}`,
644
648
 
645
649
  if (updatedItemIds.length > 0) {
646
650
  for (const incidentId of updatedItemIds) {
651
+ let shouldAddIncidentFeed: boolean = false;
652
+ let feedInfoInMarkdown: string = "**Incident was updated.**";
653
+
654
+ const createdByUserId: ObjectID | undefined | null =
655
+ onUpdate.updateBy.props.userId;
656
+
647
657
  if (onUpdate.updateBy.data.title) {
648
658
  // add incident feed.
649
- const createdByUserId: ObjectID | undefined | null =
650
- onUpdate.updateBy.props.userId;
651
-
652
- await IncidentFeedService.createIncidentFeed({
653
- incidentId: incidentId,
654
- projectId: onUpdate.updateBy.props.tenantId as ObjectID,
655
- incidentFeedEventType: IncidentFeedEventType.IncidentUpdated,
656
- displayColor: Gray500,
657
- feedInfoInMarkdown: `**Incident title was updated.** Here's the new title.
658
659
 
660
+ feedInfoInMarkdown += `\n\n**Title**:
659
661
  ${onUpdate.updateBy.data.title || "No title provided."}
660
- `,
661
- userId: createdByUserId || undefined,
662
- });
662
+ `;
663
+ shouldAddIncidentFeed = true;
663
664
  }
664
665
 
665
666
  if (onUpdate.updateBy.data.rootCause) {
666
- // add incident feed.
667
- const createdByUserId: ObjectID | undefined | null =
668
- onUpdate.updateBy.props.userId;
667
+ if (onUpdate.updateBy.data.title) {
668
+ // add incident feed.
669
669
 
670
- await IncidentFeedService.createIncidentFeed({
671
- incidentId: incidentId,
672
- projectId: onUpdate.updateBy.props.tenantId as ObjectID,
673
- incidentFeedEventType: IncidentFeedEventType.IncidentUpdated,
674
- displayColor: Gray500,
675
- feedInfoInMarkdown: `**Incident root cause was updated.** Here's the new root cause.
676
-
670
+ feedInfoInMarkdown += `\n\n**Root Cause**:
677
671
  ${onUpdate.updateBy.data.rootCause || "No root cause provided."}
678
- `,
679
- userId: createdByUserId || undefined,
680
- });
672
+ `;
673
+ shouldAddIncidentFeed = true;
674
+ }
681
675
  }
682
676
 
683
677
  if (onUpdate.updateBy.data.description) {
684
678
  // add incident feed.
685
- const createdByUserId: ObjectID | undefined | null =
686
- onUpdate.updateBy.props.userId;
687
679
 
688
- await IncidentFeedService.createIncidentFeed({
689
- incidentId: incidentId,
690
- projectId: onUpdate.updateBy.props.tenantId as ObjectID,
691
- incidentFeedEventType: IncidentFeedEventType.IncidentUpdated,
692
- displayColor: Gray500,
693
- feedInfoInMarkdown: `**Incident description was updated.** Here's the new description.
694
-
695
- ${onUpdate.updateBy.data.description || "No description provided."}
696
- `,
697
- userId: createdByUserId || undefined,
698
- });
680
+ feedInfoInMarkdown += `\n\n**Incident Description**:
681
+ ${onUpdate.updateBy.data.description || "No description provided."}
682
+ `;
683
+ shouldAddIncidentFeed = true;
699
684
  }
700
685
 
701
686
  if (onUpdate.updateBy.data.remediationNotes) {
702
687
  // add incident feed.
703
- const createdByUserId: ObjectID | undefined | null =
704
- onUpdate.updateBy.props.userId;
705
688
 
689
+ feedInfoInMarkdown += `\n\n**Remediation Notes**:
690
+ ${onUpdate.updateBy.data.remediationNotes || "No remediation notes provided."}
691
+ `;
692
+ shouldAddIncidentFeed = true;
693
+ }
694
+
695
+ if (
696
+ onUpdate.updateBy.data.labels &&
697
+ onUpdate.updateBy.data.labels.length > 0 &&
698
+ Array.isArray(onUpdate.updateBy.data.labels)
699
+ ) {
700
+ const labelIds: Array<ObjectID> = (
701
+ onUpdate.updateBy.data.labels as any
702
+ )
703
+ .map((label: Label) => {
704
+ if (label._id) {
705
+ return new ObjectID(label._id?.toString());
706
+ }
707
+
708
+ return null;
709
+ })
710
+ .filter((labelId: ObjectID | null) => {
711
+ return labelId !== null;
712
+ });
713
+
714
+ const labels: Array<Label> = await LabelService.findBy({
715
+ query: {
716
+ _id: QueryHelper.any(labelIds),
717
+ },
718
+ select: {
719
+ name: true,
720
+ },
721
+ limit: LIMIT_PER_PROJECT,
722
+ skip: 0,
723
+ props: {
724
+ isRoot: true,
725
+ },
726
+ });
727
+
728
+ if (labels.length > 0) {
729
+ feedInfoInMarkdown += `\n\n**Labels**:
730
+
731
+ ${labels
732
+ .map((label: Label) => {
733
+ return `- ${label.name}`;
734
+ })
735
+ .join("\n")}
736
+ `;
737
+
738
+ shouldAddIncidentFeed = true;
739
+ }
740
+ }
741
+
742
+ if (
743
+ onUpdate.updateBy.data.incidentSeverity &&
744
+ (onUpdate.updateBy.data.incidentSeverity as any)._id
745
+ ) {
746
+ const incidentSeverity: IncidentSeverity | null =
747
+ await IncidentSeverityService.findOneBy({
748
+ query: {
749
+ _id: new ObjectID(
750
+ (
751
+ onUpdate.updateBy.data.incidentSeverity as any
752
+ )?._id.toString(),
753
+ ),
754
+ },
755
+ select: {
756
+ name: true,
757
+ },
758
+ props: {
759
+ isRoot: true,
760
+ },
761
+ });
762
+
763
+ if (incidentSeverity) {
764
+ feedInfoInMarkdown += `\n\n**Incident Severity**:
765
+ ${incidentSeverity.name}
766
+ `;
767
+
768
+ shouldAddIncidentFeed = true;
769
+ }
770
+ }
771
+
772
+ if (shouldAddIncidentFeed) {
706
773
  await IncidentFeedService.createIncidentFeed({
707
774
  incidentId: incidentId,
708
775
  projectId: onUpdate.updateBy.props.tenantId as ObjectID,
709
776
  incidentFeedEventType: IncidentFeedEventType.IncidentUpdated,
710
777
  displayColor: Gray500,
711
- feedInfoInMarkdown: `**Remediation notes were updated.** Here are the new notes.
712
-
713
- ${onUpdate.updateBy.data.remediationNotes || "No remediation notes provided."}
714
- `,
778
+ feedInfoInMarkdown: feedInfoInMarkdown,
715
779
  userId: createdByUserId || undefined,
716
780
  });
717
781
  }
@@ -151,6 +151,8 @@ import ScheduledMaintenanceFeedService from "./ScheduledMaintenanceFeedService";
151
151
  import AlertFeedService from "./AlertFeedService";
152
152
  import IncidentFeedService from "./IncidentFeedService";
153
153
 
154
+ import MonitorTestService from "./MonitorTestService";
155
+
154
156
  const services: Array<BaseService> = [
155
157
  AcmeCertificateService,
156
158
  PromoCodeService,
@@ -314,6 +316,7 @@ const services: Array<BaseService> = [
314
316
  AlertFeedService,
315
317
 
316
318
  TableViewService,
319
+ MonitorTestService,
317
320
  ];
318
321
 
319
322
  export const AnalyticsServices: Array<
package/Types/Domain.ts CHANGED
@@ -26,7 +26,7 @@ export default class Domain extends DatabaseProperty {
26
26
  "|",
27
27
  );
28
28
  const secondTLDs: Array<string> =
29
- "ac|academy|accountant|accountants|actor|adult|aero|ag|agency|ai|airforce|am|amsterdam|apartments|app|archi|army|art|asia|associates|at|attorney|au|auction|auto|autos|baby|band|bar|barcelona|bargains|basketball|bayern|be|beauty|beer|berlin|best|bet|bid|bike|bingo|bio|biz|biz.pl|black|blog|blue|boats|boston|boutique|broker|build|builders|business|buzz|bz|ca|cab|cafe|camera|camp|capital|car|cards|care|careers|cars|casa|cash|casino|catering|cc|center|ceo|ch|charity|chat|cheap|church|city|cl|claims|cleaning|clinic|clothing|cloud|club|cn|co|co.in|co.jp|co.kr|co.nz|co.uk|co.za|coach|codes|coffee|college|com|com.ag|com.au|com.br|com.bz|com.cn|com.co|com.es|com.ky|com.mx|com.pe|com.ph|com.pl|com.ru|com.tw|community|company|computer|condos|construction|consulting|contact|contractors|cooking|cool|country|coupons|courses|credit|creditcard|cricket|cruises|cymru|cz|dance|date|dating|de|deals|degree|delivery|democrat|dental|dentist|design|dev|diamonds|digital|direct|directory|discount|dk|doctor|dog|domains|download|earth|education|email|energy|engineer|engineering|enterprises|equipment|es|estate|eu|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|film|finance|financial|firm.in|fish|fishing|fit|fitness|flights|florist|fm|football|forsale|foundation|fr|fun|fund|furniture|futbol|fyi|gallery|games|garden|gay|gen.in|gg|gifts|gives|giving|glass|global|gmbh|gold|golf|graphics|gratis|green|gripe|group|gs|guide|guru|hair|haus|health|healthcare|hockey|holdings|holiday|homes|horse|hospital|host|house|idv.tw|immo|immobilien|in|inc|ind.in|industries|info|info.pl|ink|institute|insure|international|investments|io|irish|ist|istanbul|it|jetzt|jewelry|jobs|jp|kaufen|kids|kim|kitchen|kiwi|kr|ky|la|land|lat|law|lawyer|lease|legal|lgbt|life|lighting|limited|limo|live|llc|llp|loan|loans|london|love|ltd|ltda|luxury|maison|makeup|management|market|marketing|mba|me|me.uk|media|melbourne|memorial|men|menu|miami|mobi|moda|moe|money|monster|mortgage|motorcycles|movie|ms|music|mx|nagoya|name|navy|ne.kr|net|net.ag|net.au|net.br|net.bz|net.cn|net.co|net.in|net.ky|net.nz|net.pe|net.ph|net.pl|net.ru|network|news|ninja|nl|no|nom.co|nom.es|nom.pe|nrw|nyc|okinawa|one|onl|online|org|org.ag|org.au|org.cn|org.es|org.in|org.ky|org.nz|org.pe|org.ph|org.pl|org.ru|org.uk|organic|page|paris|partners|parts|party|pe|pet|ph|photography|photos|pictures|pink|pizza|pl|place|plumbing|plus|poker|porn|press|pro|productions|promo|properties|protection|pub|pw|quebec|quest|racing|re.kr|realestate|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rich|rip|rocks|rodeo|rugby|run|ryukyu|sale|salon|sarl|school|schule|science|se|security|services|sex|sg|sh|shiksha|shoes|shop|shopping|show|singles|site|ski|skin|soccer|social|software|solar|solutions|space|storage|store|stream|studio|study|style|supplies|supply|support|surf|surgery|sydney|systems|tax|taxi|team|tech|technology|tel|tennis|theater|theatre|tickets|tienda|tips|tires|today|tokyo|tools|tours|town|toys|trade|trading|training|travel|tube|tv|tw|uk|university|uno|us|vacations|vc|vegas|ventures|vet|viajes|video|villas|vin|vip|vision|vodka|vote|voto|voyage|wales|watch|web|webcam|website|wedding|wiki|win|wine|work|works|world|ws|wtf|xxx|xyz|yachts|yoga|yokohama|zone|移动|dev|com|edu|gov|net|mil|org|nom|sch|sbs|caa|res|off|gob|int|tur|ip6|uri|urn|asn|act|nsw|qld|tas|vic|pro|biz|adm|adv|agr|arq|art|ato|bio|bmd|cim|cng|cnt|ecn|eco|emp|eng|esp|etc|eti|far|fnd|fot|fst|g12|ggf|imb|ind|inf|jor|jus|leg|lel|mat|med|mus|not|ntr|odo|ppg|psc|psi|qsl|rec|slg|srv|teo|tmp|trd|vet|zlg|web|ltd|sld|pol|fin|k12|lib|pri|aip|fie|eun|sci|prd|cci|pvt|mod|idv|rel|sex|gen|nic|abr|bas|cal|cam|emr|fvg|laz|lig|lom|mar|mol|pmn|pug|sar|sic|taa|tos|umb|vao|vda|ven|mie|北海道|和歌山|神奈川|鹿児島|ass|rep|tra|per|ngo|soc|grp|plc|its|air|and|bus|can|ddr|jfk|mad|nrw|nyc|ski|spy|tcm|ulm|usa|war|fhs|vgs|dep|eid|fet|fla|flå|gol|hof|hol|sel|vik|cri|iwi|ing|abo|fam|gok|gon|gop|gos|aid|atm|gsm|sos|elk|waw|est|aca|bar|cpa|jur|law|sec|plo|www|bir|cbg|jar|khv|msk|nov|nsk|ptz|rnd|spb|stv|tom|tsk|udm|vrn|cmw|kms|nkz|snz|pub|fhv|red|ens|nat|rns|rnu|bbs|tel|bel|kep|nhs|dni|fed|isa|nsn|gub|e12|tec|орг|обр|упр|alt|nis|jpn|mex|ath|iki|nid|gda|inc|za|ovh|lol|africa".split(
29
+ "ac|academy|accountant|accountants|actor|adult|aero|ag|agency|ai|airforce|am|amsterdam|apartments|app|archi|army|art|asia|associates|at|attorney|au|auction|auto|autos|baby|band|bar|barcelona|bargains|basketball|bayern|be|beauty|beer|berlin|best|bet|bid|bike|bingo|bio|biz|biz.pl|black|blog|blue|boats|boston|boutique|broker|build|builders|business|buzz|bz|ca|cab|cafe|camera|camp|capital|car|cards|care|careers|cars|casa|cash|casino|catering|cc|center|ceo|ch|charity|chat|cheap|church|city|cl|claims|cleaning|clinic|clothing|cloud|club|cn|co|co.in|co.jp|co.kr|co.nz|co.uk|co.za|coach|codes|coffee|college|com|com.ag|com.au|com.br|com.bz|com.cn|com.co|com.es|com.ky|com.mx|com.pe|com.ph|com.pl|com.ru|com.tw|community|company|computer|condos|construction|consulting|contact|contractors|cooking|cool|country|coupons|courses|credit|creditcard|cricket|cruises|cymru|cz|dance|date|dating|de|deals|degree|delivery|democrat|dental|dentist|design|dev|diamonds|digital|direct|directory|discount|dk|doctor|dog|domains|download|earth|education|email|energy|engineer|engineering|enterprises|equipment|es|estate|eu|events|exchange|expert|exposed|express|fail|faith|family|fan|fans|farm|fashion|film|finance|financial|firm.in|fish|fishing|fit|fitness|flights|florist|fm|football|forsale|foundation|fr|fun|fund|furniture|futbol|fyi|gallery|games|garden|gay|gen.in|gg|gifts|gives|giving|glass|global|gmbh|gold|golf|graphics|gratis|green|gripe|group|gs|guide|guru|hair|haus|health|healthcare|hockey|holdings|holiday|homes|horse|hospital|host|house|idv.tw|immo|immobilien|in|inc|ind.in|industries|info|info.pl|ink|institute|insure|international|investments|io|irish|ist|istanbul|it|jetzt|jewelry|jobs|jp|kaufen|kids|kim|kitchen|kiwi|kr|ky|la|land|lat|law|lawyer|lease|legal|lgbt|life|lighting|limited|limo|live|llc|llp|loan|loans|london|love|ltd|ltda|luxury|maison|makeup|management|market|marketing|mba|me|me.uk|media|melbourne|memorial|men|menu|miami|mobi|moda|moe|money|monster|mortgage|motorcycles|movie|ms|music|mx|nagoya|name|navy|ne.kr|net|net.ag|net.au|net.br|net.bz|net.cn|net.co|net.in|net.ky|net.nz|net.pe|net.ph|net.pl|net.ru|network|news|ninja|nl|no|nom.co|nom.es|nom.pe|nrw|nyc|okinawa|one|onl|online|org|org.ag|org.au|org.cn|org.es|org.in|org.ky|org.nz|org.pe|org.ph|org.pl|org.ru|org.uk|organic|page|paris|partners|parts|party|pe|pet|ph|photography|photos|pictures|pink|pizza|pl|place|plumbing|plus|poker|porn|press|pro|productions|promo|properties|protection|pub|pw|quebec|quest|racing|re.kr|realestate|recipes|red|rehab|reise|reisen|rent|rentals|repair|report|republican|rest|restaurant|review|reviews|rich|rip|rocks|rodeo|rugby|run|ryukyu|sale|salon|sarl|school|schule|science|se|security|services|sex|sg|sh|shiksha|shoes|shop|shopping|show|singles|site|ski|skin|soccer|social|software|solar|solutions|space|storage|store|stream|studio|study|style|supplies|supply|support|surf|surgery|sydney|systems|tax|taxi|team|tech|technology|tel|tennis|theater|theatre|tickets|tienda|tips|tires|today|tokyo|tools|tours|town|toys|trade|trading|training|travel|tube|tv|tw|uk|university|uno|us|vacations|vc|vegas|ventures|vet|viajes|video|villas|vin|vip|vision|vodka|vote|voto|voyage|wales|watch|web|webcam|website|wedding|wiki|win|wine|work|works|world|ws|wtf|xxx|xyz|yachts|yoga|yokohama|zone|移动|dev|com|edu|gov|net|mil|org|nom|sch|sbs|caa|res|off|gob|int|tur|ip6|uri|urn|asn|act|nsw|qld|tas|vic|pro|biz|adm|adv|agr|arq|art|ato|bio|bmd|cim|cng|cnt|ecn|eco|emp|eng|esp|etc|eti|far|fnd|fot|fst|g12|ggf|imb|ind|inf|jor|jus|leg|lel|mat|med|mus|not|ntr|odo|ppg|psc|psi|qsl|rec|slg|srv|teo|tmp|trd|vet|zlg|web|ltd|sld|pol|fin|k12|lib|pri|aip|fie|eun|sci|prd|cci|pvt|mod|idv|rel|sex|gen|nic|abr|bas|cal|cam|emr|fvg|laz|lig|lom|mar|mol|pmn|pug|sar|sic|taa|tos|umb|vao|vda|ven|mie|北海道|和歌山|神奈川|鹿児島|ass|rep|tra|per|ngo|soc|grp|plc|its|air|and|bus|can|ddr|jfk|mad|nrw|nyc|ski|spy|tcm|ulm|usa|war|fhs|vgs|dep|eid|fet|fla|flå|gol|hof|hol|sel|vik|cri|iwi|ing|abo|fam|gok|gon|gop|gos|aid|atm|gsm|sos|elk|waw|est|aca|bar|cpa|jur|law|sec|plo|www|bir|cbg|jar|khv|msk|nov|nsk|ptz|rnd|spb|stv|tom|tsk|udm|vrn|cmw|kms|nkz|snz|pub|fhv|red|ens|nat|rns|rnu|bbs|tel|bel|kep|nhs|dni|fed|isa|nsn|gub|e12|tec|орг|обр|упр|alt|nis|jpn|mex|ath|iki|nid|gda|inc|za|ovh|lol|africa|top".split(
30
30
  "|",
31
31
  );
32
32
 
@@ -3,9 +3,11 @@ import UiAnalytics from "../../Utils/Analytics";
3
3
  import Alert, { AlertType } from "../Alerts/Alert";
4
4
  import Button, { ButtonStyleType } from "../Button/Button";
5
5
  import ButtonTypes from "../Button/ButtonTypes";
6
+
6
7
  import { DropdownOption, DropdownValue } from "../Dropdown/Dropdown";
7
8
  import ErrorMessage from "../ErrorMessage/ErrorMessage";
8
9
  import FormField from "./Fields/FormField";
10
+ import FormSummary from "./FormSummary";
9
11
  import Steps from "./Steps/Steps";
10
12
  import Field from "./Types/Field";
11
13
  import Fields from "./Types/Fields";
@@ -73,6 +75,11 @@ export interface BaseComponentProps<T> {
73
75
  onIsLastFormStep?: undefined | ((isLastFormStep: boolean) => void);
74
76
  onFormValidationErrorChanged?: ((hasError: boolean) => void) | undefined;
75
77
  showSubmitButtonOnlyIfSomethingChanged?: boolean | undefined;
78
+ summary?:
79
+ | {
80
+ enabled?: boolean;
81
+ }
82
+ | undefined;
76
83
  }
77
84
 
78
85
  export interface ComponentProps<T extends GenericObject>
@@ -104,12 +111,27 @@ const BasicForm: ForwardRefExoticComponent<any> = forwardRef(
104
111
  setIsLoading(props.isLoading);
105
112
  }, [props.isLoading]);
106
113
 
114
+ const getFormSteps: () => Array<FormStep<T>> | undefined = () => {
115
+ if (props.summary && props.summary.enabled) {
116
+ // add to last step
117
+ return [
118
+ ...(props.steps || []),
119
+ {
120
+ id: "summary",
121
+ title: "Summary",
122
+ isSummaryStep: true,
123
+ },
124
+ ];
125
+ }
126
+ return props.steps;
127
+ };
128
+
107
129
  const [submitButtonText, setSubmitButtonText] = useState<string>(
108
130
  props.submitButtonText || "Submit",
109
131
  );
110
132
 
111
133
  const [formSteps, setFormSteps] = useState<Array<FormStep<T>> | undefined>(
112
- props.steps,
134
+ getFormSteps(),
113
135
  );
114
136
 
115
137
  const isInitialValuesSet: MutableRefObject<boolean> = useRef(false);
@@ -175,7 +197,7 @@ const BasicForm: ForwardRefExoticComponent<any> = forwardRef(
175
197
 
176
198
  useEffect(() => {
177
199
  setFormSteps(
178
- props.steps?.filter((step: FormStep<T>) => {
200
+ getFormSteps()?.filter((step: FormStep<T>) => {
179
201
  if (!step.showIf) {
180
202
  return true;
181
203
  }
@@ -606,6 +628,16 @@ const BasicForm: ForwardRefExoticComponent<any> = forwardRef(
606
628
  </div>
607
629
  );
608
630
  })}
631
+
632
+ {/* If Summary, show Model detail */}
633
+
634
+ {currentFormStepId === "summary" && (
635
+ <FormSummary
636
+ formValues={refCurrentValue.current}
637
+ formFields={formFields}
638
+ formSteps={formSteps || undefined}
639
+ />
640
+ )}
609
641
  </div>
610
642
  </div>
611
643
 
@@ -46,6 +46,11 @@ export interface ComponentProps<TBaseModel extends BaseModel> {
46
46
  hideSubmitButton?: undefined | boolean;
47
47
  formRef?: undefined | MutableRefObject<FormProps<FormValues<TBaseModel>>>;
48
48
  initialValues?: FormValues<TBaseModel> | undefined;
49
+ summary?:
50
+ | {
51
+ enabled?: boolean;
52
+ }
53
+ | undefined;
49
54
  }
50
55
 
51
56
  const BasicModelForm: <TBaseModel extends BaseModel>(
@@ -121,6 +126,7 @@ const BasicModelForm: <TBaseModel extends BaseModel>(
121
126
  onIsLastFormStep={props.onIsLastFormStep}
122
127
  hideSubmitButton={props.hideSubmitButton}
123
128
  ref={props.formRef}
129
+ summary={props.summary}
124
130
  ></BasicForm>
125
131
  );
126
132
  };
@@ -0,0 +1,118 @@
1
+ import React, { ReactElement } from "react";
2
+ import Detail from "../Detail/Detail";
3
+ import FormValues from "./Types/FormValues";
4
+ import GenericObject from "../../../Types/GenericObject";
5
+ import Fields from "./Types/Fields";
6
+ import FormFieldSchemaTypeUtil from "./Utils/FormFieldSchemaTypeUtil";
7
+ import FormFieldSchemaType from "./Types/FormFieldSchemaType";
8
+ import DetailField from "../Detail/Field";
9
+ import Field from "./Types/Field";
10
+ import FieldType from "../Types/FieldType";
11
+ import { FormStep } from "./Types/FormStep";
12
+ import HorizontalRule from "../HorizontalRule/HorizontalRule";
13
+
14
+ export interface ComponentProps<T> {
15
+ formValues: FormValues<T>;
16
+ formFields: Fields<T>;
17
+ formSteps: FormStep<T>[] | undefined;
18
+ }
19
+
20
+ const FormSummary: <T extends GenericObject>(
21
+ props: ComponentProps<T>,
22
+ ) => ReactElement = <T extends GenericObject>(
23
+ props: ComponentProps<T>,
24
+ ): ReactElement => {
25
+ const { formValues, formFields } = props;
26
+
27
+ const getDetailForFormFields: <T extends GenericObject>(
28
+ formValues: FormValues<T>,
29
+ formFields: Fields<T>,
30
+ ) => ReactElement = <T extends GenericObject>(
31
+ formValues: FormValues<T>,
32
+ formFields: Fields<T>,
33
+ ): ReactElement => {
34
+ return (
35
+ <div>
36
+ <Detail
37
+ item={formValues as T}
38
+ fields={
39
+ formFields.map((field: Field<T>) => {
40
+ const detailField: DetailField<T> = {
41
+ title: field.title || "",
42
+ fieldType: field.getSummaryElement
43
+ ? FieldType.Element
44
+ : FormFieldSchemaTypeUtil.toFieldType(
45
+ field.fieldType || FormFieldSchemaType.Text,
46
+ ),
47
+ description: field.description || "",
48
+ getElement: field.getSummaryElement as any,
49
+ sideLink: field.sideLink,
50
+ key: (Object.keys(field.field || {})[0]?.toString() ||
51
+ "") as keyof T,
52
+ };
53
+ return detailField;
54
+ }) as DetailField<GenericObject>[]
55
+ }
56
+ />
57
+ <HorizontalRule />
58
+ </div>
59
+ );
60
+ };
61
+
62
+ const getFormStepTitle: (formStep: FormStep<T>) => ReactElement = (
63
+ formStep: FormStep<T>,
64
+ ): ReactElement => {
65
+ return (
66
+ <h2 className="text-md font-medium text-gray-900 mb-3">
67
+ {formStep.title}
68
+ </h2>
69
+ );
70
+ };
71
+
72
+ const getDetailForFormStep: (formStep: FormStep<T>) => ReactElement = (
73
+ formStep: FormStep<T>,
74
+ ): ReactElement => {
75
+ const formFields: Fields<T> = props.formFields
76
+ .filter((field: Field<T>) => {
77
+ return formStep.id === field.stepId;
78
+ })
79
+ .filter((formField: Field<T>) => {
80
+ if (!formField.showIf) {
81
+ return true;
82
+ }
83
+ return formField.showIf(formValues);
84
+ });
85
+
86
+ if (formFields.length === 0) {
87
+ return <></>;
88
+ }
89
+
90
+ return (
91
+ <div>
92
+ {getFormStepTitle(formStep)}
93
+ {getDetailForFormFields(formValues, formFields)}
94
+ </div>
95
+ );
96
+ };
97
+
98
+ if (props.formSteps && props.formSteps.length > 0) {
99
+ return (
100
+ <div>
101
+ {props.formSteps
102
+ .filter((step: FormStep<T>) => {
103
+ if (!step.showIf) {
104
+ return true;
105
+ }
106
+ return step.showIf(props.formValues);
107
+ })
108
+ .map((formStep: FormStep<T>) => {
109
+ return getDetailForFormStep(formStep);
110
+ })}
111
+ </div>
112
+ );
113
+ }
114
+
115
+ return getDetailForFormFields(formValues, formFields);
116
+ };
117
+
118
+ export default FormSummary;
@@ -101,6 +101,11 @@ export interface ComponentProps<TBaseModel extends BaseModel> {
101
101
  saveRequestOptions?: RequestOptions | undefined;
102
102
  doNotFetchExistingModel?: boolean | undefined;
103
103
  modelAPI?: typeof ModelAPI | undefined;
104
+ summary?:
105
+ | {
106
+ enabled?: boolean;
107
+ }
108
+ | undefined;
104
109
  }
105
110
 
106
111
  const ModelForm: <TBaseModel extends BaseModel>(
@@ -783,6 +788,7 @@ const ModelForm: <TBaseModel extends BaseModel>(
783
788
  | FormValues<TBaseModel>
784
789
  | undefined
785
790
  }
791
+ summary={props.summary}
786
792
  ></BasicModelForm>
787
793
  </div>
788
794
  );
@@ -102,4 +102,6 @@ export default interface Field<TEntity> {
102
102
  jsonKeysForDictionary?: Array<string> | undefined;
103
103
 
104
104
  hideOptionalLabel?: boolean | undefined;
105
+
106
+ getSummaryElement?: (item: FormValues<TEntity>) => ReactElement | undefined;
105
107
  }
@@ -10,4 +10,5 @@ export interface FormStep<TEntity> {
10
10
  id: string;
11
11
  title: string;
12
12
  showIf?: ((item: FormValues<TEntity>) => boolean) | undefined;
13
+ isSummaryStep?: boolean | undefined;
13
14
  }
@@ -0,0 +1,84 @@
1
+ import FieldType from "../../Types/FieldType";
2
+ import FormFieldSchemaType from "../Types/FormFieldSchemaType";
3
+
4
+ export default class FormFieldSchemaTypeUtil {
5
+ public static toFieldType(
6
+ formFieldSchemaType: FormFieldSchemaType,
7
+ ): FieldType {
8
+ switch (formFieldSchemaType) {
9
+ case FormFieldSchemaType.ObjectID:
10
+ return FieldType.ObjectID;
11
+ case FormFieldSchemaType.Name:
12
+ return FieldType.Name;
13
+ case FormFieldSchemaType.Hostname:
14
+ return FieldType.Hostname;
15
+ case FormFieldSchemaType.ImageFile:
16
+ return FieldType.ImageFile;
17
+ case FormFieldSchemaType.URL:
18
+ return FieldType.URL;
19
+ case FormFieldSchemaType.Route:
20
+ return FieldType.Route;
21
+ case FormFieldSchemaType.Number:
22
+ return FieldType.Number;
23
+ case FormFieldSchemaType.Password:
24
+ return FieldType.Password;
25
+ case FormFieldSchemaType.Text:
26
+ return FieldType.Text;
27
+ case FormFieldSchemaType.Time:
28
+ return FieldType.DateTime;
29
+ case FormFieldSchemaType.Email:
30
+ return FieldType.Email;
31
+ case FormFieldSchemaType.PositiveNumber:
32
+ return FieldType.Number;
33
+ case FormFieldSchemaType.Date:
34
+ return FieldType.Date;
35
+ case FormFieldSchemaType.Phone:
36
+ return FieldType.Phone;
37
+ case FormFieldSchemaType.DateTime:
38
+ return FieldType.DateTime;
39
+ case FormFieldSchemaType.Domain:
40
+ return FieldType.Text;
41
+ case FormFieldSchemaType.LongText:
42
+ return FieldType.LongText;
43
+ case FormFieldSchemaType.Color:
44
+ return FieldType.Color;
45
+ case FormFieldSchemaType.Dropdown:
46
+ return FieldType.Dropdown;
47
+ case FormFieldSchemaType.Radio:
48
+ return FieldType.Text;
49
+ case FormFieldSchemaType.File:
50
+ return FieldType.File;
51
+ case FormFieldSchemaType.MultiSelectDropdown:
52
+ return FieldType.MultiSelectDropdown;
53
+ case FormFieldSchemaType.Toggle:
54
+ return FieldType.Boolean;
55
+ case FormFieldSchemaType.Port:
56
+ return FieldType.Port;
57
+ case FormFieldSchemaType.EncryptedText:
58
+ return FieldType.HiddenText;
59
+ case FormFieldSchemaType.Markdown:
60
+ return FieldType.Markdown;
61
+ case FormFieldSchemaType.JavaScript:
62
+ return FieldType.JavaScript;
63
+ case FormFieldSchemaType.CSS:
64
+ return FieldType.CSS;
65
+ case FormFieldSchemaType.HTML:
66
+ return FieldType.HTML;
67
+ case FormFieldSchemaType.RadioButton:
68
+ return FieldType.Element;
69
+ case FormFieldSchemaType.JSON:
70
+ return FieldType.JSON;
71
+ case FormFieldSchemaType.Query:
72
+ return FieldType.Element;
73
+ case FormFieldSchemaType.CustomComponent:
74
+ return FieldType.Element;
75
+ case FormFieldSchemaType.Checkbox:
76
+ return FieldType.Boolean;
77
+ case FormFieldSchemaType.CategoryCheckbox:
78
+ return FieldType.Boolean;
79
+
80
+ default:
81
+ return FieldType.Text;
82
+ }
83
+ }
84
+ }
@@ -417,6 +417,7 @@ __decorate([
417
417
  __metadata("design:type", Object)
418
418
  ], MonitorTest.prototype, "monitorStepProbeResponse", void 0);
419
419
  __decorate([
420
+ Index(),
420
421
  ColumnAccessControl({
421
422
  create: [
422
423
  Permission.ProjectOwner,
@@ -1 +1 @@
1
- {"version":3,"file":"MonitorTest.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/MonitorTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonitorTest.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/MonitorTest.ts"],"names":[],"mappings":"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"}