qwerty 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (664) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +16 -0
  3. data/Rakefile +39 -0
  4. data/app/assets/images/qwerty/admin/icons/down.png +0 -0
  5. data/app/assets/images/qwerty/admin/icons/up.png +0 -0
  6. data/app/assets/javascripts/application.js +8 -0
  7. data/app/assets/javascripts/ckeditor/CHANGES.html +1433 -0
  8. data/app/assets/javascripts/ckeditor/INSTALL.html +92 -0
  9. data/app/assets/javascripts/ckeditor/LICENSE.html +1327 -0
  10. data/app/assets/javascripts/ckeditor/adapters/jquery.js +6 -0
  11. data/app/assets/javascripts/ckeditor/ckeditor.js +149 -0
  12. data/app/assets/javascripts/ckeditor/ckeditor.pack +211 -0
  13. data/app/assets/javascripts/ckeditor/ckeditor_basic.js +8 -0
  14. data/app/assets/javascripts/ckeditor/ckeditor_basic_source.js +20 -0
  15. data/app/assets/javascripts/ckeditor/ckeditor_source.js +35 -0
  16. data/app/assets/javascripts/ckeditor/config.js +78 -0
  17. data/app/assets/javascripts/ckeditor/contents.css +25 -0
  18. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_add.jpg +0 -0
  19. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_add.png +0 -0
  20. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_del.png +0 -0
  21. data/app/assets/javascripts/ckeditor/filebrowser/images/gal_more.gif +0 -0
  22. data/app/assets/javascripts/ckeditor/filebrowser/images/preloader.gif +0 -0
  23. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/ckfnothumb.gif +0 -0
  24. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/mp3.gif +0 -0
  25. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/pdf.gif +0 -0
  26. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/rar.gif +0 -0
  27. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/swf.gif +0 -0
  28. data/app/assets/javascripts/ckeditor/filebrowser/images/thumbs/xls.gif +0 -0
  29. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/application.js +222 -0
  30. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/fileuploader.js +1301 -0
  31. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/jquery.js +18 -0
  32. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/jquery.tmpl.js +10 -0
  33. data/app/assets/javascripts/ckeditor/filebrowser/javascripts/rails.js +363 -0
  34. data/app/assets/javascripts/ckeditor/filebrowser/stylesheets/uploader.css +117 -0
  35. data/app/assets/javascripts/ckeditor/images/spacer.gif +0 -0
  36. data/app/assets/javascripts/ckeditor/lang/_languages.js +6 -0
  37. data/app/assets/javascripts/ckeditor/lang/_translationstatus.txt +61 -0
  38. data/app/assets/javascripts/ckeditor/lang/af.js +6 -0
  39. data/app/assets/javascripts/ckeditor/lang/ar.js +6 -0
  40. data/app/assets/javascripts/ckeditor/lang/bg.js +6 -0
  41. data/app/assets/javascripts/ckeditor/lang/bn.js +6 -0
  42. data/app/assets/javascripts/ckeditor/lang/bs.js +6 -0
  43. data/app/assets/javascripts/ckeditor/lang/ca.js +6 -0
  44. data/app/assets/javascripts/ckeditor/lang/cs.js +6 -0
  45. data/app/assets/javascripts/ckeditor/lang/cy.js +6 -0
  46. data/app/assets/javascripts/ckeditor/lang/da.js +6 -0
  47. data/app/assets/javascripts/ckeditor/lang/de.js +6 -0
  48. data/app/assets/javascripts/ckeditor/lang/el.js +6 -0
  49. data/app/assets/javascripts/ckeditor/lang/en-au.js +6 -0
  50. data/app/assets/javascripts/ckeditor/lang/en-ca.js +6 -0
  51. data/app/assets/javascripts/ckeditor/lang/en-gb.js +6 -0
  52. data/app/assets/javascripts/ckeditor/lang/en.js +6 -0
  53. data/app/assets/javascripts/ckeditor/lang/eo.js +6 -0
  54. data/app/assets/javascripts/ckeditor/lang/es.js +6 -0
  55. data/app/assets/javascripts/ckeditor/lang/et.js +6 -0
  56. data/app/assets/javascripts/ckeditor/lang/eu.js +6 -0
  57. data/app/assets/javascripts/ckeditor/lang/fa.js +6 -0
  58. data/app/assets/javascripts/ckeditor/lang/fi.js +6 -0
  59. data/app/assets/javascripts/ckeditor/lang/fo.js +6 -0
  60. data/app/assets/javascripts/ckeditor/lang/fr-ca.js +6 -0
  61. data/app/assets/javascripts/ckeditor/lang/fr.js +6 -0
  62. data/app/assets/javascripts/ckeditor/lang/gl.js +6 -0
  63. data/app/assets/javascripts/ckeditor/lang/gu.js +6 -0
  64. data/app/assets/javascripts/ckeditor/lang/he.js +6 -0
  65. data/app/assets/javascripts/ckeditor/lang/hi.js +6 -0
  66. data/app/assets/javascripts/ckeditor/lang/hr.js +6 -0
  67. data/app/assets/javascripts/ckeditor/lang/hu.js +6 -0
  68. data/app/assets/javascripts/ckeditor/lang/is.js +6 -0
  69. data/app/assets/javascripts/ckeditor/lang/it.js +6 -0
  70. data/app/assets/javascripts/ckeditor/lang/ja.js +6 -0
  71. data/app/assets/javascripts/ckeditor/lang/ka.js +6 -0
  72. data/app/assets/javascripts/ckeditor/lang/km.js +6 -0
  73. data/app/assets/javascripts/ckeditor/lang/ko.js +6 -0
  74. data/app/assets/javascripts/ckeditor/lang/lt.js +6 -0
  75. data/app/assets/javascripts/ckeditor/lang/lv.js +6 -0
  76. data/app/assets/javascripts/ckeditor/lang/mn.js +6 -0
  77. data/app/assets/javascripts/ckeditor/lang/ms.js +6 -0
  78. data/app/assets/javascripts/ckeditor/lang/nb.js +6 -0
  79. data/app/assets/javascripts/ckeditor/lang/nl.js +6 -0
  80. data/app/assets/javascripts/ckeditor/lang/no.js +6 -0
  81. data/app/assets/javascripts/ckeditor/lang/pl.js +6 -0
  82. data/app/assets/javascripts/ckeditor/lang/pt-br.js +6 -0
  83. data/app/assets/javascripts/ckeditor/lang/pt.js +6 -0
  84. data/app/assets/javascripts/ckeditor/lang/ro.js +6 -0
  85. data/app/assets/javascripts/ckeditor/lang/ru.js +6 -0
  86. data/app/assets/javascripts/ckeditor/lang/sk.js +6 -0
  87. data/app/assets/javascripts/ckeditor/lang/sl.js +6 -0
  88. data/app/assets/javascripts/ckeditor/lang/sr-latn.js +6 -0
  89. data/app/assets/javascripts/ckeditor/lang/sr.js +6 -0
  90. data/app/assets/javascripts/ckeditor/lang/sv.js +6 -0
  91. data/app/assets/javascripts/ckeditor/lang/th.js +6 -0
  92. data/app/assets/javascripts/ckeditor/lang/tr.js +6 -0
  93. data/app/assets/javascripts/ckeditor/lang/uk.js +6 -0
  94. data/app/assets/javascripts/ckeditor/lang/vi.js +6 -0
  95. data/app/assets/javascripts/ckeditor/lang/zh-cn.js +6 -0
  96. data/app/assets/javascripts/ckeditor/lang/zh.js +6 -0
  97. data/app/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +7 -0
  98. data/app/assets/javascripts/ckeditor/plugins/a11yhelp/lang/en.js +6 -0
  99. data/app/assets/javascripts/ckeditor/plugins/a11yhelp/lang/he.js +6 -0
  100. data/app/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
  101. data/app/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  102. data/app/assets/javascripts/ckeditor/plugins/adobeair/plugin.js +6 -0
  103. data/app/assets/javascripts/ckeditor/plugins/ajax/plugin.js +6 -0
  104. data/app/assets/javascripts/ckeditor/plugins/attachment/dialogs/attachment.js +1 -0
  105. data/app/assets/javascripts/ckeditor/plugins/attachment/images/attachment.png +0 -0
  106. data/app/assets/javascripts/ckeditor/plugins/attachment/lang/en.js +10 -0
  107. data/app/assets/javascripts/ckeditor/plugins/attachment/lang/ru.js +10 -0
  108. data/app/assets/javascripts/ckeditor/plugins/attachment/lang/uk.js +10 -0
  109. data/app/assets/javascripts/ckeditor/plugins/attachment/plugin.js +1 -0
  110. data/app/assets/javascripts/ckeditor/plugins/autogrow/plugin.js +6 -0
  111. data/app/assets/javascripts/ckeditor/plugins/bbcode/plugin.js +9 -0
  112. data/app/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +7 -0
  113. data/app/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +7 -0
  114. data/app/assets/javascripts/ckeditor/plugins/devtools/lang/en.js +6 -0
  115. data/app/assets/javascripts/ckeditor/plugins/devtools/plugin.js +6 -0
  116. data/app/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  117. data/app/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +8 -0
  118. data/app/assets/javascripts/ckeditor/plugins/docprops/dialogs/docprops.js +10 -0
  119. data/app/assets/javascripts/ckeditor/plugins/docprops/plugin.js +6 -0
  120. data/app/assets/javascripts/ckeditor/plugins/embed/dialogs/embed.js +1 -0
  121. data/app/assets/javascripts/ckeditor/plugins/embed/images/embed.png +0 -0
  122. data/app/assets/javascripts/ckeditor/plugins/embed/lang/en.js +9 -0
  123. data/app/assets/javascripts/ckeditor/plugins/embed/lang/ru.js +9 -0
  124. data/app/assets/javascripts/ckeditor/plugins/embed/lang/uk.js +9 -0
  125. data/app/assets/javascripts/ckeditor/plugins/embed/plugin.js +1 -0
  126. data/app/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +10 -0
  127. data/app/assets/javascripts/ckeditor/plugins/flash/dialogs/flash.js +9 -0
  128. data/app/assets/javascripts/ckeditor/plugins/flash/images/placeholder.png +0 -0
  129. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/button.js +6 -0
  130. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/checkbox.js +6 -0
  131. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/form.js +6 -0
  132. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/hiddenfield.js +6 -0
  133. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/radio.js +6 -0
  134. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/select.js +9 -0
  135. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/textarea.js +6 -0
  136. data/app/assets/javascripts/ckeditor/plugins/forms/dialogs/textfield.js +6 -0
  137. data/app/assets/javascripts/ckeditor/plugins/forms/images/hiddenfield.gif +0 -0
  138. data/app/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +7 -0
  139. data/app/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  140. data/app/assets/javascripts/ckeditor/plugins/iframedialog/plugin.js +6 -0
  141. data/app/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +13 -0
  142. data/app/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +6 -0
  143. data/app/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +12 -0
  144. data/app/assets/javascripts/ckeditor/plugins/link/images/anchor.gif +0 -0
  145. data/app/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +7 -0
  146. data/app/assets/javascripts/ckeditor/plugins/pagebreak/images/pagebreak.gif +0 -0
  147. data/app/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +11 -0
  148. data/app/assets/javascripts/ckeditor/plugins/pastetext/dialogs/pastetext.js +6 -0
  149. data/app/assets/javascripts/ckeditor/plugins/placeholder/dialogs/placeholder.js +6 -0
  150. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/en.js +6 -0
  151. data/app/assets/javascripts/ckeditor/plugins/placeholder/lang/he.js +6 -0
  152. data/app/assets/javascripts/ckeditor/plugins/placeholder/placeholder.gif +0 -0
  153. data/app/assets/javascripts/ckeditor/plugins/placeholder/plugin.js +6 -0
  154. data/app/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +8 -0
  155. data/app/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +6 -0
  156. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  157. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  158. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  159. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  160. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  161. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  162. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  163. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  164. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  165. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  166. data/app/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  167. data/app/assets/javascripts/ckeditor/plugins/smiley/dialogs/smiley.js +7 -0
  168. data/app/assets/javascripts/ckeditor/plugins/smiley/images/angel_smile.gif +0 -0
  169. data/app/assets/javascripts/ckeditor/plugins/smiley/images/angry_smile.gif +0 -0
  170. data/app/assets/javascripts/ckeditor/plugins/smiley/images/broken_heart.gif +0 -0
  171. data/app/assets/javascripts/ckeditor/plugins/smiley/images/confused_smile.gif +0 -0
  172. data/app/assets/javascripts/ckeditor/plugins/smiley/images/cry_smile.gif +0 -0
  173. data/app/assets/javascripts/ckeditor/plugins/smiley/images/devil_smile.gif +0 -0
  174. data/app/assets/javascripts/ckeditor/plugins/smiley/images/embaressed_smile.gif +0 -0
  175. data/app/assets/javascripts/ckeditor/plugins/smiley/images/envelope.gif +0 -0
  176. data/app/assets/javascripts/ckeditor/plugins/smiley/images/heart.gif +0 -0
  177. data/app/assets/javascripts/ckeditor/plugins/smiley/images/kiss.gif +0 -0
  178. data/app/assets/javascripts/ckeditor/plugins/smiley/images/lightbulb.gif +0 -0
  179. data/app/assets/javascripts/ckeditor/plugins/smiley/images/omg_smile.gif +0 -0
  180. data/app/assets/javascripts/ckeditor/plugins/smiley/images/regular_smile.gif +0 -0
  181. data/app/assets/javascripts/ckeditor/plugins/smiley/images/sad_smile.gif +0 -0
  182. data/app/assets/javascripts/ckeditor/plugins/smiley/images/shades_smile.gif +0 -0
  183. data/app/assets/javascripts/ckeditor/plugins/smiley/images/teeth_smile.gif +0 -0
  184. data/app/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_down.gif +0 -0
  185. data/app/assets/javascripts/ckeditor/plugins/smiley/images/thumbs_up.gif +0 -0
  186. data/app/assets/javascripts/ckeditor/plugins/smiley/images/tounge_smile.gif +0 -0
  187. data/app/assets/javascripts/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  188. data/app/assets/javascripts/ckeditor/plugins/smiley/images/wink_smile.gif +0 -0
  189. data/app/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +7 -0
  190. data/app/assets/javascripts/ckeditor/plugins/specialchar/lang/en.js +6 -0
  191. data/app/assets/javascripts/ckeditor/plugins/styles/styles/default.js +6 -0
  192. data/app/assets/javascripts/ckeditor/plugins/stylesheetparser/plugin.js +6 -0
  193. data/app/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +9 -0
  194. data/app/assets/javascripts/ckeditor/plugins/tableresize/plugin.js +7 -0
  195. data/app/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +8 -0
  196. data/app/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +7 -0
  197. data/app/assets/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  198. data/app/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  199. data/app/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  200. data/app/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  201. data/app/assets/javascripts/ckeditor/plugins/uicolor/dialogs/uicolor.js +7 -0
  202. data/app/assets/javascripts/ckeditor/plugins/uicolor/lang/en.js +6 -0
  203. data/app/assets/javascripts/ckeditor/plugins/uicolor/lang/he.js +6 -0
  204. data/app/assets/javascripts/ckeditor/plugins/uicolor/plugin.js +6 -0
  205. data/app/assets/javascripts/ckeditor/plugins/uicolor/uicolor.gif +0 -0
  206. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_bg.png +0 -0
  207. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/hue_thumb.png +0 -0
  208. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_mask.png +0 -0
  209. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/picker_thumb.png +0 -0
  210. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/assets/yui.css +6 -0
  211. data/app/assets/javascripts/ckeditor/plugins/uicolor/yui/yui.js +76 -0
  212. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  213. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  214. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +6 -0
  215. data/app/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +7 -0
  216. data/app/assets/javascripts/ckeditor/plugins/xml/plugin.js +6 -0
  217. data/app/assets/javascripts/ckeditor/skins/kama/dialog.css +10 -0
  218. data/app/assets/javascripts/ckeditor/skins/kama/editor.css +13 -0
  219. data/app/assets/javascripts/ckeditor/skins/kama/icons.png +0 -0
  220. data/app/assets/javascripts/ckeditor/skins/kama/icons_rtl.png +0 -0
  221. data/app/assets/javascripts/ckeditor/skins/kama/images/dialog_sides.gif +0 -0
  222. data/app/assets/javascripts/ckeditor/skins/kama/images/dialog_sides.png +0 -0
  223. data/app/assets/javascripts/ckeditor/skins/kama/images/dialog_sides_rtl.png +0 -0
  224. data/app/assets/javascripts/ckeditor/skins/kama/images/mini.gif +0 -0
  225. data/app/assets/javascripts/ckeditor/skins/kama/images/noimage.png +0 -0
  226. data/app/assets/javascripts/ckeditor/skins/kama/images/sprites.png +0 -0
  227. data/app/assets/javascripts/ckeditor/skins/kama/images/sprites_ie6.png +0 -0
  228. data/app/assets/javascripts/ckeditor/skins/kama/images/toolbar_start.gif +0 -0
  229. data/app/assets/javascripts/ckeditor/skins/kama/skin.js +7 -0
  230. data/app/assets/javascripts/ckeditor/skins/kama/templates.css +6 -0
  231. data/app/assets/javascripts/ckeditor/skins/office2003/dialog.css +9 -0
  232. data/app/assets/javascripts/ckeditor/skins/office2003/editor.css +14 -0
  233. data/app/assets/javascripts/ckeditor/skins/office2003/icons.png +0 -0
  234. data/app/assets/javascripts/ckeditor/skins/office2003/icons_rtl.png +0 -0
  235. data/app/assets/javascripts/ckeditor/skins/office2003/images/dialog_sides.gif +0 -0
  236. data/app/assets/javascripts/ckeditor/skins/office2003/images/dialog_sides.png +0 -0
  237. data/app/assets/javascripts/ckeditor/skins/office2003/images/dialog_sides_rtl.png +0 -0
  238. data/app/assets/javascripts/ckeditor/skins/office2003/images/mini.gif +0 -0
  239. data/app/assets/javascripts/ckeditor/skins/office2003/images/noimage.png +0 -0
  240. data/app/assets/javascripts/ckeditor/skins/office2003/images/sprites.png +0 -0
  241. data/app/assets/javascripts/ckeditor/skins/office2003/images/sprites_ie6.png +0 -0
  242. data/app/assets/javascripts/ckeditor/skins/office2003/skin.js +6 -0
  243. data/app/assets/javascripts/ckeditor/skins/office2003/templates.css +6 -0
  244. data/app/assets/javascripts/ckeditor/skins/v2/dialog.css +9 -0
  245. data/app/assets/javascripts/ckeditor/skins/v2/editor.css +13 -0
  246. data/app/assets/javascripts/ckeditor/skins/v2/icons.png +0 -0
  247. data/app/assets/javascripts/ckeditor/skins/v2/icons_rtl.png +0 -0
  248. data/app/assets/javascripts/ckeditor/skins/v2/images/dialog_sides.gif +0 -0
  249. data/app/assets/javascripts/ckeditor/skins/v2/images/dialog_sides.png +0 -0
  250. data/app/assets/javascripts/ckeditor/skins/v2/images/dialog_sides_rtl.png +0 -0
  251. data/app/assets/javascripts/ckeditor/skins/v2/images/mini.gif +0 -0
  252. data/app/assets/javascripts/ckeditor/skins/v2/images/noimage.png +0 -0
  253. data/app/assets/javascripts/ckeditor/skins/v2/images/sprites.png +0 -0
  254. data/app/assets/javascripts/ckeditor/skins/v2/images/sprites_ie6.png +0 -0
  255. data/app/assets/javascripts/ckeditor/skins/v2/images/toolbar_start.gif +0 -0
  256. data/app/assets/javascripts/ckeditor/skins/v2/skin.js +6 -0
  257. data/app/assets/javascripts/ckeditor/skins/v2/templates.css +6 -0
  258. data/app/assets/javascripts/ckeditor/themes/default/theme.js +8 -0
  259. data/app/assets/javascripts/documents.js +2 -0
  260. data/app/assets/javascripts/qwerty_admin/documents.js +2 -0
  261. data/app/assets/javascripts/qwerty_admin/nodes.js +2 -0
  262. data/app/assets/stylesheets/application.css +6 -0
  263. data/app/assets/stylesheets/qwerty_admin/base.css +5 -0
  264. data/app/assets/stylesheets/qwerty_admin/documents.css +0 -0
  265. data/app/assets/stylesheets/qwerty_admin/nodes.css +4 -0
  266. data/app/controllers/documents_controller.rb +50 -0
  267. data/app/controllers/qwerty_admin/base_controller.rb +8 -0
  268. data/app/controllers/qwerty_admin/documents_controller.rb +35 -0
  269. data/app/controllers/qwerty_admin/nodes_controller.rb +34 -0
  270. data/app/controllers/qwerty_base_controller.rb +6 -0
  271. data/app/helpers/documents_helper.rb +11 -0
  272. data/app/helpers/qwerty_admin/base_helper.rb +2 -0
  273. data/app/helpers/qwerty_admin/documents_helper.rb +2 -0
  274. data/app/helpers/qwerty_admin/nodes_helper.rb +2 -0
  275. data/app/helpers/qwerty_base_helper.rb +2 -0
  276. data/app/models/ckeditor/asset.rb +4 -0
  277. data/app/models/ckeditor/attachment_file.rb +15 -0
  278. data/app/models/ckeditor/picture.rb +13 -0
  279. data/app/models/document.rb +50 -0
  280. data/app/models/node/sugar.rb +30 -0
  281. data/app/models/node.rb +71 -0
  282. data/app/models/node_setting.rb +48 -0
  283. data/app/models/sitemap.rb +36 -0
  284. data/app/views/cms/show.html.erb +32 -0
  285. data/app/views/layouts/application.html.erb +72 -0
  286. data/app/views/layouts/qwerty_admin.html.erb +51 -0
  287. data/app/views/qwerty_admin/documents/_document.html.erb +45 -0
  288. data/app/views/qwerty_admin/documents/_form.html.erb +42 -0
  289. data/app/views/qwerty_admin/documents/edit.html.erb +5 -0
  290. data/app/views/qwerty_admin/documents/index.html.erb +34 -0
  291. data/app/views/qwerty_admin/documents/new.html.erb +5 -0
  292. data/app/views/qwerty_admin/documents/show.html.erb +35 -0
  293. data/app/views/qwerty_admin/nodes/_form.html.erb +28 -0
  294. data/app/views/qwerty_admin/nodes/_node.html.erb +15 -0
  295. data/app/views/qwerty_admin/nodes/edit.html.erb +5 -0
  296. data/app/views/qwerty_admin/nodes/index.html.erb +10 -0
  297. data/app/views/qwerty_admin/nodes/new.html.erb +5 -0
  298. data/config/environment.rb +0 -0
  299. data/config/initializers/ckeditor.rb +18 -0
  300. data/config/initializers/dragonfly.rb +1 -0
  301. data/config/initializers/simple_form.rb +15 -0
  302. data/config/routes.rb +26 -0
  303. data/db/migrate/20110909144240_create_nodes.rb +13 -0
  304. data/db/migrate/20110909144300_create_documents.rb +16 -0
  305. data/db/migrate/20110909144805_create_node_settings.rb +14 -0
  306. data/db/migrate/20110915174533_node_setting_typecasting.rb +9 -0
  307. data/db/migrate/20110915190140_node_ancestry.rb +9 -0
  308. data/db/migrate/20110919130646_document_extra_fields.rb +17 -0
  309. data/db/migrate/20110919175405_document_meta_fields.rb +15 -0
  310. data/db/migrate/20110919190859_create_ckeditor_assets.rb +26 -0
  311. data/db/migrate/20110922113655_document_image_alt.rb +9 -0
  312. data/db/migrate/20110922185424_document_template.rb +9 -0
  313. data/db/seed.rb +2 -0
  314. data/lib/qwerty/allow_auth.rb +7 -0
  315. data/lib/qwerty/deny_auth.rb +7 -0
  316. data/lib/qwerty/engine.rb +5 -0
  317. data/lib/qwerty/lipsum.rb +35 -0
  318. data/lib/qwerty/version.rb +3 -0
  319. data/lib/qwerty.rb +28 -0
  320. data/lib/tasks/qwerty_tasks.rake +5 -0
  321. data/test/dummy/Rakefile +7 -0
  322. data/test/dummy/app/controllers/application_controller.rb +3 -0
  323. data/test/dummy/app/helpers/application_helper.rb +2 -0
  324. data/test/dummy/config/application.rb +45 -0
  325. data/test/dummy/config/boot.rb +10 -0
  326. data/test/dummy/config/database.yml +24 -0
  327. data/test/dummy/config/environment.rb +5 -0
  328. data/test/dummy/config/environments/development.rb +30 -0
  329. data/test/dummy/config/environments/production.rb +60 -0
  330. data/test/dummy/config/environments/test.rb +42 -0
  331. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  332. data/test/dummy/config/initializers/inflections.rb +10 -0
  333. data/test/dummy/config/initializers/mime_types.rb +5 -0
  334. data/test/dummy/config/initializers/secret_token.rb +7 -0
  335. data/test/dummy/config/initializers/session_store.rb +8 -0
  336. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  337. data/test/dummy/config/locales/en.yml +5 -0
  338. data/test/dummy/config/routes.rb +58 -0
  339. data/test/dummy/config/sitemap.rb +51 -0
  340. data/test/dummy/config.ru +4 -0
  341. data/test/dummy/db/development.sqlite3 +0 -0
  342. data/test/dummy/db/schema.rb +80 -0
  343. data/test/dummy/log/development.log +66134 -0
  344. data/test/dummy/public/404.html +26 -0
  345. data/test/dummy/public/422.html +26 -0
  346. data/test/dummy/public/500.html +26 -0
  347. data/test/dummy/public/ckeditor_assets/attachments/2/p1010062.jpg +0 -0
  348. data/test/dummy/public/ckeditor_assets/pictures/1/content_member_9440972.jpeg +0 -0
  349. data/test/dummy/public/ckeditor_assets/pictures/1/original_member_9440972.jpeg +0 -0
  350. data/test/dummy/public/ckeditor_assets/pictures/1/thumb_member_9440972.jpeg +0 -0
  351. data/test/dummy/public/ckeditor_assets/pictures/3/content_p1010062.jpg +0 -0
  352. data/test/dummy/public/ckeditor_assets/pictures/3/original_p1010062.jpg +0 -0
  353. data/test/dummy/public/ckeditor_assets/pictures/3/thumb_p1010062.jpg +0 -0
  354. data/test/dummy/public/favicon.ico +0 -0
  355. data/test/dummy/script/rails +6 -0
  356. data/test/dummy/tmp/cache/assets/BDE/4D0/sprockets%2F311d16556d4f920021d040093c966028 +0 -0
  357. data/test/dummy/tmp/cache/assets/BEE/610/sprockets%2F9ca401c4946787b484734547031c5103 +0 -0
  358. data/test/dummy/tmp/cache/assets/C0C/410/sprockets%2F0458549c378353630d8464656e676ef6 +0 -0
  359. data/test/dummy/tmp/cache/assets/C10/0E0/sprockets%2F9e54dc493752b111413337f23033360d +0 -0
  360. data/test/dummy/tmp/cache/assets/C21/EC0/sprockets%2F1398d076e5760f608e00361c7b937033 +0 -0
  361. data/test/dummy/tmp/cache/assets/C4C/A20/sprockets%2F68214d7c6d2710159b107718743d1e4d +0 -0
  362. data/test/dummy/tmp/cache/assets/C56/370/sprockets%2F44e516819a1265e09ce775c124f31739 +0 -0
  363. data/test/dummy/tmp/cache/assets/C59/B40/sprockets%2Fc84747db707d581e4263412b7a395790 +0 -0
  364. data/test/dummy/tmp/cache/assets/C67/810/sprockets%2F922fd3026b350641aa1538f652b3f120 +0 -0
  365. data/test/dummy/tmp/cache/assets/C6B/670/sprockets%2F0183084bcf7e5125202ba334159382cc +0 -0
  366. data/test/dummy/tmp/cache/assets/C75/A20/sprockets%2Fb494025290020aeb38c56e8f17b44147 +0 -0
  367. data/test/dummy/tmp/cache/assets/C7A/010/sprockets%2F286345c22bee252f4c144a43977c9113 +0 -0
  368. data/test/dummy/tmp/cache/assets/C7E/380/sprockets%2F67e35841692a097ec02be71a162138f4 +0 -0
  369. data/test/dummy/tmp/cache/assets/C7F/A80/sprockets%2F88ff149f8505a00960e9c215d80035d0 +0 -0
  370. data/test/dummy/tmp/cache/assets/C84/110/sprockets%2F607cb3bb8d12865a79940464a048f239 +0 -0
  371. data/test/dummy/tmp/cache/assets/C87/400/sprockets%2F330b0ed89724739f6e40e29f53005d76 +0 -0
  372. data/test/dummy/tmp/cache/assets/C88/040/sprockets%2F9c83928a34bc422081c784992ef131f4 +0 -0
  373. data/test/dummy/tmp/cache/assets/C89/2F0/sprockets%2F94dba97434f3147a95c57f118058a940 +0 -0
  374. data/test/dummy/tmp/cache/assets/C8A/A70/sprockets%2F1cac4566e97f982516545e402607ae83 +0 -0
  375. data/test/dummy/tmp/cache/assets/C8B/580/sprockets%2F68543590e73c9934289a122dd65c36bb +0 -0
  376. data/test/dummy/tmp/cache/assets/C8D/400/sprockets%2Fc30656a43a37db4d10fb450243b06312 +0 -0
  377. data/test/dummy/tmp/cache/assets/C9C/CE0/sprockets%2F7461b7410d4ec3105d71f4e42b50308d +0 -0
  378. data/test/dummy/tmp/cache/assets/C9E/BA0/sprockets%2F8d90fe613410226318bb7b050ae25a76 +0 -0
  379. data/test/dummy/tmp/cache/assets/CA8/AA0/sprockets%2F439a2b1b28b105e731fd58712e256f45 +0 -0
  380. data/test/dummy/tmp/cache/assets/CAB/AE0/sprockets%2F028fb517982c7010d201fcd88934c5a5 +0 -0
  381. data/test/dummy/tmp/cache/assets/CAC/580/sprockets%2F35e06ad8c8087d002c808a608933f41d +0 -0
  382. data/test/dummy/tmp/cache/assets/CAE/310/sprockets%2F014ed726e92570c181a618db4b039c98 +0 -0
  383. data/test/dummy/tmp/cache/assets/CB0/6A0/sprockets%2F9c579b207d73833720c2a096ae025e9c +0 -0
  384. data/test/dummy/tmp/cache/assets/CB8/680/sprockets%2F5abaa5243061a513d5a0456b1f108d04 +0 -0
  385. data/test/dummy/tmp/cache/assets/CBE/420/sprockets%2F169ec906f26ff645078942ee431b168a +0 -0
  386. data/test/dummy/tmp/cache/assets/CBE/D60/sprockets%2F001ccd7449d98279b377b8d168e1274e +0 -0
  387. data/test/dummy/tmp/cache/assets/CC9/8D0/sprockets%2F1917e845e733759a8e3635c4ea3b97e8 +0 -0
  388. data/test/dummy/tmp/cache/assets/CCD/AA0/sprockets%2F9764a41d0730101411d9bda28ddb4a59 +0 -0
  389. data/test/dummy/tmp/cache/assets/CD1/DE0/sprockets%2F866e64f9268a26b808f585d9794aa81d +0 -0
  390. data/test/dummy/tmp/cache/assets/CD2/6E0/sprockets%2F49709b8010a17ad8ce04a3683ac6306d +0 -0
  391. data/test/dummy/tmp/cache/assets/CD3/740/sprockets%2F2c7745404c11f4e2b8e8591043a8bad0 +0 -0
  392. data/test/dummy/tmp/cache/assets/CD5/0F0/sprockets%2F38203a3abdd568f50ff08426315e80a5 +0 -0
  393. data/test/dummy/tmp/cache/assets/CD5/240/sprockets%2F8d783b81ac804a06d2171a75d2b4653c +0 -0
  394. data/test/dummy/tmp/cache/assets/CD5/610/sprockets%2Fb27392311c7db818d8c1fa08e30055c6 +0 -0
  395. data/test/dummy/tmp/cache/assets/CD6/C20/sprockets%2Fb8340ca5274524b0057417fe4d6f51cf +0 -0
  396. data/test/dummy/tmp/cache/assets/CD7/DE0/sprockets%2F4720f20e2b75f217ee197e7c50211b7e +0 -0
  397. data/test/dummy/tmp/cache/assets/CDF/3E0/sprockets%2F2fc85a2f075e63902a10640d968f5e2d +0 -0
  398. data/test/dummy/tmp/cache/assets/CE0/540/sprockets%2Fc355333ce37ace3a93e33b777c508608 +0 -0
  399. data/test/dummy/tmp/cache/assets/CE4/500/sprockets%2F16f65934b8aba4865072d41b267f3df5 +0 -0
  400. data/test/dummy/tmp/cache/assets/CE4/F80/sprockets%2Fc20b73a65ec677bf944467e29e01815a +0 -0
  401. data/test/dummy/tmp/cache/assets/CE6/670/sprockets%2F552338bdd216cf38c296665da29b6c72 +0 -0
  402. data/test/dummy/tmp/cache/assets/CE7/250/sprockets%2F365ffc773f538508666e32f201adb7a6 +0 -0
  403. data/test/dummy/tmp/cache/assets/CE9/E20/sprockets%2Fa60330f52bfa7476d7e79890c83e0e09 +0 -0
  404. data/test/dummy/tmp/cache/assets/CEB/B50/sprockets%2F25de688e596bf489043eaa01e949323a +0 -0
  405. data/test/dummy/tmp/cache/assets/CEC/760/sprockets%2F7e948c4f7d40843f90fb9cc1a1582057 +0 -0
  406. data/test/dummy/tmp/cache/assets/CF5/D10/sprockets%2Fed4f070a60c671b413546930a0bb2ce3 +0 -0
  407. data/test/dummy/tmp/cache/assets/CF7/360/sprockets%2F0d709f9c69de297f27b94c9f122d6831 +0 -0
  408. data/test/dummy/tmp/cache/assets/CFA/BC0/sprockets%2F5d2090a6bfa80d525522e8301c152edd +0 -0
  409. data/test/dummy/tmp/cache/assets/CFE/7B0/sprockets%2F62ee8b041b2d600cd601774e02ec53d8 +0 -0
  410. data/test/dummy/tmp/cache/assets/CFF/930/sprockets%2F09983bf571e99e8eff86325de42b1675 +0 -0
  411. data/test/dummy/tmp/cache/assets/D01/040/sprockets%2Fea215190e12741a67f81ae56c1dea337 +0 -0
  412. data/test/dummy/tmp/cache/assets/D03/F30/sprockets%2F41234b771cd781f506a2a0cf86ba08e5 +0 -0
  413. data/test/dummy/tmp/cache/assets/D05/A20/sprockets%2F8ea654085dec00b630f25102f89a1c7e +0 -0
  414. data/test/dummy/tmp/cache/assets/D0D/420/sprockets%2F36e003dc889f6f3f1242c6e9d1d0317a +0 -0
  415. data/test/dummy/tmp/cache/assets/D0D/660/sprockets%2Fb92af6b373409b8a2ac47cb29766f222 +0 -0
  416. data/test/dummy/tmp/cache/assets/D0D/FA0/sprockets%2Ffbd47d3b5405c8861169b5520fbc083e +0 -0
  417. data/test/dummy/tmp/cache/assets/D11/150/sprockets%2F2720b8f492d06b6d6b1724bc9cd941c9 +0 -0
  418. data/test/dummy/tmp/cache/assets/D11/1B0/sprockets%2Fb99c3678b42e004148d0868cedbe026c +0 -0
  419. data/test/dummy/tmp/cache/assets/D11/ED0/sprockets%2Ff7a8ed05241fef8b135024d51b94945e +0 -0
  420. data/test/dummy/tmp/cache/assets/D12/4F0/sprockets%2F7a26fb379fadbc24f94c345b30535287 +0 -0
  421. data/test/dummy/tmp/cache/assets/D15/8A0/sprockets%2F9b1ffb38905305577fcd88fc00c802b6 +0 -0
  422. data/test/dummy/tmp/cache/assets/D16/B10/sprockets%2Ff7f68a65b09f33f4561a4a3950eb32e8 +0 -0
  423. data/test/dummy/tmp/cache/assets/D17/130/sprockets%2F21b812e14954cfecf0cc7c64863b8829 +0 -0
  424. data/test/dummy/tmp/cache/assets/D18/010/sprockets%2F9a67ed918a54c52374df7097405cb4bc +0 -0
  425. data/test/dummy/tmp/cache/assets/D18/440/sprockets%2F45b53a8779090b1fea7e934296f7bc1a +0 -0
  426. data/test/dummy/tmp/cache/assets/D18/EB0/sprockets%2F9d5f5d6c6950d28b4df7c625190811da +0 -0
  427. data/test/dummy/tmp/cache/assets/D1B/BE0/sprockets%2Fab5f94041a5bd95b912e8839d86b736b +0 -0
  428. data/test/dummy/tmp/cache/assets/D1C/560/sprockets%2F00201c441ba9a9563b174185caa0bdea +0 -0
  429. data/test/dummy/tmp/cache/assets/D1C/DB0/sprockets%2Ffd38d829bdf04f189d1d55ec69209340 +0 -0
  430. data/test/dummy/tmp/cache/assets/D1D/2A0/sprockets%2Fe168814999aedd80caf58d82323a0f74 +0 -0
  431. data/test/dummy/tmp/cache/assets/D1D/A70/sprockets%2Ffd060d6fea64355d7e8438565a90ab79 +0 -0
  432. data/test/dummy/tmp/cache/assets/D1E/6D0/sprockets%2F4c9abb81479c230cdc309966f9cc9834 +0 -0
  433. data/test/dummy/tmp/cache/assets/D21/6C0/sprockets%2F634a6cf1fd591b98c81ca4f66b652994 +0 -0
  434. data/test/dummy/tmp/cache/assets/D24/150/sprockets%2Fd58600176d5cb1eeb26024be20a40c7b +0 -0
  435. data/test/dummy/tmp/cache/assets/D26/840/sprockets%2Fc76bba255c7bd803b4e027313e6ad021 +0 -0
  436. data/test/dummy/tmp/cache/assets/D2C/830/sprockets%2F9cc457340b3a52c2fe7a0c75b01a27a8 +0 -0
  437. data/test/dummy/tmp/cache/assets/D2C/EE0/sprockets%2F562208e38f8ac1f9762cc94f4ef89c66 +0 -0
  438. data/test/dummy/tmp/cache/assets/D2E/160/sprockets%2F1dae7e48d3c1c24b3ac21e6930a51755 +0 -0
  439. data/test/dummy/tmp/cache/assets/D2F/890/sprockets%2Ff7505e99736cf7d6bd254b28b8974d7e +0 -0
  440. data/test/dummy/tmp/cache/assets/D30/D90/sprockets%2Fb8f58f84f7f906a29cf39760854c1ec8 +0 -0
  441. data/test/dummy/tmp/cache/assets/D32/6E0/sprockets%2Fe0bcc2425fab37d22290d720d8ef8415 +0 -0
  442. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  443. data/test/dummy/tmp/cache/assets/D33/4C0/sprockets%2Fcb9a7d05043e30311d5f3e7fb81194eb +0 -0
  444. data/test/dummy/tmp/cache/assets/D33/EB0/sprockets%2F1446b0b73eb60c1bfb78f4360513ddf6 +0 -0
  445. data/test/dummy/tmp/cache/assets/D35/800/sprockets%2F6eb4a3dacdd7542329494a7403cf4c04 +0 -0
  446. data/test/dummy/tmp/cache/assets/D35/950/sprockets%2F4c67cda11e05b84b2fff1271368b810f +0 -0
  447. data/test/dummy/tmp/cache/assets/D36/280/sprockets%2F6bd1f83e30273b110d8ac69038f1e7fa +0 -0
  448. data/test/dummy/tmp/cache/assets/D36/2E0/sprockets%2F41224a1b9e52c2b3d964f0a8dc6e09a8 +0 -0
  449. data/test/dummy/tmp/cache/assets/D37/EF0/sprockets%2F80b76c20dee353677b8da0ae803f33e1 +0 -0
  450. data/test/dummy/tmp/cache/assets/D38/9D0/sprockets%2F87b12063ea5fc0a254088ce1c892c7db +0 -0
  451. data/test/dummy/tmp/cache/assets/D39/5A0/sprockets%2Ff5d437ae42ef7df4b02d603f3692a413 +0 -0
  452. data/test/dummy/tmp/cache/assets/D3B/870/sprockets%2Fbc3648fb40b4085ee6b5afd479c22342 +0 -0
  453. data/test/dummy/tmp/cache/assets/D3C/8B0/sprockets%2F16408de6b85cc18b54edca73276dc143 +0 -0
  454. data/test/dummy/tmp/cache/assets/D3C/C60/sprockets%2F9ad34c607b32e90c43d3e7aebb576571 +0 -0
  455. data/test/dummy/tmp/cache/assets/D3F/030/sprockets%2Fd440c4b05ed0e12af58669f0c46c579d +0 -0
  456. data/test/dummy/tmp/cache/assets/D41/7F0/sprockets%2Fb236a9f4da15f7e9309e61d64c4e0f06 +0 -0
  457. data/test/dummy/tmp/cache/assets/D43/570/sprockets%2Fb490975b508fa73db3c0df9210fa39f8 +0 -0
  458. data/test/dummy/tmp/cache/assets/D45/3A0/sprockets%2Fd3a8b586f381ac437c3673d2ab0fe886 +0 -0
  459. data/test/dummy/tmp/cache/assets/D47/4A0/sprockets%2Fc9e62f7d0fb7f20004a8f08ed9d65725 +0 -0
  460. data/test/dummy/tmp/cache/assets/D49/810/sprockets%2F58e93e8065b1d7ebb281e2651962fbfc +0 -0
  461. data/test/dummy/tmp/cache/assets/D49/ED0/sprockets%2Ff4d29a55977c0e5ae3484ea6c2ad4657 +0 -0
  462. data/test/dummy/tmp/cache/assets/D4B/D40/sprockets%2F5fae926de30c648264e4c5fb9d09492b +0 -0
  463. data/test/dummy/tmp/cache/assets/D50/900/sprockets%2F6c8e56f2d88ee948dbd9b5365124b1b4 +0 -0
  464. data/test/dummy/tmp/cache/assets/D50/B10/sprockets%2F9758a22f2df38dae88c25246d1fd6f73 +0 -0
  465. data/test/dummy/tmp/cache/assets/D50/EC0/sprockets%2Fb6190193bb523598adba6894899fecea +0 -0
  466. data/test/dummy/tmp/cache/assets/D52/0D0/sprockets%2F1e9871b6efe36e72795998502daab0fd +0 -0
  467. data/test/dummy/tmp/cache/assets/D53/4A0/sprockets%2F4d4e07b2c68be65d62efc4728f478e38 +0 -0
  468. data/test/dummy/tmp/cache/assets/D54/3F0/sprockets%2F1ddc697da6d01003513c3eddb2230b6f +0 -0
  469. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
  470. data/test/dummy/tmp/cache/assets/D56/7F0/sprockets%2F82c200adea1fd64ca48b7280c1c5172b +0 -0
  471. data/test/dummy/tmp/cache/assets/D58/BB0/sprockets%2F3962e2936f79b20e77cf14ed8cf8ff51 +0 -0
  472. data/test/dummy/tmp/cache/assets/D59/520/sprockets%2F83d4ec4e5f2ac1c2b0b7353d50320f5c +0 -0
  473. data/test/dummy/tmp/cache/assets/D5A/AB0/sprockets%2F372189f24bd2fa7c98e9b87b9fa178a8 +0 -0
  474. data/test/dummy/tmp/cache/assets/D5B/D20/sprockets%2F1910a944e3a4b4aab20f1f7ddb36527d +0 -0
  475. data/test/dummy/tmp/cache/assets/D5C/0B0/sprockets%2F67f5b0fa70009fce3a2ab0ec47d43730 +0 -0
  476. data/test/dummy/tmp/cache/assets/D5C/660/sprockets%2Fc8ce9c92534d5b688cb78873ab3f7f28 +0 -0
  477. data/test/dummy/tmp/cache/assets/D5C/E70/sprockets%2Fbe7fe4a67e5cb7897818836d4506efc4 +0 -0
  478. data/test/dummy/tmp/cache/assets/D5F/E50/sprockets%2Fe0c1efda752b0a4bf1a9d96234b22943 +0 -0
  479. data/test/dummy/tmp/cache/assets/D63/D60/sprockets%2F5be58d292d69530da023d07ede4aa33c +0 -0
  480. data/test/dummy/tmp/cache/assets/D6A/AE0/sprockets%2F53d6cfe0033a01e79e8b0edff282d382 +0 -0
  481. data/test/dummy/tmp/cache/assets/D6C/DE0/sprockets%2F0f44fde84ce5e309312bc6c4ff10728c +0 -0
  482. data/test/dummy/tmp/cache/assets/D6D/6D0/sprockets%2F580810d4c6e48f4ea8aa92ba9aaa3828 +0 -0
  483. data/test/dummy/tmp/cache/assets/D75/730/sprockets%2F9552cd68a860be264158d61eedaa66bf +0 -0
  484. data/test/dummy/tmp/cache/assets/D75/890/sprockets%2F0b391ab1d7496516ec38b8ff4f8d33be +0 -0
  485. data/test/dummy/tmp/cache/assets/D76/1D0/sprockets%2F81ee83473f2dc8f215bc19b2de37e3b9 +0 -0
  486. data/test/dummy/tmp/cache/assets/D77/CC0/sprockets%2F2f3c6a31d7e596f39e74751cccbf21f5 +0 -0
  487. data/test/dummy/tmp/cache/assets/D78/FC0/sprockets%2Feea9f4eb87db37fc1f4852b91302817d +0 -0
  488. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  489. data/test/dummy/tmp/cache/assets/D84/740/sprockets%2F91d64ad24d49c65bb8fd59fb5776d70f +0 -0
  490. data/test/dummy/tmp/cache/assets/D87/900/sprockets%2Ffe2af6a88486755788ef36046fadba5e +0 -0
  491. data/test/dummy/tmp/cache/assets/D89/700/sprockets%2F99213cf7c36ff7c75dfeb875f1d0588b +0 -0
  492. data/test/dummy/tmp/cache/assets/D8B/710/sprockets%2F18688d5b9ad2e9ee3c99f1fd7f03c872 +0 -0
  493. data/test/dummy/tmp/cache/assets/D8E/1E0/sprockets%2Fbf3d1fe102ec44134f5cd4427bd3e8b1 +0 -0
  494. data/test/dummy/tmp/cache/assets/D92/8E0/sprockets%2Fb0e2b0c077a83b9f21c59bde03d44ef4 +0 -0
  495. data/test/dummy/tmp/cache/assets/D92/F60/sprockets%2Fbc58389eadd867e5b57b89c92bc8963e +0 -0
  496. data/test/dummy/tmp/cache/assets/D96/DE0/sprockets%2F51c47cc6ec633ad52c52e57182fdecb0 +0 -0
  497. data/test/dummy/tmp/cache/assets/D9A/CB0/sprockets%2F91ab4aaa9e772164ba8a744c65ecab76 +0 -0
  498. data/test/dummy/tmp/cache/assets/D9C/410/sprockets%2F8b2d367c1b8dc92c17bcac7c36af1971 +0 -0
  499. data/test/dummy/tmp/cache/assets/D9C/D80/sprockets%2F8b11a8fd930b5eadd58b9e2dc2523f17 +0 -0
  500. data/test/dummy/tmp/cache/assets/D9F/1F0/sprockets%2F1da9f517db0b6b474c57f7c74c5d2ab7 +0 -0
  501. data/test/dummy/tmp/cache/assets/DA0/630/sprockets%2Ff59a4ccd0896af3cec2179f0b2817cc2 +0 -0
  502. data/test/dummy/tmp/cache/assets/DA0/A90/sprockets%2F38ccaad5b5ca95079568aaabf9157b72 +0 -0
  503. data/test/dummy/tmp/cache/assets/DA0/BF0/sprockets%2Fba8192bb45ac9f5668ed47dfdc1d2512 +0 -0
  504. data/test/dummy/tmp/cache/assets/DA0/F80/sprockets%2F2855b4dfd7f7154ae74ac4ed85bb433a +0 -0
  505. data/test/dummy/tmp/cache/assets/DA2/CC0/sprockets%2F9cc592e1e03a480f97b7f36e2be70cdb +0 -0
  506. data/test/dummy/tmp/cache/assets/DA3/450/sprockets%2Fadbd33c8699d2fd56903b1cf66de207b +0 -0
  507. data/test/dummy/tmp/cache/assets/DA3/C00/sprockets%2Fd8bf48f3482c1f1917b6e007ffb8cc0d +0 -0
  508. data/test/dummy/tmp/cache/assets/DA4/C00/sprockets%2Ff792a72a4b0cfcb23a49927e298fb5cd +0 -0
  509. data/test/dummy/tmp/cache/assets/DA5/660/sprockets%2F4fc47a92c03dfa1768fda7b8e4ef2822 +0 -0
  510. data/test/dummy/tmp/cache/assets/DAB/720/sprockets%2Ffde1e8b346c4513c94e7d94fbd8c67b0 +0 -0
  511. data/test/dummy/tmp/cache/assets/DAC/ED0/sprockets%2Fe5426f71dffe4762c8faad05f890c65c +0 -0
  512. data/test/dummy/tmp/cache/assets/DB2/130/sprockets%2F646dea1c956d67dbfed9c8656f2670bb +0 -0
  513. data/test/dummy/tmp/cache/assets/DB2/3A0/sprockets%2F1d88ecba6d031d6ee29ffb5ef9874906 +0 -0
  514. data/test/dummy/tmp/cache/assets/DB2/900/sprockets%2F2f0372a25fdede516d5a2afbd4b3c100 +0 -0
  515. data/test/dummy/tmp/cache/assets/DB5/D30/sprockets%2Fa14a0cc51baa7132ab9c8f0b99a912cd +0 -0
  516. data/test/dummy/tmp/cache/assets/DB6/260/sprockets%2F472beffc68fb9e59623f21f91edfc546 +0 -0
  517. data/test/dummy/tmp/cache/assets/DB7/4C0/sprockets%2F0e9f81e64a27e86fbb7969f2a4ff4cb7 +0 -0
  518. data/test/dummy/tmp/cache/assets/DC2/D00/sprockets%2F1e633d7de336bd8bf5fea00e101d61fe +0 -0
  519. data/test/dummy/tmp/cache/assets/DC5/BF0/sprockets%2Fc0de69af1ee5606ceaf01dc6c46c1850 +0 -0
  520. data/test/dummy/tmp/cache/assets/DC7/7F0/sprockets%2Fd07dad14b06b063b7288e9bf68eb1dbb +0 -0
  521. data/test/dummy/tmp/cache/assets/DCE/2F0/sprockets%2F79d9c914093bfa09fd0d312f1cfdccf2 +0 -0
  522. data/test/dummy/tmp/cache/assets/DCF/6B0/sprockets%2F7a7ee808b774fa10dbacb6dbf79404e3 +0 -0
  523. data/test/dummy/tmp/cache/assets/DD1/B20/sprockets%2F53b5cdebe10ee9593ac070ee36f8f1d7 +0 -0
  524. data/test/dummy/tmp/cache/assets/DD2/1E0/sprockets%2F8db8160d9519ffa45c4cfa60cce87cb1 +0 -0
  525. data/test/dummy/tmp/cache/assets/DD4/710/sprockets%2F5496d239a661dcfcbac8f1ea993f3a0f +0 -0
  526. data/test/dummy/tmp/cache/assets/DD4/E40/sprockets%2Fec35368ec5e2dcbb814891bfbf94b51d +0 -0
  527. data/test/dummy/tmp/cache/assets/DD5/110/sprockets%2Fffc56a910d1cfefb2872c1379f91ac5f +0 -0
  528. data/test/dummy/tmp/cache/assets/DD6/260/sprockets%2F9eb469e2ec6d1ea639be1a5dfd3990b2 +0 -0
  529. data/test/dummy/tmp/cache/assets/DDD/710/sprockets%2F3cccf767b189d7e7f1e13f13790cdfed +0 -0
  530. data/test/dummy/tmp/cache/assets/DE0/490/sprockets%2Ff0fc479a83e9539db2d65edaf96df32a +0 -0
  531. data/test/dummy/tmp/cache/assets/DEB/0E0/sprockets%2F0ca4738d4bc33f23fcac201d38cbbfc8 +0 -0
  532. data/test/dummy/tmp/cache/assets/DEB/170/sprockets%2Fdea4e31c9262d2b70ebe32d6d0f22ecb +0 -0
  533. data/test/dummy/tmp/cache/assets/DED/9E0/sprockets%2Fdaccdeeaa07426dea5dde08b57512234 +0 -0
  534. data/test/dummy/tmp/cache/assets/DF1/4E0/sprockets%2Ff862c60d998967cc9eec5ababb69e98d +0 -0
  535. data/test/dummy/tmp/cache/assets/DF8/430/sprockets%2Fc2b9a5d3ce6c2dbfc0e2719bed22477d +0 -0
  536. data/test/dummy/tmp/cache/assets/DFC/880/sprockets%2Faeb6bac75bb3a8ff2aa5dd29007778c8 +0 -0
  537. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  538. data/test/dummy/tmp/cache/assets/E09/DF0/sprockets%2F36ef9cfea609a926571ddc3f7b06fcaf +0 -0
  539. data/test/dummy/tmp/cache/assets/E1B/750/sprockets%2Fda4a4b2cd44e31ee2cc3f9ec1fb1940b +0 -0
  540. data/test/dummy/tmp/cache/assets/E25/100/sprockets%2Faabf8c2cfd993050bdbeee5350c59b2b +0 -0
  541. data/test/dummy/tmp/cache/assets/E29/DA0/sprockets%2F085e2ef3fa66a0811b9ebc56d3beeceb +0 -0
  542. data/test/dummy/tmp/cache/assets/E35/A00/sprockets%2F3b6df3346f6fc5b9bbea28eae84fbe52 +0 -0
  543. data/test/dummy/tmp/cache/assets/E38/BA0/sprockets%2F0766d39ddcac557ed7bb1cfc6db69ef2 +0 -0
  544. data/test/dummy/tmp/cache/assets/E3B/980/sprockets%2Fd5a26ef3fd0755e8bbac9fe05fe7e4d7 +0 -0
  545. data/test/dummy/tmp/cache/assets/E3C/B30/sprockets%2Fcd4f66618ff5feb98ac3ce0bb26da9c9 +0 -0
  546. data/test/dummy/tmp/cache/assets/E53/590/sprockets%2Fcbefebb7e0390fbb1116a666cdeffa07 +0 -0
  547. data/test/dummy/tmp/cache/assets/E82/EB0/sprockets%2Fae4e8fc2dcd3a15f5b0a0ed945abd5ee +0 -0
  548. data/test/dummy/tmp/cache/assets/E8A/760/sprockets%2Ff70dde2a9e5ce6faaf045b9ae1c37dcc +0 -0
  549. data/test/dummy/tmp/cache/assets/E8C/070/sprockets%2F0cf1e93bfbd1c7afde52ffd72e0b66de +0 -0
  550. data/test/dummy/tmp/dragonfly/cache/body/03/eb3b0b849bb3e4bfeccacb05a55c6390cda15c +42 -0
  551. data/test/dummy/tmp/dragonfly/cache/body/07/8165f0f6b32937fddce91b5243a25cc39c75ad +150 -0
  552. data/test/dummy/tmp/dragonfly/cache/body/0d/3c95d8ceec588177a8c7e316ef01525f73d24d +14 -0
  553. data/test/dummy/tmp/dragonfly/cache/body/10/4ba2e7b7368c124e23143ab9648288368c78c5 +10 -0
  554. data/test/dummy/tmp/dragonfly/cache/body/10/82b7c75ddade9dce4df7b6d3787e94fd7c3272 +7 -0
  555. data/test/dummy/tmp/dragonfly/cache/body/12/139478cdc8419701c49d64aaa4acc724acae48 +12 -0
  556. data/test/dummy/tmp/dragonfly/cache/body/13/b758f2813676b52fb469b302599f18382368fd +7 -0
  557. data/test/dummy/tmp/dragonfly/cache/body/1c/88ec9e82fc2e0ef8a8179d60c77257d42aff74 +14 -0
  558. data/test/dummy/tmp/dragonfly/cache/body/20/701ae50a0ef8711e59bf9a156c100a1b7638d2 +0 -0
  559. data/test/dummy/tmp/dragonfly/cache/body/22/cd6d21c677a1cff079c5654bed58927239cacf +79 -0
  560. data/test/dummy/tmp/dragonfly/cache/body/36/1dd588cb23da637742baed804ccf4c59f8465f +14 -0
  561. data/test/dummy/tmp/dragonfly/cache/body/3c/1bb177cade2d463575b2795c5e57f7c4dbd696 +9353 -0
  562. data/test/dummy/tmp/dragonfly/cache/body/3c/ac4eb011fe38be14b2f75f3c5e4b702c021daa +7 -0
  563. data/test/dummy/tmp/dragonfly/cache/body/3e/f63b348d8ad48be7f3d8869f255af8d5d8b19f +8982 -0
  564. data/test/dummy/tmp/dragonfly/cache/body/42/05c52ebce4d502612c4b2f58818b1db0fec23b +7 -0
  565. data/test/dummy/tmp/dragonfly/cache/body/42/0c43d2d5b965a64dd3bf88454edc90d15ec636 +0 -0
  566. data/test/dummy/tmp/dragonfly/cache/body/48/253a67c3277035c2e01b70c2c3eb13762c6ff5 +0 -0
  567. data/test/dummy/tmp/dragonfly/cache/body/54/064bc3ca8d19cc634620d102713820646c9966 +10 -0
  568. data/test/dummy/tmp/dragonfly/cache/body/58/604de8cd96eab50d5bd4f2e095439c92cc1ab4 +66 -0
  569. data/test/dummy/tmp/dragonfly/cache/body/5c/4bb95bbbe3b68f6c67591a601e29524f33bd67 +0 -0
  570. data/test/dummy/tmp/dragonfly/cache/body/5f/d9282e72652fc95ea52dcc22f0efca123e4301 +1 -0
  571. data/test/dummy/tmp/dragonfly/cache/body/61/97eb13b4254f77f16833e1a9a8640e939d574c +0 -0
  572. data/test/dummy/tmp/dragonfly/cache/body/65/2c69de0c859d6215239dd06cc4fd54c5a0e632 +5 -0
  573. data/test/dummy/tmp/dragonfly/cache/body/66/53f8900fd565805cad6fd4fbcdc037b83fa938 +14 -0
  574. data/test/dummy/tmp/dragonfly/cache/body/6e/0b2440383d4bb4165efa618c5475470d43ab6e +8 -0
  575. data/test/dummy/tmp/dragonfly/cache/body/71/37f667e905abafb79868df92647c49af5552d3 +7 -0
  576. data/test/dummy/tmp/dragonfly/cache/body/74/a915f04ea303b6b1488fedcc3095a1dc216319 +46 -0
  577. data/test/dummy/tmp/dragonfly/cache/body/76/116d7ed02e8dab5c22e3b872559e5f351c4711 +10 -0
  578. data/test/dummy/tmp/dragonfly/cache/body/79/31af4ea1434ad6dba1c6a04315b23a2d0179c2 +0 -0
  579. data/test/dummy/tmp/dragonfly/cache/body/95/1fda6329351be36f185c1b7a5c1fcb6104ac26 +0 -0
  580. data/test/dummy/tmp/dragonfly/cache/body/95/f49275feb57d8ff1d87081d61ab707c9e23e1e +0 -0
  581. data/test/dummy/tmp/dragonfly/cache/body/99/b4dd5966c85ab90c361f3c129e4815f2282930 +1 -0
  582. data/test/dummy/tmp/dragonfly/cache/body/9a/01cd24640b519c2010cbf049bc6ccae4df3435 +26 -0
  583. data/test/dummy/tmp/dragonfly/cache/body/a1/16a69d513fb5d0b7530af579cab48c168536aa +9 -0
  584. data/test/dummy/tmp/dragonfly/cache/body/a1/d3d5a6ed952ccf4816b4a96d4767ce9bae8164 +5 -0
  585. data/test/dummy/tmp/dragonfly/cache/body/a3/6b28298dfba53475f7380d97ff873cf1248b97 +0 -0
  586. data/test/dummy/tmp/dragonfly/cache/body/a8/ea7f8211495d554e031941d005c8f7216fd68d +6 -0
  587. data/test/dummy/tmp/dragonfly/cache/body/aa/76cb03685d000103614b53fcdec6abd3312d78 +0 -0
  588. data/test/dummy/tmp/dragonfly/cache/body/ab/0ba7805258dfaffd12d7b27d2c72007bc85faf +42 -0
  589. data/test/dummy/tmp/dragonfly/cache/body/ad/382f97923c8dde85f5aad622c5f5c97d5b27d6 +1 -0
  590. data/test/dummy/tmp/dragonfly/cache/body/af/a8ef1a031e27a61d44c342608f287bafd54883 +0 -0
  591. data/test/dummy/tmp/dragonfly/cache/body/b1/6b131f227893150771f7d9af11475b680aebc9 +0 -0
  592. data/test/dummy/tmp/dragonfly/cache/body/b5/ca9f4350c61d1d1d2b23b3928cc54bf09999c5 +13 -0
  593. data/test/dummy/tmp/dragonfly/cache/body/b8/9f78c0a6db0f90cc13c5a358470f15d21b0f0e +79 -0
  594. data/test/dummy/tmp/dragonfly/cache/body/b9/eb3403996af30a4498a7d6b773266509ad8ad6 +10 -0
  595. data/test/dummy/tmp/dragonfly/cache/body/c2/d1fe276d6e527c155855e99dc19d239b6d71f3 +7 -0
  596. data/test/dummy/tmp/dragonfly/cache/body/c3/eac7335df76a2becf45783dc21a8d626453554 +42 -0
  597. data/test/dummy/tmp/dragonfly/cache/body/c9/c706a9b9d061158816815765de368764242445 +11 -0
  598. data/test/dummy/tmp/dragonfly/cache/body/cc/2b40f0a2ef5eb22d777d81575a9020898bc459 +10 -0
  599. data/test/dummy/tmp/dragonfly/cache/body/d4/2659abf79929384348c3dc39a7a6c150d5939d +41 -0
  600. data/test/dummy/tmp/dragonfly/cache/body/d5/73b73186cdf4007c9714beafccdf0862b87c18 +7 -0
  601. data/test/dummy/tmp/dragonfly/cache/body/d8/30591de37575f1d8fa38f84b3060269db5a549 +42 -0
  602. data/test/dummy/tmp/dragonfly/cache/body/ea/8830a670f9a4513c7c67d8b577072ac01afc93 +12 -0
  603. data/test/dummy/tmp/dragonfly/cache/body/fc/93e44494bc4b2a53ecf1d3e95aa2d8a01339ed +364 -0
  604. data/test/dummy/tmp/dragonfly/cache/body/fd/ab0053425ba609387dffb0e2529a8feacc3906 +0 -0
  605. data/test/dummy/tmp/dragonfly/cache/meta/04/cfe66775dd062d8e8ed54c63d7d7578156fcd9 +0 -0
  606. data/test/dummy/tmp/dragonfly/cache/meta/07/91fb614e455267f3a19da4218688c3d05b0cab +0 -0
  607. data/test/dummy/tmp/dragonfly/cache/meta/08/583d3580bdba862155e60de9a00668e59daf9a +0 -0
  608. data/test/dummy/tmp/dragonfly/cache/meta/09/828a2e2227c8ee400355ae1a23ad2bd790141d +0 -0
  609. data/test/dummy/tmp/dragonfly/cache/meta/0d/3d65cfd83d3144d664a407c58772a9af580f2c +0 -0
  610. data/test/dummy/tmp/dragonfly/cache/meta/1f/f07ad344a1cb0b8ec31186f4dc9db0839ad627 +0 -0
  611. data/test/dummy/tmp/dragonfly/cache/meta/26/1464d915347774c08b1ddf6d305783e3acfadb +0 -0
  612. data/test/dummy/tmp/dragonfly/cache/meta/26/73bb640eaad736de2ea11327abb3567f79c9fd +0 -0
  613. data/test/dummy/tmp/dragonfly/cache/meta/29/9a9ad069bc6d828e0d5f55644877ce9b62cb23 +0 -0
  614. data/test/dummy/tmp/dragonfly/cache/meta/33/fd8b6a50207f556064a867cd45a5a913fc39e6 +0 -0
  615. data/test/dummy/tmp/dragonfly/cache/meta/35/89edfe429efa98a23e7f9add3cfa1ef33a8b71 +0 -0
  616. data/test/dummy/tmp/dragonfly/cache/meta/3f/f1f94c6b5c03ff4cf81cb23bfc60912c894b6f +0 -0
  617. data/test/dummy/tmp/dragonfly/cache/meta/51/d20274bbbbb01e6fa7dcdd39776bfb0a001dda +0 -0
  618. data/test/dummy/tmp/dragonfly/cache/meta/54/49e130b5f21a7d1fb0bf87bdccf473caa28fb4 +0 -0
  619. data/test/dummy/tmp/dragonfly/cache/meta/5e/f7d5756119e2b71e82ea878824891efc8d4e98 +0 -0
  620. data/test/dummy/tmp/dragonfly/cache/meta/64/41ffd938beeeae87f4cb84ed8cc2dc89d7ebc0 +0 -0
  621. data/test/dummy/tmp/dragonfly/cache/meta/66/4c2f6718656261fba53eae83feecda49a4fe27 +0 -0
  622. data/test/dummy/tmp/dragonfly/cache/meta/66/f44aba1428593600ff0e47ea6aa54362e39a59 +0 -0
  623. data/test/dummy/tmp/dragonfly/cache/meta/75/868cd14b8d420dcd4ef44afcd20722ad7a1c3f +0 -0
  624. data/test/dummy/tmp/dragonfly/cache/meta/77/08cd91d09e6cc0e0393e02a0fb2e0205cf34af +0 -0
  625. data/test/dummy/tmp/dragonfly/cache/meta/78/5c03964addee8fda74d871c638fef44ca37a1a +0 -0
  626. data/test/dummy/tmp/dragonfly/cache/meta/7c/14b32e4e029b0200d54b210b4148be0349e72c +0 -0
  627. data/test/dummy/tmp/dragonfly/cache/meta/7f/0b8b6f8f34b458916f99a528f4cab40107490d +0 -0
  628. data/test/dummy/tmp/dragonfly/cache/meta/80/5841ac20acdd8dd41460c8346294abc5c4dd8f +0 -0
  629. data/test/dummy/tmp/dragonfly/cache/meta/87/6f1ac29d9a3be64d8ec07d988ee2f7e9210a8c +0 -0
  630. data/test/dummy/tmp/dragonfly/cache/meta/98/09f92ae5a13229558457833b859d1fc4073a75 +0 -0
  631. data/test/dummy/tmp/dragonfly/cache/meta/9b/1e5d2a62e4e1c014350ded8b89e08731e51e12 +0 -0
  632. data/test/dummy/tmp/dragonfly/cache/meta/a0/ca7d61a5e5763e257e13dcbc2b0f11abfd607c +0 -0
  633. data/test/dummy/tmp/dragonfly/cache/meta/a6/415b21bb312e94f5386bebaf0b9dd96f102a4c +0 -0
  634. data/test/dummy/tmp/dragonfly/cache/meta/ae/67c778b4cac5a750af11726e141b1c44969772 +0 -0
  635. data/test/dummy/tmp/dragonfly/cache/meta/bb/64ca9507b7fbb26b5b3085afb8e23beb15dd58 +0 -0
  636. data/test/dummy/tmp/dragonfly/cache/meta/bc/3d6a023e30186fa647759d74acd8538ec159d9 +0 -0
  637. data/test/dummy/tmp/dragonfly/cache/meta/c1/7387f13692af4744efe3e2c05fb5839092ec45 +0 -0
  638. data/test/dummy/tmp/dragonfly/cache/meta/dc/bf7c1fa5b5862d792109822d457a6be23e2fd5 +0 -0
  639. data/test/dummy/tmp/dragonfly/cache/meta/ee/fe74949a8c2a0bbc077385a12944d9f98a12e0 +0 -0
  640. data/test/dummy/tmp/dragonfly/cache/meta/f9/67ac04386c59253bd80f4034d18af166cc5691 +0 -0
  641. data/test/dummy/tmp/dragonfly/cache/meta/fa/a85df3e67eaadf710176efbe0c3b1807db0824 +0 -0
  642. data/test/dummy/tmp/dragonfly/cache/meta/fe/97fd48b64023fee9cc7d8a12f0f1e9097058da +0 -0
  643. data/test/dummy/tmp/dragonfly/cache/meta/ff/d5f8f0d3f33df0282fc5c47f8761d3f328806c +0 -0
  644. data/test/dummy/tmp/pids/server.pid +1 -0
  645. data/test/fixtures/documents.yml +11 -0
  646. data/test/fixtures/node_settings.yml +11 -0
  647. data/test/fixtures/nodes.yml +11 -0
  648. data/test/functional/documents_controller_test.rb +7 -0
  649. data/test/functional/qwerty_admin/base_controller_test.rb +7 -0
  650. data/test/functional/qwerty_admin/documents_controller_test.rb +7 -0
  651. data/test/functional/qwerty_admin/nodes_controller_test.rb +7 -0
  652. data/test/functional/qwerty_base_controller_test.rb +7 -0
  653. data/test/integration/navigation_test.rb +10 -0
  654. data/test/qwerty_test.rb +7 -0
  655. data/test/test_helper.rb +10 -0
  656. data/test/unit/document_test.rb +7 -0
  657. data/test/unit/helpers/documents_helper_test.rb +4 -0
  658. data/test/unit/helpers/qwerty_admin/base_helper_test.rb +4 -0
  659. data/test/unit/helpers/qwerty_admin/documents_helper_test.rb +4 -0
  660. data/test/unit/helpers/qwerty_admin/nodes_helper_test.rb +4 -0
  661. data/test/unit/helpers/qwerty_base_helper_test.rb +4 -0
  662. data/test/unit/node_setting_test.rb +7 -0
  663. data/test/unit/node_test.rb +7 -0
  664. metadata +1195 -0
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This is a manifest file that'll automatically include all the stylesheets available in this directory
3
+ * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
4
+ * the top of the compiled file, but it's generally better to create a new file per style scope.
5
+ *= require_self
6
+ */
@@ -0,0 +1,5 @@
1
+
2
+
3
+ div.document { margin-bottom: 20px; }
4
+ div.documents { margin-top:20px; margin-bottom: 20px; }
5
+ div.node { margin-bottom: 20px; }
File without changes
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,50 @@
1
+ class DocumentsController < QwertyBaseController
2
+
3
+ class NoTemplateFound < StandardError; end
4
+
5
+ def index
6
+ @documents = Document.public
7
+ end
8
+
9
+ def show
10
+ path = request.path == '/' ? '/home' : request.path
11
+ @document = Document.public.find_by_permalink!(path)
12
+ render locate_template(@document)
13
+ end
14
+
15
+ private
16
+
17
+ # TODO: move this in a class in lib, path_prefix should be setable in
18
+ # Qwerty.options
19
+ # Use Pathname class:
20
+ # http://ruby-doc.org/stdlib/libdoc/pathname/rdoc/index.html
21
+
22
+ def locate_template(document)
23
+ view_prefix = 'cms'
24
+
25
+ return File.join(view_prefix, document.template) unless document.template.blank?
26
+ return File.join(view_prefix, document.node.get(:template)) unless document.node.get(:template).blank?
27
+
28
+ paths = [document.title.parameterize('_'),
29
+ document.permalink.gsub('/', '.')[1..-1],
30
+ document.permalink,
31
+ document.node.ancestry.gsub('/root', ''),
32
+ document.node.ancestry.gsub('/root', '').gsub('/', '.')[1..-1],
33
+ 'default',
34
+ 'show']
35
+ paths.uniq.each do | path |
36
+ view_paths.each do | view_path |
37
+ rel_path = File.join(view_prefix, path) + '.html.erb'
38
+ full_path = File.join(view_path, rel_path)
39
+ if File.exists? full_path
40
+ logger.debug "Found: #{full_path}"
41
+ return rel_path
42
+ else
43
+ logger.debug "Not Found: #{full_path}"
44
+ end
45
+ end
46
+ logger.debug ''
47
+ end
48
+ raise NoTemplateFound
49
+ end
50
+ end
@@ -0,0 +1,8 @@
1
+ class QwertyAdmin::BaseController < InheritedResources::Base
2
+ # Module which has a method called 'autherize', this is called from a before_filter below
3
+ include Qwerty.options[:admin_autherization]
4
+
5
+ before_filter :autherize
6
+
7
+ layout 'qwerty_admin'
8
+ end
@@ -0,0 +1,35 @@
1
+ class QwertyAdmin::DocumentsController < QwertyAdmin::BaseController
2
+ def index
3
+ @documents = Document.roots
4
+ end
5
+
6
+ def new
7
+ @document = build_resource
8
+ @document.parent_id = params[:parent_id]
9
+ @document.node_id = params[:node_id]
10
+ end
11
+
12
+ def create
13
+ create! { default_redirect }
14
+ end
15
+
16
+ def update
17
+ update! { default_redirect }
18
+ end
19
+
20
+ def up
21
+ resource.move_higher
22
+ redirect_to default_redirect
23
+ end
24
+
25
+ def down
26
+ resource.move_lower
27
+ redirect_to default_redirect
28
+ end
29
+
30
+ private
31
+
32
+ def default_redirect
33
+ resource.root? ? qwerty_admin_documents_path : qwerty_admin_document_path(resource.parent)
34
+ end
35
+ end
@@ -0,0 +1,34 @@
1
+ class QwertyAdmin::NodesController < QwertyAdmin::BaseController
2
+ def index
3
+ @root_node = Sitemap.root
4
+ end
5
+
6
+ def new
7
+ @node = build_resource
8
+ @node.parent_id = params[:parent_id]
9
+ end
10
+
11
+ def create
12
+ create! { default_redirect }
13
+ end
14
+
15
+ def update
16
+ update! { default_redirect }
17
+ end
18
+
19
+ def up
20
+ resource.move_higher
21
+ redirect_to default_redirect
22
+ end
23
+
24
+ def down
25
+ resource.move_lower
26
+ redirect_to default_redirect
27
+ end
28
+
29
+ private
30
+
31
+ def default_redirect
32
+ qwerty_admin_nodes_path
33
+ end
34
+ end
@@ -0,0 +1,6 @@
1
+ class QwertyBaseController < ApplicationController
2
+ # Module which has a method called 'autherize', this is called from a before_filter below
3
+ include Qwerty.options[:autherization]
4
+
5
+ before_filter :autherize
6
+ end
@@ -0,0 +1,11 @@
1
+ module DocumentsHelper
2
+ # Convert plain text to HTML by cwaddingAdd <p> tags around paragraphs
3
+ def to_html(text)
4
+ return '' if text.blank?
5
+ text.split("\n").collect { |p| "<p>#{p}</p>"}.join("\n").html_safe
6
+ end
7
+
8
+ def document_path(document)
9
+ document.permalink
10
+ end
11
+ end
@@ -0,0 +1,2 @@
1
+ module QwertyAdmin::BaseHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module QwertyAdmin::DocumentsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module QwertyAdmin::NodesHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module QwertyBaseHelper
2
+ end
@@ -0,0 +1,4 @@
1
+ class Ckeditor::Asset < ActiveRecord::Base
2
+ include Ckeditor::Orm::ActiveRecord::AssetBase
3
+ include Ckeditor::Backend::Paperclip
4
+ end
@@ -0,0 +1,15 @@
1
+ class Ckeditor::AttachmentFile < Ckeditor::Asset
2
+ has_attached_file :data,
3
+ :url => "/ckeditor_assets/attachments/:id/:filename",
4
+ :path => ":rails_root/public/ckeditor_assets/attachments/:id/:filename"
5
+
6
+ validates_attachment_size :data, :less_than => 100.megabytes
7
+ validates_attachment_presence :data
8
+
9
+ def url_thumb
10
+ @url_thumb ||= begin
11
+ extname = File.extname(filename).gsub(/^\./, '')
12
+ "/javascripts/ckeditor/filebrowser/images/thumbs/#{extname}.gif"
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ class Ckeditor::Picture < Ckeditor::Asset
2
+ has_attached_file :data,
3
+ :url => "/ckeditor_assets/pictures/:id/:style_:basename.:extension",
4
+ :path => ":rails_root/public/ckeditor_assets/pictures/:id/:style_:basename.:extension",
5
+ :styles => { :content => '800>', :thumb => '118x100#' }
6
+
7
+ validates_attachment_size :data, :less_than => 2.megabytes
8
+ validates_attachment_presence :data
9
+
10
+ def url_content
11
+ url(:content)
12
+ end
13
+ end
@@ -0,0 +1,50 @@
1
+ class Document < ActiveRecord::Base
2
+ belongs_to :node
3
+ has_many :settings, :through => :node, :class_name => 'NodeSetting'
4
+
5
+ validates_presence_of :title
6
+ validates_presence_of :published_at, :if => proc { |d| d.published? }
7
+ validates_uniqueness_of :permalink
8
+
9
+ acts_as_nested_set :dependent => :destroy
10
+ acts_as_list :scope => [ :parent_id, :node_id ]
11
+
12
+ image_accessor :image
13
+
14
+ default_scope :order => 'position ASC'
15
+
16
+ scope :by_node, lambda { |node| where(:node_id => node.id) }
17
+ scope :public, where(:published => true)
18
+
19
+ before_save :set_summary, :set_meta_fields
20
+ before_validation :set_published_at, :set_permalink
21
+
22
+ delegate :get, :to => :node
23
+
24
+ def node_name
25
+ node.name
26
+ end
27
+
28
+ def image?
29
+ !image.nil?
30
+ end
31
+
32
+ private
33
+
34
+ def set_summary
35
+ self.summary = Sanitize.clean(self.body.to(400)) if self.summary.blank? && !self.body.blank?
36
+ end
37
+
38
+ def set_published_at
39
+ self.published_at = Date.today if published? && published_at.blank?
40
+ end
41
+
42
+ def set_meta_fields
43
+ self.meta_title = title if published? && meta_title.blank?
44
+ self.meta_description = summary if published? && meta_description.blank?
45
+ end
46
+
47
+ def set_permalink
48
+ self.permalink = [ (self.root? ? '' : parent.permalink), self.title.parameterize('_') ].join('/') unless self.title.blank?
49
+ end
50
+ end
@@ -0,0 +1,30 @@
1
+ class Node
2
+ module Sugar
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ PerPageOff = 10000
7
+ end
8
+
9
+ def pagination_off!
10
+ settings.find_or_create_by_key('per_page') { |s| s.value = PerPageOff }
11
+ end
12
+
13
+ def undeleteable!
14
+ settings.find_or_create_by_key('can_delete') { |s| s.value = false }
15
+ end
16
+
17
+ def fields(config)
18
+ settings.find_or_create_by_key('include_fields') { |s| s.value = config[:only] } if config[:only]
19
+ settings.find_or_create_by_key('exclude_fields') { |s| s.value = config[:except] } if config[:except]
20
+ end
21
+
22
+ def fieldsets(config)
23
+ settings.find_or_create_by_key('include_fieldsets') { |s| s.value = config[:only] } if config[:only]
24
+ settings.find_or_create_by_key('exclude_fieldsets') { |s| s.value = config[:except] } if config[:except]
25
+ end
26
+
27
+ module ClassMethods
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,71 @@
1
+ class Node < ActiveRecord::Base
2
+ include Sugar
3
+
4
+ has_many :documents, :dependent => :destroy
5
+ has_many :settings, :class_name => 'NodeSetting', :dependent => :destroy
6
+
7
+ acts_as_nested_set :dependent => :destroy
8
+ acts_as_list :scope => :parent_id
9
+
10
+ default_scope :order => 'position ASC'
11
+
12
+ validates_presence_of :name, :ancestry
13
+ validates_uniqueness_of :ancestry
14
+ validates_uniqueness_of :name, :scope => :parent_id
15
+
16
+ before_validation :set_ancestry
17
+
18
+ accepts_nested_attributes_for :settings, :allow_destroy => true
19
+
20
+ # Add a child node and optionally pass a block which receives the child node
21
+ def add(name, &block)
22
+ new_node = self.children.create!(:name => name.to_s)
23
+ yield(new_node) if block_given?
24
+ end
25
+
26
+ # Set the value for node settings
27
+ def set(hash)
28
+ hash.each do | key, value |
29
+ setting = settings.find_by_key(key) || settings.new(:key => key)
30
+ setting.value = value
31
+ setting.save!
32
+ end
33
+ end
34
+
35
+ # Get a value for a node setting
36
+ def get(key)
37
+ settings.find_by_key(key).try(:value)
38
+ end
39
+
40
+ # def to_hash
41
+ # result = {}
42
+ # result[:name] = self.name
43
+ # result[:children] = self.children.collect { |c| c.to_hash } unless self.children.empty?
44
+ # result
45
+ # end
46
+ #
47
+
48
+ def to_hash
49
+ if self.leaf?
50
+ self.name
51
+ else
52
+ result = {}
53
+ result[self.name] = children.collect { |child| child.to_hash }
54
+ result
55
+ end
56
+ end
57
+
58
+ # Like each but also includes children
59
+ def each_child(&block)
60
+ children.each do | child |
61
+ yield(child)
62
+ child.each_child &block unless child.leaf?
63
+ end
64
+ end
65
+
66
+ private
67
+
68
+ def set_ancestry
69
+ self.ancestry = [self.parent.try(:ancestry), self.name].join('/') if new_record? || parent_id_changed? || name_changed?
70
+ end
71
+ end
@@ -0,0 +1,48 @@
1
+ class NodeSetting < ActiveRecord::Base
2
+ belongs_to :node
3
+ acts_as_nested_set
4
+
5
+ validates_presence_of :key, :value_klass
6
+ validates_presence_of :value, :unless => proc { |ns| ns.read_attribute(:value) == 'false' } # Regular validation fails for false
7
+ validates_uniqueness_of :key, :scope => :node_id
8
+
9
+ TypecastableClasses = %w(TrueClass FalseClass Symbol String DateTime Float Fixnum Bignum Date Time)
10
+ PerPageOff = 10000
11
+
12
+ def value=(_value)
13
+ self.value_klass = _value.class.to_s
14
+ if TypecastableClasses.include?(self.value_klass)
15
+ write_attribute(:value, _value.to_s)
16
+ else
17
+ write_attribute(:value, Marshal.dump(_value))
18
+ end
19
+ end
20
+
21
+ def value
22
+ _value = read_attribute(:value)
23
+ case self.value_klass
24
+ when 'String'
25
+ _value
26
+ when 'Symbol'
27
+ _value.delete(':').to_sym
28
+ when 'DateTime'
29
+ Time.parse(_value)
30
+ when 'Time'
31
+ Time.parse(_value)
32
+ when 'Date'
33
+ Time.parse(_value)
34
+ when 'Float'
35
+ _value.to_f
36
+ when 'Fixnum'
37
+ _value.to_i
38
+ when 'Bignum'
39
+ _value.to_i
40
+ when 'TrueClass'
41
+ _value == 'true'
42
+ when 'FalseClass'
43
+ _value == 'true'
44
+ else
45
+ Marshal.load(_value)
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,36 @@
1
+ class Sitemap
2
+ def self.build(&block)
3
+ if block_given?
4
+ yield(root)
5
+ root.save!
6
+ end
7
+
8
+ root.children.each do | node |
9
+ document = node.documents.new
10
+ document.title = node.name.capitalize
11
+ document.save!
12
+ end
13
+ root
14
+ end
15
+
16
+ def self.destroy!
17
+ Node.root.try(:destroy)
18
+ end
19
+
20
+ def self.cleanup
21
+ # remove nodes which do not exist
22
+ end
23
+
24
+ def self.root
25
+ Node.root || Node.create(:name => 'root')
26
+ end
27
+
28
+ def self.to_hash
29
+ root.to_hash
30
+ end
31
+
32
+ def self.load_from_disk!
33
+ destroy!
34
+ load "#{Rails.root}/config/sitemap.rb"
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ <h2><%= @document.title %></h2>
2
+
3
+ <% if @document.image? %>
4
+ <div><%= image_tag @document.image.thumb('200x200').png.url, :alt => @document.image_alt %></div>
5
+ <% end %>
6
+
7
+ <%= @document.body.html_safe %>
8
+
9
+ <%= @document.published_at %>
10
+
11
+ <% unless @document.children.empty? %>
12
+ <% @document.node.children.each do | node | %>
13
+
14
+ <h3><%= node.name.pluralize.capitalize %></h3>
15
+
16
+ <% unless node.documents.empty? %>
17
+ <% node.documents.each do | document | %>
18
+ <div class='document'>
19
+ <h4><%= link_to document.title, document_path(document) %></h4>
20
+ <% if document.image? %>
21
+ <div><%= image_tag document.image.thumb('200x200').png.url, :alt => document.image_alt %></div>
22
+ <% end %>
23
+ <%= document.summary %>
24
+ </div>
25
+ <% end %>
26
+ <% else %>
27
+ <p>No <%= node.name.pluralize %> yet.</p>
28
+ <% end %>
29
+
30
+ <% end %>
31
+
32
+ <% end %>
@@ -0,0 +1,72 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title><%= @document ? @document.title : '' %></title>
5
+ <%= stylesheet_link_tag "application" %>
6
+ <%= javascript_include_tag "application" %>
7
+ <link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css">
8
+ <%= javascript_include_tag 'http://twitter.github.com/bootstrap/1.3.0/bootstrap-alerts.js' %>
9
+ <%= csrf_meta_tags %>
10
+ <style type="text/css">
11
+ body {
12
+ padding-top: 60px;
13
+ }
14
+ </style>
15
+ </head>
16
+ <body>
17
+ <div class="topbar">
18
+ <div class="fill">
19
+ <div class="container">
20
+ <a class="brand" href="/"><%= Document.find_by_permalink('/home').title %></a>
21
+
22
+ <ul class="nav">
23
+ <% Document.roots.public.each do | document | %>
24
+ <li class="<%= 'active' if document.permalink == request.path %>"><a href="<%= document_path(document) %>"><%= document.title %></a></li>
25
+ <% end %>
26
+ </ul>
27
+ </div>
28
+ </div>
29
+
30
+ </div>
31
+
32
+ <div class="container">
33
+
34
+ <div class='row'>
35
+ <div class='span16'>
36
+ <% flash.each do | key, value | %>
37
+ <div class="alert-message fade in <%= key %>" data-alert='alert'>
38
+ <a class="close" href="#">×</a>
39
+ <p><%= value %></p>
40
+ </div>
41
+ <% end %>
42
+ <%= yield %>
43
+ </div>
44
+ </div>
45
+
46
+ <div class="row">
47
+ <div class="span6">
48
+ <h2>Heading</h2>
49
+ <p>Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit.</p>
50
+ <p><a class="btn" href="#">View details &raquo;</a></p>
51
+ </div>
52
+
53
+ <div class="span5">
54
+ <h2>Heading</h2>
55
+ <p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
56
+ <p><a class="btn" href="#">View details &raquo;</a></p>
57
+ </div>
58
+
59
+ <div class="span5">
60
+ <h2>Heading</h2>
61
+ <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
62
+ <p><a class="btn" href="#">View details &raquo;</a></p>
63
+ </div>
64
+ </div>
65
+
66
+ <footer>
67
+ <p>&copy; Company 2011</p>
68
+ </footer>
69
+
70
+ </div> <!-- /container -->
71
+ </body>
72
+ </html>
@@ -0,0 +1,51 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Qwerty Administration</title>
5
+ <%= stylesheet_link_tag "qwerty_admin/base" %>
6
+ <link rel="stylesheet" href="http://twitter.github.com/bootstrap/1.3.0/bootstrap.min.css">
7
+ <%= javascript_include_tag "application" %>
8
+ <%= javascript_include_tag 'http://twitter.github.com/bootstrap/1.3.0/bootstrap-alerts.js' %>
9
+ <%= javascript_include_tag "ckeditor/ckeditor.js" %>
10
+ <%= csrf_meta_tags %>
11
+ <style type="text/css">
12
+ body {
13
+ padding-top: 60px;
14
+ </style>
15
+ </head>
16
+ <body>
17
+ <div class="topbar">
18
+ <div class="topbar-inner">
19
+ <div class="container-fluid">
20
+ <a class="brand" href="#">Qwerty</a>
21
+ <ul class="nav">
22
+ <li class="active"><a href="<%= qwerty_admin_root_path %>">Dashboard</a></li>
23
+ <li><a href="<%= qwerty_admin_documents_path %>">Content</a></li>
24
+ <li><a href="<%= qwerty_admin_nodes_path %>">Sitemap</a></li>
25
+ <li><a href="/">Homepage</a></li>
26
+ </ul>
27
+ <p class="pull-right"></p>
28
+ </div>
29
+ </div>
30
+ </div>
31
+
32
+ <div class="content">
33
+ <div class='row'>
34
+ <div class='span15 offset1'>
35
+ <% flash.each do | key, value | %>
36
+ <div class="alert-message fade in <%= key %>" data-alert='alert'>
37
+ <a class="close" href="#">×</a>
38
+ <p><%= value %></p>
39
+ </div>
40
+ <% end %>
41
+ <%= yield %>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ <footer>
46
+ <p>Powered by <%= link_to 'Qwerty', 'https://github.com/krisleech/qwerty'%> <%= Qwerty::VERSION %></p>
47
+ </footer>
48
+ </div>
49
+ </div>
50
+ </body>
51
+ </html>
@@ -0,0 +1,45 @@
1
+ <div class='document'>
2
+ <div class="row">
3
+
4
+ <div class="span6">
5
+ <%= link_to document.title, [:qwerty_admin, document] %>
6
+ <% unless document.published? %>
7
+ <span class="label">Draft</span>
8
+ <% end %>
9
+
10
+ <% if document.image %>
11
+ <div class='image'><%= image_tag document.image.thumb('50x50').png.url %></div>
12
+ <% end %>
13
+
14
+ <%= to_html truncate(document.summary, :length => 100) %>
15
+
16
+ </div>
17
+
18
+ <div class="span4 offset2">
19
+ <%= link_to image_tag('qwerty/admin/icons/up.png'), up_qwerty_admin_document_path(document), :class => 'btn small' unless document.last? %>
20
+ <%= link_to image_tag('qwerty/admin/icons/down.png'), down_qwerty_admin_document_path(document), :class => 'btn small' unless document.first? %>
21
+ <%= link_to 'Edit', edit_qwerty_admin_document_path(document), :class => 'btn small' %>
22
+ <%= link_to 'Live', document_path(document), :target => '_blank', :class => 'btn small' %>
23
+ </div>
24
+ </div>
25
+
26
+ <div>
27
+
28
+ <% document.node.children.each do | node | %>
29
+ <!--
30
+ <p><strong><%= node.name.pluralize.capitalize %></strong></p>
31
+
32
+ <% unless document.leaf? %>
33
+ <div class="documents">
34
+ <%= render :partial => document.children.by_node(node) %>
35
+ </div>
36
+ <% else %>
37
+ <p>No <%= node.name.pluralize.capitalize %> yet</p>
38
+ <% end %>
39
+ -->
40
+
41
+ <p><%= link_to "Add #{node.name.capitalize}", new_qwerty_admin_document_path(:parent_id => document.id, :node_id => node.id), :class => 'btn primary' %></p>
42
+ <% end %>
43
+
44
+ </div>
45
+ </div>