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.
- checksums.yaml +4 -4
- data/app/helpers/core_card_nav_items_helper.rb +6 -6
- data/app/helpers/core_dropdown_helper.rb +8 -8
- data/app/helpers/core_floating_action_button_helper.rb +8 -8
- data/app/helpers/core_form_helper.rb +18 -40
- data/app/helpers/core_form_select_helper.rb +12 -12
- data/app/helpers/core_form_textarea_helper.rb +13 -9
- data/app/helpers/svg_icon_helper.rb +7 -4
- data/app/views/cron_servers/index.html.haml +3 -3
- data/app/views/cron_tabs/index.html.haml +1 -1
- data/app/views/delayed_job_workers/index.html.haml +3 -3
- data/app/views/delayed_jobs/index.html.haml +4 -0
- data/app/views/icons/_bed-filled.html.erb +1 -0
- data/app/views/icons/_bed-outline.html.erb +1 -0
- data/app/views/icons/_binary-tree-2.html.erb +1 -0
- data/app/views/icons/_cancel.html.erb +1 -0
- data/app/views/icons/_circle-plus-filled.html.erb +1 -0
- data/app/views/icons/_circle-plus-outline.html.erb +1 -0
- data/app/views/icons/_dots-vertical.html.erb +1 -0
- data/app/views/icons/_edit.html.erb +1 -0
- data/app/views/icons/_heartbeat.html.erb +1 -0
- data/app/views/icons/_hourglass.html.erb +1 -0
- data/app/views/icons/_player-play-filled.html.erb +1 -0
- data/app/views/icons/_player-play-outline.html.erb +1 -0
- data/app/views/icons/_repeat.html.erb +1 -0
- data/app/views/icons/_rotate.html.erb +1 -0
- data/app/views/icons/_run.html.erb +1 -0
- data/app/views/icons/_skull.html.erb +1 -0
- data/app/views/icons/_thumb-down-filled.html.erb +1 -0
- data/app/views/icons/_thumb-down-outline.html.erb +1 -0
- data/app/views/icons/_thumb-up-filled.html.erb +1 -0
- data/app/views/icons/_thumb-up-outline.html.erb +1 -0
- data/app/views/icons/_trash-filled.html.erb +1 -0
- data/app/views/icons/_trash-outline.html.erb +1 -0
- data/app/views/icons/_treadmill.html.erb +1 -0
- data/config/locales/en.yml +14 -0
- data/lib/web47core/version.rb +1 -1
- metadata +24 -2
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 493bd66d0238d2d87765fcdb27511dc4bc15a0cf0546e5c7b42087663c8ec2ab
|
4
|
+
data.tar.gz: 704e2c9b02814618551ba57f7e69d0c51037ae79f4066642ef9a96ab0e5a1d67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
36
|
-
card_nav_item_link(path, title,
|
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,
|
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,
|
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(
|
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(
|
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(
|
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,
|
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,
|
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,
|
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,
|
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,
|
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,
|
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:
|
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:
|
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
|
-
|
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:
|
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}",
|
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',
|
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:
|
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(
|
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
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
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
|
-
|
10
|
-
|
11
|
-
else
|
12
|
-
|
13
|
-
|
14
|
-
end
|
15
|
-
classes = (
|
16
|
-
content_tag(:div, class: classes, data:
|
17
|
-
concat(
|
18
|
-
concat(
|
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
|
-
|
3
|
-
|
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[
|
10
|
-
concat(
|
11
|
-
concat(
|
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
|
16
|
-
tag_options =
|
17
|
-
tag_options[:class]
|
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
|
-
|
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.
|
7
|
+
['icon', classes].flatten.compact.join(' ')
|
8
8
|
else
|
9
9
|
classes.compact.flatten.join(' ')
|
10
10
|
end
|
11
|
-
|
12
|
-
(partial, stroke) = Rails.cache.fetch(key, expires_in:
|
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
|
-
=
|
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
|
@@ -18,11 +18,11 @@
|
|
18
18
|
%td=worker.pid
|
19
19
|
%td
|
20
20
|
- if worker.dead?
|
21
|
-
=
|
21
|
+
= svg_icon(:dead)
|
22
22
|
- elsif worker.running?
|
23
|
-
=
|
23
|
+
= svg_icon(:running)
|
24
24
|
- else
|
25
|
-
=
|
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" />
|
data/config/locales/en.yml
CHANGED
@@ -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"
|
data/lib/web47core/version.rb
CHANGED
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.
|
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
|