noodall-ui 0.0.2

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 (542) hide show
  1. data/.document +5 -0
  2. data/.gitignore +29 -0
  3. data/Gemfile +29 -0
  4. data/Gemfile.lock +205 -0
  5. data/LICENSE +20 -0
  6. data/README.rdoc +17 -0
  7. data/Rakefile +17 -0
  8. data/app/controllers/noodall/admin/assets_controller.rb +241 -0
  9. data/app/controllers/noodall/admin/base_controller.rb +8 -0
  10. data/app/controllers/noodall/admin/components_controller.rb +22 -0
  11. data/app/controllers/noodall/admin/groups_controller.rb +11 -0
  12. data/app/controllers/noodall/admin/nodes_controller.rb +159 -0
  13. data/app/controllers/noodall/nodes_controller.rb +41 -0
  14. data/app/helpers/noodall/admin/assets_helper.rb +15 -0
  15. data/app/helpers/noodall/admin/base_helper.rb +14 -0
  16. data/app/helpers/noodall/admin/nodes_helper.rb +37 -0
  17. data/app/helpers/noodall/components_helper.rb +38 -0
  18. data/app/helpers/noodall/layout_helper.rb +25 -0
  19. data/app/helpers/noodall/nodes_helper.rb +72 -0
  20. data/app/models/asset.rb +103 -0
  21. data/app/views/layouts/noodall_admin.html.erb +66 -0
  22. data/app/views/noodall/admin/assets/_browser.html.erb +28 -0
  23. data/app/views/noodall/admin/assets/_form.html.erb +54 -0
  24. data/app/views/noodall/admin/assets/_menu.html.erb +8 -0
  25. data/app/views/noodall/admin/assets/_show.html.erb +48 -0
  26. data/app/views/noodall/admin/assets/_tags.html.erb +13 -0
  27. data/app/views/noodall/admin/assets/add.html.erb +10 -0
  28. data/app/views/noodall/admin/assets/form.html.erb +12 -0
  29. data/app/views/noodall/admin/assets/form.js.erb +2 -0
  30. data/app/views/noodall/admin/assets/index.html.erb +65 -0
  31. data/app/views/noodall/admin/assets/index.js.erb +1 -0
  32. data/app/views/noodall/admin/assets/show.html.erb +3 -0
  33. data/app/views/noodall/admin/assets/show.js.erb +1 -0
  34. data/app/views/noodall/admin/assets/tags.html.erb +3 -0
  35. data/app/views/noodall/admin/assets/tags.js.erb +1 -0
  36. data/app/views/noodall/admin/components/_component.erb +0 -0
  37. data/app/views/noodall/admin/nodes/_body.html.erb +5 -0
  38. data/app/views/noodall/admin/nodes/_branch.html.erb +10 -0
  39. data/app/views/noodall/admin/nodes/_home.html.erb +27 -0
  40. data/app/views/noodall/admin/nodes/_slot_form.html.erb +16 -0
  41. data/app/views/noodall/admin/nodes/change_template.html.erb +38 -0
  42. data/app/views/noodall/admin/nodes/index.html.erb +69 -0
  43. data/app/views/noodall/admin/nodes/new.html.erb +30 -0
  44. data/app/views/noodall/admin/nodes/show.html.erb +144 -0
  45. data/app/views/noodall/admin/nodes/tree.html.erb +3 -0
  46. data/app/views/noodall/admin/nodes/tree.js.erb +2 -0
  47. data/app/views/noodall/components/_component.erb +0 -0
  48. data/app/views/noodall/nodes/search.html.erb +14 -0
  49. data/app/views/noodall/nodes/sitemap.html.erb +3 -0
  50. data/app/views/noodall/nodes/sitemap.xml.rxml +22 -0
  51. data/config/application.rb +29 -0
  52. data/config/boot.rb +13 -0
  53. data/config/cucumber.yml +8 -0
  54. data/config/database.yml +14 -0
  55. data/config/environment.rb +5 -0
  56. data/config/environments/development.rb +30 -0
  57. data/config/environments/production.rb +50 -0
  58. data/config/environments/test.rb +35 -0
  59. data/config/locales/en.yml +5 -0
  60. data/config.ru +4 -0
  61. data/demo/controllers/application_controller.rb +22 -0
  62. data/demo/initializers/dragonfly.rb +1 -0
  63. data/demo/initializers/mongo_mapper.rb +13 -0
  64. data/demo/initializers/noodall.rb +2 -0
  65. data/demo/initializers/secret_token.rb +7 -0
  66. data/demo/initializers/session_store.rb +8 -0
  67. data/demo/models/gallery.rb +17 -0
  68. data/demo/models/page_a.rb +9 -0
  69. data/demo/models/page_b.rb +4 -0
  70. data/demo/models/page_c.rb +7 -0
  71. data/demo/models/promo.rb +22 -0
  72. data/demo/models/user.rb +12 -0
  73. data/demo/routes.rb +3 -0
  74. data/demo/seeds.rb +8 -0
  75. data/demo/views/admin/components/_gallery.html.erb +49 -0
  76. data/demo/views/admin/components/_promo.html.erb +34 -0
  77. data/demo/views/admin/nodes/_page_a.html.erb +47 -0
  78. data/demo/views/admin/nodes/_page_b.html.erb +35 -0
  79. data/demo/views/admin/nodes/_page_c.html.erb +35 -0
  80. data/demo/views/components/_gallery.html.erb +23 -0
  81. data/demo/views/components/_promo.html.erb +5 -0
  82. data/demo/views/layouts/application.html.erb +121 -0
  83. data/demo/views/nodes/page_a.html.erb +14 -0
  84. data/demo/views/nodes/page_b.html.erb +9 -0
  85. data/demo/views/nodes/page_c.html.erb +12 -0
  86. data/features/change_templates.feature +25 -0
  87. data/features/content_templates.feature +18 -0
  88. data/features/gallery_component.feature +22 -0
  89. data/features/manage_assets.feature +28 -0
  90. data/features/manage_content_tree.feature +42 -0
  91. data/features/preview.feature +8 -0
  92. data/features/promo_component.feature +18 -0
  93. data/features/publish_content.feature +28 -0
  94. data/features/search.feature +12 -0
  95. data/features/sitemap.feature +9 -0
  96. data/features/step_definitions/asset_steps.rb +66 -0
  97. data/features/step_definitions/cms_node_steps.rb +126 -0
  98. data/features/step_definitions/component_steps.rb +137 -0
  99. data/features/step_definitions/content_steps.rb +187 -0
  100. data/features/step_definitions/date_select_steps.rb +39 -0
  101. data/features/step_definitions/groups_access_steps.rb +92 -0
  102. data/features/step_definitions/node_steps.rb +25 -0
  103. data/features/step_definitions/preview_steps.rb +7 -0
  104. data/features/step_definitions/pubish_content_steps.rb +45 -0
  105. data/features/step_definitions/search_steps.rb +21 -0
  106. data/features/step_definitions/sign_in_steps.rb +3 -0
  107. data/features/step_definitions/web_steps.rb +219 -0
  108. data/features/support/env.rb +52 -0
  109. data/features/support/logo.png +0 -0
  110. data/features/support/paths.rb +56 -0
  111. data/generators/component/USAGE +8 -0
  112. data/generators/component/component_generator.rb +35 -0
  113. data/generators/component/lib/insert_commands.rb +61 -0
  114. data/generators/component/templates/admin_template.html.erb +50 -0
  115. data/generators/component/templates/factory.rb +5 -0
  116. data/generators/component/templates/model.rb +8 -0
  117. data/generators/component/templates/template.html.erb +41 -0
  118. data/generators/node/USAGE +8 -0
  119. data/generators/node/lib/insert_commands.rb +47 -0
  120. data/generators/node/node_generator.rb +35 -0
  121. data/generators/node/templates/admin_template.html.erb +49 -0
  122. data/generators/node/templates/factory.rb +5 -0
  123. data/generators/node/templates/model.rb +11 -0
  124. data/generators/node/templates/template.html.erb +41 -0
  125. data/generators/node_features/USAGE +8 -0
  126. data/generators/node_features/node_features_generator.rb +16 -0
  127. data/lib/generators/noodall/node/USAGE +8 -0
  128. data/lib/generators/noodall/node/node_generator.rb +21 -0
  129. data/lib/generators/noodall/node/templates/admin_template.html.erb +52 -0
  130. data/lib/generators/noodall/node/templates/factory.rb +8 -0
  131. data/lib/generators/noodall/node/templates/model.rb +13 -0
  132. data/lib/generators/noodall/node/templates/template.html.erb +12 -0
  133. data/lib/noodall/canable.rb +1 -0
  134. data/lib/noodall/dragonfly.rb +23 -0
  135. data/lib/noodall/engine.rb +13 -0
  136. data/lib/noodall/permalinks.rb +12 -0
  137. data/lib/noodall/routes.rb +45 -0
  138. data/lib/noodall/ui/version.rb +5 -0
  139. data/lib/noodall/ui.rb +17 -0
  140. data/lib/noodall/video_thumbnail_encoder.rb +31 -0
  141. data/lib/noodall-ui.rb +6 -0
  142. data/lib/tasks/cucumber.rake +53 -0
  143. data/log/.gitignore +0 -0
  144. data/noodall-ui.gemspec +28 -0
  145. data/public/favicon.ico +0 -0
  146. data/public/images/admin/add-small.png +0 -0
  147. data/public/images/admin/add.png +0 -0
  148. data/public/images/admin/add_file.gif +0 -0
  149. data/public/images/admin/advanced.gif +0 -0
  150. data/public/images/admin/back.png +0 -0
  151. data/public/images/admin/cancel-small.gif +0 -0
  152. data/public/images/admin/cancel.gif +0 -0
  153. data/public/images/admin/change-bg.gif +0 -0
  154. data/public/images/admin/change.gif +0 -0
  155. data/public/images/admin/check.png +0 -0
  156. data/public/images/admin/clear.gif +0 -0
  157. data/public/images/admin/close.png +0 -0
  158. data/public/images/admin/create.gif +0 -0
  159. data/public/images/admin/delete.gif +0 -0
  160. data/public/images/admin/delete.png +0 -0
  161. data/public/images/admin/doc-icon.png +0 -0
  162. data/public/images/admin/document.png +0 -0
  163. data/public/images/admin/down.png +0 -0
  164. data/public/images/admin/download.png +0 -0
  165. data/public/images/admin/draft.gif +0 -0
  166. data/public/images/admin/draft.png +0 -0
  167. data/public/images/admin/edit.gif +0 -0
  168. data/public/images/admin/edit.png +0 -0
  169. data/public/images/admin/image.png +0 -0
  170. data/public/images/admin/image_small.png +0 -0
  171. data/public/images/admin/info-white.png +0 -0
  172. data/public/images/admin/info.png +0 -0
  173. data/public/images/admin/media.gif +0 -0
  174. data/public/images/admin/nav-2.gif +0 -0
  175. data/public/images/admin/nav.gif +0 -0
  176. data/public/images/admin/next.png +0 -0
  177. data/public/images/admin/no-type-icon.png +0 -0
  178. data/public/images/admin/pagination.gif +0 -0
  179. data/public/images/admin/pdf-icon.png +0 -0
  180. data/public/images/admin/prev.png +0 -0
  181. data/public/images/admin/preview.gif +0 -0
  182. data/public/images/admin/publish.gif +0 -0
  183. data/public/images/admin/remove.gif +0 -0
  184. data/public/images/admin/reset.gif +0 -0
  185. data/public/images/admin/select_image.gif +0 -0
  186. data/public/images/admin/select_images.gif +0 -0
  187. data/public/images/admin/set.gif +0 -0
  188. data/public/images/admin/sort.png +0 -0
  189. data/public/images/admin/tag.png +0 -0
  190. data/public/images/admin/templates/article-page.gif +0 -0
  191. data/public/images/admin/templates/articles-list.gif +0 -0
  192. data/public/images/admin/templates/course-page.gif +0 -0
  193. data/public/images/admin/templates/event-page.gif +0 -0
  194. data/public/images/admin/templates/events-list.gif +0 -0
  195. data/public/images/admin/templates/home.gif +0 -0
  196. data/public/images/admin/templates/landing-page.gif +0 -0
  197. data/public/images/admin/templates/page-a.gif +0 -0
  198. data/public/images/admin/templates/page-b.gif +0 -0
  199. data/public/images/admin/templates/school-landing-page.gif +0 -0
  200. data/public/images/admin/templates/study-landing-page.gif +0 -0
  201. data/public/images/admin/top-level.png +0 -0
  202. data/public/images/admin/top-level_small.png +0 -0
  203. data/public/images/admin/txt-icon.png +0 -0
  204. data/public/images/admin/uncheck.png +0 -0
  205. data/public/images/admin/up.png +0 -0
  206. data/public/images/admin/update.gif +0 -0
  207. data/public/images/admin/upload.png +0 -0
  208. data/public/images/admin/video.png +0 -0
  209. data/public/images/admin/view.png +0 -0
  210. data/public/images/admin/xls-icon.png +0 -0
  211. data/public/images/fancybox/blank.gif +0 -0
  212. data/public/images/fancybox/fancy_close.png +0 -0
  213. data/public/images/fancybox/fancy_loading.png +0 -0
  214. data/public/images/fancybox/fancy_nav_left.png +0 -0
  215. data/public/images/fancybox/fancy_nav_right.png +0 -0
  216. data/public/images/fancybox/fancy_shadow_e.png +0 -0
  217. data/public/images/fancybox/fancy_shadow_n.png +0 -0
  218. data/public/images/fancybox/fancy_shadow_ne.png +0 -0
  219. data/public/images/fancybox/fancy_shadow_nw.png +0 -0
  220. data/public/images/fancybox/fancy_shadow_s.png +0 -0
  221. data/public/images/fancybox/fancy_shadow_se.png +0 -0
  222. data/public/images/fancybox/fancy_shadow_sw.png +0 -0
  223. data/public/images/fancybox/fancy_shadow_w.png +0 -0
  224. data/public/images/fancybox/fancy_title_left.png +0 -0
  225. data/public/images/fancybox/fancy_title_main.png +0 -0
  226. data/public/images/fancybox/fancy_title_over.png +0 -0
  227. data/public/images/fancybox/fancy_title_right.png +0 -0
  228. data/public/images/fancybox/fancybox-x.png +0 -0
  229. data/public/images/fancybox/fancybox-y.png +0 -0
  230. data/public/images/fancybox/fancybox.png +0 -0
  231. data/public/images/plupload/backgrounds.gif +0 -0
  232. data/public/images/plupload/buttons-disabled.png +0 -0
  233. data/public/images/plupload/buttons.png +0 -0
  234. data/public/images/plupload/delete.gif +0 -0
  235. data/public/images/plupload/done.gif +0 -0
  236. data/public/images/plupload/error.gif +0 -0
  237. data/public/images/plupload/throbber.gif +0 -0
  238. data/public/images/plupload/transp50.png +0 -0
  239. data/public/javascripts/admin/application.js +586 -0
  240. data/public/javascripts/admin/asset_edit.js +30 -0
  241. data/public/javascripts/admin/assets.js +98 -0
  242. data/public/javascripts/admin/gotham.font.js +20 -0
  243. data/public/javascripts/admin/jquery.jqtransform.js +366 -0
  244. data/public/javascripts/admin/nodes.js +30 -0
  245. data/public/javascripts/admin/tiny_mce_config.js +118 -0
  246. data/public/javascripts/ajaxify.js +20 -0
  247. data/public/javascripts/application.js +37 -0
  248. data/public/javascripts/carousel.lite.js +1 -0
  249. data/public/javascripts/cufon-yui.js +8 -0
  250. data/public/javascripts/fancybox.js +1078 -0
  251. data/public/javascripts/plupload/gears_init.js +86 -0
  252. data/public/javascripts/plupload/jquery.plupload.queue.min.js +1 -0
  253. data/public/javascripts/plupload/plupload.flash.swf +0 -0
  254. data/public/javascripts/plupload/plupload.full.min.js +1 -0
  255. data/public/javascripts/plupload/plupload.silverlight.xap +0 -0
  256. data/public/javascripts/rails.js +132 -0
  257. data/public/javascripts/tiny_mce/jquery.tinymce.js +1 -0
  258. data/public/javascripts/tiny_mce/langs/en.js +169 -0
  259. data/public/javascripts/tiny_mce/license.txt +504 -0
  260. data/public/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
  261. data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
  262. data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
  263. data/public/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
  264. data/public/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
  265. data/public/javascripts/tiny_mce/plugins/advhr/rule.htm +57 -0
  266. data/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
  267. data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
  268. data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
  269. data/public/javascripts/tiny_mce/plugins/advimage/image.htm +232 -0
  270. data/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
  271. data/public/javascripts/tiny_mce/plugins/advimage/js/image.js +443 -0
  272. data/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
  273. data/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
  274. data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
  275. data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
  276. data/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js +528 -0
  277. data/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
  278. data/public/javascripts/tiny_mce/plugins/advlink/link.htm +333 -0
  279. data/public/javascripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
  280. data/public/javascripts/tiny_mce/plugins/advlist/editor_plugin_src.js +154 -0
  281. data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
  282. data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +117 -0
  283. data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
  284. data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +422 -0
  285. data/public/javascripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
  286. data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
  287. data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
  288. data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
  289. data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +127 -0
  290. data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
  291. data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
  292. data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
  293. data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
  294. data/public/javascripts/tiny_mce/plugins/emotions/emotions.htm +40 -0
  295. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
  296. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
  297. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
  298. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  299. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
  300. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
  301. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
  302. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  303. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
  304. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  305. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  306. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  307. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
  308. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
  309. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  310. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
  311. data/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
  312. data/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
  313. data/public/javascripts/tiny_mce/plugins/example/dialog.htm +22 -0
  314. data/public/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
  315. data/public/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
  316. data/public/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
  317. data/public/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
  318. data/public/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
  319. data/public/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
  320. data/public/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
  321. data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
  322. data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +149 -0
  323. data/public/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +571 -0
  324. data/public/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +471 -0
  325. data/public/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
  326. data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
  327. data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +148 -0
  328. data/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +109 -0
  329. data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
  330. data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
  331. data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
  332. data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +635 -0
  333. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  334. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  335. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  336. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  337. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  338. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  339. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  340. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
  341. data/public/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
  342. data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
  343. data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
  344. data/public/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
  345. data/public/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +212 -0
  346. data/public/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
  347. data/public/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +136 -0
  348. data/public/javascripts/tiny_mce/plugins/media/css/content.css +6 -0
  349. data/public/javascripts/tiny_mce/plugins/media/css/media.css +16 -0
  350. data/public/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
  351. data/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +414 -0
  352. data/public/javascripts/tiny_mce/plugins/media/img/flash.gif +0 -0
  353. data/public/javascripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
  354. data/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
  355. data/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
  356. data/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
  357. data/public/javascripts/tiny_mce/plugins/media/img/trans.gif +0 -0
  358. data/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
  359. data/public/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
  360. data/public/javascripts/tiny_mce/plugins/media/js/media.js +630 -0
  361. data/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
  362. data/public/javascripts/tiny_mce/plugins/media/media.htm +817 -0
  363. data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
  364. data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +53 -0
  365. data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
  366. data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +90 -0
  367. data/public/javascripts/tiny_mce/plugins/pagebreak/css/content.css +1 -0
  368. data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
  369. data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +77 -0
  370. data/public/javascripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
  371. data/public/javascripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
  372. data/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
  373. data/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +929 -0
  374. data/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
  375. data/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
  376. data/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
  377. data/public/javascripts/tiny_mce/plugins/paste/pastetext.htm +27 -0
  378. data/public/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -0
  379. data/public/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
  380. data/public/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
  381. data/public/javascripts/tiny_mce/plugins/preview/example.html +28 -0
  382. data/public/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
  383. data/public/javascripts/tiny_mce/plugins/preview/preview.html +17 -0
  384. data/public/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
  385. data/public/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
  386. data/public/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
  387. data/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
  388. data/public/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
  389. data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
  390. data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +57 -0
  391. data/public/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +130 -0
  392. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
  393. data/public/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +99 -0
  394. data/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
  395. data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
  396. data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +341 -0
  397. data/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
  398. data/public/javascripts/tiny_mce/plugins/style/css/props.css +13 -0
  399. data/public/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
  400. data/public/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +55 -0
  401. data/public/javascripts/tiny_mce/plugins/style/js/props.js +641 -0
  402. data/public/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
  403. data/public/javascripts/tiny_mce/plugins/style/props.htm +726 -0
  404. data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
  405. data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +112 -0
  406. data/public/javascripts/tiny_mce/plugins/table/cell.htm +178 -0
  407. data/public/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
  408. data/public/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
  409. data/public/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
  410. data/public/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
  411. data/public/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1118 -0
  412. data/public/javascripts/tiny_mce/plugins/table/js/cell.js +286 -0
  413. data/public/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -0
  414. data/public/javascripts/tiny_mce/plugins/table/js/row.js +237 -0
  415. data/public/javascripts/tiny_mce/plugins/table/js/table.js +449 -0
  416. data/public/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
  417. data/public/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -0
  418. data/public/javascripts/tiny_mce/plugins/table/row.htm +155 -0
  419. data/public/javascripts/tiny_mce/plugins/table/table.htm +187 -0
  420. data/public/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
  421. data/public/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
  422. data/public/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
  423. data/public/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
  424. data/public/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
  425. data/public/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
  426. data/public/javascripts/tiny_mce/plugins/template/template.htm +32 -0
  427. data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
  428. data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +76 -0
  429. data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
  430. data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
  431. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +141 -0
  432. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +141 -0
  433. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +148 -0
  434. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +141 -0
  435. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
  436. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
  437. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +161 -0
  438. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
  439. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +144 -0
  440. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +161 -0
  441. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
  442. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
  443. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +126 -0
  444. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
  445. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +63 -0
  446. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +231 -0
  447. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +62 -0
  448. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
  449. data/public/javascripts/tiny_mce/themes/advanced/about.htm +54 -0
  450. data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -0
  451. data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
  452. data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +73 -0
  453. data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
  454. data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1167 -0
  455. data/public/javascripts/tiny_mce/themes/advanced/image.htm +80 -0
  456. data/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  457. data/public/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  458. data/public/javascripts/tiny_mce/themes/advanced/js/about.js +72 -0
  459. data/public/javascripts/tiny_mce/themes/advanced/js/anchor.js +37 -0
  460. data/public/javascripts/tiny_mce/themes/advanced/js/charmap.js +335 -0
  461. data/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js +253 -0
  462. data/public/javascripts/tiny_mce/themes/advanced/js/image.js +245 -0
  463. data/public/javascripts/tiny_mce/themes/advanced/js/link.js +156 -0
  464. data/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js +62 -0
  465. data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +62 -0
  466. data/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
  467. data/public/javascripts/tiny_mce/themes/advanced/link.htm +58 -0
  468. data/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css +35 -0
  469. data/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
  470. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  471. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  472. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  473. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  474. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  475. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  476. data/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +213 -0
  477. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +35 -0
  478. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +116 -0
  479. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  480. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  481. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  482. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
  483. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
  484. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
  485. data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +26 -0
  486. data/public/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
  487. data/public/javascripts/tiny_mce/themes/simple/editor_template_src.js +85 -0
  488. data/public/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
  489. data/public/javascripts/tiny_mce/themes/simple/langs/en.js +11 -0
  490. data/public/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
  491. data/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
  492. data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
  493. data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
  494. data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
  495. data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
  496. data/public/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
  497. data/public/javascripts/tiny_mce/tiny_mce_src.js +13134 -0
  498. data/public/javascripts/tiny_mce/utils/editable_selects.js +70 -0
  499. data/public/javascripts/tiny_mce/utils/form_utils.js +200 -0
  500. data/public/javascripts/tiny_mce/utils/mctabs.js +77 -0
  501. data/public/javascripts/tiny_mce/utils/validate.js +220 -0
  502. data/public/stylesheets/admin/fancybox.css +341 -0
  503. data/public/stylesheets/admin/forms.css +520 -0
  504. data/public/stylesheets/admin/handheld.css +6 -0
  505. data/public/stylesheets/admin/ie.css +118 -0
  506. data/public/stylesheets/admin/ie6.css +23 -0
  507. data/public/stylesheets/admin/ie8.css +16 -0
  508. data/public/stylesheets/admin/layout.css +723 -0
  509. data/public/stylesheets/admin/print.css +27 -0
  510. data/public/stylesheets/admin/reset.css +81 -0
  511. data/public/stylesheets/admin/skin.css +698 -0
  512. data/public/stylesheets/admin/tinymce.css +2 -0
  513. data/public/stylesheets/admin/typography.css +207 -0
  514. data/public/stylesheets/ellipsis.xml +15 -0
  515. data/public/stylesheets/fancybox.css +313 -0
  516. data/public/stylesheets/forms.css +7 -0
  517. data/public/stylesheets/ie.css +12 -0
  518. data/public/stylesheets/ie8.css +8 -0
  519. data/public/stylesheets/layout.css +31 -0
  520. data/public/stylesheets/plupload.queue.css +181 -0
  521. data/public/stylesheets/reset.css +84 -0
  522. data/public/stylesheets/sass/forms.scss +7 -0
  523. data/public/stylesheets/sass/ie.scss +12 -0
  524. data/public/stylesheets/sass/ie8.scss +8 -0
  525. data/public/stylesheets/sass/layout.scss +45 -0
  526. data/public/stylesheets/sass/skin.scss +35 -0
  527. data/public/stylesheets/sass/typography.scss +162 -0
  528. data/public/stylesheets/skin.css +22 -0
  529. data/public/stylesheets/typography.css +162 -0
  530. data/script/cucumber +10 -0
  531. data/script/rails +6 -0
  532. data/spec/factories/asset.rb +16 -0
  533. data/spec/factories/component.rb +9 -0
  534. data/spec/factories/node.rb +15 -0
  535. data/spec/factories/user.rb +5 -0
  536. data/spec/files/beef.png +0 -0
  537. data/spec/files/get_video.flv +0 -0
  538. data/spec/files/test.pdf +0 -0
  539. data/spec/noodall-ui_spec.rb +9 -0
  540. data/spec/spec_helper.rb +4 -0
  541. data/tmp/.gitignore +0 -0
  542. metadata +685 -0
@@ -0,0 +1,121 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4
+
5
+ <!--
6
+ HTML5 - When your ready to do so
7
+ <!doctype html>
8
+ <html lang="en">
9
+ -->
10
+
11
+ <head>
12
+
13
+ <title><%#= Settings.site_name %> - <%= page_title %></title>
14
+
15
+ <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
16
+ Remove this if you use the .htaccess -->
17
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
18
+
19
+ <!-- Mobile Viewport Fix
20
+ j.mp/mobileviewport & davidbcalhoun.com/2010/viewport-metatag
21
+ device-width : Occupy full width of the screen in its current orientation
22
+ initial-scale = 1.0 retains dimensions instead of zooming out if page height > device height
23
+ maximum-scale = 1.0 retains dimensions instead of zooming in if page width < device width
24
+ -->
25
+ <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
26
+
27
+ <meta name="description" content="<%=h page_description %>" />
28
+ <meta name="keywords" content="<%=h page_keywords %>" />
29
+
30
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
31
+ <meta http-equiv="content-language" content="en" />
32
+
33
+ <meta name="author" content="<%#= Settings.site_name %>" />
34
+ <meta name="copyright" content="<%= Time.now.year %>, <%#= Settings.site_name %>" />
35
+
36
+ <meta name="Geo.Country" content="GB" />
37
+ <meta name="Geo.Region" content="GB-BST" />
38
+
39
+ <!-- so:Style Sheets -->
40
+ <%= stylesheet_link_tag 'reset', 'layout', 'skin', 'typography', 'forms', :media => 'screen,tv,projection' %>
41
+ <!--[if lte IE 8]><link href="/stylesheets/ie8.css" media="screen" rel="Stylesheet" type="text/css" /><![endif]-->
42
+ <!--[if lte IE 7]><link href="/stylesheets/ie.css" media="screen" rel="Stylesheet" type="text/css" /><![endif]-->
43
+ <!-- eo:Style Sheets -->
44
+
45
+ <!-- Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references -->
46
+ <link rel="shortcut icon" href="/favicon.ico">
47
+ <link rel="apple-touch-icon" href="/apple-touch-icon.png">
48
+
49
+ <!-- so:JavaScripts -->
50
+ <script src="http://www.google.com/jsapi" type="text/javascript"></script>
51
+ <script type="text/javascript">
52
+ google.load("jquery", "1.4");
53
+ google.load("swfobject", "2.2");
54
+ </script>
55
+
56
+ <%= javascript_include_tag 'rails', 'cufon-yui', 'fancybox', 'carousel.lite', 'application' %>
57
+ <%= csrf_meta_tag %>
58
+
59
+ <!-- so:JavaScripts -->
60
+
61
+ <%= yield :head %>
62
+
63
+ <!--
64
+ Asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
65
+ change the UA-XXXXX-X to be your site's ID
66
+ Now at the top cos google said so!
67
+ -->
68
+ <script>
69
+ var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
70
+ (function(d, t) {
71
+ var g = d.createElement(t),
72
+ s = d.getElementsByTagName(t)[0];
73
+ g.async = true;
74
+ g.src = '//www.google-analytics.com/ga.js';
75
+ s.parentNode.insertBefore(g, s);
76
+ })(document, 'script');
77
+ </script>
78
+
79
+ </head>
80
+
81
+ </head>
82
+ <body id="<%= page_id %>" class="<%= page_class %>">
83
+
84
+
85
+ <div id="wrapper">
86
+
87
+ <div id="header">
88
+ <h1><a href="/" id="logo">Site Name</a></h1>
89
+ </div>
90
+
91
+ <!-- so:main-navigation -->
92
+ <ul class="nav" id="main-nav">
93
+ <li></li>
94
+ </ul>
95
+ <!-- so:main-navigation -->
96
+
97
+ <div id="content">
98
+ <%= yield %>
99
+ </div>
100
+
101
+ <%= form_tag(noodall_search_path, :method => :get, :class => 'search') do %>
102
+ <%= text_field_tag :q, params[:q], :value => 'Enter keyword(s) here' %>
103
+ <%= submit_tag 'Search' %>
104
+ <% end %>
105
+
106
+ <div id="footer">
107
+ <!-- so:main-navigation -->
108
+ <ul class="nav" id="footer-nav">
109
+ <li></li>
110
+ </ul>
111
+ <!-- eo:main-navigation -->
112
+
113
+ <%= yield :footer %>
114
+ </div>
115
+
116
+ </div>
117
+ <!--[if IE]><script type="text/javascript"> Cufon.now(); </script><![endif]-->
118
+ <!-- Last Updated: <%#= GlobalUpdateTime::Stamp.read %> -->
119
+
120
+ </body>
121
+ </html>
@@ -0,0 +1,14 @@
1
+ <h1><%=h @node.title %></h1>
2
+
3
+ <%= component(@node, 'main_slot_0') %>
4
+
5
+ <div id="body"><%= @node.body.html_safe %></div>
6
+
7
+ <%= component(@node, 'small_slot_0') %>
8
+ <%= component(@node, 'small_slot_1') %>
9
+ <%= component(@node, 'small_slot_2') %>
10
+ <%= component(@node, 'small_slot_3') %>
11
+
12
+ <%= component(@node, 'wide_slot_0') %>
13
+ <%= component(@node, 'wide_slot_1') %>
14
+ <%= component(@node, 'wide_slot_2') %>
@@ -0,0 +1,9 @@
1
+ <h1><%=h @node.title %></h1>
2
+
3
+ <%= component(@node, 'main_slot_0') %>
4
+
5
+ <div id="body"><%= @node.body.html_safe %></div>
6
+
7
+ <%= component(@node, 'wide_slot_0') %>
8
+ <%= component(@node, 'wide_slot_1') %>
9
+ <%= component(@node, 'wide_slot_2') %>
@@ -0,0 +1,12 @@
1
+ <h1><%=h @node.title %></h1>
2
+
3
+ <%= component(@node, 'main_slot_0') %>
4
+
5
+ <div id="body"><%= @node.body.html_safe %></div>
6
+
7
+ <%= component(@node, 'wide_slot_0') %>
8
+ <%= component(@node, 'wide_slot_1') %>
9
+ <%= component(@node, 'wide_slot_2') %>
10
+
11
+
12
+
@@ -0,0 +1,25 @@
1
+ @cms
2
+ Feature: Change templates
3
+ In order to change the style of a page without the need to delete it a website editor should be able to change the template of a node
4
+
5
+ Scenario: Change template
6
+ Given a page exists using the "Page A" template
7
+ And I am editing the content
8
+ When I follow "Change Template"
9
+ And I choose "Page C"
10
+ And I press "Change"
11
+ And I visit the content page
12
+ Then the page should be in the "Page C" template
13
+
14
+ Scenario: Prevent Template Change if sub content not allowed in new template
15
+ Given a page exists using the "Page A" template
16
+ And that page has "Page A" subpages
17
+ And that page has a "Page A" parent
18
+ And I am editing the content
19
+ When I follow "Change Template"
20
+ And I choose "Page C"
21
+ And I press "Change"
22
+ Then I should see "Template cannot be changed as sub content is not allowed in this template"
23
+ When I visit the content page
24
+ Then the page should be in the "Page A" template
25
+
@@ -0,0 +1,18 @@
1
+ Feature: Content Templates
2
+ In order to change how the content looks and acts on the website a website editor will be able to select from predetermined templates
3
+
4
+ Scenario: Create Root Content
5
+ Given I create a new root
6
+ Then I should be able select a template from the following:
7
+ | Template |
8
+ | Page A |
9
+ | Page C |
10
+
11
+ Scenario Outline: Create Child Content
12
+ Given I create a new child under an ancestor in "<Ancestor Template Name>" template
13
+ Then I should be able select a template from the "<Allowed Templates>"
14
+
15
+ Examples:
16
+ | Ancestor Template Name | Allowed Templates |
17
+ | Page A | Page A, Page B, Page C |
18
+ | Page C | Page C, Page B |
@@ -0,0 +1,22 @@
1
+ @wip
2
+ Feature: Gallery Component
3
+ To provide the ability to show many images on the website, website editors will be able
4
+ to create a gallery of images within a template
5
+
6
+ Background:
7
+ Given I am signed in as a website editor
8
+
9
+ @javascript
10
+ Scenario: Gallery Module
11
+ Given I am editing content
12
+ When I click a "Wide" component slot
13
+ And select the "Gallery" component
14
+ And fill in the following within the component:
15
+ | Title | Big Promotion |
16
+ | Description | A really big thing is happening! |
17
+ Then I add some images to from the asset library
18
+ And I press "Save" within the component
19
+ And I press "Publish"
20
+ And I visit the content page
21
+ Then I should see the gallery thumbnails
22
+
@@ -0,0 +1,28 @@
1
+ Feature: Manage assets
2
+ In order to allow easy access to documents whilst editing a website editor will be able to easily upload, browse and modify documents
3
+
4
+ Scenario: Upload an Asset
5
+ Given I am using the asset library
6
+ When I upload a file
7
+ And enter tags
8
+ Then it should appear in the asset library
9
+ When I follow "Show"
10
+ Then I should see "Viewing"
11
+ When I follow "Edit"
12
+ Then I should see "Editing Asset"
13
+
14
+ Scenario: Browse Assets
15
+ Given files have been uploaded to the asset library
16
+ When I am using the asset library
17
+ Then I should be able to browse assets by content type
18
+ And I should be able to browse assets by tags
19
+
20
+ @javascript
21
+ Scenario: Insert an asset
22
+ Given files have been uploaded to the asset library
23
+ When I am editing content
24
+ And I click the editor "Insert Asset" button
25
+ And follow "Images"
26
+ And I click "Add" on an Asset
27
+ Then the "Image" asset should appear in the content editor
28
+
@@ -0,0 +1,42 @@
1
+ Feature: Manage Content Tree
2
+ In order to provide up to date information in a structured manner on the website a website editor will be able to manage the content in a tree structure
3
+
4
+ Background:
5
+ Given the website has been populated with content based on the site map
6
+
7
+ Scenario: Browse Content Tree
8
+ Given I am on the content admin page
9
+ Then I should see a list of the roots
10
+ When I click on a root
11
+ Then I should see a list the of the root’s children
12
+ When I click on a child
13
+ Then I should see a list of the child’s children
14
+
15
+ Scenario: Create Root Content
16
+ Given I am on the content admin page
17
+ Then I should be able to create a new root
18
+ And I should see the root listed within the roots
19
+
20
+ Scenario: Create Sub Content
21
+ Given I am on the content admin page
22
+ When I click on a root
23
+ Then I should be able to create a new child
24
+ And I should see the child listed within the root’s children
25
+
26
+ Scenario: Delete Content
27
+ Given I am on the content admin page
28
+ Then I should be able to delete content
29
+ And the content and all of it’s sub content will be removed from the website
30
+
31
+ Scenario: Reorder Children
32
+ Given I am on the content admin page
33
+ When I click on a root
34
+ Then I should be able change the order of the root’s children
35
+
36
+ @javascript
37
+ Scenario: Move Child to another Parent
38
+ Given I am on the content admin page
39
+ When I click on a root
40
+ Then I should be able to move a child content to another parent
41
+ And I should see the child listed within the other parent’s children
42
+
@@ -0,0 +1,8 @@
1
+ @cms @wip
2
+ Feature: PREVIEW CONTENT
3
+ A preview function will allow a website editor to view how content will look before they save it
4
+
5
+ Scenario: Preview Content
6
+ Given I am editing content
7
+ And I click preview
8
+ Then I should see how the content will look in the website
@@ -0,0 +1,18 @@
1
+ Feature: Promo Component
2
+ In order to promotional information on a page a website editor will be able
3
+ to add text and image content wthin component slots
4
+
5
+ @javascript
6
+ Scenario: Add a promo component
7
+ Given I am signed in as a website editor
8
+ And I am editing content
9
+ When I click a "Small" component slot
10
+ And select the "Promo" component
11
+ And fill in the following within the component:
12
+ | Title | Big Promotion |
13
+ | Description | A really big thing is happening! |
14
+ | Link | http://wearebeef.co.uk |
15
+ And I press "Save" within the component
16
+ And I press "Publish"
17
+ And I visit the content page
18
+ Then I should see "Big Promotion"
@@ -0,0 +1,28 @@
1
+ Feature: Publish Content
2
+ In order to control when content is available on the website a website administrator will be able to define the time period for which content is published
3
+
4
+ Scenario: Publish content
5
+ Given content exists
6
+ When I publish the content
7
+ Then the content should be visible on the website
8
+ When I save content as draft
9
+ Then the content should not be visible on the website
10
+
11
+ Scenario: Publish content for set period
12
+ Given content exists
13
+ And I publish content between "20th July 2010" and "30th July 2010"
14
+ And today is "15th July 2010"
15
+ Then the content should not be visible on the website
16
+ When today is "25th July 2010"
17
+ Then the content should be visible on the website
18
+ When today is "5th August 2010"
19
+ Then the content should not be visible on the website
20
+
21
+ Scenario: Publish content for set period
22
+ Given today is "5th August 2010"
23
+ And published content exists with publish to date: "30th July 2010"
24
+ Then the content should not be visible on the website
25
+ When I am editing the content
26
+ And I clear the publish to date
27
+ Then the content should be visible on the website
28
+
@@ -0,0 +1,12 @@
1
+ Feature: Search
2
+ To allow website visitors to easily find content the website will have a keyword search facility that searches all content on the site
3
+
4
+ Background:
5
+ Given there is content that can be searched
6
+
7
+ Scenario: Search
8
+ Given I enter a search term in the search input
9
+ And press "Search"
10
+ Then I should see a paginated list of content that matches my search term ordered by relevance
11
+
12
+
@@ -0,0 +1,9 @@
1
+ @website
2
+ Feature: SITE MAP
3
+ In order to allow website visitors to see on overview of the entire site the website will
4
+ provide a site map showing all content on the website
5
+
6
+ Scenario: View Site Map
7
+ Given the website has been populated with content based on the site map
8
+ When I am on the site map page
9
+ Then I should see a tree style list that contains all content
@@ -0,0 +1,66 @@
1
+ Given /^I am using the asset library$/ do
2
+ visit noodall_admin_assets_path
3
+ end
4
+
5
+ When /^I upload a file$/ do
6
+ click_link "Upload"
7
+ fill_in "Title", :with => "A loverly asset"
8
+ attach_file("File", "#{Rails.root}/spec/files/beef.png")
9
+ end
10
+
11
+ When /^enter tags$/ do
12
+ fill_in "Tags", :with => "you, me, things, stuff"
13
+ fill_in "Description", :with => "Some nice info"
14
+ click_button "Create"
15
+ end
16
+
17
+ Then /^it should appear in the asset library$/ do
18
+ page.should_not have_content('Errors')
19
+ page.should have_content('A loverly asset')
20
+ end
21
+
22
+ Given /^files have been uploaded to the asset library$/ do
23
+ 20.times { Factory(:asset) }
24
+ 20.times { Factory(:document_asset) }
25
+ 20.times { Factory(:video_asset) }
26
+
27
+ 20.times { Factory(:asset, :title => "Tagged Asset", :tags => ['RAC','lorem','dolar']) }
28
+
29
+ end
30
+
31
+ Then /^I should be able to browse assets by content type$/ do
32
+ within(:css, "ul.choices") { click_link "Images" }
33
+ page.should_not have_content('Document asset')
34
+ page.should_not have_content('Video asset')
35
+ within(:css, "ul.choices") { click_link "Documents" }
36
+ page.should_not have_content('Image asset')
37
+ page.should_not have_content('Video asset')
38
+ within(:css, "ul.choices") { click_link "Videos" }
39
+ page.should_not have_content('Document asset')
40
+ page.should_not have_content('Image asset')
41
+
42
+ end
43
+
44
+ Then /^I should be able to browse assets by tags$/ do
45
+ within(:css, "ul.choices") { click_link "Images" }
46
+ within(:css, "div#tags") { click_link "RAC" }
47
+ page.should_not have_content('Image asset')
48
+ end
49
+
50
+ When /^I click the editor "([^"]*)" button$/ do |button_name|
51
+ within('.mceToolbar') do
52
+ click_link button_name
53
+ end
54
+ end
55
+
56
+ When /^I click "([^"]*)" on an Asset$/ do |button_name|
57
+ within('#browser-list ul li:first') do
58
+ click_link button_name
59
+ end
60
+ end
61
+
62
+ Then /^the "([^"]*)" asset should appear in the content editor$/ do |asset_type|
63
+ within_frame('node_body_ifr') do
64
+ page.should have_css("#tinymce img[src^='/media/']")
65
+ end
66
+ end
@@ -0,0 +1,126 @@
1
+ Given /^the website has been populated with content based on the site map$/ do
2
+ seed_file = File.join(Rails.root, "demo", "seeds.rb")
3
+ load(seed_file)
4
+ end
5
+
6
+ When /^I click on a root$/ do
7
+ @_page = Noodall::Node.roots.last
8
+ within("tbody tr:last") { click_link "Children" }
9
+ end
10
+
11
+ Then /^I should see a list the of the root’s children$/ do
12
+ @_page.children.each do |child|
13
+ page.should have_content(child.title)
14
+ end
15
+ end
16
+
17
+ When /^I click on a child$/ do
18
+ @_child = @_page.children.first
19
+ within(:css, "tbody tr:first") { click_link "Children" }
20
+ end
21
+
22
+ Then /^I should see a list of the child’s children$/ do
23
+ @_child.children.each do |gchild|
24
+ page.should have_content(gchild.title)
25
+ end
26
+ end
27
+
28
+ Then /^I should be able to create a new root$/ do
29
+ click_link 'New'
30
+
31
+ fill_in 'Title', :with => 'New Root'
32
+
33
+ click_button 'Create'
34
+
35
+ page.should have_content(' was successfully created.')
36
+ end
37
+
38
+ Then /^I should see the root listed within the roots$/ do
39
+ visit noodall_admin_nodes_path
40
+ page.should have_content('New Root')
41
+ end
42
+
43
+ Then /^I should be able to create a new child$/ do
44
+ click_link 'New'
45
+
46
+ fill_in 'Title', :with => 'New Child'
47
+
48
+ click_button 'Create'
49
+
50
+ page.should have_content(' was successfully created.')
51
+ end
52
+
53
+ Then /^I should see the child listed within the root’s children$/ do
54
+ visit noodall_admin_node_nodes_path(@_page)
55
+ page.should have_content('New Child')
56
+ end
57
+
58
+ Then /^I should be able to delete content$/ do
59
+ @_deleted_node = Noodall::Node.roots.last
60
+ @_deleted_node_children = @_deleted_node.children
61
+
62
+ within(:css, 'table tbody tr:last') { click_link "Delete" }
63
+ page.should have_content("deleted")
64
+ end
65
+
66
+ Then /^the content and all of it’s sub content will be removed from the website$/ do
67
+
68
+ lambda { visit node_path(@_deleted_node) }.should raise_error(MongoMapper::DocumentNotFound)
69
+
70
+ @_deleted_node_children.each do |child|
71
+ lambda { visit node_path(child) }.should raise_error(MongoMapper::DocumentNotFound)
72
+ end
73
+ end
74
+
75
+ Then /^I should be able to move a child content to another parent$/ do
76
+ @_child = @_page.children.first
77
+ @_new_parent = Noodall::Node.roots.first
78
+ within(:css, "table tbody tr#node-#{@_child.id}") { click_link "Edit" }
79
+ # Simulates what we are now doing with JS
80
+ click_link "Advanced"
81
+ within(:css, '#parent-title' ) { click_link "Edit" }
82
+ within(:css, 'ol.tree' ) { click_link @_new_parent.title }
83
+ click_button 'Draft'
84
+ end
85
+
86
+ Then /^I should see the child listed within the other parent’s children$/ do
87
+ visit noodall_admin_node_nodes_path(@_new_parent)
88
+ within('tbody') do
89
+ page.should have_content(@_child.title)
90
+ end
91
+ end
92
+
93
+ Then /^I should be able change the order of the root’s children$/ do
94
+ table = table(tableish("table tr", 'td, th'))
95
+ title = table.hashes[2]['Title'] # 2 as zero index
96
+ within(:css, 'table tbody tr:nth(3)') { click_link "up" }
97
+ table = table(tableish("table tr", 'td, th'))
98
+ table.hashes[1]['Title'].should == title
99
+ within(:css, 'table tbody tr:nth(2)' ) { click_link "down" }
100
+ within(:css, 'table tbody tr:nth(3)' ) { click_link "down" }
101
+ table = table(tableish("table tr", 'td, th'))
102
+ table.hashes[3]['Title'].should == title
103
+ end
104
+
105
+ When /^I create a new child under an ancestor in "([^"]+)" template$/ do |template_title|
106
+ template = template_title.downcase.gsub(' ','_')
107
+ #create the ancester
108
+ parent = Factory(template.to_sym)
109
+
110
+ visit noodall_admin_node_nodes_path(parent)
111
+ click_link 'New'
112
+ end
113
+
114
+ Then /^I should be able select a template from the "([^"]+)"$/ do |sub_template_string|
115
+ sub_templates = sub_template_string.split(', ')
116
+
117
+ sub_templates.each do |sub_template|
118
+ choose sub_template
119
+ end
120
+ end
121
+
122
+ Then /^I should see a list of the roots$/ do
123
+ Noodall::Node.roots.each do |root|
124
+ page.should have_content(root.title)
125
+ end
126
+ end