rocketjob_mission_control 3.0.3 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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>
|