constructor-cms 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/spec/dummy/app/views/html_templates/brand_search.haml +4 -0
  4. data/spec/dummy/db/schema.rb +140 -0
  5. data/spec/dummy/doc/README_FOR_APP +2 -0
  6. metadata +12 -313
  7. data/.gitignore +0 -14
  8. data/.rspec +0 -2
  9. data/.travis.yml +0 -13
  10. data/.yardopts +0 -9
  11. data/Gemfile +0 -31
  12. data/Guardfile +0 -15
  13. data/bin/rails +0 -8
  14. data/config.ru +0 -4
  15. data/constructor-cms.gemspec +0 -26
  16. data/core/app/assets/images/constructor_core/glyphicons-halflings-white.png +0 -0
  17. data/core/app/assets/images/constructor_core/glyphicons-halflings.png +0 -0
  18. data/core/app/assets/images/constructor_core/minus.gif +0 -0
  19. data/core/app/assets/images/constructor_core/plus.gif +0 -0
  20. data/core/app/assets/images/constructor_core/rss.png +0 -0
  21. data/core/app/assets/images/constructor_core/treeview-black-line.gif +0 -0
  22. data/core/app/assets/images/constructor_core/treeview-black.gif +0 -0
  23. data/core/app/assets/images/constructor_core/treeview-default-line.gif +0 -0
  24. data/core/app/assets/images/constructor_core/treeview-default.gif +0 -0
  25. data/core/app/assets/images/constructor_core/treeview-famfamfam-line.gif +0 -0
  26. data/core/app/assets/images/constructor_core/treeview-famfamfam.gif +0 -0
  27. data/core/app/assets/images/constructor_core/treeview-gray-line.gif +0 -0
  28. data/core/app/assets/images/constructor_core/treeview-gray.gif +0 -0
  29. data/core/app/assets/images/constructor_core/treeview-red-line.gif +0 -0
  30. data/core/app/assets/images/constructor_core/treeview-red.gif +0 -0
  31. data/core/app/assets/images/constructor_core/twitter.png +0 -0
  32. data/core/app/assets/images/constructor_core/widgets.png +0 -0
  33. data/core/app/assets/javascripts/constructor_core/application.js.coffee +0 -52
  34. data/core/app/assets/javascripts/constructor_core/bootstrap.js +0 -2276
  35. data/core/app/assets/javascripts/constructor_core/jquery.cookie.js +0 -92
  36. data/core/app/assets/javascripts/constructor_core/jquery_bundle.js.coffee +0 -3
  37. data/core/app/assets/javascripts/constructor_core/keys_snippet.js +0 -33
  38. data/core/app/assets/javascripts/constructor_core/retina.js +0 -148
  39. data/core/app/assets/javascripts/constructor_core/urlify.js +0 -82
  40. data/core/app/assets/stylesheets/constructor_core/application.css.scss +0 -3
  41. data/core/app/assets/stylesheets/constructor_core/main.css.scss +0 -229
  42. data/core/app/controllers/constructor_core/application_controller.rb +0 -32
  43. data/core/app/controllers/constructor_core/sessions_controller.rb +0 -15
  44. data/core/app/controllers/constructor_core/users_controller.rb +0 -24
  45. data/core/app/helpers/constructor_core/application_helper.rb +0 -9
  46. data/core/app/models/constructor_core/user.rb +0 -7
  47. data/core/app/views/constructor_core/devise/confirmations/new.html.haml +0 -10
  48. data/core/app/views/constructor_core/devise/mailer/confirmation_instructions.html.haml +0 -5
  49. data/core/app/views/constructor_core/devise/mailer/reset_password_instructions.html.haml +0 -7
  50. data/core/app/views/constructor_core/devise/mailer/unlock_instructions.html.haml +0 -5
  51. data/core/app/views/constructor_core/devise/passwords/edit.html.haml +0 -21
  52. data/core/app/views/constructor_core/devise/passwords/new.html.haml +0 -13
  53. data/core/app/views/constructor_core/devise/registrations/edit.html.haml +0 -28
  54. data/core/app/views/constructor_core/devise/registrations/new.html.haml +0 -20
  55. data/core/app/views/constructor_core/devise/shared/_links.html.haml +0 -19
  56. data/core/app/views/constructor_core/devise/unlocks/new.html.haml +0 -9
  57. data/core/app/views/constructor_core/sessions/new.html.haml +0 -22
  58. data/core/app/views/constructor_core/users/profile.haml +0 -16
  59. data/core/app/views/layouts/constructor_core/application_core.haml +0 -95
  60. data/core/config/environments/production.rb +0 -3
  61. data/core/config/initializers/devise.rb +0 -15
  62. data/core/config/locales/devise.en.yml +0 -56
  63. data/core/config/locales/devise.fr.yml +0 -74
  64. data/core/config/locales/devise.ru.yml +0 -52
  65. data/core/config/locales/en.yml +0 -15
  66. data/core/config/locales/fr.yml +0 -15
  67. data/core/config/locales/ru.yml +0 -27
  68. data/core/config/routes.rb +0 -18
  69. data/core/constructor-core.gemspec +0 -24
  70. data/core/db/migrate/1_devise_users.rb +0 -24
  71. data/core/db/migrate/2_add_default_user.rb +0 -9
  72. data/core/lib/constructor-core.rb +0 -25
  73. data/core/lib/constructor_core/engine.rb +0 -6
  74. data/core/lib/constructor_core/version.rb +0 -3
  75. data/core/vendor/assets/javascripts/.gitkeep +0 -0
  76. data/core/vendor/assets/javascripts/ckeditor/ckeditor.js +0 -913
  77. data/core/vendor/assets/javascripts/ckeditor/config.js +0 -38
  78. data/core/vendor/assets/javascripts/ckeditor/lang/en.js +0 -5
  79. data/core/vendor/assets/javascripts/ckeditor/lang/ru.js +0 -5
  80. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/a11yhelp.js +0 -10
  81. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +0 -25
  82. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ar.js +0 -9
  83. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/bg.js +0 -9
  84. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ca.js +0 -9
  85. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cs.js +0 -10
  86. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/cy.js +0 -9
  87. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/da.js +0 -9
  88. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/de.js +0 -10
  89. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/el.js +0 -10
  90. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/en.js +0 -9
  91. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/eo.js +0 -10
  92. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/es.js +0 -10
  93. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/et.js +0 -9
  94. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fa.js +0 -9
  95. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fi.js +0 -10
  96. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js +0 -10
  97. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/gu.js +0 -9
  98. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/he.js +0 -9
  99. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hi.js +0 -9
  100. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hr.js +0 -9
  101. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/hu.js +0 -9
  102. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/it.js +0 -10
  103. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ja.js +0 -9
  104. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/km.js +0 -9
  105. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ku.js +0 -10
  106. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lt.js +0 -9
  107. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/lv.js +0 -10
  108. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mk.js +0 -9
  109. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/mn.js +0 -9
  110. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nb.js +0 -9
  111. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/nl.js +0 -10
  112. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/no.js +0 -9
  113. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pl.js +0 -10
  114. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt-br.js +0 -9
  115. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js +0 -9
  116. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ro.js +0 -9
  117. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ru.js +0 -9
  118. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sk.js +0 -10
  119. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js +0 -9
  120. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/sv.js +0 -10
  121. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/th.js +0 -9
  122. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/tr.js +0 -10
  123. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/ug.js +0 -9
  124. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/uk.js +0 -9
  125. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/vi.js +0 -9
  126. data/core/vendor/assets/javascripts/ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js +0 -7
  127. data/core/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/about.js +0 -6
  128. data/core/vendor/assets/javascripts/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  129. data/core/vendor/assets/javascripts/ckeditor/plugins/clipboard/dialogs/paste.js +0 -11
  130. data/core/vendor/assets/javascripts/ckeditor/plugins/colordialog/dialogs/colordialog.js +0 -13
  131. data/core/vendor/assets/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +0 -4
  132. data/core/vendor/assets/javascripts/ckeditor/plugins/div/dialogs/div.js +0 -9
  133. data/core/vendor/assets/javascripts/ckeditor/plugins/fakeobjects/images/spacer.gif +0 -0
  134. data/core/vendor/assets/javascripts/ckeditor/plugins/find/dialogs/find.js +0 -24
  135. data/core/vendor/assets/javascripts/ckeditor/plugins/icons.png +0 -0
  136. data/core/vendor/assets/javascripts/ckeditor/plugins/iframe/dialogs/iframe.js +0 -10
  137. data/core/vendor/assets/javascripts/ckeditor/plugins/iframe/images/placeholder.png +0 -0
  138. data/core/vendor/assets/javascripts/ckeditor/plugins/image/dialogs/image.js +0 -43
  139. data/core/vendor/assets/javascripts/ckeditor/plugins/image/images/noimage.png +0 -0
  140. data/core/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/anchor.js +0 -8
  141. data/core/vendor/assets/javascripts/ckeditor/plugins/link/dialogs/link.js +0 -36
  142. data/core/vendor/assets/javascripts/ckeditor/plugins/link/images/anchor.png +0 -0
  143. data/core/vendor/assets/javascripts/ckeditor/plugins/liststyle/dialogs/liststyle.js +0 -10
  144. data/core/vendor/assets/javascripts/ckeditor/plugins/magicline/images/icon.png +0 -0
  145. data/core/vendor/assets/javascripts/ckeditor/plugins/pastefromword/filter/default.js +0 -31
  146. data/core/vendor/assets/javascripts/ckeditor/plugins/preview/preview.html +0 -10
  147. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/LICENSE.md +0 -28
  148. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/README.md +0 -25
  149. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/options.js +0 -20
  150. data/core/vendor/assets/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -71
  151. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_address.png +0 -0
  152. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_blockquote.png +0 -0
  153. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_div.png +0 -0
  154. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h1.png +0 -0
  155. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h2.png +0 -0
  156. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h3.png +0 -0
  157. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h4.png +0 -0
  158. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h5.png +0 -0
  159. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_h6.png +0 -0
  160. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_p.png +0 -0
  161. data/core/vendor/assets/javascripts/ckeditor/plugins/showblocks/images/block_pre.png +0 -0
  162. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt +0 -20
  163. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ca.js +0 -13
  164. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cs.js +0 -13
  165. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/cy.js +0 -14
  166. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/de.js +0 -13
  167. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/el.js +0 -13
  168. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/en.js +0 -13
  169. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/eo.js +0 -12
  170. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/et.js +0 -13
  171. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fa.js +0 -12
  172. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fi.js +0 -13
  173. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/fr.js +0 -11
  174. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/he.js +0 -13
  175. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/hr.js +0 -13
  176. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/it.js +0 -14
  177. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ku.js +0 -13
  178. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/lv.js +0 -13
  179. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nb.js +0 -11
  180. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/nl.js +0 -13
  181. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/no.js +0 -11
  182. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pl.js +0 -12
  183. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/pt-br.js +0 -11
  184. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sk.js +0 -13
  185. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/sv.js +0 -11
  186. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/th.js +0 -13
  187. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/tr.js +0 -12
  188. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/ug.js +0 -13
  189. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js +0 -9
  190. data/core/vendor/assets/javascripts/ckeditor/plugins/specialchar/dialogs/specialchar.js +0 -14
  191. data/core/vendor/assets/javascripts/ckeditor/plugins/table/dialogs/table.js +0 -21
  192. data/core/vendor/assets/javascripts/ckeditor/plugins/tabletools/dialogs/tableCell.js +0 -16
  193. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.css +0 -84
  194. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/dialogs/templates.js +0 -10
  195. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/default.js +0 -6
  196. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template1.gif +0 -0
  197. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template2.gif +0 -0
  198. data/core/vendor/assets/javascripts/ckeditor/plugins/templates/templates/images/template3.gif +0 -0
  199. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/LICENSE.md +0 -28
  200. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/README.md +0 -25
  201. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/ciframe.html +0 -49
  202. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/tmpFrameset.html +0 -52
  203. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.css +0 -82
  204. data/core/vendor/assets/javascripts/ckeditor/plugins/wsc/dialogs/wsc.js +0 -11
  205. data/core/vendor/assets/javascripts/ckeditor/styles.js +0 -111
  206. data/core/vendor/assets/stylesheets/.gitkeep +0 -0
  207. data/core/vendor/assets/stylesheets/ckeditor/contents.css +0 -103
  208. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog.css +0 -5
  209. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie.css +0 -5
  210. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie7.css +0 -5
  211. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_ie8.css +0 -5
  212. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/dialog_opera.css +0 -5
  213. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor.css +0 -5
  214. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_gecko.css +0 -5
  215. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie.css +0 -5
  216. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie7.css +0 -5
  217. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/editor_ie8.css +0 -5
  218. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/icons.png +0 -0
  219. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/arrow.png +0 -0
  220. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/close.png +0 -0
  221. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/images/mini.png +0 -0
  222. data/core/vendor/assets/stylesheets/ckeditor/skins/moono/readme.md +0 -51
  223. data/pages/app/assets/images/constructor_pages/arrow_down.png +0 -0
  224. data/pages/app/assets/images/constructor_pages/arrow_up.png +0 -0
  225. data/pages/app/assets/images/constructor_pages/information.png +0 -0
  226. data/pages/app/assets/images/constructor_pages/page_white_edit.png +0 -0
  227. data/pages/app/assets/images/constructor_pages/photos.png +0 -0
  228. data/pages/app/assets/javascripts/constructor_pages/ajax_pages.js +0 -61
  229. data/pages/app/assets/javascripts/constructor_pages/jquery.history.js +0 -1
  230. data/pages/app/controllers/constructor_pages/application_controller.rb +0 -20
  231. data/pages/app/controllers/constructor_pages/fields_controller.rb +0 -70
  232. data/pages/app/controllers/constructor_pages/pages_controller.rb +0 -116
  233. data/pages/app/controllers/constructor_pages/templates_controller.rb +0 -62
  234. data/pages/app/helpers/constructor_pages/code_name_uniq.rb +0 -7
  235. data/pages/app/helpers/constructor_pages/fields_helper.rb +0 -18
  236. data/pages/app/helpers/constructor_pages/pages_helper.rb +0 -22
  237. data/pages/app/helpers/constructor_pages/templates_helper.rb +0 -13
  238. data/pages/app/helpers/constructor_pages/treeview_helper.rb +0 -33
  239. data/pages/app/models/constructor_pages/field.rb +0 -59
  240. data/pages/app/models/constructor_pages/page.rb +0 -171
  241. data/pages/app/models/constructor_pages/template.rb +0 -38
  242. data/pages/app/models/constructor_pages/types/boolean_type.rb +0 -11
  243. data/pages/app/models/constructor_pages/types/date_type.rb +0 -11
  244. data/pages/app/models/constructor_pages/types/float_type.rb +0 -11
  245. data/pages/app/models/constructor_pages/types/html_type.rb +0 -11
  246. data/pages/app/models/constructor_pages/types/image_type.rb +0 -19
  247. data/pages/app/models/constructor_pages/types/integer_type.rb +0 -11
  248. data/pages/app/models/constructor_pages/types/string_type.rb +0 -11
  249. data/pages/app/models/constructor_pages/types/text_type.rb +0 -11
  250. data/pages/app/views/constructor_pages/fields/_form.haml +0 -29
  251. data/pages/app/views/constructor_pages/fields/edit.haml +0 -6
  252. data/pages/app/views/constructor_pages/fields/new.haml +0 -6
  253. data/pages/app/views/constructor_pages/fields/types/_boolean.haml +0 -1
  254. data/pages/app/views/constructor_pages/fields/types/_date.haml +0 -1
  255. data/pages/app/views/constructor_pages/fields/types/_float.haml +0 -1
  256. data/pages/app/views/constructor_pages/fields/types/_html.haml +0 -1
  257. data/pages/app/views/constructor_pages/fields/types/_image.haml +0 -7
  258. data/pages/app/views/constructor_pages/fields/types/_integer.haml +0 -1
  259. data/pages/app/views/constructor_pages/fields/types/_string.haml +0 -1
  260. data/pages/app/views/constructor_pages/fields/types/_text.haml +0 -1
  261. data/pages/app/views/constructor_pages/pages/_breadcrumbs.haml +0 -7
  262. data/pages/app/views/constructor_pages/pages/_form.haml +0 -98
  263. data/pages/app/views/constructor_pages/pages/_menu.haml +0 -8
  264. data/pages/app/views/constructor_pages/pages/_submenu.haml +0 -6
  265. data/pages/app/views/constructor_pages/pages/edit.haml +0 -6
  266. data/pages/app/views/constructor_pages/pages/index.haml +0 -42
  267. data/pages/app/views/constructor_pages/pages/new.haml +0 -6
  268. data/pages/app/views/constructor_pages/pages/show.haml +0 -5
  269. data/pages/app/views/constructor_pages/partials/_arrow_buttons.haml +0 -6
  270. data/pages/app/views/constructor_pages/templates/_form.haml +0 -53
  271. data/pages/app/views/constructor_pages/templates/edit.haml +0 -6
  272. data/pages/app/views/constructor_pages/templates/index.haml +0 -24
  273. data/pages/app/views/constructor_pages/templates/new.haml +0 -6
  274. data/pages/config/initializers/dragonfly.rb +0 -9
  275. data/pages/config/locales/en.yml +0 -65
  276. data/pages/config/locales/fr.yml +0 -65
  277. data/pages/config/locales/ru.yml +0 -100
  278. data/pages/config/routes.rb +0 -26
  279. data/pages/constructor-pages.gemspec +0 -31
  280. data/pages/db/migrate/10_create_html_types.rb +0 -15
  281. data/pages/db/migrate/11_create_image_types.rb +0 -16
  282. data/pages/db/migrate/12_add_default_template.rb +0 -13
  283. data/pages/db/migrate/1_create_pages.rb +0 -27
  284. data/pages/db/migrate/2_create_templates.rb +0 -18
  285. data/pages/db/migrate/3_create_fields.rb +0 -17
  286. data/pages/db/migrate/4_create_string_types.rb +0 -15
  287. data/pages/db/migrate/5_create_float_types.rb +0 -15
  288. data/pages/db/migrate/6_create_boolean_types.rb +0 -15
  289. data/pages/db/migrate/7_create_integer_types.rb +0 -15
  290. data/pages/db/migrate/8_create_text_types.rb +0 -15
  291. data/pages/db/migrate/9_create_date_types.rb +0 -15
  292. data/pages/lib/constructor-pages.rb +0 -6
  293. data/pages/lib/constructor_pages/engine.rb +0 -6
  294. data/pages/public/hello.txt +0 -1
  295. data/pages/spec/features/constructor_pages/fields_spec.rb +0 -217
  296. data/pages/spec/features/constructor_pages/pages_spec.rb +0 -313
  297. data/pages/spec/features/constructor_pages/templates_spec.rb +0 -267
  298. data/pages/spec/helpers/constructor_pages/.keep +0 -0
  299. data/pages/spec/models/constructor_pages/field_spec.rb +0 -135
  300. data/pages/spec/models/constructor_pages/page_spec.rb +0 -420
  301. data/pages/spec/models/constructor_pages/template_spec.rb +0 -34
  302. data/pages/spec/models/constructor_pages/types/boolean_type_spec.rb +0 -21
  303. data/pages/spec/models/constructor_pages/types/date_type_spec.rb +0 -21
  304. data/pages/spec/models/constructor_pages/types/float_type_spec.rb +0 -21
  305. data/pages/spec/models/constructor_pages/types/html_type_spec.rb +0 -63
  306. data/pages/spec/models/constructor_pages/types/integer_type_spec.rb +0 -24
  307. data/pages/spec/models/constructor_pages/types/string_type_spec.rb +0 -21
  308. data/pages/spec/models/constructor_pages/types/text_type_spec.rb +0 -63
  309. data/pages/spec/routing/constructor_pages/.keep +0 -0
  310. data/tasks/constructor-cms_tasks.rake +0 -15
@@ -1,70 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ConstructorPages
4
- class FieldsController < ApplicationController
5
- def new
6
- @field = Field.new.tap {|f| f.template = Template.find(params[:template_id])}
7
- end
8
-
9
- def edit
10
- @field = Field.find(params[:id]).tap {|f| f.template = Template.find(params[:template_id])}
11
- end
12
-
13
- def create
14
- @field = Field.new field_params
15
-
16
- if @field.save
17
- redirect_to edit_template_path(@field.template_id), notice: t(:field_success_added, name: @field.name)
18
- else
19
- render action: :new, template_id: @field.template_id
20
- end
21
- end
22
-
23
- def update
24
- @field = Field.find params[:id]
25
-
26
- unless @field.type_value == params[:field][:type_value]
27
- @field.type_class.where(field_id: @field.id).each do |field|
28
- "constructor_pages/types/#{params[:field][:type_value]}_type".classify.constantize.new(
29
- field_id: @field.id, page_id: field.page_id).tap {|f|
30
- f.value = field.value unless [@field.type_value, params[:field][:type_value]].include?('image') and
31
- (@field.type_value == 'string' and field.value.strip == '')
32
- f.save; field.destroy
33
- }
34
- end
35
- end
36
-
37
- if @field.update field_params
38
- redirect_to edit_template_url(@field.template.id), notice: t(:field_success_updated, name: @field.name)
39
- else
40
- render action: :edit
41
- end
42
- end
43
-
44
- def destroy
45
- @field = Field.find(params[:id])
46
- name, template = @field.name, @field.template.id
47
- @field.destroy
48
- redirect_to edit_template_url(template), notice: t(:field_success_removed, name: name)
49
- end
50
-
51
- %w{up down}.each {|m| define_method "move_#{m}" do move_to m.to_sym end}
52
-
53
- private
54
-
55
- def field_params
56
- params.require(:field).permit(
57
- :name,
58
- :code_name,
59
- :template_id,
60
- :type_value
61
- )
62
- end
63
-
64
- def move_to(to)
65
- @field = Field.find(params[:id])
66
- to == :up ? @field.move_higher : @field.move_lower
67
- redirect_to :back, notice: t(:field_success_moved, name: @field.name)
68
- end
69
- end
70
- end
@@ -1,116 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ConstructorPages
4
- class PagesController < ApplicationController
5
- layout 'constructor_core/application_core', except: [:show, :search]
6
-
7
- movable :page
8
-
9
- before_filter {@roots, @template_exists = Page.roots, Template.count > 0}
10
-
11
- def index
12
- flash.notice = 'Create at least one template' unless @template_exists
13
- end
14
-
15
- def new
16
- redirect_to pages_path and return unless @template_exists
17
- @page, @template_id, @multipart = Page.new, Template.first.id, false
18
- @template_id = @page.parent.template.child.id if params[:page] and (@page.parent = Page.find(params[:page]))
19
- end
20
-
21
- def show
22
- @page = Page.find_by_request_or_first("/#{params[:all]}")
23
- error_404 and return if @page.nil? or !@page.active?
24
- redirect_to @page.link if @page.redirect?
25
- _code_name = @page.template.code_name.to_s
26
- instance_variable_set('@'+_code_name, @page)
27
- respond_to do |format|
28
- format.html { render template: "html_templates/#{_code_name}" }
29
- format.json {
30
- _template = render_to_string partial: "json_templates/#{_code_name}.json.erb", layout: false, locals: {_code_name.to_sym => @page, page: @page}
31
- _js = render_to_string partial: "js_partials/#{_code_name}.js"
32
- render json: @page, self_and_ancestors: @page.self_and_ancestors.map(&:id), template: _template.gsub(/\n/, '\\\\n'), js: _js
33
- }
34
- end
35
- end
36
-
37
- def search
38
- @page = Page.find_by_request_or_first("/#{params[:all]}")
39
-
40
- _params = request.query_parameters
41
- _params.each_pair {|k,v| v || (_params.delete(k); next)
42
- _params[k] = v.numeric? ? v.to_f : (v.to_bool if v.boolean?)}
43
-
44
- @pages = Page.in(@page).by(_params).search(params[:what_search])
45
-
46
- instance_variable_set('@'+@page.template.code_name.pluralize, @pages)
47
- instance_variable_set('@'+@page.template.code_name.singularize, @page)
48
- render :template => "html_templates/#{@page.template.code_name}_search"
49
- end
50
-
51
- def edit
52
- @page = Page.find(params[:id])
53
- @page.template ||= Template.first
54
- @template_id = @page.template.id
55
- @multipart = @page.fields.map{|f| f.type_value == 'image'}.include?(true) ? true : false
56
- end
57
-
58
- def create
59
- @page = Page.new page_params
60
-
61
- if @page.save
62
- redirect_to pages.pages_url, notice: t(:page_success_added, name: @page.name)
63
- else
64
- render action: :new
65
- end
66
- end
67
-
68
- def update
69
- @page = Page.find params[:id]
70
-
71
- _template_changed = @page.template.id != params[:page][:template_id].to_i
72
-
73
- @page.remove_fields_values if _template_changed
74
-
75
- if @page.update page_params
76
- @page.create_fields_values if _template_changed
77
- @page.update_fields_values params[:fields]
78
-
79
- redirect_to pages_url, notice: t(:page_success_updated, name: @page.name)
80
- else
81
- render action: :edit
82
- end
83
- end
84
-
85
- def destroy
86
- @page = Page.find(params[:id])
87
- _name = @page.name
88
- @page.destroy
89
- redirect_to pages_url, notice: t(:page_success_removed, name: _name)
90
- end
91
-
92
- private
93
-
94
- def page_params
95
- params.require(:page).permit(
96
- :active,
97
- :name,
98
- :url,
99
- :title,
100
- :keywords,
101
- :description,
102
- :auto_url,
103
- :parent_id,
104
- :template_id,
105
- :in_nav,
106
- :in_map,
107
- :in_menu,
108
- :link
109
- )
110
- end
111
-
112
- def error_404
113
- render file: "#{Rails.root}/public/404", layout: false, status: 404
114
- end
115
- end
116
- end
@@ -1,62 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ConstructorPages
4
- class TemplatesController < ApplicationController
5
- include TreeviewHelper
6
-
7
- movable :template
8
-
9
- before_filter {@roots = Template.roots}
10
-
11
- def new
12
- @template = Template.new
13
- end
14
-
15
- def edit
16
- @template = Template.find(params[:id])
17
- end
18
-
19
- def create
20
- @template = Template.new template_params
21
-
22
- if @template.save
23
- redirect_to templates_url, notice: t(:template_success_added, name: @template.name)
24
- else
25
- render action: :new
26
- end
27
- end
28
-
29
- def update
30
- @template = Template.find params[:id]
31
-
32
- if @template.update template_params
33
- redirect_to templates_url, notice: t(:template_success_updated, name: @template.name)
34
- else
35
- render action: :edit
36
- end
37
- end
38
-
39
- def destroy
40
- @template = Template.find(params[:id])
41
-
42
- if @template.pages.count == 0
43
- name = @template.name
44
- @template.destroy
45
- redirect_to templates_url, notice: t(:template_success_removed, name: name)
46
- else
47
- redirect_to :back, alert: t(:template_error_delete_pages)
48
- end
49
- end
50
-
51
- private
52
-
53
- def template_params
54
- params.require(:template).permit(
55
- :name,
56
- :code_name,
57
- :parent_id,
58
- :child_id
59
- )
60
- end
61
- end
62
- end
@@ -1,7 +0,0 @@
1
- module ConstructorPages
2
- module CodeNameUniq
3
- def code_name_uniqueness
4
- errors.add(:base, :code_name_already_in_use) unless Page.check_code_name(code_name) and check_code_name(code_name)
5
- end
6
- end
7
- end
@@ -1,18 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ConstructorPages
4
- module FieldsHelper
5
- def types_value
6
- [
7
- [t(:string), "string"],
8
- [t(:integer), "integer"],
9
- [t(:float), "float"],
10
- [t(:boolean), "boolean"],
11
- [t(:date), "date"],
12
- [t(:text), "text"],
13
- [t(:html), "html"],
14
- [t(:image), "image"]
15
- ]
16
- end
17
- end
18
- end
@@ -1,22 +0,0 @@
1
- module ConstructorPages
2
- module PagesHelper
3
- include TreeviewHelper
4
-
5
- def for_select(roots)
6
- result = []
7
- roots.each do |r|
8
- r.self_and_descendants.each {|i| result.push(["#{'--'*i.level} #{i.name}", i.id, {'data-full_url' => i.full_url}])}
9
- end
10
- result
11
- end
12
-
13
- def templates
14
- Template.all.map{|t| ["#{'--'*t.level} #{t.name}", t.id]}
15
- end
16
-
17
- def image_tag_with_at2x(name_at_1x, options={})
18
- name_at_2x = name_at_1x.gsub(%r{\.\w+$}, '@2x\0')
19
- image_tag(name_at_1x, options.merge("data-at2x" => asset_path(name_at_2x)))
20
- end
21
- end
22
- end
@@ -1,13 +0,0 @@
1
- module ConstructorPages
2
- module TemplatesHelper
3
- include TreeviewHelper
4
-
5
- def for_select(roots)
6
- result = []
7
- roots.each do |r|
8
- r.self_and_descendants.each {|i| result.push(["#{'--'*i.level} #{i.name}", i.id])}
9
- end
10
- result
11
- end
12
- end
13
- end
@@ -1,33 +0,0 @@
1
- module ConstructorPages
2
- module TreeviewHelper
3
- def render_tree(roots, &block)
4
- output = '<ul>'
5
-
6
- roots.each do |root|
7
- level, last = root.level, nil
8
-
9
- root.self_and_descendants.each do |item|
10
- if item.level > level
11
- output += '<ul>'
12
- elsif item.level < level
13
- output += '</li>'
14
- output += '</ul></li>' * (level-item.level)
15
- elsif !item.root?
16
- output += '</li>'
17
- end
18
-
19
- output += '<li>'
20
-
21
- output += capture(item, &block)
22
-
23
- level, last = item.level, item
24
- end
25
-
26
- output += '</li>'
27
- output += '</ul></li>' * last.level
28
- end
29
-
30
- output.html_safe
31
- end
32
- end
33
- end
@@ -1,59 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ConstructorPages
4
- # Field model. Fields allows to add custom fields for template.
5
- # Each field has type of value such as float, integer, string...
6
- class Field < ActiveRecord::Base
7
- # Adding code_name_uniqueness method
8
- include CodeNameUniq
9
-
10
- # Array of available field types
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
-
14
- validates_presence_of :name
15
- validates_uniqueness_of :code_name, scope: :template_id
16
- validate :code_name_uniqueness
17
-
18
- after_create :create_page_fields
19
- after_destroy :destroy_all_page_fields
20
-
21
- has_many :pages, through: :template
22
- belongs_to :template
23
-
24
- acts_as_list scope: :template_id
25
- default_scope -> { order :position }
26
-
27
- # Return constant of model type_value
28
- def type_class; "constructor_pages/types/#{type_value}_type".classify.constantize end
29
-
30
- # Return object of type_value by page
31
- def find_type_object(page); type_class.find_by(field_id: id, page_id: page.id) end
32
-
33
- # Create object of type_value by page
34
- def create_type_object(page); type_class.create(field_id: id, page_id: page.id) end
35
-
36
- # Remove all type_fields values for specified page
37
- def remove_type_object(page); find_type_object(page).destroy end
38
-
39
- # Get value from type_field for specified page
40
- def get_value_for(page); find_type_object(page).tap {|t| return t && t.value} end
41
-
42
- # Set value type_field for specified page
43
- def set_value_for(page, value); find_type_object(page).tap {|t| t || return; t.update value: value} end
44
-
45
- private
46
-
47
- # Check if there is code_name in template branch
48
- def check_code_name(code_name)
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)}}
52
- true
53
- end
54
-
55
- # Create and destroy page fields
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 }}
58
- end
59
- end
@@ -1,171 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ConstructorPages
4
- # Page model. Pages are core for company websites, blogs etc.
5
- class Page < ActiveRecord::Base
6
- # Adding has_many for all field types
7
- Field::TYPES.each do |t|
8
- class_eval %{has_many :#{t}_types, dependent: :destroy, class_name: 'Types::#{t.titleize}Type'}
9
- end
10
-
11
- has_many :fields, through: :template
12
- belongs_to :template
13
-
14
- default_scope -> { order :lft }
15
-
16
- validate :template_check
17
-
18
- before_save :friendly_url, :template_assign, :full_url_update
19
- after_update :descendants_update
20
- after_create :create_fields_values
21
-
22
- acts_as_nested_set
23
-
24
- class << self
25
- # Used for find page by request. It return first page if no request given or request is home page
26
- # @param request for example <tt>'/conditioners/split-systems/zanussi'</tt>
27
- def find_by_request_or_first(request = nil)
28
- request == nil || '/' ? Page.first : Page.find_by(full_url: request)
29
- end
30
-
31
- # Generate full_url from parent id and url
32
- # @param parent_id integer
33
- # @param url should looks like <tt>'hello-world-page'</tt> without leading slash
34
- def full_url_generate(parent_id, url = '')
35
- '/' + Page.find(parent_id).self_and_ancestors.map(&:url).append(url).join('/')
36
- end
37
-
38
- # Check code_name for field and template.
39
- # When missing method Page find field or page in branch with plural and singular code_name so
40
- # field and template code_name should be uniqueness for page methods
41
- def check_code_name(code_name)
42
- [code_name, code_name.pluralize, code_name.singularize].each {|name|
43
- return false if Page.instance_methods.include?(name.to_sym)}
44
- true
45
- end
46
-
47
- def search(what_search = nil)
48
- (@where_search.is_a?(String) ? Page.find_by(full_url: @where_search) : @where_search)
49
- .tap {|p| @result = @where_search ? p ? p.descendants : [] : Page.all }
50
- what_search && Template.find_by(code_name: what_search.to_s.singularize.downcase)
51
- .tap {|t| @result = t ? @result.where(template: t) : [] }
52
- @params_search && @params_search.each_pair {|k,v| @result = @result.select {|p| p.send(k) == v}}
53
- @where_search = @params_search = nil
54
- @result
55
- end
56
-
57
- def in(where_search = nil); tap {@where_search = where_search} end
58
- def by(params_search = nil); tap {@params_search = params_search} end
59
-
60
- def search_in(where_search = nil); self.in(where_search).search end
61
- def search_by(params_search = nil); self.by(params_search).search end
62
- end
63
-
64
- def search(what_search = nil); Page.in(self).search(what_search) end
65
- def by(params_search = nil); Page.by(params_search); self end
66
- def search_by(params_search = nil); Page.by(params_search).in(self).search end
67
-
68
- # Get field by code_name
69
- def field(code_name)
70
- Field.find_by code_name: code_name, template_id: template_id
71
- end
72
-
73
- # Get value of field by code_name
74
- def get_field_value(code_name)
75
- field(code_name).tap {|f| return f.get_value_for(self) if f}
76
- end
77
-
78
- # Set value of field by code_name and value
79
- def set_field_value(code_name, value)
80
- field(code_name).tap {|f| f.set_value_for(self, value) if f}
81
- end
82
-
83
- # Update all fields values with given params.
84
- # @param params should looks like <tt>{price: 500, content: 'Hello'}</tt>
85
- # @param reset_booleans reset all boolean fields to false before assign params
86
- def update_fields_values(params, reset_booleans = true)
87
- params || return
88
-
89
- fields.each {|f| f.find_type_object(self).tap {|t| t || break
90
- t.value = 0 if f.type_value == 'boolean' && reset_booleans
91
- params[f.code_name.to_sym].tap {|v| v && t.value = v}
92
- t.save }}
93
- end
94
-
95
- # Create fields values
96
- def create_fields_values; fields.each {|f| f.create_type_object self} end
97
-
98
- # Remove all fields values
99
- def remove_fields_values; fields.each {|f| f.remove_type_object self} end
100
-
101
- # Search page by template code_name in same branch of pages and templates.
102
- # It allows to call page.category.brand.series.model etc.
103
- #
104
- # Return one page if founded in ancestors,
105
- # and return array of pages if founded in descendants
106
- #
107
- # It determines if code_name is singular or nor
108
- # @param cname template code name
109
- def find_page_in_branch(cname)
110
- Template.find_by(code_name: cname.singularize).tap {|t| t || return
111
- (descendants.where(template_id: t.id) if cname == cname.pluralize).tap {|r| r ||= []
112
- return r.empty? ? ancestors.find_by(template_id: t.id) : r}}
113
- end
114
-
115
- alias_method :find_pages_in_branch, :find_page_in_branch
116
-
117
- def published?; active end
118
-
119
- alias_method :active?, :published?
120
-
121
- # Returns page hash attributes with fields.
122
- #
123
- # Default attributes are name and title. Options param allows to add more.
124
- # @param options default merge name and title page attributes
125
- def as_json(options = {})
126
- {name: self.name, title: self.title}.merge(options).tap do |options|
127
- fields.each {|f| options.merge!({f.code_name.to_sym => f.get_value_for(self)})}
128
- end
129
- end
130
-
131
- # Check if link specified
132
- def redirect?; url != link && !link.empty? end
133
-
134
- # When method missing it get/set field value or get page in branch
135
- #
136
- # Examples:
137
- # page.content = 'Hello world'
138
- # puts page.price
139
- # page.brand.models.each do...
140
- def method_missing(name, *args, &block)
141
- super && return if new_record?
142
- name = name.to_s
143
- name[-1] == '=' ? set_field_value(name[0..-2], args[0]) : get_field_value(name) || find_pages_in_branch(name)
144
- end
145
-
146
- private
147
-
148
- # if url has been changed by manually or url is empty
149
- def friendly_url
150
- self.url = ((auto_url || url.empty?) ? translit(name) : url).parameterize
151
- end
152
-
153
- # TODO: add more languages
154
- # translit to english
155
- def translit(str); Russian.translit(str) end
156
-
157
- # Page is not valid if there is no template
158
- def template_check; errors.add_on_empty(:template_id) if Template.count == 0 end
159
-
160
- # If template_id is nil then get first template
161
- def template_assign; self.template_id = Template.first.id unless template_id end
162
-
163
- # Update full_url
164
- def full_url_update
165
- self.full_url = (parent_id ? Page.full_url_generate(parent_id, url) : '/' + url)
166
- end
167
-
168
- # Reload all descendants
169
- def descendants_update; descendants.map(&:save) end
170
- end
171
- end