rocketjob_mission_control 3.0.3 → 3.1.0
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 +5 -5
- data/README.md +4 -0
- data/app/assets/fonts/webfonts/fa-brands-400.eot +0 -0
- data/app/assets/fonts/webfonts/fa-brands-400.woff +0 -0
- data/app/assets/fonts/webfonts/fa-brands-400.woff2 +0 -0
- data/app/assets/fonts/webfonts/fa-regular-400.eot +0 -0
- data/app/assets/fonts/webfonts/fa-regular-400.woff +0 -0
- data/app/assets/fonts/webfonts/fa-regular-400.woff2 +0 -0
- data/app/assets/fonts/webfonts/fa-solid-900.eot +0 -0
- data/app/assets/fonts/webfonts/fa-solid-900.woff +0 -0
- data/app/assets/fonts/webfonts/fa-solid-900.woff2 +0 -0
- data/app/assets/images/rocket_job_mission_control/android-chrome-192x192.png +0 -0
- data/app/assets/images/rocket_job_mission_control/android-chrome-512x512.png +0 -0
- data/app/assets/images/rocket_job_mission_control/apple-touch-icon.png +0 -0
- data/app/assets/images/rocket_job_mission_control/favicon-16x16.png +0 -0
- data/app/assets/images/rocket_job_mission_control/favicon-32x32.png +0 -0
- data/app/assets/images/rocket_job_mission_control/favicon.ico +0 -0
- data/app/assets/images/rocket_job_mission_control/favicon.png +0 -0
- data/app/assets/images/rocket_job_mission_control/mstile-150x150.png +0 -0
- data/app/assets/images/rocket_job_mission_control/safari-pinned-tab.svg +188 -0
- data/app/assets/javascripts/rocket_job_mission_control/datatable.js +2 -1
- data/app/assets/stylesheets/rocket_job_mission_control/application.scss +5 -4
- data/app/assets/stylesheets/rocket_job_mission_control/base.scss +39 -65
- data/app/assets/stylesheets/rocket_job_mission_control/callout.scss +14 -2
- data/app/datatables/rocket_job_mission_control/active_workers_datatable.rb +1 -1
- data/app/datatables/rocket_job_mission_control/dirmon_entries_datatable.rb +1 -1
- data/app/datatables/rocket_job_mission_control/jobs_datatable.rb +21 -16
- data/app/datatables/rocket_job_mission_control/servers_datatable.rb +1 -1
- data/app/helpers/rocket_job_mission_control/application_helper.rb +18 -16
- data/app/helpers/rocket_job_mission_control/jobs_helper.rb +11 -6
- data/app/views/layouts/rocket_job_mission_control/application.html.erb +30 -28
- data/app/views/layouts/rocket_job_mission_control/partials/_flash.html.erb +5 -4
- data/app/views/layouts/rocket_job_mission_control/partials/_header.html.erb +23 -19
- data/app/views/layouts/rocket_job_mission_control/partials/_sidebar.html.erb +5 -4
- data/app/views/rocket_job_mission_control/active_workers/index.html.erb +13 -8
- data/app/views/rocket_job_mission_control/dirmon_entries/_form.html.erb +31 -21
- data/app/views/rocket_job_mission_control/dirmon_entries/_sidebar.html.erb +12 -9
- data/app/views/rocket_job_mission_control/dirmon_entries/_status.html.erb +5 -2
- data/app/views/rocket_job_mission_control/dirmon_entries/edit.html.erb +4 -3
- data/app/views/rocket_job_mission_control/dirmon_entries/index.html.erb +16 -14
- data/app/views/rocket_job_mission_control/dirmon_entries/new.html.erb +5 -4
- data/app/views/rocket_job_mission_control/dirmon_entries/show.html.erb +19 -14
- data/app/views/rocket_job_mission_control/jobs/_pagination.html.erb +9 -5
- data/app/views/rocket_job_mission_control/jobs/_sidebar.html.erb +9 -8
- data/app/views/rocket_job_mission_control/jobs/_status.html.erb +18 -10
- data/app/views/rocket_job_mission_control/jobs/edit.html.erb +22 -15
- data/app/views/rocket_job_mission_control/jobs/exception.html.erb +14 -10
- data/app/views/rocket_job_mission_control/jobs/exceptions.html.erb +27 -25
- data/app/views/rocket_job_mission_control/jobs/index.html.erb +16 -13
- data/app/views/rocket_job_mission_control/jobs/show.html.erb +25 -20
- data/app/views/rocket_job_mission_control/servers/_sidebar.html.erb +8 -6
- data/app/views/rocket_job_mission_control/servers/index.html.erb +18 -14
- data/config/initializers/assets.rb +13 -0
- data/lib/rocket_job_mission_control/version.rb +1 -1
- data/test/controllers/rocket_job_mission_control/dirmon_entries_controller_test.rb +4 -6
- data/test/controllers/rocket_job_mission_control/jobs_controller_test.rb +18 -15
- data/test/helpers/rocket_job_mission_control/jobs_helper_test.rb +12 -6
- data/test/helpers/rocket_job_mission_control/servers_helper_test.rb +3 -4
- data/vendor/assets/stylesheets/fontawesome-all.min.css +5 -0
- data/vendor/assets/stylesheets/{selectize.default.css → selectize.bootstrap3.css} +134 -113
- metadata +39 -13
@@ -1,59 +1,69 @@
|
|
1
1
|
<% action ||= :create %>
|
2
|
+
|
2
3
|
<% if @dirmon_entry.errors.present? %>
|
3
|
-
<div class=
|
4
|
+
<div class='alert alert-alert'>Invalid Dirmon entry!</div>
|
4
5
|
<% @dirmon_entry.errors.messages.each_pair do |field, message| %>
|
5
|
-
<div class=
|
6
|
+
<div class='message'><%= field %>: <%= message %></div>
|
6
7
|
<% end %>
|
7
8
|
<% end %>
|
9
|
+
|
8
10
|
<%= form_for @dirmon_entry, url: {action: action} do |f| %>
|
9
|
-
<div class=
|
10
|
-
<div class=
|
11
|
-
<div class=
|
11
|
+
<div class='row'>
|
12
|
+
<div class='col-md-6'>
|
13
|
+
<div class='name form-group'>
|
12
14
|
<%= f.label :name %>
|
13
15
|
<%= f.text_field :name, class: 'form-control' %>
|
14
16
|
</div>
|
15
17
|
</div>
|
16
|
-
|
17
|
-
|
18
|
+
|
19
|
+
<div class='col-md-6'>
|
20
|
+
<div class='job form-group'>
|
18
21
|
<%= f.label :job_class_name %>
|
19
22
|
<%= f.text_field :job_class_name, class: 'form-control', disabled: action != :create %>
|
20
23
|
</div>
|
21
24
|
</div>
|
22
25
|
</div>
|
23
|
-
|
26
|
+
|
27
|
+
<div class='path form-group'>
|
24
28
|
<%= f.label :pattern %>
|
25
29
|
<%= f.text_field :pattern, class: 'form-control' %>
|
26
30
|
</div>
|
27
|
-
|
31
|
+
|
32
|
+
<div class='path form-group'>
|
28
33
|
<%= f.label :archive_directory %>
|
29
34
|
<%= f.text_field :archive_directory, class: 'form-control' %>
|
30
35
|
</div>
|
31
|
-
|
32
|
-
|
36
|
+
|
37
|
+
<div class='row'>
|
38
|
+
<div class='col-md-12'>
|
33
39
|
<% if @dirmon_entry.job_class %>
|
34
|
-
<div class=
|
35
|
-
|
36
|
-
|
37
|
-
<div class=
|
38
|
-
|
39
|
-
|
40
|
+
<div class='lead'>Job Properties</div>
|
41
|
+
|
42
|
+
<div class='arguments'>
|
43
|
+
<div class='job_arguments form-group'></div>
|
44
|
+
|
45
|
+
<%= f.fields_for :properties do |properties| %>
|
46
|
+
<% @dirmon_entry.job_class.user_editable_fields.each do |property_name| %>
|
47
|
+
<div class='form-group'>
|
40
48
|
<%= properties.label property_name.to_s %>
|
41
49
|
<%= editable_field_html(@dirmon_entry.job_class, property_name, @dirmon_entry.properties[property_name], properties, true) %>
|
42
|
-
|
50
|
+
</div>
|
43
51
|
<% end %>
|
44
|
-
|
52
|
+
<% end %>
|
45
53
|
</div>
|
46
54
|
<% end %>
|
47
|
-
|
55
|
+
|
56
|
+
<div class='buttons pull-right'>
|
48
57
|
<%= f.submit action, class: 'btn btn-primary' %>
|
49
58
|
<%= link_to 'cancel', :back, class: 'btn btn-default' %>
|
50
59
|
</div>
|
60
|
+
|
51
61
|
<% if action == :create %>
|
52
62
|
<%= button_tag 'properties',
|
53
63
|
type: 'button',
|
54
64
|
class: 'btn btn-default',
|
55
65
|
id: 'properties',
|
56
|
-
data: {url: rocket_job_mission_control.new_dirmon_entry_path} %>
|
66
|
+
data: { url: rocket_job_mission_control.new_dirmon_entry_path } %>
|
57
67
|
<% end %>
|
58
68
|
</div>
|
59
69
|
</div>
|
@@ -1,16 +1,18 @@
|
|
1
|
-
<ul class=
|
1
|
+
<ul class='nav hidden-xs' id='lg-menu'>
|
2
2
|
<li>
|
3
3
|
<%= link_to(new_dirmon_entry_path) do %>
|
4
|
-
<i class=
|
4
|
+
<i class='fas fa-plus'></i> Create
|
5
5
|
<% end %>
|
6
|
+
|
6
7
|
<%= link_to(dirmon_entries_path) do %>
|
7
|
-
<i class=
|
8
|
+
<i class='fas fa-list'></i> All
|
8
9
|
<% end %>
|
9
10
|
</li>
|
11
|
+
|
10
12
|
<% RocketJob::DirmonEntry.aasm.states.map { |s| s.name.to_s }.each do |state| %>
|
11
13
|
<li class="<%= state %>">
|
12
14
|
<%= link_to("#{state}_dirmon_entries".to_sym) do %>
|
13
|
-
<i class="
|
15
|
+
<i class="fas <%= state_icon(state) %>"></i> <%= state.capitalize %> (<%= dirmon_counts_by_state(state) %>)
|
14
16
|
<% end %>
|
15
17
|
</li>
|
16
18
|
<% end %>
|
@@ -18,21 +20,22 @@
|
|
18
20
|
|
19
21
|
<!-- tiny only nav -->
|
20
22
|
|
21
|
-
<ul class=
|
23
|
+
<ul class='nav visible-xs' id='xs-menu'>
|
22
24
|
<li>
|
23
25
|
<%= link_to(new_dirmon_entry_path) do %>
|
24
|
-
<i class=
|
26
|
+
<i class='fas fa-plus'></i>
|
25
27
|
<% end %>
|
28
|
+
|
26
29
|
<%= link_to(dirmon_entries_path) do %>
|
27
|
-
<i class=
|
30
|
+
<i class='fas fa-list'></i>
|
28
31
|
<% end %>
|
29
32
|
</li>
|
33
|
+
|
30
34
|
<% RocketJob::DirmonEntry.aasm.states.map { |s| s.name.to_s }.each do |state| %>
|
31
35
|
<li class="<%= state %>">
|
32
36
|
<%= link_to("#{state}_dirmon_entries".to_sym) do %>
|
33
|
-
<i class="
|
37
|
+
<i class="<%= state_icon(state) %>"></i>
|
34
38
|
<% end %>
|
35
39
|
</li>
|
36
40
|
<% end %>
|
37
41
|
</ul>
|
38
|
-
|
@@ -4,9 +4,11 @@
|
|
4
4
|
<div><label>Archive Directory:</label><%= @dirmon_entry.archive_directory %></div>
|
5
5
|
|
6
6
|
</br>
|
7
|
+
|
7
8
|
<% @dirmon_entry.properties.each_pair do |name, value| %>
|
8
|
-
<div class=
|
9
|
+
<div class='parameters'>
|
9
10
|
<label><%= name.to_s.titleize %>:</label>
|
11
|
+
|
10
12
|
<% if value.is_a?(Array) || value.is_a?(Hash) %>
|
11
13
|
<pre><code><%= pretty_print_array_or_hash(value) %></code></pre>
|
12
14
|
<% else %>
|
@@ -14,4 +16,5 @@
|
|
14
16
|
<% end %>
|
15
17
|
</div>
|
16
18
|
<% end %>
|
17
|
-
|
19
|
+
|
20
|
+
<div class='id'><label>ID:</label><%= @dirmon_entry.id %></div>
|
@@ -1,4 +1,5 @@
|
|
1
|
-
<div class=
|
2
|
-
<div class=
|
3
|
-
|
1
|
+
<div class='container-fluid'>
|
2
|
+
<div class='lead'>Edit Dirmon Entry</div>
|
3
|
+
|
4
|
+
<%= render partial: 'form', locals: { action: :update } %>
|
4
5
|
</div>
|
@@ -1,23 +1,26 @@
|
|
1
|
-
<div class=
|
2
|
-
<div class=
|
3
|
-
<div class=
|
4
|
-
<div class=
|
1
|
+
<div class='dirmon-list'>
|
2
|
+
<div class='list'>
|
3
|
+
<div class='row'>
|
4
|
+
<div class='col-sm-10'>
|
5
5
|
<h2><%= @description %> Dirmon Entries</h2>
|
6
6
|
</div>
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
|
8
|
+
<div class='col-sm-2'>
|
9
|
+
<div class='btn btn-default pull-right dt-reload' data-behavior='reload'>
|
10
|
+
<i class='fas fa-sync'></i>
|
10
11
|
</div>
|
11
12
|
</div>
|
12
13
|
</div>
|
14
|
+
|
13
15
|
<table class='table datatable dirmon-datatable' data-source='<%= @data_table_url %>' style='width: 100%'>
|
14
16
|
<thead>
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
<tr>
|
18
|
+
<th>Name</th>
|
19
|
+
<th>Job Class</th>
|
20
|
+
<th>Pattern</th>
|
21
|
+
</tr>
|
20
22
|
</thead>
|
23
|
+
|
21
24
|
<tbody></tbody>
|
22
25
|
</table>
|
23
26
|
</div>
|
@@ -26,8 +29,7 @@
|
|
26
29
|
<script>
|
27
30
|
jQuery(function () {
|
28
31
|
new RjmcDatatable(
|
29
|
-
$(".dirmon-datatable"),
|
30
|
-
[{data: '0'}, {data: '1'}, {data: '2'}]
|
32
|
+
$(".dirmon-datatable"), [{data: '0'}, {data: '1'}, {data: '2'}]
|
31
33
|
);
|
32
34
|
});
|
33
35
|
</script>
|
@@ -1,7 +1,8 @@
|
|
1
|
-
<div class=
|
2
|
-
<div class=
|
3
|
-
<div class=
|
4
|
-
<div class=
|
1
|
+
<div class='container-fluid'>
|
2
|
+
<div class='row'>
|
3
|
+
<div class='col-xm-14'>
|
4
|
+
<div class='lead'>New Dirmon Entry</div>
|
5
|
+
|
5
6
|
<%= render partial: 'form' %>
|
6
7
|
</div>
|
7
8
|
</div>
|
@@ -1,29 +1,34 @@
|
|
1
|
-
<div class=
|
2
|
-
<div id=
|
3
|
-
<div class=
|
4
|
-
|
5
|
-
|
1
|
+
<div class='col-md-12 job-status'>
|
2
|
+
<div id='job'>
|
3
|
+
<div class='lead'><%= @dirmon_entry.job_class_name %></div>
|
4
|
+
|
5
|
+
<div class='job-state inline-block'>
|
6
|
+
<div class='left'>status</div>
|
6
7
|
<div class="<%= @dirmon_entry.state %> right"><%= @dirmon_entry.state %></div>
|
7
8
|
</div>
|
8
|
-
|
9
|
-
|
9
|
+
|
10
|
+
<div class='btn-toolbar job-actions pull-right'>
|
11
|
+
<div class='btn-group'>
|
10
12
|
<% if @dirmon_entry.disabled? || @dirmon_entry.pending? %>
|
11
|
-
<%= link_to
|
13
|
+
<%= link_to 'Enable', enable_dirmon_entry_path(@dirmon_entry.id), method: :put, class: 'btn btn-default' %>
|
12
14
|
<% end %>
|
15
|
+
|
13
16
|
<% if @dirmon_entry.enabled? %>
|
14
|
-
<%= link_to
|
17
|
+
<%= link_to 'Disable', disable_dirmon_entry_path(@dirmon_entry.id), method: :put, class: 'btn btn-default', data: { confirm: 'Are you sure?' } %>
|
15
18
|
<% end %>
|
16
19
|
</div>
|
17
20
|
|
18
|
-
<div class=
|
19
|
-
<%= link_to
|
21
|
+
<div class='btn-group'>
|
22
|
+
<%= link_to 'Destroy', dirmon_entry_path(@dirmon_entry), method: :delete, class: 'btn btn-default', data: { confirm: 'Are you sure?' } %>
|
20
23
|
</div>
|
21
24
|
|
22
|
-
<div class=
|
23
|
-
<%= link_to
|
25
|
+
<div class='btn-group'>
|
26
|
+
<%= link_to 'Edit', edit_dirmon_entry_path(@dirmon_entry), class: 'btn btn-default' %>
|
24
27
|
</div>
|
25
28
|
</div>
|
26
|
-
|
29
|
+
|
30
|
+
<div class='clearfix'></div>
|
31
|
+
|
27
32
|
<%= render partial: 'status', locals: {dirmon_entry: @job} %>
|
28
33
|
</div>
|
29
34
|
</div>
|
@@ -2,25 +2,29 @@
|
|
2
2
|
previous_offset = [0, pagination[:offset].pred].max
|
3
3
|
next_offset = [pagination[:total], pagination[:offset].next].min
|
4
4
|
%>
|
5
|
-
|
5
|
+
|
6
|
+
<ul class='pagination'>
|
6
7
|
<li>
|
7
8
|
<%= link_to(exception_job_path(error_type: error_type, offset: 0), class: "btn btn-default #{page_nav_disabled_class(pagination[:offset], 0)}", title: 'First') do %>
|
8
|
-
<i class=
|
9
|
+
<i class='fas fa-angle-double-left'></i>
|
9
10
|
<% end %>
|
10
11
|
</li>
|
12
|
+
|
11
13
|
<li>
|
12
14
|
<%= link_to(exception_job_path(error_type: error_type, offset: previous_offset), class: "btn btn-default #{page_nav_disabled_class(pagination[:offset], 0)}", title: 'Previous') do %>
|
13
|
-
<i class=
|
15
|
+
<i class='fas fa-angle-left'></i>
|
14
16
|
<% end %>
|
15
17
|
</li>
|
18
|
+
|
16
19
|
<li>
|
17
20
|
<%= link_to(exception_job_path(error_type: error_type, offset: next_offset), class: "btn btn-default #{page_nav_disabled_class(pagination[:offset], pagination[:total])}", title: 'Next') do %>
|
18
|
-
<i class=
|
21
|
+
<i class='fas fa-angle-right'></i>
|
19
22
|
<% end %>
|
20
23
|
</li>
|
24
|
+
|
21
25
|
<li>
|
22
26
|
<%= link_to(exception_job_path(error_type: error_type, offset: pagination[:total]), class: "btn btn-default #{page_nav_disabled_class(pagination[:offset], pagination[:total])}", title: 'Last') do %>
|
23
|
-
<i class=
|
27
|
+
<i class='fas fa-angle-double-right'></i>
|
24
28
|
<% end %>
|
25
29
|
</li>
|
26
30
|
</ul>
|
@@ -1,13 +1,14 @@
|
|
1
|
-
<ul class=
|
2
|
-
<li class=
|
1
|
+
<ul class='nav hidden-xs' id='lg-menu'>
|
2
|
+
<li class='active'>
|
3
3
|
<%= link_to(jobs_path) do %>
|
4
|
-
<i class=
|
4
|
+
<i class='fas fa-list'></i> All
|
5
5
|
<% end %>
|
6
6
|
</li>
|
7
|
+
|
7
8
|
<% job_states_with_scheduled.each do |state| %>
|
8
9
|
<li class="<%= state %>">
|
9
10
|
<%= link_to("#{state}_jobs".to_sym) do %>
|
10
|
-
<i class="
|
11
|
+
<i class="fas <%= state_icon(state) %>"></i> <%= state.capitalize %> (<%= job_counts_by_state(state) %>)
|
11
12
|
<% end %>
|
12
13
|
</li>
|
13
14
|
<% end %>
|
@@ -15,18 +16,18 @@
|
|
15
16
|
|
16
17
|
<!-- tiny only nav -->
|
17
18
|
|
18
|
-
<ul class=
|
19
|
+
<ul class='nav visible-xs' id='xs-menu'>
|
19
20
|
<li>
|
20
21
|
<%= link_to(jobs_path) do %>
|
21
|
-
<i class=
|
22
|
+
<i class='fas fa-list'></i>
|
22
23
|
<% end %>
|
23
24
|
</li>
|
25
|
+
|
24
26
|
<% job_states_with_scheduled.each do |state| %>
|
25
27
|
<li class="<%= state %>">
|
26
28
|
<%= link_to("#{state}_jobs".to_sym) do %>
|
27
|
-
<i class="
|
29
|
+
<i class="fas <%= state_icon(state) %>"></i>
|
28
30
|
<% end %>
|
29
31
|
</li>
|
30
32
|
<% end %>
|
31
33
|
</ul>
|
32
|
-
|
@@ -1,23 +1,31 @@
|
|
1
1
|
<% status = job.status(Time.zone) %>
|
2
|
-
|
2
|
+
|
3
|
+
<div class='id'>
|
4
|
+
<label>ID:</label> <%= status.delete('_id') %>
|
5
|
+
</div>
|
3
6
|
|
4
7
|
<% if description = status.delete('description') %>
|
5
|
-
<div class=
|
8
|
+
<div class='status-message'><label>Description:</label> <%= description %></div>
|
6
9
|
<% end %>
|
10
|
+
|
7
11
|
<% if duration = status.delete('duration') %>
|
8
|
-
<div class=
|
12
|
+
<div class='status-message'><label>Duration:</label> <%= duration %></div>
|
9
13
|
<% end %>
|
14
|
+
|
10
15
|
<% if record_count = status.delete('record_count') %>
|
11
|
-
<div class=
|
16
|
+
<div class='status-message'><label>Record Count:</label> <%= record_count %></div>
|
12
17
|
<% end %>
|
13
18
|
|
14
|
-
<div class=
|
19
|
+
<div class='created_at'>
|
20
|
+
<label>Created At:</label> <%= status.delete('created_at') %>
|
21
|
+
</div>
|
15
22
|
|
16
23
|
<% if started_at = status.delete('started_at') %>
|
17
|
-
<div class=
|
24
|
+
<div class='status-message'><label>Started At:</label> <%= started_at %></div>
|
18
25
|
<% end %>
|
26
|
+
|
19
27
|
<% if percent_complete = status.delete('percent_complete') %>
|
20
|
-
<div class=
|
28
|
+
<div class='status-message'><label>% Complete:</label> <%= percent_complete %></div>
|
21
29
|
<% end %>
|
22
30
|
|
23
31
|
<%
|
@@ -29,13 +37,13 @@
|
|
29
37
|
next
|
30
38
|
end
|
31
39
|
%>
|
32
|
-
<div class=
|
40
|
+
<div class='status-message'><label><%= key.to_s.titleize %>:</label> <%= value %></div>
|
33
41
|
<% end %>
|
34
42
|
|
35
|
-
<div class=
|
43
|
+
<div class='clearfix'></div>
|
36
44
|
|
37
45
|
<% remaining.each_pair do |key, value| %>
|
38
|
-
<div class=
|
46
|
+
<div class='status-message'>
|
39
47
|
<label><%= key.to_s.titleize %>:</label>
|
40
48
|
<pre><code><%= pretty_print_array_or_hash(value) %></code></pre>
|
41
49
|
</div>
|
@@ -1,28 +1,35 @@
|
|
1
|
-
<div class=
|
2
|
-
<div class=
|
1
|
+
<div class='container-fluid'>
|
2
|
+
<div class='lead'>Edit <%= @job._type %></div>
|
3
|
+
|
3
4
|
<% if @job.errors.present? %>
|
4
|
-
<div class=
|
5
|
+
<div class='alert alert-alert'>
|
5
6
|
Failed to save the changes!
|
7
|
+
|
6
8
|
<% @job.errors.messages.each_pair do |field, message| %>
|
7
|
-
<div class=
|
9
|
+
<div class='message'><%= field.to_s.humanize %> is not valid: <%= message.join(', ') %></div>
|
8
10
|
<% end %>
|
9
11
|
</div>
|
10
12
|
<% end %>
|
13
|
+
|
11
14
|
<%= form_for(@job, as: :job, url: job_path(@job)) do |f| %>
|
12
|
-
<div class=
|
13
|
-
<div class=
|
14
|
-
<div class=
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
<div class='row'>
|
16
|
+
<div class='col-md-12'>
|
17
|
+
<div class='arguments'>
|
18
|
+
<div class='job_arguments form-group'></div>
|
19
|
+
|
20
|
+
<div class='form-group'>
|
21
|
+
<% @job.class.user_editable_fields.each do |property_name| %>
|
22
|
+
<%= f.label property_name.to_s %>
|
23
|
+
<%= editable_field_html(@job.class, property_name, @job.send(property_name), f) %>
|
24
|
+
<% end %>
|
25
|
+
</div>
|
20
26
|
</div>
|
21
27
|
</div>
|
22
28
|
</div>
|
23
|
-
|
24
|
-
|
25
|
-
|
29
|
+
|
30
|
+
<div class='row'>
|
31
|
+
<div class='col-md-12'>
|
32
|
+
<div class='buttons'>
|
26
33
|
<%= f.submit 'Save', class: 'btn btn-primary' %>
|
27
34
|
<%= link_to 'Cancel', :back, class: 'btn btn-default' %>
|
28
35
|
</div>
|