constructor-cms 0.7.3 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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