marty 2.5.2 → 2.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +4 -0
  3. data/.rubocop.yml +7 -0
  4. data/.rubocop_todo.yml +11 -589
  5. data/Gemfile +9 -9
  6. data/Gemfile.lock +1 -1
  7. data/Rakefile +1 -3
  8. data/app/components/marty/api_auth_view.rb +3 -3
  9. data/app/components/marty/api_config_view.rb +8 -8
  10. data/app/components/marty/api_log_view.rb +16 -20
  11. data/app/components/marty/auth_app.rb +6 -6
  12. data/app/components/marty/base_rule_view.rb +27 -19
  13. data/app/components/marty/config_view.rb +12 -9
  14. data/app/components/marty/data_grid_view.rb +26 -26
  15. data/app/components/marty/delorean_rule_view.rb +0 -1
  16. data/app/components/marty/event_view.rb +27 -27
  17. data/app/components/marty/extras/layout.rb +26 -26
  18. data/app/components/marty/extras/misc.rb +2 -2
  19. data/app/components/marty/grid.rb +13 -13
  20. data/app/components/marty/grid_append_only.rb +0 -1
  21. data/app/components/marty/import_type_view.rb +13 -13
  22. data/app/components/marty/import_view.rb +17 -16
  23. data/app/components/marty/log_view.rb +16 -14
  24. data/app/components/marty/main_auth_app.rb +59 -59
  25. data/app/components/marty/main_auth_app/client/main_auth_app.js +3 -3
  26. data/app/components/marty/mcfly_grid_panel.rb +10 -10
  27. data/app/components/marty/new_posting_form.rb +11 -11
  28. data/app/components/marty/new_posting_window.rb +0 -1
  29. data/app/components/marty/posting_grid.rb +12 -13
  30. data/app/components/marty/promise_view.rb +6 -6
  31. data/app/components/marty/report_form.rb +50 -53
  32. data/app/components/marty/report_select.rb +27 -27
  33. data/app/components/marty/reporting.rb +4 -4
  34. data/app/components/marty/script_form.rb +40 -42
  35. data/app/components/marty/script_grid.rb +24 -24
  36. data/app/components/marty/script_tester.rb +40 -42
  37. data/app/components/marty/scripting.rb +25 -27
  38. data/app/components/marty/simple_app.rb +24 -9
  39. data/app/components/marty/tag_grid.rb +12 -13
  40. data/app/components/marty/user_view.rb +35 -35
  41. data/app/controllers/marty/application_controller.rb +3 -4
  42. data/app/controllers/marty/components_controller.rb +1 -1
  43. data/app/controllers/marty/delayed_job_controller.rb +1 -0
  44. data/app/controllers/marty/diagnostic/controller.rb +4 -6
  45. data/app/controllers/marty/job_controller.rb +6 -6
  46. data/app/controllers/marty/report_controller.rb +11 -11
  47. data/app/controllers/marty/rpc_controller.rb +15 -16
  48. data/app/helpers/marty/script_set.rb +4 -4
  49. data/app/models/marty/api_auth.rb +4 -5
  50. data/app/models/marty/api_config.rb +1 -1
  51. data/app/models/marty/base.rb +9 -8
  52. data/app/models/marty/base_rule.rb +18 -13
  53. data/app/models/marty/config.rb +4 -5
  54. data/app/models/marty/data_grid.rb +157 -181
  55. data/app/models/marty/delorean_rule.rb +63 -62
  56. data/app/models/marty/enum.rb +1 -1
  57. data/app/models/marty/event.rb +56 -59
  58. data/app/models/marty/helper.rb +38 -6
  59. data/app/models/marty/import_type.rb +6 -6
  60. data/app/models/marty/log.rb +3 -2
  61. data/app/models/marty/name_validator.rb +3 -2
  62. data/app/models/marty/pg_enum.rb +3 -4
  63. data/app/models/marty/posting.rb +20 -24
  64. data/app/models/marty/promise.rb +28 -30
  65. data/app/models/marty/script.rb +30 -28
  66. data/app/models/marty/tag.rb +8 -8
  67. data/app/models/marty/token.rb +2 -2
  68. data/app/models/marty/user.rb +24 -23
  69. data/app/models/marty/vw_promise.rb +10 -11
  70. data/config/routes.rb +2 -2
  71. data/delorean/blame_report.dl +268 -0
  72. data/{spec/dummy/delorean/fields.dl → delorean/marty_fields.dl} +8 -0
  73. data/delorean/table_report.dl +34 -0
  74. data/docker-compose.dummy.yml +2 -3
  75. data/lib/marty/aws/base.rb +8 -8
  76. data/lib/marty/aws/request.rb +4 -4
  77. data/lib/marty/cache_adapters/mcfly_ruby_cache.rb +1 -0
  78. data/lib/marty/content_handler.rb +25 -25
  79. data/lib/marty/data_change.rb +49 -71
  80. data/lib/marty/data_conversion.rb +20 -28
  81. data/lib/marty/data_exporter.rb +25 -28
  82. data/lib/marty/data_importer.rb +25 -27
  83. data/lib/marty/engine.rb +1 -2
  84. data/lib/marty/json_schema.rb +22 -24
  85. data/lib/marty/logger.rb +6 -9
  86. data/lib/marty/mcfly_model.rb +20 -24
  87. data/lib/marty/migrations.rb +37 -35
  88. data/lib/marty/monkey.rb +33 -33
  89. data/lib/marty/permissions.rb +18 -18
  90. data/lib/marty/promise_job.rb +17 -17
  91. data/lib/marty/promise_proxy.rb +6 -6
  92. data/lib/marty/relation.rb +6 -7
  93. data/lib/marty/rpc_call.rb +13 -12
  94. data/lib/marty/rule_script_set.rb +32 -28
  95. data/lib/marty/schema_helper.rb +37 -51
  96. data/lib/marty/util.rb +25 -24
  97. data/lib/marty/version.rb +1 -1
  98. data/lib/marty/xl.rb +121 -115
  99. data/make-dummy.mk +3 -0
  100. data/marty.gemspec +21 -21
  101. data/other/marty/api/base.rb +34 -35
  102. data/other/marty/diagnostic/aws/ec2_instance.rb +8 -8
  103. data/other/marty/diagnostic/base.rb +13 -14
  104. data/other/marty/diagnostic/collection.rb +2 -1
  105. data/other/marty/diagnostic/connections.rb +8 -6
  106. data/other/marty/diagnostic/database.rb +1 -0
  107. data/other/marty/diagnostic/delayed_job_version.rb +7 -9
  108. data/other/marty/diagnostic/delayed_job_worker_total_count.rb +1 -1
  109. data/other/marty/diagnostic/delayed_job_workers.rb +1 -1
  110. data/other/marty/diagnostic/environment_variables.rb +17 -15
  111. data/other/marty/diagnostic/fatal.rb +1 -1
  112. data/other/marty/diagnostic/node.rb +5 -9
  113. data/other/marty/diagnostic/nodes.rb +7 -5
  114. data/other/marty/diagnostic/packer.rb +7 -7
  115. data/other/marty/diagnostic/reporter.rb +24 -27
  116. data/other/marty/diagnostic/version.rb +3 -5
  117. data/script/rails +2 -1
  118. data/spec/controllers/application_controller_spec.rb +6 -6
  119. data/spec/controllers/delayed_job_controller_spec.rb +4 -4
  120. data/spec/controllers/diagnostic/controller_spec.rb +59 -60
  121. data/spec/controllers/job_controller_spec.rb +68 -69
  122. data/spec/controllers/rpc_controller_spec.rb +353 -359
  123. data/spec/controllers/rpc_import_spec.rb +15 -16
  124. data/spec/dummy/delorean/blame_report.dl +110 -15
  125. data/spec/dummy/delorean/data_report.dl +4 -4
  126. data/spec/dummy/delorean/marty_fields.dl +63 -0
  127. data/spec/dummy/delorean/table_report.dl +34 -0
  128. data/spec/features/auth_app_spec.rb +1 -2
  129. data/spec/features/data_import_spec.rb +2 -3
  130. data/spec/features/enum_spec.rb +42 -46
  131. data/spec/features/jobs_dashboard_spec.rb +14 -8
  132. data/spec/features/log_view_spec.rb +40 -43
  133. data/spec/features/reporting_spec.rb +15 -15
  134. data/spec/features/rule_spec.rb +195 -190
  135. data/spec/features/scripting_spec.rb +17 -20
  136. data/spec/features/scripting_test_spec.rb +32 -33
  137. data/spec/features/user_view_spec.rb +15 -17
  138. data/spec/job_helper.rb +11 -11
  139. data/spec/lib/data_blame_spec.rb +82 -0
  140. data/spec/lib/data_exporter_spec.rb +31 -32
  141. data/spec/lib/data_importer_spec.rb +382 -395
  142. data/spec/lib/delorean_query_spec.rb +117 -119
  143. data/spec/lib/json_schema_spec.rb +382 -392
  144. data/spec/lib/logger_spec.rb +23 -24
  145. data/spec/lib/mcfly_model_spec.rb +112 -109
  146. data/spec/lib/migrations_spec.rb +10 -10
  147. data/spec/lib/struct_compare_spec.rb +6 -6
  148. data/spec/lib/table_report_spec.rb +90 -0
  149. data/spec/lib/xl_spec.rb +63 -65
  150. data/spec/lib/xl_styles_spec.rb +16 -19
  151. data/spec/models/api_auth_spec.rb +30 -30
  152. data/spec/models/config_spec.rb +32 -32
  153. data/spec/models/data_grid_spec.rb +642 -655
  154. data/spec/models/event_spec.rb +96 -88
  155. data/spec/models/import_type_spec.rb +20 -20
  156. data/spec/models/posting_spec.rb +35 -35
  157. data/spec/models/promise_spec.rb +5 -5
  158. data/spec/models/rule_spec.rb +280 -269
  159. data/spec/models/script_spec.rb +27 -18
  160. data/spec/models/user_spec.rb +9 -9
  161. data/spec/other/diagnostic/base_spec.rb +20 -19
  162. data/spec/other/diagnostic/collection_spec.rb +6 -5
  163. data/spec/other/diagnostic/delayed_job_version_spec.rb +1 -1
  164. data/spec/other/diagnostic/delayed_job_workers_spec.rb +8 -8
  165. data/spec/other/diagnostic/reporter_spec.rb +31 -33
  166. data/spec/spec_helper.rb +5 -5
  167. data/spec/support/chromedriver.rb +3 -5
  168. data/spec/support/components/netzke_combobox.rb +1 -1
  169. data/spec/support/components/netzke_grid.rb +17 -17
  170. data/spec/support/custom_matchers.rb +2 -2
  171. data/spec/support/download_helper.rb +1 -1
  172. data/spec/support/helper.rb +1 -2
  173. data/spec/support/netzke.rb +31 -31
  174. data/spec/support/performance_helper.rb +8 -8
  175. data/spec/support/post_run_logger.rb +1 -2
  176. data/spec/support/setup.rb +1 -4
  177. data/spec/support/shared_connection.rb +2 -2
  178. data/spec/support/structure_compare.rb +21 -22
  179. data/spec/support/suite.rb +1 -2
  180. data/spec/support/users.rb +5 -6
  181. metadata +32 -26
@@ -6,5 +6,4 @@ class Marty::GridAppendOnly < Marty::McflyGridPanel
6
6
  c.editing = :in_form
7
7
  c.permissions[:update] = false
8
8
  end
9
-
10
9
  end
@@ -1,25 +1,25 @@
1
1
  class Marty::ImportTypeView < Marty::Grid
2
2
  has_marty_permissions \
3
- create: :admin,
4
- read: :any,
5
- update: :admin,
6
- delete: :admin
3
+ create: :admin,
4
+ read: :any,
5
+ update: :admin,
6
+ delete: :admin
7
7
 
8
8
  def configure(c)
9
9
  super
10
10
 
11
- c.title = I18n.t('import_type', default: "ImportType")
12
- c.model = "Marty::ImportType"
11
+ c.title = I18n.t('import_type', default: 'ImportType')
12
+ c.model = 'Marty::ImportType'
13
13
  c.attributes =
14
14
  [
15
- :name,
16
- :role__name,
17
- :db_model_name,
18
- :cleaner_function,
19
- :validation_function,
20
- :preprocess_function,
15
+ :name,
16
+ :role__name,
17
+ :db_model_name,
18
+ :cleaner_function,
19
+ :validation_function,
20
+ :preprocess_function,
21
21
  ]
22
- c.store_config.merge!({sorters: [{property: :name, direction: 'ASC'}]})
22
+ c.store_config.merge!(sorters: [{ property: :name, direction: 'ASC' }])
23
23
  end
24
24
 
25
25
  attribute :name do |c|
@@ -2,13 +2,15 @@ class Marty::ImportView < Marty::Form
2
2
  include Marty::Extras::Layout
3
3
 
4
4
  action :apply do |a|
5
- a.text = I18n.t("data_import_view.import")
6
- a.tooltip = I18n.t("data_import_view.import")
5
+ a.text = I18n.t('data_import_view.import')
6
+ a.tooltip = I18n.t('data_import_view.import')
7
7
  a.icon_cls = 'fa fa-database glyph'
8
8
  end
9
9
 
10
10
  def parent_model; end
11
+
11
12
  def import_model; end
13
+
12
14
  def model_view; end
13
15
 
14
16
  def initialize args, kwargs
@@ -26,7 +28,7 @@ class Marty::ImportView < Marty::Form
26
28
  ######################################################################
27
29
 
28
30
  def validate
29
- return client.netzke_notify("Must provide import data.") if
31
+ return client.netzke_notify('Must provide import data.') if
30
32
  @import_data.empty?
31
33
  end
32
34
 
@@ -58,16 +60,16 @@ class Marty::ImportView < Marty::Form
58
60
  end
59
61
 
60
62
  endpoint :submit do |params|
61
- return client.netzke_notify "No Model View defined" unless @model_view
63
+ return client.netzke_notify 'No Model View defined' unless @model_view
62
64
 
63
- return client.netzke_notify "Permission denied" unless
65
+ return client.netzke_notify 'Permission denied' unless
64
66
  @model_view.can_perform_action?(:update)
65
67
 
66
68
  return client.netzke_notify "Can't import when time-warped" if
67
69
  Marty::Util.warped?
68
70
 
69
71
  @data = ActiveSupport::JSON.decode(params[:data])
70
- @import_data = @data["import_data"] || ""
72
+ @import_data = @data['import_data'] || ''
71
73
  @record = @parent_model.try(:find_by_id, client_config['parent_id'])
72
74
 
73
75
  validate and return
@@ -76,21 +78,20 @@ class Marty::ImportView < Marty::Form
76
78
  begin
77
79
  processed = process_import_data
78
80
  res = import(processed)
79
- result = res.map{|k,v| format_message(k,v)}
81
+ result = res.map { |k, v| format_message(k, v) }
80
82
 
81
83
  messages = post_import
82
84
  result << messages if messages
83
85
 
84
- client.set_result result.join("<br/>")
85
-
86
+ client.set_result result.join('<br/>')
86
87
  rescue Marty::DataImporter::Error => exc
87
88
  result = [
88
- "Import failed on line(s): #{exc.lines.join(', ')}",
89
- "Error: #{exc.to_s}",
90
- ]
89
+ "Import failed on line(s): #{exc.lines.join(', ')}",
90
+ "Error: #{exc.to_s}",
91
+ ]
91
92
 
92
- client.set_result '<font color="red">' + result.join("<br/>") + "</font>"
93
- rescue => e
93
+ client.set_result '<font color="red">' + result.join('<br/>') + '</font>'
94
+ rescue StandardError => e
94
95
  client.set_result e.message
95
96
  end
96
97
  end
@@ -111,8 +112,8 @@ class Marty::ImportView < Marty::Form
111
112
 
112
113
  component :result do |c|
113
114
  c.klass = Marty::Panel
114
- c.title = I18n.t("data_import_view.results")
115
- c.html = ""
115
+ c.title = I18n.t('data_import_view.results')
116
+ c.html = ''
116
117
  c.flex = 1
117
118
  c.min_height = 150
118
119
  c.scrollable = true
@@ -6,8 +6,8 @@ class Marty::LogView < Marty::Grid
6
6
  def configure(c)
7
7
  super
8
8
 
9
- c.title ||= I18n.t('log_viewer', default: "Log Viewer")
10
- c.model = "Marty::Log"
9
+ c.title ||= I18n.t('log_viewer', default: 'Log Viewer')
10
+ c.model = 'Marty::Log'
11
11
  c.paging = :pagination
12
12
  c.editing = :in_form
13
13
  c.attributes = [
@@ -17,7 +17,7 @@ class Marty::LogView < Marty::Grid
17
17
  :details
18
18
  ]
19
19
 
20
- c.store_config.merge!(sorters: [{property: :timestamp, direction: 'DESC'}])
20
+ c.store_config.merge!(sorters: [{ property: :timestamp, direction: 'DESC' }])
21
21
  end
22
22
 
23
23
  def default_context_menu
@@ -29,7 +29,7 @@ class Marty::LogView < Marty::Grid
29
29
  :timestamp_custom,
30
30
  :message_type,
31
31
  :message,
32
- textarea_field(:details).merge!({height: 400})
32
+ textarea_field(:details).merge!(height: 400)
33
33
  ]
34
34
  end
35
35
 
@@ -39,13 +39,13 @@ class Marty::LogView < Marty::Grid
39
39
  end
40
40
 
41
41
  attribute :message_type do |c|
42
- c.text = I18n.t("log_grid.message_type")
42
+ c.text = I18n.t('log_grid.message_type')
43
43
  c.width = 100
44
44
  c.read_only = true
45
45
  end
46
46
 
47
47
  attribute :message do |c|
48
- c.text = I18n.t("log_grid.message")
48
+ c.text = I18n.t('log_grid.message')
49
49
  c.width = 400
50
50
  c.read_only = true
51
51
  end
@@ -54,7 +54,7 @@ class Marty::LogView < Marty::Grid
54
54
  # UI does not interact well with AR/PG and doesn't display fractional s
55
55
  # This work around requires explicit sorting/filtering
56
56
  attribute :timestamp_custom do |c|
57
- c.text = I18n.t("log_grid.timestamp")
57
+ c.text = I18n.t('log_grid.timestamp')
58
58
  c.width = 200
59
59
  c.read_only = true
60
60
  c.filterable = true
@@ -64,26 +64,28 @@ class Marty::LogView < Marty::Grid
64
64
  xtype: :displayfield,
65
65
  }
66
66
  c.getter = lambda { |r| Time.at(r.timestamp) }
67
- c.sorting_scope = lambda {|r, dir| r.order("timestamp " + dir.to_s)}
67
+ c.sorting_scope = lambda { |r, dir| r.order('timestamp ' + dir.to_s) }
68
68
 
69
69
  # FIXME?: The UI AR/PG DateTime workaround requires the timestamp to be cast
70
70
  # to text in order to compare filter input using the LIKE operator.
71
71
  # Otherwise it will fail. '<' and '>' functionality is missing.
72
- c.filter_with = lambda {|r, v, op|
73
- r.where("timestamp::text #{op} '#{v}%'")}
72
+ c.filter_with = lambda { |r, v, op|
73
+ r.where("timestamp::text #{op} '#{v}%'")
74
+ }
74
75
  end
75
76
 
76
77
  column :details do |c|
77
78
  c.getter = lambda { |r| CGI.escapeHTML(r.details.pretty_inspect) }
78
- c.filter_with = lambda {|r, v, op|
79
- r.where("details::text #{op} '%#{v}%'")}
79
+ c.filter_with = lambda { |r, v, op|
80
+ r.where("details::text #{op} '%#{v}%'")
81
+ }
80
82
  end
81
83
 
82
84
  attribute :details do |c|
83
- c.text = I18n.t("log_grid.details")
85
+ c.text = I18n.t('log_grid.details')
84
86
  c.width = 900
85
87
  c.read_only = true
86
- c.getter = lambda { |r| r.details.pretty_inspect}
88
+ c.getter = lambda { |r| r.details.pretty_inspect }
87
89
  end
88
90
  end
89
91
 
@@ -26,16 +26,16 @@ class Marty::MainAuthApp < Marty::AuthApp
26
26
  end
27
27
 
28
28
  def self.has_scripting_perm?
29
- self.has_admin_perm?
29
+ has_admin_perm?
30
30
  end
31
31
 
32
32
  def posting_menu
33
33
  {
34
- text: warped ? "#{Marty::Util.get_posting.name}" : I18n.t("postings"),
35
- name: "posting",
36
- tooltip: "Postings",
37
- icon_cls: "fa fa-clock glyph",
38
- style: (warped ? "background-color: lightGrey;" : ""),
34
+ text: warped ? Marty::Util.get_posting.name.to_s : I18n.t('postings'),
35
+ name: 'posting',
36
+ tooltip: 'Postings',
37
+ icon_cls: 'fa fa-clock glyph',
38
+ style: (warped ? 'background-color: lightGrey;' : ''),
39
39
  menu: [
40
40
  :new_posting,
41
41
  :select_posting,
@@ -48,7 +48,7 @@ class Marty::MainAuthApp < Marty::AuthApp
48
48
  [
49
49
  {
50
50
  text: 'Log Maintenance',
51
- icon_cls: "fa fa-wrench glyph",
51
+ icon_cls: 'fa fa-wrench glyph',
52
52
  disabled: !self.class.has_admin_perm?,
53
53
  menu: [
54
54
  :log_view,
@@ -62,7 +62,7 @@ class Marty::MainAuthApp < Marty::AuthApp
62
62
  [
63
63
  {
64
64
  text: 'API Management',
65
- icon_cls: "fa fa-fighter-jet glyph",
65
+ icon_cls: 'fa fa-fighter-jet glyph',
66
66
  disabled: !self.class.has_admin_perm?,
67
67
  menu: [
68
68
  :api_auth_view,
@@ -75,9 +75,9 @@ class Marty::MainAuthApp < Marty::AuthApp
75
75
 
76
76
  def system_menu
77
77
  {
78
- text: I18n.t("system"),
79
- icon_cls: "fa fa-wrench glyph",
80
- style: "",
78
+ text: I18n.t('system'),
79
+ icon_cls: 'fa fa-wrench glyph',
80
+ style: '',
81
81
  menu: [
82
82
  :import_type_view,
83
83
  :user_view,
@@ -91,8 +91,8 @@ class Marty::MainAuthApp < Marty::AuthApp
91
91
 
92
92
  def applications_menu
93
93
  {
94
- text: I18n.t("applications"),
95
- icon_cls: "fa fa-window-restore glyph",
94
+ text: I18n.t('applications'),
95
+ icon_cls: 'fa fa-window-restore glyph',
96
96
  menu: [
97
97
  :data_grid_view,
98
98
  :reporting,
@@ -106,7 +106,7 @@ class Marty::MainAuthApp < Marty::AuthApp
106
106
  [
107
107
  {
108
108
  text: 'Background Jobs',
109
- icon_cls: "fa fa-user-clock glyph",
109
+ icon_cls: 'fa fa-user-clock glyph',
110
110
  disabled: !self.class.has_admin_perm?,
111
111
  menu: [
112
112
  :bg_status,
@@ -153,60 +153,60 @@ class Marty::MainAuthApp < Marty::AuthApp
153
153
  self.class.has_user_manager_perm? ? [system_menu, sep] : []) +
154
154
  data_menus +
155
155
  [
156
- applications_menu, sep,
157
- posting_menu, sep,
156
+ applications_menu, sep,
157
+ posting_menu, sep,
158
158
  ] + super
159
159
  end
160
160
 
161
161
  ######################################################################
162
162
 
163
163
  action :import_type_view do |a|
164
- a.text = I18n.t("import_type")
164
+ a.text = I18n.t('import_type')
165
165
  a.handler = :netzke_load_component_by_action
166
166
  a.disabled = !self.class.has_admin_perm?
167
- a.icon_cls = "fa fa-file-import glyph"
167
+ a.icon_cls = 'fa fa-file-import glyph'
168
168
  end
169
169
 
170
170
  action :scripting do |a|
171
- a.text = I18n.t("scripting")
171
+ a.text = I18n.t('scripting')
172
172
  a.handler = :netzke_load_component_by_action
173
- a.icon_cls = "fa fa-code glyph"
173
+ a.icon_cls = 'fa fa-code glyph'
174
174
  a.disabled = !self.class.has_any_perm?
175
175
  end
176
176
 
177
177
  action :reporting do |a|
178
- a.text = I18n.t("reports")
178
+ a.text = I18n.t('reports')
179
179
  a.handler = :netzke_load_component_by_action
180
- a.icon_cls = "fa fa-file-alt glyph"
180
+ a.icon_cls = 'fa fa-file-alt glyph'
181
181
  a.disabled = !self.class.has_any_perm?
182
182
  end
183
183
 
184
184
  action :promise_view do |a|
185
- a.text = I18n.t("jobs.promise_view")
185
+ a.text = I18n.t('jobs.promise_view')
186
186
  a.handler = :netzke_load_component_by_action
187
- a.icon_cls = "fa fa-search glyph"
187
+ a.icon_cls = 'fa fa-search glyph'
188
188
  a.disabled = !self.class.has_any_perm?
189
189
  end
190
190
 
191
191
  action :user_view do |a|
192
- a.text = I18n.t("user_view")
192
+ a.text = I18n.t('user_view')
193
193
  a.handler = :netzke_load_component_by_action
194
- a.icon_cls = "fa fa-users glyph"
194
+ a.icon_cls = 'fa fa-users glyph'
195
195
  a.disabled = !self.class.has_admin_perm? &&
196
196
  !self.class.has_user_manager_perm?
197
197
  end
198
198
 
199
199
  action :event_view do |a|
200
- a.text = I18n.t("event_view")
200
+ a.text = I18n.t('event_view')
201
201
  a.handler = :netzke_load_component_by_action
202
- a.icon_cls = "fa fa-bolt glyph"
202
+ a.icon_cls = 'fa fa-bolt glyph'
203
203
  a.disabled = !self.class.has_admin_perm?
204
204
  end
205
205
 
206
206
  action :config_view do |a|
207
- a.text = I18n.t("config_view")
207
+ a.text = I18n.t('config_view')
208
208
  a.handler = :netzke_load_component_by_action
209
- a.icon_cls = "fa fa-cog glyph"
209
+ a.icon_cls = 'fa fa-cog glyph'
210
210
  a.disabled = !self.class.has_admin_perm? &&
211
211
  !self.class.has_user_manager_perm?
212
212
  end
@@ -214,15 +214,15 @@ class Marty::MainAuthApp < Marty::AuthApp
214
214
  action :api_auth_view do |a|
215
215
  a.text = 'API Auth Management'
216
216
  a.handler = :netzke_load_component_by_action
217
- a.icon_cls = "fa fa-key glyph"
218
- a.disabled = !self.class.has_admin_perm?
217
+ a.icon_cls = 'fa fa-key glyph'
218
+ a.disabled = !self.class.has_admin_perm?
219
219
  end
220
220
 
221
221
  action :api_config_view do |a|
222
222
  a.text = 'API Config Management'
223
223
  a.tooltip = 'Manage API behavior and settings'
224
224
  a.handler = :netzke_load_component_by_action
225
- a.icon_cls = "fa fa-sliders-h glyph"
225
+ a.icon_cls = 'fa fa-sliders-h glyph'
226
226
  a.disabled = !self.class.has_admin_perm?
227
227
  end
228
228
 
@@ -230,49 +230,49 @@ class Marty::MainAuthApp < Marty::AuthApp
230
230
  a.text = 'API Log View'
231
231
  a.tooltip = 'View API logs'
232
232
  a.handler = :netzke_load_component_by_action
233
- a.icon_cls = "fa fa-pencil-alt glyph"
233
+ a.icon_cls = 'fa fa-pencil-alt glyph'
234
234
  a.disabled = !self.class.has_admin_perm?
235
235
  end
236
236
 
237
237
  action :data_grid_view do |a|
238
- a.text = I18n.t("data_grid_view", default: "Data Grids")
238
+ a.text = I18n.t('data_grid_view', default: 'Data Grids')
239
239
  a.handler = :netzke_load_component_by_action
240
- a.icon_cls = "fa fa-table glyph"
241
- a.disabled = !self.class.has_any_perm?
240
+ a.icon_cls = 'fa fa-table glyph'
241
+ a.disabled = !self.class.has_any_perm?
242
242
  end
243
243
 
244
244
  action :reload_scripts do |a|
245
245
  a.text = 'Reload Scripts'
246
246
  a.tooltip = 'Reload and tag Delorean scripts'
247
- a.icon_cls = "fa fa-sync-alt glyph"
247
+ a.icon_cls = 'fa fa-sync-alt glyph'
248
248
  a.disabled = !self.class.has_admin_perm?
249
249
  end
250
250
 
251
251
  action :load_seed do |a|
252
252
  a.text = 'Load Seeds'
253
253
  a.tooltip = 'Load Seeds'
254
- a.icon_cls = "fa fa-retweet glyph"
254
+ a.icon_cls = 'fa fa-retweet glyph'
255
255
  a.disabled = !self.class.has_admin_perm?
256
256
  end
257
257
 
258
258
  action :bg_status do |a|
259
259
  a.text = 'Show Delayed Jobs Status'
260
260
  a.tooltip = 'Run delayed_job status script'
261
- a.icon_cls = "fa fa-desktop glyph"
261
+ a.icon_cls = 'fa fa-desktop glyph'
262
262
  a.disabled = !self.class.has_admin_perm?
263
263
  end
264
264
 
265
265
  action :bg_stop do |a|
266
266
  a.text = 'Stop Delayed Jobs'
267
267
  a.tooltip = 'Run delayed_job stop script'
268
- a.icon_cls = "fa fa-skull glyph"
268
+ a.icon_cls = 'fa fa-skull glyph'
269
269
  a.disabled = !self.class.has_admin_perm?
270
270
  end
271
271
 
272
272
  action :bg_restart do |a|
273
273
  a.text = 'Restart Delayed Jobs'
274
274
  a.tooltip = 'Run delayed_job restart script using DELAYED_JOB_PARAMS'
275
- a.icon_cls = "fa fa-power-off glyph"
275
+ a.icon_cls = 'fa fa-power-off glyph'
276
276
  a.disabled = !self.class.has_admin_perm?
277
277
  end
278
278
 
@@ -280,22 +280,22 @@ class Marty::MainAuthApp < Marty::AuthApp
280
280
  a.text = 'View Log'
281
281
  a.tooltip = 'View Log'
282
282
  a.handler = :netzke_load_component_by_action
283
- a.icon_cls = "fa fa-cog glyph"
283
+ a.icon_cls = 'fa fa-cog glyph'
284
284
  a.disabled = !self.class.has_admin_perm?
285
285
  end
286
286
 
287
287
  action :log_cleanup do |a|
288
288
  a.text = 'Cleanup Log Table'
289
289
  a.tooltip = 'Delete old log records'
290
- a.icon_cls = "fa fa-cog glyph"
290
+ a.icon_cls = 'fa fa-cog glyph'
291
291
  a.disabled = !self.class.has_admin_perm?
292
292
  end
293
293
 
294
294
  ######################################################################
295
295
 
296
296
  def bg_command(param)
297
- e, root, p = ENV['RAILS_ENV'], Rails.root, Marty::Config["RUBY_PATH"]
298
- dj_path = Marty::Config["DELAYED_JOB_PATH"] || 'bin/delayed_job'
297
+ e, root, p = ENV['RAILS_ENV'], Rails.root, Marty::Config['RUBY_PATH']
298
+ dj_path = Marty::Config['DELAYED_JOB_PATH'] || 'bin/delayed_job'
299
299
  cmd = "export RAILS_ENV=#{e};"
300
300
  # FIXME: Environment looks to be setup incorrectly - this is a hack
301
301
  cmd += "export PATH=#{p}:$PATH;" if p
@@ -307,29 +307,29 @@ class Marty::MainAuthApp < Marty::AuthApp
307
307
  endpoint :bg_status do |params|
308
308
  cmd = bg_command('status')
309
309
  res = `#{cmd}`
310
- client.show_detail res.html_safe.gsub("\n","<br/>"), 'Delayed Job Status'
310
+ client.show_detail res.html_safe.gsub("\n", '<br/>'), 'Delayed Job Status'
311
311
  end
312
312
 
313
313
  endpoint :bg_stop do |params|
314
- cmd = bg_command("stop")
314
+ cmd = bg_command('stop')
315
315
  res = `#{cmd}`
316
- res = "delayed_job: no instances running. Nothing to stop." if res.length==0
317
- client.show_detail res.html_safe.gsub("\n","<br/>"), 'Delayed Job Stop'
316
+ res = 'delayed_job: no instances running. Nothing to stop.' if res.empty?
317
+ client.show_detail res.html_safe.gsub("\n", '<br/>'), 'Delayed Job Stop'
318
318
  end
319
319
 
320
320
  endpoint :bg_restart do |params|
321
- params = Marty::Config["DELAYED_JOB_PARAMS"] || ""
321
+ params = Marty::Config['DELAYED_JOB_PARAMS'] || ''
322
322
  cmd = bg_command("restart #{params}")
323
323
  res = `#{cmd}`
324
- client.show_detail res.html_safe.gsub("\n","<br/>"), 'Delayed Job Restart'
324
+ client.show_detail res.html_safe.gsub("\n", '<br/>'), 'Delayed Job Restart'
325
325
  end
326
326
 
327
327
  endpoint :log_cleanup do |params|
328
328
  begin
329
329
  Marty::Log.cleanup(params)
330
- rescue => e
330
+ rescue StandardError => e
331
331
  res = e.message
332
- client.show_detail res.html_safe.gsub("\n","<br/>"), 'Log Cleanup'
332
+ client.show_detail res.html_safe.gsub("\n", '<br/>'), 'Log Cleanup'
333
333
  end
334
334
  end
335
335
 
@@ -339,14 +339,14 @@ class Marty::MainAuthApp < Marty::AuthApp
339
339
  action :new_posting do |a|
340
340
  a.text = I18n.t('new_posting')
341
341
  a.tooltip = I18n.t('new_posting')
342
- a.icon_cls = "fa fa-plus glyph"
342
+ a.icon_cls = 'fa fa-plus glyph'
343
343
  a.disabled = Marty::Util.warped? || !self.class.has_posting_perm?
344
344
  end
345
345
 
346
346
  action :select_posting do |a|
347
347
  a.text = I18n.t('select_posting')
348
348
  a.tooltip = I18n.t('select_posting')
349
- a.icon_cls = "fa fa-history glyph"
349
+ a.icon_cls = 'fa fa-history glyph'
350
350
  end
351
351
 
352
352
  endpoint :select_posting do |params|
@@ -359,9 +359,9 @@ class Marty::MainAuthApp < Marty::AuthApp
359
359
  end
360
360
 
361
361
  action :select_now do |a|
362
- a.text = I18n.t('go_to_now')
363
- a.icon_cls = "fa fa-globe glyph"
364
- a.disabled = Marty::Util.get_posting_time == Float::INFINITY
362
+ a.text = I18n.t('go_to_now')
363
+ a.icon_cls = 'fa fa-globe glyph'
364
+ a.disabled = Marty::Util.get_posting_time == Float::INFINITY
365
365
  end
366
366
 
367
367
  ######################################################################