pgbus 0.8.4 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fb58fdb0a36d1e0b4f4834cca266aa8771a2fa8c9419bb5aaa7e2a2e83c4725
4
- data.tar.gz: 4b9fe002b753689046de0833c8d1112da0cf03c43a6bf2a050df989a76653bb3
3
+ metadata.gz: 93b9de67b282c7c707b2dcd4222ddde62d758447cc4769f72046dcf5b017dd92
4
+ data.tar.gz: 1a30a5e46ec20f02fa1cca3d56435c4e2c7f426a3933c523351503f0b69bff64
5
5
  SHA512:
6
- metadata.gz: 397c99fe5da35f6e75720c27c9b1e002ce744720cadba773166674a8bf86eb88ca2151c63bfa0c042eff7ff9f2f5d7026c9d344e655f63f9a93f268f47f1225a
7
- data.tar.gz: 33f98b8663e708d44ae5936a37fbeb3ca7966b80f358f9713d86b71ac95390a4eca0ab88c5faf2c008a203d8a88a43cdc0f73809bf2b95baadacfdc36e0a11a3
6
+ metadata.gz: 8912988721d6dfcf064693b9a84a6d1925a3535535b4b584abbdb2d311f80a5c1d7f6503c72da2825cbdfaf8daedb9c9e04b53353d3cc81279945b616a47a204
7
+ data.tar.gz: '0668b1229a24e47bcdc7fbb3d5f5fcfe95417329be2cdf14eb039cd9e258c22cefcaa4dbb3f2d17a84d5f0aa2c8a6def94971f9a51913ae028f395ac7758168c'
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pgbus
4
+ class BatchesController < ApplicationController
5
+ def index
6
+ @batches = data_source.batches
7
+ render_frame("pgbus/batches/batches_table") if params[:frame] == "list"
8
+ end
9
+
10
+ def show
11
+ @batch = data_source.batch_detail(params[:id])
12
+ redirect_to batches_path, alert: t("pgbus.batches.show.not_found") unless @batch
13
+ end
14
+ end
15
+ end
@@ -84,6 +84,18 @@ module Pgbus
84
84
  class: "inline-flex items-center rounded-full bg-yellow-100 px-2 py-0.5 text-xs font-medium text-yellow-800")
85
85
  end
86
86
 
87
+ BATCH_BADGE_BASE = "inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium"
88
+ BATCH_BADGE_CSS = {
89
+ "finished" => "#{BATCH_BADGE_BASE} bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400",
90
+ "processing" => "#{BATCH_BADGE_BASE} bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400",
91
+ "pending" => "#{BATCH_BADGE_BASE} bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400"
92
+ }.freeze
93
+
94
+ def pgbus_batch_status_badge(status)
95
+ css = BATCH_BADGE_CSS[status] || BATCH_BADGE_CSS["pending"]
96
+ tag.span(I18n.t("pgbus.helpers.batch_status.#{status}", default: status), class: css)
97
+ end
98
+
87
99
  def pgbus_parse_message(message)
88
100
  return {} unless message
89
101
 
@@ -129,6 +129,7 @@
129
129
  <%= pgbus_nav_link t("pgbus.layout.nav.recurring"), pgbus.recurring_tasks_path %>
130
130
  <%= pgbus_nav_link t("pgbus.layout.nav.processes"), pgbus.processes_path %>
131
131
  <%= pgbus_nav_link t("pgbus.layout.nav.events"), pgbus.events_path %>
132
+ <%= pgbus_nav_link t("pgbus.layout.nav.batches"), pgbus.batches_path %>
132
133
  <%= pgbus_nav_link t("pgbus.layout.nav.dlq"), pgbus.dead_letter_index_path %>
133
134
  <%= pgbus_nav_link t("pgbus.layout.nav.outbox"), pgbus.outbox_index_path %>
134
135
  <%= pgbus_nav_link t("pgbus.layout.nav.locks"), pgbus.locks_path %>
@@ -188,6 +189,7 @@
188
189
  <%= pgbus_mobile_nav_link t("pgbus.layout.nav.recurring"), pgbus.recurring_tasks_path %>
189
190
  <%= pgbus_mobile_nav_link t("pgbus.layout.nav.processes"), pgbus.processes_path %>
190
191
  <%= pgbus_mobile_nav_link t("pgbus.layout.nav.events"), pgbus.events_path %>
192
+ <%= pgbus_mobile_nav_link t("pgbus.layout.nav.batches"), pgbus.batches_path %>
191
193
  <%= pgbus_mobile_nav_link t("pgbus.layout.nav.dlq"), pgbus.dead_letter_index_path %>
192
194
  <%= pgbus_mobile_nav_link t("pgbus.layout.nav.outbox"), pgbus.outbox_index_path %>
193
195
  <%= pgbus_mobile_nav_link t("pgbus.layout.nav.locks"), pgbus.locks_path %>
@@ -0,0 +1,53 @@
1
+ <turbo-frame id="batches-list">
2
+ <div class="overflow-hidden rounded-lg bg-white dark:bg-gray-800 shadow ring-1 ring-gray-200 dark:ring-gray-700">
3
+ <table class="pgbus-table min-w-full divide-y divide-gray-200 dark:divide-gray-700">
4
+ <thead class="bg-gray-50 dark:bg-gray-900">
5
+ <tr>
6
+ <th class="px-4 py-3 text-left text-xs font-medium uppercase text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.headers.batch_id") %></th>
7
+ <th class="px-4 py-3 text-left text-xs font-medium uppercase text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.headers.description") %></th>
8
+ <th class="px-4 py-3 text-left text-xs font-medium uppercase text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.headers.status") %></th>
9
+ <th class="px-4 py-3 text-left text-xs font-medium uppercase text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.headers.progress") %></th>
10
+ <th class="px-4 py-3 text-right text-xs font-medium uppercase text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.headers.jobs") %></th>
11
+ <th class="px-4 py-3 text-right text-xs font-medium uppercase text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.headers.created") %></th>
12
+ </tr>
13
+ </thead>
14
+ <tbody class="divide-y divide-gray-100 dark:divide-gray-700">
15
+ <% @batches.each do |batch| %>
16
+ <tr class="hover:bg-gray-50 dark:hover:bg-gray-700/50">
17
+ <td data-label="Batch ID" class="px-4 py-3 text-sm">
18
+ <%= link_to batch[:batch_id][0..7], pgbus.batch_path(batch[:batch_id]),
19
+ class: "font-mono text-indigo-600 dark:text-indigo-400 hover:underline" %>
20
+ </td>
21
+ <td data-label="Description" class="px-4 py-3 text-sm text-gray-700 dark:text-gray-300 max-w-xs truncate">
22
+ <%= batch[:description] || "—" %>
23
+ </td>
24
+ <td data-label="Status" class="px-4 py-3 text-sm">
25
+ <%= pgbus_batch_status_badge(batch[:status]) %>
26
+ </td>
27
+ <td data-label="Progress" class="px-4 py-3 text-sm">
28
+ <div class="flex items-center space-x-2">
29
+ <div class="w-24 bg-gray-200 dark:bg-gray-700 rounded-full h-2">
30
+ <div class="h-2 rounded-full <%= batch[:discarded_jobs].to_i > 0 ? 'bg-amber-500' : 'bg-green-500' %>"
31
+ style="width: <%= batch[:progress_pct] %>%"></div>
32
+ </div>
33
+ <span class="text-xs text-gray-500 dark:text-gray-400 font-mono"><%= batch[:progress_pct] %>%</span>
34
+ </div>
35
+ </td>
36
+ <td data-label="Jobs" class="px-4 py-3 text-sm text-right font-mono text-gray-500 dark:text-gray-400">
37
+ <%= batch[:completed_jobs] %>/<%= batch[:total_jobs] %>
38
+ <% if batch[:discarded_jobs].to_i > 0 %>
39
+ <span class="text-red-500">(<%= batch[:discarded_jobs] %> dlq)</span>
40
+ <% end %>
41
+ </td>
42
+ <td data-label="Created" class="px-4 py-3 text-sm text-right text-gray-500 dark:text-gray-400">
43
+ <%= pgbus_time_ago(batch[:created_at]) %>
44
+ </td>
45
+ </tr>
46
+ <% end %>
47
+ <% if @batches.empty? %>
48
+ <tr><td colspan="6" class="px-4 py-8 text-center text-sm text-gray-400 dark:text-gray-500"><%= t("pgbus.batches.index.empty") %></td></tr>
49
+ <% end %>
50
+ </tbody>
51
+ </table>
52
+ </div>
53
+ </turbo-frame>
@@ -0,0 +1,8 @@
1
+ <div class="flex items-center justify-between mb-6">
2
+ <div>
3
+ <h1 class="text-2xl font-bold text-gray-900 dark:text-white"><%= t("pgbus.batches.index.title") %></h1>
4
+ <p class="mt-1 text-sm text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.index.description") %></p>
5
+ </div>
6
+ </div>
7
+
8
+ <%= render "pgbus/batches/batches_table" %>
@@ -0,0 +1,90 @@
1
+ <div class="mb-6">
2
+ <div class="flex items-center space-x-2 mb-2">
3
+ <%= link_to t("pgbus.batches.show.back"), pgbus.batches_path,
4
+ class: "text-sm text-indigo-600 dark:text-indigo-400 hover:underline" %>
5
+ </div>
6
+ <h1 class="text-2xl font-bold text-gray-900 dark:text-white">
7
+ <%= t("pgbus.batches.show.title") %>
8
+ <span class="font-mono text-lg"><%= @batch[:batch_id][0..7] %></span>
9
+ <%= pgbus_batch_status_badge(@batch[:status]) %>
10
+ </h1>
11
+ <% if @batch[:description] %>
12
+ <p class="mt-1 text-sm text-gray-500 dark:text-gray-400"><%= @batch[:description] %></p>
13
+ <% end %>
14
+ </div>
15
+
16
+ <!-- Progress -->
17
+ <div class="mb-6 overflow-hidden rounded-lg bg-white dark:bg-gray-800 shadow ring-1 ring-gray-200 dark:ring-gray-700 p-6">
18
+ <h2 class="text-sm font-semibold text-gray-900 dark:text-white mb-4"><%= t("pgbus.batches.show.progress") %></h2>
19
+
20
+ <div class="w-full bg-gray-200 dark:bg-gray-700 rounded-full h-4 mb-3">
21
+ <div class="h-4 rounded-full transition-all duration-300 <%= @batch[:discarded_jobs].to_i > 0 ? 'bg-amber-500' : 'bg-green-500' %>"
22
+ style="width: <%= @batch[:progress_pct] %>%"></div>
23
+ </div>
24
+
25
+ <div class="grid grid-cols-2 sm:grid-cols-4 gap-4">
26
+ <div>
27
+ <dt class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase"><%= t("pgbus.batches.show.total_jobs") %></dt>
28
+ <dd class="mt-1 text-2xl font-semibold text-gray-900 dark:text-white font-mono"><%= @batch[:total_jobs] %></dd>
29
+ </div>
30
+ <div>
31
+ <dt class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase"><%= t("pgbus.batches.show.completed") %></dt>
32
+ <dd class="mt-1 text-2xl font-semibold text-green-600 dark:text-green-400 font-mono"><%= @batch[:completed_jobs] %></dd>
33
+ </div>
34
+ <div>
35
+ <dt class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase"><%= t("pgbus.batches.show.discarded") %></dt>
36
+ <dd class="mt-1 text-2xl font-semibold <%= @batch[:discarded_jobs].to_i > 0 ? 'text-red-600 dark:text-red-400' : 'text-gray-900 dark:text-white' %> font-mono"><%= @batch[:discarded_jobs] %></dd>
37
+ </div>
38
+ <div>
39
+ <dt class="text-xs font-medium text-gray-500 dark:text-gray-400 uppercase"><%= t("pgbus.batches.show.remaining") %></dt>
40
+ <dd class="mt-1 text-2xl font-semibold text-gray-900 dark:text-white font-mono"><%= @batch[:total_jobs] - @batch[:completed_jobs] - @batch[:discarded_jobs] %></dd>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- Details -->
46
+ <div class="overflow-hidden rounded-lg bg-white dark:bg-gray-800 shadow ring-1 ring-gray-200 dark:ring-gray-700">
47
+ <div class="px-4 py-3 border-b border-gray-200 dark:border-gray-700">
48
+ <h2 class="text-sm font-semibold text-gray-900 dark:text-white"><%= t("pgbus.batches.show.details") %></h2>
49
+ </div>
50
+ <dl class="divide-y divide-gray-100 dark:divide-gray-700">
51
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
52
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.batch_id") %></dt>
53
+ <dd class="mt-1 text-sm font-mono text-gray-900 dark:text-white sm:col-span-2 sm:mt-0"><%= @batch[:batch_id] %></dd>
54
+ </div>
55
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
56
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.created_at") %></dt>
57
+ <dd class="mt-1 text-sm text-gray-900 dark:text-white sm:col-span-2 sm:mt-0"><%= @batch[:created_at] %></dd>
58
+ </div>
59
+ <% if @batch[:finished_at] %>
60
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
61
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.finished_at") %></dt>
62
+ <dd class="mt-1 text-sm text-gray-900 dark:text-white sm:col-span-2 sm:mt-0"><%= @batch[:finished_at] %></dd>
63
+ </div>
64
+ <% end %>
65
+ <% if @batch[:on_finish_class] %>
66
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
67
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.on_finish") %></dt>
68
+ <dd class="mt-1 text-sm font-mono text-gray-900 dark:text-white sm:col-span-2 sm:mt-0"><%= @batch[:on_finish_class] %></dd>
69
+ </div>
70
+ <% end %>
71
+ <% if @batch[:on_success_class] %>
72
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
73
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.on_success") %></dt>
74
+ <dd class="mt-1 text-sm font-mono text-gray-900 dark:text-white sm:col-span-2 sm:mt-0"><%= @batch[:on_success_class] %></dd>
75
+ </div>
76
+ <% end %>
77
+ <% if @batch[:on_discard_class] %>
78
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
79
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.on_discard") %></dt>
80
+ <dd class="mt-1 text-sm font-mono text-gray-900 dark:text-white sm:col-span-2 sm:mt-0"><%= @batch[:on_discard_class] %></dd>
81
+ </div>
82
+ <% end %>
83
+ <% if @batch[:properties].present? %>
84
+ <div class="px-4 py-3 sm:grid sm:grid-cols-3 sm:gap-4">
85
+ <dt class="text-sm font-medium text-gray-500 dark:text-gray-400"><%= t("pgbus.batches.show.properties") %></dt>
86
+ <dd class="mt-1 text-sm font-mono text-gray-900 dark:text-white sm:col-span-2 sm:mt-0 break-all"><%= @batch[:properties] %></dd>
87
+ </div>
88
+ <% end %>
89
+ </dl>
90
+ </div>
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  da:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Jobbatches med fremdriftssporing og callbacks
7
+ empty: Ingen batches fundet
8
+ headers:
9
+ batch_id: Batch-ID
10
+ created: Oprettet
11
+ description: Beskrivelse
12
+ jobs: Jobs
13
+ progress: Fremgang
14
+ status: Status
15
+ title: Batches
16
+ show:
17
+ back: Tilbage til batches
18
+ batch_id: Batch-ID
19
+ completed: Fuldført
20
+ created_at: Oprettet den
21
+ details: Detaljer
22
+ discarded: Kasseret
23
+ finished_at: Afsluttet den
24
+ not_found: Batch ikke fundet
25
+ on_discard: Ved kassering
26
+ on_finish: Ved afslutning
27
+ on_success: Ved succes
28
+ progress: Fremgang
29
+ properties: Egenskaber
30
+ remaining: Resterende
31
+ title: Batch
32
+ total_jobs: Samlet antal jobs
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: Ingen processer kører
@@ -189,6 +218,10 @@ da:
189
218
  not_found: Begivenhed ikke fundet
190
219
  title: Begivenhed %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Afsluttet
223
+ pending: Afventer
224
+ processing: Behandler
192
225
  bulk_select_all: Vælg alle
193
226
  bulk_select_row: Vælg %{id}
194
227
  bulk_selected: valgt
@@ -346,6 +379,7 @@ da:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Batches
349
383
  dashboard: Dashboard
350
384
  dlq: DLQ
351
385
  events: Begivenheder
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  de:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Job-Stapel mit Fortschrittsverfolgung und Callbacks
7
+ empty: Keine Stapel gefunden
8
+ headers:
9
+ batch_id: Stapel-ID
10
+ created: Erstellt
11
+ description: Beschreibung
12
+ jobs: Jobs
13
+ progress: Fortschritt
14
+ status: Status
15
+ title: Stapel
16
+ show:
17
+ back: Zurück zu Stapeln
18
+ batch_id: Stapel-ID
19
+ completed: Abgeschlossen
20
+ created_at: Erstellt am
21
+ details: Details
22
+ discarded: Verworfen
23
+ finished_at: Beendet am
24
+ not_found: Stapel nicht gefunden
25
+ on_discard: Bei Verwerfung
26
+ on_finish: Bei Beendigung
27
+ on_success: Bei Erfolg
28
+ progress: Fortschritt
29
+ properties: Eigenschaften
30
+ remaining: Verbleibend
31
+ title: Stapel
32
+ total_jobs: Gesamtanzahl Jobs
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: Keine Prozesse laufen
@@ -189,6 +218,10 @@ de:
189
218
  not_found: Ereignis nicht gefunden
190
219
  title: Ereignis %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Abgeschlossen
223
+ pending: Ausstehend
224
+ processing: In Bearbeitung
192
225
  bulk_select_all: Alle auswählen
193
226
  bulk_select_row: "%{id} auswählen"
194
227
  bulk_selected: ausgewählt
@@ -346,6 +379,7 @@ de:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Stapel
349
383
  dashboard: Dashboard
350
384
  dlq: DLQ
351
385
  events: Ereignisse
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  en:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Job batches with progress tracking and callbacks
7
+ empty: No batches found
8
+ headers:
9
+ batch_id: Batch ID
10
+ created: Created
11
+ description: Description
12
+ jobs: Jobs
13
+ progress: Progress
14
+ status: Status
15
+ title: Batches
16
+ show:
17
+ back: Back to batches
18
+ batch_id: Batch ID
19
+ completed: Completed
20
+ created_at: Created At
21
+ details: Details
22
+ discarded: Discarded
23
+ finished_at: Finished At
24
+ not_found: Batch not found
25
+ on_discard: On Discard
26
+ on_finish: On Finish
27
+ on_success: On Success
28
+ progress: Progress
29
+ properties: Properties
30
+ remaining: Remaining
31
+ title: Batch
32
+ total_jobs: Total Jobs
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: No processes running
@@ -189,6 +218,10 @@ en:
189
218
  not_found: Event not found
190
219
  title: Event %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Finished
223
+ pending: Pending
224
+ processing: Processing
192
225
  bulk_select_all: Select all
193
226
  bulk_select_row: Select %{id}
194
227
  bulk_selected: selected
@@ -346,6 +379,7 @@ en:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Batches
349
383
  dashboard: Dashboard
350
384
  dlq: DLQ
351
385
  events: Events
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  es:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Lotes de trabajos con seguimiento de progreso y callbacks
7
+ empty: No se encontraron lotes
8
+ headers:
9
+ batch_id: ID de lote
10
+ created: Creado
11
+ description: Descripción
12
+ jobs: Trabajos
13
+ progress: Progreso
14
+ status: Estado
15
+ title: Lotes
16
+ show:
17
+ back: Volver a lotes
18
+ batch_id: ID de lote
19
+ completed: Completados
20
+ created_at: Creado el
21
+ details: Detalles
22
+ discarded: Descartados
23
+ finished_at: Finalizado el
24
+ not_found: Lote no encontrado
25
+ on_discard: Al descartar
26
+ on_finish: Al finalizar
27
+ on_success: Al tener éxito
28
+ progress: Progreso
29
+ properties: Propiedades
30
+ remaining: Restantes
31
+ title: Lote
32
+ total_jobs: Total de trabajos
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: No hay procesos en ejecución
@@ -189,6 +218,10 @@ es:
189
218
  not_found: Evento no encontrado
190
219
  title: Evento %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Finalizado
223
+ pending: Pendiente
224
+ processing: Procesando
192
225
  bulk_select_all: Seleccionar todo
193
226
  bulk_select_row: Seleccionar %{id}
194
227
  bulk_selected: seleccionado
@@ -346,6 +379,7 @@ es:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Lotes
349
383
  dashboard: Panel de control
350
384
  dlq: DLQ
351
385
  events: Eventos
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  fi:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Tehtäväerät edistymisen seurannalla ja callback-kutsuilla
7
+ empty: Eriä ei löytynyt
8
+ headers:
9
+ batch_id: Erä-ID
10
+ created: Luotu
11
+ description: Kuvaus
12
+ jobs: Tehtävät
13
+ progress: Edistyminen
14
+ status: Tila
15
+ title: Erät
16
+ show:
17
+ back: Takaisin eriin
18
+ batch_id: Erä-ID
19
+ completed: Valmiit
20
+ created_at: Luotu
21
+ details: Tiedot
22
+ discarded: Hylätyt
23
+ finished_at: Valmistunut
24
+ not_found: Erää ei löytynyt
25
+ on_discard: Hylkäyksessä
26
+ on_finish: Valmistumisessa
27
+ on_success: Onnistumisessa
28
+ progress: Edistyminen
29
+ properties: Ominaisuudet
30
+ remaining: Jäljellä
31
+ title: Erä
32
+ total_jobs: Tehtäviä yhteensä
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: Ei käynnissä olevia prosesseja
@@ -189,6 +218,10 @@ fi:
189
218
  not_found: Tapahtumaa ei löytynyt
190
219
  title: Tapahtuma %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Valmis
223
+ pending: Odottaa
224
+ processing: Käsittelyssä
192
225
  bulk_select_all: Valitse kaikki
193
226
  bulk_select_row: Valitse %{id}
194
227
  bulk_selected: valittu
@@ -346,6 +379,7 @@ fi:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Erät
349
383
  dashboard: Hallintapaneeli
350
384
  dlq: DLQ
351
385
  events: Tapahtumat
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  fr:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Lots de tâches avec suivi de progression et callbacks
7
+ empty: Aucun lot trouvé
8
+ headers:
9
+ batch_id: ID du lot
10
+ created: Créé
11
+ description: Description
12
+ jobs: Tâches
13
+ progress: Progression
14
+ status: Statut
15
+ title: Lots
16
+ show:
17
+ back: Retour aux lots
18
+ batch_id: ID du lot
19
+ completed: Terminées
20
+ created_at: Créé le
21
+ details: Détails
22
+ discarded: Rejetées
23
+ finished_at: Terminé le
24
+ not_found: Lot non trouvé
25
+ on_discard: Au rejet
26
+ on_finish: À la fin
27
+ on_success: Au succès
28
+ progress: Progression
29
+ properties: Propriétés
30
+ remaining: Restantes
31
+ title: Lot
32
+ total_jobs: Total des tâches
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: Aucun processus en cours d'exécution
@@ -189,6 +218,10 @@ fr:
189
218
  not_found: Événement non trouvé
190
219
  title: Événement %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Terminé
223
+ pending: En attente
224
+ processing: En cours
192
225
  bulk_select_all: Tout sélectionner
193
226
  bulk_select_row: Sélectionner %{id}
194
227
  bulk_selected: sélectionné
@@ -346,6 +379,7 @@ fr:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Lots
349
383
  dashboard: Tableau de bord
350
384
  dlq: DLQ
351
385
  events: Événements
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  it:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: Lotti di lavori con monitoraggio del progresso e callback
7
+ empty: Nessun lotto trovato
8
+ headers:
9
+ batch_id: ID lotto
10
+ created: Creato
11
+ description: Descrizione
12
+ jobs: Lavori
13
+ progress: Progresso
14
+ status: Stato
15
+ title: Lotti
16
+ show:
17
+ back: Torna ai lotti
18
+ batch_id: ID lotto
19
+ completed: Completati
20
+ created_at: Creato il
21
+ details: Dettagli
22
+ discarded: Scartati
23
+ finished_at: Terminato il
24
+ not_found: Lotto non trovato
25
+ on_discard: Allo scarto
26
+ on_finish: Al termine
27
+ on_success: Al successo
28
+ progress: Progresso
29
+ properties: Proprietà
30
+ remaining: Rimanenti
31
+ title: Lotto
32
+ total_jobs: Lavori totali
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: Nessun processo in esecuzione
@@ -189,6 +218,10 @@ it:
189
218
  not_found: Evento non trovato
190
219
  title: Evento %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: Terminato
223
+ pending: In sospeso
224
+ processing: In elaborazione
192
225
  bulk_select_all: Seleziona tutto
193
226
  bulk_select_row: Seleziona %{id}
194
227
  bulk_selected: selezionato
@@ -346,6 +379,7 @@ it:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: Lotti
349
383
  dashboard: Cruscotto
350
384
  dlq: DLQ
351
385
  events: Eventi
@@ -1,6 +1,35 @@
1
1
  ---
2
2
  ja:
3
3
  pgbus:
4
+ batches:
5
+ index:
6
+ description: 進捗追跡とコールバック付きのジョブバッチ
7
+ empty: バッチが見つかりません
8
+ headers:
9
+ batch_id: バッチID
10
+ created: 作成日
11
+ description: 説明
12
+ jobs: ジョブ
13
+ progress: 進捗
14
+ status: ステータス
15
+ title: バッチ
16
+ show:
17
+ back: バッチに戻る
18
+ batch_id: バッチID
19
+ completed: 完了
20
+ created_at: 作成日時
21
+ details: 詳細
22
+ discarded: 破棄済み
23
+ finished_at: 完了日時
24
+ not_found: バッチが見つかりません
25
+ on_discard: 破棄時
26
+ on_finish: 完了時
27
+ on_success: 成功時
28
+ progress: 進捗
29
+ properties: プロパティ
30
+ remaining: 残り
31
+ title: バッチ
32
+ total_jobs: 合計ジョブ数
4
33
  dashboard:
5
34
  processes_table:
6
35
  empty: 実行中のプロセスはありません
@@ -189,6 +218,10 @@ ja:
189
218
  not_found: イベントが見つかりません
190
219
  title: イベント %{event_id}
191
220
  helpers:
221
+ batch_status:
222
+ finished: 完了
223
+ pending: 保留中
224
+ processing: 処理中
192
225
  bulk_select_all: すべて選択
193
226
  bulk_select_row: "%{id}を選択"
194
227
  bulk_selected: 選択済み
@@ -346,6 +379,7 @@ ja:
346
379
  layout:
347
380
  brand: Pgbus
348
381
  nav:
382
+ batches: バッチ
349
383
  dashboard: ダッシュボード
350
384
  dlq: DLQ
351
385
  events: イベント