web47core 3.2.50 → 3.2.51

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/core_card_nav_items_helper.rb +6 -6
  3. data/app/helpers/core_dropdown_helper.rb +8 -8
  4. data/app/helpers/core_floating_action_button_helper.rb +8 -8
  5. data/app/helpers/core_form_helper.rb +18 -40
  6. data/app/helpers/core_form_select_helper.rb +12 -12
  7. data/app/helpers/core_form_textarea_helper.rb +13 -9
  8. data/app/helpers/svg_icon_helper.rb +7 -4
  9. data/app/views/cron_servers/index.html.haml +3 -3
  10. data/app/views/cron_tabs/index.html.haml +1 -1
  11. data/app/views/delayed_job_workers/index.html.haml +3 -3
  12. data/app/views/delayed_jobs/index.html.haml +4 -0
  13. data/app/views/icons/_bed-filled.html.erb +1 -0
  14. data/app/views/icons/_bed-outline.html.erb +1 -0
  15. data/app/views/icons/_binary-tree-2.html.erb +1 -0
  16. data/app/views/icons/_cancel.html.erb +1 -0
  17. data/app/views/icons/_circle-plus-filled.html.erb +1 -0
  18. data/app/views/icons/_circle-plus-outline.html.erb +1 -0
  19. data/app/views/icons/_dots-vertical.html.erb +1 -0
  20. data/app/views/icons/_edit.html.erb +1 -0
  21. data/app/views/icons/_heartbeat.html.erb +1 -0
  22. data/app/views/icons/_hourglass.html.erb +1 -0
  23. data/app/views/icons/_player-play-filled.html.erb +1 -0
  24. data/app/views/icons/_player-play-outline.html.erb +1 -0
  25. data/app/views/icons/_repeat.html.erb +1 -0
  26. data/app/views/icons/_rotate.html.erb +1 -0
  27. data/app/views/icons/_run.html.erb +1 -0
  28. data/app/views/icons/_skull.html.erb +1 -0
  29. data/app/views/icons/_thumb-down-filled.html.erb +1 -0
  30. data/app/views/icons/_thumb-down-outline.html.erb +1 -0
  31. data/app/views/icons/_thumb-up-filled.html.erb +1 -0
  32. data/app/views/icons/_thumb-up-outline.html.erb +1 -0
  33. data/app/views/icons/_trash-filled.html.erb +1 -0
  34. data/app/views/icons/_trash-outline.html.erb +1 -0
  35. data/app/views/icons/_treadmill.html.erb +1 -0
  36. data/config/locales/en.yml +14 -0
  37. data/lib/web47core/version.rb +1 -1
  38. metadata +24 -2
  39. data/app/helpers/core_remix_icon_helper.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c3675d2ab5fbd549deab9374e349736b27f3f648bd12d3a29566c5b0af3bbea
4
- data.tar.gz: fd2209c37ae9f88094037c1b28af3e5d4ee4420e98aff389ac86f724b2a4a4e3
3
+ metadata.gz: 493bd66d0238d2d87765fcdb27511dc4bc15a0cf0546e5c7b42087663c8ec2ab
4
+ data.tar.gz: 704e2c9b02814618551ba57f7e69d0c51037ae79f4066642ef9a96ab0e5a1d67
5
5
  SHA512:
6
- metadata.gz: c7a42d5c97ee0b629eee606061c871e75c67e2499ec18158fc8a52c5e2bef28d73a29b32dd08fae4a982206e7b0409c089401defcdf90a2c16dad3309cd874ba
7
- data.tar.gz: 4bf04e44e0cb319e79c92aaaa65abd328a00f12c6e9667906991d2139e80416cfcf7ba12acf335aeff7f0b5028a04cf8f43da29c2b9219ae4e7307cbb620bd4c
6
+ metadata.gz: 122f415c2d598ef1591cc5e2bdc5615229f407a565b0ea016ec2aef4bf97e58c6b11de84ef5e01f968629dd3a224a40b3f02d1d066e5b12bdd5b032dfe38bda6
7
+ data.tar.gz: bd0573247e1d3fa8898b60ddb5824e5aaf90f3118e72218625e5fcdec302f20cae8ae99b5b4f2ba4448bbce39ab1271c88b552d1981a5255aa713def36c2e87d
@@ -32,8 +32,8 @@ module CoreCardNavItemsHelper
32
32
  def start_job_nav_link(obj, path, title: 'Start', confirm: nil)
33
33
  return unless can?(:view, obj)
34
34
 
35
- confirm ||= "Are you sure you want to restart this #{obj.class_title} job?"
36
- card_nav_item_link(path, title, 'play', btn_class: 'btn-success', confirm: confirm, method: :post)
35
+ confirm ||= "Are you sure you want to start this #{obj.class_title} job?"
36
+ card_nav_item_link(path, title, :play, btn_class: 'btn-success', confirm: confirm, method: :post)
37
37
  end
38
38
 
39
39
  # @abstract Link to restart, replay a given object
@@ -46,7 +46,7 @@ module CoreCardNavItemsHelper
46
46
  return unless can?(:edit, obj)
47
47
 
48
48
  confirm ||= "Are you sure you want to restart this #{obj.class_title}?"
49
- card_nav_item_link(path, title, 'delete-bin', confirm: confirm)
49
+ card_nav_item_link(path, title, :replay, confirm: confirm)
50
50
  end
51
51
 
52
52
  def edit_nav_link(obj, path, title: 'Edit')
@@ -61,13 +61,13 @@ module CoreCardNavItemsHelper
61
61
  return unless can?(:manage, obj)
62
62
 
63
63
  confirm ||= "Are you sure you want to delete this #{obj.class_title}?"
64
- card_nav_item_link(path, title, 'delete-bin', confirm: confirm, method: :delete, btn_class: 'btn-danger')
64
+ card_nav_item_link(path, title, :delete, confirm: confirm, method: :delete, btn_class: 'btn-danger')
65
65
  end
66
66
 
67
67
  # @abstract The work horse for the card nav item
68
68
  # @param [String] path - The path/URL for the action
69
69
  # @param [String] title - The title of the action
70
- # @param [String] icon_name - Name of the icon to render
70
+ # @param [String, Symbol] icon_name - Name of the icon to render
71
71
  # @param [String] confirm - If the action requires confirmation before completing
72
72
  # @param [String|Symbol] method - The HTTP method to use for the link, default is :get
73
73
  # @param [String] btn_class - The class of button that should be used, btn-primary is the default
@@ -80,7 +80,7 @@ module CoreCardNavItemsHelper
80
80
  end
81
81
  content_tag(:li, class: 'nav-item me-2') do
82
82
  link_to path, class: "#{btn_class} btn nav-link active", data: data do
83
- concat(remix_icon(icon_name, classes: ['me-2'], tooltip_text: title))
83
+ concat(svg_icon(icon_name, classes: ['me-2']))
84
84
  concat(content_tag(:span, class: 'd-none d-md-inline') { title })
85
85
  end
86
86
  end
@@ -11,7 +11,7 @@ module CoreDropdownHelper
11
11
  class: 'btn p-0 dropdown-toggle hide-arrow',
12
12
  type: :button,
13
13
  data: { 'bs-toggle': :dropdown }) do
14
- concat(remix_icon('more-2', size: icon_size))
14
+ concat(svg_icon(:more_menu, size: icon_size))
15
15
  end)
16
16
  concat(content_tag(:div, class: 'dropdown-menu') { yield block })
17
17
  end
@@ -26,7 +26,7 @@ module CoreDropdownHelper
26
26
  classes << 'dropdown-item'
27
27
  content_tag(:li) do
28
28
  concat(content_tag(:a, class: classes.join(' '), href: path, data: data) do
29
- concat(menu_remix_icon(icon_name))
29
+ concat(svg_icon(icon_name))
30
30
  concat(action_name)
31
31
  end)
32
32
  end
@@ -35,7 +35,7 @@ module CoreDropdownHelper
35
35
  def demote_dropdown_item(obj, path)
36
36
  return unless can? :edit, obj
37
37
 
38
- dropdown_item(path, 'thumb-down', 'Demote')
38
+ dropdown_item(path, :demote, 'Demote')
39
39
  end
40
40
 
41
41
  def info_dropdown_item(obj, path, name: 'Info')
@@ -59,19 +59,19 @@ module CoreDropdownHelper
59
59
  def current_job_dropdown_item(obj, path)
60
60
  return unless can? :view, obj
61
61
 
62
- dropdown_item(path, 'hourglass-2', 'Current Job')
62
+ dropdown_item(path, :hourglass, 'Current Job')
63
63
  end
64
64
 
65
65
  def edit_dropdown_item(obj, path)
66
66
  return unless can? :edit, obj
67
67
 
68
- dropdown_item(path, 'pencil', 'Edit')
68
+ dropdown_item(path, :edit, 'Edit')
69
69
  end
70
70
 
71
71
  def delete_dropdown_item(obj, path)
72
72
  return unless can? :delete, obj
73
73
 
74
- dropdown_item(path, 'delete-bin', 'Delete', method: :delete, confirm: 'are you sure?')
74
+ dropdown_item(path, :delete, 'Delete', method: :delete, confirm: 'are you sure?')
75
75
  end
76
76
 
77
77
  def cancel_dropdown_item(obj, path, confirm: 'Are you sure?', method: :delete)
@@ -88,12 +88,12 @@ module CoreDropdownHelper
88
88
  def run_dropdown_item(obj, path, method: :get, title: 'Run')
89
89
  return unless can? :read, obj
90
90
 
91
- dropdown_item(path, 'run', title, method: method)
91
+ dropdown_item(path, :run, title, method: method)
92
92
  end
93
93
 
94
94
  def replay_dropdown_item(obj, path, confirm: nil, title: 'Replay')
95
95
  return unless can? :read, obj
96
96
 
97
- dropdown_item(path, 'reset-left', title, confirm: confirm)
97
+ dropdown_item(path, :repeat, title, confirm: confirm)
98
98
  end
99
99
  end
@@ -9,7 +9,7 @@ module CoreFloatingActionButtonHelper
9
9
  def add_fab_button(clazz, path)
10
10
  return unless can?(:create, clazz)
11
11
 
12
- floating_action_button(path, title: "Add #{clazz.to_s.humanize}", icon_name: 'add-circle')
12
+ floating_action_button(path, title: "Add #{clazz.to_s.humanize}", icon_name: :add)
13
13
  end
14
14
 
15
15
  # @abstract Render a creation FAB
@@ -20,7 +20,7 @@ module CoreFloatingActionButtonHelper
20
20
  end
21
21
 
22
22
  # @abstract Render a floating action button
23
- def floating_action_button(path, title: 'Add', icon_name: 'add-circle')
23
+ def floating_action_button(path, title: 'Add', icon_name: :add)
24
24
  content_tag(:div, class: 'btn-fab') do
25
25
  concat(content_tag(:a, class: 'btn btn-primary btn-large rounded-circle', href: path, title: title) do
26
26
  concat(content_tag(:i, class: "ri-#{icon_name}-line ri-36px") {})
@@ -37,13 +37,13 @@ module CoreFloatingActionButtonHelper
37
37
  'data-bs-toggle': :dropdown,
38
38
  haspopup: true,
39
39
  'aria-expanded': false) do
40
- remix_icon('more-2', classes: %w[ri-24px])
40
+ svg_icon(:more_menu, classes: %w[ri-24px])
41
41
  end)
42
42
  concat(content_tag(:ul, class: 'dropdown-menu') { yield block })
43
43
  end
44
44
  end
45
45
 
46
- def delete_floating_action_button(clazz, path, title: 'Delete', icon_name: 'delete-bin', confirm: 'Are you sure you want to delete this item?')
46
+ def delete_floating_action_button(clazz, path, title: 'Delete', icon_name: :delete, confirm: 'Are you sure you want to delete this item?')
47
47
  return unless can?(:destroy, clazz)
48
48
 
49
49
  floating_action_link(path, title, icon_name, confirm: confirm, method: :delete)
@@ -53,18 +53,18 @@ module CoreFloatingActionButtonHelper
53
53
  def add_floating_action_link(clazz, path)
54
54
  return unless can?(:create, clazz)
55
55
 
56
- floating_action_link(path, "New #{clazz.to_s.humanize}", 'add-circle')
56
+ floating_action_link(path, "New #{clazz.to_s.humanize}", :add)
57
57
  end
58
58
 
59
59
  # @abstract Edit floating action, if the user is allowed to edit the object
60
60
  def edit_floating_action_link(clazz, path)
61
61
  return unless can?(:edit, clazz)
62
62
 
63
- floating_action_link(path, 'Edit', 'edit')
63
+ floating_action_link(path, 'Edit', :edit)
64
64
  end
65
65
 
66
66
  # @abstract Edit floating action, if the user is allowed to edit the object
67
- def refresh_floating_action_link(clazz, path, title: 'Refresh', icon_name: 'refresh', confirm: 'Are you sure you want to refresh this item?')
67
+ def refresh_floating_action_link(clazz, path, title: 'Refresh', icon_name: :replay, confirm: 'Are you sure you want to refresh this item?')
68
68
  return unless can?(:edit, clazz)
69
69
 
70
70
  floating_action_link(path, title, icon_name, confirm: confirm)
@@ -74,7 +74,7 @@ module CoreFloatingActionButtonHelper
74
74
  data = { confirm: confirm, turbo_confirm: confirm, title: title, method: method, turbo_method: method }
75
75
  content_tag(:li) do
76
76
  concat(content_tag(:a, class: 'dropdown-item', href: path, data: data) do
77
- concat(menu_remix_icon(icon_name))
77
+ concat(svg_icon(icon_name))
78
78
  concat(content_tag(:span) { title })
79
79
  end)
80
80
  end
@@ -10,29 +10,7 @@ module CoreFormHelper
10
10
  # form.render_form(&block)
11
11
  # end
12
12
 
13
- #
14
- # Text area
15
- #
16
- def form_text_area(model, field, options = {})
17
- classes = options[:classes] || %w[s12]
18
- value = model.send(field)
19
- # options[:value] = value
20
- # options[:disabled] ||= false
21
- # tag_options = {class: []} # text_field_options(model, field, options)
22
- # tag_options[:class] += ['materialize-textarea']
23
- content_tag(:div, class: (%w[input-field col] + classes).join(' ')) do
24
- concat(text_area_tag(model, field, value, options))
25
- concat(form_label_tag(model, field, value, options))
26
- end
27
- end
28
13
 
29
- def text_area_tag(model, field, value, options = {})
30
- tag_options = text_field_options(model, field, options)
31
- tag_options[:class] += ['materialize-textarea']
32
- content_tag(:textarea, tag_options) do
33
- concat(value)
34
- end
35
- end
36
14
 
37
15
  #
38
16
  # Text field
@@ -99,24 +77,24 @@ module CoreFormHelper
99
77
  #
100
78
  # Select field
101
79
  #
102
- def form_select(model, field, options = {})
103
- value = model.send(field)
104
- raise 'Prompt needed' if value.blank? && options[:prompt].blank? && !options[:no_label]
105
-
106
- hint_key = "ui_form.#{model.class.to_s.underscore}.hints.#{field}"
107
- if I18n.exists?(hint_key)
108
- base_classes = %w[input-field col tooltipped]
109
- data = { tooltip: I18n.t(hint_key), position: :top }
110
- else
111
- base_classes = %w[input-field col]
112
- data = {}
113
- end
114
- classes = (base_classes + (options[:classes] || %w[s12 m6 l4 xl3])).join(' ')
115
- content_tag(:div, class: classes, data: data) do
116
- concat(form_select_tag(model, field, options))
117
- concat(form_label_tag(model, field, value, options))
118
- end
119
- end
80
+ # def form_select(model, field, options = {})
81
+ # value = model.send(field)
82
+ # raise 'Prompt needed' if value.blank? && options[:prompt].blank? && !options[:no_label]
83
+ #
84
+ # hint_key = "ui_form.#{model.class.to_s.underscore}.hints.#{field}"
85
+ # if I18n.exists?(hint_key)
86
+ # base_classes = %w[input-field col tooltipped]
87
+ # data = { tooltip: I18n.t(hint_key), position: :top }
88
+ # else
89
+ # base_classes = %w[input-field col]
90
+ # data = {}
91
+ # end
92
+ # classes = (base_classes + (options[:classes] || %w[s12 m6 l4 xl3])).join(' ')
93
+ # content_tag(:div, class: classes, data: data) do
94
+ # concat(form_select_tag(model, field, options))
95
+ # concat(form_label_tag(model, field, value, options))
96
+ # end
97
+ # end
120
98
 
121
99
  #
122
100
  # Create the select tag
@@ -4,18 +4,18 @@ module CoreFormSelectHelper
4
4
  raise 'Prompt needed' if value.blank? && options[:prompt].blank? && !options[:no_label]
5
5
 
6
6
  label_options = options.clone
7
- hint = input_hint(model, field)
8
- if hint.present?
9
- base_classes = %w[tooltipped]
10
- data = { tooltip: I18n.t(hint_key), position: :top }
11
- else
12
- base_classes = []
13
- data = {}
14
- end
15
- classes = (base_classes + (options[:classes] || %w[s12 m6 l4 xl3])).join(' ')
16
- content_tag(:div, class: classes, data: data) do
17
- concat(input_label_tag(model, field, value, options))
18
- concat(form_input_select_tag(model, field, label_options))
7
+ # hint = input_hint(model, field)
8
+ # if hint.present?
9
+ # base_classes = %w[tooltipped]
10
+ # data = { tooltip: I18n.t(hint_key), position: :top }
11
+ # else
12
+ # base_classes = []
13
+ # data = {}
14
+ # end
15
+ classes = (options[:classes] || []).compact.join(' ')
16
+ content_tag(:div, class: classes, data: {}) do
17
+ concat(form_label_tag(model, field, value, options))
18
+ concat(form_select_tag(model, field, label_options))
19
19
  end
20
20
  end
21
21
 
@@ -1,22 +1,26 @@
1
1
  module CoreFormTextareaHelper
2
- def form_textarea(model, field, options = {})
3
- classes = options[:classes] || []
2
+ #
3
+ # Text area
4
+ #
5
+ def form_text_area(model, field, options = {})
6
+ classes = options[:classes] || %w[s12]
4
7
  value = model.send(field)
5
8
  # options[:value] = value
6
9
  # options[:disabled] ||= false
7
10
  # tag_options = {class: []} # text_field_options(model, field, options)
8
11
  # tag_options[:class] += ['materialize-textarea']
9
- content_tag(:div, class: (%w[mb-3] + classes).flatten.join(' ')) do
10
- concat(input_label_tag(model, field, value, options))
11
- concat(textarea_tag(model, field, value, options))
12
+ content_tag(:div, class: (%w[input-field col] + classes).join(' ')) do
13
+ concat(form_label_tag(model, field, value, options))
14
+ concat(text_area_tag(model, field, value, options))
12
15
  end
13
16
  end
17
+ alias_method :form_textarea, :form_text_area
14
18
 
15
- def form_textarea_tag(model, field, value, options = {})
16
- tag_options = text_input_options(model, field, options)
17
- tag_options[:class] << 'form-control'
19
+ def text_area_tag(model, field, value, options = {})
20
+ tag_options = text_field_options(model, field, options)
21
+ tag_options[:class] += ['form-control']
18
22
  content_tag(:textarea, tag_options) do
19
23
  concat(value)
20
24
  end
21
- end
25
+ end
22
26
  end
@@ -4,12 +4,12 @@ module SvgIconHelper
4
4
  # @return [View]
5
5
  def svg_icon(name, size: 24, type: :outline, classes: [], color: 'currentColor', stroke_width: 2)
6
6
  classes = if size <= 24
7
- ['icon', classes].compact.flatten.join(' ')
7
+ ['icon', classes].flatten.compact.join(' ')
8
8
  else
9
9
  classes.compact.flatten.join(' ')
10
10
  end
11
- puts "key: #{key}"
12
- (partial, stroke) = Rails.cache.fetch(key, expires_in: 1.hour) do
11
+ key = "icon_partial_path:#{name}:#{type}"
12
+ (partial, stroke) = Rails.cache.fetch(key, expires_in: SystemConfiguration.long_cache) do
13
13
  path_with_type = "icons/#{name}-#{type}"
14
14
  path_without_type = "icons/#{name}"
15
15
 
@@ -36,7 +36,10 @@ module SvgIconHelper
36
36
  stroke_linejoin: 'round') do
37
37
  render partial
38
38
  end
39
- rescue StandardError
39
+ rescue StandardError => e
40
+ # puts e.message
41
+ # puts e.backtrace
42
+
40
43
  tag.svg(xmlns: "http://www.w3.org/2000/svg",
41
44
  viewBox: "0 0 24 24",
42
45
  width: size,
@@ -14,10 +14,10 @@
14
14
  %tr
15
15
  %td=[server.host_name, server.pid].join(':')
16
16
  %td.align-content-center
17
+ - if server.primary?
18
+ = svg_icon(:primary)
17
19
  - if server.alive?
18
- = remix_icon('heart-2', type: :fill)
19
- - if server.alive?
20
- = remix_icon('router', type: :fill)
20
+ = svg_icon(:alive)
21
21
  %td= current_user.local_time(server.last_check_in_at)
22
22
  %td
23
23
  =dropdown_menu do
@@ -26,7 +26,7 @@
26
26
  %td=tab.wday
27
27
  %td
28
28
  - if tab.valid_environment?
29
- = remix_icon('check', type: :fill)
29
+ = svg_icon('check', type: :fill)
30
30
  %td
31
31
  =dropdown_menu do
32
32
  =edit_dropdown_item(tab, edit_cron_tab_path(tab))
@@ -18,11 +18,11 @@
18
18
  %td=worker.pid
19
19
  %td
20
20
  - if worker.dead?
21
- = remix_icon(:dislike, tooltip_text: 'Dead')
21
+ = svg_icon(:dead)
22
22
  - elsif worker.running?
23
- = remix_icon(:run, tooltip_text: 'Running')
23
+ = svg_icon(:running)
24
24
  - else
25
- = remix_icon(:zzz, tooltip_text: 'Waiting for jobs')
25
+ = svg_icon(:sleeping)
26
26
  %td=current_user.local_time(worker.last_check_in_at)
27
27
  %td=worker.runs.count
28
28
  %td.actions
@@ -5,6 +5,10 @@
5
5
  = refresh_floating_action_link(Delayed::Backend::Mongoid::Job, class_action_path(:resbumit_all, failed_only:true), title: t('.resubmit_failed'), confirm: t('.confirm_resubmit_failed'))
6
6
  = refresh_floating_action_link(Delayed::Backend::Mongoid::Job, class_action_path(:resbumit_all, failed_only:false), title: t('.resubmit_all'), confirm: t('.confirm_resubmit_all'))
7
7
  .card
8
+ .card-header
9
+ .card-title
10
+ %h4=t('.title')
11
+
8
12
  .card-body
9
13
  .table-responsive.text-no-wrap
10
14
  %table.table.card-table.border.table-striped
@@ -0,0 +1 @@
1
+ <path d="M3 6a1 1 0 0 1 .993 .883l.007 .117v6h6v-5a1 1 0 0 1 .883 -.993l.117 -.007h8a3 3 0 0 1 2.995 2.824l.005 .176v8a1 1 0 0 1 -1.993 .117l-.007 -.117v-3h-16v3a1 1 0 0 1 -1.993 .117l-.007 -.117v-11a1 1 0 0 1 1 -1z" /><path d="M7 8a2 2 0 1 1 -1.995 2.15l-.005 -.15l.005 -.15a2 2 0 0 1 1.995 -1.85z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M10 3a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /><path d="M3 14l4 1l.5 -.5" /><path d="M12 18v-3l-3 -2.923l.75 -5.077" /><path d="M6 10v-2l4 -1l2.5 2.5l2.5 .5" /><path d="M21 22a1 1 0 0 0 -1 -1h-16a1 1 0 0 0 -1 1" /><path d="M18 21l1 -11l2 -1" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M14 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z" /><path d="M7 14a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z" /><path d="M21 14a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z" /><path d="M14 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z" /><path d="M12 8v8" /><path d="M6.316 12.496l4.368 -4.992" /><path d="M17.684 12.496l-4.366 -4.99" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 12a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /><path d="M18.364 5.636l-12.728 12.728" />
@@ -0,0 +1 @@
1
+ <path d="M4.929 4.929a10 10 0 1 1 14.141 14.141a10 10 0 0 1 -14.14 -14.14zm8.071 4.071a1 1 0 1 0 -2 0v2h-2a1 1 0 1 0 0 2h2v2a1 1 0 1 0 2 0v-2h2a1 1 0 1 0 0 -2h-2v-2z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0" /><path d="M9 12h6" /><path d="M12 9v6" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 19m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M12 5m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 7h-1a2 2 0 0 0 -2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2 -2v-1" /><path d="M20.385 6.585a2.1 2.1 0 0 0 -2.97 -2.97l-8.415 8.385v3h3l8.385 -8.415z" /><path d="M16 5l3 3" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19.5 13.572l-7.5 7.428l-2.896 -2.868m-6.117 -8.104a5 5 0 0 1 9.013 -3.022a5 5 0 1 1 7.5 6.572" /><path d="M3 13h2l2 3l2 -6l1 3h3" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6.5 7h11" /><path d="M6.5 17h11" /><path d="M6 20v-2a6 6 0 1 1 12 0v2a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1z" /><path d="M6 4v2a6 6 0 1 0 12 0v-2a1 1 0 0 0 -1 -1h-10a1 1 0 0 0 -1 1z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 4v16l13 -8z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19.95 11a8 8 0 1 0 -.5 4m.5 5v-5h-5" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 12v-3a3 3 0 0 1 3 -3h13m-3 -3l3 3l-3 3" /><path d="M20 12v3a3 3 0 0 1 -3 3h-13m3 3l-3 -3l3 -3" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19.95 11a8 8 0 1 0 -.5 4m.5 5v-5h-5" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M13 4m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M4 17l5 1l.75 -1.5" /><path d="M15 21l0 -4l-4 -3l1 -6" /><path d="M7 12l0 -3l5 -1l3 3l3 1" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 4c4.418 0 8 3.358 8 7.5c0 1.901 -.755 3.637 -2 4.96l0 2.54a1 1 0 0 1 -1 1h-10a1 1 0 0 1 -1 -1v-2.54c-1.245 -1.322 -2 -3.058 -2 -4.96c0 -4.142 3.582 -7.5 8 -7.5z" /><path d="M10 17v3" /><path d="M14 17v3" /><path d="M9 11m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" /><path d="M15 11m-1 0a1 1 0 1 0 2 0a1 1 0 1 0 -2 0" />
@@ -0,0 +1 @@
1
+ <path d="M13 21.008a3 3 0 0 0 2.995 -2.823l.005 -.177v-4h2a3 3 0 0 0 2.98 -2.65l.015 -.173l.005 -.177l-.02 -.196l-1.006 -5.032c-.381 -1.625 -1.502 -2.796 -2.81 -2.78l-.164 .008h-8a1 1 0 0 0 -.993 .884l-.007 .116l.001 9.536a1 1 0 0 0 .5 .866a2.998 2.998 0 0 1 1.492 2.396l.007 .202v1a3 3 0 0 0 3 3z" /><path d="M5 14.008a1 1 0 0 0 .993 -.883l.007 -.117v-9a1 1 0 0 0 -.883 -.993l-.117 -.007h-1a2 2 0 0 0 -1.995 1.852l-.005 .15v7a2 2 0 0 0 1.85 1.994l.15 .005h1z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 13v-8a1 1 0 0 0 -1 -1h-2a1 1 0 0 0 -1 1v7a1 1 0 0 0 1 1h3a4 4 0 0 1 4 4v1a2 2 0 0 0 4 0v-5h3a2 2 0 0 0 2 -2l-1 -5a2 3 0 0 0 -2 -2h-7a3 3 0 0 0 -3 3" />
@@ -0,0 +1 @@
1
+ <path d="M13 3a3 3 0 0 1 2.995 2.824l.005 .176v4h2a3 3 0 0 1 2.98 2.65l.015 .174l.005 .176l-.02 .196l-1.006 5.032c-.381 1.626 -1.502 2.796 -2.81 2.78l-.164 -.008h-8a1 1 0 0 1 -.993 -.883l-.007 -.117l.001 -9.536a1 1 0 0 1 .5 -.865a2.998 2.998 0 0 0 1.492 -2.397l.007 -.202v-1a3 3 0 0 1 3 -3z" /><path d="M5 10a1 1 0 0 1 .993 .883l.007 .117v9a1 1 0 0 1 -.883 .993l-.117 .007h-1a2 2 0 0 1 -1.995 -1.85l-.005 -.15v-7a2 2 0 0 1 1.85 -1.995l.15 -.005h1z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M20 6a1 1 0 0 1 .117 1.993l-.117 .007h-.081l-.919 11a3 3 0 0 1 -2.824 2.995l-.176 .005h-8c-1.598 0 -2.904 -1.249 -2.992 -2.75l-.005 -.167l-.923 -11.083h-.08a1 1 0 0 1 -.117 -1.993l.117 -.007h16z" /><path d="M14 2a2 2 0 0 1 2 2a1 1 0 0 1 -1.993 .117l-.007 -.117h-4l-.007 .117a1 1 0 0 1 -1.993 -.117a2 2 0 0 1 1.85 -1.995l.15 -.005h4z" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M4 7l16 0" /><path d="M10 11l0 6" /><path d="M14 11l0 6" /><path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12" /><path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3" />
@@ -0,0 +1 @@
1
+ <path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M10 3a1 1 0 1 0 2 0a1 1 0 0 0 -2 0" /><path d="M3 14l4 1l.5 -.5" /><path d="M12 18v-3l-3 -2.923l.75 -5.077" /><path d="M6 10v-2l4 -1l2.5 2.5l2.5 .5" /><path d="M21 22a1 1 0 0 0 -1 -1h-16a1 1 0 0 0 -1 1" /><path d="M18 21l1 -11l2 -1" />
@@ -46,6 +46,20 @@ en:
46
46
  switchboard_base_url: Base URL
47
47
  switchboard_stack_id: Stack ID
48
48
  switchboard_stack_api_token: API Token
49
+ nav:
50
+ icons:
51
+ dead: skull
52
+ running: treadmill
53
+ sleeping: bed-outline
54
+ alive: heartbeat
55
+ primary: binary-tree-2
56
+ add: circle-plus-outline
57
+ delete: trash-outline
58
+ more_menu: dots-vertical
59
+ replay: rotate
60
+ start: player-play-outline
61
+ demote: thumb-down-outline
62
+ promote: thumb-up-outline
49
63
  system_configurations:
50
64
  show:
51
65
  title: "%{name} System Configuration"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Web47core
4
- VERSION = '3.2.50'
4
+ VERSION = '3.2.51'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: web47core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.50
4
+ version: 3.2.51
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Schroeder
@@ -540,7 +540,6 @@ files:
540
540
  - app/helpers/core_link_helper.rb
541
541
  - app/helpers/core_menu_helper.rb
542
542
  - app/helpers/core_nav_bar_helper.rb
543
- - app/helpers/core_remix_icon_helper.rb
544
543
  - app/helpers/core_select_two_helper.rb
545
544
  - app/helpers/core_sso_servers_helper.rb
546
545
  - app/helpers/core_table_helper.rb
@@ -557,7 +556,30 @@ files:
557
556
  - app/views/delayed_job_workers/index.html.haml
558
557
  - app/views/delayed_jobs/index.html.haml
559
558
  - app/views/delayed_jobs/show.html.haml
559
+ - app/views/icons/_bed-filled.html.erb
560
+ - app/views/icons/_bed-outline.html.erb
561
+ - app/views/icons/_binary-tree-2.html.erb
562
+ - app/views/icons/_cancel.html.erb
560
563
  - app/views/icons/_check.html.erb
564
+ - app/views/icons/_circle-plus-filled.html.erb
565
+ - app/views/icons/_circle-plus-outline.html.erb
566
+ - app/views/icons/_dots-vertical.html.erb
567
+ - app/views/icons/_edit.html.erb
568
+ - app/views/icons/_heartbeat.html.erb
569
+ - app/views/icons/_hourglass.html.erb
570
+ - app/views/icons/_player-play-filled.html.erb
571
+ - app/views/icons/_player-play-outline.html.erb
572
+ - app/views/icons/_repeat.html.erb
573
+ - app/views/icons/_rotate.html.erb
574
+ - app/views/icons/_run.html.erb
575
+ - app/views/icons/_skull.html.erb
576
+ - app/views/icons/_thumb-down-filled.html.erb
577
+ - app/views/icons/_thumb-down-outline.html.erb
578
+ - app/views/icons/_thumb-up-filled.html.erb
579
+ - app/views/icons/_thumb-up-outline.html.erb
580
+ - app/views/icons/_trash-filled.html.erb
581
+ - app/views/icons/_trash-outline.html.erb
582
+ - app/views/icons/_treadmill.html.erb
561
583
  - app/views/status/index.html.haml
562
584
  - app/views/system_configurations/edit.html.haml
563
585
  - app/views/system_configurations/show.html.haml
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- #
4
- # Draw remix icons on the page, includes tooltip mark up
5
- #
6
- module CoreRemixIconHelper
7
- def menu_remix_icon(icon_name, classes: [], type: :line, tooltip_text: nil, tooltip_placement: 'top')
8
- classes += %w[menu-icon]
9
- remix_icon(icon_name, classes: classes, type: type, tooltip_text: tooltip_text, tooltip_placement: tooltip_placement, size: 20)
10
- end
11
-
12
- # Render a material icon tag
13
- def remix_icon(icon_name, classes: [], type: :line, tooltip_text: nil, tooltip_placement: 'top', size: 14)
14
- classes += ['ri', 'icon-base', "ri-#{icon_name}-#{type}", "icon-#{size}px"]
15
- options = { class: classes }
16
- if tooltip_text.present?
17
- options['data-bs-toggle'] = 'tooltip'
18
- options['data-bs-placement'] = tooltip_placement
19
- options['data-bs-title'] = tooltip_text
20
- end
21
- content_tag(:i, options) {}
22
- end
23
- end