lolita 3.0.4 → 3.0.5

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 (330) hide show
  1. data/GUIDELINE +5 -0
  2. data/Gemfile +18 -13
  3. data/VERSION +1 -1
  4. data/app/controllers/lolita/rest_controller.rb +4 -1
  5. data/app/helpers/lolita_helper.rb +10 -1
  6. data/app/views/components/lolita/list/_new_resource.html.erb +1 -1
  7. data/app/views/components/lolita/list/_tool_cell.html.erb +3 -3
  8. data/app/views/components/lolita/shared/_flash.html.erb +13 -0
  9. data/app/views/components/lolita/shared/_right_sidebar.html.erb +14 -0
  10. data/app/views/components/lolita/tab/_default.html.erb +1 -0
  11. data/app/views/components/lolita/tabs/_display.html.erb +4 -19
  12. data/app/views/lolita/layouts/application.html.erb +1 -1
  13. data/app/views/lolita/layouts/application.html.erb_spec.rb +0 -0
  14. data/config/locales/en.yml +2 -0
  15. data/features/create_page.feature +20 -0
  16. data/features/step_definitions/lolita_steps.rb +7 -0
  17. data/features/step_definitions/web_steps.rb +219 -0
  18. data/features/support/env.rb +73 -0
  19. data/features/support/paths.rb +35 -0
  20. data/lib/lolita.rb +5 -3
  21. data/lib/lolita/adapter/abstract_adapter.rb +1 -0
  22. data/lib/lolita/adapter/active_record.rb +4 -0
  23. data/lib/lolita/adapter/mongoid.rb +4 -0
  24. data/lib/lolita/base_configuration.rb +50 -12
  25. data/lib/lolita/configuration/tab.rb +7 -6
  26. data/lib/lolita/configuration/tabs.rb +9 -0
  27. data/lib/lolita/mapping.rb +4 -1
  28. data/lib/lolita/modules.rb +3 -17
  29. data/lib/lolita/rails/all.rb +3 -0
  30. data/lib/lolita/rails/routes.rb +9 -5
  31. data/lib/lolita/test/matchers.rb +77 -0
  32. data/lolita.gemspec +86 -215
  33. data/public/images/lolita/plus.png +0 -0
  34. data/public/javascripts/lolita/tab.js +40 -37
  35. data/public/javascripts/tinymce/langs/en.js +221 -221
  36. data/public/javascripts/tinymce/license.txt +504 -504
  37. data/public/javascripts/tinymce/themes/advanced/about.htm +52 -52
  38. data/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -26
  39. data/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -51
  40. data/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -74
  41. data/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -1328
  42. data/public/javascripts/tinymce/themes/advanced/image.htm +80 -80
  43. data/public/javascripts/tinymce/themes/advanced/js/about.js +73 -73
  44. data/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -42
  45. data/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -354
  46. data/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -329
  47. data/public/javascripts/tinymce/themes/advanced/js/image.js +247 -247
  48. data/public/javascripts/tinymce/themes/advanced/js/link.js +153 -153
  49. data/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -56
  50. data/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -68
  51. data/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +53 -53
  52. data/public/javascripts/tinymce/themes/advanced/link.htm +57 -57
  53. data/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -47
  54. data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -66
  55. data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/dialog.css +117 -117
  56. data/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -988
  57. data/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -25
  58. data/public/stylesheets/lolita/style.css +30 -2
  59. data/spec/configuration/tab_spec.rb +42 -0
  60. data/spec/configuration/tabs_spec.rb +12 -0
  61. data/spec/lolita_spec.rb +1 -1
  62. data/spec/rails_app/app/mongoid/post.rb +3 -2
  63. data/spec/rails_app/config/application.rb +13 -13
  64. data/spec/rails_app/public/images/lolita/plus.png +0 -0
  65. data/spec/rails_app/public/javascripts/jquery-1.5.1.min.js +16 -0
  66. data/spec/rails_app/public/javascripts/lolita/main.js +6 -0
  67. data/spec/rails_app/public/javascripts/lolita/tab.js +41 -0
  68. data/spec/rails_app/public/javascripts/modernizr-1.7.min.js +2 -0
  69. data/spec/rails_app/public/javascripts/rails.js +137 -0
  70. data/spec/rails_app/public/javascripts/tinymce/jquery.tinymce.js +1 -0
  71. data/spec/rails_app/public/javascripts/tinymce/langs/en.js +222 -0
  72. data/spec/rails_app/public/javascripts/tinymce/license.txt +504 -0
  73. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/about.htm +52 -0
  74. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/anchor.htm +26 -0
  75. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/charmap.htm +51 -0
  76. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/color_picker.htm +74 -0
  77. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/editor_template.js +1 -0
  78. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/editor_template_src.js +1328 -0
  79. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/image.htm +80 -0
  80. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/colorpicker.jpg +0 -0
  81. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/flash.gif +0 -0
  82. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/icons.gif +0 -0
  83. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/iframe.gif +0 -0
  84. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/pagebreak.gif +0 -0
  85. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/quicktime.gif +0 -0
  86. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/realmedia.gif +0 -0
  87. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/shockwave.gif +0 -0
  88. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/trans.gif +0 -0
  89. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/video.gif +0 -0
  90. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/img/windowsmedia.gif +0 -0
  91. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/about.js +73 -0
  92. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/anchor.js +42 -0
  93. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/charmap.js +354 -0
  94. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/color_picker.js +329 -0
  95. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/image.js +247 -0
  96. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/link.js +153 -0
  97. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/js/source_editor.js +56 -0
  98. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en.js +68 -0
  99. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/langs/en_dlg.js +54 -0
  100. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/link.htm +57 -0
  101. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/shortcuts.htm +47 -0
  102. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/content.css +66 -0
  103. data/{public/javascripts/tinymce/themes/advanced/skins/default → spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit}/dialog.css +117 -117
  104. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/butt2.png +0 -0
  105. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/button-bg.png +0 -0
  106. data/{public/javascripts/tinymce/themes/advanced/skins/default → spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit}/img/buttons.png +0 -0
  107. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/down_arrow.gif +0 -0
  108. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/fade-butt.png +0 -0
  109. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/icons.png +0 -0
  110. data/{public/javascripts/tinymce/themes/advanced/skins/default → spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit}/img/items.gif +0 -0
  111. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/menu-arrow.png +0 -0
  112. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/menu-check.png +0 -0
  113. data/{public/javascripts/tinymce/themes/advanced/skins/default → spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit}/img/progress.gif +0 -0
  114. data/{public/javascripts/tinymce/themes/advanced/skins/default → spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit}/img/tabs.gif +0 -0
  115. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/img/toolbarbg.png +0 -0
  116. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/skins/cirkuit/ui.css +988 -0
  117. data/spec/rails_app/public/javascripts/tinymce/themes/advanced/source_editor.htm +25 -0
  118. data/spec/rails_app/public/javascripts/tinymce/tiny_mce.js +1 -0
  119. data/spec/rails_app/public/javascripts/tinymce/tiny_mce_popup.js +5 -0
  120. data/spec/rails_app/public/stylesheets/lolita/default.css +169 -0
  121. data/spec/rails_app/public/stylesheets/lolita/style.css +214 -0
  122. metadata +138 -227
  123. data/public/javascripts/tinymce/plugins/advhr/css/advhr.css +0 -5
  124. data/public/javascripts/tinymce/plugins/advhr/editor_plugin.js +0 -1
  125. data/public/javascripts/tinymce/plugins/advhr/editor_plugin_src.js +0 -57
  126. data/public/javascripts/tinymce/plugins/advhr/js/rule.js +0 -43
  127. data/public/javascripts/tinymce/plugins/advhr/langs/en_dlg.js +0 -7
  128. data/public/javascripts/tinymce/plugins/advhr/rule.htm +0 -58
  129. data/public/javascripts/tinymce/plugins/advimage/css/advimage.css +0 -13
  130. data/public/javascripts/tinymce/plugins/advimage/editor_plugin.js +0 -1
  131. data/public/javascripts/tinymce/plugins/advimage/editor_plugin_src.js +0 -50
  132. data/public/javascripts/tinymce/plugins/advimage/image.htm +0 -235
  133. data/public/javascripts/tinymce/plugins/advimage/img/sample.gif +0 -0
  134. data/public/javascripts/tinymce/plugins/advimage/js/image.js +0 -445
  135. data/public/javascripts/tinymce/plugins/advimage/langs/en_dlg.js +0 -45
  136. data/public/javascripts/tinymce/plugins/advlink/css/advlink.css +0 -8
  137. data/public/javascripts/tinymce/plugins/advlink/editor_plugin.js +0 -1
  138. data/public/javascripts/tinymce/plugins/advlink/editor_plugin_src.js +0 -61
  139. data/public/javascripts/tinymce/plugins/advlink/js/advlink.js +0 -525
  140. data/public/javascripts/tinymce/plugins/advlink/langs/en_dlg.js +0 -54
  141. data/public/javascripts/tinymce/plugins/advlink/link.htm +0 -338
  142. data/public/javascripts/tinymce/plugins/advlist/editor_plugin.js +0 -1
  143. data/public/javascripts/tinymce/plugins/advlist/editor_plugin_src.js +0 -154
  144. data/public/javascripts/tinymce/plugins/autoresize/editor_plugin.js +0 -1
  145. data/public/javascripts/tinymce/plugins/autoresize/editor_plugin_src.js +0 -119
  146. data/public/javascripts/tinymce/plugins/autosave/editor_plugin.js +0 -1
  147. data/public/javascripts/tinymce/plugins/autosave/editor_plugin_src.js +0 -431
  148. data/public/javascripts/tinymce/plugins/autosave/langs/en.js +0 -4
  149. data/public/javascripts/tinymce/plugins/bbcode/editor_plugin.js +0 -1
  150. data/public/javascripts/tinymce/plugins/bbcode/editor_plugin_src.js +0 -120
  151. data/public/javascripts/tinymce/plugins/contextmenu/editor_plugin.js +0 -1
  152. data/public/javascripts/tinymce/plugins/contextmenu/editor_plugin_src.js +0 -154
  153. data/public/javascripts/tinymce/plugins/directionality/editor_plugin.js +0 -1
  154. data/public/javascripts/tinymce/plugins/directionality/editor_plugin_src.js +0 -82
  155. data/public/javascripts/tinymce/plugins/emotions/editor_plugin.js +0 -1
  156. data/public/javascripts/tinymce/plugins/emotions/editor_plugin_src.js +0 -43
  157. data/public/javascripts/tinymce/plugins/emotions/emotions.htm +0 -41
  158. data/public/javascripts/tinymce/plugins/emotions/img/smiley-cool.gif +0 -0
  159. data/public/javascripts/tinymce/plugins/emotions/img/smiley-cry.gif +0 -0
  160. data/public/javascripts/tinymce/plugins/emotions/img/smiley-embarassed.gif +0 -0
  161. data/public/javascripts/tinymce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  162. data/public/javascripts/tinymce/plugins/emotions/img/smiley-frown.gif +0 -0
  163. data/public/javascripts/tinymce/plugins/emotions/img/smiley-innocent.gif +0 -0
  164. data/public/javascripts/tinymce/plugins/emotions/img/smiley-kiss.gif +0 -0
  165. data/public/javascripts/tinymce/plugins/emotions/img/smiley-laughing.gif +0 -0
  166. data/public/javascripts/tinymce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
  167. data/public/javascripts/tinymce/plugins/emotions/img/smiley-sealed.gif +0 -0
  168. data/public/javascripts/tinymce/plugins/emotions/img/smiley-smile.gif +0 -0
  169. data/public/javascripts/tinymce/plugins/emotions/img/smiley-surprised.gif +0 -0
  170. data/public/javascripts/tinymce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
  171. data/public/javascripts/tinymce/plugins/emotions/img/smiley-undecided.gif +0 -0
  172. data/public/javascripts/tinymce/plugins/emotions/img/smiley-wink.gif +0 -0
  173. data/public/javascripts/tinymce/plugins/emotions/img/smiley-yell.gif +0 -0
  174. data/public/javascripts/tinymce/plugins/emotions/js/emotions.js +0 -22
  175. data/public/javascripts/tinymce/plugins/emotions/langs/en_dlg.js +0 -20
  176. data/public/javascripts/tinymce/plugins/example/dialog.htm +0 -22
  177. data/public/javascripts/tinymce/plugins/example/editor_plugin.js +0 -1
  178. data/public/javascripts/tinymce/plugins/example/editor_plugin_src.js +0 -84
  179. data/public/javascripts/tinymce/plugins/example/img/example.gif +0 -0
  180. data/public/javascripts/tinymce/plugins/example/js/dialog.js +0 -19
  181. data/public/javascripts/tinymce/plugins/example/langs/en.js +0 -3
  182. data/public/javascripts/tinymce/plugins/example/langs/en_dlg.js +0 -3
  183. data/public/javascripts/tinymce/plugins/fullpage/css/fullpage.css +0 -182
  184. data/public/javascripts/tinymce/plugins/fullpage/editor_plugin.js +0 -1
  185. data/public/javascripts/tinymce/plugins/fullpage/editor_plugin_src.js +0 -166
  186. data/public/javascripts/tinymce/plugins/fullpage/fullpage.htm +0 -571
  187. data/public/javascripts/tinymce/plugins/fullpage/js/fullpage.js +0 -492
  188. data/public/javascripts/tinymce/plugins/fullpage/langs/en_dlg.js +0 -85
  189. data/public/javascripts/tinymce/plugins/fullscreen/editor_plugin.js +0 -1
  190. data/public/javascripts/tinymce/plugins/fullscreen/editor_plugin_src.js +0 -159
  191. data/public/javascripts/tinymce/plugins/fullscreen/fullscreen.htm +0 -109
  192. data/public/javascripts/tinymce/plugins/iespell/editor_plugin.js +0 -1
  193. data/public/javascripts/tinymce/plugins/iespell/editor_plugin_src.js +0 -54
  194. data/public/javascripts/tinymce/plugins/inlinepopups/editor_plugin.js +0 -1
  195. data/public/javascripts/tinymce/plugins/inlinepopups/editor_plugin_src.js +0 -696
  196. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  197. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  198. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  199. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  200. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  201. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  202. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  203. data/public/javascripts/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css +0 -90
  204. data/public/javascripts/tinymce/plugins/inlinepopups/template.htm +0 -387
  205. data/public/javascripts/tinymce/plugins/insertdatetime/editor_plugin.js +0 -1
  206. data/public/javascripts/tinymce/plugins/insertdatetime/editor_plugin_src.js +0 -83
  207. data/public/javascripts/tinymce/plugins/layer/editor_plugin.js +0 -1
  208. data/public/javascripts/tinymce/plugins/layer/editor_plugin_src.js +0 -214
  209. data/public/javascripts/tinymce/plugins/legacyoutput/editor_plugin.js +0 -1
  210. data/public/javascripts/tinymce/plugins/legacyoutput/editor_plugin_src.js +0 -139
  211. data/public/javascripts/tinymce/plugins/media/css/media.css +0 -17
  212. data/public/javascripts/tinymce/plugins/media/editor_plugin.js +0 -1
  213. data/public/javascripts/tinymce/plugins/media/editor_plugin_src.js +0 -770
  214. data/public/javascripts/tinymce/plugins/media/js/embed.js +0 -73
  215. data/public/javascripts/tinymce/plugins/media/js/media.js +0 -340
  216. data/public/javascripts/tinymce/plugins/media/langs/en_dlg.js +0 -109
  217. data/public/javascripts/tinymce/plugins/media/media.htm +0 -812
  218. data/public/javascripts/tinymce/plugins/media/moxieplayer.swf +0 -0
  219. data/public/javascripts/tinymce/plugins/nonbreaking/editor_plugin.js +0 -1
  220. data/public/javascripts/tinymce/plugins/nonbreaking/editor_plugin_src.js +0 -53
  221. data/public/javascripts/tinymce/plugins/noneditable/editor_plugin.js +0 -1
  222. data/public/javascripts/tinymce/plugins/noneditable/editor_plugin_src.js +0 -90
  223. data/public/javascripts/tinymce/plugins/pagebreak/editor_plugin.js +0 -1
  224. data/public/javascripts/tinymce/plugins/pagebreak/editor_plugin_src.js +0 -74
  225. data/public/javascripts/tinymce/plugins/paste/editor_plugin.js +0 -1
  226. data/public/javascripts/tinymce/plugins/paste/editor_plugin_src.js +0 -899
  227. data/public/javascripts/tinymce/plugins/paste/js/pastetext.js +0 -36
  228. data/public/javascripts/tinymce/plugins/paste/js/pasteword.js +0 -51
  229. data/public/javascripts/tinymce/plugins/paste/langs/en_dlg.js +0 -5
  230. data/public/javascripts/tinymce/plugins/paste/pastetext.htm +0 -27
  231. data/public/javascripts/tinymce/plugins/paste/pasteword.htm +0 -21
  232. data/public/javascripts/tinymce/plugins/preview/editor_plugin.js +0 -1
  233. data/public/javascripts/tinymce/plugins/preview/editor_plugin_src.js +0 -53
  234. data/public/javascripts/tinymce/plugins/preview/example.html +0 -28
  235. data/public/javascripts/tinymce/plugins/preview/jscripts/embed.js +0 -73
  236. data/public/javascripts/tinymce/plugins/preview/preview.html +0 -17
  237. data/public/javascripts/tinymce/plugins/print/editor_plugin.js +0 -1
  238. data/public/javascripts/tinymce/plugins/print/editor_plugin_src.js +0 -34
  239. data/public/javascripts/tinymce/plugins/save/editor_plugin.js +0 -1
  240. data/public/javascripts/tinymce/plugins/save/editor_plugin_src.js +0 -101
  241. data/public/javascripts/tinymce/plugins/searchreplace/css/searchreplace.css +0 -6
  242. data/public/javascripts/tinymce/plugins/searchreplace/editor_plugin.js +0 -1
  243. data/public/javascripts/tinymce/plugins/searchreplace/editor_plugin_src.js +0 -61
  244. data/public/javascripts/tinymce/plugins/searchreplace/js/searchreplace.js +0 -140
  245. data/public/javascripts/tinymce/plugins/searchreplace/langs/en_dlg.js +0 -16
  246. data/public/javascripts/tinymce/plugins/searchreplace/searchreplace.htm +0 -100
  247. data/public/javascripts/tinymce/plugins/spellchecker/css/content.css +0 -1
  248. data/public/javascripts/tinymce/plugins/spellchecker/editor_plugin.js +0 -1
  249. data/public/javascripts/tinymce/plugins/spellchecker/editor_plugin_src.js +0 -415
  250. data/public/javascripts/tinymce/plugins/spellchecker/img/wline.gif +0 -0
  251. data/public/javascripts/tinymce/plugins/style/css/props.css +0 -13
  252. data/public/javascripts/tinymce/plugins/style/editor_plugin.js +0 -1
  253. data/public/javascripts/tinymce/plugins/style/editor_plugin_src.js +0 -55
  254. data/public/javascripts/tinymce/plugins/style/js/props.js +0 -635
  255. data/public/javascripts/tinymce/plugins/style/langs/en_dlg.js +0 -70
  256. data/public/javascripts/tinymce/plugins/style/props.htm +0 -838
  257. data/public/javascripts/tinymce/plugins/tabfocus/editor_plugin.js +0 -1
  258. data/public/javascripts/tinymce/plugins/tabfocus/editor_plugin_src.js +0 -114
  259. data/public/javascripts/tinymce/plugins/table/cell.htm +0 -178
  260. data/public/javascripts/tinymce/plugins/table/css/cell.css +0 -17
  261. data/public/javascripts/tinymce/plugins/table/css/row.css +0 -25
  262. data/public/javascripts/tinymce/plugins/table/css/table.css +0 -13
  263. data/public/javascripts/tinymce/plugins/table/editor_plugin.js +0 -1
  264. data/public/javascripts/tinymce/plugins/table/editor_plugin_src.js +0 -1183
  265. data/public/javascripts/tinymce/plugins/table/js/cell.js +0 -284
  266. data/public/javascripts/tinymce/plugins/table/js/merge_cells.js +0 -27
  267. data/public/javascripts/tinymce/plugins/table/js/row.js +0 -232
  268. data/public/javascripts/tinymce/plugins/table/js/table.js +0 -450
  269. data/public/javascripts/tinymce/plugins/table/langs/en_dlg.js +0 -74
  270. data/public/javascripts/tinymce/plugins/table/merge_cells.htm +0 -32
  271. data/public/javascripts/tinymce/plugins/table/row.htm +0 -157
  272. data/public/javascripts/tinymce/plugins/table/table.htm +0 -188
  273. data/public/javascripts/tinymce/plugins/template/blank.htm +0 -12
  274. data/public/javascripts/tinymce/plugins/template/css/template.css +0 -23
  275. data/public/javascripts/tinymce/plugins/template/editor_plugin.js +0 -1
  276. data/public/javascripts/tinymce/plugins/template/editor_plugin_src.js +0 -159
  277. data/public/javascripts/tinymce/plugins/template/js/template.js +0 -106
  278. data/public/javascripts/tinymce/plugins/template/langs/en_dlg.js +0 -15
  279. data/public/javascripts/tinymce/plugins/template/template.htm +0 -31
  280. data/public/javascripts/tinymce/plugins/visualchars/editor_plugin.js +0 -1
  281. data/public/javascripts/tinymce/plugins/visualchars/editor_plugin_src.js +0 -83
  282. data/public/javascripts/tinymce/plugins/wordcount/editor_plugin.js +0 -1
  283. data/public/javascripts/tinymce/plugins/wordcount/editor_plugin_src.js +0 -114
  284. data/public/javascripts/tinymce/plugins/xhtmlxtras/abbr.htm +0 -142
  285. data/public/javascripts/tinymce/plugins/xhtmlxtras/acronym.htm +0 -142
  286. data/public/javascripts/tinymce/plugins/xhtmlxtras/attributes.htm +0 -149
  287. data/public/javascripts/tinymce/plugins/xhtmlxtras/cite.htm +0 -142
  288. data/public/javascripts/tinymce/plugins/xhtmlxtras/css/attributes.css +0 -11
  289. data/public/javascripts/tinymce/plugins/xhtmlxtras/css/popup.css +0 -9
  290. data/public/javascripts/tinymce/plugins/xhtmlxtras/del.htm +0 -162
  291. data/public/javascripts/tinymce/plugins/xhtmlxtras/editor_plugin.js +0 -1
  292. data/public/javascripts/tinymce/plugins/xhtmlxtras/editor_plugin_src.js +0 -132
  293. data/public/javascripts/tinymce/plugins/xhtmlxtras/ins.htm +0 -162
  294. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/abbr.js +0 -28
  295. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/acronym.js +0 -28
  296. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/attributes.js +0 -125
  297. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/cite.js +0 -28
  298. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/del.js +0 -53
  299. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/element_common.js +0 -229
  300. data/public/javascripts/tinymce/plugins/xhtmlxtras/js/ins.js +0 -53
  301. data/public/javascripts/tinymce/plugins/xhtmlxtras/langs/en_dlg.js +0 -32
  302. data/public/javascripts/tinymce/themes/advanced/skins/default/content.css +0 -47
  303. data/public/javascripts/tinymce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  304. data/public/javascripts/tinymce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  305. data/public/javascripts/tinymce/themes/advanced/skins/default/ui.css +0 -213
  306. data/public/javascripts/tinymce/themes/advanced/skins/highcontrast/content.css +0 -23
  307. data/public/javascripts/tinymce/themes/advanced/skins/highcontrast/dialog.css +0 -105
  308. data/public/javascripts/tinymce/themes/advanced/skins/highcontrast/ui.css +0 -101
  309. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/content.css +0 -46
  310. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/dialog.css +0 -116
  311. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  312. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  313. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  314. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/ui.css +0 -215
  315. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/ui_black.css +0 -8
  316. data/public/javascripts/tinymce/themes/advanced/skins/o2k7/ui_silver.css +0 -5
  317. data/public/javascripts/tinymce/themes/simple/editor_template.js +0 -1
  318. data/public/javascripts/tinymce/themes/simple/editor_template_src.js +0 -84
  319. data/public/javascripts/tinymce/themes/simple/img/icons.gif +0 -0
  320. data/public/javascripts/tinymce/themes/simple/langs/en.js +0 -11
  321. data/public/javascripts/tinymce/themes/simple/skins/default/content.css +0 -25
  322. data/public/javascripts/tinymce/themes/simple/skins/default/ui.css +0 -32
  323. data/public/javascripts/tinymce/themes/simple/skins/o2k7/content.css +0 -17
  324. data/public/javascripts/tinymce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
  325. data/public/javascripts/tinymce/themes/simple/skins/o2k7/ui.css +0 -35
  326. data/public/javascripts/tinymce/tiny_mce_src.js +0 -14724
  327. data/public/javascripts/tinymce/utils/editable_selects.js +0 -70
  328. data/public/javascripts/tinymce/utils/form_utils.js +0 -207
  329. data/public/javascripts/tinymce/utils/mctabs.js +0 -162
  330. data/public/javascripts/tinymce/utils/validate.js +0 -252
data/GUIDELINE CHANGED
@@ -13,3 +13,8 @@ rails g lolita:install
13
13
 
14
14
  change your project initializers/lolita.rb
15
15
 
16
+ # For cucumber testing
17
+ gem install akephalos
18
+ bundle exec cucumber features
19
+
20
+
data/Gemfile CHANGED
@@ -1,24 +1,29 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- # Thing how to seperate gems for Rails Enginge from those that are only for lolita
3
+ # Thing how to seperate gems for Rails Engine from those that are only for lolita
4
4
  gem "rails", "~>3.0"
5
5
  gem "will_paginate", "~> 3.0.pre2"
6
6
  gem "abstract"
7
+ gem "builder", "~> 2.1.2" #cucumber asks for builder 3 but rails supports 2.1
7
8
 
8
9
  group :mongoid do
9
- gem "mongo"
10
- gem "mongoid", "~> 2.0.0.rc.7"
11
- gem "bson_ext"
10
+ gem "mongo"
11
+ gem "mongoid", "~> 2.0.0.rc.7"
12
+ gem "bson_ext"
12
13
  end
13
14
 
14
15
  #gem 'cover_me', '>= 1.0.0.rc6', :group => :test
15
- gem "jeweler", "~> 1.5.2", :group=>:development
16
+ gem "jeweler", "~> 1.5.2", :group=>:development
16
17
  group :test,:development do
17
- gem "rspec", ">=2.2.0"
18
- gem "rspec-rails"
19
- gem "factory_girl"
20
- gem 'ffaker'
21
- # gem "rspec-cells"
22
- #gem "sqlite3-ruby"
23
- gem "ruby-debug19"
24
- end
18
+ gem "rspec", ">=2.2.0"
19
+ gem "rspec-rails"
20
+ gem "factory_girl"
21
+ gem 'ffaker'
22
+ # gem "rspec-cells"
23
+ #gem "sqlite3-ruby"
24
+ gem "ruby-debug19"
25
+ gem "cucumber-rails"
26
+ gem "capybara"
27
+ gem "database_cleaner"
28
+ gem "akephalos"
29
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.4
1
+ 3.0.5
@@ -60,8 +60,10 @@ class Lolita::RestController < ApplicationController
60
60
 
61
61
  def save_and_redirect
62
62
  if self.resource.save
63
+ flash.now[:notice] = I18n.t "lolita.shared.save_notice"
63
64
  show_form
64
65
  else
66
+ flash.now[:alert] = I18n.t "lolita.shared.save_alert"
65
67
  show_form #to_list
66
68
  end
67
69
  end
@@ -69,6 +71,7 @@ class Lolita::RestController < ApplicationController
69
71
  def to_list
70
72
  page=resource_class.lolita.list.paginate(params[:page])
71
73
  builder=build_response_for(:list,:page=>page)
72
- render_component *builder
74
+ render :index
75
+ #render_component *builder
73
76
  end
74
77
  end
@@ -1,3 +1,12 @@
1
1
  module LolitaHelper
2
-
2
+
3
+ # Classes for div block that is located to the right of menu
4
+ # This is helpful because different positionings within it exist depending on action
5
+ def content_classes
6
+ classes = []
7
+ if params[:action] == "edit"
8
+ classes << "with-secondary"
9
+ end
10
+ classes.join(" ")
11
+ end
3
12
  end
@@ -1,4 +1,4 @@
1
1
  <a href="<%= new_lolita_resource_path%>" class="create">
2
2
  <%= I18n.t("lolita.list.add_new",:name=>resource_name) %>
3
- <%= image_tag "lolita/plus.png", :alt=>"+"%>
3
+ <%= image_tag "lolita/plus.png", :alt=>"+" %>
4
4
  </a>
@@ -1,4 +1,4 @@
1
- <td>
2
- <%= link_to "E",edit_lolita_resource_path(:id=>record.id) %>
3
- <%= link_to "D", lolita_resource_path(:id=>record.id),:method=>:delete,:confirm=>I18n.t("lolita.list.confirm") %>
1
+ <td class="tool-cell">
2
+ <%= link_to "Edit",edit_lolita_resource_path(:id=>record.id) %>
3
+ <%= link_to "Delete", lolita_resource_path(:id=>record.id),:method=>:delete,:confirm=>I18n.t("lolita.list.confirm") %>
4
4
  </td>
@@ -0,0 +1,13 @@
1
+ <div id="flash" style="display:none">
2
+ <%= flash[:notice] if flash[:notice] %>
3
+ <%= flash[:alert] if flash[:alert] %>
4
+ </div>
5
+
6
+ <% if request.xhr? && (flash[:notice] || flash[:alert]) %>
7
+ <script>
8
+ $("#flash").slideDown("fast");
9
+ setTimeout(function() {
10
+ $("#flash").slideUp("fast")
11
+ }, 10000); //wait 10 seconds and then slide up
12
+ </script>
13
+ <% end%>
@@ -0,0 +1,14 @@
1
+ <div class="secondary">
2
+ <div class="box">
3
+ <div class="boxtitle black">
4
+ <h1><%= t "lolita.tabs.save" %></h1>
5
+ <div class="arrow"></div>
6
+ </div>
7
+ <div class="save black">
8
+ <div class="last-save">
9
+ <%= resource.updated_at.strftime("#{t("lolita.tabs.last_save")}: %m/%d/%Y %H:%M ") if resource.respond_to?(:updated_at) && resource.updated_at %>
10
+ </div>
11
+ <button class="save-all"><%=I18n.t("lolita.tabs.save")%></button>
12
+ </div>
13
+ </div>
14
+ </div>
@@ -5,6 +5,7 @@
5
5
  %>
6
6
  <%= form_tag "#", :id=>"tab-form-#{tab.__id__}" do |form| %>
7
7
  <div class="tab-content">
8
+ <%#= error_messages_for resource #TODO removed in Rails 3, now available as plugin .. %>
8
9
  <% tab.fields_with_field_set do |fields_or_field,field_set| %>
9
10
  <% if field_set %>
10
11
  <%= render_component :"lolita/field_set", :display, :fields=>fields_or_field,:field_set=>field_set %>
@@ -1,26 +1,11 @@
1
- <% content_for :content_class do "with-secondary" end %>
1
+ <%= render_component :"lolita/shared", :flash, :flash => flash %> <%# FIXME does it really need passed flash as local var? %>
2
+ <%= render_component :"lolita/shared", :right_sidebar %>
2
3
 
3
- <%#= flash %>
4
-
5
- <div class="secondary"> <%#= right sidebar %>
6
- <div class="box">
7
- <div class="boxtitle black">
8
- <h1><%= t "lolita.tabs.save" %></h1>
9
- <div class="arrow"></div>
10
- </div>
11
- <div class="save black">
12
- <div class="last-save">
13
- <%= resource.updated_at.strftime("#{t("lolita.tabs.last_save")}: %m/%d/%Y %H:%M ") if resource.updated_at %>
14
- </div>
15
- <button class="save-all"><%=I18n.t("lolita.tabs.save")%></button>
16
- </div>
17
- </div>
18
- </div>
4
+ <%#= resource.errors.full_messages if resource.errors.any? %>
19
5
 
20
6
  <% #mode container div with all data-* method to helper and change to block method %>
21
7
  <div id="tabs-<%= resource_name %>" class="tabs" data-method="<%=resource.new_record? ? "POST" : "PUT" %>" data-tabs-url="<%=resource.new_record? ? lolita_resources_path : lolita_resource_path(:id=>resource.id)%>">
22
8
  <% tabs.each do |tab| %>
23
9
  <%= render_component :"lolita/tab", :display, :tab=>tab %>
24
10
  <% end %>
25
- </div>
26
-
11
+ </div>
@@ -22,7 +22,7 @@
22
22
  <%= render_component :"lolita/shared", :header %>
23
23
  <div id="main" role="main">
24
24
  <%= render_component :"lolita/navigation",:display %>
25
- <div id="content" class="<%= content_for :content_class %>">
25
+ <div id="content" class="<%= content_classes %>">
26
26
  <%= yield %>
27
27
  </div>
28
28
  </div>
@@ -1,6 +1,8 @@
1
1
  en:
2
2
  lolita:
3
3
  shared:
4
+ save_notice: Successfully saved.
5
+ save_alert: Save did not succeed.
4
6
  log_out: Log out
5
7
  tabs:
6
8
  last_save: Last saved
@@ -0,0 +1,20 @@
1
+ Feature: Create pages
2
+ In order to manage content
3
+ As lolita user
4
+ I want to create posts
5
+
6
+ Scenario: List and create new with valid data
7
+ When I go to list
8
+ And I follow "Add new post"
9
+ And I fill in "Title" with "Lolita is nice"
10
+ When I press "Save" within ".save"
11
+ Then I should see "Successfully saved"
12
+ When I follow "Post"
13
+ #Then I should see "Lolita is nice"
14
+
15
+ Scenario: List and create new with invalid data
16
+ When I go to list
17
+ And I follow "Add new post"
18
+ When I press "Save" within ".save"
19
+ Then I should see "Save did not succeed"
20
+ When I follow "Post"
@@ -0,0 +1,7 @@
1
+ Given /^I am lolita user$/ do
2
+ @profile = Profile.create
3
+ end
4
+
5
+ Then /^print output$/ do
6
+ save_and_open_page
7
+ end
@@ -0,0 +1,219 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+
8
+ require 'uri'
9
+ require 'cgi'
10
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
11
+
12
+ module WithinHelpers
13
+ def with_scope(locator)
14
+ locator ? within(locator) { yield } : yield
15
+ end
16
+ end
17
+ World(WithinHelpers)
18
+
19
+ Given /^(?:|I )am on (.+)$/ do |page_name|
20
+ visit path_to(page_name)
21
+ end
22
+
23
+ When /^(?:|I )go to (.+)$/ do |page_name|
24
+ visit path_to(page_name)
25
+ end
26
+
27
+ When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector|
28
+ with_scope(selector) do
29
+ click_button(button)
30
+ end
31
+ end
32
+
33
+ When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector|
34
+ with_scope(selector) do
35
+ click_link(link)
36
+ end
37
+ end
38
+
39
+ When /^(?:|I )fill in "([^"]*)" with "([^"]*)"(?: within "([^"]*)")?$/ do |field, value, selector|
40
+ with_scope(selector) do
41
+ fill_in(field, :with => value)
42
+ end
43
+ end
44
+
45
+ When /^(?:|I )fill in "([^"]*)" for "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
46
+ with_scope(selector) do
47
+ fill_in(field, :with => value)
48
+ end
49
+ end
50
+
51
+ # Use this to fill in an entire form with data from a table. Example:
52
+ #
53
+ # When I fill in the following:
54
+ # | Account Number | 5002 |
55
+ # | Expiry date | 2009-11-01 |
56
+ # | Note | Nice guy |
57
+ # | Wants Email? | |
58
+ #
59
+ # TODO: Add support for checkbox, select og option
60
+ # based on naming conventions.
61
+ #
62
+ When /^(?:|I )fill in the following(?: within "([^"]*)")?:$/ do |selector, fields|
63
+ with_scope(selector) do
64
+ fields.rows_hash.each do |name, value|
65
+ When %{I fill in "#{name}" with "#{value}"}
66
+ end
67
+ end
68
+ end
69
+
70
+ When /^(?:|I )select "([^"]*)" from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector|
71
+ with_scope(selector) do
72
+ select(value, :from => field)
73
+ end
74
+ end
75
+
76
+ When /^(?:|I )check "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
77
+ with_scope(selector) do
78
+ check(field)
79
+ end
80
+ end
81
+
82
+ When /^(?:|I )uncheck "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
83
+ with_scope(selector) do
84
+ uncheck(field)
85
+ end
86
+ end
87
+
88
+ When /^(?:|I )choose "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector|
89
+ with_scope(selector) do
90
+ choose(field)
91
+ end
92
+ end
93
+
94
+ When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"(?: within "([^"]*)")?$/ do |path, field, selector|
95
+ with_scope(selector) do
96
+ attach_file(field, path)
97
+ end
98
+ end
99
+
100
+ Then /^(?:|I )should see JSON:$/ do |expected_json|
101
+ require 'json'
102
+ expected = JSON.pretty_generate(JSON.parse(expected_json))
103
+ actual = JSON.pretty_generate(JSON.parse(response.body))
104
+ expected.should == actual
105
+ end
106
+
107
+ Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
108
+ with_scope(selector) do
109
+ if page.respond_to? :should
110
+ page.should have_content(text)
111
+ else
112
+ assert page.has_content?(text)
113
+ end
114
+ end
115
+ end
116
+
117
+ Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
118
+ regexp = Regexp.new(regexp)
119
+ with_scope(selector) do
120
+ if page.respond_to? :should
121
+ page.should have_xpath('//*', :text => regexp)
122
+ else
123
+ assert page.has_xpath?('//*', :text => regexp)
124
+ end
125
+ end
126
+ end
127
+
128
+ Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
129
+ with_scope(selector) do
130
+ if page.respond_to? :should
131
+ page.should have_no_content(text)
132
+ else
133
+ assert page.has_no_content?(text)
134
+ end
135
+ end
136
+ end
137
+
138
+ Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector|
139
+ regexp = Regexp.new(regexp)
140
+ with_scope(selector) do
141
+ if page.respond_to? :should
142
+ page.should have_no_xpath('//*', :text => regexp)
143
+ else
144
+ assert page.has_no_xpath?('//*', :text => regexp)
145
+ end
146
+ end
147
+ end
148
+
149
+ Then /^the "([^"]*)" field(?: within "([^"]*)")? should contain "([^"]*)"$/ do |field, selector, value|
150
+ with_scope(selector) do
151
+ field = find_field(field)
152
+ field_value = (field.tag_name == 'textarea') ? field.text : field.value
153
+ if field_value.respond_to? :should
154
+ field_value.should =~ /#{value}/
155
+ else
156
+ assert_match(/#{value}/, field_value)
157
+ end
158
+ end
159
+ end
160
+
161
+ Then /^the "([^"]*)" field(?: within "([^"]*)")? should not contain "([^"]*)"$/ do |field, selector, value|
162
+ with_scope(selector) do
163
+ field = find_field(field)
164
+ field_value = (field.tag_name == 'textarea') ? field.text : field.value
165
+ if field_value.respond_to? :should_not
166
+ field_value.should_not =~ /#{value}/
167
+ else
168
+ assert_no_match(/#{value}/, field_value)
169
+ end
170
+ end
171
+ end
172
+
173
+ Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should be checked$/ do |label, selector|
174
+ with_scope(selector) do
175
+ field_checked = find_field(label)['checked']
176
+ if field_checked.respond_to? :should
177
+ field_checked.should be_true
178
+ else
179
+ assert field_checked
180
+ end
181
+ end
182
+ end
183
+
184
+ Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |label, selector|
185
+ with_scope(selector) do
186
+ field_checked = find_field(label)['checked']
187
+ if field_checked.respond_to? :should
188
+ field_checked.should be_false
189
+ else
190
+ assert !field_checked
191
+ end
192
+ end
193
+ end
194
+
195
+ Then /^(?:|I )should be on (.+)$/ do |page_name|
196
+ current_path = URI.parse(current_url).path
197
+ if current_path.respond_to? :should
198
+ current_path.should == path_to(page_name)
199
+ else
200
+ assert_equal path_to(page_name), current_path
201
+ end
202
+ end
203
+
204
+ Then /^(?:|I )should have the following query string:$/ do |expected_pairs|
205
+ query = URI.parse(current_url).query
206
+ actual_params = query ? CGI.parse(query) : {}
207
+ expected_params = {}
208
+ expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')}
209
+
210
+ if actual_params.respond_to? :should
211
+ actual_params.should == expected_params
212
+ else
213
+ assert_equal expected_params, actual_params
214
+ end
215
+ end
216
+
217
+ Then /^show me the page$/ do
218
+ save_and_open_page
219
+ end