rails_error_dashboard 0.8.3 → 0.9.0
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.
- checksums.yaml +4 -4
- data/README.md +35 -0
- data/app/controllers/rails_error_dashboard/application_controller.rb +156 -0
- data/app/controllers/rails_error_dashboard/errors_controller.rb +95 -73
- data/app/controllers/rails_error_dashboard/locales_controller.rb +87 -0
- data/app/helpers/rails_error_dashboard/application_helper.rb +20 -14
- data/app/helpers/rails_error_dashboard/backtrace_helper.rb +15 -6
- data/app/helpers/rails_error_dashboard/i18n_helper.rb +154 -0
- data/app/helpers/rails_error_dashboard/mailer_i18n_helper.rb +69 -0
- data/app/helpers/rails_error_dashboard/overview_helper.rb +18 -6
- data/app/helpers/rails_error_dashboard/user_agent_helper.rb +25 -11
- data/app/jobs/rails_error_dashboard/application_job.rb +5 -0
- data/app/jobs/rails_error_dashboard/baseline_alert_job.rb +18 -16
- data/app/jobs/rails_error_dashboard/concerns/localized_job.rb +83 -0
- data/app/jobs/rails_error_dashboard/discord_error_notification_job.rb +4 -2
- data/app/jobs/rails_error_dashboard/email_error_notification_job.rb +4 -2
- data/app/jobs/rails_error_dashboard/pagerduty_error_notification_job.rb +6 -2
- data/app/jobs/rails_error_dashboard/scheduled_digest_job.rb +8 -3
- data/app/jobs/rails_error_dashboard/slack_error_notification_job.rb +6 -4
- data/app/jobs/rails_error_dashboard/storm_notification_job.rb +26 -8
- data/app/jobs/rails_error_dashboard/webhook_error_notification_job.rb +4 -2
- data/app/mailers/rails_error_dashboard/application_mailer.rb +14 -0
- data/app/mailers/rails_error_dashboard/digest_mailer.rb +18 -2
- data/app/mailers/rails_error_dashboard/error_notification_mailer.rb +19 -2
- data/app/views/layouts/rails_error_dashboard.html.erb +255 -92
- data/app/views/rails_error_dashboard/digest_mailer/digest_summary.html.erb +23 -22
- data/app/views/rails_error_dashboard/digest_mailer/digest_summary.text.erb +30 -19
- data/app/views/rails_error_dashboard/error_notification_mailer/error_alert.html.erb +18 -16
- data/app/views/rails_error_dashboard/error_notification_mailer/error_alert.text.erb +21 -14
- data/app/views/rails_error_dashboard/errors/_ai_help_panel.html.erb +11 -7
- data/app/views/rails_error_dashboard/errors/_breadcrumbs_group.html.erb +45 -38
- data/app/views/rails_error_dashboard/errors/_co_occurring_errors.html.erb +17 -14
- data/app/views/rails_error_dashboard/errors/_discussion.html.erb +27 -9
- data/app/views/rails_error_dashboard/errors/_error_cascades.html.erb +25 -21
- data/app/views/rails_error_dashboard/errors/_error_info.html.erb +25 -22
- data/app/views/rails_error_dashboard/errors/_error_row.html.erb +24 -12
- data/app/views/rails_error_dashboard/errors/_instance_variables.html.erb +12 -11
- data/app/views/rails_error_dashboard/errors/_issue_section.html.erb +19 -13
- data/app/views/rails_error_dashboard/errors/_llm_summary.html.erb +14 -14
- data/app/views/rails_error_dashboard/errors/_local_variables.html.erb +8 -8
- data/app/views/rails_error_dashboard/errors/_modals.html.erb +60 -52
- data/app/views/rails_error_dashboard/errors/_pattern_insights.html.erb +59 -49
- data/app/views/rails_error_dashboard/errors/_request_context.html.erb +23 -20
- data/app/views/rails_error_dashboard/errors/_show_scripts.html.erb +14 -14
- data/app/views/rails_error_dashboard/errors/_sidebar_metadata.html.erb +118 -93
- data/app/views/rails_error_dashboard/errors/_similar_errors.html.erb +18 -12
- data/app/views/rails_error_dashboard/errors/_source_code.html.erb +20 -5
- data/app/views/rails_error_dashboard/errors/_stats.html.erb +5 -5
- data/app/views/rails_error_dashboard/errors/_timeline.html.erb +7 -7
- data/app/views/rails_error_dashboard/errors/_user_errors_table.html.erb +15 -12
- data/app/views/rails_error_dashboard/errors/actioncable_health_summary.html.erb +25 -25
- data/app/views/rails_error_dashboard/errors/activestorage_health_summary.html.erb +28 -28
- data/app/views/rails_error_dashboard/errors/analytics.html.erb +82 -82
- data/app/views/rails_error_dashboard/errors/cache_health_summary.html.erb +27 -27
- data/app/views/rails_error_dashboard/errors/correlation.html.erb +61 -57
- data/app/views/rails_error_dashboard/errors/database_health_summary.html.erb +64 -65
- data/app/views/rails_error_dashboard/errors/deprecations.html.erb +23 -23
- data/app/views/rails_error_dashboard/errors/diagnostic_dumps.html.erb +48 -36
- data/app/views/rails_error_dashboard/errors/index.html.erb +121 -70
- data/app/views/rails_error_dashboard/errors/job_health_summary.html.erb +30 -30
- data/app/views/rails_error_dashboard/errors/llm_health_summary.html.erb +38 -39
- data/app/views/rails_error_dashboard/errors/n_plus_one_summary.html.erb +28 -25
- data/app/views/rails_error_dashboard/errors/overview.html.erb +45 -39
- data/app/views/rails_error_dashboard/errors/platform_comparison.html.erb +45 -44
- data/app/views/rails_error_dashboard/errors/rack_attack_summary.html.erb +39 -28
- data/app/views/rails_error_dashboard/errors/releases.html.erb +46 -47
- data/app/views/rails_error_dashboard/errors/settings/_value_badge.html.erb +48 -44
- data/app/views/rails_error_dashboard/errors/settings.html.erb +122 -112
- data/app/views/rails_error_dashboard/errors/show.html.erb +44 -37
- data/app/views/rails_error_dashboard/errors/storms.html.erb +30 -24
- data/app/views/rails_error_dashboard/errors/swallowed_exceptions.html.erb +26 -26
- data/app/views/rails_error_dashboard/errors/user_impact.html.erb +31 -30
- data/config/locales/de.yml +2007 -0
- data/config/locales/en.yml +2719 -0
- data/config/locales/es.yml +2079 -0
- data/config/locales/fr.yml +2082 -0
- data/config/locales/it.yml +2060 -0
- data/config/locales/ja.yml +1802 -0
- data/config/locales/pl.yml +2108 -0
- data/config/locales/pt-BR.yml +2064 -0
- data/config/locales/ru.yml +2109 -0
- data/config/locales/uk.yml +2106 -0
- data/config/locales/zh-CN.yml +1791 -0
- data/config/routes.rb +5 -0
- data/db/migrate/20260325000001_fix_swallowed_exceptions_index_for_mysql.rb +9 -3
- data/lib/rails_error_dashboard/commands/batch_delete_errors.rb +3 -1
- data/lib/rails_error_dashboard/commands/batch_mute_errors.rb +4 -2
- data/lib/rails_error_dashboard/commands/batch_resolve_errors.rb +4 -2
- data/lib/rails_error_dashboard/commands/batch_unmute_errors.rb +4 -2
- data/lib/rails_error_dashboard/commands/create_issue.rb +5 -3
- data/lib/rails_error_dashboard/commands/link_existing_issue.rb +4 -2
- data/lib/rails_error_dashboard/commands/log_error.rb +1 -1
- data/lib/rails_error_dashboard/configuration.rb +23 -0
- data/lib/rails_error_dashboard/current.rb +56 -0
- data/lib/rails_error_dashboard/i18n_store.rb +293 -0
- data/lib/rails_error_dashboard/private_backend.rb +213 -0
- data/lib/rails_error_dashboard/services/baseline_alert_payload_builder.rb +89 -22
- data/lib/rails_error_dashboard/services/digest_builder.rb +21 -7
- data/lib/rails_error_dashboard/services/discord_payload_builder.rb +27 -15
- data/lib/rails_error_dashboard/services/error_notification_dispatcher.rb +10 -5
- data/lib/rails_error_dashboard/services/localized_time_formatter.rb +117 -0
- data/lib/rails_error_dashboard/services/notification_helpers.rb +87 -4
- data/lib/rails_error_dashboard/services/pagerduty_payload_builder.rb +22 -5
- data/lib/rails_error_dashboard/services/slack_payload_builder.rb +48 -28
- data/lib/rails_error_dashboard/services/storm_protection/gate.rb +2 -1
- data/lib/rails_error_dashboard/services/webhook_payload_builder.rb +15 -1
- data/lib/rails_error_dashboard/translation.rb +39 -0
- data/lib/rails_error_dashboard/version.rb +1 -1
- data/lib/rails_error_dashboard.rb +4 -0
- data/lib/tasks/error_dashboard.rake +5 -1
- metadata +24 -4
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
// Visual feedback
|
|
45
45
|
const button = event.currentTarget;
|
|
46
46
|
const originalHTML = button.innerHTML;
|
|
47
|
-
button.innerHTML = '<i class="bi bi-check"></i>
|
|
47
|
+
button.innerHTML = '<i class="bi bi-check"></i> <%= red_js_t("red.ui_js.toast.downloaded") %>';
|
|
48
48
|
button.classList.remove('btn-outline-secondary');
|
|
49
49
|
button.classList.add('btn-success');
|
|
50
50
|
|
|
@@ -58,19 +58,19 @@
|
|
|
58
58
|
// Section Navigation — pill bar with scroll spy
|
|
59
59
|
document.addEventListener('DOMContentLoaded', function() {
|
|
60
60
|
var sectionConfig = [
|
|
61
|
-
{ id: 'section-error-info', icon: 'bi-bug-fill', label: '
|
|
62
|
-
{ id: 'section-request-context', icon: 'bi-globe', label: '
|
|
63
|
-
{ id: 'section-deprecation-warnings', icon: 'bi-exclamation-triangle', label: '
|
|
64
|
-
{ id: 'section-n-plus-one', icon: 'bi-arrow-repeat', label: '
|
|
65
|
-
{ id: 'section-cache-health', icon: 'bi-lightning-charge', label: '
|
|
66
|
-
{ id: 'section-breadcrumbs', icon: 'bi-signpost-2', label: '
|
|
67
|
-
{ id: 'section-similar-errors', icon: 'bi-diagram-3', label: '
|
|
68
|
-
{ id: 'section-co-occurring', icon: 'bi-intersect', label: '
|
|
69
|
-
{ id: 'section-timeline', icon: 'bi-clock-history', label: '
|
|
70
|
-
{ id: 'issue-tracking', icon: 'bi-link-45deg', label: '
|
|
71
|
-
{ id: 'section-discussion', icon: 'bi-chat-dots', label: '
|
|
72
|
-
{ id: 'section-error-cascades', icon: 'bi-share', label: '
|
|
73
|
-
{ id: 'section-occurrence-patterns', icon: 'bi-graph-up', label: '
|
|
61
|
+
{ id: 'section-error-info', icon: 'bi-bug-fill', label: '<%= red_js_t("red.ui_js.sections.error") %>' },
|
|
62
|
+
{ id: 'section-request-context', icon: 'bi-globe', label: '<%= red_js_t("red.ui_js.sections.request") %>' },
|
|
63
|
+
{ id: 'section-deprecation-warnings', icon: 'bi-exclamation-triangle', label: '<%= red_js_t("red.ui_js.sections.deprecations") %>' },
|
|
64
|
+
{ id: 'section-n-plus-one', icon: 'bi-arrow-repeat', label: '<%= red_js_t("red.ui_js.sections.n_plus_one") %>' },
|
|
65
|
+
{ id: 'section-cache-health', icon: 'bi-lightning-charge', label: '<%= red_js_t("red.ui_js.sections.cache") %>' },
|
|
66
|
+
{ id: 'section-breadcrumbs', icon: 'bi-signpost-2', label: '<%= red_js_t("red.ui_js.sections.breadcrumbs") %>' },
|
|
67
|
+
{ id: 'section-similar-errors', icon: 'bi-diagram-3', label: '<%= red_js_t("red.ui_js.sections.similar") %>' },
|
|
68
|
+
{ id: 'section-co-occurring', icon: 'bi-intersect', label: '<%= red_js_t("red.ui_js.sections.co_occurring") %>' },
|
|
69
|
+
{ id: 'section-timeline', icon: 'bi-clock-history', label: '<%= red_js_t("red.ui_js.sections.timeline") %>' },
|
|
70
|
+
{ id: 'issue-tracking', icon: 'bi-link-45deg', label: '<%= red_js_t("red.ui_js.sections.issue") %>' },
|
|
71
|
+
{ id: 'section-discussion', icon: 'bi-chat-dots', label: '<%= red_js_t("red.ui_js.sections.discussion") %>' },
|
|
72
|
+
{ id: 'section-error-cascades', icon: 'bi-share', label: '<%= red_js_t("red.ui_js.sections.cascades") %>' },
|
|
73
|
+
{ id: 'section-occurrence-patterns', icon: 'bi-graph-up', label: '<%= red_js_t("red.ui_js.sections.patterns") %>' }
|
|
74
74
|
];
|
|
75
75
|
|
|
76
76
|
var scrollContainer = document.querySelector('.section-nav-scroll');
|