machinery-tool 1.9.1 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS +7 -0
- data/html/assets/compare/machinery-compare.js +43 -0
- data/html/assets/compare/machinery.js +17 -0
- data/html/assets/machinery.css +13 -0
- data/html/assets/modal.js +280 -0
- data/html/assets/show/machinery-show.js +16 -9
- data/html/assets/show/machinery.js +61 -25
- data/html/comparison.html.haml +194 -116
- data/html/index.html.haml +46 -12
- data/lib/array.rb +2 -1
- data/lib/cli.rb +44 -23
- data/lib/compare_task.rb +5 -29
- data/lib/comparison.rb +69 -0
- data/lib/config.rb +4 -0
- data/lib/export_task.rb +7 -0
- data/lib/file_scope.rb +2 -2
- data/lib/html.rb +165 -88
- data/lib/machinery.rb +6 -2
- data/lib/{generate_html_task.rb → man_task.rb} +8 -6
- data/lib/object.rb +1 -1
- data/lib/renderer.rb +70 -41
- data/lib/{scope_file_access.rb → scope_file_access_archive.rb} +23 -20
- data/lib/scope_file_access_flat.rb +36 -0
- data/lib/serve_html_task.rb +33 -0
- data/lib/show_task.rb +19 -5
- data/lib/system_file.rb +25 -0
- data/lib/version.rb +1 -1
- data/man/generated/machinery.1.gz +0 -0
- data/man/generated/machinery.1.html +60 -34
- data/plugins/changed_managed_files/changed_managed_files_renderer.rb +5 -5
- data/plugins/config_files/config_files_renderer.rb +7 -6
- data/plugins/groups/groups_renderer.rb +3 -3
- data/plugins/os/os_renderer.rb +5 -5
- data/plugins/packages/packages_model.rb +25 -0
- data/plugins/packages/packages_renderer.rb +36 -5
- data/plugins/patterns/patterns_renderer.rb +3 -3
- data/plugins/repositories/repositories_model.rb +1 -1
- data/plugins/repositories/repositories_renderer.rb +4 -4
- data/plugins/services/services_model.rb +2 -2
- data/plugins/services/services_renderer.rb +3 -3
- data/plugins/unmanaged_files/unmanaged_files_model.rb +2 -1
- data/plugins/unmanaged_files/unmanaged_files_renderer.rb +5 -5
- data/plugins/users/users_renderer.rb +3 -3
- metadata +36 -4
@@ -45,6 +45,65 @@ $(document).ready(function () {
|
|
45
45
|
html: true
|
46
46
|
});
|
47
47
|
|
48
|
+
// Set up inspection details popover
|
49
|
+
$("a.inspection_details").popover({
|
50
|
+
template: "<div class='popover inspection-details-popover' role='tooltip'>\
|
51
|
+
<div class='arrow'></div>\
|
52
|
+
<div class='popover-header'>\
|
53
|
+
<button type='button' class='close' onclick='$(\".inspection_details\").popover(\"hide\")'\
|
54
|
+
aria-hidden='true'>×</button>\
|
55
|
+
<h3 class='popover-title'></h3>\
|
56
|
+
</div>\
|
57
|
+
<div class='popover-content'></div>\
|
58
|
+
</div>",
|
59
|
+
trigger: "click",
|
60
|
+
placement: "bottom",
|
61
|
+
html: true,
|
62
|
+
content: function() {
|
63
|
+
return $("#inspection_details").html();
|
64
|
+
},
|
65
|
+
title: function() {
|
66
|
+
return "Inspection details";
|
67
|
+
}
|
68
|
+
});
|
69
|
+
$('.inspection-details-popover .close').click(function() { $(".inspection_details").popover("hide") });
|
70
|
+
});
|
71
|
+
|
72
|
+
|
73
|
+
setupDynamicContent = function() {
|
74
|
+
// Set up file download links
|
75
|
+
$(".file-download").click(function() {
|
76
|
+
$("#file-modal-file-content").hide();
|
77
|
+
$("#file-modal-error").hide();
|
78
|
+
|
79
|
+
var file = $(this);
|
80
|
+
var scope = file.parents(".scope").data("scope");
|
81
|
+
var description = $("body").data("description");
|
82
|
+
var url = "/descriptions/" + description + "/files/" + scope + file.text().trim();
|
83
|
+
|
84
|
+
$("#file-modal-download-link").attr("href", url);
|
85
|
+
$.get(url, function(res) {
|
86
|
+
if(res.length === 0) {
|
87
|
+
$("#file-modal-error").html("File is empty.").show();
|
88
|
+
} else {
|
89
|
+
$("#file-modal-file-content").val(res).show();
|
90
|
+
}
|
91
|
+
}, "text").
|
92
|
+
error(function(res) {
|
93
|
+
if(res.readyState == 0) {
|
94
|
+
$("#file-modal-error").html("Could not download file content. Is the web server still running?").show();
|
95
|
+
} else if(res.status == 406) {
|
96
|
+
$("#file-modal-error").html("File is binary.").show();
|
97
|
+
} else {
|
98
|
+
$("#file-modal-error").html("There was an unknown error downloading the file.").show();
|
99
|
+
}
|
100
|
+
});
|
101
|
+
|
102
|
+
$("#file-modal-title").html(file.html());
|
103
|
+
$("#file-modal").modal("show");
|
104
|
+
|
105
|
+
return false;
|
106
|
+
});
|
48
107
|
// Set up config file diffs popovers
|
49
108
|
var counter;
|
50
109
|
$(".diff-toggle").popover({
|
@@ -66,7 +125,7 @@ $(document).ready(function () {
|
|
66
125
|
counter = setTimeout(function(){
|
67
126
|
$(_this).popover("show");
|
68
127
|
$(".diff-popover").on("mouseleave", function () {
|
69
|
-
|
128
|
+
$(".diff-toggle").popover("hide");
|
70
129
|
});
|
71
130
|
}, 100);
|
72
131
|
}).on("mouseleave", function () {
|
@@ -77,29 +136,6 @@ $(document).ready(function () {
|
|
77
136
|
}, 500);
|
78
137
|
});
|
79
138
|
|
80
|
-
// Set up inspection details popover
|
81
|
-
$("a.inspection_details").popover({
|
82
|
-
template: "<div class='popover inspection-details-popover' role='tooltip'>\
|
83
|
-
<div class='arrow'></div>\
|
84
|
-
<div class='popover-header'>\
|
85
|
-
<button type='button' class='close' onclick='$(\".inspection_details\").popover(\"hide\")'\
|
86
|
-
aria-hidden='true'>×</button>\
|
87
|
-
<h3 class='popover-title'></h3>\
|
88
|
-
</div>\
|
89
|
-
<div class='popover-content'></div>\
|
90
|
-
</div>",
|
91
|
-
trigger: "click",
|
92
|
-
placement: "bottom",
|
93
|
-
html: true,
|
94
|
-
content: function() {
|
95
|
-
return $("#inspection_details").html();
|
96
|
-
},
|
97
|
-
title: function() {
|
98
|
-
return "Inspection details";
|
99
|
-
}
|
100
|
-
});
|
101
|
-
$('.inspection-details-popover .close').click(function() { $(".inspection_details").popover("hide") });
|
102
|
-
|
103
139
|
// Tooltips for service states
|
104
140
|
$("td.systemd_enabled, td.systemd_enabled-runtime").attr("title", "Enabled through a symlink in .wants directory (permanently or just in /run).");
|
105
141
|
$("td.systemd_linked, td.systemd_linked-runtime").attr("title", "Made available through a symlink to the unit file (permanently or just in /run).");
|
@@ -118,4 +154,4 @@ $(document).ready(function () {
|
|
118
154
|
$this.attr('title', $this.text());
|
119
155
|
}
|
120
156
|
});
|
121
|
-
}
|
157
|
+
};
|
data/html/comparison.html.haml
CHANGED
@@ -41,18 +41,18 @@
|
|
41
41
|
.row.scope_content.collapse.in
|
42
42
|
.row
|
43
43
|
.col-xs-1
|
44
|
-
.col-xs-5{"ng-show" => "diff.os
|
44
|
+
.col-xs-5{"ng-show" => "diff.os.only_in1"}
|
45
45
|
%only-in-a
|
46
|
-
%render-template{:template => "scope_os_partial", :object => "diff.os
|
46
|
+
%render-template{:template => "scope_os_partial", :object => "diff.os.only_in1"}
|
47
47
|
.col-xs-1
|
48
|
-
.col-xs-5{"ng-show" => "diff.os
|
48
|
+
.col-xs-5{"ng-show" => "diff.os.only_in2"}
|
49
49
|
%only-in-b
|
50
|
-
%render-template{:template => "scope_os_partial", :object => "diff.os
|
51
|
-
.row
|
50
|
+
%render-template{:template => "scope_os_partial", :object => "diff.os.only_in2"}
|
51
|
+
.row.scope_content_common.collapse.in
|
52
52
|
.col-xs-1
|
53
|
-
.col-xs-11{"ng-show" => "diff.os
|
53
|
+
.col-xs-11{"ng-show" => "diff.os.common"}
|
54
54
|
%in-both
|
55
|
-
%render-template{:template => "scope_os_partial", :object => "diff.os
|
55
|
+
%render-template{:template => "scope_os_partial", :object => "diff.os.common"}
|
56
56
|
|
57
57
|
%script#scope_packages_partial{:type => "text/ng-template"}
|
58
58
|
%table.table.table-striped.table-hover.table-condensed
|
@@ -76,6 +76,11 @@
|
|
76
76
|
%td.hidden-lg{:title => "Name: {{package.name}}\nVersion: {{package.version}}\nRelease: {{package.release}}\n" |
|
77
77
|
"Architecture: {{package.arch}}\nVendor: {{package.vendor}}\nChecksum: {{package.checksum}}"} ... |
|
78
78
|
|
79
|
+
%script#scope_packages_changed_partial{:type => "text/ng-template"}
|
80
|
+
%ul.changed
|
81
|
+
%li{"ng-repeat" => "changed_element in changed_elements"}
|
82
|
+
{{changed_element}}
|
83
|
+
|
79
84
|
%script#scope_packages.partial{:type => "text/ng-template"}
|
80
85
|
%a.scope_anchor{:id => "packages"}
|
81
86
|
#packages_container.scope
|
@@ -88,30 +93,47 @@
|
|
88
93
|
%h2
|
89
94
|
Packages
|
90
95
|
.scope-summary
|
91
|
-
%span.summary-part{"ng-show" => "diff.packages
|
92
|
-
{{diff.meta.description_a}}: {{diff.packages
|
93
|
-
%span.summary-part{"ng-show" => "diff.packages
|
94
|
-
{{diff.meta.description_b}}: {{diff.packages
|
95
|
-
%span.summary-part{"ng-show" => "diff.packages
|
96
|
+
%span.summary-part{"ng-show" => "diff.packages.only_in1"}
|
97
|
+
{{diff.meta.description_a}}: {{diff.packages.only_in1.length}} packages
|
98
|
+
%span.summary-part{"ng-show" => "diff.packages.only_in2"}
|
99
|
+
{{diff.meta.description_b}}: {{diff.packages.only_in2.length}} packages
|
100
|
+
%span.summary-part{"ng-show" => "diff.packages.changed"}
|
101
|
+
%a{href: "#packages_changed"}
|
102
|
+
Changed
|
103
|
+
= ": {{diff.packages.changed.length}} packages"
|
104
|
+
%span.summary-part{"ng-show" => "diff.packages.common"}
|
96
105
|
%a{href: "#packages_both"}
|
97
106
|
both
|
98
|
-
= ": {{diff.packages
|
107
|
+
= ": {{diff.packages.common.length}} packages"
|
99
108
|
.row.scope_content.collapse.in
|
100
109
|
.row
|
101
110
|
.col-xs-1
|
102
|
-
.col-xs-5.table_container{"ng-show" => "diff.packages
|
111
|
+
.col-xs-5.table_container{"ng-show" => "diff.packages.only_in1"}
|
103
112
|
%only-in-a
|
104
|
-
%render-template{:template => "scope_packages_partial", :object => "diff.packages
|
113
|
+
%render-template{:template => "scope_packages_partial", :object => "diff.packages.only_in1"}
|
105
114
|
.col-xs-1
|
106
|
-
.col-xs-5.table_container{"ng-show" => "diff.packages
|
115
|
+
.col-xs-5.table_container{"ng-show" => "diff.packages.only_in2"}
|
107
116
|
%only-in-b
|
108
|
-
%render-template{:template => "scope_packages_partial", :object => "diff.packages
|
109
|
-
%a.both_anchor{id: "
|
110
|
-
.row{"ng-show" => "diff.packages
|
117
|
+
%render-template{:template => "scope_packages_partial", :object => "diff.packages.only_in2"}
|
118
|
+
%a.both_anchor{id: "packages_changed"}
|
119
|
+
.row{"ng-show" => "diff.packages.changed"}
|
111
120
|
.col-xs-1
|
112
121
|
.col-xs-11.table_container
|
122
|
+
%changed
|
123
|
+
%changed_packages{:object => "diff.packages.changed"}
|
124
|
+
%a.both_anchor{id: "packages_both"}
|
125
|
+
.row
|
126
|
+
.col-xs-1
|
127
|
+
.col-xs-2
|
128
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.packages.common"}
|
129
|
+
Show common elements in packages
|
130
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.packages.common"}
|
131
|
+
Hide common elements in packages
|
132
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.packages.common"}
|
133
|
+
.col-xs-1
|
134
|
+
.col-xs-10.table_container
|
113
135
|
%in-both
|
114
|
-
%render-template{:template => "scope_packages_partial", :object => "diff.packages
|
136
|
+
%render-template{:template => "scope_packages_partial", :object => "diff.packages.common"}
|
115
137
|
|
116
138
|
%script#scope_patterns_partial{:type => "text/ng-template"}
|
117
139
|
%table.table.table-striped.table-hover.table-condensed
|
@@ -138,31 +160,37 @@
|
|
138
160
|
%h2
|
139
161
|
Patterns
|
140
162
|
.scope-summary
|
141
|
-
%span.summary-part{"ng-show" => "diff.patterns
|
142
|
-
{{diff.meta.description_a}}: {{diff.patterns
|
143
|
-
%span.summary-part{"ng-show" => "diff.patterns
|
144
|
-
{{diff.meta.description_b}}: {{diff.patterns
|
145
|
-
%span.summary-part{"ng-show" => "diff.patterns
|
163
|
+
%span.summary-part{"ng-show" => "diff.patterns.only_in1"}
|
164
|
+
{{diff.meta.description_a}}: {{diff.patterns.only_in1.length}} patterns
|
165
|
+
%span.summary-part{"ng-show" => "diff.patterns.only_in2"}
|
166
|
+
{{diff.meta.description_b}}: {{diff.patterns.only_in2.length}} patterns
|
167
|
+
%span.summary-part{"ng-show" => "diff.patterns.common"}
|
146
168
|
%a{href: "#patterns_both"}
|
147
169
|
both
|
148
|
-
= ": {{diff.patterns
|
170
|
+
= ": {{diff.patterns.common.length}} patterns"
|
149
171
|
.row.scope_content.collapse.in
|
150
172
|
.row
|
151
173
|
.col-xs-1
|
152
|
-
.col-xs-5{"ng-show" => "diff.patterns
|
174
|
+
.col-xs-5{"ng-show" => "diff.patterns.only_in1"}
|
153
175
|
%only-in-a
|
154
|
-
%render-template{:template => "scope_patterns_partial", :object => "diff.patterns
|
155
|
-
.col-xs-
|
176
|
+
%render-template{:template => "scope_patterns_partial", :object => "diff.patterns.only_in1"}
|
177
|
+
.col-xs-1
|
178
|
+
.col-xs-5{"ng-show" => "diff.patterns.only_in2"}
|
156
179
|
%only-in-b
|
157
|
-
%render-template{:template => "scope_patterns_partial", :object => "diff.patterns
|
180
|
+
%render-template{:template => "scope_patterns_partial", :object => "diff.patterns.only_in2"}
|
158
181
|
%a.both_anchor{id: "patterns_both"}
|
159
|
-
.row
|
182
|
+
.row
|
183
|
+
.col-xs-1
|
184
|
+
.col-xs-2
|
185
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.patterns.common"}
|
186
|
+
Show common elements in patterns
|
187
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.patterns.common"}
|
188
|
+
Hide common elements in patterns
|
189
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.patterns.common"}
|
160
190
|
.col-xs-1
|
161
191
|
.col-xs-11
|
162
192
|
%in-both
|
163
|
-
%render-template{:template => "scope_patterns_partial", :object => "diff.patterns
|
164
|
-
|
165
|
-
|
193
|
+
%render-template{:template => "scope_patterns_partial", :object => "diff.patterns.common"}
|
166
194
|
|
167
195
|
%script#scope_users_partial{:type => "text/ng-template"}
|
168
196
|
%table.table.table-striped.table-hover.table-condensed
|
@@ -194,30 +222,37 @@
|
|
194
222
|
%h2
|
195
223
|
Users
|
196
224
|
.scope-summary
|
197
|
-
%span.summary-part{"ng-show" => "diff.users
|
198
|
-
{{diff.meta.description_a}}: {{diff.users
|
199
|
-
%span.summary-part{"ng-show" => "diff.users
|
200
|
-
{{diff.meta.description_b}}: {{diff.users
|
201
|
-
%span.summary-part{"ng-show" => "diff.users
|
225
|
+
%span.summary-part{"ng-show" => "diff.users.only_in1"}
|
226
|
+
{{diff.meta.description_a}}: {{diff.users.only_in1.length}} users
|
227
|
+
%span.summary-part{"ng-show" => "diff.users.only_in2"}
|
228
|
+
{{diff.meta.description_b}}: {{diff.users.only_in2.length}} users
|
229
|
+
%span.summary-part{"ng-show" => "diff.users.common"}
|
202
230
|
%a{href: "#users_both"}
|
203
231
|
both
|
204
|
-
= ": {{diff.users
|
232
|
+
= ": {{diff.users.common.length}} users"
|
205
233
|
.row.scope_content.collapse.in
|
206
234
|
.row
|
207
235
|
.col-xs-1
|
208
|
-
.col-xs-5{"ng-show" => "diff.users
|
236
|
+
.col-xs-5{"ng-show" => "diff.users.only_in1"}
|
209
237
|
%only-in-a
|
210
|
-
%render-template{:template => "scope_users_partial", :object => "diff.users
|
238
|
+
%render-template{:template => "scope_users_partial", :object => "diff.users.only_in1"}
|
211
239
|
.col-xs-1
|
212
|
-
.col-xs-5{"ng-show" => "diff.users
|
240
|
+
.col-xs-5{"ng-show" => "diff.users.only_in2"}
|
213
241
|
%only-in-b
|
214
|
-
%render-template{:template => "scope_users_partial", :object => "diff.users
|
242
|
+
%render-template{:template => "scope_users_partial", :object => "diff.users.only_in2"}
|
215
243
|
%a.both_anchor{id: "users_both"}
|
216
|
-
.row
|
244
|
+
.row
|
245
|
+
.col-xs-1
|
246
|
+
.col-xs-2
|
247
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.users.common"}
|
248
|
+
Show common elements in users
|
249
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.users.common"}
|
250
|
+
Hide common elements in users
|
251
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.users.common"}
|
217
252
|
.col-xs-1
|
218
253
|
.col-xs-11
|
219
254
|
%in-both
|
220
|
-
%render-template{:template => "scope_users_partial", :object => "diff.users
|
255
|
+
%render-template{:template => "scope_users_partial", :object => "diff.users.common"}
|
221
256
|
|
222
257
|
%script#scope_unmanaged_files_partial{:type => "text/ng-template"}
|
223
258
|
%p
|
@@ -243,30 +278,37 @@
|
|
243
278
|
%h2
|
244
279
|
Unmanaged Files
|
245
280
|
.scope-summary
|
246
|
-
%span.summary-part{"ng-show" => "diff.unmanaged_files
|
247
|
-
{{diff.meta.description_a}}: {{diff.unmanaged_files
|
248
|
-
%span.summary-part{"ng-show" => "diff.unmanaged_files
|
249
|
-
{{diff.meta.description_b}}: {{diff.unmanaged_files
|
250
|
-
%span.summary-part{"ng-show" => "diff.unmanaged_files
|
281
|
+
%span.summary-part{"ng-show" => "diff.unmanaged_files.only_in1"}
|
282
|
+
{{diff.meta.description_a}}: {{diff.unmanaged_files.only_in1.files.length || 0}} files
|
283
|
+
%span.summary-part{"ng-show" => "diff.unmanaged_files.only_in2"}
|
284
|
+
{{diff.meta.description_b}}: {{diff.unmanaged_files.only_in2.files.length || 0}} files
|
285
|
+
%span.summary-part{"ng-show" => "diff.unmanaged_files.common"}
|
251
286
|
%a{href: "#unmanaged_files_both"}
|
252
287
|
both
|
253
|
-
= ": {{diff.unmanaged_files
|
288
|
+
= ": {{diff.unmanaged_files.common.files.length}} files"
|
254
289
|
.row.scope_content.collapse.in
|
255
290
|
.row
|
256
291
|
.col-xs-1
|
257
292
|
.col-xs-5
|
258
293
|
%only-in-a
|
259
|
-
%render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files
|
294
|
+
%render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files.only_in1"}
|
260
295
|
.col-xs-1
|
261
296
|
.col-xs-5
|
262
297
|
%only-in-b
|
263
|
-
%render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files
|
298
|
+
%render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files.only_in2"}
|
264
299
|
%a.both_anchor{id: "unmanaged_files_both"}
|
265
300
|
.row
|
301
|
+
.col-xs-1
|
302
|
+
.col-xs-4
|
303
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.unmanaged_files.common"}
|
304
|
+
Show common elements in unmanaged_files
|
305
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.unmanaged_files.common"}
|
306
|
+
Hide common elements in unmanaged_files
|
307
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.unmanaged_files.common"}
|
266
308
|
.col-xs-1
|
267
309
|
.col-xs-11
|
268
310
|
%in-both
|
269
|
-
%render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files
|
311
|
+
%render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files.common"}
|
270
312
|
|
271
313
|
%script#scope_groups_partial{:type => "text/ng-template"}
|
272
314
|
%table.table.table-striped.table-hover.table-condensed
|
@@ -294,30 +336,37 @@
|
|
294
336
|
%h2
|
295
337
|
Groups
|
296
338
|
.scope-summary
|
297
|
-
%span.summary-part{"ng-show" => "diff.groups
|
298
|
-
{{diff.meta.description_a}}: {{diff.groups
|
299
|
-
%span.summary-part{"ng-show" => "diff.groups
|
300
|
-
{{diff.meta.description_b}}: {{diff.groups
|
301
|
-
%span.summary-part{"ng-show" => "diff.groups
|
339
|
+
%span.summary-part{"ng-show" => "diff.groups.only_in1"}
|
340
|
+
{{diff.meta.description_a}}: {{diff.groups.only_in1.length}} groups
|
341
|
+
%span.summary-part{"ng-show" => "diff.groups.only_in2"}
|
342
|
+
{{diff.meta.description_b}}: {{diff.groups.only_in2.length}} groups
|
343
|
+
%span.summary-part{"ng-show" => "diff.groups.common"}
|
302
344
|
%a{href: "#groups_both"}
|
303
345
|
both
|
304
|
-
= ": {{diff.groups
|
346
|
+
= ": {{diff.groups.common.length}} groups"
|
305
347
|
.row.scope_content.collapse.in
|
306
348
|
.row
|
307
349
|
.col-xs-1
|
308
|
-
.col-xs-5{"ng-show" => "diff.groups
|
350
|
+
.col-xs-5{"ng-show" => "diff.groups.only_in1"}
|
309
351
|
%only-in-a
|
310
|
-
%render-template{:template => "scope_groups_partial", :object => "diff.groups
|
352
|
+
%render-template{:template => "scope_groups_partial", :object => "diff.groups.only_in1"}
|
311
353
|
.col-xs-1
|
312
|
-
.col-xs-5{"ng-show" => "diff.groups
|
354
|
+
.col-xs-5{"ng-show" => "diff.groups.only_in2"}
|
313
355
|
%only-in-b
|
314
|
-
%render-template{:template => "scope_groups_partial", :object => "diff.groups
|
356
|
+
%render-template{:template => "scope_groups_partial", :object => "diff.groups.only_in2"}
|
315
357
|
%a.both_anchor{id: "groups_both"}
|
316
|
-
.row
|
358
|
+
.row
|
359
|
+
.col-xs-1
|
360
|
+
.col-xs-2
|
361
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.groups.common"}
|
362
|
+
Show common elements in groups
|
363
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.groups.common"}
|
364
|
+
Hide common elements in groups
|
365
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.groups.common"}
|
317
366
|
.col-xs-1
|
318
367
|
.col-xs-11
|
319
368
|
%in-both
|
320
|
-
%render-template{:template => "scope_groups_partial", :object => "diff.groups
|
369
|
+
%render-template{:template => "scope_groups_partial", :object => "diff.groups.common"}
|
321
370
|
|
322
371
|
%script#scope_repositories_partial{:type => "text/ng-template"}
|
323
372
|
%table.table.table-striped.table-hover.table-condensed
|
@@ -358,30 +407,37 @@
|
|
358
407
|
%h2
|
359
408
|
Repositories
|
360
409
|
.scope-summary
|
361
|
-
%span.summary-part{"ng-show" => "diff.repositories
|
362
|
-
{{diff.meta.description_a}}: {{diff.repositories
|
363
|
-
%span.summary-part{"ng-show" => "diff.repositories
|
364
|
-
{{diff.meta.description_b}}: {{diff.repositories
|
365
|
-
%span.summary-part{"ng-show" => "diff.repositories
|
410
|
+
%span.summary-part{"ng-show" => "diff.repositories.only_in1"}
|
411
|
+
{{diff.meta.description_a}}: {{diff.repositories.only_in1.length}} repos
|
412
|
+
%span.summary-part{"ng-show" => "diff.repositories.only_in2"}
|
413
|
+
{{diff.meta.description_b}}: {{diff.repositories.only_in2.length}} repos
|
414
|
+
%span.summary-part{"ng-show" => "diff.repositories.common"}
|
366
415
|
%a{href: "#repositories_both"}
|
367
416
|
both
|
368
|
-
= ": {{diff.repositories
|
417
|
+
= ": {{diff.repositories.common.length}} repos"
|
369
418
|
.row.scope_content.collapse.in
|
370
419
|
.row
|
371
420
|
.col-xs-1
|
372
|
-
.col-xs-5{"ng-show" => "diff.repositories
|
421
|
+
.col-xs-5{"ng-show" => "diff.repositories.only_in1"}
|
373
422
|
%only-in-a
|
374
|
-
%render-template{:template => "scope_repositories_partial", :object => "diff.repositories
|
423
|
+
%render-template{:template => "scope_repositories_partial", :object => "diff.repositories.only_in1"}
|
375
424
|
.col-xs-1
|
376
|
-
.col-xs-5{"ng-show" => "diff.repositories
|
425
|
+
.col-xs-5{"ng-show" => "diff.repositories.only_in2"}
|
377
426
|
%only-in-b
|
378
|
-
%render-template{:template => "scope_repositories_partial", :object => "diff.repositories
|
427
|
+
%render-template{:template => "scope_repositories_partial", :object => "diff.repositories.only_in2"}
|
379
428
|
%a.both_anchor{id: "repositories_both"}
|
380
|
-
.row
|
429
|
+
.row
|
430
|
+
.col-xs-1
|
431
|
+
.col-xs-2
|
432
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.repositories.common"}
|
433
|
+
Show common elements in repositories
|
434
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.repositories.common"}
|
435
|
+
Hide common elements in repositories
|
436
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.repositories.common"}
|
381
437
|
.col-xs-1
|
382
438
|
.col-xs-11
|
383
439
|
%in-both
|
384
|
-
%render-template{:template => "scope_repositories_partial", :object => "diff.repositories
|
440
|
+
%render-template{:template => "scope_repositories_partial", :object => "diff.repositories.common"}
|
385
441
|
|
386
442
|
%script#scope_changed_managed_files_partial{:type => "text/ng-template"}
|
387
443
|
%p
|
@@ -418,30 +474,37 @@
|
|
418
474
|
%h2
|
419
475
|
Changed Managed Files
|
420
476
|
.scope-summary
|
421
|
-
%span.summary-part{"ng-show" => "diff.changed_managed_files
|
422
|
-
{{diff.meta.description_a}}: {{diff.changed_managed_files
|
423
|
-
%span.summary-part{"ng-show" => "diff.changed_managed_files
|
424
|
-
{{diff.meta.description_b}}: {{diff.changed_managed_files
|
425
|
-
%span.summary-part{"ng-show" => "diff.changed_managed_files
|
477
|
+
%span.summary-part{"ng-show" => "diff.changed_managed_files.only_in1"}
|
478
|
+
{{diff.meta.description_a}}: {{diff.changed_managed_files.only_in1.files.length || 0}} files
|
479
|
+
%span.summary-part{"ng-show" => "diff.changed_managed_files.only_in2"}
|
480
|
+
{{diff.meta.description_b}}: {{diff.changed_managed_files.only_in2.files.length || 0}} files
|
481
|
+
%span.summary-part{"ng-show" => "diff.changed_managed_files.common"}
|
426
482
|
%a{href: "#changed_managed_files_both"}
|
427
483
|
both
|
428
|
-
= ": {{diff.changed_managed_files
|
484
|
+
= ": {{diff.changed_managed_files.common.files.length}} files"
|
429
485
|
.row.scope_content.collapse.in
|
430
486
|
.row
|
431
487
|
.col-xs-1
|
432
|
-
.col-xs-5{"ng-show" => "diff.changed_managed_files
|
488
|
+
.col-xs-5{"ng-show" => "diff.changed_managed_files.only_in1"}
|
433
489
|
%only-in-a
|
434
|
-
%render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files
|
490
|
+
%render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files.only_in1"}
|
435
491
|
.col-xs-1
|
436
|
-
.col-xs-5{"ng-show" => "diff.changed_managed_files
|
492
|
+
.col-xs-5{"ng-show" => "diff.changed_managed_files.only_in2"}
|
437
493
|
%only-in-b
|
438
|
-
%render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files
|
494
|
+
%render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files.only_in2"}
|
439
495
|
%a.both_anchor{id: "changed_managed_files_both"}
|
440
|
-
.row
|
496
|
+
.row
|
497
|
+
.col-xs-1
|
498
|
+
.col-xs-4
|
499
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.changed_managed_files.common"}
|
500
|
+
Show common elements in changed_managed_files
|
501
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.changed_managed_files.common"}
|
502
|
+
Hide common elements in changed_managed_files
|
503
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.changed_managed_files.common"}
|
441
504
|
.col-xs-1
|
442
505
|
.col-xs-11
|
443
506
|
%in-both
|
444
|
-
%render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files
|
507
|
+
%render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files.common"}
|
445
508
|
|
446
509
|
%script#scope_config_files_partial{:type => "text/ng-template"}
|
447
510
|
%p
|
@@ -480,30 +543,37 @@
|
|
480
543
|
%h2
|
481
544
|
Config Files
|
482
545
|
.scope-summary
|
483
|
-
%span.summary-part{"ng-show" => "diff.config_files
|
484
|
-
{{diff.meta.description_a}}: {{diff.config_files
|
485
|
-
%span.summary-part{"ng-show" => "diff.config_files
|
486
|
-
{{diff.meta.description_b}}: {{diff.config_files
|
487
|
-
%span.summary-part{"ng-show" => "diff.config_files
|
546
|
+
%span.summary-part{"ng-show" => "diff.config_files.only_in1"}
|
547
|
+
{{diff.meta.description_a}}: {{diff.config_files.only_in1.files.length || 0}} files
|
548
|
+
%span.summary-part{"ng-show" => "diff.config_files.only_in2"}
|
549
|
+
{{diff.meta.description_b}}: {{diff.config_files.only_in2.files.length || 0}} files
|
550
|
+
%span.summary-part{"ng-show" => "diff.config_files.common"}
|
488
551
|
%a{href: "#config_files_both"}
|
489
552
|
both
|
490
|
-
= ": {{diff.config_files
|
553
|
+
= ": {{diff.config_files.common.files.length}} files"
|
491
554
|
.row.scope_content.collapse.in
|
492
555
|
.row
|
493
556
|
.col-xs-1
|
494
|
-
.col-xs-5{"ng-show" => "diff.config_files
|
557
|
+
.col-xs-5{"ng-show" => "diff.config_files.only_in1"}
|
495
558
|
%only-in-a
|
496
|
-
%render-template{:template => "scope_config_files_partial", :object => "diff.config_files
|
559
|
+
%render-template{:template => "scope_config_files_partial", :object => "diff.config_files.only_in1"}
|
497
560
|
.col-xs-1
|
498
|
-
.col-xs-5{"ng-show" => "diff.config_files
|
561
|
+
.col-xs-5{"ng-show" => "diff.config_files.only_in2"}
|
499
562
|
%only-in-b
|
500
|
-
%render-template{:template => "scope_config_files_partial", :object => "diff.config_files
|
563
|
+
%render-template{:template => "scope_config_files_partial", :object => "diff.config_files.only_in2"}
|
501
564
|
%a.both_anchor{id: "config_files_both"}
|
502
|
-
.row
|
565
|
+
.row
|
566
|
+
.col-xs-1
|
567
|
+
.col-xs-2
|
568
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.config_files.common"}
|
569
|
+
Show common elements in config_files
|
570
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.config_files.common"}
|
571
|
+
Hide common elements in config_files
|
572
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.config_files.common"}
|
503
573
|
.col-xs-1
|
504
574
|
.col-xs-11
|
505
575
|
%in-both
|
506
|
-
|
576
|
+
%render-template{:template => "scope_config_files_partial", :object => "diff.config_files.common"}
|
507
577
|
|
508
578
|
%script#scope_services_partial{:type => "text/ng-template"}
|
509
579
|
%table.table.table-striped.table-hover.table-condensed
|
@@ -528,30 +598,37 @@
|
|
528
598
|
%h2
|
529
599
|
Services
|
530
600
|
.scope-summary
|
531
|
-
%span.summary-part{"ng-show" => "diff.services
|
532
|
-
{{diff.meta.description_a}}: {{diff.services
|
533
|
-
%span.summary-part{"ng-show" => "diff.services
|
534
|
-
{{diff.meta.description_b}}: {{diff.services
|
535
|
-
%span.summary-part{"ng-show" => "diff.services
|
601
|
+
%span.summary-part{"ng-show" => "diff.services.only_in1"}
|
602
|
+
{{diff.meta.description_a}}: {{diff.services.only_in1.services.length || 0}} services ({{diff.services.only_in1.init_system}})
|
603
|
+
%span.summary-part{"ng-show" => "diff.services.only_in2"}
|
604
|
+
{{diff.meta.description_b}}: {{diff.services.only_in2.services.length || 0}} services ({{diff.services.only_in2.init_system}})
|
605
|
+
%span.summary-part{"ng-show" => "diff.services.common"}
|
536
606
|
%a{href: "#services_both"}
|
537
607
|
both
|
538
|
-
= ": {{diff.services
|
608
|
+
= ": {{diff.services.common.services.length}} services ({{diff.services.common.init_system}})"
|
539
609
|
.row.scope_content.collapse.in
|
540
610
|
.row
|
541
611
|
.col-xs-1
|
542
|
-
.col-xs-5{"ng-show" => "diff.services
|
612
|
+
.col-xs-5{"ng-show" => "diff.services.only_in1"}
|
543
613
|
%only-in-a
|
544
|
-
%render-template{:template => "scope_services_partial", :object => "diff.services
|
614
|
+
%render-template{:template => "scope_services_partial", :object => "diff.services.only_in1"}
|
545
615
|
.col-xs-1
|
546
|
-
.col-xs-5{"ng-show" => "diff.services
|
616
|
+
.col-xs-5{"ng-show" => "diff.services.only_in2"}
|
547
617
|
%only-in-b
|
548
|
-
%render-template{:template => "scope_services_partial", :object => "diff.services
|
618
|
+
%render-template{:template => "scope_services_partial", :object => "diff.services.only_in2"}
|
549
619
|
%a.both_anchor{id: "services_both"}
|
550
|
-
.row
|
620
|
+
.row
|
621
|
+
.col-xs-1
|
622
|
+
.col-xs-2
|
623
|
+
%a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.services.common"}
|
624
|
+
Show common elements in services
|
625
|
+
%a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.services.common"}
|
626
|
+
Hide common elements in services
|
627
|
+
.row.scope_common_content.collapse{"ng-show" => "diff.services.common"}
|
551
628
|
.col-xs-1
|
552
629
|
.col-xs-11
|
553
630
|
%in-both
|
554
|
-
%render-template{:template => "scope_services_partial", :object => "diff.services
|
631
|
+
%render-template{:template => "scope_services_partial", :object => "diff.services.common"}
|
555
632
|
|
556
633
|
%script{:src => "assets/diff.js"}
|
557
634
|
%script{:src => "assets/compare/machinery.js"}
|
@@ -594,7 +671,8 @@
|
|
594
671
|
Expand all
|
595
672
|
%a#collapse-all{:href => "#"}
|
596
673
|
Collapse all
|
597
|
-
|
674
|
+
.row
|
675
|
+
.col-xs-9
|
598
676
|
%small.pull-right.pad-top
|
599
677
|
created by
|
600
678
|
%a{:href => "http://machinery-project.org", :target => "_blank"}
|