chef-server-slice 0.7.10

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.
Files changed (158) hide show
  1. data/LICENSE +201 -0
  2. data/README.rdoc +135 -0
  3. data/app/controllers/application.rb +228 -0
  4. data/app/controllers/cookbook_attributes.rb +59 -0
  5. data/app/controllers/cookbook_definitions.rb +60 -0
  6. data/app/controllers/cookbook_files.rb +94 -0
  7. data/app/controllers/cookbook_libraries.rb +60 -0
  8. data/app/controllers/cookbook_recipes.rb +59 -0
  9. data/app/controllers/cookbook_templates.rb +80 -0
  10. data/app/controllers/cookbooks.rb +63 -0
  11. data/app/controllers/exceptions.rb +33 -0
  12. data/app/controllers/main.rb +7 -0
  13. data/app/controllers/nodes.rb +144 -0
  14. data/app/controllers/openid_consumer.rb +133 -0
  15. data/app/controllers/openid_register.rb +113 -0
  16. data/app/controllers/openid_server.rb +252 -0
  17. data/app/controllers/roles.rb +138 -0
  18. data/app/controllers/search.rb +58 -0
  19. data/app/controllers/search_entries.rb +73 -0
  20. data/app/controllers/status.rb +34 -0
  21. data/app/helpers/application_helper.rb +144 -0
  22. data/app/helpers/cookbook_attributes_helper.rb +7 -0
  23. data/app/helpers/cookbook_definitions_helper.rb +8 -0
  24. data/app/helpers/cookbook_files_helper.rb +8 -0
  25. data/app/helpers/cookbook_libraries_helper.rb +7 -0
  26. data/app/helpers/cookbook_recipes_helper.rb +8 -0
  27. data/app/helpers/cookbook_templates_helper.rb +8 -0
  28. data/app/helpers/cookbooks_helper.rb +31 -0
  29. data/app/helpers/exceptions_helper.rb +6 -0
  30. data/app/helpers/global_helpers.rb +39 -0
  31. data/app/helpers/nodes_helper.rb +33 -0
  32. data/app/helpers/openid_consumer_helper.rb +8 -0
  33. data/app/helpers/openid_register_helper.rb +8 -0
  34. data/app/helpers/openid_server_helper.rb +6 -0
  35. data/app/helpers/openid_server_helpers.rb +29 -0
  36. data/app/helpers/roles_helper.rb +5 -0
  37. data/app/helpers/search_entries_helper.rb +8 -0
  38. data/app/helpers/search_helper.rb +38 -0
  39. data/app/helpers/status_helper.rb +26 -0
  40. data/app/views/cookbook_templates/index.html.haml +7 -0
  41. data/app/views/cookbooks/index.html.haml +10 -0
  42. data/app/views/cookbooks/show.html.haml +40 -0
  43. data/app/views/exceptions/bad_request.json.erb +1 -0
  44. data/app/views/exceptions/internal_server_error.html.erb +216 -0
  45. data/app/views/exceptions/not_acceptable.html.erb +63 -0
  46. data/app/views/exceptions/not_found.html.erb +47 -0
  47. data/app/views/exceptions/standard_error.html.erb +217 -0
  48. data/app/views/layout/chef_server_slice.html.haml +53 -0
  49. data/app/views/layout/login.html.haml +37 -0
  50. data/app/views/main/index.html.erb +1 -0
  51. data/app/views/nodes/_action.html.haml +13 -0
  52. data/app/views/nodes/_form.html.haml +56 -0
  53. data/app/views/nodes/_navigation.html.haml +9 -0
  54. data/app/views/nodes/_resource.html.haml +22 -0
  55. data/app/views/nodes/edit.html.haml +7 -0
  56. data/app/views/nodes/index.html.haml +25 -0
  57. data/app/views/nodes/new.html.haml +6 -0
  58. data/app/views/nodes/show.html.haml +60 -0
  59. data/app/views/openid_consumer/index.html.haml +23 -0
  60. data/app/views/openid_consumer/start.html.haml +4 -0
  61. data/app/views/openid_login/index.html.haml +5 -0
  62. data/app/views/openid_register/index.html.haml +19 -0
  63. data/app/views/openid_register/show.html.haml +7 -0
  64. data/app/views/openid_server/decide.html.haml +27 -0
  65. data/app/views/roles/_form.html.haml +48 -0
  66. data/app/views/roles/_navigation.html.haml +9 -0
  67. data/app/views/roles/edit.html.haml +6 -0
  68. data/app/views/roles/index.html.haml +22 -0
  69. data/app/views/roles/new.html.haml +6 -0
  70. data/app/views/roles/show.html.haml +29 -0
  71. data/app/views/search/_search_form.html.haml +6 -0
  72. data/app/views/search/index.html.haml +9 -0
  73. data/app/views/search/show.html.haml +14 -0
  74. data/app/views/search_entries/index.html.haml +8 -0
  75. data/app/views/search_entries/show.html.haml +7 -0
  76. data/app/views/status/index.html.haml +88 -0
  77. data/config/init.rb +48 -0
  78. data/config/router.rb +6 -0
  79. data/lib/chef-server-slice.rb +150 -0
  80. data/lib/chef-server-slice/merbtasks.rb +103 -0
  81. data/lib/chef-server-slice/slicetasks.rb +20 -0
  82. data/lib/chef-server-slice/spectasks.rb +53 -0
  83. data/public/facebox/README.txt +4 -0
  84. data/public/facebox/b.png +0 -0
  85. data/public/facebox/bl.png +0 -0
  86. data/public/facebox/br.png +0 -0
  87. data/public/facebox/closelabel.gif +0 -0
  88. data/public/facebox/facebox.css +95 -0
  89. data/public/facebox/facebox.js +319 -0
  90. data/public/facebox/loading.gif +0 -0
  91. data/public/facebox/tl.png +0 -0
  92. data/public/facebox/tr.png +0 -0
  93. data/public/images/avatar.png +0 -0
  94. data/public/images/black_big.png +0 -0
  95. data/public/images/indicator.gif +0 -0
  96. data/public/images/merb.jpg +0 -0
  97. data/public/images/toggle-collapse-dark.png +0 -0
  98. data/public/images/toggle-collapse-light.png +0 -0
  99. data/public/images/toggle-collapse.gif +0 -0
  100. data/public/images/toggle-expand-dark.png +0 -0
  101. data/public/images/toggle-expand-light.png +0 -0
  102. data/public/images/toggle-expand.gif +0 -0
  103. data/public/images/treeBuilderImages/Thumbs.db +0 -0
  104. data/public/images/treeBuilderImages/doc.gif +0 -0
  105. data/public/images/treeBuilderImages/docNode.gif +0 -0
  106. data/public/images/treeBuilderImages/docNodeLast.gif +0 -0
  107. data/public/images/treeBuilderImages/docNodeLastFirst.gif +0 -0
  108. data/public/images/treeBuilderImages/folder.gif +0 -0
  109. data/public/images/treeBuilderImages/folderNode.gif +0 -0
  110. data/public/images/treeBuilderImages/folderNodeFirst.gif +0 -0
  111. data/public/images/treeBuilderImages/folderNodeLast.gif +0 -0
  112. data/public/images/treeBuilderImages/folderNodeLastFirst.gif +0 -0
  113. data/public/images/treeBuilderImages/folderNodeOpen.gif +0 -0
  114. data/public/images/treeBuilderImages/folderNodeOpenFirst.gif +0 -0
  115. data/public/images/treeBuilderImages/folderNodeOpenLast.gif +0 -0
  116. data/public/images/treeBuilderImages/folderNodeOpenLastFirst.gif +0 -0
  117. data/public/images/treeBuilderImages/folderOpen.gif +0 -0
  118. data/public/images/treeBuilderImages/vertLine.gif +0 -0
  119. data/public/javascripts/JSONeditor.js +1171 -0
  120. data/public/javascripts/chef.js +126 -0
  121. data/public/javascripts/jquery-1.3.2.min.js +19 -0
  122. data/public/javascripts/jquery-ui-1.7.1.custom.min.js +65 -0
  123. data/public/javascripts/jquery.editinline.js +108 -0
  124. data/public/javascripts/jquery.jeditable.mini.js +30 -0
  125. data/public/javascripts/jquery.livequery.js +250 -0
  126. data/public/javascripts/jquery.localscroll.js +104 -0
  127. data/public/javascripts/jquery.scrollTo.js +150 -0
  128. data/public/javascripts/jquery.tools.min.js +17 -0
  129. data/public/javascripts/jquery.treeTable.min.js +165 -0
  130. data/public/stylesheets/base.css +336 -0
  131. data/public/stylesheets/chef.css +157 -0
  132. data/public/stylesheets/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  133. data/public/stylesheets/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  134. data/public/stylesheets/images/ui-bg_glass_100_f0f0f0_1x400.png +0 -0
  135. data/public/stylesheets/images/ui-bg_glass_50_99c2ff_1x400.png +0 -0
  136. data/public/stylesheets/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  137. data/public/stylesheets/images/ui-bg_glass_80_e6e6e6_1x400.png +0 -0
  138. data/public/stylesheets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  139. data/public/stylesheets/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  140. data/public/stylesheets/images/ui-bg_highlight-soft_100_e7eef3_1x100.png +0 -0
  141. data/public/stylesheets/images/ui-icons_222222_256x240.png +0 -0
  142. data/public/stylesheets/images/ui-icons_2694e8_256x240.png +0 -0
  143. data/public/stylesheets/images/ui-icons_2e83ff_256x240.png +0 -0
  144. data/public/stylesheets/images/ui-icons_72a7cf_256x240.png +0 -0
  145. data/public/stylesheets/images/ui-icons_888888_256x240.png +0 -0
  146. data/public/stylesheets/images/ui-icons_cd0a0a_256x240.png +0 -0
  147. data/public/stylesheets/images/ui-icons_ffffff_256x240.png +0 -0
  148. data/public/stylesheets/jquery-ui-1.7.1.custom.css +404 -0
  149. data/public/stylesheets/jquery.treeTable.css +43 -0
  150. data/public/stylesheets/themes/bec-green/style.css +290 -0
  151. data/public/stylesheets/themes/bec/style.css +301 -0
  152. data/public/stylesheets/themes/blue/style.css +280 -0
  153. data/public/stylesheets/themes/default/style.css +267 -0
  154. data/public/stylesheets/themes/djime-cerulean/style.css +298 -0
  155. data/public/stylesheets/themes/kathleene/style.css +272 -0
  156. data/public/stylesheets/themes/orange/style.css +263 -0
  157. data/public/stylesheets/themes/reidb-greenish/style.css +301 -0
  158. metadata +341 -0
@@ -0,0 +1,63 @@
1
+ <div id="container">
2
+ <div id="header-container">
3
+ <img src="/images/merb.jpg" />
4
+ <!-- <h1>Mongrel + Erb</h1> -->
5
+ <h2>pocket rocket web framework</h2>
6
+ <hr />
7
+ </div>
8
+
9
+ <div id="left-container">
10
+ <h3>Exception:</h3>
11
+ <p><%= params[:exception] %></p>
12
+ </div>
13
+
14
+ <div id="main-container">
15
+ <h3>Why am I seeing this page?</h3>
16
+ <p>Merb couldn't find an appropriate content_type to return,
17
+ based on what you said was available via provides() and
18
+ what the client requested.</p>
19
+
20
+ <h3>How to add a mime-type</h3>
21
+ <pre><code>
22
+ Merb.add_mime_type :pdf, :to_pdf, %w[application/pdf], &quot;Content-Encoding&quot; =&gt; &quot;gzip&quot;
23
+ </code></pre>
24
+ <h3>What this means is:</h3>
25
+ <ul>
26
+ <li>Add a mime-type for :pdf</li>
27
+ <li>Register the method for converting objects to PDF as <code>#to_pdf</code>.</li>
28
+ <li>Register the incoming mime-type "Accept" header as <code>application/pdf</code>.</li>
29
+ <li>Specify a new header for PDF types so it will set <code>Content-Encoding</code> to gzip.</li>
30
+ </ul>
31
+
32
+ <h3>You can then do:</h3>
33
+ <pre><code>
34
+ class Foo &lt; Application
35
+ provides :pdf
36
+ end
37
+ </code></pre>
38
+
39
+ <h3>Where can I find help?</h3>
40
+ <p>If you have any questions or if you can't figure something out, please take a
41
+ look at our <a href="http://merbivore.com/"> project page</a>,
42
+ feel free to come chat at irc.freenode.net, channel #merb,
43
+ or post to <a href="http://groups.google.com/group/merb">merb mailing list</a>
44
+ on Google Groups.</p>
45
+
46
+ <h3>What if I've found a bug?</h3>
47
+ <p>If you want to file a bug or make your own contribution to Merb,
48
+ feel free to register and create a ticket at our
49
+ <a href="http://merb.lighthouseapp.com/">project development page</a>
50
+ on Lighthouse.</p>
51
+
52
+ <h3>How do I edit this page?</h3>
53
+ <p>You can change what people see when this happens by editing <tt>app/views/exceptions/not_acceptable.html.erb</tt>.</p>
54
+
55
+ </div>
56
+
57
+ <div id="footer-container">
58
+ <hr />
59
+ <div class="left"></div>
60
+ <div class="right">&copy; 2007 the merb dev team</div>
61
+ <p>&nbsp;</p>
62
+ </div>
63
+ </div>
@@ -0,0 +1,47 @@
1
+ <div id="container">
2
+ <div id="header-container">
3
+ <img src="/images/merb.jpg" />
4
+ <!-- <h1>Mongrel + Erb</h1> -->
5
+ <h2>pocket rocket web framework</h2>
6
+ <hr />
7
+ </div>
8
+
9
+ <div id="left-container">
10
+ <h3>Exception:</h3>
11
+ <p><%= params[:exception] %></p>
12
+ </div>
13
+
14
+ <div id="main-container">
15
+ <h3>Welcome to Merb!</h3>
16
+ <p>Merb is a light-weight MVC framework written in Ruby. We hope you enjoy it.</p>
17
+
18
+ <h3>Where can I find help?</h3>
19
+ <p>If you have any questions or if you can't figure something out, please take a
20
+ look at our <a href="http://merbivore.com/"> project page</a>,
21
+ feel free to come chat at irc.freenode.net, channel #merb,
22
+ or post to <a href="http://groups.google.com/group/merb">merb mailing list</a>
23
+ on Google Groups.</p>
24
+
25
+ <h3>What if I've found a bug?</h3>
26
+ <p>If you want to file a bug or make your own contribution to Merb,
27
+ feel free to register and create a ticket at our
28
+ <a href="http://merb.lighthouseapp.com/">project development page</a>
29
+ on Lighthouse.</p>
30
+
31
+ <h3>How do I edit this page?</h3>
32
+ <p>You're seeing this page because you need to edit the following files:
33
+ <ul>
34
+ <li>config/router.rb <strong><em>(recommended)</em></strong></li>
35
+ <li>app/views/exceptions/not_found.html.erb <strong><em>(recommended)</em></strong></li>
36
+ <li>app/views/layout/application.html.erb <strong><em>(change this layout)</em></strong></li>
37
+ </ul>
38
+ </p>
39
+ </div>
40
+
41
+ <div id="footer-container">
42
+ <hr />
43
+ <div class="left"></div>
44
+ <div class="right">&copy; 2007 the merb dev team</div>
45
+ <p>&nbsp;</p>
46
+ </div>
47
+ </div>
@@ -0,0 +1,217 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
4
+ <title><%= @exception_name %></title>
5
+ <style type="text/css" media="screen">
6
+ body {
7
+ font-family:arial;
8
+ font-size:11px;
9
+ }
10
+ h1 {
11
+ font-size:48px;
12
+ letter-spacing:-4px;
13
+ margin:0;
14
+ line-height:36px;
15
+ color:#333;
16
+ }
17
+ h1 sup {
18
+ font-size: 0.5em;
19
+ }
20
+ h1 sup.error_500, h1 sup.error_400 {
21
+ color:#990E05;
22
+ }
23
+ h1 sup.error_100, h1 sup.error_200 {
24
+ color:#00BF10;
25
+ }
26
+ h1 sup.error_300 {
27
+ /* pretty sure you cant 'see' status 300
28
+ errors but if you could I think they
29
+ would be blue */
30
+ color:#1B2099;
31
+ }
32
+ h2 {
33
+ font-size:36px;
34
+ letter-spacing:-3px;
35
+ margin:0;
36
+ line-height:28px;
37
+ color:#444;
38
+ }
39
+ a, a:visited {
40
+ color:#00BF10;
41
+ }
42
+ .internalError {
43
+ width:800px;
44
+ margin:50px auto;
45
+ }
46
+ .header {
47
+ border-bottom:10px solid #333;
48
+ margin-bottom:1px;
49
+ background-image: url("data:image/gif;base64,R0lGODlhAwADAIAAAP///8zMzCH5BAAAAAAALAAAAAADAAMAAAIEBHIJBQA7");
50
+ padding:20px;
51
+ }
52
+ table.trace {
53
+ width:100%;
54
+ font-family:courier, monospace;
55
+ letter-spacing:-1px;
56
+ border-collapse: collapse;
57
+ border-spacing:0;
58
+ }
59
+ table.trace tr td{
60
+ padding:0;
61
+ height:26px;
62
+ font-size:13px;
63
+ vertical-align:middle;
64
+ }
65
+ table.trace tr.file{
66
+ border-top:2px solid #fff;
67
+ background-color:#F3F3F3;
68
+ }
69
+ table.trace tr.source {
70
+ background-color:#F8F8F8;
71
+ display:none;
72
+ }
73
+ table.trace .open tr.source {
74
+ display:table-row;
75
+ }
76
+ table.trace tr.file td.expand {
77
+ width:23px;
78
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAIAAABvSEP3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdVJREFUeNqMVL+TwUAYxaRIOlEhlZHGDAUzzOQ61+AqXMV1lJSU7q/QRqm8KFUcJTNn5qJkaPyoKKVz7y4mF8na5Kt29tt9+/Z97/u81+vVQ4r9frdarS6Xi7ETDIZisRjxMGPfmk4niNPpZE+xLAugbPaZ53nzvtfMBe/3+/3dbuehBrAKhZdUKkVAWa9Xsiybv0CPZDJZLr/qa5/BwgwRjYqOKIvFYjQa/aNommZh0Ww2K5UqzwfoQOPxaLPZ3FAmk0+7lplMpt1u53J5OpBOR0eZEE9wHJfP5zud93g88QhluwWbjW+5VOmKBgKBer3eaDTDYeGBQF8+x7rqIYoiPgixWJazpA6HA+MSxRArkUgMh0M409g8Ho8+9wYxxCqVSq1W26EDHGM2m4HOHQrEc38f/Yn7cLmlIRhBENzcx8cVRZnPZ/YUep2BWkjTIfA+PKVpZAXR5QxsjiqCKvGEqqp443w+0dvy17swqD0HB3S73V5PpkNg1qBqt8kwGCjmPkinM0QJbIoEa7U6UG6ToVgs4V9G2g0ESoP5Aoi7KYX5oCgf8IKbkvn9/mr1LRQKESamzgJy0g0tSZIuB3nuGqRU9Vv9C4sKkUhEkp4soxvxI8AAhWrrtXa3X8EAAAAASUVORK5CYII=);
79
+ background-position:top left;
80
+ background-repeat:no-repeat;
81
+ }
82
+ table.trace .open tr.file td.expand {
83
+ width:19px;
84
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXZJREFUeNrslK1ywkAUhcMOBomEOiSdqLxEBJX0NaijOsjyHGGmCGyQQYaiiiw4gktkcOmZbpsuuzQ/M5XnqJ2d3S/n3nM3rTzPLUP7/Tt0+pLcGQwG3W53OLyHzPMtjYL7q9UqSRLrD4E1Gj1orCvKYuFHUWTVkOM44/HjDcp8/lL4r6NerzeZPMm1KFw0QkDn83m5fP2lHA4fNQvRtNvtjsfDd0WzmSfb2e/fdTqdOvdh/HLJZLOn0+d2HJ+KRGzbdl23EpFlmed5cp2maRzHQq1lvQ5KMi6EUZBGfup6E1pTfd+vrGW7jbQ2C9hTt9BpqNyIWaAwAy6xg2eBz5iRC/NomiZhGN5sqmnkauo0BUGgVQoBjQ80oCACgNQdZHfTYBkF2mxCtWWAqunWpahxIDUt3QYUxIFQpJHyIWpXjinabKbbwItMHT+NyjchrP8QKaSQQgoppJBCCimkkEIKKaSQQgoppJBCCimkkEIKKaSo+hRgAEFD17X08O2NAAAAAElFTkSuQmCC);
85
+ background-position:top left;
86
+ background-repeat:no-repeat;
87
+ }
88
+ table.trace tr.source td.collapse {
89
+ width:19px;
90
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVxJREFUeNrs0zFygkAUBmBlUkgJHdABlQwVkVJKKUxBYWbkALTxMJwhltyDFkss03IF8pudIcwaDaDl/6pd2P327b7d+eHwMXs4lNkzggoVKlSoUKFChQoVKlSoUKFChQoVKlSoUKFChQqVEYqm6ft9+qiSJEkYho7jTlcw2fd9NOI4nq4gEdFwXXe1Cqco63VkWVbXRTqLhTpOwQRpF7quR1E0TgGhqvLKUFCyoQqG/rks3O6kZKW/eRFpevOCoGTXVTcMQ5EyxyDEkML1c5RzuZOICIyXqn7JBVez6282MWrx731HOv2qB8Hri2lamNk0DfpVVdV1Peodappmmua8bdvzuc7zfNprzrLMth1FnGh/X8MjCAIQv/cFz/+65PcDh7rbvYv2ZUfdj+PxsyzLgVl0hKwgTqeqKApx2LeOc7t98zyv/1FWOgvx9RPii23bmL9cetJ8Ed8CDAC6aFW8bCzFhwAAAABJRU5ErkJggg==);
91
+ background-position:bottom left;
92
+ background-repeat:no-repeat;
93
+ background-color:#6F706F;
94
+ }
95
+ table.trace tr td.path {
96
+ padding-left:10px;
97
+ }
98
+ table.trace tr td.code {
99
+ padding-left:35px;
100
+ white-space: pre;
101
+ line-height:9px;
102
+ padding-bottom:10px;
103
+ }
104
+ table.trace tr td.code em {
105
+ font-weight:bold;
106
+ color:#00BF10;
107
+ }
108
+ table.trace tr td.code a {
109
+ width: 20px;
110
+ float: left;
111
+ }
112
+ table.trace tr td.code .more {
113
+ color:#666;
114
+ }
115
+ table.trace tr td.line {
116
+ width:30px;
117
+ text-align:right;
118
+ padding-right:4px;
119
+ }
120
+ .footer {
121
+ margin-top:5px;
122
+ font-size:11px;
123
+ color:#444;
124
+ text-align:right;
125
+ }
126
+ </style>
127
+ </head>
128
+ <body>
129
+ <div class="internalError">
130
+
131
+ <div class="header">
132
+ <h1><%= @exception_name %> <sup class="error_<%= @exception.class::STATUS %>"><%= @exception.class::STATUS %></sup></h1>
133
+ <% if show_details = ::Merb::Config[:exception_details] -%>
134
+ <h2><%= @exception.message %></h2>
135
+ <% else -%>
136
+ <h2>Sorry about that...</h2>
137
+ <% end -%>
138
+ <h3>Parameters</h3>
139
+ <ul>
140
+ <% params[:original_params].each do |param, value| %>
141
+ <li><strong><%= param %>:</strong> <%= value.inspect %></li>
142
+ <% end %>
143
+ <%= "<li>None</li>" if params[:original_params].empty? %>
144
+ </ul>
145
+
146
+ <h3>Session</h3>
147
+ <ul>
148
+ <% params[:original_session].each do |param, value| %>
149
+ <li><strong><%= param %>:</strong> <%= value.inspect %></li>
150
+ <% end %>
151
+ <%= "<li>None</li>" if params[:original_session].empty? %>
152
+ </ul>
153
+
154
+ <h3>Cookies</h3>
155
+ <ul>
156
+ <% params[:original_cookies].each do |param, value| %>
157
+ <li><strong><%= param %>:</strong> <%= value.inspect %></li>
158
+ <% end %>
159
+ <%= "<li>None</li>" if params[:original_cookies].empty? %>
160
+ </ul>
161
+ </div>
162
+
163
+ <% if show_details %>
164
+ <table class="trace">
165
+ <% @exception.backtrace.each_with_index do |line, index| %>
166
+ <tbody class="close">
167
+ <tr class="file">
168
+ <td class="expand">
169
+ </td>
170
+ <td class="path">
171
+ <%= (line.match(/^([^:]+)/)[1] rescue 'unknown').sub(/\/((opt|usr)\/local\/lib\/(ruby\/)?(gems\/)?(1.8\/)?(gems\/)?|.+\/app\/)/, '') %>
172
+ <% unless line.match(/\.erb:/) %>
173
+ in "<strong><%= line.match(/:in `(.+)'$/)[1] rescue '?' %></strong>"
174
+ <% else %>
175
+ (<strong>ERB Template</strong>)
176
+ <% end %>
177
+ </td>
178
+ <td class="line">
179
+ <a href="txmt://open?url=file://<%=file = (line.match(/^([^:]+)/)[1] rescue 'unknown')%>&amp;line=<%= lineno = line.match(/:([0-9]+):/)[1] rescue '?' %>"><%=lineno%></a>&nbsp;
180
+ </td>
181
+ </tr>
182
+ <tr class="source">
183
+ <td class="collapse">
184
+ </td>
185
+ <td class="code" colspan="2"><% (__caller_lines__(file, lineno, 5) rescue []).each do |llineno, lcode, lcurrent| %>
186
+ <a href="txmt://open?url=file://<%=file%>&amp;line=<%=llineno%>"><%= llineno %></a><%='<em>' if llineno==lineno.to_i %><%= lcode.size > 90 ? CGI.escapeHTML(lcode[0..90])+'<span class="more">......</span>' : CGI.escapeHTML(lcode) %><%='</em>' if llineno==lineno.to_i %>
187
+ <% end %>
188
+
189
+ </td>
190
+ </tr>
191
+ </tbody>
192
+ <% end %>
193
+ </table>
194
+ <script type="text/javascript" charset="utf-8">
195
+ // swop the open & closed classes
196
+ els = document.getElementsByTagName('td');
197
+ for(i=0; i<els.length; i++){
198
+ if(els[i].className=='expand' || els[i].className=='collapse'){
199
+ els[i].onclick = function(e){
200
+ tbody = this.parentNode.parentNode;
201
+ if(tbody.className=='open'){
202
+ tbody.className='closed';
203
+ }else{
204
+ tbody.className='open';
205
+ }
206
+ }
207
+ }
208
+ }
209
+ </script>
210
+ <% end %>
211
+ <div class="footer">
212
+ lots of love, from <a href="#">merb</a>
213
+ </div>
214
+ </div>
215
+ </body>
216
+ </html>
217
+
@@ -0,0 +1,53 @@
1
+ !!! XML
2
+ !!!
3
+ %html
4
+ %head
5
+ %meta{ "http-equiv" => "content-type", :content => "text/html; charset=utf-8" }
6
+ %title Chef Server
7
+ = css_include_tag "base", "themes/djime-cerulean/style", "chef", "/facebox/facebox.css", "jquery-ui-1.7.1.custom", "jquery.treeTable"
8
+ = js_include_tag "jquery-1.3.2.min", "jquery.jeditable.mini", "jquery.livequery", "jquery.localscroll", "jquery.scrollTo", "jquery.tools.min"
9
+ = js_include_tag "/facebox/facebox.js"
10
+ = js_include_tag "jquery-ui-1.7.1.custom.min"
11
+ = js_include_tag "jquery.treeTable.min"
12
+ = js_include_tag "JSONeditor"
13
+ = js_include_tag "chef"
14
+
15
+ %body
16
+ #container
17
+ #header
18
+ %h1= link_to "Chef Server", slice_url(:top)
19
+ #user-navigation
20
+ %ul
21
+ - if session[:openid]
22
+ %li= link_to "Logout #{h session[:openid]} (#{session[:level].to_s})", slice_url(:openid_consumer_logout), :method => "get", :confirm => "Are you sure you want to logout?"
23
+ - else
24
+ %li= link_to "Login", slice_url(:openid_consumer), :rel => "facebox"
25
+ .clear
26
+ #main-navigation
27
+ %ul
28
+ %li= link_to "Search", slice_url(:searches)
29
+ %li= link_to "Status", slice_url(:status)
30
+ %li= link_to "Roles", slice_url(:roles)
31
+ %li= link_to "Nodes", slice_url(:nodes)
32
+ %li= link_to "Cookbooks", slice_url(:cookbooks)
33
+ %li= link_to "Registrations", slice_url(:registrations)
34
+ .clear
35
+ #wrapper
36
+ #main
37
+ - unless message.empty?
38
+ .block#block-messages
39
+ .content
40
+ %h2.title Messages
41
+ .inner
42
+ .flash
43
+ - message.each do |type, msg|
44
+ %div{:class => "message #{type}"}
45
+ %p= msg
46
+ = catch_content :for_layout
47
+ #footer
48
+ .block
49
+ %p Copyright &copy; 2009 Opscode
50
+ #sidebar
51
+ .block.notice#sidebar_block_notice= catch_content :sidebar_block_notice
52
+ .block#sidebar_block= catch_content :sidebar_block
53
+ .clear
@@ -0,0 +1,37 @@
1
+ !!! XML
2
+ !!!
3
+ %html
4
+ %head
5
+ %meta{ "http-equiv" => "content-type", :content => "text/html; charset=utf-8" }
6
+ %title Chef Server
7
+ = css_include_tag "base", "themes/djime-cerulean/style", "chef", "/facebox/facebox.css", "jquery-ui-1.7.1.custom", "jquery.treeTable"
8
+ = js_include_tag "jquery-1.3.2.min", "jquery.jeditable.mini", "jquery.livequery", "jquery.localscroll", "jquery.scrollTo", "jquery.tools.min"
9
+ = js_include_tag "/facebox/facebox.js"
10
+ = js_include_tag "jquery-ui-1.7.1.custom.min"
11
+ = js_include_tag "jquery.treeTable.min"
12
+ = js_include_tag "JSONeditor"
13
+ = js_include_tag "chef"
14
+
15
+ %body
16
+ #container
17
+ #header
18
+ %h1= link_to "Chef Server", slice_url(:top)
19
+ #wrapper
20
+ #main
21
+ - unless message.empty?
22
+ .block#block-messages
23
+ .content
24
+ %h2.title Messages
25
+ .inner
26
+ .flash
27
+ - message.each do |type, msg|
28
+ %div{:class => "message #{type}"}
29
+ %p= msg
30
+ = catch_content :for_layout
31
+ #footer
32
+ .block
33
+ %p Copyright &copy; 2009 Opscode
34
+ #sidebar
35
+ .block.notice#sidebar_block_notice= catch_content :sidebar_block_notice
36
+ .block#sidebar_block= catch_content :sidebar_block
37
+ .clear
@@ -0,0 +1 @@
1
+ <strong><%= slice.description %></strong> (v. <%= slice.version %>)
@@ -0,0 +1,13 @@
1
+ %table
2
+ - actions.each do |action, resource_hash|
3
+ %tr
4
+ %td.action_name= action.to_s
5
+ %td.action_resources
6
+ %table
7
+ - resource_hash.keys.sort{ |a,b| a.to_s <=> b.to_s }.each do |rk|
8
+ %tr
9
+ %td.action_when= rk.to_s
10
+ %td
11
+ - resource_hash[rk].each do |resource|
12
+ = partial(:resource, :resource => resource)
13
+
@@ -0,0 +1,56 @@
1
+ .content
2
+ .inner
3
+ - if form_for != "edit"
4
+ %div.group.form
5
+ %label.label Name
6
+ = text_field :id => "node_name", :name => "name", :class => "text_field", :value => params.has_key?(:name) ? h(params[:name]) : @node.name
7
+ %span.description The name of the Node
8
+
9
+ %div.group.form
10
+ %table.sortable
11
+ %tr
12
+ %td
13
+ %label.label Available Roles
14
+ %td
15
+ %label.label Run List
16
+ %tr
17
+ %td
18
+ %div.sortable
19
+ %ul#node_available_roles.connectedSortable
20
+ - @available_roles.each do |role|
21
+ %li{ :id => "role[#{role}]", :class => 'ui-state-highlight' }= h role
22
+ %td{:rowspan => 3}
23
+ %div.sortable.run-list
24
+ %ul#for_node.connectedSortable
25
+ - @run_list.each do |entry|
26
+ - type, name, fname = @run_list.parse_entry(entry)
27
+ %li{ :id => h(fname), :class => type == 'role' ? 'ui-state-highlight' : 'ui-state-default' }= h name
28
+ %td.help
29
+ %span.description
30
+ Drag recipes from the list of Available Recipes section on the left, and drop them
31
+ in the "Recipes for this node" section on the right. Then sort the recipes for this node list to the order you would like to see the recipes applied.
32
+ %tr
33
+ %td
34
+ %label.label Available Recipes
35
+ %tr
36
+ %td
37
+ %div.sortable
38
+ %ul#node_available_recipes.connectedSortable
39
+ - @available_recipes.each do |recipe|
40
+ %li{ :id => "recipe[#{recipe}]", :class => 'ui-state-default' }= h recipe
41
+
42
+
43
+ %div.group.form
44
+ %label.label Attributes
45
+ %div.editor
46
+ %div#tree
47
+ %div#jform
48
+ %div.clear
49
+ %script= "$(document).ready(function() { JSONeditor.start('tree', 'jform', #{@node.attribute.to_json}, false); });"
50
+ %span.description A JSON hash for default attributes for nodes of this node. These attributes will only be applied if the node does not already have a value for the attributes.
51
+
52
+ = form(:action => form_url, :method => :post, :id => form_id, :class => 'form') do
53
+ %div.group
54
+ .actions-bar
55
+ .actions= submit submit_name, :id => submit_id, :class => 'button'
56
+