constructor-pages 0.7.0 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (352) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +13 -0
  5. data/.yardopts +9 -0
  6. data/Gemfile +31 -0
  7. data/Guardfile +15 -0
  8. data/LICENSE.md +7 -0
  9. data/README.md +35 -0
  10. data/Rakefile +19 -0
  11. data/bin/rails +8 -0
  12. data/config.ru +4 -0
  13. data/config/routes.rb +4 -27
  14. data/constructor-cms.gemspec +26 -0
  15. data/core/app/assets/images/constructor_core/glyphicons-halflings-white.png +0 -0
  16. data/core/app/assets/images/constructor_core/glyphicons-halflings.png +0 -0
  17. data/core/app/assets/images/constructor_core/minus.gif +0 -0
  18. data/core/app/assets/images/constructor_core/plus.gif +0 -0
  19. data/core/app/assets/images/constructor_core/rss.png +0 -0
  20. data/core/app/assets/images/constructor_core/treeview-black-line.gif +0 -0
  21. data/core/app/assets/images/constructor_core/treeview-black.gif +0 -0
  22. data/core/app/assets/images/constructor_core/treeview-default-line.gif +0 -0
  23. data/core/app/assets/images/constructor_core/treeview-default.gif +0 -0
  24. data/core/app/assets/images/constructor_core/treeview-famfamfam-line.gif +0 -0
  25. data/core/app/assets/images/constructor_core/treeview-famfamfam.gif +0 -0
  26. data/core/app/assets/images/constructor_core/treeview-gray-line.gif +0 -0
  27. data/core/app/assets/images/constructor_core/treeview-gray.gif +0 -0
  28. data/core/app/assets/images/constructor_core/treeview-red-line.gif +0 -0
  29. data/core/app/assets/images/constructor_core/treeview-red.gif +0 -0
  30. data/core/app/assets/images/constructor_core/twitter.png +0 -0
  31. data/core/app/assets/images/constructor_core/widgets.png +0 -0
  32. data/core/app/assets/javascripts/constructor_core/application.js.coffee +52 -0
  33. data/core/app/assets/javascripts/constructor_core/bootstrap.js +2276 -0
  34. data/core/app/assets/javascripts/constructor_core/jquery.cookie.js +92 -0
  35. data/core/app/assets/javascripts/constructor_core/jquery_bundle.js.coffee +3 -0
  36. data/core/app/assets/javascripts/constructor_core/keys_snippet.js +33 -0
  37. data/core/app/assets/javascripts/constructor_core/retina.js +148 -0
  38. data/core/app/assets/javascripts/constructor_core/urlify.js +82 -0
  39. data/core/app/assets/stylesheets/constructor_core/application.css.scss +3 -0
  40. data/core/app/assets/stylesheets/constructor_core/main.css.scss +229 -0
  41. data/core/app/controllers/constructor_core/application_controller.rb +31 -0
  42. data/core/app/controllers/constructor_core/sessions_controller.rb +15 -0
  43. data/core/app/controllers/constructor_core/users_controller.rb +24 -0
  44. data/core/app/helpers/constructor_core/application_helper.rb +9 -0
  45. data/core/app/models/constructor_core/user.rb +7 -0
  46. data/core/app/views/constructor_core/devise/confirmations/new.html.haml +10 -0
  47. data/core/app/views/constructor_core/devise/mailer/confirmation_instructions.html.haml +5 -0
  48. data/core/app/views/constructor_core/devise/mailer/reset_password_instructions.html.haml +7 -0
  49. data/core/app/views/constructor_core/devise/mailer/unlock_instructions.html.haml +5 -0
  50. data/core/app/views/constructor_core/devise/passwords/edit.html.haml +21 -0
  51. data/core/app/views/constructor_core/devise/passwords/new.html.haml +13 -0
  52. data/core/app/views/constructor_core/devise/registrations/edit.html.haml +28 -0
  53. data/core/app/views/constructor_core/devise/registrations/new.html.haml +20 -0
  54. data/core/app/views/constructor_core/devise/shared/_links.html.haml +19 -0
  55. data/core/app/views/constructor_core/devise/unlocks/new.html.haml +9 -0
  56. data/core/app/views/constructor_core/sessions/new.html.haml +22 -0
  57. data/core/app/views/constructor_core/users/profile.haml +16 -0
  58. data/core/app/views/layouts/constructor_core/application.haml +93 -0
  59. data/core/config/environments/production.rb +3 -0
  60. data/core/config/initializers/devise.rb +15 -0
  61. data/core/config/locales/devise.en.yml +56 -0
  62. data/core/config/locales/devise.fr.yml +74 -0
  63. data/core/config/locales/devise.ru.yml +52 -0
  64. data/core/config/locales/en.yml +15 -0
  65. data/core/config/locales/fr.yml +15 -0
  66. data/core/config/locales/ru.yml +27 -0
  67. data/core/config/routes.rb +18 -0
  68. data/core/constructor-core.gemspec +24 -0
  69. data/core/db/migrate/1_devise_users.rb +24 -0
  70. data/core/db/migrate/2_add_default_user.rb +9 -0
  71. data/core/lib/constructor-core.rb +25 -0
  72. data/core/lib/constructor_core/engine.rb +6 -0
  73. data/core/lib/constructor_core/version.rb +3 -0
  74. data/{spec/helpers/constructor_pages/.keep → core/vendor/assets/javascripts/.gitkeep} +0 -0
  75. data/core/vendor/assets/javascripts/ckeditor/ckeditor.js +913 -0
  76. data/core/vendor/assets/javascripts/ckeditor/config.js +38 -0
  77. data/core/vendor/assets/javascripts/ckeditor/lang/en.js +5 -0
  78. data/core/vendor/assets/javascripts/ckeditor/lang/ru.js +5 -0
  79. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +10 -0
  80. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +25 -0
  81. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +9 -0
  82. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +9 -0
  83. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +9 -0
  84. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +10 -0
  85. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +9 -0
  86. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +9 -0
  87. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +10 -0
  88. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +10 -0
  89. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +9 -0
  90. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +10 -0
  91. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +10 -0
  92. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +9 -0
  93. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +9 -0
  94. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +10 -0
  95. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +10 -0
  96. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +9 -0
  97. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +9 -0
  98. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +9 -0
  99. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +9 -0
  100. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +9 -0
  101. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +10 -0
  102. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +9 -0
  103. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +9 -0
  104. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +10 -0
  105. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +9 -0
  106. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +10 -0
  107. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +9 -0
  108. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +9 -0
  109. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +9 -0
  110. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +10 -0
  111. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +9 -0
  112. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +10 -0
  113. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +9 -0
  114. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +9 -0
  115. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +9 -0
  116. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +9 -0
  117. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +10 -0
  118. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +9 -0
  119. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +10 -0
  120. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +9 -0
  121. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +10 -0
  122. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +9 -0
  123. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +9 -0
  124. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +9 -0
  125. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +7 -0
  126. data/core/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +6 -0
  127. data/core/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  128. data/core/vendor/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +11 -0
  129. data/core/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +13 -0
  130. data/core/vendor/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  131. data/core/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +9 -0
  132. data/core/vendor/assets/javascripts/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
  133. data/core/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +24 -0
  134. data/core/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
  135. data/core/vendor/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +10 -0
  136. data/core/vendor/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  137. data/core/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +43 -0
  138. data/core/vendor/assets/javascripts/ckeditor/plugins/image/images/noimage.png +0 -0
  139. data/core/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +8 -0
  140. data/core/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +36 -0
  141. data/core/vendor/assets/javascripts/ckeditor/plugins/link/images/anchor.png +0 -0
  142. data/core/vendor/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +10 -0
  143. data/core/vendor/assets/javascripts/ckeditor/plugins/magicline/images/icon.png +0 -0
  144. data/core/vendor/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +31 -0
  145. data/core/vendor/assets/javascripts/ckeditor/plugins/preview/preview.html +10 -0
  146. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/LICENSE.md +28 -0
  147. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/README.md +25 -0
  148. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +20 -0
  149. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  150. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  151. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  152. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  153. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  154. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  155. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  156. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  157. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  158. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  159. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  160. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  161. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +20 -0
  162. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ca.js +13 -0
  163. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cs.js +13 -0
  164. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cy.js +14 -0
  165. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/de.js +13 -0
  166. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/el.js +13 -0
  167. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/en.js +13 -0
  168. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/eo.js +12 -0
  169. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/et.js +13 -0
  170. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fa.js +12 -0
  171. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fi.js +13 -0
  172. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fr.js +11 -0
  173. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/he.js +13 -0
  174. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/hr.js +13 -0
  175. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/it.js +14 -0
  176. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ku.js +13 -0
  177. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/lv.js +13 -0
  178. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nb.js +11 -0
  179. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nl.js +13 -0
  180. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/no.js +11 -0
  181. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pl.js +12 -0
  182. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +11 -0
  183. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sk.js +13 -0
  184. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sv.js +11 -0
  185. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/th.js +13 -0
  186. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/tr.js +12 -0
  187. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ug.js +13 -0
  188. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +9 -0
  189. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +14 -0
  190. data/core/vendor/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +21 -0
  191. data/core/vendor/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +16 -0
  192. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.css +84 -0
  193. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +10 -0
  194. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/default.js +6 -0
  195. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  196. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  197. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  198. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/LICENSE.md +28 -0
  199. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/README.md +25 -0
  200. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +49 -0
  201. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +52 -0
  202. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +82 -0
  203. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +11 -0
  204. data/core/vendor/assets/javascripts/ckeditor/styles.js +111 -0
  205. data/{spec/routing/constructor_pages/.keep → core/vendor/assets/stylesheets/.gitkeep} +0 -0
  206. data/core/vendor/assets/stylesheets/ckeditor/contents.css +103 -0
  207. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog.css +5 -0
  208. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie.css +5 -0
  209. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie7.css +5 -0
  210. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie8.css +5 -0
  211. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_opera.css +5 -0
  212. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor.css +5 -0
  213. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_gecko.css +5 -0
  214. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie.css +5 -0
  215. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie7.css +5 -0
  216. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie8.css +5 -0
  217. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/icons.png +0 -0
  218. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/arrow.png +0 -0
  219. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/close.png +0 -0
  220. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/mini.png +0 -0
  221. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/readme.md +51 -0
  222. data/lib/constructor-cms.rb +3 -0
  223. data/lib/constructor-cms/engine.rb +6 -0
  224. data/{app → pages/app}/assets/images/constructor_pages/arrow_down.png +0 -0
  225. data/{app → pages/app}/assets/images/constructor_pages/arrow_up.png +0 -0
  226. data/{app → pages/app}/assets/images/constructor_pages/information.png +0 -0
  227. data/{app → pages/app}/assets/images/constructor_pages/page_white_edit.png +0 -0
  228. data/{app → pages/app}/assets/images/constructor_pages/photos.png +0 -0
  229. data/{app → pages/app}/assets/javascripts/constructor_pages/ajax_pages.js +0 -0
  230. data/{app → pages/app}/assets/javascripts/constructor_pages/jquery.history.js +0 -0
  231. data/{app → pages/app}/controllers/constructor_pages/application_controller.rb +0 -0
  232. data/{app → pages/app}/controllers/constructor_pages/fields_controller.rb +10 -15
  233. data/{app → pages/app}/controllers/constructor_pages/pages_controller.rb +0 -0
  234. data/{app → pages/app}/controllers/constructor_pages/templates_controller.rb +0 -0
  235. data/pages/app/helpers/constructor_pages/code_name_uniq.rb +7 -0
  236. data/{app → pages/app}/helpers/constructor_pages/fields_helper.rb +0 -0
  237. data/{app → pages/app}/helpers/constructor_pages/pages_helper.rb +0 -0
  238. data/{app → pages/app}/helpers/constructor_pages/templates_helper.rb +0 -0
  239. data/{app → pages/app}/helpers/constructor_pages/treeview_helper.rb +0 -0
  240. data/{app → pages/app}/models/constructor_pages/field.rb +12 -40
  241. data/{app → pages/app}/models/constructor_pages/page.rb +26 -70
  242. data/{app → pages/app}/models/constructor_pages/template.rb +4 -12
  243. data/{app → pages/app}/models/constructor_pages/types/boolean_type.rb +0 -0
  244. data/{app → pages/app}/models/constructor_pages/types/date_type.rb +0 -0
  245. data/{app → pages/app}/models/constructor_pages/types/float_type.rb +0 -0
  246. data/{app → pages/app}/models/constructor_pages/types/html_type.rb +0 -0
  247. data/{app → pages/app}/models/constructor_pages/types/image_type.rb +0 -0
  248. data/{app → pages/app}/models/constructor_pages/types/integer_type.rb +0 -0
  249. data/{app → pages/app}/models/constructor_pages/types/string_type.rb +0 -0
  250. data/{app → pages/app}/models/constructor_pages/types/text_type.rb +0 -0
  251. data/{app → pages/app}/views/constructor_pages/fields/_form.haml +0 -0
  252. data/{app → pages/app}/views/constructor_pages/fields/edit.haml +0 -0
  253. data/{app → pages/app}/views/constructor_pages/fields/new.haml +0 -0
  254. data/{app → pages/app}/views/constructor_pages/fields/types/_boolean.haml +0 -0
  255. data/{app → pages/app}/views/constructor_pages/fields/types/_date.haml +0 -0
  256. data/{app → pages/app}/views/constructor_pages/fields/types/_float.haml +0 -0
  257. data/{app → pages/app}/views/constructor_pages/fields/types/_html.haml +0 -0
  258. data/{app → pages/app}/views/constructor_pages/fields/types/_image.haml +0 -0
  259. data/{app → pages/app}/views/constructor_pages/fields/types/_integer.haml +0 -0
  260. data/{app → pages/app}/views/constructor_pages/fields/types/_string.haml +0 -0
  261. data/{app → pages/app}/views/constructor_pages/fields/types/_text.haml +0 -0
  262. data/{app → pages/app}/views/constructor_pages/pages/_breadcrumbs.haml +0 -0
  263. data/{app → pages/app}/views/constructor_pages/pages/_form.haml +0 -0
  264. data/{app → pages/app}/views/constructor_pages/pages/_menu.haml +0 -0
  265. data/{app → pages/app}/views/constructor_pages/pages/_submenu.haml +0 -0
  266. data/{app → pages/app}/views/constructor_pages/pages/edit.haml +0 -0
  267. data/{app → pages/app}/views/constructor_pages/pages/index.haml +0 -0
  268. data/{app → pages/app}/views/constructor_pages/pages/new.haml +0 -0
  269. data/{app → pages/app}/views/constructor_pages/pages/show.haml +0 -0
  270. data/{app → pages/app}/views/constructor_pages/partials/_arrow_buttons.haml +0 -0
  271. data/{app → pages/app}/views/constructor_pages/templates/_form.haml +0 -0
  272. data/{app → pages/app}/views/constructor_pages/templates/edit.haml +0 -0
  273. data/{app → pages/app}/views/constructor_pages/templates/index.haml +0 -0
  274. data/{app → pages/app}/views/constructor_pages/templates/new.haml +0 -0
  275. data/{config → pages/config}/initializers/dragonfly.rb +0 -0
  276. data/{config → pages/config}/locales/en.yml +0 -0
  277. data/{config → pages/config}/locales/fr.yml +0 -0
  278. data/{config → pages/config}/locales/ru.yml +0 -0
  279. data/pages/config/routes.rb +26 -0
  280. data/{constructor-pages.gemspec → pages/constructor-pages.gemspec} +0 -0
  281. data/{db → pages/db}/migrate/10_create_html_types.rb +0 -0
  282. data/{db → pages/db}/migrate/11_create_image_types.rb +0 -0
  283. data/{db → pages/db}/migrate/12_add_default_template.rb +0 -0
  284. data/{db → pages/db}/migrate/1_create_pages.rb +0 -0
  285. data/{db → pages/db}/migrate/2_create_templates.rb +0 -0
  286. data/{db → pages/db}/migrate/3_create_fields.rb +0 -0
  287. data/{db → pages/db}/migrate/4_create_string_types.rb +0 -0
  288. data/{db → pages/db}/migrate/5_create_float_types.rb +0 -0
  289. data/{db → pages/db}/migrate/6_create_boolean_types.rb +0 -0
  290. data/{db → pages/db}/migrate/7_create_integer_types.rb +0 -0
  291. data/{db → pages/db}/migrate/8_create_text_types.rb +0 -0
  292. data/{db → pages/db}/migrate/9_create_date_types.rb +0 -0
  293. data/{lib → pages/lib}/constructor-pages.rb +0 -0
  294. data/{lib → pages/lib}/constructor_pages/engine.rb +0 -0
  295. data/{public → pages/public}/hello.txt +0 -0
  296. data/{spec/features/constructor_pages/fields_controller_spec.rb → pages/spec/features/constructor_pages/fields_spec.rb} +0 -0
  297. data/{spec/features/constructor_pages/pages_controller_spec.rb → pages/spec/features/constructor_pages/pages_spec.rb} +0 -0
  298. data/{spec/features/constructor_pages/templates_controller_spec.rb → pages/spec/features/constructor_pages/templates_spec.rb} +0 -0
  299. data/pages/spec/helpers/constructor_pages/.keep +0 -0
  300. data/{spec/models/constructor_pages/field_model_spec.rb → pages/spec/models/constructor_pages/field_spec.rb} +0 -0
  301. data/{spec/models/constructor_pages/page_model_spec.rb → pages/spec/models/constructor_pages/page_spec.rb} +2 -1
  302. data/{spec/models/constructor_pages/template_model_spec.rb → pages/spec/models/constructor_pages/template_spec.rb} +0 -0
  303. data/{spec/models/constructor_pages/types/boolean_type_model_spec.rb → pages/spec/models/constructor_pages/types/boolean_type_spec.rb} +0 -0
  304. data/{spec/models/constructor_pages/types/date_type_model_spec.rb → pages/spec/models/constructor_pages/types/date_type_spec.rb} +0 -0
  305. data/{spec/models/constructor_pages/types/float_type_model_spec.rb → pages/spec/models/constructor_pages/types/float_type_spec.rb} +0 -0
  306. data/{spec/models/constructor_pages/types/html_type_model_spec.rb → pages/spec/models/constructor_pages/types/html_type_spec.rb} +0 -0
  307. data/{spec/models/constructor_pages/types/integer_type_model_spec.rb → pages/spec/models/constructor_pages/types/integer_type_spec.rb} +0 -0
  308. data/{spec/models/constructor_pages/types/string_type_model_spec.rb → pages/spec/models/constructor_pages/types/string_type_spec.rb} +0 -0
  309. data/{spec/models/constructor_pages/types/text_type_model_spec.rb → pages/spec/models/constructor_pages/types/text_type_spec.rb} +0 -0
  310. data/pages/spec/routing/constructor_pages/.keep +0 -0
  311. data/spec/dummy/README.rdoc +28 -0
  312. data/spec/dummy/Rakefile +6 -0
  313. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  314. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  315. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  316. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  317. data/spec/dummy/app/mailers/.gitkeep +0 -0
  318. data/spec/dummy/app/models/.gitkeep +0 -0
  319. data/spec/dummy/app/views/html_templates/page.haml +1 -0
  320. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  321. data/spec/dummy/bin/bundle +3 -0
  322. data/spec/dummy/bin/rails +4 -0
  323. data/spec/dummy/bin/rake +4 -0
  324. data/spec/dummy/config.ru +4 -0
  325. data/spec/dummy/config/application.rb +23 -0
  326. data/spec/dummy/config/boot.rb +5 -0
  327. data/spec/dummy/config/database.yml +25 -0
  328. data/spec/dummy/config/environment.rb +5 -0
  329. data/spec/dummy/config/environments/development.rb +29 -0
  330. data/spec/dummy/config/environments/production.rb +80 -0
  331. data/spec/dummy/config/environments/test.rb +36 -0
  332. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  333. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  334. data/spec/dummy/config/initializers/inflections.rb +16 -0
  335. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  336. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  337. data/spec/dummy/config/initializers/session_store.rb +3 -0
  338. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  339. data/spec/dummy/config/locales/en.yml +5 -0
  340. data/spec/dummy/config/routes.rb +3 -0
  341. data/spec/dummy/lib/assets/.gitkeep +0 -0
  342. data/spec/dummy/lib/tasks/.gitkeep +0 -0
  343. data/spec/dummy/log/.gitkeep +0 -0
  344. data/spec/dummy/public/404.html +58 -0
  345. data/spec/dummy/public/422.html +58 -0
  346. data/spec/dummy/public/500.html +57 -0
  347. data/spec/dummy/public/favicon.ico +0 -0
  348. data/spec/dummy/public/robots.txt +5 -0
  349. data/spec/spec_helper.rb +46 -0
  350. data/tasks/constructor-cms_tasks.rake +15 -0
  351. metadata +397 -107
  352. data/app/helpers/constructor_pages/code_name_uniq.rb +0 -9
@@ -2,14 +2,14 @@
2
2
 
3
3
  module ConstructorPages
4
4
  # Field model. Fields allows to add custom fields for template.
5
- #
6
5
  # Each field has type of value such as float, integer, string...
7
6
  class Field < ActiveRecord::Base
8
7
  # Adding code_name_uniqueness method
9
8
  include CodeNameUniq
10
9
 
11
10
  # Array of available field types
12
- TYPES = %w{string integer float boolean text date html image}
11
+ TYPES = %w{string integer float boolean text date html image}.tap {|_t|
12
+ _t.each {|t| class_eval %{has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'}}}
13
13
 
14
14
  validates_presence_of :name
15
15
  validates_uniqueness_of :code_name, scope: :template_id
@@ -18,25 +18,17 @@ module ConstructorPages
18
18
  after_create :create_page_fields
19
19
  after_destroy :destroy_all_page_fields
20
20
 
21
- belongs_to :template
22
-
23
- # Adding has_many for all field types
24
- TYPES.each do |t|
25
- class_eval %{
26
- has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'
27
- }
28
- end
29
-
30
21
  has_many :pages, through: :template
22
+ belongs_to :template
31
23
 
32
- acts_as_list scope: :template_id
24
+ acts_as_list scope: :template_id
33
25
  default_scope -> { order :position }
34
26
 
35
27
  # Return constant of model type_value
36
28
  def type_class; "constructor_pages/types/#{type_value}_type".classify.constantize end
37
29
 
38
30
  # Return object of type_value by page
39
- def find_type_object(page); type_class.where(field_id: id, page_id: page.id).first end
31
+ def find_type_object(page); type_class.find_by(field_id: id, page_id: page.id) end
40
32
 
41
33
  # Create object of type_value by page
42
34
  def create_type_object(page); type_class.create(field_id: id, page_id: page.id) end
@@ -45,43 +37,23 @@ module ConstructorPages
45
37
  def remove_type_object(page); find_type_object(page).destroy end
46
38
 
47
39
  # Get value from type_field for specified page
48
- def get_value_for(page)
49
- _type_object = find_type_object(page)
50
- _type_object ? _type_object.value : nil
51
- end
40
+ def get_value_for(page); find_type_object(page).tap {|t| return t && t.value} end
52
41
 
53
42
  # Set value type_field for specified page
54
- def set_value_for(page, value)
55
- _type_object = find_type_object(page)
56
-
57
- if _type_object
58
- _type_object.value = value
59
- _type_object.save!
60
- end
61
- end
43
+ def set_value_for(page, value); find_type_object(page).tap {|t| t || return; t.update value: value} end
62
44
 
63
45
  private
64
46
 
65
47
  # Check if there is code_name in template branch
66
48
  def check_code_name(code_name)
67
- [code_name.pluralize, code_name.singularize].each do |name|
68
- %w{self_and_ancestors descendants}.each do |m|
69
- if template.send(m).map{|t| t.code_name}.include?(name)
70
- return false
71
- end
72
- end
73
- end
74
-
49
+ [code_name.pluralize, code_name.singularize].each {|name|
50
+ %w{self_and_ancestors descendants}.each {|m|
51
+ return false if template.send(m).map(&:code_name).include?(name)}}
75
52
  true
76
53
  end
77
54
 
78
55
  # Create and destroy page fields
79
- %w{create destroy_all}.each do |m|
80
- class_eval %{
81
- def #{m}_page_fields
82
- template.pages.each {|page| type_class.#{m} page_id: page.id, field_id: id}
83
- end
84
- }
85
- end
56
+ %w{create destroy_all}.each {|m| class_eval %{
57
+ def #{m}_page_fields; template.pages.each {|page| type_class.#{m} page_id: page.id, field_id: id} end }}
86
58
  end
87
59
  end
@@ -5,11 +5,10 @@ module ConstructorPages
5
5
  class Page < ActiveRecord::Base
6
6
  # Adding has_many for all field types
7
7
  Field::TYPES.each do |t|
8
- class_eval %{ has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'}
8
+ class_eval %{has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'}
9
9
  end
10
10
 
11
11
  has_many :fields, through: :template
12
-
13
12
  belongs_to :template
14
13
 
15
14
  default_scope -> { order :lft }
@@ -48,31 +47,12 @@ module ConstructorPages
48
47
  end
49
48
 
50
49
  def search(what_search = nil)
51
- if @where_search
52
- if @where_search.is_a?(String)
53
- _page = Page.find_by full_url: @where_search
54
- elsif @where_search.is_a?(Page)
55
- _page = @where_search
56
- end
57
-
58
- @result = _page ? _page.descendants : []
59
- else
60
- @result = Page.all
61
- end
62
-
63
- if what_search
64
- _template = Template.find_by code_name: what_search.to_s.singularize.downcase
65
- @result = _template ? @result.where(template: _template) : []
66
- end
67
-
68
- if @params_search
69
- @params_search.each_pair do |k, v|
70
- @result = @result.select { |p| p.send(k) == v }
71
- end
72
- end
73
-
50
+ (@where_search.is_a?(String) ? Page.find_by(full_url: @where_search) : @where_search)
51
+ .tap {|p| @result = @where_search ? p ? p.descendants : [] : Page.all }
52
+ what_search && Template.find_by(code_name: what_search.to_s.singularize.downcase)
53
+ .tap {|t| @result = t ? @result.where(template: t) : [] }
54
+ @params_search && @params_search.each_pair {|k,v| @result = @result.select {|p| p.send(k) == v}}
74
55
  @where_search = @params_search = nil
75
-
76
56
  @result
77
57
  end
78
58
 
@@ -84,6 +64,7 @@ module ConstructorPages
84
64
  end
85
65
 
86
66
  def search(what_search = nil); Page.in(self).search(what_search) end
67
+ def by(params_search = nil); Page.by(params_search); self end
87
68
  def search_by(params_search = nil); Page.by(params_search).in(self).search end
88
69
 
89
70
  # Get field by code_name
@@ -105,28 +86,19 @@ module ConstructorPages
105
86
  # @param params should looks like <tt>{price: 500, content: 'Hello'}</tt>
106
87
  # @param reset_booleans reset all boolean fields to false before assign params
107
88
  def update_fields_values(params, reset_booleans = true)
108
- return if params.nil?
109
-
110
- fields.each do |field|
111
- value = params[field.code_name.to_sym]
112
-
113
- _type_object = field.find_type_object(self)
89
+ params || return
114
90
 
115
- if _type_object
116
- _type_object.value = 0 if field.type_value == 'boolean' and reset_booleans
117
- _type_object.value = value if value
118
- _type_object.save
119
- end
120
- end
91
+ fields.each {|f| f.find_type_object(self).tap {|t| t || break
92
+ t.value = 0 if f.type_value == 'boolean' && reset_booleans
93
+ params[f.code_name.to_sym].tap {|v| v && t.value = v}
94
+ t.save }}
121
95
  end
122
96
 
123
97
  # Create fields values
124
- def create_fields_values; fields.each {|f| f.create_type_object(self) } end
98
+ def create_fields_values; fields.each {|f| f.create_type_object self} end
125
99
 
126
100
  # Remove all fields values
127
- def remove_fields_values
128
- fields.each {|f| f.remove_type_object self}
129
- end
101
+ def remove_fields_values; fields.each {|f| f.remove_type_object self} end
130
102
 
131
103
  # Search page by template code_name in same branch of pages and templates.
132
104
  # It allows to call page.category.brand.series.model etc.
@@ -135,16 +107,11 @@ module ConstructorPages
135
107
  # and return array of pages if founded in descendants
136
108
  #
137
109
  # It determines if code_name is singular or nor
138
- # @param code_name template code name
139
- def find_page_in_branch(code_name)
140
- _template = Template.find_by code_name: code_name.singularize
141
-
142
- if _template
143
- result = []
144
- result = descendants.where(template_id: _template.id) if code_name == code_name.pluralize
145
- result = ancestors.find_by(template_id: _template.id) if result.empty?
146
- result
147
- end
110
+ # @param cname template code name
111
+ def find_page_in_branch(cname)
112
+ Template.find_by(code_name: cname.singularize).tap {|t| t || return
113
+ (descendants.where(template_id: t.id) if cname == cname.pluralize).tap {|r| r ||= []
114
+ return r.empty? ? ancestors.find_by(template_id: t.id) : r}}
148
115
  end
149
116
 
150
117
  alias_method :find_pages_in_branch, :find_page_in_branch
@@ -159,9 +126,7 @@ module ConstructorPages
159
126
  # @param options default merge name and title page attributes
160
127
  def as_json(options = {})
161
128
  {name: self.name, title: self.title}.merge(options).tap do |options|
162
- fields.each do |f|
163
- options.merge!({f.code_name.to_sym => f.get_value_for(self)})
164
- end
129
+ fields.each {|f| options.merge!({f.code_name.to_sym => f.get_value_for(self)})}
165
130
  end
166
131
  end
167
132
 
@@ -175,12 +140,9 @@ module ConstructorPages
175
140
  # puts page.price
176
141
  # page.brand.models.each do...
177
142
  def method_missing(name, *args, &block)
178
- if new_record?
179
- super
180
- else
181
- name = name.to_s
182
- name[-1] == '=' ? set_field_value(name[0..-2], args[0]) : get_field_value(name) || find_pages_in_branch(name)
183
- end
143
+ super && return if new_record?
144
+ name = name.to_s
145
+ name[-1] == '=' ? set_field_value(name[0..-2], args[0]) : get_field_value(name) || find_pages_in_branch(name)
184
146
  end
185
147
 
186
148
  private
@@ -192,19 +154,13 @@ module ConstructorPages
192
154
 
193
155
  # TODO: add more languages
194
156
  # translit to english
195
- def translit(str)
196
- Russian.translit(str)
197
- end
157
+ def translit(str); Russian.translit(str) end
198
158
 
199
159
  # Page is not valid if there is no template
200
- def template_check
201
- errors.add_on_empty(:template_id) if Template.count == 0
202
- end
160
+ def template_check; errors.add_on_empty(:template_id) if Template.count == 0 end
203
161
 
204
162
  # If template_id is nil then get first template
205
- def template_assign
206
- self.template_id = Template.first.id unless template_id
207
- end
163
+ def template_assign; self.template_id = Template.first.id unless template_id end
208
164
 
209
165
  # Update full_url
210
166
  def full_url_update
@@ -23,23 +23,15 @@ module ConstructorPages
23
23
 
24
24
  # Return child corresponding child_id or children first
25
25
  def child
26
- if child_id.nil? and !leaf?
27
- children.first
28
- else
29
- Template.find child_id
30
- end
26
+ !child_id && !leaf? ? children.first : self.class.find(child_id)
31
27
  end
32
28
 
33
29
  private
34
30
 
35
31
  # Check if there is code_name in same branch
36
- def check_code_name(code_name)
37
- [code_name.pluralize, code_name.singularize].each do |name|
38
- if root.descendants.map{|t| t.code_name unless t.code_name == code_name}.include?(name)
39
- return false
40
- end
41
- end
42
-
32
+ def check_code_name(cname)
33
+ [cname.pluralize, cname.singularize].each {|name|
34
+ return false if root.descendants.map{|t| t.code_name unless t.code_name == cname}.include?(name)}
43
35
  true
44
36
  end
45
37
  end
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,26 @@
1
+ ConstructorPages::Engine.routes.draw do
2
+ scope '/admin' do
3
+ resources :pages, except: [:show]
4
+ resources :templates, except: [:show]
5
+ resources :fields, except: [:show, :new, :edit]
6
+
7
+ %w{page template field}.each do |c|
8
+ %w{up down}.each do |d|
9
+ get "#{c.pluralize}/move/#{d}/:id" => "#{c.pluralize}#move_#{d}", as: "#{c}_move_#{d}"
10
+ end
11
+ end
12
+
13
+ scope '/fields' do
14
+ get ':template_id/new/' => 'fields#new', as: :new_field
15
+ get ':id/:template_id/edit/' => 'fields#edit', as: :edit_field
16
+ end
17
+
18
+ get '/pages/:page/new' => 'pages#new', as: :new_child_page
19
+ end
20
+
21
+ root :to => 'pages#show'
22
+
23
+ get '*all/search/:what_search' => 'pages#search', format: false
24
+ get '*all.:format' => 'pages#show'
25
+ get '*all' => 'pages#show'
26
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes