cardboard_cms 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (360) hide show
  1. checksums.yaml +7 -0
  2. data/.ruby-gemset +1 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +42 -0
  5. data/Gemfile.lock +324 -0
  6. data/Guardfile +23 -0
  7. data/LICENSE.txt +677 -0
  8. data/README.md +370 -0
  9. data/Rakefile +23 -0
  10. data/app/assets/images/cardboard/.gitkeep +0 -0
  11. data/app/assets/images/cardboard/bg.png +0 -0
  12. data/app/assets/images/cardboard/calendar.png +0 -0
  13. data/app/assets/images/cardboard/lorem-ipsum-coffe-mug.jpg +0 -0
  14. data/app/assets/javascripts/cardboard.js +1 -0
  15. data/app/assets/javascripts/cardboard/admin.js +62 -0
  16. data/app/assets/javascripts/cardboard/content_sidebar.js +27 -0
  17. data/app/assets/javascripts/cardboard/datepicker.js +19 -0
  18. data/app/assets/javascripts/cardboard/main_sidebar.js +32 -0
  19. data/app/assets/javascripts/cardboard/rich_text.js +81 -0
  20. data/app/assets/javascripts/cardboard/search_filter.js +28 -0
  21. data/app/assets/stylesheets/cardboard.css.scss +2 -0
  22. data/app/assets/stylesheets/cardboard/_bootstrap-select.css.scss +183 -0
  23. data/app/assets/stylesheets/cardboard/_content.css.scss +35 -0
  24. data/app/assets/stylesheets/cardboard/_content_sidebar.css.scss +96 -0
  25. data/app/assets/stylesheets/cardboard/_framework.css.scss +129 -0
  26. data/app/assets/stylesheets/cardboard/_main_sidebar.css.scss +38 -0
  27. data/app/assets/stylesheets/cardboard/_main_topbar.css.scss +62 -0
  28. data/app/assets/stylesheets/cardboard/_resources.css.scss +28 -0
  29. data/app/assets/stylesheets/cardboard/_rich_text.css.scss +6 -0
  30. data/app/assets/stylesheets/cardboard/_variables.scss +326 -0
  31. data/app/assets/stylesheets/cardboard/admin.css.scss +63 -0
  32. data/app/controllers/cardboard/application_controller.rb +45 -0
  33. data/app/controllers/cardboard/dashboard_controller.rb +9 -0
  34. data/app/controllers/cardboard/my_account_controller.rb +27 -0
  35. data/app/controllers/cardboard/pages_controller.rb +34 -0
  36. data/app/controllers/cardboard/resource_controller.rb +61 -0
  37. data/app/controllers/cardboard/settings_controller.rb +28 -0
  38. data/app/controllers/cardboard/super_user_controller.rb +8 -0
  39. data/app/controllers/pages_controller.rb +29 -0
  40. data/app/decorators/controllers/application_controller_decorator.rb +9 -0
  41. data/app/decorators/lib/cardboard/user_class_decorator.rb +32 -0
  42. data/app/helpers/cardboard/application_helper.rb +4 -0
  43. data/app/helpers/cardboard/public_helper.rb +53 -0
  44. data/app/helpers/cardboard/resource_helper.rb +80 -0
  45. data/app/inputs/date_picker_input.rb +10 -0
  46. data/app/inputs/date_time_input.rb +7 -0
  47. data/app/inputs/image_input.rb +3 -0
  48. data/app/inputs/rich_text_input.rb +6 -0
  49. data/app/models/cardboard/field.rb +67 -0
  50. data/app/models/cardboard/field/boolean.rb +29 -0
  51. data/app/models/cardboard/field/date.rb +24 -0
  52. data/app/models/cardboard/field/decimal.rb +25 -0
  53. data/app/models/cardboard/field/external_link.rb +4 -0
  54. data/app/models/cardboard/field/file.rb +19 -0
  55. data/app/models/cardboard/field/image.rb +33 -0
  56. data/app/models/cardboard/field/integer.rb +26 -0
  57. data/app/models/cardboard/field/resource_link.rb +4 -0
  58. data/app/models/cardboard/field/rich_text.rb +21 -0
  59. data/app/models/cardboard/field/string.rb +16 -0
  60. data/app/models/cardboard/field/text.rb +15 -0
  61. data/app/models/cardboard/page.rb +253 -0
  62. data/app/models/cardboard/page_part.rb +79 -0
  63. data/app/models/cardboard/setting.rb +46 -0
  64. data/app/views/cardboard/dashboard/index.html.slim +1 -0
  65. data/app/views/cardboard/fields/_base_input.html.slim +1 -0
  66. data/app/views/cardboard/fields/_boolean.html.slim +4 -0
  67. data/app/views/cardboard/fields/_date.html.slim +1 -0
  68. data/app/views/cardboard/fields/_external_link.html.slim +2 -0
  69. data/app/views/cardboard/fields/_file.html.slim +12 -0
  70. data/app/views/cardboard/fields/_image.html.slim +11 -0
  71. data/app/views/cardboard/fields/_resource_link.html.slim +2 -0
  72. data/app/views/cardboard/fields/_rich_text.html.slim +3 -0
  73. data/app/views/cardboard/fields/_string.html.slim +1 -0
  74. data/app/views/cardboard/my_account/edit.html.slim +29 -0
  75. data/app/views/cardboard/pages/_error.html.slim +7 -0
  76. data/app/views/cardboard/pages/_seo.html.slim +6 -0
  77. data/app/views/cardboard/pages/_sidebar.html.slim +17 -0
  78. data/app/views/cardboard/pages/_subpart_fields.html.slim +20 -0
  79. data/app/views/cardboard/pages/_url_field.html.slim +20 -0
  80. data/app/views/cardboard/pages/edit.html.slim +43 -0
  81. data/app/views/cardboard/pages/index.html.slim +2 -0
  82. data/app/views/cardboard/pages/show.html.slim +9 -0
  83. data/app/views/cardboard/resources/_advanced_search.html.slim +40 -0
  84. data/app/views/cardboard/resources/_search_button.html.slim +2 -0
  85. data/app/views/cardboard/resources/_search_helper.html.slim +17 -0
  86. data/app/views/cardboard/resources/_simple_search.html.slim +6 -0
  87. data/app/views/cardboard/rich_editor/_links_modal.html.slim +39 -0
  88. data/app/views/cardboard/settings/index.html.slim +8 -0
  89. data/app/views/cardboard/super_user/index.html.slim +10 -0
  90. data/app/views/layouts/cardboard/_flash_message.html.slim +6 -0
  91. data/app/views/layouts/cardboard/_head.html.slim +16 -0
  92. data/app/views/layouts/cardboard/_main_sidebar.html.slim +12 -0
  93. data/app/views/layouts/cardboard/_main_topbar.html.slim +32 -0
  94. data/app/views/layouts/cardboard/application.html.slim +28 -0
  95. data/cardboard.gemspec +57 -0
  96. data/config/initializers/dragonfly.rb +27 -0
  97. data/config/initializers/ranker_mapper_finder_bugfix.rb +43 -0
  98. data/config/initializers/simple_form.rb +142 -0
  99. data/config/initializers/simple_form_bootstrap.rb +45 -0
  100. data/config/locales/simple_form.en.yml +26 -0
  101. data/config/routes.rb +53 -0
  102. data/doc/apple-touch-icon.png +0 -0
  103. data/doc/classes/Cardboard.html +190 -0
  104. data/doc/classes/Cardboard/AdminController.html +134 -0
  105. data/doc/classes/Cardboard/AdminHelper.html +307 -0
  106. data/doc/classes/Cardboard/ApplicationController.html +76 -0
  107. data/doc/classes/Cardboard/ApplicationHelper.html +70 -0
  108. data/doc/classes/Cardboard/DashboardController.html +131 -0
  109. data/doc/classes/Cardboard/Field.html +283 -0
  110. data/doc/classes/Cardboard/Field/Boolean.html +218 -0
  111. data/doc/classes/Cardboard/Field/Date.html +218 -0
  112. data/doc/classes/Cardboard/Field/Decimal.html +218 -0
  113. data/doc/classes/Cardboard/Field/ExternalLink.html +76 -0
  114. data/doc/classes/Cardboard/Field/File.html +131 -0
  115. data/doc/classes/Cardboard/Field/Image.html +181 -0
  116. data/doc/classes/Cardboard/Field/Integer.html +218 -0
  117. data/doc/classes/Cardboard/Field/ResourceLink.html +76 -0
  118. data/doc/classes/Cardboard/Field/RichText.html +131 -0
  119. data/doc/classes/Cardboard/Field/String.html +131 -0
  120. data/doc/classes/Cardboard/Page.html +1184 -0
  121. data/doc/classes/Cardboard/PagePart.html +304 -0
  122. data/doc/classes/Cardboard/PagesController.html +186 -0
  123. data/doc/classes/Cardboard/PublicHelper.html +252 -0
  124. data/doc/classes/Cardboard/Setting.html +240 -0
  125. data/doc/classes/Cardboard/SettingsController.html +184 -0
  126. data/doc/classes/Cardboard/SuperUserController.html +130 -0
  127. data/doc/classes/Cardboard/UsersController.html +191 -0
  128. data/doc/classes/DatePickerInput.html +132 -0
  129. data/doc/classes/ImageInput.html +76 -0
  130. data/doc/classes/Object.html +211 -0
  131. data/doc/classes/PagesController.html +145 -0
  132. data/doc/classes/RichTextInput.html +132 -0
  133. data/doc/created.rid +31 -0
  134. data/doc/css/github.css +129 -0
  135. data/doc/css/main.css +333 -0
  136. data/doc/css/panel.css +384 -0
  137. data/doc/css/reset.css +48 -0
  138. data/doc/favicon.ico +0 -0
  139. data/doc/files/app/controllers/cardboard/admin_controller_rb.html +79 -0
  140. data/doc/files/app/controllers/cardboard/application_controller_rb.html +84 -0
  141. data/doc/files/app/controllers/cardboard/dashboard_controller_rb.html +84 -0
  142. data/doc/files/app/controllers/cardboard/pages_controller_rb.html +84 -0
  143. data/doc/files/app/controllers/cardboard/settings_controller_rb.html +84 -0
  144. data/doc/files/app/controllers/cardboard/super_user_controller_rb.html +84 -0
  145. data/doc/files/app/controllers/cardboard/users_controller_rb.html +84 -0
  146. data/doc/files/app/controllers/pages_controller_rb.html +79 -0
  147. data/doc/files/app/decorators/controllers/application_controller_decorator_rb.html +68 -0
  148. data/doc/files/app/decorators/lib/cardboard/user_class_decorator_rb.html +68 -0
  149. data/doc/files/app/helpers/cardboard/admin_helper_rb.html +84 -0
  150. data/doc/files/app/helpers/cardboard/application_helper_rb.html +84 -0
  151. data/doc/files/app/helpers/cardboard/public_helper_rb.html +84 -0
  152. data/doc/files/app/inputs/date_picker_input_rb.html +79 -0
  153. data/doc/files/app/inputs/image_input_rb.html +79 -0
  154. data/doc/files/app/inputs/rich_text_input_rb.html +79 -0
  155. data/doc/files/app/models/cardboard/field/boolean_rb.html +84 -0
  156. data/doc/files/app/models/cardboard/field/date_rb.html +84 -0
  157. data/doc/files/app/models/cardboard/field/decimal_rb.html +84 -0
  158. data/doc/files/app/models/cardboard/field/external_link_rb.html +84 -0
  159. data/doc/files/app/models/cardboard/field/file_rb.html +84 -0
  160. data/doc/files/app/models/cardboard/field/image_rb.html +84 -0
  161. data/doc/files/app/models/cardboard/field/integer_rb.html +84 -0
  162. data/doc/files/app/models/cardboard/field/resource_link_rb.html +84 -0
  163. data/doc/files/app/models/cardboard/field/rich_text_rb.html +84 -0
  164. data/doc/files/app/models/cardboard/field/string_rb.html +84 -0
  165. data/doc/files/app/models/cardboard/field_rb.html +84 -0
  166. data/doc/files/app/models/cardboard/page_part_rb.html +84 -0
  167. data/doc/files/app/models/cardboard/page_rb.html +84 -0
  168. data/doc/files/app/models/cardboard/setting_rb.html +84 -0
  169. data/doc/i/arrows.png +0 -0
  170. data/doc/i/results_bg.png +0 -0
  171. data/doc/i/tree_bg.png +0 -0
  172. data/doc/index.html +13 -0
  173. data/doc/js/highlight.pack.js +1 -0
  174. data/doc/js/jquery-1.3.2.min.js +19 -0
  175. data/doc/js/jquery-effect.js +593 -0
  176. data/doc/js/main.js +24 -0
  177. data/doc/js/navigation.js +142 -0
  178. data/doc/js/search_index.js +1 -0
  179. data/doc/js/searchdoc.js +449 -0
  180. data/doc/js/searcher.js +228 -0
  181. data/doc/panel/index.html +73 -0
  182. data/doc/panel/links.html +66 -0
  183. data/doc/panel/tree.js +1 -0
  184. data/lib/cardboard/application.rb +67 -0
  185. data/lib/cardboard/engine.rb +83 -0
  186. data/lib/cardboard/helpers/seed.rb +80 -0
  187. data/lib/cardboard/helpers/settings.rb +58 -0
  188. data/lib/cardboard/version.rb +3 -0
  189. data/lib/cardboard_cms.rb +34 -0
  190. data/lib/generators/cardboard/assets/assets_generator.rb +18 -0
  191. data/lib/generators/cardboard/install/install_generator.rb +96 -0
  192. data/lib/generators/cardboard/install/templates/cardboard.rb.erb +53 -0
  193. data/lib/generators/cardboard/install/templates/cardboard.yml +29 -0
  194. data/lib/generators/cardboard/install/templates/index.html.erb +0 -0
  195. data/lib/generators/cardboard/install/templates/migrations/1_create_cardboard_fields.rb +21 -0
  196. data/lib/generators/cardboard/install/templates/migrations/2_create_cardboard_page_parts.rb +17 -0
  197. data/lib/generators/cardboard/install/templates/migrations/3_create_cardboard_pages.rb +18 -0
  198. data/lib/generators/cardboard/install/templates/migrations/4_create_cardboard_settings.rb +14 -0
  199. data/lib/generators/cardboard/resource/resource_generator.rb +52 -0
  200. data/lib/generators/cardboard/resource/templates/admin_controller.rb +9 -0
  201. data/lib/generators/cardboard/resource/templates/slim/_fields.html.slim +5 -0
  202. data/lib/generators/cardboard/resource/templates/slim/edit.html.slim +4 -0
  203. data/lib/generators/cardboard/resource/templates/slim/index.html.slim +18 -0
  204. data/lib/generators/cardboard/resource/templates/slim/new.html.slim +4 -0
  205. data/lib/tasks/cardboard_tasks.rake +22 -0
  206. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  207. data/script/rails +8 -0
  208. data/test/dummy/README.rdoc +261 -0
  209. data/test/dummy/Rakefile +7 -0
  210. data/test/dummy/app/assets/images/defaults/CrashTest.jpg +0 -0
  211. data/test/dummy/app/assets/javascripts/admins.js +2 -0
  212. data/test/dummy/app/assets/javascripts/application.js +5 -0
  213. data/test/dummy/app/assets/javascripts/beans.js +2 -0
  214. data/test/dummy/app/assets/javascripts/cardboard.js +1 -0
  215. data/test/dummy/app/assets/javascripts/icescreams.js +2 -0
  216. data/test/dummy/app/assets/javascripts/main.js +2 -0
  217. data/test/dummy/app/assets/javascripts/news_posts.js +2 -0
  218. data/test/dummy/app/assets/javascripts/pianos.js +2 -0
  219. data/test/dummy/app/assets/stylesheets/admins.css.scss +3 -0
  220. data/test/dummy/app/assets/stylesheets/application.css.scss +9 -0
  221. data/test/dummy/app/assets/stylesheets/beans.css.scss +3 -0
  222. data/test/dummy/app/assets/stylesheets/cardboard.css.scss +5 -0
  223. data/test/dummy/app/assets/stylesheets/icescreams.css.scss +3 -0
  224. data/test/dummy/app/assets/stylesheets/main.css +4 -0
  225. data/test/dummy/app/assets/stylesheets/news_posts.css.scss +3 -0
  226. data/test/dummy/app/assets/stylesheets/pianos.css.scss +3 -0
  227. data/test/dummy/app/assets/stylesheets/scaffolds.css.scss +69 -0
  228. data/test/dummy/app/controllers/application_controller.rb +3 -0
  229. data/test/dummy/app/controllers/cardboard/pianos_controller.rb +6 -0
  230. data/test/dummy/app/controllers/pianos_controller.rb +83 -0
  231. data/test/dummy/app/helpers/application_helper.rb +9 -0
  232. data/test/dummy/app/helpers/cardboard/pianos_helper.rb +7 -0
  233. data/test/dummy/app/mailers/.gitkeep +0 -0
  234. data/test/dummy/app/models/.gitkeep +0 -0
  235. data/test/dummy/app/models/admin_user.rb +28 -0
  236. data/test/dummy/app/models/piano.rb +3 -0
  237. data/test/dummy/app/views/cardboard/pianos/_fields.html.slim +5 -0
  238. data/test/dummy/app/views/cardboard/pianos/edit.html.slim +6 -0
  239. data/test/dummy/app/views/cardboard/pianos/index.html.slim +18 -0
  240. data/test/dummy/app/views/cardboard/pianos/new.html.slim +6 -0
  241. data/test/dummy/app/views/cardboard/pianos/show.html.slim +11 -0
  242. data/test/dummy/app/views/layouts/application.html.slim +24 -0
  243. data/test/dummy/app/views/main/index.html.slim +1 -0
  244. data/test/dummy/app/views/pages/about-us.html.slim +1 -0
  245. data/test/dummy/app/views/pages/home.html.slim +3 -0
  246. data/test/dummy/app/views/pianos/_form.html.erb +25 -0
  247. data/test/dummy/app/views/pianos/edit.html.erb +6 -0
  248. data/test/dummy/app/views/pianos/index.html.erb +25 -0
  249. data/test/dummy/app/views/pianos/new.html.erb +5 -0
  250. data/test/dummy/app/views/pianos/show.html.erb +15 -0
  251. data/test/dummy/config.ru +4 -0
  252. data/test/dummy/config/application.rb +50 -0
  253. data/test/dummy/config/boot.rb +10 -0
  254. data/test/dummy/config/cardboard.yml +126 -0
  255. data/test/dummy/config/database.yml +17 -0
  256. data/test/dummy/config/environment.rb +5 -0
  257. data/test/dummy/config/environments/development.rb +24 -0
  258. data/test/dummy/config/environments/production.rb +70 -0
  259. data/test/dummy/config/environments/test.rb +33 -0
  260. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  261. data/test/dummy/config/initializers/cardboard.rb +53 -0
  262. data/test/dummy/config/initializers/devise.rb +240 -0
  263. data/test/dummy/config/initializers/inflections.rb +15 -0
  264. data/test/dummy/config/initializers/mime_types.rb +5 -0
  265. data/test/dummy/config/initializers/secret_token.rb +8 -0
  266. data/test/dummy/config/initializers/session_store.rb +8 -0
  267. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  268. data/test/dummy/config/locales/devise.en.yml +59 -0
  269. data/test/dummy/config/locales/en.yml +5 -0
  270. data/test/dummy/config/routes.rb +16 -0
  271. data/test/dummy/db/migrate/20130403142235_create_pianos.rb +10 -0
  272. data/test/dummy/db/migrate/20130417134832_add_devise_to_admin_users.rb +53 -0
  273. data/test/dummy/db/migrate/20130426021522_create_news_posts.rb +10 -0
  274. data/test/dummy/db/migrate/20130501195423_create_icescreams.rb +10 -0
  275. data/test/dummy/db/migrate/20130502165540_create_beans.rb +12 -0
  276. data/test/dummy/db/migrate/20130522151358_create_cardboard_fields.rb +21 -0
  277. data/test/dummy/db/migrate/20130522151359_create_cardboard_page_parts.rb +17 -0
  278. data/test/dummy/db/migrate/20130522151400_create_cardboard_pages.rb +18 -0
  279. data/test/dummy/db/migrate/20130522151401_create_cardboard_settings.rb +14 -0
  280. data/test/dummy/db/migrate/20130607132558_create_admins.rb +9 -0
  281. data/test/dummy/db/schema.rb +129 -0
  282. data/test/dummy/db/seeds.rb +2 -0
  283. data/test/dummy/lib/assets/.gitkeep +0 -0
  284. data/test/dummy/log/.gitkeep +0 -0
  285. data/test/dummy/public/404.html +26 -0
  286. data/test/dummy/public/422.html +26 -0
  287. data/test/dummy/public/500.html +25 -0
  288. data/test/dummy/public/favicon.ico +0 -0
  289. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_10_816_404_no_file.png +0 -0
  290. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_10_816_404_no_file.png.meta +2 -0
  291. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_17_87_404_no_file.png +0 -0
  292. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_17_87_404_no_file.png.meta +2 -0
  293. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_34_680_404_no_file.png +0 -0
  294. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_39_34_680_404_no_file.png.meta +2 -0
  295. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_44_00_698_404_no_file.png +0 -0
  296. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_44_00_698_404_no_file.png.meta +2 -0
  297. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_46_49_55_6152message_in_a_bottle.jpeg +0 -0
  298. data/test/dummy/public/system/dragonfly/development/2013/04/16/10_46_49_55_6152message_in_a_bottle.jpeg.meta +2 -0
  299. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_30_773_404_no_file.png +0 -0
  300. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_30_773_404_no_file.png.meta +2 -0
  301. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_38_856_airport_shuttles_20130207_1647.csv +8 -0
  302. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_10_38_856_airport_shuttles_20130207_1647.csv.meta +2 -0
  303. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_12_12_144_1361696555_GMail_Android_R.png +0 -0
  304. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_12_12_144_1361696555_GMail_Android_R.png.meta +2 -0
  305. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_16_40_989_404_no_file.png +0 -0
  306. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_16_40_989_404_no_file.png.meta +2 -0
  307. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_19_19_40_6152message_in_a_bottle.jpeg +0 -0
  308. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_19_19_40_6152message_in_a_bottle.jpeg.meta +2 -0
  309. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_21_21_825_6152message_in_a_bottle.jpeg +0 -0
  310. data/test/dummy/public/system/dragonfly/development/2013/04/16/14_21_21_825_6152message_in_a_bottle.jpeg.meta +2 -0
  311. data/test/dummy/public/system/dragonfly/development/2013/04/16/15_46_33_341_bio.jpg +0 -0
  312. data/test/dummy/public/system/dragonfly/development/2013/04/16/15_46_33_341_bio.jpg.meta +2 -0
  313. data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_55_892_404_no_file.png +0 -0
  314. data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_55_892_404_no_file.png.meta +2 -0
  315. data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_56_30_404_no_file.png +0 -0
  316. data/test/dummy/public/system/dragonfly/development/2013/04/16/15_52_56_30_404_no_file.png.meta +2 -0
  317. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_24_04_585_Sky_3920445.jpg +0 -0
  318. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_24_04_585_Sky_3920445.jpg.meta +2 -0
  319. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_25_41_111_Sky_3920445.jpg +0 -0
  320. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_25_41_111_Sky_3920445.jpg.meta +2 -0
  321. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_16_937_Sky_3920445.jpg +0 -0
  322. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_16_937_Sky_3920445.jpg.meta +2 -0
  323. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_57_585_Sky_3920445.jpg +0 -0
  324. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_27_57_585_Sky_3920445.jpg.meta +2 -0
  325. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_28_24_991_Sky_3920445.jpg +0 -0
  326. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_28_24_991_Sky_3920445.jpg.meta +2 -0
  327. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_33_30_610_Sky_3920445.jpg +0 -0
  328. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_33_30_610_Sky_3920445.jpg.meta +2 -0
  329. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_35_18_437_Sky_3920445.jpg +0 -0
  330. data/test/dummy/public/system/dragonfly/development/2013/04/17/15_35_18_437_Sky_3920445.jpg.meta +2 -0
  331. data/test/dummy/public/system/dragonfly/development/2013/04/17/16_45_07_162_Vehicle_Types.jpg +0 -0
  332. data/test/dummy/public/system/dragonfly/development/2013/04/17/16_45_07_162_Vehicle_Types.jpg.meta +2 -0
  333. data/test/dummy/public/system/dragonfly/development/2013/04/18/22_27_35_733_hall.jpg +0 -0
  334. data/test/dummy/public/system/dragonfly/development/2013/04/18/22_27_35_733_hall.jpg.meta +2 -0
  335. data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_808_fluidicon.png +0 -0
  336. data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_808_fluidicon.png.meta +2 -0
  337. data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_989_fluidicon.png +0 -0
  338. data/test/dummy/public/system/dragonfly/development/2013/04/18/22_29_15_989_fluidicon.png.meta +2 -0
  339. data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_44_881_hall3.jpg +0 -0
  340. data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_44_881_hall3.jpg.meta +2 -0
  341. data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_45_450_hall3.jpg +0 -0
  342. data/test/dummy/public/system/dragonfly/development/2013/04/19/09_54_45_450_hall3.jpg.meta +2 -0
  343. data/test/dummy/script/rails +6 -0
  344. data/test/dummy/test/fixtures/admins.yml +7 -0
  345. data/test/dummy/test/functional/admins_controller_test.rb +49 -0
  346. data/test/dummy/test/unit/admin_test.rb +7 -0
  347. data/test/dummy/test/unit/helpers/admins_helper_test.rb +4 -0
  348. data/test/factories.rb +47 -0
  349. data/test/integration/page_editing_test.rb +77 -0
  350. data/test/integration/seeding_test.rb +96 -0
  351. data/test/models/field_test.rb +102 -0
  352. data/test/models/page_test.rb +105 -0
  353. data/test/test_helper.rb +40 -0
  354. data/vendor/assets/javascripts/cardboard/bootstrap-select.js +590 -0
  355. data/vendor/assets/javascripts/cardboard/jquery.livesearch.js +48 -0
  356. data/vendor/assets/javascripts/cardboard/jquery.pjax.js +822 -0
  357. data/vendor/assets/javascripts/cardboard/jquery.wysihtml5_size_matters.js.coffee +44 -0
  358. data/vendor/assets/javascripts/cardboard/jquery.wysihtml5imgresizer.js +320 -0
  359. data/vendor/assets/javascripts/cardboard/wysihtml5-0.4.0pre.js +9579 -0
  360. metadata +1011 -0
data/doc/js/main.js ADDED
@@ -0,0 +1,24 @@
1
+ function toggleSource(id)
2
+ {
3
+ var src = $('#' + id).toggle();
4
+ var isVisible = src.is(':visible');
5
+ $('#l_' + id).html(isVisible ? 'hide' : 'show');
6
+ if (!src.data('syntax-higlighted')) {
7
+ src.data('syntax-higlighted', 1);
8
+ hljs.highlightBlock(src[0]);
9
+ }
10
+ }
11
+
12
+ window.highlight = function(url) {
13
+ var hash = url.match(/#([^#]+)$/)
14
+ if(hash) {
15
+ $('a[name=' + hash[1] + ']').parent().effect('highlight', {}, 'slow')
16
+ }
17
+ }
18
+
19
+ $(function() {
20
+ highlight('#' + location.hash);
21
+ $('.description pre').each(function() {
22
+ hljs.highlightBlock(this);
23
+ });
24
+ });
@@ -0,0 +1,142 @@
1
+ /*
2
+ * Navigation allows movement using the arrow keys through the search results.
3
+ *
4
+ * When using this library you will need to set scrollIntoView to the
5
+ * appropriate function for your layout. Use scrollInWindow if the container
6
+ * is not scrollable and scrollInElement if the container is a separate
7
+ * scrolling region.
8
+ */
9
+ Navigation = new function() {
10
+ this.initNavigation = function() {
11
+ var _this = this;
12
+
13
+ $(document).keydown(function(e) {
14
+ _this.onkeydown(e);
15
+ }).keyup(function(e) {
16
+ _this.onkeyup(e);
17
+ });
18
+
19
+ this.navigationActive = true;
20
+ }
21
+
22
+ this.setNavigationActive = function(state) {
23
+ this.navigationActive = state;
24
+ this.clearMoveTimeout();
25
+ }
26
+
27
+ this.onkeyup = function(e) {
28
+ if (!this.navigationActive) return;
29
+
30
+ switch(e.keyCode) {
31
+ case 37: //Event.KEY_LEFT:
32
+ case 38: //Event.KEY_UP:
33
+ case 39: //Event.KEY_RIGHT:
34
+ case 40: //Event.KEY_DOWN:
35
+ this.clearMoveTimeout();
36
+ break;
37
+ }
38
+ }
39
+
40
+ this.onkeydown = function(e) {
41
+ if (!this.navigationActive) return;
42
+ switch(e.keyCode) {
43
+ case 37: //Event.KEY_LEFT:
44
+ if (this.moveLeft()) e.preventDefault();
45
+ break;
46
+ case 38: //Event.KEY_UP:
47
+ if (e.keyCode == 38 || e.ctrlKey) {
48
+ if (this.moveUp()) e.preventDefault();
49
+ this.startMoveTimeout(false);
50
+ }
51
+ break;
52
+ case 39: //Event.KEY_RIGHT:
53
+ if (this.moveRight()) e.preventDefault();
54
+ break;
55
+ case 40: //Event.KEY_DOWN:
56
+ if (e.keyCode == 40 || e.ctrlKey) {
57
+ if (this.moveDown()) e.preventDefault();
58
+ this.startMoveTimeout(true);
59
+ }
60
+ break;
61
+ case 13: //Event.KEY_RETURN:
62
+ if (this.$current)
63
+ e.preventDefault();
64
+ this.select(this.$current);
65
+ break;
66
+ }
67
+ if (e.ctrlKey && e.shiftKey) this.select(this.$current);
68
+ }
69
+
70
+ this.clearMoveTimeout = function() {
71
+ clearTimeout(this.moveTimeout);
72
+ this.moveTimeout = null;
73
+ }
74
+
75
+ this.startMoveTimeout = function(isDown) {
76
+ if (!$.browser.mozilla && !$.browser.opera) return;
77
+ if (this.moveTimeout) this.clearMoveTimeout();
78
+ var _this = this;
79
+
80
+ var go = function() {
81
+ if (!_this.moveTimeout) return;
82
+ _this[isDown ? 'moveDown' : 'moveUp']();
83
+ _this.moveTimout = setTimeout(go, 100);
84
+ }
85
+ this.moveTimeout = setTimeout(go, 200);
86
+ }
87
+
88
+ this.moveRight = function() {
89
+ }
90
+
91
+ this.moveLeft = function() {
92
+ }
93
+
94
+ this.move = function(isDown) {
95
+ }
96
+
97
+ this.moveUp = function() {
98
+ return this.move(false);
99
+ }
100
+
101
+ this.moveDown = function() {
102
+ return this.move(true);
103
+ }
104
+
105
+ /*
106
+ * Scrolls to the given element in the scrollable element view.
107
+ */
108
+ this.scrollInElement = function(element, view) {
109
+ var offset, viewHeight, viewScroll, height;
110
+ offset = element.offsetTop;
111
+ height = element.offsetHeight;
112
+ viewHeight = view.offsetHeight;
113
+ viewScroll = view.scrollTop;
114
+
115
+ if (offset - viewScroll + height > viewHeight) {
116
+ view.scrollTop = offset - viewHeight + height;
117
+ }
118
+ if (offset < viewScroll) {
119
+ view.scrollTop = offset;
120
+ }
121
+ }
122
+
123
+ /*
124
+ * Scrolls to the given element in the window. The second argument is
125
+ * ignored
126
+ */
127
+ this.scrollInWindow = function(element, ignored) {
128
+ var offset, viewHeight, viewScroll, height;
129
+ offset = element.offsetTop;
130
+ height = element.offsetHeight;
131
+ viewHeight = window.innerHeight;
132
+ viewScroll = window.scrollY;
133
+
134
+ if (offset - viewScroll + height > viewHeight) {
135
+ window.scrollTo(window.scrollX, offset - viewHeight + height);
136
+ }
137
+ if (offset < viewScroll) {
138
+ window.scrollTo(window.scrollX, offset);
139
+ }
140
+ }
141
+ }
142
+
@@ -0,0 +1 @@
1
+ var search_data = {"index":{"searchIndex":["cardboard","admincontroller","adminhelper","applicationcontroller","applicationhelper","dashboardcontroller","field","boolean","date","decimal","externallink","file","image","integer","resourcelink","richtext","string","page","pagepart","pagescontroller","publichelper","setting","settingscontroller","superusercontroller","userscontroller","datepickerinput","imageinput","object","pagescontroller","richtextinput","add()","arrange()","attr()","can_manage_cardboard_pages?()","can_manage_cardboard_resource?()","can_manage_cardboard_settings?()","cardboard_filters()","children()","clear_arranged_pages()","clear_saved_settings()","collection()","default()","default()","default()","default()","default()","default()","default()","default=()","default=()","default=()","depth()","edit()","edit()","find_by_url()","get()","homepage()","index()","index()","index()","input()","input()","is_root=()","l()","link_to_page()","main_sidebar_nav_link()","meta_and_title()","method_missing()","nested_pages()","new_subpart()","parent()","parent=()","parent_id=()","parent_url=()","parent_url_options()","ransack_options()","repeatable?()","root()","root?()","seo()","seo=()","show()","siblings()","slug=()","split_path()","subpart?()","type()","type=()","update()","update()","update()","url()","using_slug_backup=()","using_slug_backup?()","value()","value()","value()","value()","value=()","value=()","value=()","value=()"],"longSearchIndex":["cardboard","cardboard::admincontroller","cardboard::adminhelper","cardboard::applicationcontroller","cardboard::applicationhelper","cardboard::dashboardcontroller","cardboard::field","cardboard::field::boolean","cardboard::field::date","cardboard::field::decimal","cardboard::field::externallink","cardboard::field::file","cardboard::field::image","cardboard::field::integer","cardboard::field::resourcelink","cardboard::field::richtext","cardboard::field::string","cardboard::page","cardboard::pagepart","cardboard::pagescontroller","cardboard::publichelper","cardboard::setting","cardboard::settingscontroller","cardboard::superusercontroller","cardboard::userscontroller","datepickerinput","imageinput","object","pagescontroller","richtextinput","cardboard::setting::add()","cardboard::page::arrange()","cardboard::pagepart#attr()","object#can_manage_cardboard_pages?()","object#can_manage_cardboard_resource?()","object#can_manage_cardboard_settings?()","cardboard::adminhelper#cardboard_filters()","cardboard::page#children()","cardboard::page::clear_arranged_pages()","cardboard::setting::clear_saved_settings()","cardboard::admincontroller#collection()","cardboard::field::boolean#default()","cardboard::field::date#default()","cardboard::field::decimal#default()","cardboard::field::image#default()","cardboard::field::integer#default()","cardboard::field::richtext#default()","cardboard::field::string#default()","cardboard::field#default=()","cardboard::field::file#default=()","cardboard::field::image#default=()","cardboard::page#depth()","cardboard::pagescontroller#edit()","cardboard::userscontroller#edit()","cardboard::page::find_by_url()","cardboard::page#get()","cardboard::page::homepage()","cardboard::dashboardcontroller#index()","cardboard::settingscontroller#index()","cardboard::superusercontroller#index()","datepickerinput#input()","richtextinput#input()","cardboard::page#is_root=()","cardboard::adminhelper#l()","cardboard::publichelper#link_to_page()","cardboard::adminhelper#main_sidebar_nav_link()","cardboard::publichelper#meta_and_title()","cardboard::setting::method_missing()","cardboard::publichelper#nested_pages()","cardboard::pagepart#new_subpart()","cardboard::page#parent()","cardboard::page#parent=()","cardboard::page#parent_id=()","cardboard::page#parent_url=()","cardboard::page#parent_url_options()","cardboard::adminhelper#ransack_options()","cardboard::pagepart#repeatable?()","cardboard::page::root()","cardboard::page#root?()","cardboard::page#seo()","cardboard::page#seo=()","pagescontroller#show()","cardboard::page#siblings()","cardboard::page#slug=()","cardboard::page#split_path()","cardboard::pagepart#subpart?()","cardboard::field#type()","cardboard::field#type=()","cardboard::pagescontroller#update()","cardboard::settingscontroller#update()","cardboard::userscontroller#update()","cardboard::page#url()","cardboard::page#using_slug_backup=()","cardboard::page#using_slug_backup?()","cardboard::field::boolean#value()","cardboard::field::date#value()","cardboard::field::decimal#value()","cardboard::field::integer#value()","cardboard::field::boolean#value=()","cardboard::field::date#value=()","cardboard::field::decimal#value=()","cardboard::field::integer#value=()"],"info":[["Cardboard","","classes/Cardboard.html","",""],["Cardboard::AdminController","","classes/Cardboard/AdminController.html","",""],["Cardboard::AdminHelper","","classes/Cardboard/AdminHelper.html","",""],["Cardboard::ApplicationController","","classes/Cardboard/ApplicationController.html","",""],["Cardboard::ApplicationHelper","","classes/Cardboard/ApplicationHelper.html","",""],["Cardboard::DashboardController","","classes/Cardboard/DashboardController.html","",""],["Cardboard::Field","","classes/Cardboard/Field.html","",""],["Cardboard::Field::Boolean","","classes/Cardboard/Field/Boolean.html","",""],["Cardboard::Field::Date","","classes/Cardboard/Field/Date.html","",""],["Cardboard::Field::Decimal","","classes/Cardboard/Field/Decimal.html","",""],["Cardboard::Field::ExternalLink","","classes/Cardboard/Field/ExternalLink.html","",""],["Cardboard::Field::File","","classes/Cardboard/Field/File.html","",""],["Cardboard::Field::Image","","classes/Cardboard/Field/Image.html","",""],["Cardboard::Field::Integer","","classes/Cardboard/Field/Integer.html","",""],["Cardboard::Field::ResourceLink","","classes/Cardboard/Field/ResourceLink.html","",""],["Cardboard::Field::RichText","","classes/Cardboard/Field/RichText.html","",""],["Cardboard::Field::String","","classes/Cardboard/Field/String.html","",""],["Cardboard::Page","","classes/Cardboard/Page.html","",""],["Cardboard::PagePart","","classes/Cardboard/PagePart.html","",""],["Cardboard::PagesController","","classes/Cardboard/PagesController.html","",""],["Cardboard::PublicHelper","","classes/Cardboard/PublicHelper.html","",""],["Cardboard::Setting","","classes/Cardboard/Setting.html","",""],["Cardboard::SettingsController","","classes/Cardboard/SettingsController.html","",""],["Cardboard::SuperUserController","","classes/Cardboard/SuperUserController.html","",""],["Cardboard::UsersController","","classes/Cardboard/UsersController.html","",""],["DatePickerInput","","classes/DatePickerInput.html","",""],["ImageInput","","classes/ImageInput.html","",""],["Object","","classes/Object.html","",""],["PagesController","","classes/PagesController.html","",""],["RichTextInput","","classes/RichTextInput.html","",""],["add","Cardboard::Setting","classes/Cardboard/Setting.html#method-c-add","(id, hash_attributes)",""],["arrange","Cardboard::Page","classes/Cardboard/Page.html#method-c-arrange","(root_page = nil)","<p>Arrange array of nodes into a nested hash of the form {node =&gt;\nchildren}, where children = {} if …\n"],["attr","Cardboard::PagePart","classes/Cardboard/PagePart.html#method-i-attr","(field)",""],["can_manage_cardboard_pages?","Object","classes/Object.html#method-i-can_manage_cardboard_pages-3F","()",""],["can_manage_cardboard_resource?","Object","classes/Object.html#method-i-can_manage_cardboard_resource-3F","(resource)",""],["can_manage_cardboard_settings?","Object","classes/Object.html#method-i-can_manage_cardboard_settings-3F","()",""],["cardboard_filters","Cardboard::AdminHelper","classes/Cardboard/AdminHelper.html#method-i-cardboard_filters","(model, main_element, options={})","\n<pre class=\"ruby\"><span class=\"ruby-string\">&quot;q&quot;</span>=<span class=\"ruby-operator\">&gt;</span>\n</pre>\n<p>{“id_lt”=&gt;“1”,\n\n<pre class=\"ruby\"><span class=\"ruby-string\">&quot;id_gteq&quot;</span>=<span class=\"ruby-operator\">&gt;</span><span class=\"ruby-string\">&quot;1&quot;</span>,\n<span class=\"ruby-string\">&quot;color_cont&quot;</span>=<span class=\"ruby-operator\">&gt;</span><span class=\"ruby-string\">&quot;1&quot;</span>,\n<span class=\"ruby-string\">&quot;flavor_cont&quot;</span>=<span class=\"ruby-operator\">&gt;</span><span class=\"ruby-string\">&quot;&quot;</span>,\n<span class=\"ruby-string\">&quot;size_lt&quot;</span>=<span class=\"ruby-operator\">&gt;</span><span class=\"ruby-string\">&quot;&quot;</span>, <span class=\"ruby-operator\">...</span>\n</pre>\n"],["children","Cardboard::Page","classes/Cardboard/Page.html#method-i-children","()",""],["clear_arranged_pages","Cardboard::Page","classes/Cardboard/Page.html#method-c-clear_arranged_pages","()",""],["clear_saved_settings","Cardboard::Setting","classes/Cardboard/Setting.html#method-c-clear_saved_settings","()",""],["collection","Cardboard::AdminController","classes/Cardboard/AdminController.html#method-i-collection","()",""],["default","Cardboard::Field::Boolean","classes/Cardboard/Field/Boolean.html#method-i-default","()",""],["default","Cardboard::Field::Date","classes/Cardboard/Field/Date.html#method-i-default","()",""],["default","Cardboard::Field::Decimal","classes/Cardboard/Field/Decimal.html#method-i-default","()",""],["default","Cardboard::Field::Image","classes/Cardboard/Field/Image.html#method-i-default","()",""],["default","Cardboard::Field::Integer","classes/Cardboard/Field/Integer.html#method-i-default","()",""],["default","Cardboard::Field::RichText","classes/Cardboard/Field/RichText.html#method-i-default","()",""],["default","Cardboard::Field::String","classes/Cardboard/Field/String.html#method-i-default","()",""],["default=","Cardboard::Field","classes/Cardboard/Field.html#method-i-default-3D","(val)",""],["default=","Cardboard::Field::File","classes/Cardboard/Field/File.html#method-i-default-3D","(val)",""],["default=","Cardboard::Field::Image","classes/Cardboard/Field/Image.html#method-i-default-3D","(val)",""],["depth","Cardboard::Page","classes/Cardboard/Page.html#method-i-depth","()",""],["edit","Cardboard::PagesController","classes/Cardboard/PagesController.html#method-i-edit","()",""],["edit","Cardboard::UsersController","classes/Cardboard/UsersController.html#method-i-edit","()",""],["find_by_url","Cardboard::Page","classes/Cardboard/Page.html#method-c-find_by_url","(full_url)","<p>class methods\n"],["get","Cardboard::Page","classes/Cardboard/Page.html#method-i-get","(field)","<p>slideshow = @page.get(“slideshow”) slideshow.field(“image1”)\nslideshow.each{|p| …\n"],["homepage","Cardboard::Page","classes/Cardboard/Page.html#method-c-homepage","()",""],["index","Cardboard::DashboardController","classes/Cardboard/DashboardController.html#method-i-index","()",""],["index","Cardboard::SettingsController","classes/Cardboard/SettingsController.html#method-i-index","()",""],["index","Cardboard::SuperUserController","classes/Cardboard/SuperUserController.html#method-i-index","()",""],["input","DatePickerInput","classes/DatePickerInput.html#method-i-input","()",""],["input","RichTextInput","classes/RichTextInput.html#method-i-input","()",""],["is_root=","Cardboard::Page","classes/Cardboard/Page.html#method-i-is_root-3D","(val)",""],["l","Cardboard::AdminHelper","classes/Cardboard/AdminHelper.html#method-i-l","(val, options = {})",""],["link_to_page","Cardboard::PublicHelper","classes/Cardboard/PublicHelper.html#method-i-link_to_page","(page, html_options={}, &block)","<p>Example:\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">link_to_page</span> <span class=\"ruby-value\">123</span>, <span class=\"ruby-identifier\">class</span><span class=\"ruby-operator\">:</span> <span class=\"ruby-string\">&quot;btn&quot;</span> <span class=\"ruby-keyword\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">page</span><span class=\"ruby-operator\">|</span>\n <span class=\"ruby-node\">&quot;hello #{page.title}&quot;</span>\n<span class=\"ruby-keyword\">end</span>\n</pre>\n"],["main_sidebar_nav_link","Cardboard::AdminHelper","classes/Cardboard/AdminHelper.html#method-i-main_sidebar_nav_link","(text, link, options={})","<p>.item\n\n<pre>= link_to dashboard_path, id:&quot;nav_dashboard_link&quot; do\n i.icon-dashboard\n span Dashboard</pre>\n"],["meta_and_title","Cardboard::PublicHelper","classes/Cardboard/PublicHelper.html#method-i-meta_and_title","(page)","<p>Example: head\n\n<pre>= meta_and_title(current_page)</pre>\n"],["method_missing","Cardboard::Setting","classes/Cardboard/Setting.html#method-c-method_missing","(sym, *args, &block)",""],["nested_pages","Cardboard::PublicHelper","classes/Cardboard/PublicHelper.html#method-i-nested_pages","(page = nil, &block)","<p>Example 1:\n<p>nested_pages Cardboard::Page.arrange do |page, subpages|\n\n<pre>.indent\n = link_to(page.title, page.url) ...</pre>\n"],["new_subpart","Cardboard::PagePart","classes/Cardboard/PagePart.html#method-i-new_subpart","()",""],["parent","Cardboard::Page","classes/Cardboard/Page.html#method-i-parent","()",""],["parent=","Cardboard::Page","classes/Cardboard/Page.html#method-i-parent-3D","(new_parent)",""],["parent_id=","Cardboard::Page","classes/Cardboard/Page.html#method-i-parent_id-3D","(new_parent_id)",""],["parent_url=","Cardboard::Page","classes/Cardboard/Page.html#method-i-parent_url-3D","(new_parent_url)",""],["parent_url_options","Cardboard::Page","classes/Cardboard/Page.html#method-i-parent_url_options","()","<p>Get all other pages\n"],["ransack_options","Cardboard::AdminHelper","classes/Cardboard/AdminHelper.html#method-i-ransack_options","()",""],["repeatable?","Cardboard::PagePart","classes/Cardboard/PagePart.html#method-i-repeatable-3F","()",""],["root","Cardboard::Page","classes/Cardboard/Page.html#method-c-root","()",""],["root?","Cardboard::Page","classes/Cardboard/Page.html#method-i-root-3F","()",""],["seo","Cardboard::Page","classes/Cardboard/Page.html#method-i-seo","()","<p>SEO children inherit their parent’s SEO settings (these can be overwritten)\n"],["seo=","Cardboard::Page","classes/Cardboard/Page.html#method-i-seo-3D","(hash)",""],["show","PagesController","classes/PagesController.html#method-i-show","()",""],["siblings","Cardboard::Page","classes/Cardboard/Page.html#method-i-siblings","()",""],["slug=","Cardboard::Page","classes/Cardboard/Page.html#method-i-slug-3D","(value)","<p>overwritten setters/getters\n"],["split_path","Cardboard::Page","classes/Cardboard/Page.html#method-i-split_path","()",""],["subpart?","Cardboard::PagePart","classes/Cardboard/PagePart.html#method-i-subpart-3F","()",""],["type","Cardboard::Field","classes/Cardboard/Field.html#method-i-type","()",""],["type=","Cardboard::Field","classes/Cardboard/Field.html#method-i-type-3D","(val)","<p>overwritten setter\n"],["update","Cardboard::PagesController","classes/Cardboard/PagesController.html#method-i-update","()",""],["update","Cardboard::SettingsController","classes/Cardboard/SettingsController.html#method-i-update","()",""],["update","Cardboard::UsersController","classes/Cardboard/UsersController.html#method-i-update","()",""],["url","Cardboard::Page","classes/Cardboard/Page.html#method-i-url","()",""],["using_slug_backup=","Cardboard::Page","classes/Cardboard/Page.html#method-i-using_slug_backup-3D","(value)",""],["using_slug_backup?","Cardboard::Page","classes/Cardboard/Page.html#method-i-using_slug_backup-3F","()",""],["value","Cardboard::Field::Boolean","classes/Cardboard/Field/Boolean.html#method-i-value","()",""],["value","Cardboard::Field::Date","classes/Cardboard/Field/Date.html#method-i-value","()",""],["value","Cardboard::Field::Decimal","classes/Cardboard/Field/Decimal.html#method-i-value","()",""],["value","Cardboard::Field::Integer","classes/Cardboard/Field/Integer.html#method-i-value","()",""],["value=","Cardboard::Field::Boolean","classes/Cardboard/Field/Boolean.html#method-i-value-3D","(val)",""],["value=","Cardboard::Field::Date","classes/Cardboard/Field/Date.html#method-i-value-3D","(val)",""],["value=","Cardboard::Field::Decimal","classes/Cardboard/Field/Decimal.html#method-i-value-3D","(val)",""],["value=","Cardboard::Field::Integer","classes/Cardboard/Field/Integer.html#method-i-value-3D","(val)",""]]}}
@@ -0,0 +1,449 @@
1
+ Searchdoc = {};
2
+
3
+ // navigation.js ------------------------------------------
4
+
5
+ Searchdoc.Navigation = new function() {
6
+ this.initNavigation = function() {
7
+ var _this = this;
8
+
9
+ $(document).keydown(function(e) {
10
+ _this.onkeydown(e);
11
+ }).keyup(function(e) {
12
+ _this.onkeyup(e);
13
+ });
14
+
15
+ this.navigationActive = true;
16
+ }
17
+
18
+ this.setNavigationActive = function(state) {
19
+ this.navigationActive = state;
20
+ this.clearMoveTimeout();
21
+ }
22
+
23
+
24
+ this.onkeyup = function(e) {
25
+ if (!this.navigationActive) return;
26
+ switch(e.keyCode) {
27
+ case 37: //Event.KEY_LEFT:
28
+ case 38: //Event.KEY_UP:
29
+ case 39: //Event.KEY_RIGHT:
30
+ case 40: //Event.KEY_DOWN:
31
+ case 73: // i - qwerty
32
+ case 74: // j
33
+ case 75: // k
34
+ case 76: // l
35
+ case 67: // c - dvorak
36
+ case 72: // h
37
+ case 84: // t
38
+ case 78: // n
39
+ this.clearMoveTimeout();
40
+ break;
41
+ }
42
+ }
43
+
44
+ this.onkeydown = function(e) {
45
+ if (!this.navigationActive) return;
46
+ switch(e.keyCode) {
47
+ case 37: //Event.KEY_LEFT:
48
+ case 74: // j (qwerty)
49
+ case 72: // h (dvorak)
50
+ if (this.moveLeft()) e.preventDefault();
51
+ break;
52
+ case 38: //Event.KEY_UP:
53
+ case 73: // i (qwerty)
54
+ case 67: // c (dvorak)
55
+ if (e.keyCode == 38 || e.ctrlKey) {
56
+ if (this.moveUp()) e.preventDefault();
57
+ this.startMoveTimeout(false);
58
+ }
59
+ break;
60
+ case 39: //Event.KEY_RIGHT:
61
+ case 76: // l (qwerty)
62
+ case 78: // n (dvorak)
63
+ if (this.moveRight()) e.preventDefault();
64
+ break;
65
+ case 40: //Event.KEY_DOWN:
66
+ case 75: // k (qwerty)
67
+ case 84: // t (dvorak)
68
+ if (e.keyCode == 40 || e.ctrlKey) {
69
+ if (this.moveDown()) e.preventDefault();
70
+ this.startMoveTimeout(true);
71
+ }
72
+ break;
73
+ case 9: //Event.KEY_TAB:
74
+ case 13: //Event.KEY_RETURN:
75
+ if (this.$current) this.select(this.$current);
76
+ break;
77
+ case 83: // s (qwerty)
78
+ case 79: // o (dvorak)
79
+ if (e.ctrlKey) {
80
+ $('#search').focus();
81
+ e.preventDefault();
82
+ }
83
+ break;
84
+ }
85
+ if (e.ctrlKey && e.shiftKey) this.select(this.$current);
86
+ }
87
+
88
+ this.clearMoveTimeout = function() {
89
+ clearTimeout(this.moveTimeout);
90
+ this.moveTimeout = null;
91
+ }
92
+
93
+ this.startMoveTimeout = function(isDown) {
94
+ if (!$.browser.mozilla && !$.browser.opera) return;
95
+ if (this.moveTimeout) this.clearMoveTimeout();
96
+ var _this = this;
97
+
98
+ var go = function() {
99
+ if (!_this.moveTimeout) return;
100
+ _this[isDown ? 'moveDown' : 'moveUp']();
101
+ _this.moveTimout = setTimeout(go, 100);
102
+ }
103
+ this.moveTimeout = setTimeout(go, 200);
104
+ }
105
+
106
+ this.moveRight = function() {
107
+ }
108
+
109
+ this.moveLeft = function() {
110
+ }
111
+
112
+ this.move = function(isDown) {
113
+ }
114
+
115
+ this.moveUp = function() {
116
+ return this.move(false);
117
+ }
118
+
119
+ this.moveDown = function() {
120
+ return this.move(true);
121
+ }
122
+ }
123
+
124
+
125
+ // scrollIntoView.js --------------------------------------
126
+
127
+ function scrollIntoView(element, view) {
128
+ var offset, viewHeight, viewScroll, height;
129
+ offset = element.offsetTop;
130
+ height = element.offsetHeight;
131
+ viewHeight = view.offsetHeight;
132
+ viewScroll = view.scrollTop;
133
+ if (offset - viewScroll + height > viewHeight) {
134
+ view.scrollTop = offset - viewHeight + height;
135
+ }
136
+ if (offset < viewScroll) {
137
+ view.scrollTop = offset;
138
+ }
139
+ }
140
+
141
+ // panel.js -----------------------------------------------
142
+
143
+ Searchdoc.Panel = function(element, data, tree, frame) {
144
+ this.$element = $(element);
145
+ this.$input = $('input', element).eq(0);
146
+ this.$result = $('.result ul', element).eq(0);
147
+ this.frame = frame;
148
+ this.$current = null;
149
+ this.$view = this.$result.parent();
150
+ this.data = data;
151
+ this.searcher = new Searcher(data.index);
152
+
153
+ this.tree = new Searchdoc.Tree($('.tree', element), tree, this);
154
+ this.init();
155
+ }
156
+
157
+ Searchdoc.Panel.prototype = $.extend({}, Searchdoc.Navigation, new function() {
158
+ var suid = 1;
159
+
160
+ this.init = function() {
161
+ var _this = this;
162
+ var observer = function() {
163
+ _this.search(_this.$input[0].value);
164
+ };
165
+ this.$input.keyup(observer);
166
+ this.$input.click(observer); // mac's clear field
167
+
168
+ this.searcher.ready(function(results, isLast) {
169
+ _this.addResults(results, isLast);
170
+ })
171
+
172
+ this.$result.click(function(e) {
173
+ _this.$current.removeClass('current');
174
+ _this.$current = $(e.target).closest('li').addClass('current');
175
+ _this.select();
176
+ _this.$input.focus();
177
+ });
178
+
179
+ this.initNavigation();
180
+ this.setNavigationActive(false);
181
+ }
182
+
183
+ this.search = function(value, selectFirstMatch) {
184
+ value = jQuery.trim(value).toLowerCase();
185
+ this.selectFirstMatch = selectFirstMatch;
186
+ if (value) {
187
+ this.$element.removeClass('panel_tree').addClass('panel_results');
188
+ this.tree.setNavigationActive(false);
189
+ this.setNavigationActive(true);
190
+ } else {
191
+ this.$element.addClass('panel_tree').removeClass('panel_results');
192
+ this.tree.setNavigationActive(true);
193
+ this.setNavigationActive(false);
194
+ }
195
+ if (value != this.lastQuery) {
196
+ this.lastQuery = value;
197
+ this.firstRun = true;
198
+ this.searcher.find(value);
199
+ }
200
+ }
201
+
202
+ this.addResults = function(results, isLast) {
203
+ var target = this.$result.get(0);
204
+ if (this.firstRun && (results.length > 0 || isLast)) {
205
+ this.$current = null;
206
+ this.$result.empty();
207
+ }
208
+ for (var i=0, l = results.length; i < l; i++) {
209
+ target.appendChild(renderItem.call(this, results[i]));
210
+ };
211
+ if (this.firstRun && results.length > 0) {
212
+ this.firstRun = false;
213
+ this.$current = $(target.firstChild);
214
+ this.$current.addClass('current');
215
+ if (this.selectFirstMatch) this.select();
216
+ scrollIntoView(this.$current[0], this.$view[0])
217
+ }
218
+ if (jQuery.browser.msie) this.$element[0].className += '';
219
+ }
220
+
221
+ this.open = function(src) {
222
+ this.frame.location.href = '../' + src;
223
+ if (this.frame.highlight) this.frame.highlight(src);
224
+ }
225
+
226
+ this.select = function() {
227
+ this.open(this.$current.data('path'));
228
+ }
229
+
230
+ this.move = function(isDown) {
231
+ if (!this.$current) return;
232
+ var $next = this.$current[isDown ? 'next' : 'prev']();
233
+ if ($next.length) {
234
+ this.$current.removeClass('current');
235
+ $next.addClass('current');
236
+ scrollIntoView($next[0], this.$view[0]);
237
+ this.$current = $next;
238
+ }
239
+ return true;
240
+ }
241
+
242
+ function renderItem(result) {
243
+ var li = document.createElement('li'),
244
+ html = '', badge = result.badge;
245
+ html += '<h1>' + hlt(result.title);
246
+ if (result.params) html += '<i>' + result.params + '</i>';
247
+ html += '</h1>';
248
+ html += '<p>';
249
+ if (typeof badge != 'undefined') {
250
+ html += '<span class="badge badge_' + (badge % 6 + 1) + '">' + escapeHTML(this.data.badges[badge] || 'unknown') + '</span>';
251
+ }
252
+ html += hlt(result.namespace) + '</p>';
253
+ if (result.snippet) html += '<p class="snippet">' + escapeHTML(result.snippet) + '</p>';
254
+ li.innerHTML = html;
255
+ jQuery.data(li, 'path', result.path);
256
+ return li;
257
+ }
258
+
259
+ function hlt(html) {
260
+ return escapeHTML(html).replace(/\u0001/g, '<b>').replace(/\u0002/g, '</b>')
261
+ }
262
+
263
+ function escapeHTML(html) {
264
+ return html.replace(/[&<>]/g, function(c) {
265
+ return '&#' + c.charCodeAt(0) + ';';
266
+ });
267
+ }
268
+
269
+ });
270
+
271
+ // tree.js ------------------------------------------------
272
+
273
+ Searchdoc.Tree = function(element, tree, panel) {
274
+ this.$element = $(element);
275
+ this.$list = $('ul', element);
276
+ this.tree = tree;
277
+ this.panel = panel;
278
+ this.init();
279
+ }
280
+
281
+ Searchdoc.Tree.prototype = $.extend({}, Searchdoc.Navigation, new function() {
282
+ this.init = function() {
283
+ var stopper = document.createElement('li');
284
+ stopper.className = 'stopper';
285
+ this.$list[0].appendChild(stopper);
286
+ for (var i=0, l = this.tree.length; i < l; i++) {
287
+ buildAndAppendItem.call(this, this.tree[i], 0, stopper);
288
+ };
289
+ var _this = this;
290
+ this.$list.click(function(e) {
291
+ var $target = $(e.target),
292
+ $li = $target.closest('li');
293
+ if ($target.hasClass('icon')) {
294
+ _this.toggle($li);
295
+ } else {
296
+ _this.select($li);
297
+ }
298
+ })
299
+
300
+ this.initNavigation();
301
+ if (jQuery.browser.msie) document.body.className += '';
302
+ }
303
+
304
+ this.select = function($li) {
305
+ this.highlight($li);
306
+ var path = $li[0].searchdoc_tree_data.path;
307
+ if (path) this.panel.open(path);
308
+ }
309
+
310
+ this.highlight = function($li) {
311
+ if (this.$current) this.$current.removeClass('current');
312
+ this.$current = $li.addClass('current');
313
+ }
314
+
315
+ this.toggle = function($li) {
316
+ var closed = !$li.hasClass('closed'),
317
+ children = $li[0].searchdoc_tree_data.children;
318
+ $li.toggleClass('closed');
319
+ for (var i=0, l = children.length; i < l; i++) {
320
+ toggleVis.call(this, $(children[i].li), !closed);
321
+ };
322
+ }
323
+
324
+ this.moveRight = function() {
325
+ if (!this.$current) {
326
+ this.highlight(this.$list.find('li:first'));
327
+ return;
328
+ }
329
+ if (this.$current.hasClass('closed')) {
330
+ this.toggle(this.$current);
331
+ }
332
+ }
333
+
334
+ this.moveLeft = function() {
335
+ if (!this.$current) {
336
+ this.highlight(this.$list.find('li:first'));
337
+ return;
338
+ }
339
+ if (!this.$current.hasClass('closed')) {
340
+ this.toggle(this.$current);
341
+ } else {
342
+ var level = this.$current[0].searchdoc_tree_data.level;
343
+ if (level == 0) return;
344
+ var $next = this.$current.prevAll('li.level_' + (level - 1) + ':visible:first');
345
+ this.$current.removeClass('current');
346
+ $next.addClass('current');
347
+ scrollIntoView($next[0], this.$element[0]);
348
+ this.$current = $next;
349
+ }
350
+ }
351
+
352
+ this.move = function(isDown) {
353
+ if (!this.$current) {
354
+ this.highlight(this.$list.find('li:first'));
355
+ return true;
356
+ }
357
+ var next = this.$current[0];
358
+ if (isDown) {
359
+ do {
360
+ next = next.nextSibling;
361
+ if (next && next.style && next.style.display != 'none') break;
362
+ } while(next);
363
+ } else {
364
+ do {
365
+ next = next.previousSibling;
366
+ if (next && next.style && next.style.display != 'none') break;
367
+ } while(next);
368
+ }
369
+ if (next && next.className.indexOf('stopper') == -1) {
370
+ this.$current.removeClass('current');
371
+ $(next).addClass('current');
372
+ scrollIntoView(next, this.$element[0]);
373
+ this.$current = $(next);
374
+ }
375
+ return true;
376
+ }
377
+
378
+ function toggleVis($li, show) {
379
+ var closed = $li.hasClass('closed'),
380
+ children = $li[0].searchdoc_tree_data.children;
381
+ $li.css('display', show ? '' : 'none')
382
+ if (!show && this.$current && $li[0] == this.$current[0]) {
383
+ this.$current.removeClass('current');
384
+ this.$current = null;
385
+ }
386
+ for (var i=0, l = children.length; i < l; i++) {
387
+ toggleVis.call(this, $(children[i].li), show && !closed);
388
+ };
389
+ }
390
+
391
+ function buildAndAppendItem(item, level, before) {
392
+ var li = renderItem(item, level),
393
+ list = this.$list[0];
394
+ item.li = li;
395
+ list.insertBefore(li, before);
396
+ for (var i=0, l = item[3].length; i < l; i++) {
397
+ buildAndAppendItem.call(this, item[3][i], level + 1, before);
398
+ };
399
+ return li;
400
+ }
401
+
402
+ function renderItem(item, level) {
403
+ var li = document.createElement('li'),
404
+ cnt = document.createElement('div'),
405
+ h1 = document.createElement('h1'),
406
+ p = document.createElement('p'),
407
+ icon, i;
408
+
409
+ li.appendChild(cnt);
410
+ li.style.paddingLeft = getOffset(level);
411
+ cnt.className = 'content';
412
+ if (!item[1]) li.className = 'empty ';
413
+ cnt.appendChild(h1);
414
+ // cnt.appendChild(p);
415
+ h1.appendChild(document.createTextNode(item[0]));
416
+ // p.appendChild(document.createTextNode(item[4]));
417
+ if (item[2]) {
418
+ i = document.createElement('i');
419
+ i.appendChild(document.createTextNode(item[2]));
420
+ h1.appendChild(i);
421
+ }
422
+ if (item[3].length > 0) {
423
+ icon = document.createElement('div');
424
+ icon.className = 'icon';
425
+ cnt.appendChild(icon);
426
+ }
427
+
428
+ // user direct assignement instead of $()
429
+ // it's 8x faster
430
+ // $(li).data('path', item[1])
431
+ // .data('children', item[3])
432
+ // .data('level', level)
433
+ // .css('display', level == 0 ? '' : 'none')
434
+ // .addClass('level_' + level)
435
+ // .addClass('closed');
436
+ li.searchdoc_tree_data = {
437
+ path: item[1],
438
+ children: item[3],
439
+ level: level
440
+ }
441
+ li.style.display = level == 0 ? '' : 'none';
442
+ li.className += 'level_' + level + ' closed';
443
+ return li;
444
+ }
445
+
446
+ function getOffset(level) {
447
+ return 5 + 18*level + 'px';
448
+ }
449
+ });