pgbus 0.19.4 → 0.20.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/CHANGELOG.md +6 -0
- data/README.md +96 -7
- data/Rakefile +6 -1
- data/app/controllers/pgbus/dashboard_controller.rb +2 -0
- data/app/controllers/pgbus/workflow_definitions_controller.rb +28 -0
- data/app/controllers/pgbus/workflows_controller.rb +197 -0
- data/app/frontend/pgbus/modules/charts.js +130 -4
- data/app/frontend/pgbus/modules/charts.min.js +1 -1
- data/app/frontend/pgbus/modules/charts.min.js.map +1 -1
- data/app/frontend/pgbus/style.css +1 -1
- data/app/helpers/pgbus/button_helper.rb +4 -2
- data/app/helpers/pgbus/workflow_insights_helper.rb +129 -0
- data/app/helpers/pgbus/workflows_helper.rb +165 -0
- data/app/models/pgbus/workflow_entry.rb +172 -0
- data/app/models/pgbus/workflow_event.rb +43 -0
- data/app/models/pgbus/workflow_signal.rb +77 -0
- data/app/models/pgbus/workflow_step.rb +142 -0
- data/app/views/layouts/pgbus/application.html.erb +2 -0
- data/app/views/pgbus/dashboard/_stats_cards.html.erb +17 -0
- data/app/views/pgbus/workflows/_actions.html.erb +59 -0
- data/app/views/pgbus/workflows/_events_table.html.erb +24 -0
- data/app/views/pgbus/workflows/_filters.html.erb +29 -0
- data/app/views/pgbus/workflows/_signal_form.html.erb +31 -0
- data/app/views/pgbus/workflows/_signals_table.html.erb +40 -0
- data/app/views/pgbus/workflows/_status_filter.html.erb +12 -0
- data/app/views/pgbus/workflows/_steps_table.html.erb +79 -0
- data/app/views/pgbus/workflows/_timeline.html.erb +39 -0
- data/app/views/pgbus/workflows/_workflows_table.html.erb +59 -0
- data/app/views/pgbus/workflows/attention.html.erb +88 -0
- data/app/views/pgbus/workflows/definitions/_by_revision.html.erb +52 -0
- data/app/views/pgbus/workflows/definitions/_duration_table.html.erb +18 -0
- data/app/views/pgbus/workflows/definitions/_funnel.html.erb +49 -0
- data/app/views/pgbus/workflows/definitions/_pipeline.html.erb +16 -0
- data/app/views/pgbus/workflows/definitions/_step_card.html.erb +31 -0
- data/app/views/pgbus/workflows/definitions/_throughput_table.html.erb +32 -0
- data/app/views/pgbus/workflows/definitions/_window.html.erb +17 -0
- data/app/views/pgbus/workflows/definitions/index.html.erb +71 -0
- data/app/views/pgbus/workflows/definitions/not_found.html.erb +5 -0
- data/app/views/pgbus/workflows/definitions/show.html.erb +80 -0
- data/app/views/pgbus/workflows/index.html.erb +15 -0
- data/app/views/pgbus/workflows/not_found.html.erb +5 -0
- data/app/views/pgbus/workflows/show.html.erb +93 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/da.yml +442 -0
- data/config/locales/de.yml +442 -0
- data/config/locales/en.yml +442 -0
- data/config/locales/es.yml +442 -0
- data/config/locales/fi.yml +442 -0
- data/config/locales/fr.yml +442 -0
- data/config/locales/it.yml +442 -0
- data/config/locales/ja.yml +442 -0
- data/config/locales/nb.yml +442 -0
- data/config/locales/nl.yml +442 -0
- data/config/locales/pt.yml +442 -0
- data/config/locales/sv.yml +442 -0
- data/config/routes.rb +26 -0
- data/lib/generators/pgbus/add_workflow_signals_generator.rb +56 -0
- data/lib/generators/pgbus/add_workflows_generator.rb +54 -0
- data/lib/generators/pgbus/templates/add_workflow_signals.rb.erb +51 -0
- data/lib/generators/pgbus/templates/add_workflows.rb.erb +150 -0
- data/lib/generators/pgbus/templates/migration.rb.erb +127 -0
- data/lib/pgbus/active_job/delivery.rb +49 -0
- data/lib/pgbus/active_job/executor.rb +3 -1
- data/lib/pgbus/configuration/workflow_settings.rb +99 -0
- data/lib/pgbus/configuration.rb +21 -3
- data/lib/pgbus/generators/migration_detector.rb +40 -0
- data/lib/pgbus/instrumentation.rb +32 -0
- data/lib/pgbus/integrations/appsignal/dashboard.json +128 -1
- data/lib/pgbus/integrations/appsignal/subscriber.rb +16 -1
- data/lib/pgbus/mcp/rack_app.rb +7 -2
- data/lib/pgbus/mcp/runner.rb +2 -1
- data/lib/pgbus/mcp/serialization.rb +25 -0
- data/lib/pgbus/mcp/server.rb +53 -10
- data/lib/pgbus/mcp/tools/deploy_tasks_tool.rb +1 -10
- data/lib/pgbus/mcp/tools/workflow_cancel_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_definitions_tool.rb +36 -0
- data/lib/pgbus/mcp/tools/workflow_detail_tool.rb +38 -0
- data/lib/pgbus/mcp/tools/workflow_resume_at_tool.rb +32 -0
- data/lib/pgbus/mcp/tools/workflow_resume_tool.rb +24 -0
- data/lib/pgbus/mcp/tools/workflow_run_now_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_signal_tool.rb +77 -0
- data/lib/pgbus/mcp/tools/workflow_skip_step_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_stats_tool.rb +42 -0
- data/lib/pgbus/mcp/tools/workflows_attention_tool.rb +42 -0
- data/lib/pgbus/mcp/tools/workflows_tool.rb +60 -0
- data/lib/pgbus/mcp/workflow_insights_payload.rb +15 -0
- data/lib/pgbus/mcp/workflow_payloads.rb +53 -0
- data/lib/pgbus/mcp/write_tool.rb +134 -0
- data/lib/pgbus/mcp.rb +15 -0
- data/lib/pgbus/metrics/backends/statsd.rb +6 -0
- data/lib/pgbus/metrics/subscriber.rb +14 -1
- data/lib/pgbus/metrics/workflow_metrics.rb +65 -0
- data/lib/pgbus/process/dispatcher.rb +26 -0
- data/lib/pgbus/version.rb +1 -1
- data/lib/pgbus/web/data_source/workflow_actions.rb +109 -0
- data/lib/pgbus/web/data_source/workflow_insights.rb +99 -0
- data/lib/pgbus/web/data_source/workflow_list.rb +248 -0
- data/lib/pgbus/web/data_source.rb +3 -0
- data/lib/pgbus/web/workflow_action_plan.rb +62 -0
- data/lib/pgbus/web/workflow_insights_queries.rb +250 -0
- data/lib/pgbus/web/workflow_insights_report.rb +171 -0
- data/lib/pgbus/web/workflow_payload.rb +36 -0
- data/lib/pgbus/web/workflow_query.rb +82 -0
- data/lib/pgbus/web/workflow_state.rb +76 -0
- data/lib/pgbus/web/workflow_timeline.rb +113 -0
- data/lib/pgbus/web/workflow_window.rb +51 -0
- data/lib/pgbus/workflow/batch_finished_job.rb +21 -0
- data/lib/pgbus/workflow/dsl.rb +105 -0
- data/lib/pgbus/workflow/error_capture.rb +63 -0
- data/lib/pgbus/workflow/exception_policy.rb +170 -0
- data/lib/pgbus/workflow/fan_out.rb +157 -0
- data/lib/pgbus/workflow/fan_out_definition.rb +41 -0
- data/lib/pgbus/workflow/flow_control.rb +94 -0
- data/lib/pgbus/workflow/instance.rb +183 -0
- data/lib/pgbus/workflow/outside_verbs.rb +138 -0
- data/lib/pgbus/workflow/payload.rb +53 -0
- data/lib/pgbus/workflow/registry.rb +53 -0
- data/lib/pgbus/workflow/removed_step.rb +14 -0
- data/lib/pgbus/workflow/runner.rb +218 -0
- data/lib/pgbus/workflow/signal_matcher.rb +53 -0
- data/lib/pgbus/workflow/signals.rb +132 -0
- data/lib/pgbus/workflow/states.rb +119 -0
- data/lib/pgbus/workflow/step_context.rb +58 -0
- data/lib/pgbus/workflow/step_definition.rb +131 -0
- data/lib/pgbus/workflow/step_execution.rb +242 -0
- data/lib/pgbus/workflow/step_job.rb +28 -0
- data/lib/pgbus/workflow/step_outcome.rb +151 -0
- data/lib/pgbus/workflow/steps.rb +103 -0
- data/lib/pgbus/workflow/sweep.rb +156 -0
- data/lib/pgbus/workflow/test_helpers.rb +152 -0
- data/lib/pgbus/workflow/wait_timeout.rb +73 -0
- data/lib/pgbus/workflow/waiting.rb +82 -0
- data/lib/pgbus/workflow.rb +183 -0
- data/sig/pgbus/configuration.rbs +22 -0
- metadata +92 -1
data/config/locales/nb.yml
CHANGED
|
@@ -140,6 +140,11 @@ nb:
|
|
|
140
140
|
throughput: Gjennomstrømning
|
|
141
141
|
throughput_detail: jobber/min de siste %{minutes} min
|
|
142
142
|
throughput_unavailable: krever jobbstatistikk (rails g pgbus:add_job_stats)
|
|
143
|
+
workflows: Arbeidsflyter
|
|
144
|
+
workflows_attention:
|
|
145
|
+
one: "%{count} trenger oppmerksomhet"
|
|
146
|
+
other: "%{count} trenger oppmerksomhet"
|
|
147
|
+
workflows_detail: pågående (%{paused} satt på pause)
|
|
143
148
|
verdict:
|
|
144
149
|
links:
|
|
145
150
|
dlq: Dead letters
|
|
@@ -723,6 +728,7 @@ nb:
|
|
|
723
728
|
processes: Prosesser
|
|
724
729
|
queues: Køer
|
|
725
730
|
recurring: Gjentakende
|
|
731
|
+
workflows: Arbeidsflyter
|
|
726
732
|
return_to_app: Tilbake til appen
|
|
727
733
|
title: Pgbus-dashbord
|
|
728
734
|
toggle_dark_mode: Bytt til mørk modus
|
|
@@ -1023,3 +1029,439 @@ nb:
|
|
|
1023
1029
|
disabled: Oppgave deaktivert
|
|
1024
1030
|
enabled: Oppgave aktivert
|
|
1025
1031
|
failed: Kunne ikke endre oppgave
|
|
1032
|
+
workflow_insights:
|
|
1033
|
+
back_to_classes: Alle arbeidsflytklasser
|
|
1034
|
+
back_to_runs: Alle arbeidsflytkjøringer
|
|
1035
|
+
bad_request: 'Ugyldig forespørsel: %{reason}'
|
|
1036
|
+
capped: 'Begrenset til workflow_retention (%{retention}): fullførte og avbrutte kjøringer som er eldre, slettes.'
|
|
1037
|
+
few_samples:
|
|
1038
|
+
one: n=%{count}, få målinger
|
|
1039
|
+
other: n=%{count}, få målinger
|
|
1040
|
+
index:
|
|
1041
|
+
description: 'Hvordan hver arbeidsflytklasse gjorde det over %{window}: kjøringene som pågår nå, kjøringene som ble avsluttet, og hvor lang tid en kjøring tar fra start til slutt.'
|
|
1042
|
+
empty_hint: 'Definer en underklasse av Pgbus::Workflow og start en kjøring: YourWorkflow.start!(subject, **arguments).'
|
|
1043
|
+
empty_title: Ingen arbeidsflytklasse har kjørt ennå.
|
|
1044
|
+
headers:
|
|
1045
|
+
attention: Trenger tiltak
|
|
1046
|
+
cancelled: Avbrutt
|
|
1047
|
+
duration_p50: Varighet p50
|
|
1048
|
+
duration_p95: Varighet p95
|
|
1049
|
+
finished: Fullført
|
|
1050
|
+
ongoing: Pågående
|
|
1051
|
+
paused: Pauset
|
|
1052
|
+
workflow_class: Arbeidsflytklasse
|
|
1053
|
+
title: Arbeidsflytinnsikt
|
|
1054
|
+
links:
|
|
1055
|
+
at_step: "%{status} kjøringer ved %{step}"
|
|
1056
|
+
attention: kjøringer av %{workflow} som trenger tiltak
|
|
1057
|
+
cancelled: kjøringer av %{workflow} som ble avbrutt i vinduet
|
|
1058
|
+
cancelled_bucket: kjøringer avbrutt i perioden
|
|
1059
|
+
finished: kjøringer av %{workflow} som ble fullført i vinduet
|
|
1060
|
+
finished_bucket: kjøringer fullført i perioden
|
|
1061
|
+
ongoing: pågående kjøringer av %{workflow}
|
|
1062
|
+
paused: pausede kjøringer av %{workflow}
|
|
1063
|
+
started: kjøringer av %{workflow} som startet i vinduet
|
|
1064
|
+
started_bucket: kjøringer startet i perioden
|
|
1065
|
+
not_found:
|
|
1066
|
+
hint: Ingen underklasse av Pgbus::Workflow og ingen kjøring heter %{workflow} (eller lesingen feilet, se loggen).
|
|
1067
|
+
title: Ukjent arbeidsflytklasse
|
|
1068
|
+
not_loaded: Definisjonen er ikke lastet
|
|
1069
|
+
not_loaded_hint: 'Klassen lastes ikke lenger i appen: stegene kommer fra kjøringenes rader, i den rekkefølgen kjøringene nådde dem.'
|
|
1070
|
+
percentile: "%{name} %{value}"
|
|
1071
|
+
removed_in_flight:
|
|
1072
|
+
one: "%{count} kjøring på fjernet steg %{step}"
|
|
1073
|
+
other: "%{count} kjøringer på fjernet steg %{step}"
|
|
1074
|
+
show:
|
|
1075
|
+
by_revision:
|
|
1076
|
+
all_steps: Alle steg
|
|
1077
|
+
caption: 'De samme tallene for de fem siste appversjonene som avsluttet et forsøk i vinduet, nyeste først: en forverring etter en utrulling vises som en rad.'
|
|
1078
|
+
empty: Ingen forsøk i dette vinduet registrerte en appversjon (config.app_revision).
|
|
1079
|
+
headers:
|
|
1080
|
+
attempts: Forsøk
|
|
1081
|
+
failed: Feilet
|
|
1082
|
+
reattempted: Forsøkt på nytt
|
|
1083
|
+
revision: Versjon
|
|
1084
|
+
run_time: Kjøretid
|
|
1085
|
+
skipped: Hoppet over
|
|
1086
|
+
step: Steg
|
|
1087
|
+
seen_html: sett %{from} til %{to}
|
|
1088
|
+
title: Per appversjon
|
|
1089
|
+
worse: opp fra %{rate} på %{revision}
|
|
1090
|
+
charts:
|
|
1091
|
+
durations:
|
|
1092
|
+
between: "%{from}–%{to}"
|
|
1093
|
+
caption:
|
|
1094
|
+
one: Hvor lang tid den %{count} kjøringen som ble fullført i vinduet, tok fra start til slutt.
|
|
1095
|
+
other: Hvor lang tid de %{count} kjøringene som ble fullført i vinduet, tok fra start til slutt.
|
|
1096
|
+
headers:
|
|
1097
|
+
range: Varighet
|
|
1098
|
+
runs: Kjøringer
|
|
1099
|
+
over: "%{from} eller mer"
|
|
1100
|
+
title: Varighet fra start til slutt
|
|
1101
|
+
under: under %{to}
|
|
1102
|
+
series:
|
|
1103
|
+
cancelled: Avbrutt
|
|
1104
|
+
finished: Fullført
|
|
1105
|
+
runs: Kjøringer
|
|
1106
|
+
started: Startet
|
|
1107
|
+
throughput:
|
|
1108
|
+
caption: 'Kjøringer startet, fullført og avbrutt per %{bucket} over %{window}: %{started} startet, %{finished} fullført, %{cancelled} avbrutt.'
|
|
1109
|
+
headers:
|
|
1110
|
+
cancelled: Avbrutt
|
|
1111
|
+
finished: Fullført
|
|
1112
|
+
from: Fra
|
|
1113
|
+
started: Startet
|
|
1114
|
+
title: Kjøringer per %{bucket}
|
|
1115
|
+
description: 'Over %{window}: hvor kjøringene er nå, hvordan hvert steg presterer, og hvor kjøringer stopper.'
|
|
1116
|
+
funnel:
|
|
1117
|
+
caption:
|
|
1118
|
+
one: 'Av den %{count} kjøringen som startet i vinduet: hvor mange som nådde hvert steg, og hvor den er nå.'
|
|
1119
|
+
other: 'Av de %{count} kjøringene som startet i vinduet: hvor mange som nådde hvert steg, og hvor hver av dem er nå.'
|
|
1120
|
+
empty: Ingen kjøring startet i dette vinduet.
|
|
1121
|
+
headers:
|
|
1122
|
+
now_here: Nå ved steget
|
|
1123
|
+
reached: Nådd
|
|
1124
|
+
share: Av startede
|
|
1125
|
+
step: Steg
|
|
1126
|
+
here:
|
|
1127
|
+
cancelled:
|
|
1128
|
+
one: "%{count} avbrutt"
|
|
1129
|
+
other: "%{count} avbrutt"
|
|
1130
|
+
finished:
|
|
1131
|
+
one: "%{count} fullført"
|
|
1132
|
+
other: "%{count} fullført"
|
|
1133
|
+
paused:
|
|
1134
|
+
one: "%{count} pauset"
|
|
1135
|
+
other: "%{count} pauset"
|
|
1136
|
+
performing:
|
|
1137
|
+
one: "%{count} kjører"
|
|
1138
|
+
other: "%{count} kjører"
|
|
1139
|
+
ready:
|
|
1140
|
+
one: "%{count} planlagt"
|
|
1141
|
+
other: "%{count} planlagt"
|
|
1142
|
+
waiting:
|
|
1143
|
+
one: "%{count} venter"
|
|
1144
|
+
other: "%{count} venter"
|
|
1145
|
+
title: Trakt
|
|
1146
|
+
pipeline:
|
|
1147
|
+
attempts:
|
|
1148
|
+
one: "%{count} forsøk"
|
|
1149
|
+
other: "%{count} forsøk"
|
|
1150
|
+
caption: 'Hvert steg i rekkefølge: kjøringene som står ved det nå, og hvordan forsøkene som ble avsluttet i vinduet, gikk.'
|
|
1151
|
+
empty: 'Ingen steg ennå: ingen kjøring av klassen har et steg i vinduet, og ingen pågår.'
|
|
1152
|
+
failed: Feilet
|
|
1153
|
+
kinds:
|
|
1154
|
+
fan_out: Fan-out
|
|
1155
|
+
removed: Fjernet
|
|
1156
|
+
signal: Venter på et signal
|
|
1157
|
+
undeclared: Ikke i definisjonen
|
|
1158
|
+
live:
|
|
1159
|
+
paused: Pauset
|
|
1160
|
+
performing: Kjører
|
|
1161
|
+
ready: Planlagt
|
|
1162
|
+
waiting: Venter
|
|
1163
|
+
now_label: Kjøringer ved steget nå
|
|
1164
|
+
pickup: Henting
|
|
1165
|
+
reattempted: Forsøkt på nytt
|
|
1166
|
+
run_time: Kjøretid
|
|
1167
|
+
skipped: Hoppet over
|
|
1168
|
+
step_link: Pågående kjøringer ved %{step}
|
|
1169
|
+
title: Pipeline
|
|
1170
|
+
window_label: Forsøk som ble avsluttet i vinduet
|
|
1171
|
+
summary:
|
|
1172
|
+
attention: Trenger tiltak
|
|
1173
|
+
cancelled: Avbrutt
|
|
1174
|
+
duration: Varighet p50
|
|
1175
|
+
finished: Fullført
|
|
1176
|
+
ongoing: Pågående
|
|
1177
|
+
started: Startet
|
|
1178
|
+
window_label: Tidsvindu
|
|
1179
|
+
windows:
|
|
1180
|
+
1h: den siste timen
|
|
1181
|
+
24h: de siste 24 timene
|
|
1182
|
+
30d: de siste 30 dagene
|
|
1183
|
+
7d: de siste 7 dagene
|
|
1184
|
+
workflows:
|
|
1185
|
+
actions:
|
|
1186
|
+
bulk_cancel: Avbryt alle
|
|
1187
|
+
bulk_resume: Gjenoppta alle
|
|
1188
|
+
cancel: Avbryt
|
|
1189
|
+
rerun: Kjør på nytt
|
|
1190
|
+
resume: Gjenoppta
|
|
1191
|
+
resume_at: Gjenoppta ved trinn
|
|
1192
|
+
run_now: Kjør nå
|
|
1193
|
+
signal: Send signal
|
|
1194
|
+
skip_step: Hopp over trinn
|
|
1195
|
+
attempt: forsøk %{attempt}
|
|
1196
|
+
attention:
|
|
1197
|
+
at_step_html: ved %{step}
|
|
1198
|
+
back: "← Arbeidsflyter"
|
|
1199
|
+
cancel_all:
|
|
1200
|
+
one: Avbryt alle %{count}
|
|
1201
|
+
other: Avbryt alle %{count}
|
|
1202
|
+
confirm:
|
|
1203
|
+
cancel:
|
|
1204
|
+
one: Avbryte kjøringen som sitter fast ved %{step}?
|
|
1205
|
+
other: Avbryte alle %{count} kjøringer som sitter fast ved %{step}?
|
|
1206
|
+
cancel_error:
|
|
1207
|
+
one: Avbryte kjøringen som sitter fast ved %{step} på grunn av %{error}?
|
|
1208
|
+
other: Avbryte alle %{count} kjøringer som sitter fast ved %{step} på grunn av %{error}?
|
|
1209
|
+
resume:
|
|
1210
|
+
one: Gjenoppta kjøringen som er på pause ved %{step}?
|
|
1211
|
+
other: Gjenoppta alle %{count} kjøringer som er på pause ved %{step}?
|
|
1212
|
+
resume_error:
|
|
1213
|
+
one: Gjenoppta kjøringen som er på pause ved %{step} på grunn av %{error}?
|
|
1214
|
+
other: Gjenoppta alle %{count} kjøringer som er på pause ved %{step} på grunn av %{error}?
|
|
1215
|
+
description: Pågående kjøringer som venter på et menneske, gruppert etter hva som stoppet dem. Når årsaken er rettet, handle på hele gruppen.
|
|
1216
|
+
empty_hint: Ingen pågående kjøring er på pause, har stoppet, er forsinket eller har ventet lenger enn workflow_waiting_visibility_threshold.
|
|
1217
|
+
empty_title: Ingenting trenger oppmerksomhet.
|
|
1218
|
+
first_seen_html: første gang %{time}
|
|
1219
|
+
headers:
|
|
1220
|
+
actions: Handlinger
|
|
1221
|
+
reason: Årsak
|
|
1222
|
+
runs: Kjøringer
|
|
1223
|
+
seen: Sett
|
|
1224
|
+
workflow: Arbeidsflyt
|
|
1225
|
+
last_seen_html: sist %{time}
|
|
1226
|
+
only_class_html: Bare %{workflow}.
|
|
1227
|
+
reasons:
|
|
1228
|
+
overdue: 'Forsinket: forfalt, men ikke hentet'
|
|
1229
|
+
paused_error: På pause på grunn av en feil
|
|
1230
|
+
paused_manual: Satt på pause for hånd
|
|
1231
|
+
stalled: 'Har stoppet: workeren svarer ikke lenger'
|
|
1232
|
+
waiting_overdue: Venter for lenge
|
|
1233
|
+
resume_all:
|
|
1234
|
+
one: Gjenoppta alle %{count}
|
|
1235
|
+
other: Gjenoppta alle %{count}
|
|
1236
|
+
show_all: Vis alle klasser
|
|
1237
|
+
show_runs: Vis kjøringer
|
|
1238
|
+
title: Trenger oppmerksomhet
|
|
1239
|
+
audit:
|
|
1240
|
+
by: "%{event} av %{actor}"
|
|
1241
|
+
empty: Ingen hendelser registrert.
|
|
1242
|
+
headers:
|
|
1243
|
+
what: Hva skjedde
|
|
1244
|
+
when: Når
|
|
1245
|
+
title: Revisjonslogg
|
|
1246
|
+
with_reason: "%{sentence}: %{reason}"
|
|
1247
|
+
with_step: "%{sentence} (%{step} #%{attempt})"
|
|
1248
|
+
bad_request: 'Ugyldig forespørsel: %{reason}'
|
|
1249
|
+
confirm:
|
|
1250
|
+
cancel: Avbryte denne arbeidsflyten? De åpne trinnene avbrytes, og den kjører ikke igjen.
|
|
1251
|
+
rerun: Starte denne arbeidsflyten på nytt som en ny kjøring, med samme emne og argumenter?
|
|
1252
|
+
resume: Gjenoppta denne arbeidsflyten?
|
|
1253
|
+
resume_at: Gjenoppta denne arbeidsflyten ved det valgte trinnet? De åpne trinnene avbrytes først.
|
|
1254
|
+
run_now: Kjøre det planlagte trinnet nå i stedet for å vente?
|
|
1255
|
+
signal: Sende dette signalet til arbeidsflyten?
|
|
1256
|
+
skip_step: Hoppe over trinnet denne arbeidsflyten venter på og gå til neste?
|
|
1257
|
+
events:
|
|
1258
|
+
cancelled: Avbrutt
|
|
1259
|
+
fan_out_finished: Fan-out fullført
|
|
1260
|
+
fan_out_opened: Fan-out åpnet
|
|
1261
|
+
finished: Fullført
|
|
1262
|
+
late_completion_ignored: Sen fullføring ignorert
|
|
1263
|
+
paused: På pause
|
|
1264
|
+
rerun: Kjørt på nytt
|
|
1265
|
+
rescheduled: Omplanlagt
|
|
1266
|
+
resumed: Gjenopptatt
|
|
1267
|
+
run_now: Kjør nå
|
|
1268
|
+
signal_claimed: Signal tatt
|
|
1269
|
+
signal_received: Signal mottatt
|
|
1270
|
+
stall_detected: Stopp oppdaget
|
|
1271
|
+
started: Startet
|
|
1272
|
+
step_completed: Trinn fullført
|
|
1273
|
+
step_failed: Trinn mislyktes
|
|
1274
|
+
step_reattempted: Trinn forsøkt på nytt
|
|
1275
|
+
step_scheduled: Trinn planlagt
|
|
1276
|
+
step_skipped: Trinn hoppet over
|
|
1277
|
+
step_started: Trinn startet
|
|
1278
|
+
step_waiting: Trinn venter
|
|
1279
|
+
wait_timed_out: Ventetid utløpt
|
|
1280
|
+
filters:
|
|
1281
|
+
apply: Bruk filtre
|
|
1282
|
+
clear: Fjern
|
|
1283
|
+
created_from: Opprettet fra
|
|
1284
|
+
created_to: Opprettet til
|
|
1285
|
+
ended_from: Avsluttet fra
|
|
1286
|
+
ended_to: Avsluttet til
|
|
1287
|
+
error_class: Feilklasse
|
|
1288
|
+
step: Gjeldende trinn
|
|
1289
|
+
subject_id: Emne-ID
|
|
1290
|
+
subject_type: Emnetype
|
|
1291
|
+
workflow_class: Arbeidsflytklasse
|
|
1292
|
+
workflow_id: Arbeidsflyt-ID
|
|
1293
|
+
flash:
|
|
1294
|
+
bad_group: Den gruppen er ikke gyldig.
|
|
1295
|
+
bulk_cancel:
|
|
1296
|
+
one: Avbrøt %{count}.
|
|
1297
|
+
other: Avbrøt %{count}.
|
|
1298
|
+
bulk_cancel_skipped: Avbrøt %{count}; %{skipped} hadde allerede gått videre.
|
|
1299
|
+
bulk_failed: "%{count} kunne ikke endres: %{reason}"
|
|
1300
|
+
bulk_more: 'Flere kjøringer kan vente: trykk igjen for de neste %{cap}.'
|
|
1301
|
+
bulk_resume:
|
|
1302
|
+
one: Gjenopptok %{count}.
|
|
1303
|
+
other: Gjenopptok %{count}.
|
|
1304
|
+
bulk_resume_skipped: Gjenopptok %{count}; %{skipped} hadde allerede gått videre.
|
|
1305
|
+
cancel: Arbeidsflyten ble avbrutt.
|
|
1306
|
+
choose_step: Velg et trinn å gjenoppta ved.
|
|
1307
|
+
failed:
|
|
1308
|
+
not_allowed: 'Ikke utført: kjøringen er nå %{status}.'
|
|
1309
|
+
not_found: Den arbeidsflyten finnes ikke lenger.
|
|
1310
|
+
other: "%{action} mislyktes: %{reason}"
|
|
1311
|
+
payload_not_object: 'Ikke sendt: payload er ikke et JSON-objekt.'
|
|
1312
|
+
payload_too_large: 'Ikke sendt: payload er over %{limit} byte.'
|
|
1313
|
+
rerun: En ny kjøring ble startet.
|
|
1314
|
+
resume: Arbeidsflyten ble gjenopptatt.
|
|
1315
|
+
resume_at: Arbeidsflyten ble gjenopptatt ved %{step}.
|
|
1316
|
+
run_now: Det planlagte trinnet kjører nå.
|
|
1317
|
+
signal: Signalet %{name} ble sendt.
|
|
1318
|
+
signal_duplicate: Signalet %{name} er allerede levert med denne nøkkelen; ingenting nytt ble sendt.
|
|
1319
|
+
signal_name_missing: 'Ikke sendt: signalet trenger et navn.'
|
|
1320
|
+
skip_step: Trinnet ble hoppet over.
|
|
1321
|
+
headers:
|
|
1322
|
+
current_step: Gjeldende trinn
|
|
1323
|
+
last_activity: Siste aktivitet
|
|
1324
|
+
started: Startet
|
|
1325
|
+
status: Status
|
|
1326
|
+
subject: Emne
|
|
1327
|
+
workflow: Arbeidsflyt
|
|
1328
|
+
index:
|
|
1329
|
+
attention_link:
|
|
1330
|
+
one: Trenger oppmerksomhet (%{count})
|
|
1331
|
+
other: Trenger oppmerksomhet (%{count})
|
|
1332
|
+
description: 'Varige kjøringer i flere trinn: hva hver enkelt gjør og hva som skjer videre.'
|
|
1333
|
+
empty_hint: Velg en annen status eller fjern filtrene. En kjøring starter med YourWorkflow.start!(subject, **arguments).
|
|
1334
|
+
empty_title: Ingen arbeidsflyter samsvarer.
|
|
1335
|
+
insights_link: Innsikt per klasse
|
|
1336
|
+
status_label: Filtrer på status
|
|
1337
|
+
title: Arbeidsflyter
|
|
1338
|
+
next:
|
|
1339
|
+
cancelled_html: Avbrutt %{ago}.
|
|
1340
|
+
due_html: 'Klar: %{step} skulle kjørt %{ago} og venter på en worker.'
|
|
1341
|
+
finished_html: Fullført %{ago}.
|
|
1342
|
+
overdue_html: 'Forsinket: %{step} skulle kjørt %{ago}; opprydningen sender det på nytt.'
|
|
1343
|
+
paused_error_html: 'På pause ved %{step}: %{error} — gjenoppta eller avbryt.'
|
|
1344
|
+
paused_manual_html: På pause ved %{step} — gjenoppta eller avbryt.
|
|
1345
|
+
performing_attempt_html: Kjører %{step} (forsøk %{attempt}).
|
|
1346
|
+
performing_html: Kjører %{step}.
|
|
1347
|
+
ready_html: 'Klar: %{step} kjører neste gang.'
|
|
1348
|
+
scheduled_html: 'Planlagt: %{step} kjører %{time}.'
|
|
1349
|
+
unknown_html: 'Status: %{status}.'
|
|
1350
|
+
waiting_batch_html: Venter på gruppen %{batch} (%{done} av %{total} jobber ferdige).
|
|
1351
|
+
waiting_signal_html: Venter på signalet %{signal} siden %{ago}.
|
|
1352
|
+
waiting_signal_timeout_html: Venter på signalet %{signal} siden %{ago}. Ventetiden utløper %{time}.
|
|
1353
|
+
waiting_step_html: Venter på %{step}.
|
|
1354
|
+
not_found:
|
|
1355
|
+
hint: Den kan ha blitt fullført og fjernet etter workflow_retention, eller databasen kunne ikke leses (se loggen).
|
|
1356
|
+
title: Arbeidsflyten ble ikke funnet
|
|
1357
|
+
outcomes:
|
|
1358
|
+
cancelled: avbrutt
|
|
1359
|
+
completed: fullført
|
|
1360
|
+
finished_early: avsluttet kjøringen tidlig
|
|
1361
|
+
paused: satte kjøringen på pause
|
|
1362
|
+
reattempted: forsøkt på nytt
|
|
1363
|
+
skipped: hoppet over
|
|
1364
|
+
resume:
|
|
1365
|
+
carry_on: 'Gjenoppta: fortsett med %{step}'
|
|
1366
|
+
continue: 'Gjenoppta: fortsett med %{step}'
|
|
1367
|
+
finish: 'Gjenoppta: avslutt kjøringen'
|
|
1368
|
+
resend: 'Gjenoppta: send %{step} på nytt'
|
|
1369
|
+
retry: 'Gjenoppta: prøv %{step} på nytt'
|
|
1370
|
+
rewait: 'Gjenoppta: vent på %{step} igjen'
|
|
1371
|
+
show:
|
|
1372
|
+
actions: Handlinger
|
|
1373
|
+
arguments: Argumenter
|
|
1374
|
+
back: "← Arbeidsflyter"
|
|
1375
|
+
cancelled_at: Avbrutt
|
|
1376
|
+
class_missing: "%{workflow_class} er ikke lastet i denne prosessen: kjøringen kan fortsatt avbrytes, men ikke gjenopptas."
|
|
1377
|
+
definition_outdated: 'Denne kjøringen startet på en eldre definisjon av %{workflow_class}: trinnene har endret seg siden start.'
|
|
1378
|
+
details: Detaljer
|
|
1379
|
+
finished_at: Fullført
|
|
1380
|
+
no_arguments: Denne kjøringen har ingen argumenter.
|
|
1381
|
+
paused_at: På pause
|
|
1382
|
+
reason_hint: Lagres i revisjonsloggen, ved siden av hvem som gjorde det.
|
|
1383
|
+
reason_label: Årsak (valgfri)
|
|
1384
|
+
rerun_of: Omkjøring av
|
|
1385
|
+
reruns: Kjørt på nytt som
|
|
1386
|
+
resume_at_label: Trinn å gjenoppta ved
|
|
1387
|
+
signal:
|
|
1388
|
+
hint: Et trinn som venter på det våkner med en gang; ellers blir det liggende ventende til et trinn tar det.
|
|
1389
|
+
name: Signalnavn
|
|
1390
|
+
payload: Payload (JSON)
|
|
1391
|
+
send: Send signal
|
|
1392
|
+
title: Send et signal
|
|
1393
|
+
signal_statuses:
|
|
1394
|
+
claimed: Tatt
|
|
1395
|
+
consumed: Brukt
|
|
1396
|
+
pending: Venter
|
|
1397
|
+
signals:
|
|
1398
|
+
empty: Ingen signaler er levert til denne kjøringen.
|
|
1399
|
+
headers:
|
|
1400
|
+
claimed: Tatt
|
|
1401
|
+
consumed: Brukt
|
|
1402
|
+
idempotency_key: Idempotensnøkkel
|
|
1403
|
+
name: Signal
|
|
1404
|
+
received: Mottatt
|
|
1405
|
+
status: Status
|
|
1406
|
+
payload: Payload
|
|
1407
|
+
title: Signaler
|
|
1408
|
+
statuses:
|
|
1409
|
+
cancelled: Avbrutt
|
|
1410
|
+
finished: Fullført
|
|
1411
|
+
gone: borte
|
|
1412
|
+
paused: På pause
|
|
1413
|
+
performing: Kjører
|
|
1414
|
+
ready: Klar
|
|
1415
|
+
scheduled: Planlagt
|
|
1416
|
+
waiting: Venter
|
|
1417
|
+
step_statuses:
|
|
1418
|
+
cancelled: Avbrutt
|
|
1419
|
+
completed: Fullført
|
|
1420
|
+
failed: Mislyktes
|
|
1421
|
+
in_progress: Kjører
|
|
1422
|
+
scheduled: Planlagt
|
|
1423
|
+
skipped: Hoppet over
|
|
1424
|
+
waiting: Venter
|
|
1425
|
+
steps:
|
|
1426
|
+
batch: gruppe %{batch}
|
|
1427
|
+
caused_by: Forårsaket av %{error}
|
|
1428
|
+
empty: Ingen forsøk ennå.
|
|
1429
|
+
headers:
|
|
1430
|
+
finished: Fullført
|
|
1431
|
+
queued: I kø
|
|
1432
|
+
ran: Kjørte
|
|
1433
|
+
scheduled: Planlagt
|
|
1434
|
+
started: Startet
|
|
1435
|
+
status: Status
|
|
1436
|
+
step: Trinn
|
|
1437
|
+
waited: Ventet
|
|
1438
|
+
worker: Worker
|
|
1439
|
+
revision: revisjon %{revision}
|
|
1440
|
+
show_backtrace: Vis backtrace
|
|
1441
|
+
title: Forsøk
|
|
1442
|
+
waiting_for: venter deretter %{duration}
|
|
1443
|
+
waits_for_html: venter på %{signal}
|
|
1444
|
+
tabs:
|
|
1445
|
+
all: Alle
|
|
1446
|
+
cancelled: Avbrutt
|
|
1447
|
+
finished: Fullført
|
|
1448
|
+
ongoing: Pågående
|
|
1449
|
+
paused: På pause
|
|
1450
|
+
performing: Kjører
|
|
1451
|
+
ready: Klare
|
|
1452
|
+
waiting: Venter
|
|
1453
|
+
timeline:
|
|
1454
|
+
caption: 'Hvert forsøk, eldst øverst: ventet (ventetiden), i kø (forfalt, ikke hentet ennå), kjørte (farget etter utfall) og venter (på et signal eller sin gruppe), med pausene på en egen rad. Forsøkstabellen under viser de samme varighetene.'
|
|
1455
|
+
empty: Ingen forsøk ennå.
|
|
1456
|
+
paused_period_html: Satt på pause %{from} i %{duration}
|
|
1457
|
+
paused_row: På pause
|
|
1458
|
+
series:
|
|
1459
|
+
paused: På pause
|
|
1460
|
+
queued: I kø
|
|
1461
|
+
ran_cancelled: Kjørte, avbrutt
|
|
1462
|
+
ran_failed: Kjørte, mislyktes
|
|
1463
|
+
ran_ok: Kjørte
|
|
1464
|
+
ran_open: Kjører
|
|
1465
|
+
waited: Ventet
|
|
1466
|
+
waiting: Venter
|
|
1467
|
+
title: Tidslinje
|