machinery-tool 1.14.0 → 1.14.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.git_revision +1 -1
  3. data/NEWS +10 -0
  4. data/html/assets/compare/machinery.js +1 -0
  5. data/html/assets/jquery.searcher.min.js +5 -0
  6. data/html/assets/machinery.css +3 -0
  7. data/html/assets/show/machinery.js +10 -4
  8. data/html/comparison.html.haml +18 -652
  9. data/html/index.html.haml +93 -431
  10. data/html/partials/changed_managed_files.html.haml +41 -0
  11. data/html/partials/compare/alert.html.haml +22 -0
  12. data/html/partials/compare/changed_managed_file_list.html.haml +26 -0
  13. data/html/partials/compare/changed_managed_files.html.haml +57 -0
  14. data/html/partials/compare/config_file_list.html.haml +26 -0
  15. data/html/partials/compare/config_files.html.haml +54 -0
  16. data/html/partials/compare/group_list.html.haml +14 -0
  17. data/html/partials/compare/groups.html.haml +52 -0
  18. data/html/partials/compare/os.html.haml +32 -0
  19. data/html/partials/compare/os_table.html.haml +10 -0
  20. data/html/partials/compare/package_list.html.haml +23 -0
  21. data/html/partials/compare/packages.html.haml +66 -0
  22. data/html/partials/compare/pattern_list.html.haml +12 -0
  23. data/html/partials/compare/patterns.html.haml +53 -0
  24. data/html/partials/compare/repositories.html.haml +51 -0
  25. data/html/partials/compare/repository_list.html.haml +28 -0
  26. data/html/partials/compare/service_list.html.haml +11 -0
  27. data/html/partials/compare/services.html.haml +56 -0
  28. data/html/partials/compare/unmanaged_file_list.html.haml +13 -0
  29. data/html/partials/compare/unmanaged_files.html.haml +59 -0
  30. data/html/partials/compare/user_list.html.haml +18 -0
  31. data/html/partials/compare/users.html.haml +52 -0
  32. data/html/partials/config_files.html.haml +57 -0
  33. data/html/partials/groups.html.haml +25 -0
  34. data/html/partials/os.html.haml +26 -0
  35. data/html/partials/packages.html.haml +30 -0
  36. data/html/partials/patterns.html.haml +23 -0
  37. data/html/partials/repositories.html.haml +35 -0
  38. data/html/partials/scope_header.html.haml +17 -0
  39. data/html/partials/services.html.haml +23 -0
  40. data/html/partials/unmanaged_files.html.haml +28 -0
  41. data/html/partials/users.html.haml +29 -0
  42. data/lib/cli.rb +48 -40
  43. data/lib/exceptions.rb +7 -0
  44. data/lib/helper.rb +21 -0
  45. data/lib/hint.rb +1 -1
  46. data/lib/html.rb +9 -1
  47. data/lib/scope_file_access_archive.rb +1 -2
  48. data/lib/scope_file_access_flat.rb +1 -2
  49. data/lib/server.rb +104 -50
  50. data/lib/version.rb +1 -1
  51. data/machinery-helper/version.go +1 -1
  52. data/man/generated/machinery.1.gz +0 -0
  53. data/man/generated/machinery.1.html +106 -16
  54. metadata +47 -18
  55. data/html/assets/angular-sanitize.min.js +0 -16
  56. data/html/assets/angular.min.js +0 -251
  57. data/html/assets/compare/machinery-compare.js +0 -100
  58. data/html/assets/show/machinery-show.js +0 -72
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8b08cffd58243c0597dfd04d3eda40b7decf833a
4
- data.tar.gz: 771159d8c4b48a44fb59d653ed0021af78f5210b
3
+ metadata.gz: 33410867e48fc0bcb7307a3bf675c5625ea2f4ad
4
+ data.tar.gz: b6b56186b5adc312ec8e95eca05aaa42975317ca
5
5
  SHA512:
6
- metadata.gz: 1435204f235b9abbccd1815f16c8dcae31d226b94bbf84f34e642eb8c5c973cfaaf7ba0182eb20d606d253902e27a374477fb2d18df29ac3a33512cd5d0052ba
7
- data.tar.gz: 9d2083f79fe8d6c32e65d6234638040c644f82b370285d648f721ebcd0290b912e524f8c94c90d9e56e2fd4a769bcd6a2b4afe89b36fd09585648205c924bbda
6
+ metadata.gz: 01c9c1baa1f5d82665df2c5b590020a87ccf75caf4906e691f80fbb9064f831419fab55958b855016298dbb87d4edf2ef656de23eaa947e4a182db37ab3cce31
7
+ data.tar.gz: 406612f5da1d81f847e329fc755b6780f7fa5c65d1c31baf09f2c629ef8134105c116c996fc1e53fefd33757a337bcf992cb2d88110615a052bddd47d4140c0f
@@ -1 +1 @@
1
- 9787fc1eff835522740423ff35c98b78205b31cb
1
+ a879bc791c625025e2861c0bc37a2d2207da250a
data/NEWS CHANGED
@@ -1,6 +1,16 @@
1
1
  # Machinery Release Notes
2
2
 
3
3
 
4
+ ## Version 1.14.1 - Fri Oct 09 18:30:13 CEST 2015 - thardeck@suse.de
5
+
6
+ * Fix: Clean up binding the server for HTML view to IP addresses
7
+ (gh#SUSE/machinery#1341)
8
+ * Fix: Make links to sections with common elements clearer in HTML comparison
9
+ view (gh#SUSE/machinery#1222)
10
+ * Fix: XML files are no longer treated as binary files in HTML view
11
+ (gh#SUSE/machinery#1154)
12
+ * Fix: Scrolling issue of file view (gh#SUSE/machinery#1155)
13
+
4
14
  ## Version 1.14.0 - Tue Oct 06 21:26:12 CEST 2015 - thardeck@suse.de
5
15
 
6
16
  * The machinery-helper is now built during gem-installation on x86_64
@@ -73,6 +73,7 @@ $(document).ready(function () {
73
73
  });
74
74
 
75
75
  // Unmanaged files diffs
76
+ $("#diff-unmanaged-files-file").prop("selectedIndex", -1)
76
77
  $("#diff-unmanaged-files-file").change(function(){
77
78
  $("#diff-unmanaged-files-content").hide();
78
79
  $("#diff-unmanaged-files-error").hide();
@@ -0,0 +1,5 @@
1
+ /*! jQuery Searcher Plugin - v0.1.0 - 2014-08-18
2
+ * https://github.com/lloiser/jquery-searcher/
3
+ * Copyright (c) 2014 Lukas Beranek; Licensed MIT
4
+ */
5
+ (function(){"use strict";function a(a){function b(b,c){this.element=b,this.options=a.extend({},f,c),this._create()}function c(a){return a.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")}var d="searcher",e="plugin_"+d,f={itemSelector:"tbody > tr",textSelector:"td",inputSelector:"",caseSensitive:!1,toggle:function(b,c){a(b).toggle(c)}};b.prototype={dispose:function(){this._$input.unbind("."+d);var a=this.options,b=a.toggle||f.toggle;this._$element.find(a.itemSelector).each(function(){b(this,!0)})},_create:function(){var b=this.options;this._$element=a(this.element),this._fn=a.proxy(this._onValueChange,this);var c="input."+d+" change."+d+" keyup."+d;this._$input=a(b.inputSelector).bind(c,this._fn),this._lastValue="";var e=b.toggle||f.toggle;this._$element.find(b.itemSelector).each(function(){e(this,!0)})},_onValueChange:function(){var b=this.options,d=b.textSelector,e=b.toggle||f.toggle,g="gm"+(b.caseSensitive?"":"i"),h=new RegExp("("+c(this._$input.val())+")",g);h.toString()!==this._lastValue&&(this._lastValue=h.toString(),this._$element.find(b.itemSelector).each(function(){var b=a(this),c=d?b.find(d):b,f=!1;c=c.each(function(){return f=f||!!a(this).text().match(h),!f}),e(this,f)}))}},a.fn[d]=function(c){return this.each(function(){var d=a.data(this,e);d&&"dispose"===c?(d.dispose(),a.removeData(this,e)):d?a.extend(d.options,c):"object"==typeof c&&a.data(this,e,new b(this,c))})}}"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a:a(jQuery)}).call(this);
@@ -228,3 +228,6 @@ h1 {
228
228
  border-radius: 50%;
229
229
  }
230
230
 
231
+ .show-common-elements, .hide-common-elements {
232
+ text-decoration: underline;
233
+ }
@@ -1,4 +1,12 @@
1
1
  $(document).ready(function () {
2
+ // Set up filter
3
+ $(".filterable").searcher({
4
+ inputSelector: "#filter"
5
+ });
6
+ $("#reset-filter").click(function() {
7
+ $("#filter").val("").change()
8
+ });
9
+
2
10
  // Align content below floating menu
3
11
  var header_height = $("#nav-bar").height() + 20;
4
12
  $("#content_container, #angular-content").css("margin-top", header_height);
@@ -67,10 +75,7 @@ $(document).ready(function () {
67
75
  }
68
76
  });
69
77
  $('.inspection-details-popover .close').click(function() { $(".inspection_details").popover("hide") });
70
- });
71
-
72
78
 
73
- setupDynamicContent = function() {
74
79
  // Set up file download links
75
80
  $(".file-download").click(function() {
76
81
  $("#file-modal-file-content").hide();
@@ -87,6 +92,7 @@ setupDynamicContent = function() {
87
92
  $("#file-modal-error").html("File is empty.").show();
88
93
  } else {
89
94
  $("#file-modal-file-content").val(res).show();
95
+ $("#file-modal-file-content").scrollTop(0);
90
96
  }
91
97
  }, "text").
92
98
  error(function(res) {
@@ -154,4 +160,4 @@ setupDynamicContent = function() {
154
160
  $this.attr('title', $this.text());
155
161
  }
156
162
  });
157
- };
163
+ });
@@ -7,8 +7,6 @@
7
7
  %meta{:name => "viewport", :content => "width=device-width, initial-scale=1"}
8
8
  %link{:href => "/assets/machinery-base.css", :rel => "stylesheet", :type => "text/css"}/
9
9
  %link{:href => "/assets/machinery.css", :rel => "stylesheet", :type => "text/css"}/
10
- %script{:src => "/assets/angular.min.js"}
11
- %script{:src => "/assets/compare/machinery-compare.js"}
12
10
  %script{:src => "/assets/jquery-2.1.1.min.js"}
13
11
  %script{:src => "/assets/transition.js"}
14
12
  %script{:src => "/assets/collapse.js"}
@@ -17,640 +15,11 @@
17
15
  %style
18
16
  = Diffy::CSS
19
17
 
20
- %script#alert{:type => "text/ng-template"}
21
- #alert_container.scope{"ng-show" => "diff.meta.uninspected"}
22
- .row
23
- .col-xs-10.col-xs-offset-1
24
- .well
25
- %span.text-right.dismiss{:title => "Collapse/Expand"}
26
- %p{"ng-show" => "diff.meta.uninspected[diff.meta.description_a].length"}
27
- Couldn't compare <strong>'{{diff.meta.uninspected[diff.meta.description_a].join(", ")}}'</strong> because they are not present in description <strong>'{{diff.meta.description_a}}'</strong>
28
- %p{"ng-show" => "diff.meta.uninspected[diff.meta.description_b].length"}
29
- Couldn't compare <strong>'{{diff.meta.uninspected[diff.meta.description_b].join(", ")}}'</strong> because they are not present in description <strong>'{{diff.meta.description_b}}'</strong>
30
-
31
- %script#scope_os_partial{:type => "text/ng-template"}
32
- %table.table.table-striped.table-condensed
33
- %tr
34
- %th Name
35
- %td {{object.name}}
36
- %tr
37
- %th Version
38
- %td {{object.version}}
39
- %tr
40
- %th Architecture
41
- %td {{object.architecture}}
42
-
43
- %script#scope_os.partial{:type => "text/ng-template"}
44
- %a.scope_anchor{:id => "os"}
45
- #os_container.scope
46
- .row
47
- .col-xs-1
48
- %a{:href => "#os"}
49
- %img.scope_logo_big{:src => "/assets/logo-os.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Operating System", :"data-content"=>"#{scope_help('os')}"}/
50
- %span.toggle{:title => "Collapse/Expand"}
51
- .col-xs-11
52
- %h2
53
- Operating System
54
- .row.scope_content.collapse.in
55
- .row
56
- .col-xs-1
57
- .col-xs-5{"ng-show" => "diff.os.only_in1"}
58
- %only-in-a
59
- %render-template{:template => "scope_os_partial", :object => "diff.os.only_in1"}
60
- .col-xs-1
61
- .col-xs-5{"ng-show" => "diff.os.only_in2"}
62
- %only-in-b
63
- %render-template{:template => "scope_os_partial", :object => "diff.os.only_in2"}
64
- .row.scope_content_common.collapse.in
65
- .col-xs-1
66
- .col-xs-11{"ng-show" => "diff.os.common"}
67
- %in-both
68
- %render-template{:template => "scope_os_partial", :object => "diff.os.common"}
69
-
70
- %script#scope_packages_partial{:type => "text/ng-template"}
71
- %table.table.table-striped.table-hover.table-condensed
72
- %thead
73
- %tr
74
- %th Name
75
- %th.small Version
76
- %th.small.visible-md.visible-lg Release
77
- %th.small.visible-md.visible-lg Arch
78
- %th.visible-lg Vendor
79
- %th.visible-lg Checksum
80
- %th.tiny.hidden-lg
81
- %tbody
82
- %tr{"ng-repeat" => "package in object"}
83
- %td {{package.name}}
84
- %td {{package.version}}
85
- %td.visible-md.visible-lg {{package.release}}
86
- %td.visible-md.visible-lg {{package.arch}}
87
- %td.visible-lg {{package.vendor}}
88
- %td.visible-lg {{package.checksum}}
89
- %td.hidden-lg{:title => "Name: {{package.name}}\nVersion: {{package.version}}\nRelease: {{package.release}}\n" |
90
- "Architecture: {{package.arch}}\nVendor: {{package.vendor}}\nChecksum: {{package.checksum}}"} ... |
91
-
92
- %script#scope_packages_changed_partial{:type => "text/ng-template"}
93
- %ul.changed
94
- %li{"ng-repeat" => "changed_element in changed_elements"}
95
- {{changed_element}}
96
-
97
- %script#scope_packages.partial{:type => "text/ng-template"}
98
- %a.scope_anchor{:id => "packages"}
99
- #packages_container.scope
100
- .row
101
- .col-xs-1
102
- %a{:href => "#packages"}
103
- %img.scope_logo_big{:src => "/assets/logo-packages.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Packages", :"data-content"=>"#{scope_help('packages')}"}/
104
- %span.toggle{:title => "Collapse/Expand"}
105
- .col-xs-11
106
- %h2
107
- Packages
108
- .scope-summary
109
- %span.summary-part{"ng-show" => "diff.packages.only_in1"}
110
- {{diff.meta.description_a}}: {{diff.packages.only_in1.length}} packages
111
- %span.summary-part{"ng-show" => "diff.packages.only_in2"}
112
- {{diff.meta.description_b}}: {{diff.packages.only_in2.length}} packages
113
- %span.summary-part{"ng-show" => "diff.packages.changed"}
114
- %a{href: "#packages_changed"}
115
- Changed
116
- = ": {{diff.packages.changed.length}} packages"
117
- %span.summary-part{"ng-show" => "diff.packages.common"}
118
- %a{:class=>"show-common-elements", href: "#packages_both"}
119
- both
120
- = ": {{diff.packages.common.length}} packages"
121
- .row.scope_content.collapse.in
122
- .row
123
- .col-xs-1
124
- .col-xs-5.table_container{"ng-show" => "diff.packages.only_in1"}
125
- %only-in-a
126
- %render-template{:template => "scope_packages_partial", :object => "diff.packages.only_in1"}
127
- .col-xs-1
128
- .col-xs-5.table_container{"ng-show" => "diff.packages.only_in2"}
129
- %only-in-b
130
- %render-template{:template => "scope_packages_partial", :object => "diff.packages.only_in2"}
131
- %a.both_anchor{id: "packages_changed"}
132
- .row{"ng-show" => "diff.packages.changed"}
133
- .col-xs-1
134
- .col-xs-11.table_container
135
- %changed
136
- %changed_packages
137
- %a.both_anchor{id: "packages_both"}
138
- .row
139
- .col-xs-1
140
- .col-xs-2
141
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.packages.common"}
142
- Show common elements in packages
143
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.packages.common"}
144
- Hide common elements in packages
145
- .row.scope_common_content.collapse{"ng-show" => "diff.packages.common"}
146
- .col-xs-1
147
- .col-xs-10.table_container
148
- %in-both
149
- %render-template{:template => "scope_packages_partial", :object => "diff.packages.common"}
150
-
151
- %script#scope_patterns_partial{:type => "text/ng-template"}
152
- %table.table.table-striped.table-hover.table-condensed
153
- %thead
154
- %tr
155
- %th Name
156
- %th Version
157
- %th Release
158
- %tbody
159
- %tr{"ng-repeat" => "pattern in object"}
160
- %td {{pattern.name}}
161
- %td {{pattern.version}}
162
- %td {{pattern.release}}
163
-
164
- %script#scope_patterns.partial{:type => "text/ng-template"}
165
- %a.scope_anchor{:id => "patterns"}
166
- #patterns_container.scope
167
- .row
168
- .col-xs-1
169
- %a{:href => "#patterns"}
170
- %img.scope_logo_big{:src => "/assets/logo-patterns.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Patterns", :"data-content"=>"#{scope_help('patterns')}"}/
171
- %span.toggle{:title => "Collapse/Expand"}
172
- .col-xs-11
173
- %h2
174
- Patterns
175
- .scope-summary
176
- %span.summary-part{"ng-show" => "diff.patterns.only_in1"}
177
- {{diff.meta.description_a}}: {{diff.patterns.only_in1.length}} patterns
178
- %span.summary-part{"ng-show" => "diff.patterns.only_in2"}
179
- {{diff.meta.description_b}}: {{diff.patterns.only_in2.length}} patterns
180
- %span.summary-part{"ng-show" => "diff.patterns.common"}
181
- %a{:class=>"show-common-elements", href: "#patterns_both"}
182
- both
183
- = ": {{diff.patterns.common.length}} patterns"
184
- .row.scope_content.collapse.in
185
- .row
186
- .col-xs-1
187
- .col-xs-5{"ng-show" => "diff.patterns.only_in1"}
188
- %only-in-a
189
- %render-template{:template => "scope_patterns_partial", :object => "diff.patterns.only_in1"}
190
- .col-xs-1
191
- .col-xs-5{"ng-show" => "diff.patterns.only_in2"}
192
- %only-in-b
193
- %render-template{:template => "scope_patterns_partial", :object => "diff.patterns.only_in2"}
194
- %a.both_anchor{id: "patterns_both"}
195
- .row
196
- .col-xs-1
197
- .col-xs-2
198
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.patterns.common"}
199
- Show common elements in patterns
200
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.patterns.common"}
201
- Hide common elements in patterns
202
- .row.scope_common_content.collapse{"ng-show" => "diff.patterns.common"}
203
- .col-xs-1
204
- .col-xs-11
205
- %in-both
206
- %render-template{:template => "scope_patterns_partial", :object => "diff.patterns.common"}
207
-
208
- %script#scope_users_partial{:type => "text/ng-template"}
209
- %table.table.table-striped.table-hover.table-condensed
210
- %thead
211
- %tr
212
- %th Name
213
- %th.small UID
214
- %th.small GID
215
- %th Comment
216
- %th Home
217
- %th.small Shell
218
- %tbody
219
- %tr{"ng-repeat" => "user in object"}
220
- %td {{user.name}}
221
- %td {{user.uid}}
222
- %td {{user.gid}}
223
- %td {{user.comment}}
224
- %td {{user.home}}
225
- %td {{user.shell}}
226
- %script#scope_users{:type => "text/ng-template"}
227
- %a.scope_anchor{:id => "users"}
228
- #users_container.scope
229
- .row
230
- .col-xs-1
231
- %a{:href => "#users"}
232
- %img.scope_logo_big{:src => "/assets/logo-users.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Users", :"data-content"=>"#{scope_help('users')}"}/
233
- %span.toggle{:title => "Collapse/Expand"}
234
- .col-xs-11
235
- %h2
236
- Users
237
- .scope-summary
238
- %span.summary-part{"ng-show" => "diff.users.only_in1"}
239
- {{diff.meta.description_a}}: {{diff.users.only_in1.length}} users
240
- %span.summary-part{"ng-show" => "diff.users.only_in2"}
241
- {{diff.meta.description_b}}: {{diff.users.only_in2.length}} users
242
- %span.summary-part{"ng-show" => "diff.users.common"}
243
- %a{:class=>"show-common-elements", href: "#users_both"}
244
- both
245
- = ": {{diff.users.common.length}} users"
246
- .row.scope_content.collapse.in
247
- .row
248
- .col-xs-1
249
- .col-xs-5{"ng-show" => "diff.users.only_in1"}
250
- %only-in-a
251
- %render-template{:template => "scope_users_partial", :object => "diff.users.only_in1"}
252
- .col-xs-1
253
- .col-xs-5{"ng-show" => "diff.users.only_in2"}
254
- %only-in-b
255
- %render-template{:template => "scope_users_partial", :object => "diff.users.only_in2"}
256
- %a.both_anchor{id: "users_both"}
257
- .row
258
- .col-xs-1
259
- .col-xs-2
260
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.users.common"}
261
- Show common elements in users
262
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.users.common"}
263
- Hide common elements in users
264
- .row.scope_common_content.collapse{"ng-show" => "diff.users.common"}
265
- .col-xs-1
266
- .col-xs-11
267
- %in-both
268
- %render-template{:template => "scope_users_partial", :object => "diff.users.common"}
269
-
270
- %script#scope_unmanaged_files_partial{:type => "text/ng-template"}
271
- %p
272
- <strong>Files extracted:</strong> {{object.extracted ? "yes" : "no"}}
273
- %table.table.table-striped.table-hover.table-condensed.files-table{{"ng-show" => "object.files"}}
274
- %thead
275
- %tr
276
- %th Name
277
- %th Type
278
- %tbody
279
- %tr{"ng-repeat" => "file in object.files"}
280
- %td {{file.name}}
281
- %td {{file.type}}
282
- %script#scope_unmanaged_files.partial{:type => "text/ng-template"}
283
- %a.scope_anchor{:id => "unmanaged_files"}
284
- #unmanaged_files_container.scope
285
- .row
286
- .col-xs-1
287
- %a{:href => "#unmanaged_files"}
288
- %img.scope_logo_big{:src => "/assets/logo-unmanaged-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Unmanaged Files", :"data-content"=>"#{scope_help('unmanaged_files')}"}/
289
- %span.toggle{:title => "Collapse/Expand"}
290
- .col-xs-11
291
- %h2
292
- Unmanaged Files
293
- .scope-summary
294
- %span.summary-part{"ng-show" => "diff.unmanaged_files.only_in1"}
295
- {{diff.meta.description_a}}: {{diff.unmanaged_files.only_in1.files.length || 0}} files
296
- %span.summary-part{"ng-show" => "diff.unmanaged_files.only_in2"}
297
- {{diff.meta.description_b}}: {{diff.unmanaged_files.only_in2.files.length || 0}} files
298
- %span.summary-part{"ng-show" => "diff.unmanaged_files.common"}
299
- %a{:class=>"show-common-elements", href: "#unmanaged_files_both"}
300
- both
301
- = ": {{diff.unmanaged_files.common.files.length}} files"
302
- %span.summary-part{"ng-show" => "diffableUnmanagedFiles.length"}
303
- %a#diff-unmanaged-files{"data-toggle" => "modal", "data-target" => "#diff-unmanaged-files"}
304
- Diff files
305
- .row.scope_content.collapse.in
306
- .row{"ng-show" => "diff.unmanaged_files.only_in1 || diff.unmanaged_files.only_in2"}
307
- .col-xs-1
308
- .col-xs-5
309
- %only-in-a
310
- %render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files.only_in1"}
311
- .col-xs-1
312
- .col-xs-5
313
- %only-in-b
314
- %render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files.only_in2"}
315
- %a.both_anchor{id: "unmanaged_files_both"}
316
- .row
317
- .col-xs-1
318
- .col-xs-4
319
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.unmanaged_files.common"}
320
- Show common elements in unmanaged_files
321
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.unmanaged_files.common"}
322
- Hide common elements in unmanaged_files
323
- .row.scope_common_content.collapse{"ng-show" => "diff.unmanaged_files.common"}
324
- .col-xs-1
325
- .col-xs-11
326
- %in-both
327
- %render-template{:template => "scope_unmanaged_files_partial", :object => "diff.unmanaged_files.common"}
328
-
329
- %script#scope_groups_partial{:type => "text/ng-template"}
330
- %table.table.table-striped.table-hover.table-condensed
331
- %thead
332
- %tr
333
- %th Name
334
- %th GID
335
- %th Password
336
- %th Users
337
- %tbody
338
- %tr{"ng-repeat" => "group in object"}
339
- %td {{group.name}}
340
- %td {{group.gid}}
341
- %td {{group.password}}
342
- %td {{group.users.join(",")}}
343
- %script#scope_groups{:type => "text/ng-template"}
344
- %a.scope_anchor{:id => "groups"}
345
- #groups_container.scope
346
- .row
347
- .col-xs-1
348
- %a{:href => "#groups"}
349
- %img.scope_logo_big{:src => "/assets/logo-groups.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Groups", :"data-content"=>"#{scope_help('groups')}"}/
350
- %span.toggle{:title => "Collapse/Expand"}
351
- .col-xs-11
352
- %h2
353
- Groups
354
- .scope-summary
355
- %span.summary-part{"ng-show" => "diff.groups.only_in1"}
356
- {{diff.meta.description_a}}: {{diff.groups.only_in1.length}} groups
357
- %span.summary-part{"ng-show" => "diff.groups.only_in2"}
358
- {{diff.meta.description_b}}: {{diff.groups.only_in2.length}} groups
359
- %span.summary-part{"ng-show" => "diff.groups.common"}
360
- %a{:class=>"show-common-elements", href: "#groups_both"}
361
- both
362
- = ": {{diff.groups.common.length}} groups"
363
- .row.scope_content.collapse.in
364
- .row
365
- .col-xs-1
366
- .col-xs-5{"ng-show" => "diff.groups.only_in1"}
367
- %only-in-a
368
- %render-template{:template => "scope_groups_partial", :object => "diff.groups.only_in1"}
369
- .col-xs-1
370
- .col-xs-5{"ng-show" => "diff.groups.only_in2"}
371
- %only-in-b
372
- %render-template{:template => "scope_groups_partial", :object => "diff.groups.only_in2"}
373
- %a.both_anchor{id: "groups_both"}
374
- .row
375
- .col-xs-1
376
- .col-xs-2
377
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.groups.common"}
378
- Show common elements in groups
379
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.groups.common"}
380
- Hide common elements in groups
381
- .row.scope_common_content.collapse{"ng-show" => "diff.groups.common"}
382
- .col-xs-1
383
- .col-xs-11
384
- %in-both
385
- %render-template{:template => "scope_groups_partial", :object => "diff.groups.common"}
386
-
387
- %script#scope_repositories_partial{:type => "text/ng-template"}
388
- %table.table.table-striped.table-hover.table-condensed
389
- %thead
390
- %tr
391
- %th Name
392
- %th Alias
393
- %th URL
394
- %th.small Type
395
- %th.small Enabled
396
- %th.small.visible-lg Autorefresh
397
- %th.small.visible-lg GPG Check
398
- %th.small.visible-lg Priority
399
- %th.tiny.hidden-lg
400
- %tbody
401
- %tr{"ng-repeat" => "repo in object"}
402
- %td {{repo.name}}
403
- %td {{repo.alias}}
404
- %td
405
- %a{:href => "{{repo.url}}" } {{repo.url}}
406
- %td {{repo.type}}
407
- %td {{repo.enabled}}
408
- %td.visible-lg {{repo.autorefresh}}
409
- %td.visible-lg {{repo.gpgcheck}}
410
- %td.visible-lg {{repo.priority}}
411
- %td.hidden-lg{:title => "Name: {{repo.name}}\nAlias: {{repo.alias}}\nUrl: {{repo.url}}\n" |
412
- "Type: {{repo.type}}\nEnabled: {{repo.enabled}}\nAutorefresh: {{repo.autorefresh}}\n" |
413
- "GPG Check: {{repo.gpgcheck}}\nPriority: {{repo.priority}}"} ... |
414
- %script#scope_repositories.partial{:type => "text/ng-template"}
415
- %a.scope_anchor{:id => "repositories"}
416
- #repositories_container.scope
417
- .row
418
- .col-xs-1
419
- %a{:href => "#repositories"}
420
- %img.scope_logo_big{:src => "/assets/logo-repositories.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Repositories", :"data-content"=>"#{scope_help('repositories')}"}/
421
- %span.toggle{:title => "Collapse/Expand"}
422
- .col-xs-11
423
- %h2
424
- Repositories
425
- .scope-summary
426
- %span.summary-part{"ng-show" => "diff.repositories.only_in1"}
427
- {{diff.meta.description_a}}: {{diff.repositories.only_in1.length}} repos
428
- %span.summary-part{"ng-show" => "diff.repositories.only_in2"}
429
- {{diff.meta.description_b}}: {{diff.repositories.only_in2.length}} repos
430
- %span.summary-part{"ng-show" => "diff.repositories.common"}
431
- %a{:class=>"show-common-elements", href: "#repositories_both"}
432
- both
433
- = ": {{diff.repositories.common.length}} repos"
434
- .row.scope_content.collapse.in
435
- .row
436
- .col-xs-1
437
- .col-xs-5{"ng-show" => "diff.repositories.only_in1"}
438
- %only-in-a
439
- %render-template{:template => "scope_repositories_partial", :object => "diff.repositories.only_in1"}
440
- .col-xs-1
441
- .col-xs-5{"ng-show" => "diff.repositories.only_in2"}
442
- %only-in-b
443
- %render-template{:template => "scope_repositories_partial", :object => "diff.repositories.only_in2"}
444
- %a.both_anchor{id: "repositories_both"}
445
- .row
446
- .col-xs-1
447
- .col-xs-2
448
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.repositories.common"}
449
- Show common elements in repositories
450
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.repositories.common"}
451
- Hide common elements in repositories
452
- .row.scope_common_content.collapse{"ng-show" => "diff.repositories.common"}
453
- .col-xs-1
454
- .col-xs-11
455
- %in-both
456
- %render-template{:template => "scope_repositories_partial", :object => "diff.repositories.common"}
457
-
458
- %script#scope_changed_managed_files_partial{:type => "text/ng-template"}
459
- %p
460
- <strong>Files extracted:</strong> {{object.extracted ? "yes" : "no"}}
461
- %table.table.table-striped.table-hover.table-condensed.files-table{{"ng-show" => "object.files"}}
462
- %thead
463
- %tr
464
- %th Name
465
- %th Package Name
466
- %th Package Version
467
- %th.small Changes
468
- %th.small Mode
469
- %th.small User
470
- %th.small Group
471
- %tbody
472
- %tr{"ng-repeat" => "file in object.files"}
473
- %td {{file.name}}
474
- %td {{file.package_name}}
475
- %td {{file.package_version}}
476
- %td {{file.changes.join(",")}}
477
- %span{"ng-show" => "file.error_message", :title => "{{file.error_message}}"} (details)
478
- %td {{file.mode}}
479
- %td {{file.user}}
480
- %td {{file.group}}
481
- %script#scope_changed_managed_files.partial{:type => "text/ng-template"}
482
- %a.scope_anchor{:id => "changed_managed_files"}
483
- #changed_managed_files_container.scope
484
- .row
485
- .col-xs-1
486
- %a{:href => "#changed_managed_files"}
487
- %img.scope_logo_big{:src => "/assets/logo-changed-managed-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Changed Managed Files", :"data-content"=>"#{scope_help('changed_managed_files')}"}/
488
- %span.toggle{:title => "Collapse/Expand"}
489
- .col-xs-11
490
- %h2
491
- Changed Managed Files
492
- .scope-summary
493
- %span.summary-part{"ng-show" => "diff.changed_managed_files.only_in1"}
494
- {{diff.meta.description_a}}: {{diff.changed_managed_files.only_in1.files.length || 0}} files
495
- %span.summary-part{"ng-show" => "diff.changed_managed_files.only_in2"}
496
- {{diff.meta.description_b}}: {{diff.changed_managed_files.only_in2.files.length || 0}} files
497
- %span.summary-part{"ng-show" => "diff.changed_managed_files.common"}
498
- %a{:class=>"show-common-elements", href: "#changed_managed_files_both"}
499
- both
500
- = ": {{diff.changed_managed_files.common.files.length}} files"
501
- .row.scope_content.collapse.in
502
- .row
503
- .col-xs-1
504
- .col-xs-5{"ng-show" => "diff.changed_managed_files.only_in1"}
505
- %only-in-a
506
- %render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files.only_in1"}
507
- .col-xs-1
508
- .col-xs-5{"ng-show" => "diff.changed_managed_files.only_in2"}
509
- %only-in-b
510
- %render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files.only_in2"}
511
- %a.both_anchor{id: "changed_managed_files_both"}
512
- .row
513
- .col-xs-1
514
- .col-xs-4
515
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.changed_managed_files.common"}
516
- Show common elements in changed_managed_files
517
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.changed_managed_files.common"}
518
- Hide common elements in changed_managed_files
519
- .row.scope_common_content.collapse{"ng-show" => "diff.changed_managed_files.common"}
520
- .col-xs-1
521
- .col-xs-11
522
- %in-both
523
- %render-template{:template => "scope_changed_managed_files_partial", :object => "diff.changed_managed_files.common"}
524
-
525
- %script#scope_config_files_partial{:type => "text/ng-template"}
526
- %p
527
- <strong>Files extracted:</strong> {{object.extracted ? "yes" : "no"}}
528
- %table.table.table-striped.table-hover.table-condensed.files-table{{"ng-show" => "object.files"}}
529
- %thead
530
- %tr
531
- %th Name
532
- %th Package Name
533
- %th Package Version
534
- %th Changes
535
- %th Mode
536
- %th User
537
- %th Group
538
- %tbody
539
- %tr{"ng-repeat" => "file in object.files"}
540
- %td {{file.name}}
541
- %td {{file.package_name}}
542
- %td {{file.package_version}}
543
- %td
544
- {{file.changes.join(",")}}
545
- %span{"ng-show" => "file.error_message", :title => "{{file.error_message}}"} (details)
546
- %td {{file.mode}}
547
- %td {{file.user}}
548
- %td {{file.group}}
549
-
550
- %script#scope_config_files.partial{:type => "text/ng-template"}
551
- %a.scope_anchor{:id => "config_files"}
552
- #config_files_container.scope
553
- .row
554
- .col-xs-1
555
- %a{:href => "#config_files"}
556
- %img.scope_logo_big{:src => "/assets/logo-config-files.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Config Files", :"data-content"=>"#{scope_help('config_files')}"}/
557
- %span.toggle{:title => "Collapse/Expand"}
558
- .col-xs-11
559
- %h2
560
- Config Files
561
- .scope-summary
562
- %span.summary-part{"ng-show" => "diff.config_files.only_in1"}
563
- {{diff.meta.description_a}}: {{diff.config_files.only_in1.files.length || 0}} files
564
- %span.summary-part{"ng-show" => "diff.config_files.only_in2"}
565
- {{diff.meta.description_b}}: {{diff.config_files.only_in2.files.length || 0}} files
566
- %span.summary-part{"ng-show" => "diff.config_files.common"}
567
- %a{:class=>"show-common-elements", href: "#config_files_both"}
568
- both
569
- = ": {{diff.config_files.common.files.length}} files"
570
- .row.scope_content.collapse.in
571
- .row
572
- .col-xs-1
573
- .col-xs-5{"ng-show" => "diff.config_files.only_in1"}
574
- %only-in-a
575
- %render-template{:template => "scope_config_files_partial", :object => "diff.config_files.only_in1"}
576
- .col-xs-1
577
- .col-xs-5{"ng-show" => "diff.config_files.only_in2"}
578
- %only-in-b
579
- %render-template{:template => "scope_config_files_partial", :object => "diff.config_files.only_in2"}
580
- %a.both_anchor{id: "config_files_both"}
581
- .row
582
- .col-xs-1
583
- .col-xs-2
584
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.config_files.common"}
585
- Show common elements in config_files
586
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.config_files.common"}
587
- Hide common elements in config_files
588
- .row.scope_common_content.collapse{"ng-show" => "diff.config_files.common"}
589
- .col-xs-1
590
- .col-xs-11
591
- %in-both
592
- %render-template{:template => "scope_config_files_partial", :object => "diff.config_files.common"}
593
-
594
- %script#scope_services_partial{:type => "text/ng-template"}
595
- %table.table.table-striped.table-hover.table-condensed
596
- %thead
597
- %tr
598
- %th Name
599
- %th State
600
- %tbody
601
- %tr{"ng-repeat" => "service in object.services"}
602
- %td {{service.name}}
603
- %td{:class=>"{{object.init_system}}_{{service.state}}"}
604
- {{service.state}}
605
- %script#scope_services.partial{:type => "text/ng-template"}
606
- %a.scope_anchor{:id => "services"}
607
- #services_container.scope
608
- .row
609
- .col-xs-1
610
- %a{:href => "#services"}
611
- %img.scope_logo_big{:src => "/assets/logo-services.png", :class=>"over", :"data-toggle"=>"popover", :title=>"Services", :"data-content"=>"#{scope_help('services')}"}/
612
- %span.toggle{:title => "Collapse/Expand"}
613
- .col-xs-11
614
- %h2
615
- Services
616
- .scope-summary
617
- %span.summary-part{"ng-show" => "diff.services.only_in1"}
618
- {{diff.meta.description_a}}: {{diff.services.only_in1.services.length || 0}} services ({{diff.services.only_in1.init_system}})
619
- %span.summary-part{"ng-show" => "diff.services.only_in2"}
620
- {{diff.meta.description_b}}: {{diff.services.only_in2.services.length || 0}} services ({{diff.services.only_in2.init_system}})
621
- %span.summary-part{"ng-show" => "diff.services.common"}
622
- %a{:class=>"show-common-elements", href: "#services_both"}
623
- both
624
- = ": {{diff.services.common.services.length}} services ({{diff.services.common.init_system}})"
625
- .row.scope_content.collapse.in
626
- .row
627
- .col-xs-1
628
- .col-xs-5{"ng-show" => "diff.services.only_in1"}
629
- %only-in-a
630
- %render-template{:template => "scope_services_partial", :object => "diff.services.only_in1"}
631
- .col-xs-1
632
- .col-xs-5{"ng-show" => "diff.services.only_in2"}
633
- %only-in-b
634
- %render-template{:template => "scope_services_partial", :object => "diff.services.only_in2"}
635
- %a.both_anchor{id: "services_both"}
636
- .row
637
- .col-xs-1
638
- .col-xs-2
639
- %a{:class=>"show-common-elements", :href => "#", "ng-show" => "diff.services.common"}
640
- Show common elements in services
641
- %a{:class=>"hide-common-elements", :href => "#", :style => "display: none", "ng-show" => "diff.services.common"}
642
- Hide common elements in services
643
- .row.scope_common_content.collapse{"ng-show" => "diff.services.common"}
644
- .col-xs-1
645
- .col-xs-11
646
- %in-both
647
- %render-template{:template => "scope_services_partial", :object => "diff.services.common"}
648
-
649
18
  %script{:src => "/assets/compare/machinery.js"}
650
19
  %script{:src => "/assets/bootstrap-tooltip.js"}
651
20
  %script{:src => "/assets/bootstrap-popover.js"}
652
21
 
653
- %body{"ng-controller" => "compareController", "data-description-a" => description_a, "data-description-b" => description_b}
22
+ %body{ "data-description-a" => @description_a.name, "data-description-b" => @description_b.name }
654
23
  #diff-unmanaged-files.modal.fade
655
24
  .modal-dialog.modal-lg
656
25
  .modal-content
@@ -662,10 +31,11 @@
662
31
  .modal-body
663
32
  .row
664
33
  File
665
- %select#diff-unmanaged-files-file{"ng-options" => "file for file in diffableUnmanagedFiles track by file",
666
- "ng-model" => "selected"}
34
+ %select#diff-unmanaged-files-file
35
+ - diffable_unmanaged_files.each do |file|
36
+ %option{ label: file, value: file }
667
37
  .row#diff-unmanaged-files-content{"style" => "display: none"}
668
- Diff ('#{description_a}' -> '#{description_b}')
38
+ Diff ('#{@description_a.name}' -> '#{@description_b.name}')
669
39
  #diff-unmanaged-files-diff
670
40
  #diff-unmanaged-files-error{"style" => "display: none"}
671
41
  #diff-unmanaged-files-spinner{"style" => "display: none"}
@@ -680,7 +50,7 @@
680
50
  .col-xs-1
681
51
  .col-xs-10
682
52
  %h1
683
- Comparing '#{description_a}' with '#{description_b}'
53
+ Comparing '#{@description_a.name}' with '#{@description_b.name}'
684
54
  %span.scope-navigation
685
55
  Scopes:
686
56
  %a{:href => "#os", :title => "Operating System", "ng-show" => "diff.os"}
@@ -717,19 +87,15 @@
717
87
  Machinery
718
88
 
719
89
  #content_container
720
- .row{"ng-hide" => "diff"}
721
- .col-xs-11.col-xs-offset-1
722
- %p
723
- Loading comparison results. Please wait...
724
- %div{"ng-show" => "diff"}
725
- %div{"src" => "'alert'", "ng-include" => true}
726
- %div{"src" => "'scope_os'", "ng-include" => true, "ng-show" => "diff.os"}
727
- %div{"src" => "'scope_packages'", "ng-include" => true, "ng-show" => "diff.packages"}
728
- %div{"src" => "'scope_patterns'", "ng-include" => true, "ng-show" => "diff.patterns"}
729
- %div{"src" => "'scope_users'", "ng-include" => true, "ng-show" => "diff.users"}
730
- %div{"src" => "'scope_groups'", "ng-include" => true, "ng-show" => "diff.groups"}
731
- %div{"src" => "'scope_repositories'", "ng-include" => true, "ng-show" => "diff.repositories"}
732
- %div{"src" => "'scope_unmanaged_files'", "ng-include" => true, "ng-show" => "diff.unmanaged_files"}
733
- %div{"src" => "'scope_changed_managed_files'", "ng-include" => true, "ng-show" => "diff.changed_managed_files"}
734
- %div{"src" => "'scope_config_files'", "ng-include" => true, "ng-show" => "diff.config_files"}
735
- %div{"src" => "'scope_services'", "ng-include" => true, "ng-show" => "diff.services"}
90
+ %div
91
+ = render_partial "compare/alert"
92
+ = render_partial "compare/os"
93
+ = render_partial "compare/packages"
94
+ = render_partial "compare/patterns"
95
+ = render_partial "compare/users"
96
+ = render_partial "compare/groups"
97
+ = render_partial "compare/repositories"
98
+ = render_partial "compare/unmanaged_files"
99
+ = render_partial "compare/changed_managed_files"
100
+ = render_partial "compare/config_files"
101
+ = render_partial "compare/services"