pager_tree-integrations 1.1.6 → 1.1.7

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/pager_tree/integrations/live_call_routing/twilio/v3_controller.rb +20 -0
  3. data/app/jobs/pager_tree/integrations/live_call_routing/twilio/v3/max_wait_time_job.rb +13 -0
  4. data/app/models/pager_tree/integrations/additional_datum.rb +2 -2
  5. data/app/models/pager_tree/integrations/alert.rb +2 -2
  6. data/app/models/pager_tree/integrations/aws_cloudwatch/v3.rb +15 -5
  7. data/app/models/pager_tree/integrations/boolean_store_accessor.rb +2 -2
  8. data/app/models/pager_tree/integrations/channel/hangouts/v3.rb +23 -2
  9. data/app/models/pager_tree/integrations/channel/mattermost/v3.rb +4 -0
  10. data/app/models/pager_tree/integrations/channel/microsoft_teams/v3.rb +74 -29
  11. data/app/models/pager_tree/integrations/channel/microsoft_teams/v4.rb +261 -0
  12. data/app/models/pager_tree/integrations/channel/slack/v3.rb +30 -3
  13. data/app/models/pager_tree/integrations/cloudflare/v3.rb +75 -0
  14. data/app/models/pager_tree/integrations/custom_webhook/v3.rb +206 -0
  15. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/datadog.json +12 -0
  16. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/datadog.yaml +30 -0
  17. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/generic_rules_definition.json +9 -0
  18. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/generic_rules_example.yaml +27 -0
  19. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/grafana.json +25 -0
  20. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/grafana.yaml +33 -0
  21. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/new_relic.json +40 -0
  22. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/new_relic.yaml +32 -0
  23. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/pingdom.json +30 -0
  24. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/pingdom.yaml +23 -0
  25. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/sns_cloudwatch.json +12 -0
  26. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/sns_cloudwatch.yaml +48 -0
  27. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/sns_health_event.json +21 -0
  28. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/sns_health_event.yaml +43 -0
  29. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/sns_lambda_monitor.json +31 -0
  30. data/app/models/pager_tree/integrations/custom_webhook/v3_examples/sns_lambda_monitor.yaml +24 -0
  31. data/app/models/pager_tree/integrations/datadog/v3.rb +10 -3
  32. data/app/models/pager_tree/integrations/dynatrace/v3.rb +67 -0
  33. data/app/models/pager_tree/integrations/echoes_hq/v3.rb +138 -0
  34. data/app/models/pager_tree/integrations/elast_alert/v3.rb +24 -0
  35. data/app/models/pager_tree/integrations/email/v3.rb +272 -22
  36. data/app/models/pager_tree/integrations/email/v3_examples/example.yml +24 -0
  37. data/app/models/pager_tree/integrations/form/v3.rb +15 -3
  38. data/app/models/pager_tree/integrations/freshdesk/v3.rb +7 -5
  39. data/app/models/pager_tree/integrations/freshservice/v3.rb +7 -5
  40. data/app/models/pager_tree/integrations/grafana/v3.rb +2 -2
  41. data/app/models/pager_tree/integrations/hetrix_tools/v3.rb +160 -0
  42. data/app/models/pager_tree/integrations/honeybadger/v3.rb +1 -1
  43. data/app/models/pager_tree/integrations/hydrozen/v3.rb +6 -0
  44. data/app/models/pager_tree/integrations/integration.rb +52 -9
  45. data/app/models/pager_tree/integrations/jira_server/v3.rb +12 -2
  46. data/app/models/pager_tree/integrations/kapacitor/v3.rb +1 -1
  47. data/app/models/pager_tree/integrations/live_call_routing/twilio/v3.rb +257 -22
  48. data/app/models/pager_tree/integrations/logic_monitor/v3.rb +193 -3
  49. data/app/models/pager_tree/integrations/mattermost/outgoing_webhook/v3.rb +1 -1
  50. data/app/models/pager_tree/integrations/meta/workplace/v3.rb +230 -0
  51. data/app/models/pager_tree/integrations/new_relic/v3.rb +9 -5
  52. data/app/models/pager_tree/integrations/outgoing_event.rb +8 -0
  53. data/app/models/pager_tree/integrations/outgoing_webhook/v3.rb +108 -13
  54. data/app/models/pager_tree/integrations/outgoing_webhook_delivery/hook_relay.rb +43 -33
  55. data/app/models/pager_tree/integrations/outgoing_webhook_delivery.rb +6 -5
  56. data/app/models/pager_tree/integrations/prtg/v3.rb +2 -1
  57. data/app/models/pager_tree/integrations/pulsetic/v3.rb +70 -0
  58. data/app/models/pager_tree/integrations/scom/pagertree.ps1 +153 -0
  59. data/app/models/pager_tree/integrations/scom/v3.rb +58 -0
  60. data/app/models/pager_tree/integrations/sentry/v3.rb +477 -0
  61. data/app/models/pager_tree/integrations/server_guard24/v3.rb +1 -1
  62. data/app/models/pager_tree/integrations/sixty_six_uptime/v3.rb +118 -0
  63. data/app/models/pager_tree/integrations/slack/webhook/v3.rb +1 -1
  64. data/app/models/pager_tree/integrations/solar_winds/v3.rb +66 -2
  65. data/app/models/pager_tree/integrations/status_gator/v3.rb +69 -0
  66. data/app/models/pager_tree/integrations/uptime_kuma/v3.rb +76 -0
  67. data/app/models/pager_tree/integrations/uptime_robot/v3.rb +6 -0
  68. data/app/models/pager_tree/integrations/webhook/v3.rb +25 -7
  69. data/app/models/pager_tree/integrations/zabbix/v3.rb +95 -0
  70. data/app/models/pager_tree/integrations/zendesk/v3.rb +2 -0
  71. data/app/views/pager_tree/integrations/channel/hangouts/v3/_form_options.html.erb +7 -0
  72. data/app/views/pager_tree/integrations/channel/hangouts/v3/_show_options.html.erb +10 -0
  73. data/app/views/pager_tree/integrations/channel/microsoft_teams/v3/_form_options.html.erb +7 -0
  74. data/app/views/pager_tree/integrations/channel/microsoft_teams/v3/_show_options.html.erb +14 -0
  75. data/app/views/pager_tree/integrations/channel/microsoft_teams/v4/_form_options.html.erb +41 -0
  76. data/app/views/pager_tree/integrations/channel/microsoft_teams/v4/_show_options.html.erb +54 -0
  77. data/app/views/pager_tree/integrations/channel/slack/v3/_form_options.html.erb +6 -3
  78. data/app/views/pager_tree/integrations/channel/slack/v3/_show_options.html.erb +1 -1
  79. data/app/views/pager_tree/integrations/cloudflare/v3/_form_options.html.erb +7 -0
  80. data/app/views/pager_tree/integrations/cloudflare/v3/_show_options.html.erb +12 -0
  81. data/app/views/pager_tree/integrations/custom_webhook/v3/_form_options.html.erb +8 -0
  82. data/app/views/pager_tree/integrations/custom_webhook/v3/_show_options.html.erb +0 -0
  83. data/app/views/pager_tree/integrations/datadog/v3/_form_options.html.erb +7 -0
  84. data/app/views/pager_tree/integrations/datadog/v3/_show_options.html.erb +12 -0
  85. data/app/views/pager_tree/integrations/dynatrace/v3/_form_options.html.erb +0 -0
  86. data/app/views/pager_tree/integrations/dynatrace/v3/_show_options.html.erb +0 -0
  87. data/app/views/pager_tree/integrations/echoes_hq/v3/_form_options.html.erb +10 -0
  88. data/app/views/pager_tree/integrations/echoes_hq/v3/_show_options.html.erb +12 -0
  89. data/app/views/pager_tree/integrations/email/v3/_form_options.html.erb +41 -11
  90. data/app/views/pager_tree/integrations/email/v3/_show_options.html.erb +18 -0
  91. data/app/views/pager_tree/integrations/form/v3/_form_options.html.erb +1 -5
  92. data/app/views/pager_tree/integrations/hetrix_tools/v3/_form_options.html.erb +7 -0
  93. data/app/views/pager_tree/integrations/hetrix_tools/v3/_show_options.html.erb +12 -0
  94. data/app/views/pager_tree/integrations/hydrozen/v3/_form_options.html.erb +0 -0
  95. data/app/views/pager_tree/integrations/hydrozen/v3/_show_options.html.erb +0 -0
  96. data/app/views/pager_tree/integrations/live_call_routing/twilio/v3/_form_options.html.erb +44 -31
  97. data/app/views/pager_tree/integrations/live_call_routing/twilio/v3/_show_options.html.erb +93 -8
  98. data/app/views/pager_tree/integrations/logic_monitor/v3/_form_options.html.erb +31 -0
  99. data/app/views/pager_tree/integrations/logic_monitor/v3/_show_options.html.erb +60 -0
  100. data/app/views/pager_tree/integrations/meta/workplace/v3/_form_options.html.erb +44 -0
  101. data/app/views/pager_tree/integrations/meta/workplace/v3/_show_options.html.erb +68 -0
  102. data/app/views/pager_tree/integrations/outgoing_webhook/v3/_form_options.html.erb +17 -3
  103. data/app/views/pager_tree/integrations/outgoing_webhook/v3/_show_options.html.erb +20 -0
  104. data/app/views/pager_tree/integrations/pulsetic/v3/_form_options.html.erb +0 -0
  105. data/app/views/pager_tree/integrations/pulsetic/v3/_show_options.html.erb +0 -0
  106. data/app/views/pager_tree/integrations/scom/v3/_form_options.html.erb +0 -0
  107. data/app/views/pager_tree/integrations/scom/v3/_show_options.html.erb +0 -0
  108. data/app/views/pager_tree/integrations/sentry/v3/_form_options.html.erb +9 -0
  109. data/app/views/pager_tree/integrations/sentry/v3/_show_options.html.erb +15 -0
  110. data/app/views/pager_tree/integrations/sixty_six_uptime/v3/_form_options.html.erb +0 -0
  111. data/app/views/pager_tree/integrations/sixty_six_uptime/v3/_show_options.html.erb +0 -0
  112. data/app/views/pager_tree/integrations/solar_winds/v3/_form_options.html.erb +40 -0
  113. data/app/views/pager_tree/integrations/solar_winds/v3/_show_options.html.erb +66 -0
  114. data/app/views/pager_tree/integrations/status_gator/v3/_form_options.html.erb +13 -0
  115. data/app/views/pager_tree/integrations/status_gator/v3/_show_options.html.erb +24 -0
  116. data/app/views/pager_tree/integrations/uptime_kuma/v3/_form_options.html.erb +0 -0
  117. data/app/views/pager_tree/integrations/uptime_kuma/v3/_show_options.html.erb +0 -0
  118. data/app/views/pager_tree/integrations/webhook/v3/_form_options.html.erb +8 -0
  119. data/app/views/pager_tree/integrations/webhook/v3/_show_options.html.erb +15 -0
  120. data/app/views/pager_tree/integrations/zabbix/v3/_form_options.html.erb +7 -0
  121. data/app/views/pager_tree/integrations/zabbix/v3/_show_options.html.erb +12 -0
  122. data/config/locales/en.yml +158 -10
  123. data/config/routes.rb +1 -0
  124. data/lib/pager_tree/integrations/format_converters/yaml_json_converter.rb +67 -0
  125. data/lib/pager_tree/integrations/version.rb +1 -1
  126. data/lib/pager_tree/integrations.rb +11 -3
  127. metadata +84 -8
@@ -1,11 +1,41 @@
1
- <div class="form-group group">
2
- <%= form.check_box :option_allow_spam, class: "form-checkbox" %>
3
- <%= form.label :option_allow_spam %>
4
- <p class="form-hint md:inline-block"><%== t(".option_allow_spam_hint_html") %></p>
5
- </div>
6
-
7
- <div class="form-group group">
8
- <%= form.check_box :option_dedup_threads, class: "form-checkbox" %>
9
- <%= form.label :option_dedup_threads %>
10
- <p class="form-hint"><%== t(".option_dedup_threads_hint_html") %></p>
11
- </div>
1
+ <%
2
+ x_data = {
3
+ option_custom_definition_enabled: form.object.option_custom_definition_enabled,
4
+ }
5
+ %>
6
+ <div x-data=<%= x_data.to_json.html_safe %>>
7
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
8
+ <div class="form-group group">
9
+ <%= form.check_box :option_allow_spam, class: "form-checkbox" %>
10
+ <%= form.label :option_allow_spam, class: "inline-block" %>
11
+ <p class="form-hint md:inline-block"><%== t(".option_allow_spam_hint_html") %></p>
12
+ </div>
13
+
14
+ <div class="form-group group">
15
+ <%= form.check_box :option_dedup_threads, class: "form-checkbox" %>
16
+ <%= form.label :option_dedup_threads, class: "inline-block" %>
17
+ <p class="form-hint md:inline-block"><%== t(".option_dedup_threads_hint_html") %></p>
18
+ </div>
19
+
20
+ <div class="form-group group">
21
+ <%= form.label :option_sanitize_level %>
22
+ <%= form.select :option_sanitize_level, PagerTree::Integrations::Email::V3::SANITIZE_LEVELS.map{|x| [x.humanize, x]}, {}, class:'form-control' %>
23
+ <p class="form-hint"><%== t(".option_sanitize_level_hint_html") %></p>
24
+ </div>
25
+ </div>
26
+
27
+ <div class="form-group group">
28
+ <%= form.check_box :option_custom_definition_enabled, class: "form-checkbox", "x-model": "option_custom_definition_enabled" %>
29
+ <%= form.label :option_custom_definition_enabled, class: "inline-block" %>
30
+ <p class="form-hint md:inline-block"><%== t(".option_custom_definition_enabled_hint_html") %></p>
31
+ </div>
32
+
33
+ <div class="form-group group" x-show="option_custom_definition_enabled" x-cloak x-transition>
34
+ <%= tag.div data: {controller: "code-editor", code_editor_language_value: "yaml", code_editor_read_only_value: false } do %>
35
+ <%= form.label :option_custom_definition %>
36
+ <%= form.hidden_field :option_custom_definition, class: "form-control", data: {code_editor_target: "form"} %>
37
+ <%= tag.div class: "h-96", data: {code_editor_target: "editor"} do %><%= form.object.option_custom_definition %><% end %>
38
+ <p class="form-hint"><%== t(".option_custom_definition_hint_html") %></p>
39
+ <% end %>
40
+ </div>
41
+ </div>
@@ -14,4 +14,22 @@
14
14
  <dd class="mt-1 text-sm text-gray-900">
15
15
  <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.option_dedup_threads } %>
16
16
  </dd>
17
+ </div>
18
+
19
+ <div class="sm:col-span-1">
20
+ <dt class="text-sm font-medium text-gray-500">
21
+ <%= t("activerecord.attributes.pager_tree/integrations/email/v3.option_sanitize_level") %>
22
+ </dt>
23
+ <dd class="mt-1 text-sm text-gray-900">
24
+ <%= integration.option_sanitize_level.humanize %>
25
+ </dd>
26
+ </div>
27
+
28
+ <div class="sm:col-span-1">
29
+ <dt class="text-sm font-medium text-gray-500">
30
+ <%= t("activerecord.attributes.pager_tree/integrations/email/v3.option_custom_definition") %>
31
+ </dt>
32
+ <dd class="mt-1 text-sm text-gray-900">
33
+ <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.option_custom_definition_enabled == true } %>
34
+ </dd>
17
35
  </div>
@@ -29,11 +29,7 @@
29
29
  <p class="form-hint"><%== t(".option_form_footer_link_hint_html") %></p>
30
30
  </div>
31
31
 
32
- <div class="form-group group">
33
- <%= form.label :option_form_logo %>
34
- <%= form.file_field :option_form_logo, accept: "image/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
35
- <p class="form-hint"><%== t(".option_form_logo_hint_html") %></p>
36
- </div>
32
+ <%= render "shared/attachments_field", form: form, field: :option_form_logo, accept: "image/*", hint: t(".option_form_logo_hint_html") %>
37
33
  </div>
38
34
 
39
35
  <div class="grid grid-cols-4 gap-4">
@@ -0,0 +1,7 @@
1
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
2
+ <div class="form-group group">
3
+ <%= form.label :option_authentication_token %>
4
+ <%= form.text_field :option_authentication_token, class: "form-control" %>
5
+ <p class="form-hint"><%== t(".option_authentication_token_hint_html") %></p>
6
+ </div>
7
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="sm:col-span-2">
2
+ <dt class="text-sm font-medium text-gray-500">
3
+ <%= t("activerecord.attributes.pager_tree/integrations/hetrix_tools/v3.option_authentication_token") %>
4
+ </dt>
5
+ <dd class="mt-1 text-sm text-gray-900">
6
+ <div class="flex items-center gap-2">
7
+ <p class="text-sm truncate">
8
+ <%= mask integration.option_authentication_token %>
9
+ </p>
10
+ </div>
11
+ </dd>
12
+ </div>
@@ -1,4 +1,9 @@
1
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
1
+ <%
2
+ x_data = {
3
+ option_record: form.object.option_record,
4
+ }
5
+ %>
6
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4" x-data=<%= x_data.to_json.html_safe %>>
2
7
  <div class="form-group group">
3
8
  <%= form.label :option_account_sid %>
4
9
  <%= form.text_field :option_account_sid, class: "form-control" %>
@@ -24,40 +29,24 @@
24
29
  </div>
25
30
 
26
31
  <div class="form-group group">
27
- <%= form.label :option_welcome_media %>
28
- <%= form.file_field :option_welcome_media, accept: "audio/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
29
- <p class="form-hint"><%== t(".option_welcome_media_hint_html") %></p>
32
+ <%= form.label :option_api_region %>
33
+ <%= form.select :option_api_region, [["US1 (Ashburn)", "ashburn.us1"], ["IE1 (Dublin)", "dublin.ie1"], ["AU1 (Sydney)", "sydney.au1"]], {}, class:'form-control' %>
34
+ <p class="form-hint"><%== t(".option_api_region_hint_html") %></p>
30
35
  </div>
31
36
 
32
- <div class="form-group group">
33
- <%= form.label :option_please_wait_media %>
34
- <%= form.file_field :option_please_wait_media, accept: "audio/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
35
- <p class="form-hint"><%== t(".option_please_wait_media_hint_html") %></p>
36
- </div>
37
+ <%= render "shared/attachments_field", form: form, field: :option_welcome_media, accept: "audio/*", hint: t(".option_welcome_media_hint_html") %>
37
38
 
38
- <div class="form-group group">
39
- <%= form.label :option_music_media %>
40
- <%= form.file_field :option_music_media, accept: "audio/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
41
- <p class="form-hint"><%== t(".option_music_media_hint_html") %></p>
42
- </div>
39
+ <%= render "shared/attachments_field", form: form, field: :option_please_wait_media, accept: "audio/*", hint: t(".option_please_wait_media_hint_html") %>
43
40
 
44
- <div class="form-group group">
45
- <%= form.label :option_connect_now_media %>
46
- <%= form.file_field :option_connect_now_media, accept: "audio/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
47
- <p class="form-hint"><%== t(".option_connect_now_media_hint_html") %></p>
48
- </div>
41
+ <%= render "shared/attachments_field", form: form, field: :option_music_media, accept: "audio/*", hint: t(".option_music_media_hint_html") %>
49
42
 
50
- <div class="form-group group">
51
- <%= form.label :option_no_answer_media %>
52
- <%= form.file_field :option_no_answer_media, accept: "audio/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
53
- <p class="form-hint"><%== t(".option_no_answer_media_hint_html") %></p>
54
- </div>
43
+ <%= render "shared/attachments_field", form: form, field: :option_connect_now_media, accept: "audio/*", hint: t(".option_connect_now_media_hint_html") %>
55
44
 
56
- <div class="form-group group">
57
- <%= form.label :option_no_answer_thank_you_media %>
58
- <%= form.file_field :option_no_answer_thank_you_media, accept: "audio/*", class: "file:mr-4 file:py-2 file:px-4 file:rounded-full file:border-0 file:text-sm file:font-semibold file:bg-gray-50 file:text-gray-700 hover:file:bg-gray-100" %>
59
- <p class="form-hint"><%== t(".option_no_answer_thank_you_media_hint_html") %></p>
60
- </div>
45
+ <%= render "shared/attachments_field", form: form, field: :option_no_answer_media, accept: "audio/*", hint: t(".option_no_answer_media_hint_html") %>
46
+
47
+ <%= render "shared/attachments_field", form: form, field: :option_no_answer_thank_you_media, accept: "audio/*", hint: t(".option_no_answer_thank_you_media_hint_html") %>
48
+
49
+ <%= render "shared/attachments_field", form: form, field: :option_no_answer_no_record_media, accept: "audio/*", hint: t(".option_no_answer_no_record_media_hint_html") %>
61
50
 
62
51
  <div class="form-group group">
63
52
  <%= form.check_box :option_force_input, class: "form-checkbox" %>
@@ -66,15 +55,39 @@
66
55
  </div>
67
56
 
68
57
  <div class="form-group group">
69
- <%= form.check_box :option_record, class: "form-checkbox" %>
58
+ <%= form.check_box :option_record, class: "form-checkbox", "x-model": "option_record" %>
70
59
  <%= form.label :option_record, class: "inline-block" %>
71
60
  <p class="form-hint md:inline-block"><%== t(".option_record_hint_html") %></p>
72
61
  </div>
73
62
 
74
- <div class="form-group group" data-controller="tagify">
63
+ <div class="form-group group" x-show="option_record" x-cloak x-transition>
64
+ <%= form.check_box :option_send_straight_to_voicemail, class: "form-checkbox" %>
65
+ <%= form.label :option_send_straight_to_voicemail, class: "inline-block" %>
66
+ <p class="form-hint md:inline-block"><%== t(".option_send_straight_to_voicemail_hint_html") %></p>
67
+ </div>
68
+
69
+ <div class="form-group group" data-controller="tagify" x-show="option_record" x-cloak x-transition>
75
70
  <%= form.label :option_record_emails_list %>
76
71
  <%= form.text_field :option_record_emails_list, class: "form-control", data: { tagify_target: "input" } %>
77
72
  <p class="form-hint"><%== t(".option_record_emails_list_hint_html") %></p>
78
73
  </div>
79
74
 
75
+ <div class="form-group group" data-controller="tagify">
76
+ <%= form.label :option_banned_phones_list %>
77
+ <%= form.text_field :option_banned_phones_list, class: "form-control", data: { tagify_target: "input" } %>
78
+ <p class="form-hint"><%== t(".option_banned_phones_list_hint_html") %></p>
79
+ </div>
80
+
81
+ <div class="form-group group">
82
+ <%= form.label :option_max_wait_time %>
83
+ <%= form.number_field :option_max_wait_time, class: "form-control" %>
84
+ <p class="form-hint"><%== t(".option_max_wait_time_hint_html") %></p>
85
+ </div>
86
+
87
+ <div class="form-group group">
88
+ <%= form.check_box :option_skip_resolve_on_hangup, class: "form-checkbox" %>
89
+ <%= form.label :option_skip_resolve_on_hangup, class: "inline-block" %>
90
+ <p class="form-hint md:inline-block"><%== t(".option_skip_resolve_on_hangup_hint_html") %></p>
91
+ </div>
92
+
80
93
  </div>
@@ -1,4 +1,4 @@
1
- <div class="sm:col-span-2">
1
+ <div class="sm:col-span-1">
2
2
  <dt class="text-sm font-medium text-gray-500">
3
3
  <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_account_sid") %>
4
4
  </dt>
@@ -11,6 +11,26 @@
11
11
  </dd>
12
12
  </div>
13
13
 
14
+ <div class="sm:col-span-1">
15
+ <dt class="text-sm font-medium text-gray-500">
16
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_api_region") %>
17
+ </dt>
18
+ <dd class="mt-1 text-sm text-gray-900">
19
+ <div class="flex items-center gap-2">
20
+ <p class="text-sm truncate">
21
+ <%=
22
+ case integration.option_api_region
23
+ when "dublin.ie1" then "IE1 (Dublin)"
24
+ when "sydney.au1" then "AU1 (Sydeny)"
25
+ else
26
+ "US1 (Ashburn)"
27
+ end
28
+ %>
29
+ </p>
30
+ </div>
31
+ </dd>
32
+ </div>
33
+
14
34
  <div class="sm:col-span-1">
15
35
  <dt class="text-sm font-medium text-gray-500">
16
36
  <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_api_key") %>
@@ -118,6 +138,17 @@
118
138
  </dd>
119
139
  </div>
120
140
 
141
+ <% if integration.option_record %>
142
+ <div class="sm:col-span-2">
143
+ <dt class="text-sm font-medium text-gray-500">
144
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_send_straight_to_voicemail") %>
145
+ </dt>
146
+ <dd class="mt-1 text-sm text-gray-900">
147
+ <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.option_send_straight_to_voicemail } %>
148
+ </dd>
149
+ </div>
150
+ <% end %>
151
+
121
152
  <div class="sm:col-span-2">
122
153
  <dt class="text-sm font-medium text-gray-500">
123
154
  <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_no_answer_media") %>
@@ -154,17 +185,62 @@
154
185
 
155
186
  <div class="sm:col-span-2">
156
187
  <dt class="text-sm font-medium text-gray-500">
157
- <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_record_emails_list") %>
188
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_no_answer_no_record_media") %>
158
189
  </dt>
159
190
  <dd class="mt-1 text-sm text-gray-900">
160
191
  <div class="flex items-center gap-2">
161
- <% integration.option_record_emails.each do |email| %>
162
- <p class="text-sm truncate">
163
- <%= link_to email, "mailto:#{email}" %>
192
+ <p class="text-sm truncate">
193
+ <% if integration.option_no_answer_no_record_media.present? %>
194
+ <%= link_to integration.option_no_answer_no_record_media.blob.filename, integration.option_no_answer_no_record_media, target: "_blank" %>
195
+ <% else %>
196
+ (<%= t("pager_tree.integrations.common.default") %>)
197
+ <% end %>
198
+ </p>
199
+ </div>
200
+ </dd>
201
+ </div>
202
+
203
+ <% if integration.option_record %>
204
+ <div class="sm:col-span-2">
205
+ <dt class="text-sm font-medium text-gray-500">
206
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_record_emails_list") %>
207
+ </dt>
208
+ <dd class="mt-1 text-sm text-gray-900">
209
+ <div class="flex items-center gap-2">
210
+ <% integration.option_record_emails.each do |email| %>
211
+ <p class="text-sm truncate">
212
+ <%= link_to email, "mailto:#{email}" %>
213
+ </p>
214
+ <% end %>
215
+ <p class="hidden only:flex text-sm truncate">
216
+ (<%= t("pager_tree.integrations.common.none") %>)
164
217
  </p>
165
- <% end %>
166
- <p class="hidden only:flex text-sm truncate">
167
- (<%= t("pager_tree.integrations.common.none") %>)
218
+ </div>
219
+ </dd>
220
+ </div>
221
+ <% end %>
222
+
223
+ <div class="sm:col-span-2">
224
+ <dt class="text-sm font-medium text-gray-500">
225
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_banned_phones_list") %>
226
+ </dt>
227
+ <dd class="mt-1 text-sm text-gray-900">
228
+ <div class="flex items-center gap-2">
229
+ <p class="flex text-sm truncate">
230
+ <%= integration.option_banned_phones.length %>
231
+ </p>
232
+ </div>
233
+ </dd>
234
+ </div>
235
+
236
+ <div class="sm:col-span-2">
237
+ <dt class="text-sm font-medium text-gray-500">
238
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_max_wait_time") %>
239
+ </dt>
240
+ <dd class="mt-1 text-sm text-gray-900">
241
+ <div class="flex items-center gap-2">
242
+ <p class="flex text-sm truncate">
243
+ <%= integration.option_max_wait_time.presence || "-" %>
168
244
  </p>
169
245
  </div>
170
246
  </dd>
@@ -179,3 +255,12 @@
179
255
  </dd>
180
256
  </div>
181
257
 
258
+ <div class="sm:col-span-1">
259
+ <dt class="text-sm font-medium text-gray-500">
260
+ <%= t("activerecord.attributes.pager_tree/integrations/live_call_routing/twilio/v3.option_skip_resolve_on_hangup") %>
261
+ </dt>
262
+ <dd class="mt-1 text-sm text-gray-900">
263
+ <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.option_skip_resolve_on_hangup } %>
264
+ </dd>
265
+ </div>
266
+
@@ -0,0 +1,31 @@
1
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
2
+ <div class="form-group group">
3
+ <%= form.check_box :option_alert_acknowledged, class: "form-checkbox" %>
4
+ <%= form.label :option_alert_acknowledged, class: "inline-block" %>
5
+ <p class="form-hint md:inline-block"><%== t(".option_alert_acknowledged_hint_html") %></p>
6
+ </div>
7
+
8
+ <div class="form-group group">
9
+ <%= form.label :option_logic_monitor_account_name %>
10
+ <%= form.text_field :option_logic_monitor_account_name, class: "form-control" %>
11
+ <p class="form-hint"><%== t(".option_logic_monitor_account_name_hint_html") %></p>
12
+ </div>
13
+
14
+ <div class="form-group group">
15
+ <%= form.label :option_access_id %>
16
+ <%= form.text_field :option_access_id, class: "form-control" %>
17
+ <p class="form-hint"><%== t(".option_access_id_hint_html") %></p>
18
+ </div>
19
+
20
+ <div class="form-group group">
21
+ <%= form.label :option_access_key %>
22
+ <%= form.text_field :option_access_key, class: "form-control" %>
23
+ <p class="form-hint"><%== t(".option_access_key_hint_html") %></p>
24
+ </div>
25
+
26
+ <div class="form-group group">
27
+ <%= form.label :option_bearer_token %>
28
+ <%= form.text_field :option_bearer_token, class: "form-control" %>
29
+ <p class="form-hint"><%== t(".option_bearer_token_hint_html") %></p>
30
+ </div>
31
+ </div>
@@ -0,0 +1,60 @@
1
+ <div class="sm:col-span-1">
2
+ <dt class="text-sm font-medium text-gray-500">
3
+ <%= t("activerecord.attributes.pager_tree/integrations/logic_monitor/v3.option_alert_acknowledged") %>
4
+ </dt>
5
+ <dd class="mt-1 text-sm text-gray-900">
6
+ <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.option_alert_acknowledged } %>
7
+ </dd>
8
+ </div>
9
+
10
+ <div class="sm:col-span-1">
11
+ <dt class="text-sm font-medium text-gray-500">
12
+ <%= t("activerecord.attributes.pager_tree/integrations/logic_monitor/v3.option_logic_monitor_account_name") %>
13
+ </dt>
14
+ <dd class="mt-1 text-sm text-gray-900">
15
+ <div class="flex items-center gap-2">
16
+ <p class="text-sm truncate">
17
+ <%= integration.option_logic_monitor_account_name %>
18
+ </p>
19
+ </div>
20
+ </dd>
21
+ </div>
22
+
23
+ <div class="sm:col-span-1">
24
+ <dt class="text-sm font-medium text-gray-500">
25
+ <%= t("activerecord.attributes.pager_tree/integrations/logic_monitor/v3.option_access_id") %>
26
+ </dt>
27
+ <dd class="mt-1 text-sm text-gray-900">
28
+ <div class="flex items-center gap-2">
29
+ <p class="text-sm truncate">
30
+ <%= mask integration.option_access_id %>
31
+ </p>
32
+ </div>
33
+ </dd>
34
+ </div>
35
+
36
+ <div class="sm:col-span-1">
37
+ <dt class="text-sm font-medium text-gray-500">
38
+ <%= t("activerecord.attributes.pager_tree/integrations/logic_monitor/v3.option_access_key") %>
39
+ </dt>
40
+ <dd class="mt-1 text-sm text-gray-900">
41
+ <div class="flex items-center gap-2">
42
+ <p class="text-sm truncate">
43
+ <%= mask integration.option_access_key %>
44
+ </p>
45
+ </div>
46
+ </dd>
47
+ </div>
48
+
49
+ <div class="sm:col-span-1">
50
+ <dt class="text-sm font-medium text-gray-500">
51
+ <%= t("activerecord.attributes.pager_tree/integrations/logic_monitor/v3.option_bearer_token") %>
52
+ </dt>
53
+ <dd class="mt-1 text-sm text-gray-900">
54
+ <div class="flex items-center gap-2">
55
+ <p class="text-sm truncate">
56
+ <%= mask integration.option_bearer_token %>
57
+ </p>
58
+ </div>
59
+ </dd>
60
+ </div>
@@ -0,0 +1,44 @@
1
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4">
2
+ <div class="form-group group">
3
+ <%= form.label :option_group_id %>
4
+ <%= form.text_field :option_group_id, class: "form-control" %>
5
+ <p class="form-hint"><%== t(".option_group_id_hint_html") %></p>
6
+ </div>
7
+ <div class="form-group group">
8
+ <%= form.label :option_access_token %>
9
+ <%= form.text_field :option_access_token, class: "form-control" %>
10
+ <p class="form-hint"><%== t(".option_access_token_hint_html") %></p>
11
+ </div>
12
+ <%
13
+ =begin%>
14
+ <div class="form-group">
15
+ <%= form.label :option_app_secret %>
16
+ <%= form.text_field :option_app_secret, class: "form-control" %>
17
+ <p class="form-hint"><%== t(".option_app_secret_hint_html") %></p>
18
+ </div>
19
+ <%
20
+ =end%>
21
+
22
+ <%
23
+ opts = [
24
+ # :outgoing_enabled,
25
+ # :incoming_enabled
26
+ ]
27
+ %>
28
+ <% opts.each do |opt| %>
29
+ <div class="form-group group">
30
+ <%= form.check_box "option_#{opt.to_s}".to_sym, class: "form-checkbox" %>
31
+ <%= form.label "option_#{opt.to_s}".to_sym, class: "inline-block" %>
32
+ <p class="form-hint md:inline-block"><%== t(".option_#{opt.to_s}_hint_html") %></p>
33
+ </div>
34
+ <% end %>
35
+ </div>
36
+
37
+ <div class="grid grid-cols-1 gap-4">
38
+ <%= tag.div class: "form-group group", data: {controller: "code-editor", code_editor_language_value: "yaml", code_editor_read_only_value: false } do %>
39
+ <%= form.label :option_outgoing_rules, t("pager_tree.integrations.common.option_outgoing_rules") %>
40
+ <%= form.hidden_field :option_outgoing_rules, class: "form-control", data: {code_editor_target: "form"} %>
41
+ <%= tag.div class: "h-96", data: {code_editor_target: "editor"} do %><%= form.object.option_outgoing_rules %><% end %>
42
+ <p class="form-hint"><%== t("pager_tree.integrations.common.option_outgoing_rules_hint_html") %></p>
43
+ <% end %>
44
+ </div>
@@ -0,0 +1,68 @@
1
+ <div class="sm:col-span-2">
2
+ <dt class="text-sm font-medium text-gray-500">
3
+ <%= t("activerecord.attributes.pager_tree/integrations/meta/workplace/v3.option_group_id") %>
4
+ </dt>
5
+ <dd class="mt-1 text-sm text-gray-900">
6
+ <div class="flex items-center gap-2">
7
+ <p class="text-sm truncate">
8
+ <%= integration.option_group_id %>
9
+ </p>
10
+ </div>
11
+ </dd>
12
+ </div>
13
+
14
+ <div class="sm:col-span-2">
15
+ <dt class="text-sm font-medium text-gray-500">
16
+ <%= t("activerecord.attributes.pager_tree/integrations/meta/workplace/v3.option_access_token") %>
17
+ </dt>
18
+ <dd class="mt-1 text-sm text-gray-900">
19
+ <div class="flex items-center gap-2">
20
+ <p class="text-sm truncate">
21
+ <%= mask integration.option_access_token %>
22
+ </p>
23
+ </div>
24
+ </dd>
25
+ </div>
26
+
27
+ <%
28
+ =begin%>
29
+ <div class="sm:col-span-2">
30
+ <dt class="text-sm font-medium text-gray-500">
31
+ <%= t("activerecord.attributes.pager_tree/integrations/meta/workplace/v3.option_app_secret") %>
32
+ </dt>
33
+ <dd class="mt-1 text-sm text-gray-900">
34
+ <div class="flex items-center gap-2">
35
+ <p class="text-sm truncate">
36
+ <%= mask integration.option_app_secret %>
37
+ </p>
38
+ </div>
39
+ </dd>
40
+ </div>
41
+ <%
42
+ =end%>
43
+
44
+ <%
45
+ opts = [
46
+ # :outgoing_enabled,
47
+ # :incoming_enabled
48
+ ]
49
+ %>
50
+ <% opts.each do |opt| %>
51
+ <div class="sm:col-span-1">
52
+ <dt class="text-sm font-medium text-gray-500">
53
+ <%= t("activerecord.attributes.pager_tree/integrations/meta/workplace/v3.option_#{opt.to_s}") %>
54
+ </dt>
55
+ <dd class="mt-1 text-sm text-gray-900">
56
+ <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.send("option_#{opt.to_s}") } %>
57
+ </dd>
58
+ </div>
59
+ <% end %>
60
+
61
+ <div class="sm:col-span-1">
62
+ <dt class="text-sm font-medium text-gray-500">
63
+ <%= t("pager_tree.integrations.common.option_outgoing_rules") %>
64
+ </dt>
65
+ <dd class="mt-1 text-sm text-gray-900">
66
+ <%= render partial: "shared/components/badge_enabled", locals: { enabled: integration.option_outgoing_rules.present? } %>
67
+ </dd>
68
+ </div>
@@ -11,10 +11,19 @@
11
11
  <p class="form-hint"><%== t(".option_username_hint_html") %></p>
12
12
  </div>
13
13
 
14
- <div class="form-group group">
14
+ <div class="form-group group" data-controller="password-visibility">
15
15
  <%= form.label :option_password %>
16
- <%= form.text_field :option_password, class: "form-control" %>
17
- <p class="form-hint"><%== t(".option_password_hint_html") %></p>
16
+ <%= form.password_field :option_password, value: form.object.option_password, class: "form-control", data: { password_visibility_target: "input"} %>
17
+ <div class="flex justify-between">
18
+ <p class="form-hint"><%== t(".option_password_hint_html") %></p>
19
+ <%= render partial: "shared/password_visibility_button" %>
20
+ </div>
21
+ </div>
22
+
23
+ <div class="form-group group">
24
+ <%= form.label :option_proxy_url %>
25
+ <%= form.text_field :option_proxy_url, class: "form-control" %>
26
+ <p class="form-hint"><%== t(".option_proxy_url_hint_html") %></p>
18
27
  </div>
19
28
 
20
29
  <%
@@ -27,6 +36,11 @@
27
36
  :alert_resolved,
28
37
  :alert_dropped,
29
38
  :alert_handoff,
39
+ :comment_created,
40
+ :comment_updated,
41
+ :comment_destroyed,
42
+ :event_reminder_going_on_call,
43
+ :event_reminder_going_off_call,
30
44
  :send_linked
31
45
  ]
32
46
  %>
@@ -37,6 +37,21 @@
37
37
  </dd>
38
38
  </div>
39
39
 
40
+ <% if integration.option_proxy_url.present? %>
41
+ <div class="sm:col-span-1">
42
+ <dt class="text-sm font-medium text-gray-500">
43
+ <%= t("activerecord.attributes.pager_tree/integrations/outgoing_webhook/v3.option_proxy_url") %>
44
+ </dt>
45
+ <dd class="mt-1 text-sm text-gray-900">
46
+ <div class="flex items-center gap-2">
47
+ <p class="text-sm truncate">
48
+ <%= integration.option_proxy_url %>
49
+ </p>
50
+ </div>
51
+ </dd>
52
+ </div>
53
+ <% end %>
54
+
40
55
  <%
41
56
  opts = [
42
57
  :alert_created,
@@ -47,6 +62,11 @@
47
62
  :alert_resolved,
48
63
  :alert_dropped,
49
64
  :alert_handoff,
65
+ :comment_created,
66
+ :comment_updated,
67
+ :comment_destroyed,
68
+ :event_reminder_going_on_call,
69
+ :event_reminder_going_off_call,
50
70
  ]
51
71
  %>
52
72
  <% opts.each do |opt| %>