optimacms 0.1.51 → 0.1.52

Sign up to get free protection for your applications and to get access to all the features.
Files changed (321) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/optimacms/admin.js +4 -4
  3. data/app/assets/stylesheets/optimacms/admin.css.scss +6 -6
  4. data/app/assets/stylesheets/optimacms/admin_tpl.css.scss +15 -15
  5. data/app/assets/stylesheets/optimacms/bootstrap_and_overrides.css.scss +52 -52
  6. data/app/assets/stylesheets/optimacms/bootstrap_custom.css.scss +49 -49
  7. data/app/assets/stylesheets/optimacms/bootstrap_variables.css.scss +860 -860
  8. data/app/assets/stylesheets/optimacms/colors.css.scss +68 -68
  9. data/app/assets/stylesheets/optimacms/skins/noskin.css.scss +95 -95
  10. data/app/assets/stylesheets/optimacms/tinymce.css.scss +54 -54
  11. data/app/assets/stylesheets/optimacms/tpl.css.scss +309 -309
  12. data/app/controllers/optimacms/admin/admin_base_controller.rb +44 -44
  13. data/app/controllers/optimacms/admin/dashboard_controller.rb +6 -6
  14. data/app/controllers/optimacms/admin/layouts_controller.rb +76 -76
  15. data/app/controllers/optimacms/admin/pages_controller.rb +228 -228
  16. data/app/controllers/optimacms/admin/templates_controller.rb +314 -314
  17. data/app/controllers/optimacms/dev_controller.rb +40 -40
  18. data/app/controllers/optimacms/elfinder_controller.rb +39 -39
  19. data/app/controllers/optimacms/page_base_controller.rb +6 -6
  20. data/app/controllers/optimacms/pages_controller.rb +167 -167
  21. data/app/controllers/optimacms/tinymce_assets_controller.rb +20 -20
  22. data/app/helpers/optimacms/forms_helper.rb +75 -75
  23. data/app/inputs/textarea_tinymce_input.rb +27 -27
  24. data/app/models/concerns/optimacms/meta_content.rb +63 -63
  25. data/app/models/optimacms/language.rb +14 -14
  26. data/app/models/optimacms/layout.rb +53 -53
  27. data/app/models/optimacms/mediafile.rb +17 -17
  28. data/app/models/optimacms/page.rb +171 -171
  29. data/app/models/optimacms/page_translation.rb +10 -10
  30. data/app/models/optimacms/template.rb +390 -390
  31. data/app/models/optimacms/template_type.rb +20 -20
  32. data/app/views/optimacms/admin/common/_js_tinymce.html.haml +49 -49
  33. data/app/views/optimacms/admin/common/_modal_div.html.haml +16 -16
  34. data/app/views/optimacms/admin/dashboard/index.html.haml +18 -18
  35. data/app/views/optimacms/admin/layouts/_form.html.haml +22 -22
  36. data/app/views/optimacms/admin/layouts/edit.html.haml +5 -5
  37. data/app/views/optimacms/admin/layouts/index.html.haml +25 -25
  38. data/app/views/optimacms/admin/layouts/main.html.haml +6 -6
  39. data/app/views/optimacms/admin/layouts/new.html.haml +5 -5
  40. data/app/views/optimacms/admin/pages/_form.html.haml +78 -78
  41. data/app/views/optimacms/admin/pages/_form_folder.html.haml +14 -14
  42. data/app/views/optimacms/admin/pages/_form_old.html.haml +107 -107
  43. data/app/views/optimacms/admin/pages/_meta.html.haml +48 -48
  44. data/app/views/optimacms/admin/pages/edit.html.haml +5 -5
  45. data/app/views/optimacms/admin/pages/editfolder.html.haml +15 -15
  46. data/app/views/optimacms/admin/pages/index.html.haml +58 -58
  47. data/app/views/optimacms/admin/pages/new.html.haml +5 -5
  48. data/app/views/optimacms/admin/pages/newfolder.html.haml +15 -15
  49. data/app/views/optimacms/admin/shared/_breadcrumbs.html.haml +7 -7
  50. data/app/views/optimacms/admin/shared/_flash.html.haml +23 -23
  51. data/app/views/optimacms/admin/shared/_footer.html.haml +5 -5
  52. data/app/views/optimacms/admin/shared/_form_errors.html.haml +11 -11
  53. data/app/views/optimacms/admin/shared/_leftmenu.html.haml +49 -49
  54. data/app/views/optimacms/admin/shared/_top.html.haml +33 -33
  55. data/app/views/optimacms/admin/templates/_form.html.haml +61 -61
  56. data/app/views/optimacms/admin/templates/_js_form_modal.html.haml +43 -43
  57. data/app/views/optimacms/admin/templates/create.js.haml +3 -3
  58. data/app/views/optimacms/admin/templates/edit.html.haml +5 -5
  59. data/app/views/optimacms/admin/templates/editfolder.html.haml +31 -31
  60. data/app/views/optimacms/admin/templates/index.html.haml +48 -48
  61. data/app/views/optimacms/admin/templates/new.html.haml +37 -37
  62. data/app/views/optimacms/admin/templates/newattach.html.haml +32 -32
  63. data/app/views/optimacms/admin/templates/newfolder.html.haml +28 -28
  64. data/app/views/optimacms/elfinder/index.html.erb +54 -54
  65. data/config/initializers/assets.rb +2 -2
  66. data/config/initializers/kaminari.rb +10 -10
  67. data/config/initializers/paperclip.rb +11 -11
  68. data/config/initializers/paperclip_media_type_spoof_detector_override.rb +7 -7
  69. data/config/initializers/simple_form.rb +166 -166
  70. data/config/initializers/simple_form_bootstrap.rb +146 -146
  71. data/config/locales/simple_form.en.yml +3 -3
  72. data/config/locales/simple_form.ru.yml +3 -3
  73. data/config/tinymce.yml +6 -6
  74. data/lib/optimacms/fileutils/fileutils.rb +39 -39
  75. data/lib/optimacms/filters/form_filter.rb +226 -226
  76. data/lib/optimacms/mycontroller.rb +69 -69
  77. data/lib/optimacms/page_services/page_data.rb +97 -97
  78. data/lib/optimacms/page_services/page_process_service.rb +32 -32
  79. data/lib/optimacms/page_services/page_route_service.rb +155 -155
  80. data/lib/optimacms/simple_form_extensions/button_components.rb +33 -33
  81. data/lib/optimacms/version.rb +1 -1
  82. data/spec/dummy/app/assets/stylesheets/application.css.scss +11 -11
  83. data/spec/dummy/app/assets/stylesheets/bootstrap_and_overrides.css.scss +3 -3
  84. data/spec/dummy/app/assets/stylesheets/bootstrap_custom.css.scss +49 -49
  85. data/spec/dummy/app/assets/stylesheets/tpl.css.scss +62 -62
  86. data/spec/dummy/app/controllers/home_controller.rb +6 -6
  87. data/spec/dummy/app/controllers/my_controller.rb +6 -6
  88. data/spec/dummy/app/controllers/news_controller.rb +46 -46
  89. data/spec/dummy/app/models/news.rb +7 -7
  90. data/spec/dummy/app/views/home/index.html.haml +18 -18
  91. data/spec/dummy/app/views/my/hello.html.haml +4 -4
  92. data/spec/dummy/app/views/news/index.html.haml +13 -13
  93. data/spec/dummy/app/views/news/show.html.haml +6 -6
  94. data/spec/dummy/app/views/pages/1.html.erb +16 -16
  95. data/spec/dummy/app/views/pages/about.html.erb +12 -12
  96. data/spec/dummy/app/views/pages/text1.html +1 -1
  97. data/spec/dummy/app/views/services/index.html.haml +9 -9
  98. data/spec/dummy/app/views/services/service.html.haml +2 -2
  99. data/spec/dummy/app/views/temp/html1.html +1 -1
  100. data/spec/dummy/app/views/temp/p1.html.haml +6 -6
  101. data/spec/dummy/app/views/temp/t1.html.haml +13 -13
  102. data/spec/dummy/app/views/temp9/t2.html +8 -8
  103. data/spec/dummy/app/views/workers/_breadcrumb_worker.html.haml +11 -11
  104. data/spec/dummy/app/views/workers/_breadcrumb_workers.html.haml +9 -9
  105. data/spec/dummy/app/views/workers/_contacts_our.html.haml +3 -3
  106. data/spec/dummy/app/views/workers/_list_worker.html.haml +46 -46
  107. data/spec/dummy/app/views/workers/_list_workers.html.haml +6 -6
  108. data/spec/dummy/app/views/workers/_share_js.html.haml +22 -22
  109. data/spec/dummy/app/views/workers/_share_worker.html.haml +11 -11
  110. data/spec/dummy/app/views/workers/_show_info.html.haml +53 -53
  111. data/spec/dummy/app/views/workers/_tabs.html.haml +11 -11
  112. data/spec/dummy/app/views/workers/contacts.html.haml +19 -19
  113. data/spec/dummy/app/views/workers/index.html.haml +49 -49
  114. data/spec/dummy/app/views/workers/portfolio.html.haml +20 -20
  115. data/spec/dummy/app/views/workers/services.html.haml +11 -11
  116. data/spec/dummy/app/views/workers/show.html.haml +53 -53
  117. data/spec/dummy/app/views/workers/show_notfound.html.haml +8 -8
  118. data/spec/dummy/app/views/workers/t2.html.haml +1 -1
  119. data/spec/dummy/app/views/workers/work.html.haml +43 -43
  120. data/spec/dummy/config/tinymce.yml +5 -5
  121. data/spec/dummy/db/schema.rb +164 -164
  122. data/spec/dummy/log/development.log +57 -20394
  123. data/spec/dummy/tmp/pids/server.pid +1 -1
  124. data/spec/factories/page.rb +25 -25
  125. data/spec/models/page_spec.rb +92 -92
  126. data/spec/spec_helper.rb +89 -89
  127. data/spec/support/factory_girl.rb +15 -15
  128. metadata +1435 -1821
  129. data/spec/dummy/app/views/temp/_part2.html.haml +0 -1
  130. data/spec/dummy/log/test.log +0 -203
  131. data/spec/dummy/tmp/cache/assets/development/sass/0abc660c880b2e10d695d713e519e6a4257cd348/application.css.scssc +0 -0
  132. data/spec/dummy/tmp/cache/assets/development/sass/0abc660c880b2e10d695d713e519e6a4257cd348/bootstrap_and_overrides.css.scssc +0 -0
  133. data/spec/dummy/tmp/cache/assets/development/sass/0abc660c880b2e10d695d713e519e6a4257cd348/bootstrap_custom.css.scssc +0 -0
  134. data/spec/dummy/tmp/cache/assets/development/sass/0abc660c880b2e10d695d713e519e6a4257cd348/bootstrap_variables.css.scssc +0 -0
  135. data/spec/dummy/tmp/cache/assets/development/sass/0abc660c880b2e10d695d713e519e6a4257cd348/tpl.css.scssc +0 -0
  136. data/spec/dummy/tmp/cache/assets/development/sass/18577b7353d72dbc7e81d46af07240af8557f987/_hacks.scssc +0 -0
  137. data/spec/dummy/tmp/cache/assets/development/sass/255a203cf5ecbb5470dfd267d6d4b923c8f1e5f0/_css3.scssc +0 -0
  138. data/spec/dummy/tmp/cache/assets/development/sass/255a203cf5ecbb5470dfd267d6d4b923c8f1e5f0/_support.scssc +0 -0
  139. data/spec/dummy/tmp/cache/assets/development/sass/4b8b59c3cee3225b46cdcaa54f7d0474421be9c6/_bootstrap-sprockets.scssc +0 -0
  140. data/spec/dummy/tmp/cache/assets/development/sass/7f871ea7e3a8127767d5a5868622ef2909611f26/noskin.css.scssc +0 -0
  141. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/admin.css.scssc +0 -0
  142. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/admin_tpl.css.scssc +0 -0
  143. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/bootstrap_and_overrides.css.scssc +0 -0
  144. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/bootstrap_custom.css.scssc +0 -0
  145. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/bootstrap_variables.css.scssc +0 -0
  146. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/colors.css.scssc +0 -0
  147. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/tinymce.css.scssc +0 -0
  148. data/spec/dummy/tmp/cache/assets/development/sass/a1b4b92b7663fe8c3e3678ca845c8a0566c3ca13/tpl.css.scssc +0 -0
  149. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_alerts.scssc +0 -0
  150. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_background-variant.scssc +0 -0
  151. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_border-radius.scssc +0 -0
  152. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_buttons.scssc +0 -0
  153. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_center-block.scssc +0 -0
  154. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_clearfix.scssc +0 -0
  155. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_forms.scssc +0 -0
  156. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_gradients.scssc +0 -0
  157. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_grid-framework.scssc +0 -0
  158. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_grid.scssc +0 -0
  159. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_hide-text.scssc +0 -0
  160. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_image.scssc +0 -0
  161. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_labels.scssc +0 -0
  162. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_list-group.scssc +0 -0
  163. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_nav-divider.scssc +0 -0
  164. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_nav-vertical-align.scssc +0 -0
  165. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_opacity.scssc +0 -0
  166. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_pagination.scssc +0 -0
  167. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_panels.scssc +0 -0
  168. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_progress-bar.scssc +0 -0
  169. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_reset-filter.scssc +0 -0
  170. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_resize.scssc +0 -0
  171. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_responsive-visibility.scssc +0 -0
  172. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_size.scssc +0 -0
  173. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_tab-focus.scssc +0 -0
  174. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_table-row.scssc +0 -0
  175. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_text-emphasis.scssc +0 -0
  176. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_text-overflow.scssc +0 -0
  177. data/spec/dummy/tmp/cache/assets/development/sass/bfa17faa2a4aa370d46a5900b72c48f05b4837d1/_vendor-prefixes.scssc +0 -0
  178. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_appearance.scssc +0 -0
  179. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_background-clip.scssc +0 -0
  180. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_background-origin.scssc +0 -0
  181. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_background-size.scssc +0 -0
  182. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_border-radius.scssc +0 -0
  183. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_box-shadow.scssc +0 -0
  184. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_box-sizing.scssc +0 -0
  185. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_box.scssc +0 -0
  186. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_columns.scssc +0 -0
  187. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_filter.scssc +0 -0
  188. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_font-face.scssc +0 -0
  189. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_hyphenation.scssc +0 -0
  190. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_images.scssc +0 -0
  191. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_inline-block.scssc +0 -0
  192. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_opacity.scssc +0 -0
  193. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_regions.scssc +0 -0
  194. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_shared.scssc +0 -0
  195. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_text-shadow.scssc +0 -0
  196. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_transform.scssc +0 -0
  197. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_transition.scssc +0 -0
  198. data/spec/dummy/tmp/cache/assets/development/sass/e04ca948242d213270bfe676c8b96e7b33226468/_user-interface.scssc +0 -0
  199. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_alerts.scssc +0 -0
  200. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_badges.scssc +0 -0
  201. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_breadcrumbs.scssc +0 -0
  202. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_button-groups.scssc +0 -0
  203. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_buttons.scssc +0 -0
  204. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_carousel.scssc +0 -0
  205. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_close.scssc +0 -0
  206. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_code.scssc +0 -0
  207. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_component-animations.scssc +0 -0
  208. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_dropdowns.scssc +0 -0
  209. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_forms.scssc +0 -0
  210. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_glyphicons.scssc +0 -0
  211. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_grid.scssc +0 -0
  212. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_input-groups.scssc +0 -0
  213. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_jumbotron.scssc +0 -0
  214. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_labels.scssc +0 -0
  215. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_list-group.scssc +0 -0
  216. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_media.scssc +0 -0
  217. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_mixins.scssc +0 -0
  218. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_modals.scssc +0 -0
  219. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_navbar.scssc +0 -0
  220. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_navs.scssc +0 -0
  221. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_normalize.scssc +0 -0
  222. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_pager.scssc +0 -0
  223. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_pagination.scssc +0 -0
  224. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_panels.scssc +0 -0
  225. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_popovers.scssc +0 -0
  226. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_print.scssc +0 -0
  227. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_progress-bars.scssc +0 -0
  228. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_responsive-embed.scssc +0 -0
  229. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_responsive-utilities.scssc +0 -0
  230. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_scaffolding.scssc +0 -0
  231. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_tables.scssc +0 -0
  232. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_thumbnails.scssc +0 -0
  233. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_tooltip.scssc +0 -0
  234. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_type.scssc +0 -0
  235. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_utilities.scssc +0 -0
  236. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_variables.scssc +0 -0
  237. data/spec/dummy/tmp/cache/assets/development/sass/e541a95436c6e387d69ff457c2fe7f7bd11c2069/_wells.scssc +0 -0
  238. data/spec/dummy/tmp/cache/assets/development/sass/fc41a79de5ec40d34c8a83221f3f3da2c64f4153/font-awesome.css.erbc +0 -0
  239. data/spec/dummy/tmp/cache/assets/development/sprockets/002bd8f28c62a795a10ce5716ceffc21 +0 -0
  240. data/spec/dummy/tmp/cache/assets/development/sprockets/053f826d1ea01a2fac355de0755e5c40 +0 -0
  241. data/spec/dummy/tmp/cache/assets/development/sprockets/05e27d4921b00a0fdddb47a737a64494 +0 -0
  242. data/spec/dummy/tmp/cache/assets/development/sprockets/0a470277dd21c166b9dfb68b03d34d5c +0 -0
  243. data/spec/dummy/tmp/cache/assets/development/sprockets/0b1671e1bffda60e6a95f72b9176d628 +0 -0
  244. data/spec/dummy/tmp/cache/assets/development/sprockets/0c01383de62960e3667c7bf3788ecdb6 +0 -0
  245. data/spec/dummy/tmp/cache/assets/development/sprockets/0d2f255829ff9f72d98dead4f35ddf02 +0 -0
  246. data/spec/dummy/tmp/cache/assets/development/sprockets/11f54468370774efca0fe1afb2ebf1d9 +0 -0
  247. data/spec/dummy/tmp/cache/assets/development/sprockets/1c0ef71c34dc1d573e1b4b527116e3cc +0 -0
  248. data/spec/dummy/tmp/cache/assets/development/sprockets/2168c08c151d642aa46ea4bc6283929c +0 -0
  249. data/spec/dummy/tmp/cache/assets/development/sprockets/2a9369c8d28de014045a120b692e8139 +0 -0
  250. data/spec/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  251. data/spec/dummy/tmp/cache/assets/development/sprockets/2f7d38a264678a2db4a0d569a3313cb1 +0 -0
  252. data/spec/dummy/tmp/cache/assets/development/sprockets/3240ef40c1dc9d13156bbd790ec2651a +0 -0
  253. data/spec/dummy/tmp/cache/assets/development/sprockets/332dfe4887cbad3adbd20e6609fa4960 +0 -0
  254. data/spec/dummy/tmp/cache/assets/development/sprockets/3347cc312918facec5bbac684ea65715 +0 -0
  255. data/spec/dummy/tmp/cache/assets/development/sprockets/3cd4037d8c32ad8fcdd5e3bbb8dfc35a +0 -0
  256. data/spec/dummy/tmp/cache/assets/development/sprockets/4016d2fd0b776ceb82fcbfbc5d2e26b1 +0 -0
  257. data/spec/dummy/tmp/cache/assets/development/sprockets/43dc3e92cd09deb0fc54dd97b46935e9 +0 -0
  258. data/spec/dummy/tmp/cache/assets/development/sprockets/452d7e35d5a012ae12fa7346fcf2239b +0 -0
  259. data/spec/dummy/tmp/cache/assets/development/sprockets/49c7cb5dd916ffc9e87ce3b989c92062 +0 -0
  260. data/spec/dummy/tmp/cache/assets/development/sprockets/529a74a4530de52f6c3ebbf107ffe9f2 +0 -0
  261. data/spec/dummy/tmp/cache/assets/development/sprockets/55a2847335c39261e1efe764deb18592 +0 -0
  262. data/spec/dummy/tmp/cache/assets/development/sprockets/56c7eb172a7423728c45d0a751d198e3 +0 -0
  263. data/spec/dummy/tmp/cache/assets/development/sprockets/6789fe765d536063c998330523bb12b9 +0 -0
  264. data/spec/dummy/tmp/cache/assets/development/sprockets/678a2e392e656b8132f0420e4ec28ed6 +0 -0
  265. data/spec/dummy/tmp/cache/assets/development/sprockets/6843f0414f73089579ae0f9fddf7b38f +0 -0
  266. data/spec/dummy/tmp/cache/assets/development/sprockets/6c7c58744c14732af9bf574870fdf07e +0 -0
  267. data/spec/dummy/tmp/cache/assets/development/sprockets/6cdbd6f171a27a578bcb07dd5bfa83a2 +0 -0
  268. data/spec/dummy/tmp/cache/assets/development/sprockets/6e431ed1dfb5bbcbd33a5f9e069dd3ab +0 -0
  269. data/spec/dummy/tmp/cache/assets/development/sprockets/6f943f22c610e6417422e4a13e0bcc0d +0 -0
  270. data/spec/dummy/tmp/cache/assets/development/sprockets/73fbaa501dc0b072cf2c27fa7dfe0d91 +0 -0
  271. data/spec/dummy/tmp/cache/assets/development/sprockets/7c886717bced4d59ab89e012b52f40de +0 -0
  272. data/spec/dummy/tmp/cache/assets/development/sprockets/821470da3272c8b99070972d4f4f58ca +0 -0
  273. data/spec/dummy/tmp/cache/assets/development/sprockets/88d843fcb07453d1057fac1e254fde0d +0 -0
  274. data/spec/dummy/tmp/cache/assets/development/sprockets/8956737a82f17db48d50e13f133aeefc +0 -0
  275. data/spec/dummy/tmp/cache/assets/development/sprockets/8ab512c9b33ac90e699b73469d71f061 +0 -0
  276. data/spec/dummy/tmp/cache/assets/development/sprockets/8b5a7992567ebbeb9a882d074778f8c8 +0 -0
  277. data/spec/dummy/tmp/cache/assets/development/sprockets/8d71fe4f0e2910900097bdc07bf2d6af +0 -0
  278. data/spec/dummy/tmp/cache/assets/development/sprockets/8e1785ddbfab42cd2df0416eb3932253 +0 -0
  279. data/spec/dummy/tmp/cache/assets/development/sprockets/9024d024c62c2668836b1e1b7b3b78cc +0 -0
  280. data/spec/dummy/tmp/cache/assets/development/sprockets/928ed298f875a25727ca516f5c03f344 +0 -0
  281. data/spec/dummy/tmp/cache/assets/development/sprockets/97c1e12a09973e0fb97f23a1dc496443 +0 -0
  282. data/spec/dummy/tmp/cache/assets/development/sprockets/991576185140a77411185839fd0533f1 +0 -0
  283. data/spec/dummy/tmp/cache/assets/development/sprockets/99e8d6370ba85ec4a61d953f5ed261af +0 -0
  284. data/spec/dummy/tmp/cache/assets/development/sprockets/9ee80730ab26986d507820ac7a288d5c +0 -0
  285. data/spec/dummy/tmp/cache/assets/development/sprockets/a3faca31eb11ba1a981535f9c8408282 +0 -0
  286. data/spec/dummy/tmp/cache/assets/development/sprockets/a5c68a2aec806face32c749f380f1e14 +0 -0
  287. data/spec/dummy/tmp/cache/assets/development/sprockets/a64dbcf0e4afe0985b1abd3e209d17cd +0 -0
  288. data/spec/dummy/tmp/cache/assets/development/sprockets/a6d357fbe03dae6f590180f6c5e0e148 +0 -0
  289. data/spec/dummy/tmp/cache/assets/development/sprockets/aa58fb159780a7200a1bc4c6844cc5c4 +0 -0
  290. data/spec/dummy/tmp/cache/assets/development/sprockets/aaba73a43e02d8c6550bae851f17e7a0 +0 -0
  291. data/spec/dummy/tmp/cache/assets/development/sprockets/af26c017afcf68f1edd44a4c9bb942e4 +0 -0
  292. data/spec/dummy/tmp/cache/assets/development/sprockets/b3defd466aec80b128284b8d85324630 +0 -0
  293. data/spec/dummy/tmp/cache/assets/development/sprockets/b48ed8a3de3ca66055ee4fd18b16421f +0 -0
  294. data/spec/dummy/tmp/cache/assets/development/sprockets/ba9859d0d2b7d4d7d5b03ff3a71ed478 +0 -0
  295. data/spec/dummy/tmp/cache/assets/development/sprockets/bcca522c6302f184f12fe0e8a7d7e71a +0 -0
  296. data/spec/dummy/tmp/cache/assets/development/sprockets/be8a0cd6c3605b9d7c22642609316a9f +0 -0
  297. data/spec/dummy/tmp/cache/assets/development/sprockets/c11c6d97cfc7ef7945fa87f14b44445c +0 -0
  298. data/spec/dummy/tmp/cache/assets/development/sprockets/c13fc73ceafa45876a901b3e775b83ae +0 -0
  299. data/spec/dummy/tmp/cache/assets/development/sprockets/c5f3450b5366b6fbdc4172ce089fba48 +0 -0
  300. data/spec/dummy/tmp/cache/assets/development/sprockets/c982bb1e71844744a60dc9b4afcb2f49 +0 -0
  301. data/spec/dummy/tmp/cache/assets/development/sprockets/cf24c3f1bb8adb1f168758f2bd9775c9 +0 -0
  302. data/spec/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  303. data/spec/dummy/tmp/cache/assets/development/sprockets/d3e5a199890ba7c706fc62c2b891714d +0 -0
  304. data/spec/dummy/tmp/cache/assets/development/sprockets/d584baf83d8a779d945f9668f902fa7c +0 -0
  305. data/spec/dummy/tmp/cache/assets/development/sprockets/d71b820ce5f8b310e466f517bd3a8e4b +0 -0
  306. data/spec/dummy/tmp/cache/assets/development/sprockets/d8dab59d17daf5a5081153e2ad7d09b4 +0 -0
  307. data/spec/dummy/tmp/cache/assets/development/sprockets/dd4a8658311b7a2cd8effa6479827559 +0 -0
  308. data/spec/dummy/tmp/cache/assets/development/sprockets/e11970a225a09526aac3f76d7ee91822 +0 -0
  309. data/spec/dummy/tmp/cache/assets/development/sprockets/e3dd086dd858b5bff9cfd60a031c2091 +0 -0
  310. data/spec/dummy/tmp/cache/assets/development/sprockets/e43bcf201d76cdf6e1fe345195c1cd9e +0 -0
  311. data/spec/dummy/tmp/cache/assets/development/sprockets/e945ca604ee0240455a5652953b3e495 +0 -0
  312. data/spec/dummy/tmp/cache/assets/development/sprockets/ec33505f0e2ed4dd12951ecceffa3695 +0 -0
  313. data/spec/dummy/tmp/cache/assets/development/sprockets/ee287313e28f341f83628dec0a353fa6 +0 -0
  314. data/spec/dummy/tmp/cache/assets/development/sprockets/ee9a23832dc2a49ee6ec6d3f1d6a0e1f +0 -0
  315. data/spec/dummy/tmp/cache/assets/development/sprockets/ef2d6862f5fd690c5387cafd88944a9f +0 -0
  316. data/spec/dummy/tmp/cache/assets/development/sprockets/ef8c3824b85ed745cad651aadda4f2b8 +0 -0
  317. data/spec/dummy/tmp/cache/assets/development/sprockets/f557612d05bb9fea499dce8352b3f0ca +0 -0
  318. data/spec/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  319. data/spec/dummy/tmp/cache/assets/development/sprockets/f7f3056583a2454471a4a5f7200dcefa +0 -0
  320. data/spec/dummy/tmp/cache/assets/development/sprockets/f9c51fa87975943d31bc1bfd7cb684c6 +0 -0
  321. data/spec/dummy/tmp/cache/assets/development/sprockets/ff9ed89418a3f78032b8f8184dd98e80 +0 -0
@@ -1,315 +1,315 @@
1
- module Optimacms
2
- class Admin::TemplatesController < Admin::AdminBaseController
3
-
4
- before_action :set_item, only: [:show, :edit, :update, :destroy]
5
- before_action :init_common
6
- before_action :init_data_form, only: [:new, :edit, :newfolder, :editfolder, :newattach]
7
- #before_action :set_layout_modal
8
-
9
-
10
- def init_common
11
- @modal = (params[:modal] || 0).to_i
12
- set_layout_modal(@modal)
13
-
14
- end
15
-
16
- def set_layout_modal(modal)
17
- if modal.to_i==1
18
- #self.class.layout false
19
- end
20
-
21
- end
22
-
23
-
24
- def index
25
- #@filter.clear_data
26
-
27
- #
28
- @parent_id = @filter.v('parent_id').to_i
29
- @parent = Template.find(@parent_id) rescue nil
30
-
31
- if @parent.nil? && @parent_id>0
32
- redirect_to templates_path(:parent_id=>0) and return
33
- end
34
-
35
- #
36
- @items = model.by_filter(@filter)
37
- #@items = model.where(@filter.where).order(@filter.order_string).page(@filter.page)
38
-
39
-
40
- end
41
-
42
- #include SimpleFilter::Controller
43
- search_filter :index, {save_session: true, search_method: :post_and_redirect, search_url: :search_templates_url, search_action: :search} do
44
- # define filter
45
- default_order "title", 'asc'
46
-
47
- # fields
48
- field :title, :string, :text, {label: '', default_value: '', condition: :like_full}
49
- #field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0, condition: :empty}
50
- field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: -1, condition: :custom, condition_scope: :of_parent}
51
-
52
- #field :category_id, :int, :select, {collection: [['UGX- Uganda Shillings',1],['USD- US Dollars',2]], label_method: :first, value_method: :last}
53
- #field :type_id, :int, :select, {label: 'Type', default_value: 0, collection: TemplateType.all, label_method: :title, value_method: :id}
54
- #field :type, :string, :autocomplete, {label: 'Type', default_value: '', :source_query => :autocomplete_templates_url}
55
-
56
- end
57
-
58
-
59
-
60
- def autocomplete
61
- q = params[:q]
62
- type_id = (params[:t] || TemplateType::TYPE_PAGE).to_i
63
-
64
- rows = Template.where("type_id=#{type_id} AND (basepath LIKE ? OR title like ?)", "%#{q}%", "%#{q}%").order('basepath asc').limit(20)
65
-
66
- data = rows.map{|r| [r.id, "#{r.title} (#{r.basepath})"]}
67
- render :json => data
68
- end
69
-
70
- def show
71
- end
72
-
73
- def new
74
- @item = model.new({:tpl_format=>Optimacms::Template::EXTENSION_DEFAULT, :type_id=>TemplateType::TYPE_PAGE})
75
- item_init_parent
76
- @item.set_basedirpath_from_parent
77
-
78
- @url_back = url_list
79
- end
80
-
81
-
82
- def create
83
- @item = model.new(item_params)
84
- @res = @item.save
85
-
86
- respond_to do |format|
87
- if @res
88
- format.html { redirect_to edit_template_path(@item), success: 'Successfully created' }
89
- #format.json { render json: @item, status: :created, location: user_clients_url(:action => 'index') }
90
- format.js {}
91
- else
92
- format.html { render :new }
93
- #format.json { render json: @item.errors, status: :unprocessable_entity }
94
- format.js {}
95
- end
96
- end
97
- end
98
-
99
-
100
- def edit
101
- end
102
-
103
-
104
- def update
105
-
106
- # fix line breaks
107
- content = item_params[:content]
108
- content.gsub! /\r\n/, "\n"
109
-
110
- @res = @item.update(item_params)
111
-
112
- if @res
113
- redirect_to url_list, success: 'Successfully updated'
114
- else
115
- render :edit
116
- end
117
- end
118
-
119
-
120
- def destroy
121
- @res = @item.destroy
122
-
123
- if @res
124
- redirect_to url_list, success: 'Successfully deleted'
125
- else
126
- redirect_to url_list, error: 'Cannot delete'
127
- end
128
- end
129
-
130
-
131
-
132
- def newattach
133
- @item = model.new({:tpl_format=>Optimacms::Template::EXTENSION_DEFAULT})
134
- item_init_parent
135
- @item.set_basedirpath_from_parent
136
-
137
- @url_back = url_list
138
- end
139
-
140
- def attach
141
- item_params = params.require(model_name).permit!
142
- #(:title, :basepath, :parent_id, :tpl_format)
143
- item_params[:type_id] = TemplateType::TYPE_PAGE
144
- @item = model.new(item_params)
145
- @res = @item.attach
146
-
147
- respond_to do |format|
148
- if @res
149
- format.html { redirect_to edit_template_path(@item), success: 'Successfully attached' }
150
- #format.json { render json: @item, status: :created, location: user_clients_url(:action => 'index') }
151
- format.js {}
152
- else
153
- format.html { render :newattach }
154
- #format.json { render json: @item.errors, status: :unprocessable_entity }
155
- format.js {}
156
- end
157
- end
158
- end
159
-
160
-
161
- #### folders
162
-
163
-
164
- def newfolder
165
- @item = model.new(:is_folder=>true)
166
- item_init_parent
167
- @item.basedirpath = @item.parent.basepath+'/' unless @item.parent_id.nil?
168
-
169
- end
170
-
171
- def createfolder
172
- item_params = params.require(model_name).permit(:title, :basename, :parent_id, :is_folder)
173
-
174
- @item = model.new(item_params)
175
- @res = @item.save
176
-
177
- if @res
178
- redirect_to url_list, success: 'Successfully created'
179
- else
180
- render :newfolder
181
- end
182
- end
183
-
184
-
185
- def editfolder
186
- @item = Template.folders.find(params[:id])
187
-
188
- return url_list if @item.nil?
189
-
190
- end
191
-
192
- def updatefolder
193
- @item = Template.folders.find(params[:id])
194
- item_params = params.require(model_name).permit(:title, :basename, :parent_id, :is_folder)
195
- @res = @item.update_attributes(item_params)
196
-
197
- if @res
198
- redirect_to url_list, success: 'Successfully updated'
199
- else
200
- render :editfolder
201
- end
202
- end
203
-
204
-
205
-
206
- private
207
-
208
- def init_data_form
209
- @url_back = url_list
210
-
211
- end
212
-
213
-
214
- def model
215
- Template
216
- end
217
- def model_name
218
- :template
219
- end
220
-
221
- def url_list
222
- templates_url
223
- end
224
-
225
- # Use callbacks to share common setup or constraints between actions.
226
- def set_item
227
- @item = model.find(params[:id])
228
-
229
- @url_back = url_list
230
- end
231
-
232
- def item_init_parent
233
- parent_id = params[:parent_id]
234
- parent_id = parent_id.to_i unless parent_id.nil?
235
- parent_id = nil if parent_id==0
236
-
237
- @item.parent_id = parent_id
238
- end
239
-
240
- def item_params
241
- #params.require(model_name).permit(:title)
242
- params.require(model_name).permit!
243
- end
244
-
245
-
246
- # filter
247
-
248
- def filter_prefix
249
- 'admin_templates_index_'
250
- end
251
-
252
- def init_tabledata
253
- init_filter
254
- end
255
-
256
- def init_filter
257
- # input
258
- @pg = params[:pg].to_i || 1
259
-
260
- #
261
- @filter = Filters::FormFilter.new(session, filter_prefix)
262
-
263
- # set filter fields
264
- @filter.add_fields_from_array(
265
- [
266
- {name: 'title', type: 'text', dbtype: Filters::FormFilter::DBTYPE_STRING, title: 'Title', def: '', opt: {width: 120}},
267
- {name: 'parent_id', type: 'int', dbtype: Filters::FormFilter::FIELD_TYPE_HIDDEN, title: '', def: 0},
268
- ]
269
- )
270
-
271
- #
272
- if params.has_key? :parent_id
273
- @filter.set 'parent_id', params[:parent_id]
274
- end
275
- #@filter.set 'owner_id', current_user.owner_id
276
-
277
- #
278
- @cmd = params[:cmd] || ''
279
-
280
-
281
- # post
282
- if request.post? && params[:filter]
283
- if params[:cmd]=='clear'
284
- @filter.clear_data
285
-
286
- redirect_to url_list and return
287
- else
288
- @filter.set_data_from_form(params[:filter] || [])
289
- redirect_to url_list and return
290
- end
291
-
292
- end
293
-
294
- # order
295
- @filter.set_order_default('created_at' ,'desc')
296
- #@filter.set_order('created_at' ,'desc')
297
-
298
- if @cmd=='order'
299
- @filter.set_order params[:orderby], params[:orderdir]
300
- redirect_to url_list and return
301
- end
302
-
303
-
304
- end
305
-
306
-
307
- def table_columns
308
- @table_columns = [
309
- {name: "id", title: "##"},
310
- {name: "title", title: "title"},
311
- ]
312
- end
313
-
314
- end
1
+ module Optimacms
2
+ class Admin::TemplatesController < Admin::AdminBaseController
3
+
4
+ before_action :set_item, only: [:show, :edit, :update, :destroy]
5
+ before_action :init_common
6
+ before_action :init_data_form, only: [:new, :edit, :newfolder, :editfolder, :newattach]
7
+ #before_action :set_layout_modal
8
+
9
+
10
+ def init_common
11
+ @modal = (params[:modal] || 0).to_i
12
+ set_layout_modal(@modal)
13
+
14
+ end
15
+
16
+ def set_layout_modal(modal)
17
+ if modal.to_i==1
18
+ #self.class.layout false
19
+ end
20
+
21
+ end
22
+
23
+
24
+ def index
25
+ #@filter.clear_data
26
+
27
+ #
28
+ @parent_id = @filter.v('parent_id').to_i
29
+ @parent = Template.find(@parent_id) rescue nil
30
+
31
+ if @parent.nil? && @parent_id>0
32
+ redirect_to templates_path(:parent_id=>0) and return
33
+ end
34
+
35
+ #
36
+ @items = model.by_filter(@filter)
37
+ #@items = model.where(@filter.where).order(@filter.order_string).page(@filter.page)
38
+
39
+
40
+ end
41
+
42
+ #include SimpleFilter::Controller
43
+ search_filter :index, {save_session: true, search_method: :post_and_redirect, search_url: :search_templates_url, search_action: :search} do
44
+ # define filter
45
+ default_order "title", 'asc'
46
+
47
+ # fields
48
+ field :title, :string, :text, {label: '', default_value: '', condition: :like_full}
49
+ #field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: 0, condition: :empty}
50
+ field :parent_id, :int, :hidden, {label: '', default_value: 0, ignore_value: -1, condition: :custom, condition_scope: :of_parent}
51
+
52
+ #field :category_id, :int, :select, {collection: [['UGX- Uganda Shillings',1],['USD- US Dollars',2]], label_method: :first, value_method: :last}
53
+ #field :type_id, :int, :select, {label: 'Type', default_value: 0, collection: TemplateType.all, label_method: :title, value_method: :id}
54
+ #field :type, :string, :autocomplete, {label: 'Type', default_value: '', :source_query => :autocomplete_templates_url}
55
+
56
+ end
57
+
58
+
59
+
60
+ def autocomplete
61
+ q = params[:q]
62
+ type_id = (params[:t] || TemplateType::TYPE_PAGE).to_i
63
+
64
+ rows = Template.where("type_id=#{type_id} AND (basepath LIKE ? OR title like ?)", "%#{q}%", "%#{q}%").order('basepath asc').limit(20)
65
+
66
+ data = rows.map{|r| [r.id, "#{r.title} (#{r.basepath})"]}
67
+ render :json => data
68
+ end
69
+
70
+ def show
71
+ end
72
+
73
+ def new
74
+ @item = model.new({:tpl_format=>Optimacms::Template::EXTENSION_DEFAULT, :type_id=>TemplateType::TYPE_PAGE})
75
+ item_init_parent
76
+ @item.set_basedirpath_from_parent
77
+
78
+ @url_back = url_list
79
+ end
80
+
81
+
82
+ def create
83
+ @item = model.new(item_params)
84
+ @res = @item.save
85
+
86
+ respond_to do |format|
87
+ if @res
88
+ format.html { redirect_to edit_template_path(@item), success: 'Successfully created' }
89
+ #format.json { render json: @item, status: :created, location: user_clients_url(:action => 'index') }
90
+ format.js {}
91
+ else
92
+ format.html { render :new }
93
+ #format.json { render json: @item.errors, status: :unprocessable_entity }
94
+ format.js {}
95
+ end
96
+ end
97
+ end
98
+
99
+
100
+ def edit
101
+ end
102
+
103
+
104
+ def update
105
+
106
+ # fix line breaks
107
+ content = item_params[:content]
108
+ content.gsub! /\r\n/, "\n"
109
+
110
+ @res = @item.update(item_params)
111
+
112
+ if @res
113
+ redirect_to url_list, success: 'Successfully updated'
114
+ else
115
+ render :edit
116
+ end
117
+ end
118
+
119
+
120
+ def destroy
121
+ @res = @item.destroy
122
+
123
+ if @res
124
+ redirect_to url_list, success: 'Successfully deleted'
125
+ else
126
+ redirect_to url_list, error: 'Cannot delete'
127
+ end
128
+ end
129
+
130
+
131
+
132
+ def newattach
133
+ @item = model.new({:tpl_format=>Optimacms::Template::EXTENSION_DEFAULT})
134
+ item_init_parent
135
+ @item.set_basedirpath_from_parent
136
+
137
+ @url_back = url_list
138
+ end
139
+
140
+ def attach
141
+ item_params = params.require(model_name).permit!
142
+ #(:title, :basepath, :parent_id, :tpl_format)
143
+ item_params[:type_id] = TemplateType::TYPE_PAGE
144
+ @item = model.new(item_params)
145
+ @res = @item.attach
146
+
147
+ respond_to do |format|
148
+ if @res
149
+ format.html { redirect_to edit_template_path(@item), success: 'Successfully attached' }
150
+ #format.json { render json: @item, status: :created, location: user_clients_url(:action => 'index') }
151
+ format.js {}
152
+ else
153
+ format.html { render :newattach }
154
+ #format.json { render json: @item.errors, status: :unprocessable_entity }
155
+ format.js {}
156
+ end
157
+ end
158
+ end
159
+
160
+
161
+ #### folders
162
+
163
+
164
+ def newfolder
165
+ @item = model.new(:is_folder=>true)
166
+ item_init_parent
167
+ @item.basedirpath = @item.parent.basepath+'/' unless @item.parent_id.nil?
168
+
169
+ end
170
+
171
+ def createfolder
172
+ item_params = params.require(model_name).permit(:title, :basename, :parent_id, :is_folder)
173
+
174
+ @item = model.new(item_params)
175
+ @res = @item.save
176
+
177
+ if @res
178
+ redirect_to url_list, success: 'Successfully created'
179
+ else
180
+ render :newfolder
181
+ end
182
+ end
183
+
184
+
185
+ def editfolder
186
+ @item = Template.folders.find(params[:id])
187
+
188
+ return url_list if @item.nil?
189
+
190
+ end
191
+
192
+ def updatefolder
193
+ @item = Template.folders.find(params[:id])
194
+ item_params = params.require(model_name).permit(:title, :basename, :parent_id, :is_folder)
195
+ @res = @item.update_attributes(item_params)
196
+
197
+ if @res
198
+ redirect_to url_list, success: 'Successfully updated'
199
+ else
200
+ render :editfolder
201
+ end
202
+ end
203
+
204
+
205
+
206
+ private
207
+
208
+ def init_data_form
209
+ @url_back = url_list
210
+
211
+ end
212
+
213
+
214
+ def model
215
+ Template
216
+ end
217
+ def model_name
218
+ :template
219
+ end
220
+
221
+ def url_list
222
+ templates_url
223
+ end
224
+
225
+ # Use callbacks to share common setup or constraints between actions.
226
+ def set_item
227
+ @item = model.find(params[:id])
228
+
229
+ @url_back = url_list
230
+ end
231
+
232
+ def item_init_parent
233
+ parent_id = params[:parent_id]
234
+ parent_id = parent_id.to_i unless parent_id.nil?
235
+ parent_id = nil if parent_id==0
236
+
237
+ @item.parent_id = parent_id
238
+ end
239
+
240
+ def item_params
241
+ #params.require(model_name).permit(:title)
242
+ params.require(model_name).permit!
243
+ end
244
+
245
+
246
+ # filter
247
+
248
+ def filter_prefix
249
+ 'admin_templates_index_'
250
+ end
251
+
252
+ def init_tabledata
253
+ init_filter
254
+ end
255
+
256
+ def init_filter
257
+ # input
258
+ @pg = params[:pg].to_i || 1
259
+
260
+ #
261
+ @filter = Filters::FormFilter.new(session, filter_prefix)
262
+
263
+ # set filter fields
264
+ @filter.add_fields_from_array(
265
+ [
266
+ {name: 'title', type: 'text', dbtype: Filters::FormFilter::DBTYPE_STRING, title: 'Title', def: '', opt: {width: 120}},
267
+ {name: 'parent_id', type: 'int', dbtype: Filters::FormFilter::FIELD_TYPE_HIDDEN, title: '', def: 0},
268
+ ]
269
+ )
270
+
271
+ #
272
+ if params.has_key? :parent_id
273
+ @filter.set 'parent_id', params[:parent_id]
274
+ end
275
+ #@filter.set 'owner_id', current_user.owner_id
276
+
277
+ #
278
+ @cmd = params[:cmd] || ''
279
+
280
+
281
+ # post
282
+ if request.post? && params[:filter]
283
+ if params[:cmd]=='clear'
284
+ @filter.clear_data
285
+
286
+ redirect_to url_list and return
287
+ else
288
+ @filter.set_data_from_form(params[:filter] || [])
289
+ redirect_to url_list and return
290
+ end
291
+
292
+ end
293
+
294
+ # order
295
+ @filter.set_order_default('created_at' ,'desc')
296
+ #@filter.set_order('created_at' ,'desc')
297
+
298
+ if @cmd=='order'
299
+ @filter.set_order params[:orderby], params[:orderdir]
300
+ redirect_to url_list and return
301
+ end
302
+
303
+
304
+ end
305
+
306
+
307
+ def table_columns
308
+ @table_columns = [
309
+ {name: "id", title: "##"},
310
+ {name: "title", title: "title"},
311
+ ]
312
+ end
313
+
314
+ end
315
315
  end