foreman-tasks 7.2.0 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby_tests.yml +4 -0
  3. data/app/helpers/foreman_tasks/foreman_tasks_helper.rb +2 -2
  4. data/app/lib/actions/middleware/watch_delegated_proxy_sub_tasks.rb +1 -1
  5. data/app/models/foreman_tasks/recurring_logic.rb +13 -5
  6. data/app/views/foreman_tasks/api/recurring_logics/base.json.rabl +6 -1
  7. data/app/views/foreman_tasks/recurring_logics/index.html.erb +1 -1
  8. data/config/routes.rb +0 -1
  9. data/db/migrate/20211123170430_tasks_settings_to_dsl_category.rb +1 -1
  10. data/foreman-tasks.gemspec +2 -2
  11. data/lib/foreman_tasks/engine.rb +3 -8
  12. data/lib/foreman_tasks/version.rb +1 -1
  13. data/lib/tasks/gettext.rake +1 -1
  14. data/locale/de/foreman_tasks.po +12 -15
  15. data/locale/en/foreman_tasks.po +9 -12
  16. data/locale/es/foreman_tasks.po +12 -15
  17. data/locale/foreman_tasks.pot +19 -23
  18. data/locale/fr/foreman_tasks.po +12 -15
  19. data/locale/ja/foreman_tasks.po +12 -15
  20. data/locale/ka/foreman_tasks.po +12 -15
  21. data/locale/ko/foreman_tasks.po +10 -13
  22. data/locale/pt_BR/foreman_tasks.po +12 -15
  23. data/locale/ru/foreman_tasks.po +10 -13
  24. data/locale/zh_CN/foreman_tasks.po +12 -15
  25. data/locale/zh_TW/foreman_tasks.po +10 -13
  26. data/package.json +6 -6
  27. data/webpack/ForemanTasks/Components/TaskDetails/Components/TaskButtons.js +1 -1
  28. data/webpack/ForemanTasks/Components/TaskDetails/Components/__tests__/__snapshots__/TaskButtons.test.js.snap +2 -2
  29. data/webpack/ForemanTasks/Components/TaskDetails/TaskDetails.js +2 -2
  30. data/webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js +9 -3
  31. data/webpack/ForemanTasks/Components/TasksTable/Components/__test__/__snapshots__/SelectAllAlert.test.js.snap +23 -17
  32. data/webpack/ForemanTasks/Components/TasksTable/TasksBulkActions.js +3 -3
  33. data/webpack/ForemanTasks/Components/TasksTable/TasksTable.js +2 -2
  34. data/webpack/ForemanTasks/Components/TasksTable/__tests__/__snapshots__/TasksTable.test.js.snap +1 -1
  35. metadata +13 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c5d611523d1262879b33177bf9c1f4c394142fee8433c2fda798cb4063b60f99
4
- data.tar.gz: 1e7974c6fde725d0fe46dcffd6793c7f4b078c3c6e2e3429dce42180e61e4044
3
+ metadata.gz: 963f9bf0926c9f8a71b9aef3ace2e25e2b156210c3e4c7567e4282c44eb5632b
4
+ data.tar.gz: 8b5596eab3ccc039c32f9a23278b54f526aac63546e546f8965314b80afcc7be
5
5
  SHA512:
6
- metadata.gz: 6f358b767cf2c8f2f6d31a43aa6c1fca27a6db053311d4540cea15d11c7c76758db192d5b39ecef17fcfc9d89e9e99a233c6b3d14fadd41efcca709aea37704b
7
- data.tar.gz: 9c08bf19e2f8bdc05add76a9b8e9b783407b03ba99f0c47325454468a4654e44296f8dafd87e40a5d58ed771edb58900c0ac41738202efce5043193b5580a50c
6
+ metadata.gz: 48072148a700c91b935f54983371ad5d47d31ead77429def7acde35e847e3a94c31a3d76930aa5540e8e00563285ae611c37c3a58d2a23b3eef5ee8de3d621fb
7
+ data.tar.gz: 11861d32d797ecf6c1c44f2374cb81758d93c838f546014160c55d4f6d0606de69a5cb06e538d9c65cfd266838f1b976c2404ba1267d0fb07504ef9d9868feff
@@ -5,6 +5,9 @@ env:
5
5
  DATABASE_URL: postgresql://postgres:@localhost/test
6
6
  DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true
7
7
  BUNDLE_WITHOUT: "journald:development:console:mysql2:sqlite:libvirt"
8
+ concurrency:
9
+ group: ${{ github.workflow }}-${{ github.ref }}
10
+ cancel-in-progress: true
8
11
  jobs:
9
12
  rubocop:
10
13
  runs-on: ubuntu-latest
@@ -20,6 +23,7 @@ jobs:
20
23
  test_ruby:
21
24
  runs-on: ubuntu-latest
22
25
  needs: rubocop
26
+ timeout-minutes: 15
23
27
  services:
24
28
  postgres:
25
29
  image: postgres:12.1
@@ -52,8 +52,8 @@ module ForemanTasks
52
52
  default = '-'
53
53
  return default if recurring_logic.done? || recurring_logic.disabled?
54
54
 
55
- last_task = recurring_logic.tasks.order(:start_at).last
56
- last_task ? last_task.start_at : default
55
+ upcoming_task = recurring_logic.next_task
56
+ upcoming_task ? upcoming_task.start_at : default
57
57
  end
58
58
 
59
59
  def time_f(f, attr, field_options = {}, time_options = {}, html_options = {})
@@ -51,7 +51,7 @@ module Actions
51
51
 
52
52
  def notify(event, tasks)
53
53
  tasks.each do |task|
54
- action.plan_event(event, execution_plan_id: task.execution_plan_id, step_id: task.step_id)
54
+ action.plan_event(event, execution_plan_id: task.execution_plan_id, step_id: task.step_id, optional: true)
55
55
  end
56
56
  end
57
57
 
@@ -1,5 +1,5 @@
1
1
  module ForemanTasks
2
- require 'parse-cron'
2
+ require 'fugit'
3
3
 
4
4
  class RecurringLogic < ApplicationRecord
5
5
  include Authorizable
@@ -29,6 +29,14 @@ module ForemanTasks
29
29
  %w[active disabled finished cancelled failed]
30
30
  end
31
31
 
32
+ def last_task
33
+ tasks.order(:started_at).where.not(started_at: nil).last
34
+ end
35
+
36
+ def next_task
37
+ tasks.order(:start_at).where(started_at: nil).last
38
+ end
39
+
32
40
  def enabled=(value)
33
41
  task = tasks.find_by(:state => :scheduled)
34
42
  if task
@@ -88,11 +96,11 @@ module ForemanTasks
88
96
  end
89
97
 
90
98
  def next_occurrence_time(time = Time.zone.now)
91
- @parser ||= CronParser.new(cron_line, Time.zone)
99
+ @parser ||= Fugit.parse_cron(cron_line)
92
100
  # @parser.next(start_time) is not inclusive of the start_time hence stepping back one run to include checking start_time for the first run.
93
- before_next = @parser.next(@parser.last(time.in_time_zone))
94
- return before_next if before_next >= time && tasks.count == 0
95
- @parser.next(time)
101
+ before_next = @parser.next_time(@parser.previous_time(time.iso8601))
102
+ return before_next.utc.localtime if before_next >= time && tasks.count == 0
103
+ @parser.next_time(time).utc.localtime
96
104
  end
97
105
 
98
106
  def generate_delay_options(time = Time.zone.now, options = {})
@@ -1,4 +1,9 @@
1
1
  object @recurring_logic
2
2
 
3
3
  attributes :id, :cron_line, :end_time, :iteration, :task_group_id, :state,
4
- :max_iteration
4
+ :max_iteration, :purpose
5
+
6
+ node(:task_count) { |rl| rl.tasks.count }
7
+ node(:action) { |rl| rl.tasks.first.try(:action) }
8
+ node(:last_occurence) { |rl| rl.last_task&.started_at }
9
+ node(:next_occurence) { |rl| rl.next_task&.start_at }
@@ -56,7 +56,7 @@
56
56
  <td><%= recurring_logic.cron_line %></td>
57
57
  <td><%= link_to(recurring_logic.tasks.count, foreman_tasks_tasks_url(:search => "task_group.id = #{recurring_logic.task_group.id}")) %></td>
58
58
  <td><%= format_task_input(recurring_logic.tasks.first) %></td>
59
- <td><%= recurring_logic.tasks.order(:started_at).where('started_at IS NOT NULL').last.try(:started_at) || "-" %></td>
59
+ <td><%= recurring_logic.last_task.try(:started_at) || "-" %></td>
60
60
  <td><%= recurring_logic_next_occurrence recurring_logic %></td>
61
61
  <td><%= recurring_logic.iteration %></td>
62
62
  <td><%= format_recurring_logic_limit recurring_logic.max_iteration %></td>
data/config/routes.rb CHANGED
@@ -72,7 +72,6 @@ Foreman::Application.routes.draw do
72
72
  require 'sidekiq/web'
73
73
  redis_url = ENV['DYNFLOW_REDIS_URL'] || SETTINGS.dig(:dynflow, :redis_url)
74
74
  Sidekiq.redis = { url: redis_url }
75
- Sidekiq::Web.set :sessions, false
76
75
  mount Sidekiq::Web => '/sidekiq', :constraints => ForemanTasks::Dynflow::SidekiqConsoleConstraint.new
77
76
  end
78
77
  end
@@ -1,5 +1,5 @@
1
1
  class TasksSettingsToDslCategory < ActiveRecord::Migration[6.0]
2
2
  def up
3
- Setting.where(category: 'Setting::ForemanTasks').update_all(category: 'Setting')
3
+ Setting.where(category: 'Setting::ForemanTasks').update_all(category: 'Setting') if column_exists?(:settings, :category)
4
4
  end
5
5
  end
@@ -20,15 +20,15 @@ same resource. It also optionally provides Dynflow infrastructure for using it f
20
20
  DESC
21
21
 
22
22
  s.files = `git ls-files`.split("\n").reject do |file|
23
- file.end_with?("test.rake")
23
+ file.end_with?("test.rake") || file == '.packit.yaml'
24
24
  end
25
25
 
26
26
  s.test_files = `git ls-files test`.split("\n")
27
27
  s.extra_rdoc_files = Dir['README*', 'LICENSE']
28
28
 
29
29
  s.add_dependency "dynflow", '>= 1.6.0'
30
+ s.add_dependency 'fugit', '~> 1.8'
30
31
  s.add_dependency "get_process_mem" # for memory polling
31
- s.add_dependency "parse-cron", '~> 0.1.4'
32
32
  s.add_dependency "sinatra" # for Dynflow web console
33
33
 
34
34
  s.add_development_dependency 'factory_bot_rails', '~> 4.8.0'
@@ -16,16 +16,9 @@ module ForemanTasks
16
16
  SETTINGS[:foreman_tasks] = { :assets => { :precompile => assets_to_precompile } }
17
17
  end
18
18
 
19
- initializer 'foreman_tasks.register_gettext', :after => :load_config_initializers do
20
- locale_dir = File.join(File.expand_path('../..', __dir__), 'locale')
21
- locale_domain = 'foreman_tasks'
22
-
23
- Foreman::Gettext::Support.add_text_domain locale_domain, locale_dir
24
- end
25
-
26
19
  initializer 'foreman_tasks.register_plugin', :before => :finisher_hook do |_app|
27
20
  Foreman::Plugin.register :"foreman-tasks" do
28
- requires_foreman '>= 3.3.0'
21
+ requires_foreman '>= 3.7.0'
29
22
  divider :top_menu, :parent => :monitor_menu, :last => true, :caption => N_('Foreman Tasks')
30
23
  menu :top_menu, :tasks,
31
24
  :url_hash => { :controller => 'foreman_tasks/tasks', :action => :index },
@@ -129,6 +122,8 @@ module ForemanTasks
129
122
  widget 'foreman_tasks/tasks/dashboard/tasks_status', :sizex => 6, :sizey => 1, :name => N_('Task Status')
130
123
  widget 'foreman_tasks/tasks/dashboard/latest_tasks_in_error_warning', :sizex => 6, :sizey => 1, :name => N_('Latest Warning/Error Tasks')
131
124
 
125
+ register_gettext domain: "foreman_tasks"
126
+
132
127
  ForemanTasks.dynflow.eager_load_actions!
133
128
  extend_observable_events(::Dynflow::Action.descendants.select { |klass| klass <= ::Actions::ObservableAction }.map(&:namespaced_event_names))
134
129
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanTasks
2
- VERSION = '7.2.0'.freeze
2
+ VERSION = '8.0.0'.freeze
3
3
  end
@@ -17,7 +17,7 @@ if gettext_find_task
17
17
  .uniq
18
18
  .map { |n| %[_("#{n}")] }
19
19
  .sort
20
- .join("\n")
20
+ .join("\n") + "\n"
21
21
  end
22
22
  end
23
23
 
@@ -20,9 +20,6 @@ msgstr ""
20
20
  "Language: de\n"
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
- msgid "${taskReload ? 'Stop' : 'Start'} auto-reloading"
24
- msgstr "${taskReload ? 'Stop': 'Start'} automatisches Nachladen"
25
-
26
23
  msgid "%(last)s Last %(time)s"
27
24
  msgstr "%(last)s Zuletzt %(time)s"
28
25
 
@@ -74,8 +71,8 @@ msgstr "Aktive Filter:"
74
71
  msgid "Active or disabled recurring logic with purpose %s already exists"
75
72
  msgstr ""
76
73
 
77
- msgid "All %s tasks are selected. "
78
- msgstr "Alle %s Aufgaben sind ausgewählt."
74
+ msgid "All %s tasks are selected."
75
+ msgstr ""
79
76
 
80
77
  msgid "All proxies with the required feature are unavailable at the moment"
81
78
  msgstr "Alle Proxys mit dem genannten Feature sind nicht verfügbar "
@@ -165,11 +162,8 @@ msgstr "Konflikt mit Aufgaben:"
165
162
  msgid "Could not cancel step."
166
163
  msgstr "Schritt konnte nicht abgebrochen werden."
167
164
 
168
- msgid "Could not receive data: ${APIerror && APIerror.message}"
169
- msgstr "Daten konnten nicht empfangen werden: ${APIerror && APIerror.message}"
170
-
171
- msgid "Could not receive data: ${error && error.message}"
172
- msgstr "Konnte Daten nicht erhalten: ${error && error.message}"
165
+ msgid "Could not receive data: %s"
166
+ msgstr ""
173
167
 
174
168
  msgid "Cron line"
175
169
  msgstr "Cron-Zeile"
@@ -550,8 +544,8 @@ msgstr "Weitere Informationen zur Behebung des Problems finden Sie unter %{link}
550
544
  msgid "Select Action"
551
545
  msgstr "Aktion auswählen"
552
546
 
553
- msgid "Select All"
554
- msgstr "Alle auswählen"
547
+ msgid "Select all {count} tasks"
548
+ msgstr ""
555
549
 
556
550
  msgid "Select row"
557
551
  msgstr "Zeile auswählen"
@@ -571,6 +565,9 @@ msgstr "Details der Wiederholungslogik anzeigen"
571
565
  msgid "Start at"
572
566
  msgstr "Startet um "
573
567
 
568
+ msgid "Start auto-reloading"
569
+ msgstr ""
570
+
574
571
  msgid "Start before"
575
572
  msgstr "Startet vor"
576
573
 
@@ -586,6 +583,9 @@ msgstr "Status"
586
583
  msgid "Step Canceled"
587
584
  msgstr "Schritt abgebrochen"
588
585
 
586
+ msgid "Stop auto-reloading"
587
+ msgstr ""
588
+
589
589
  msgid "Stop selected stoppable tasks"
590
590
  msgstr "Ausgewählte stoppbare Aufgaben stoppen"
591
591
 
@@ -848,9 +848,6 @@ msgstr "Aufgabe muss stornierbar sein"
848
848
  msgid "task has to be resumable"
849
849
  msgstr "Aufgabe muss wiederaufsetzbar sein"
850
850
 
851
- msgid "tasks."
852
- msgstr "Aufgaben."
853
-
854
851
  msgid "time"
855
852
  msgstr "Zeit"
856
853
 
@@ -17,9 +17,6 @@ msgstr ""
17
17
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
18
18
  "\n"
19
19
 
20
- msgid "${taskReload ? 'Stop' : 'Start'} auto-reloading"
21
- msgstr ""
22
-
23
20
  msgid "%(last)s Last %(time)s"
24
21
  msgstr ""
25
22
 
@@ -71,7 +68,7 @@ msgstr ""
71
68
  msgid "Active or disabled recurring logic with purpose %s already exists"
72
69
  msgstr ""
73
70
 
74
- msgid "All %s tasks are selected. "
71
+ msgid "All %s tasks are selected."
75
72
  msgstr ""
76
73
 
77
74
  msgid "All proxies with the required feature are unavailable at the moment"
@@ -162,10 +159,7 @@ msgstr ""
162
159
  msgid "Could not cancel step."
163
160
  msgstr ""
164
161
 
165
- msgid "Could not receive data: ${APIerror && APIerror.message}"
166
- msgstr ""
167
-
168
- msgid "Could not receive data: ${error && error.message}"
162
+ msgid "Could not receive data: %s"
169
163
  msgstr ""
170
164
 
171
165
  msgid "Cron line"
@@ -547,7 +541,7 @@ msgstr ""
547
541
  msgid "Select Action"
548
542
  msgstr ""
549
543
 
550
- msgid "Select All"
544
+ msgid "Select all {count} tasks"
551
545
  msgstr ""
552
546
 
553
547
  msgid "Select row"
@@ -568,6 +562,9 @@ msgstr ""
568
562
  msgid "Start at"
569
563
  msgstr ""
570
564
 
565
+ msgid "Start auto-reloading"
566
+ msgstr ""
567
+
571
568
  msgid "Start before"
572
569
  msgstr ""
573
570
 
@@ -583,6 +580,9 @@ msgstr ""
583
580
  msgid "Step Canceled"
584
581
  msgstr ""
585
582
 
583
+ msgid "Stop auto-reloading"
584
+ msgstr ""
585
+
586
586
  msgid "Stop selected stoppable tasks"
587
587
  msgstr ""
588
588
 
@@ -845,9 +845,6 @@ msgstr ""
845
845
  msgid "task has to be resumable"
846
846
  msgstr ""
847
847
 
848
- msgid "tasks."
849
- msgstr ""
850
-
851
848
  msgid "time"
852
849
  msgstr ""
853
850
 
@@ -20,9 +20,6 @@ msgstr ""
20
20
  "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 :"
21
21
  " 2;\n"
22
22
 
23
- msgid "${taskReload ? 'Stop' : 'Start'} auto-reloading"
24
- msgstr "${taskReload ? 'Stop' : 'Start'} auto-recarga"
25
-
26
23
  msgid "%(last)s Last %(time)s"
27
24
  msgstr "%(last)s Última %(time)s"
28
25
 
@@ -74,8 +71,8 @@ msgstr "Filtros activos:"
74
71
  msgid "Active or disabled recurring logic with purpose %s already exists"
75
72
  msgstr "Lógica recurrente activa o desactivada con el propósito %s ya existe"
76
73
 
77
- msgid "All %s tasks are selected. "
78
- msgstr "Se seleccionan todas las tareas de %s. "
74
+ msgid "All %s tasks are selected."
75
+ msgstr ""
79
76
 
80
77
  msgid "All proxies with the required feature are unavailable at the moment"
81
78
  msgstr "Ningún proxy con función obligatoria está disponible en este momento"
@@ -165,11 +162,8 @@ msgstr "Conflictos con las tareas:"
165
162
  msgid "Could not cancel step."
166
163
  msgstr "No se pudo cancelar el paso."
167
164
 
168
- msgid "Could not receive data: ${APIerror && APIerror.message}"
169
- msgstr "No se han podido recibir datos: ${APIerror && APIerror.message}"
170
-
171
- msgid "Could not receive data: ${error && error.message}"
172
- msgstr "No se han podido recibir datos: ${error && error.message}"
165
+ msgid "Could not receive data: %s"
166
+ msgstr ""
173
167
 
174
168
  msgid "Cron line"
175
169
  msgstr "Línea Cron"
@@ -550,8 +544,8 @@ msgstr "Consulte %{link} para obtener más detalles sobre cómo resolver el prob
550
544
  msgid "Select Action"
551
545
  msgstr "Seleccionar una acción"
552
546
 
553
- msgid "Select All"
554
- msgstr "Seleccionar todo"
547
+ msgid "Select all {count} tasks"
548
+ msgstr ""
555
549
 
556
550
  msgid "Select row"
557
551
  msgstr "Seleccionar fila"
@@ -571,6 +565,9 @@ msgstr "Mostrar detalles de lógica recurrente"
571
565
  msgid "Start at"
572
566
  msgstr "Iniciar en"
573
567
 
568
+ msgid "Start auto-reloading"
569
+ msgstr ""
570
+
574
571
  msgid "Start before"
575
572
  msgstr "Iniciar antes"
576
573
 
@@ -586,6 +583,9 @@ msgstr "Estado"
586
583
  msgid "Step Canceled"
587
584
  msgstr "Paso cancelado"
588
585
 
586
+ msgid "Stop auto-reloading"
587
+ msgstr ""
588
+
589
589
  msgid "Stop selected stoppable tasks"
590
590
  msgstr "Detener las tareas detenibles seleccionadas"
591
591
 
@@ -849,9 +849,6 @@ msgstr "la tarea se debe poder cancelar"
849
849
  msgid "task has to be resumable"
850
850
  msgstr "la tarea se debe poder reanudar"
851
851
 
852
- msgid "tasks."
853
- msgstr "tareas."
854
-
855
852
  msgid "time"
856
853
  msgstr "hora"
857
854
 
@@ -8,8 +8,8 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: foreman_tasks 1.0.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2022-12-16 14:29+0100\n"
12
- "PO-Revision-Date: 2022-12-16 14:29+0100\n"
11
+ "POT-Creation-Date: 2023-02-15 19:50+0100\n"
12
+ "PO-Revision-Date: 2023-02-15 19:50+0100\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -424,24 +424,24 @@ msgstr ""
424
424
  msgid "Conflicts with tasks:"
425
425
  msgstr ""
426
426
 
427
- #: ../app/models/foreman_tasks/recurring_logic.rb:141
427
+ #: ../app/models/foreman_tasks/recurring_logic.rb:149
428
428
  msgid "Active"
429
429
  msgstr ""
430
430
 
431
- #: ../app/models/foreman_tasks/recurring_logic.rb:143
431
+ #: ../app/models/foreman_tasks/recurring_logic.rb:151
432
432
  msgid "Cancelled"
433
433
  msgstr ""
434
434
 
435
- #: ../app/models/foreman_tasks/recurring_logic.rb:145
435
+ #: ../app/models/foreman_tasks/recurring_logic.rb:153
436
436
  msgid "Finished"
437
437
  msgstr ""
438
438
 
439
- #: ../app/models/foreman_tasks/recurring_logic.rb:147
439
+ #: ../app/models/foreman_tasks/recurring_logic.rb:155
440
440
  #: ../webpack/ForemanTasks/Components/TasksTable/TasksTableSelectors.js:39
441
441
  msgid "Disabled"
442
442
  msgstr ""
443
443
 
444
- #: ../app/models/foreman_tasks/recurring_logic.rb:149
444
+ #: ../app/models/foreman_tasks/recurring_logic.rb:157
445
445
  #: ../app/models/foreman_tasks/task.rb:130
446
446
  #: ../app/views/foreman_tasks/tasks/dashboard/_latest_tasks_in_error_warning.html.erb:14
447
447
  #: ../app/views/foreman_tasks/tasks/dashboard/_tasks_status.html.erb:14
@@ -919,7 +919,11 @@ msgid "Setting is off"
919
919
  msgstr ""
920
920
 
921
921
  #: ../webpack/ForemanTasks/Components/TaskDetails/Components/TaskButtons.js:51
922
- msgid "${taskReload ? 'Stop' : 'Start'} auto-reloading"
922
+ msgid "Stop auto-reloading"
923
+ msgstr ""
924
+
925
+ #: ../webpack/ForemanTasks/Components/TaskDetails/Components/TaskButtons.js:51
926
+ msgid "Start auto-reloading"
923
927
  msgstr ""
924
928
 
925
929
  #: ../webpack/ForemanTasks/Components/TaskDetails/Components/TaskButtons.js:62
@@ -956,7 +960,8 @@ msgid "Errors:"
956
960
  msgstr ""
957
961
 
958
962
  #: ../webpack/ForemanTasks/Components/TaskDetails/TaskDetails.js:52
959
- msgid "Could not receive data: ${APIerror && APIerror.message}"
963
+ #: ../webpack/ForemanTasks/Components/TasksTable/TasksTable.js:71
964
+ msgid "Could not receive data: %s"
960
965
  msgstr ""
961
966
 
962
967
  #: ../webpack/ForemanTasks/Components/TaskDetails/TaskDetails.js:61
@@ -1196,22 +1201,17 @@ msgid "Yes"
1196
1201
  msgstr ""
1197
1202
 
1198
1203
  #:
1199
- #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:20
1200
- msgid "Select All"
1204
+ #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:26
1205
+ msgid "Select all {count} tasks"
1201
1206
  msgstr ""
1202
1207
 
1203
1208
  #:
1204
- #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:21
1205
- msgid "tasks."
1209
+ #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:33
1210
+ msgid "All %s tasks are selected."
1206
1211
  msgstr ""
1207
1212
 
1208
1213
  #:
1209
- #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:27
1210
- msgid "All %s tasks are selected. "
1211
- msgstr ""
1212
-
1213
- #:
1214
- #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:29
1214
+ #: ../webpack/ForemanTasks/Components/TasksTable/Components/SelectAllAlert.js:35
1215
1215
  msgid "Undo selection"
1216
1216
  msgstr ""
1217
1217
 
@@ -1256,10 +1256,6 @@ msgstr ""
1256
1256
  msgid "Canceling with force selected tasks, this might take a while"
1257
1257
  msgstr ""
1258
1258
 
1259
- #: ../webpack/ForemanTasks/Components/TasksTable/TasksTable.js:71
1260
- msgid "Could not receive data: ${error && error.message}"
1261
- msgstr ""
1262
-
1263
1259
  #: ../webpack/ForemanTasks/Components/TasksTable/TasksTable.js:81
1264
1260
  msgid "No Tasks"
1265
1261
  msgstr ""
@@ -19,9 +19,6 @@ msgstr ""
19
19
  "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 100000"
20
20
  "0 == 0 ? 1 : 2;\n"
21
21
 
22
- msgid "${taskReload ? 'Stop' : 'Start'} auto-reloading"
23
- msgstr "${taskReload ? 'Stop' : 'Start'} auto-reloading"
24
-
25
22
  msgid "%(last)s Last %(time)s"
26
23
  msgstr "%(last)s Dernier %(time)s"
27
24
 
@@ -73,8 +70,8 @@ msgstr "Filtres actifs :"
73
70
  msgid "Active or disabled recurring logic with purpose %s already exists"
74
71
  msgstr "La logique récurrente active ou désactivée avec l'objectif %s existe déjà."
75
72
 
76
- msgid "All %s tasks are selected. "
77
- msgstr "Toutes les tâches %s sont sélectionnées. "
73
+ msgid "All %s tasks are selected."
74
+ msgstr ""
78
75
 
79
76
  msgid "All proxies with the required feature are unavailable at the moment"
80
77
  msgstr "Les proxys possédant les fonctionnalités demandées ne sont pas disponibles actuellement"
@@ -164,11 +161,8 @@ msgstr "Conflits avec les tâches :"
164
161
  msgid "Could not cancel step."
165
162
  msgstr "N’a pas pu annuler l'étape."
166
163
 
167
- msgid "Could not receive data: ${APIerror && APIerror.message}"
168
- msgstr "Impossible de recevoir les données : ${APIerror&& APIerror.message}"
169
-
170
- msgid "Could not receive data: ${error && error.message}"
171
- msgstr "Impossible de recevoir les données : ${error && error.message}"
164
+ msgid "Could not receive data: %s"
165
+ msgstr ""
172
166
 
173
167
  msgid "Cron line"
174
168
  msgstr "Ligne Cron"
@@ -549,8 +543,8 @@ msgstr "Voir %{link} pour plus de détails sur la manière de résoudre le probl
549
543
  msgid "Select Action"
550
544
  msgstr "Choisir l'action"
551
545
 
552
- msgid "Select All"
553
- msgstr "Tout sélectionner"
546
+ msgid "Select all {count} tasks"
547
+ msgstr ""
554
548
 
555
549
  msgid "Select row"
556
550
  msgstr "Sélectionner une ligne"
@@ -570,6 +564,9 @@ msgstr "Afficher les détails des logiques récurrentes"
570
564
  msgid "Start at"
571
565
  msgstr "Démarre à"
572
566
 
567
+ msgid "Start auto-reloading"
568
+ msgstr ""
569
+
573
570
  msgid "Start before"
574
571
  msgstr "Démarre avant"
575
572
 
@@ -585,6 +582,9 @@ msgstr "État"
585
582
  msgid "Step Canceled"
586
583
  msgstr "Étape annulée"
587
584
 
585
+ msgid "Stop auto-reloading"
586
+ msgstr ""
587
+
588
588
  msgid "Stop selected stoppable tasks"
589
589
  msgstr "Arrêter les tâches sélectionnées pouvant être arrêtées"
590
590
 
@@ -848,9 +848,6 @@ msgstr "la tâche doit pouvoir être annulée"
848
848
  msgid "task has to be resumable"
849
849
  msgstr "la tâche doit pouvoir être reprise"
850
850
 
851
- msgid "tasks."
852
- msgstr "tâches."
853
-
854
851
  msgid "time"
855
852
  msgstr "heure"
856
853
 
@@ -18,9 +18,6 @@ msgstr ""
18
18
  "Language: ja\n"
19
19
  "Plural-Forms: nplurals=1; plural=0;\n"
20
20
 
21
- msgid "${taskReload ? 'Stop' : 'Start'} auto-reloading"
22
- msgstr "${taskReload ? 'Stop' : 'Start'} 自動再読み込み"
23
-
24
21
  msgid "%(last)s Last %(time)s"
25
22
  msgstr "過去 %(time)s で %(last)s 件"
26
23
 
@@ -72,8 +69,8 @@ msgstr "アクティブなフィルター:"
72
69
  msgid "Active or disabled recurring logic with purpose %s already exists"
73
70
  msgstr "目的が %s のアクティブまたは無効な再帰論理がすでに存在します"
74
71
 
75
- msgid "All %s tasks are selected. "
76
- msgstr "%s の全タスクを選択します。 "
72
+ msgid "All %s tasks are selected."
73
+ msgstr ""
77
74
 
78
75
  msgid "All proxies with the required feature are unavailable at the moment"
79
76
  msgstr "現在、必要な機能があるすべてのプロキシーが利用できません"
@@ -163,11 +160,8 @@ msgstr "タスクとの競合:"
163
160
  msgid "Could not cancel step."
164
161
  msgstr "ステップをキャンセルできませんでした。"
165
162
 
166
- msgid "Could not receive data: ${APIerror && APIerror.message}"
167
- msgstr "データを受信できませんでした: ${APIerror && APIerror.message}"
168
-
169
- msgid "Could not receive data: ${error && error.message}"
170
- msgstr "データを受信できませんでした: ${error && error.message}"
163
+ msgid "Could not receive data: %s"
164
+ msgstr ""
171
165
 
172
166
  msgid "Cron line"
173
167
  msgstr "cron 行"
@@ -548,8 +542,8 @@ msgstr "問題解決の詳細については、%{link} を参照してくださ
548
542
  msgid "Select Action"
549
543
  msgstr "アクションの選択"
550
544
 
551
- msgid "Select All"
552
- msgstr "すべてを選択"
545
+ msgid "Select all {count} tasks"
546
+ msgstr ""
553
547
 
554
548
  msgid "Select row"
555
549
  msgstr "行の選択"
@@ -569,6 +563,9 @@ msgstr "再帰論理の詳細表示"
569
563
  msgid "Start at"
570
564
  msgstr "開始時刻"
571
565
 
566
+ msgid "Start auto-reloading"
567
+ msgstr ""
568
+
572
569
  msgid "Start before"
573
570
  msgstr "次の時刻よりも前に開始"
574
571
 
@@ -584,6 +581,9 @@ msgstr "状態"
584
581
  msgid "Step Canceled"
585
582
  msgstr "ステップがキャンセルされました"
586
583
 
584
+ msgid "Stop auto-reloading"
585
+ msgstr ""
586
+
587
587
  msgid "Stop selected stoppable tasks"
588
588
  msgstr "選択した停止可能なタスクを停止"
589
589
 
@@ -845,9 +845,6 @@ msgstr "タスクはキャンセル可能でなければなりません"
845
845
  msgid "task has to be resumable"
846
846
  msgstr "タスクは再開可能でなければなりません"
847
847
 
848
- msgid "tasks."
849
- msgstr "タスク。"
850
-
851
848
  msgid "time"
852
849
  msgstr "時間"
853
850