Skip to content

Commit

Permalink
Add a number badge to navbar
Browse files Browse the repository at this point in the history
  • Loading branch information
bensheldon committed Jan 19, 2025
1 parent a63980a commit 43e560a
Show file tree
Hide file tree
Showing 7 changed files with 25 additions and 21 deletions.
2 changes: 2 additions & 0 deletions app/controllers/good_job/metrics_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,15 @@ def primary_nav
jobs_count = GoodJob::Job.count
batches_count = GoodJob::BatchRecord.all.size
cron_entries_count = GoodJob::CronEntry.all.size
pauses_count = GoodJob::Setting.paused.values.sum(&:count)
processes_count = GoodJob::Process.active.count
discarded_count = GoodJob::Job.discarded.count

render json: {
jobs_count: helpers.number_to_human(jobs_count),
batches_count: helpers.number_to_human(batches_count),
cron_entries_count: helpers.number_to_human(cron_entries_count),
pauses_count: helpers.number_to_human(pauses_count),
processes_count: helpers.number_to_human(processes_count),
discarded_count: helpers.number_to_human(discarded_count),
}
Expand Down
1 change: 1 addition & 0 deletions app/views/good_job/shared/_navbar.erb
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<li class="nav-item">
<%= link_to pauses_path, class: ["nav-link", ("active" if controller_name == 'pauses')] do %>
<%= t(".pauses") %>
<span data-async-values-target="value" data-async-values-key="pauses_count" data-async-values-zero-class="d-none" class="badge bg-warning rounded-pill d-none"></span>
<% end %>
</li>
<li class="nav-item">
Expand Down
34 changes: 17 additions & 17 deletions config/locales/fr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ fr:
retry: Recommencez
batches:
actions:
confirm_retry: Voulez-vous vraiment réessayer ce lot ?
confirm_retry: Voulez-vous vraiment réessayer ce lot ?
retry: Réessayer
index:
older_batches: Lots plus anciens
title: Lots
jobs:
actions:
confirm_destroy: Voulez-vous vraiment détruire ce job ?
confirm_discard: Voulez-vous vraiment mettre au rebut ce job ?
confirm_reschedule: Voulez-vous vraiment replanifier ce job ?
confirm_retry: Voulez-vous vraiment réessayer ce job ?
confirm_destroy: Voulez-vous vraiment détruire ce job ?
confirm_discard: Voulez-vous vraiment mettre au rebut ce job ?
confirm_reschedule: Voulez-vous vraiment replanifier ce job ?
confirm_retry: Voulez-vous vraiment réessayer ce job ?
destroy: Détruire le job
discard: Mettre au rebut le job
reschedule: Replanifier le job
Expand Down Expand Up @@ -51,9 +51,9 @@ fr:
total: Total
cron_entries:
actions:
confirm_disable: Voulez-vous vraiment désactiver cette entrée cron ?
confirm_enable: Voulez-vous vraiment activer cette entrée cron ?
confirm_enqueue: Voulez-vous vraiment mettre en file d'attente cette entrée cron ?
confirm_disable: Voulez-vous vraiment désactiver cette entrée cron ?
confirm_enable: Voulez-vous vraiment activer cette entrée cron ?
confirm_enqueue: Voulez-vous vraiment mettre en file d'attente cette entrée cron ?
disable: Désactiver l'entrée cron
enable: Activer l'entrée cron
enqueue: Mettre en file d'attente l'entrée cron maintenant
Expand Down Expand Up @@ -126,11 +126,11 @@ fr:
past: il y a %{time}
jobs:
actions:
confirm_destroy: Voulez-vous vraiment détruire le job ?
confirm_discard: Voulez-vous vraiment mettre au rebut le job ?
confirm_destroy: Voulez-vous vraiment détruire le job ?
confirm_discard: Voulez-vous vraiment mettre au rebut le job ?
confirm_force_discard: Êtes-vous sûr de vouloir forcer l'abandon du travail? Le travail sera marqué comme abandonné mais le travail en cours ne sera pas arrêté - cependant, il ne sera pas réessayé en cas d'échec.
confirm_reschedule: Voulez-vous vraiment replanifier le job ?
confirm_retry: Voulez-vous vraiment réessayer le job ?
confirm_reschedule: Voulez-vous vraiment replanifier le job ?
confirm_retry: Voulez-vous vraiment réessayer le job ?
destroy: Détruire le job
discard: Mettre au rebut le job
force_discard: Forcer l'abandon du travail
Expand Down Expand Up @@ -162,10 +162,10 @@ fr:
apply_to_all:
one: Appliquer à ce job
other: Appliquer aux %{count} jobs
confirm_destroy_all: Voulez-vous vraiment détruire les jobs sélectionnés ?
confirm_discard_all: Voulez-vous vraiment mettre au rebut les jobs sélectionnés ?
confirm_reschedule_all: Voulez-vous vraiment replanifier les jobs sélectionnées ?
confirm_retry_all: Voulez-vous vraiment réessayer les jobs sélectionnées ?
confirm_destroy_all: Voulez-vous vraiment détruire les jobs sélectionnés ?
confirm_discard_all: Voulez-vous vraiment mettre au rebut les jobs sélectionnés ?
confirm_reschedule_all: Voulez-vous vraiment replanifier les jobs sélectionnées ?
confirm_retry_all: Voulez-vous vraiment réessayer les jobs sélectionnées ?
destroy_all: Tout détruire
discard_all: Tout mettre au rebut
reschedule_all: Tout replanifier
Expand Down Expand Up @@ -280,7 +280,7 @@ fr:
theme: Thème
pending_migrations: GoodJob a des migrations de bases de données en attente.
secondary_navbar:
inspiration: N'oublie pas, toi aussi tu fais du bon boulot !
inspiration: N'oublie pas, toi aussi tu fais du bon boulot !
last_updated: Dernière mise à jour
status:
discarded: Mis au rebut
Expand Down
4 changes: 2 additions & 2 deletions demo/app/jobs/example_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def perform(type = SUCCESS_TYPE)
raise DeadError
elsif type == SLOW_TYPE
50.times do
break if blocking_reload?
break if blocking_reload? || GoodJob.current_thread_shutting_down?
sleep 0.1
end
end
Expand All @@ -53,7 +53,7 @@ def perform(type = SUCCESS_TYPE)
private

def blocking_reload?
return false unless Rails.application.config.reloading_enabled?
return false if Rails.application.config.cache_classes

ActiveSupport::Dependencies.interlock.raw_state do |threads|
# Find any thread attempting to unload (reload) code
Expand Down
2 changes: 1 addition & 1 deletion demo/config/initializers/good_job.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Rails.application.configure do
config.good_job.enable_pauses = false
config.good_job.enable_pauses = true
config.good_job.cron = {
example: {
cron: '*/5 * * * * *', # every 5 seconds
Expand Down
2 changes: 1 addition & 1 deletion spec/app/jobs/example_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@

describe "SLOW_TYPE" do
it 'sleeps for period' do
expect_any_instance_of(described_class).to receive(:sleep)
expect_any_instance_of(described_class).to receive(:sleep).at_least(1).times

active_job = described_class.perform_later(described_class::SLOW_TYPE)

Expand Down
1 change: 1 addition & 0 deletions spec/requests/good_job/metrics_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
jobs_count: '0',
batches_count: '0',
cron_entries_count: '1',
pauses_count: '0',
processes_count: '0',
discarded_count: '0',
}.to_json
Expand Down

0 comments on commit 43e560a

Please sign in to comment.