camaleon_cms 0.0.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of camaleon_cms might be problematic. Click here for more details.

Files changed (653) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +37 -0
  3. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  4. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  5. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  6. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  7. data/app/assets/images/admin/no_image.jpg +0 -0
  8. data/app/assets/images/bg-tree.jpeg +0 -0
  9. data/app/assets/images/camaleon-dark.png +0 -0
  10. data/app/assets/images/camaleon.png +0 -0
  11. data/app/assets/images/category-icon.png +0 -0
  12. data/app/assets/images/image-not-found.png +0 -0
  13. data/app/assets/images/language/de.png +0 -0
  14. data/app/assets/images/language/en.png +0 -0
  15. data/app/assets/images/language/es.png +0 -0
  16. data/app/assets/images/language/fr.png +0 -0
  17. data/app/assets/images/language/it.png +0 -0
  18. data/app/assets/images/language/pt.png +0 -0
  19. data/app/assets/images/language/zh.png +0 -0
  20. data/app/assets/images/loader.gif +0 -0
  21. data/app/assets/images/users/no-image.jpg +0 -0
  22. data/app/assets/javascripts/admin/actions.js +248 -0
  23. data/app/assets/javascripts/admin/admin-manifest.js +32 -0
  24. data/app/assets/javascripts/admin/bootstrap-colorpicker.js +540 -0
  25. data/app/assets/javascripts/admin/bootstrap-datepicker.js +1690 -0
  26. data/app/assets/javascripts/admin/bootstrap-datetimepicker.min.js +26 -0
  27. data/app/assets/javascripts/admin/bootstrap-select.js +1022 -0
  28. data/app/assets/javascripts/admin/core.js +267 -0
  29. data/app/assets/javascripts/admin/custom_fields.js +165 -0
  30. data/app/assets/javascripts/admin/data.js +78 -0
  31. data/app/assets/javascripts/admin/elfinder-manifest.js +7 -0
  32. data/app/assets/javascripts/admin/elfinder/elfinder.full.js +12646 -0
  33. data/app/assets/javascripts/admin/elfinder/i18n/elfinder.es.js +294 -0
  34. data/app/assets/javascripts/admin/elfinder/i18n/elfinder.fr.js +298 -0
  35. data/app/assets/javascripts/admin/elfinder/proxy/elFinderSupportVer1.js +338 -0
  36. data/app/assets/javascripts/admin/elfinder/upload_elfinder.js +236 -0
  37. data/app/assets/javascripts/admin/es.js +27 -0
  38. data/app/assets/javascripts/admin/form-builder/formbuilder.js +1250 -0
  39. data/app/assets/javascripts/admin/form-builder/vendor.js +3072 -0
  40. data/app/assets/javascripts/admin/form/cropper.min.js +9 -0
  41. data/app/assets/javascripts/admin/form/jquery.form.js +911 -0
  42. data/app/assets/javascripts/admin/jquery-sieve.js +6 -0
  43. data/app/assets/javascripts/admin/jquery-ui.min.js +10 -0
  44. data/app/assets/javascripts/admin/jquery.nestable.js +485 -0
  45. data/app/assets/javascripts/admin/jquery.slugify.js +65 -0
  46. data/app/assets/javascripts/admin/jquery.tagsinput.min.js +1 -0
  47. data/app/assets/javascripts/admin/jquery.validate.js +1415 -0
  48. data/app/assets/javascripts/admin/login.js.coffee +7 -0
  49. data/app/assets/javascripts/admin/login_manifest.js +18 -0
  50. data/app/assets/javascripts/admin/modal.js +94 -0
  51. data/app/assets/javascripts/admin/nav-menu.js +110 -0
  52. data/app/assets/javascripts/admin/plugins.js +637 -0
  53. data/app/assets/javascripts/admin/post.js +274 -0
  54. data/app/assets/javascripts/admin/tageditor/jquery.caret.min.js +2 -0
  55. data/app/assets/javascripts/admin/tageditor/jquery.tag-editor.js +352 -0
  56. data/app/assets/javascripts/admin/tinymce/langs/es.js +177 -0
  57. data/app/assets/javascripts/admin/tinymce/langs/readme.md +3 -0
  58. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-cool.gif +0 -0
  59. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-cry.gif +0 -0
  60. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-embarassed.gif +0 -0
  61. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif +0 -0
  62. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-frown.gif +0 -0
  63. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-innocent.gif +0 -0
  64. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-kiss.gif +0 -0
  65. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-laughing.gif +0 -0
  66. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-money-mouth.gif +0 -0
  67. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-sealed.gif +0 -0
  68. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-smile.gif +0 -0
  69. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-surprised.gif +0 -0
  70. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-tongue-out.gif +0 -0
  71. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-undecided.gif +0 -0
  72. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-wink.gif +0 -0
  73. data/app/assets/javascripts/admin/tinymce/plugins/emoticons/img/smiley-yell.gif +0 -0
  74. data/app/assets/javascripts/admin/tinymce/plugins/filemanager/plugin.min.js +31 -0
  75. data/app/assets/javascripts/admin/tinymce/plugins/visualblocks/css/visualblocks.css +135 -0
  76. data/app/assets/javascripts/admin/tinymce/skins/lightgray/content.min.css.scss +4 -0
  77. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  78. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.svg +62 -0
  79. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  80. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  81. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  82. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.svg +83 -0
  83. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  84. data/app/assets/javascripts/admin/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  85. data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/anchor.gif +0 -0
  86. data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/loader.gif +0 -0
  87. data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/object.gif +0 -0
  88. data/app/assets/javascripts/admin/tinymce/skins/lightgray/img/trans.gif +0 -0
  89. data/app/assets/javascripts/admin/tinymce/themes/modern/theme.min.js +1 -0
  90. data/app/assets/javascripts/admin/tinymce/tinymce.min.js +11 -0
  91. data/app/assets/javascripts/admin/translator.js +109 -0
  92. data/app/assets/javascripts/admin/underscore.js +1536 -0
  93. data/app/assets/javascripts/admin/widgets.js +53 -0
  94. data/app/assets/javascripts/audio/alert.mp3 +0 -0
  95. data/app/assets/javascripts/audio/fail.mp3 +0 -0
  96. data/app/assets/javascripts/bootstrap.min.js +7 -0
  97. data/app/assets/javascripts/elfinder_front.js +85 -0
  98. data/app/assets/javascripts/gibberish-aes.js +1017 -0
  99. data/app/assets/javascripts/jquery-1.11.3.min.js +5 -0
  100. data/app/assets/stylesheets/admin/admin-manifest.css +28 -0
  101. data/app/assets/stylesheets/admin/animate/animate.min.css +6 -0
  102. data/app/assets/stylesheets/admin/bootstrap/bootstrap-datetimepicker.css +339 -0
  103. data/app/assets/stylesheets/admin/bootstrap/bootstrap.min.css +5 -0
  104. data/app/assets/stylesheets/admin/bootstrap/images/glyphicons-halflings.png +0 -0
  105. data/app/assets/stylesheets/admin/core.scss +345 -0
  106. data/app/assets/stylesheets/admin/cropper/cropper.min.css +52 -0
  107. data/app/assets/stylesheets/admin/elfinder-manifest.css +6 -0
  108. data/app/assets/stylesheets/admin/elfinder/elfinder-theme.scss +191 -0
  109. data/app/assets/stylesheets/admin/elfinder/elfinder.css +1922 -0
  110. data/app/assets/stylesheets/admin/elfinder/images/arrows-active.png +0 -0
  111. data/app/assets/stylesheets/admin/elfinder/images/arrows-normal.png +0 -0
  112. data/app/assets/stylesheets/admin/elfinder/images/crop.gif +0 -0
  113. data/app/assets/stylesheets/admin/elfinder/images/dialogs.png +0 -0
  114. data/app/assets/stylesheets/admin/elfinder/images/icons-big.png +0 -0
  115. data/app/assets/stylesheets/admin/elfinder/images/icons-small.png +0 -0
  116. data/app/assets/stylesheets/admin/elfinder/images/logo.png +0 -0
  117. data/app/assets/stylesheets/admin/elfinder/images/progress.gif +0 -0
  118. data/app/assets/stylesheets/admin/elfinder/images/quicklook-bg.png +0 -0
  119. data/app/assets/stylesheets/admin/elfinder/images/quicklook-icons.png +0 -0
  120. data/app/assets/stylesheets/admin/elfinder/images/resize.png +0 -0
  121. data/app/assets/stylesheets/admin/elfinder/images/spinner-mini.gif +0 -0
  122. data/app/assets/stylesheets/admin/elfinder/images/toolbar.png +0 -0
  123. data/app/assets/stylesheets/admin/elfinder/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  124. data/app/assets/stylesheets/admin/elfinder/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  125. data/app/assets/stylesheets/admin/elfinder/images/ui-icons_222222_256x240.png +0 -0
  126. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.eot +0 -0
  127. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.svg +1831 -0
  128. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.ttf +0 -0
  129. data/app/assets/stylesheets/admin/fonts/OpenSans-Regular-webfont.woff +0 -0
  130. data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.eot +0 -0
  131. data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.svg +229 -0
  132. data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.ttf +0 -0
  133. data/app/assets/stylesheets/admin/fonts/glyphicons-halflings-regular.woff +0 -0
  134. data/app/assets/stylesheets/admin/form-builder/formbuilder.css +71 -0
  135. data/app/assets/stylesheets/admin/img/bg.png +0 -0
  136. data/app/assets/stylesheets/admin/img/colorpicker/alpha.png +0 -0
  137. data/app/assets/stylesheets/admin/img/colorpicker/hue.png +0 -0
  138. data/app/assets/stylesheets/admin/img/colorpicker/saturation.png +0 -0
  139. data/app/assets/stylesheets/admin/img/girls-1.jpg +0 -0
  140. data/app/assets/stylesheets/admin/img/jquery/resize-icon.png +0 -0
  141. data/app/assets/stylesheets/admin/img/loading.gif +1 -0
  142. data/app/assets/stylesheets/admin/img/logo-small.png +0 -0
  143. data/app/assets/stylesheets/admin/img/logo.png +0 -0
  144. data/app/assets/stylesheets/admin/img/no_image.jpg +0 -0
  145. data/app/assets/stylesheets/admin/img/rormeleon-white.png +0 -0
  146. data/app/assets/stylesheets/admin/img/thumb_no_found.jpg +0 -0
  147. data/app/assets/stylesheets/admin/jquery.tagsinput.css +72 -0
  148. data/app/assets/stylesheets/admin/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  149. data/app/assets/stylesheets/admin/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  150. data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  151. data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  152. data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  153. data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  154. data/app/assets/stylesheets/admin/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  155. data/app/assets/stylesheets/admin/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  156. data/app/assets/stylesheets/admin/jquery/images/ui-icons_222222_256x240.png +0 -0
  157. data/app/assets/stylesheets/admin/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
  158. data/app/assets/stylesheets/admin/jquery/images/ui-icons_454545_256x240.png +0 -0
  159. data/app/assets/stylesheets/admin/jquery/images/ui-icons_888888_256x240.png +0 -0
  160. data/app/assets/stylesheets/admin/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
  161. data/app/assets/stylesheets/admin/jquery/jquery-ui.scss +1226 -0
  162. data/app/assets/stylesheets/admin/nav-menu.css +54 -0
  163. data/app/assets/stylesheets/admin/nestable/jquery.nestable.css +103 -0
  164. data/app/assets/stylesheets/admin/tageditor/delete.png +0 -0
  165. data/app/assets/stylesheets/admin/tageditor/delete.svg +4 -0
  166. data/app/assets/stylesheets/admin/tageditor/jquery.tag-editor.css +49 -0
  167. data/app/assets/stylesheets/admin/theme-default.scss +8462 -0
  168. data/app/assets/stylesheets/admin/widgets.css.scss +26 -0
  169. data/app/assets/stylesheets/bootstrap.min.css.scss +5 -0
  170. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/css/style.css +84 -0
  171. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/editor_plugin.js +1 -0
  172. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/editor_plugin_src.js +90 -0
  173. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/img/youtube.png +0 -0
  174. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/index.html +86 -0
  175. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/js/scripts.js +1 -0
  176. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/js/scripts_src.js +81 -0
  177. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/en.js +3 -0
  178. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/en_dlg.js +12 -0
  179. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/es.js +3 -0
  180. data/app/assets/stylesheets/tinymce/plugins/youtubeIframe/langs/es_dlg.js +12 -0
  181. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/bootstrap.css +2228 -0
  182. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/content.css +189 -0
  183. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/dialog.css +295 -0
  184. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/butt2.png +0 -0
  185. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/button-bg.png +0 -0
  186. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/buttons.png +0 -0
  187. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/down_arrow.gif +0 -0
  188. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/fade-butt.png +0 -0
  189. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/icons.png +0 -0
  190. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/items.gif +0 -0
  191. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/menu-arrow.png +0 -0
  192. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/menu-check.png +0 -0
  193. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/progress.gif +0 -0
  194. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/tabs.gif +0 -0
  195. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/img/toolbarbg.png +0 -0
  196. data/app/assets/stylesheets/tinymce/themes/advanced/skins/bootstrap/ui.css +1163 -0
  197. data/app/controllers/admin/appearances/nav_menus_controller.rb +120 -0
  198. data/app/controllers/admin/appearances/themes_controller.rb +30 -0
  199. data/app/controllers/admin/appearances/widgets/assign_controller.rb +40 -0
  200. data/app/controllers/admin/appearances/widgets/main_controller.rb +57 -0
  201. data/app/controllers/admin/appearances/widgets/sidebar_controller.rb +59 -0
  202. data/app/controllers/admin/appearances_controller.rb +17 -0
  203. data/app/controllers/admin/categories_controller.rb +77 -0
  204. data/app/controllers/admin/comments_controller.rb +119 -0
  205. data/app/controllers/admin/installers_controller.rb +40 -0
  206. data/app/controllers/admin/media_controller.rb +55 -0
  207. data/app/controllers/admin/plugins_controller.rb +45 -0
  208. data/app/controllers/admin/post_tags_controller.rb +83 -0
  209. data/app/controllers/admin/posts/drafts_controller.rb +76 -0
  210. data/app/controllers/admin/posts_controller.rb +195 -0
  211. data/app/controllers/admin/sessions_controller.rb +144 -0
  212. data/app/controllers/admin/settings/custom_fields_controller.rb +85 -0
  213. data/app/controllers/admin/settings/post_types_controller.rb +73 -0
  214. data/app/controllers/admin/settings/sites_controller.rb +89 -0
  215. data/app/controllers/admin/settings_controller.rb +60 -0
  216. data/app/controllers/admin/user_roles_controller.rb +76 -0
  217. data/app/controllers/admin/users_controller.rb +120 -0
  218. data/app/controllers/admin_controller.rb +56 -0
  219. data/app/controllers/apps/plugins_admin_controller.rb +21 -0
  220. data/app/controllers/apps/plugins_front_controller.rb +21 -0
  221. data/app/controllers/apps/themes_admin_controller.rb +21 -0
  222. data/app/controllers/apps/themes_front_controller.rb +21 -0
  223. data/app/controllers/camaleon_controller.rb +87 -0
  224. data/app/controllers/concerns/frontend_concern.rb +57 -0
  225. data/app/controllers/frontend_controller.rb +240 -0
  226. data/app/decorators/application_decorator.rb +81 -0
  227. data/app/decorators/category_decorator.rb +61 -0
  228. data/app/decorators/custom_field_decorator.rb +31 -0
  229. data/app/decorators/custom_fields_concern.rb +33 -0
  230. data/app/decorators/metas_decorator_methods.rb +19 -0
  231. data/app/decorators/post_comment_decorator.rb +26 -0
  232. data/app/decorators/post_decorator.rb +162 -0
  233. data/app/decorators/post_tag_decorator.rb +36 -0
  234. data/app/decorators/post_type_decorator.rb +56 -0
  235. data/app/decorators/site_decorator.rb +136 -0
  236. data/app/decorators/term_taxonomy_decorator.rb +97 -0
  237. data/app/decorators/theme_decorator.rb +16 -0
  238. data/app/decorators/user_decorator.rb +67 -0
  239. data/app/decorators/widget_decorator.rb +13 -0
  240. data/app/helpers/admin/application_helper.rb +27 -0
  241. data/app/helpers/admin/breadcrumb_helper.rb +37 -0
  242. data/app/helpers/admin/category_helper.rb +22 -0
  243. data/app/helpers/admin/custom_fields_helper.rb +329 -0
  244. data/app/helpers/admin/menus_helper.rb +199 -0
  245. data/app/helpers/admin/post_type_helper.rb +50 -0
  246. data/app/helpers/camaleon_helper.rb +65 -0
  247. data/app/helpers/captcha_helper.rb +90 -0
  248. data/app/helpers/content_helper.rb +35 -0
  249. data/app/helpers/frontend/application_helper.rb +41 -0
  250. data/app/helpers/frontend/nav_menu_helper.rb +177 -0
  251. data/app/helpers/frontend/seo_helper.rb +60 -0
  252. data/app/helpers/frontend/site_helper.rb +60 -0
  253. data/app/helpers/hooks_helper.rb +54 -0
  254. data/app/helpers/html_helper.rb +114 -0
  255. data/app/helpers/plugins_helper.rb +129 -0
  256. data/app/helpers/session_helper.rb +108 -0
  257. data/app/helpers/short_code_helper.rb +82 -0
  258. data/app/helpers/site_helper.rb +124 -0
  259. data/app/helpers/theme_helper.rb +51 -0
  260. data/app/helpers/uploader_helper.rb +144 -0
  261. data/app/helpers/user_roles_helper.rb +14 -0
  262. data/app/mailers/html_mailer.rb +47 -0
  263. data/app/models/ability.rb +113 -0
  264. data/app/models/category.rb +55 -0
  265. data/app/models/concerns/categories_tags_for_posts.rb +140 -0
  266. data/app/models/concerns/custom_fields_read.rb +221 -0
  267. data/app/models/concerns/metas.rb +133 -0
  268. data/app/models/concerns/metas_saved.rb +10 -0
  269. data/app/models/concerns/site_public.rb +23 -0
  270. data/app/models/custom_field.rb +34 -0
  271. data/app/models/custom_field_group.rb +121 -0
  272. data/app/models/custom_fields_relationship.rb +26 -0
  273. data/app/models/meta.rb +16 -0
  274. data/app/models/nav_menu.rb +41 -0
  275. data/app/models/nav_menu_item.rb +36 -0
  276. data/app/models/plugin.rb +57 -0
  277. data/app/models/plugins.rb +13 -0
  278. data/app/models/post.rb +89 -0
  279. data/app/models/post_comment.rb +44 -0
  280. data/app/models/post_default.rb +78 -0
  281. data/app/models/post_relationship.rb +26 -0
  282. data/app/models/post_tag.rb +15 -0
  283. data/app/models/post_type.rb +125 -0
  284. data/app/models/site.rb +337 -0
  285. data/app/models/term_relationship.rb +26 -0
  286. data/app/models/term_taxonomy.rb +156 -0
  287. data/app/models/theme.rb +33 -0
  288. data/app/models/themes.rb +13 -0
  289. data/app/models/user.rb +172 -0
  290. data/app/models/user_relationship.rb +17 -0
  291. data/app/models/user_role.rb +139 -0
  292. data/app/models/widget.rb +13 -0
  293. data/app/models/widget/assigned.rb +34 -0
  294. data/app/models/widget/main.rb +52 -0
  295. data/app/models/widget/sidebar.rb +28 -0
  296. data/app/views/_flash_messages.html.erb +39 -0
  297. data/app/views/admin/appearances/_external_menu.html.erb +16 -0
  298. data/app/views/admin/appearances/menu.html.erb +199 -0
  299. data/app/views/admin/appearances/themes/index.html.erb +68 -0
  300. data/app/views/admin/appearances/themes/preview.html.erb +1 -0
  301. data/app/views/admin/appearances/themes/theme_load_data.html.erb +40 -0
  302. data/app/views/admin/appearances/widgets/assign/_form.html.erb +35 -0
  303. data/app/views/admin/appearances/widgets/main/form.html.erb +27 -0
  304. data/app/views/admin/appearances/widgets/main/index.html.erb +91 -0
  305. data/app/views/admin/appearances/widgets/sidebar/form.html.erb +23 -0
  306. data/app/views/admin/categories/_form.html.erb +42 -0
  307. data/app/views/admin/categories/edit.html.erb +18 -0
  308. data/app/views/admin/categories/index.html.erb +81 -0
  309. data/app/views/admin/comments/form.html.erb +55 -0
  310. data/app/views/admin/comments/index.html.erb +58 -0
  311. data/app/views/admin/comments/reply.html.erb +197 -0
  312. data/app/views/admin/dashboard/index.html.erb +25 -0
  313. data/app/views/admin/installers/form.html.erb +19 -0
  314. data/app/views/admin/installers/welcome.html.erb +8 -0
  315. data/app/views/admin/media/iframe.html.erb +33 -0
  316. data/app/views/admin/media/index.html.erb +31 -0
  317. data/app/views/admin/plugins/_plugins_list.html.erb +59 -0
  318. data/app/views/admin/plugins/index.html.erb +37 -0
  319. data/app/views/admin/post_tags/_form.html.erb +34 -0
  320. data/app/views/admin/post_tags/edit.html.erb +18 -0
  321. data/app/views/admin/post_tags/index.html.erb +79 -0
  322. data/app/views/admin/posts/_filter_posts.html.erb +6 -0
  323. data/app/views/admin/posts/form.html.erb +294 -0
  324. data/app/views/admin/posts/index.html.erb +121 -0
  325. data/app/views/admin/posts/show.html.erb +20 -0
  326. data/app/views/admin/sessions/forgot.html.erb +51 -0
  327. data/app/views/admin/sessions/login.html.erb +39 -0
  328. data/app/views/admin/sessions/register.html.erb +63 -0
  329. data/app/views/admin/settings/custom_fields/_meta_data.html.erb +102 -0
  330. data/app/views/admin/settings/custom_fields/_render.html.erb +73 -0
  331. data/app/views/admin/settings/custom_fields/fields/audio.html.erb +4 -0
  332. data/app/views/admin/settings/custom_fields/fields/checkbox.html.erb +3 -0
  333. data/app/views/admin/settings/custom_fields/fields/checkboxes.html.erb +5 -0
  334. data/app/views/admin/settings/custom_fields/fields/colorpicker.html.erb +7 -0
  335. data/app/views/admin/settings/custom_fields/fields/date.html.erb +7 -0
  336. data/app/views/admin/settings/custom_fields/fields/editor.html.erb +4 -0
  337. data/app/views/admin/settings/custom_fields/fields/email.html.erb +3 -0
  338. data/app/views/admin/settings/custom_fields/fields/field_attrs.html.erb +10 -0
  339. data/app/views/admin/settings/custom_fields/fields/file.html.erb +4 -0
  340. data/app/views/admin/settings/custom_fields/fields/image.html.erb +4 -0
  341. data/app/views/admin/settings/custom_fields/fields/numeric.html.erb +4 -0
  342. data/app/views/admin/settings/custom_fields/fields/phone.html.erb +3 -0
  343. data/app/views/admin/settings/custom_fields/fields/posts.html.erb +17 -0
  344. data/app/views/admin/settings/custom_fields/fields/radio.html.erb +5 -0
  345. data/app/views/admin/settings/custom_fields/fields/select.html.erb +7 -0
  346. data/app/views/admin/settings/custom_fields/fields/select_eval.html.erb +3 -0
  347. data/app/views/admin/settings/custom_fields/fields/text_area.html.erb +3 -0
  348. data/app/views/admin/settings/custom_fields/fields/text_box.html.erb +3 -0
  349. data/app/views/admin/settings/custom_fields/fields/url.html.erb +3 -0
  350. data/app/views/admin/settings/custom_fields/fields/users.html.erb +8 -0
  351. data/app/views/admin/settings/custom_fields/fields/video.html.erb +4 -0
  352. data/app/views/admin/settings/custom_fields/form.html.erb +249 -0
  353. data/app/views/admin/settings/custom_fields/get_items.html.erb +199 -0
  354. data/app/views/admin/settings/custom_fields/index.html.erb +69 -0
  355. data/app/views/admin/settings/languages.html.erb +68 -0
  356. data/app/views/admin/settings/post_types/_form.html.erb +93 -0
  357. data/app/views/admin/settings/post_types/edit.html.erb +18 -0
  358. data/app/views/admin/settings/post_types/index.html.erb +80 -0
  359. data/app/views/admin/settings/site.html.erb +124 -0
  360. data/app/views/admin/settings/sites/form.html.erb +50 -0
  361. data/app/views/admin/settings/sites/index.html.erb +56 -0
  362. data/app/views/admin/taxonomy/_form.html.erb +62 -0
  363. data/app/views/admin/taxonomy/edit.html.erb +18 -0
  364. data/app/views/admin/taxonomy/index.html.erb +79 -0
  365. data/app/views/admin/user_roles/form.html.erb +168 -0
  366. data/app/views/admin/user_roles/index.html.erb +54 -0
  367. data/app/views/admin/users/form.html.erb +305 -0
  368. data/app/views/admin/users/index.html.erb +58 -0
  369. data/app/views/admin/users/profile.html.erb +118 -0
  370. data/app/views/admin/users/profile/_activity.html.erb +180 -0
  371. data/app/views/admin/users/profile/_settings.html.erb +15 -0
  372. data/app/views/admin/users/profile_edit.html.erb +305 -0
  373. data/app/views/default_theme/admin/settings.html.erb +1 -0
  374. data/app/views/default_theme/category.html.erb +25 -0
  375. data/app/views/default_theme/category.rss.builder +23 -0
  376. data/app/views/default_theme/index.html.erb +70 -0
  377. data/app/views/default_theme/index.rss.builder +21 -0
  378. data/app/views/default_theme/layouts/_footer.html.erb +18 -0
  379. data/app/views/default_theme/layouts/_header.html.erb +38 -0
  380. data/app/views/default_theme/layouts/index.html.erb +34 -0
  381. data/app/views/default_theme/partials/_breadcrumb.html.erb +10 -0
  382. data/app/views/default_theme/partials/_categories_list.html.erb +23 -0
  383. data/app/views/default_theme/partials/_comments.html.erb +33 -0
  384. data/app/views/default_theme/partials/_comments_list.html.erb +21 -0
  385. data/app/views/default_theme/partials/_flash_messages.html.erb +26 -0
  386. data/app/views/default_theme/partials/_forms.html.erb +19 -0
  387. data/app/views/default_theme/partials/_post_list_item.html.erb +13 -0
  388. data/app/views/default_theme/partials/_render_custom_field.html.erb +57 -0
  389. data/app/views/default_theme/partials/_search_form.html.erb +10 -0
  390. data/app/views/default_theme/partials/_sidebar.html.erb +56 -0
  391. data/app/views/default_theme/post.html.erb +40 -0
  392. data/app/views/default_theme/post.rss.builder +12 -0
  393. data/app/views/default_theme/post_tag.html.erb +17 -0
  394. data/app/views/default_theme/post_tag.rss.builder +22 -0
  395. data/app/views/default_theme/post_type.html.erb +25 -0
  396. data/app/views/default_theme/post_type.rss.builder +22 -0
  397. data/app/views/default_theme/profile.html.erb +18 -0
  398. data/app/views/default_theme/robots.text.erb +1 -0
  399. data/app/views/default_theme/search.html.erb +13 -0
  400. data/app/views/default_theme/sitemap.html.erb +0 -0
  401. data/app/views/html_mailer/other.html.erb +3 -0
  402. data/app/views/html_mailer/sender.html.erb +25 -0
  403. data/app/views/layouts/admin.html.erb +164 -0
  404. data/app/views/layouts/admin/_ajax.html.erb +2 -0
  405. data/app/views/layouts/admin/_flash_messages.html.erb +49 -0
  406. data/app/views/layouts/admin/_form_error.html.erb +10 -0
  407. data/app/views/layouts/admin/_sidebar.html.erb +31 -0
  408. data/app/views/layouts/admin/installer.html.erb +36 -0
  409. data/app/views/layouts/application.html.erb +15 -0
  410. data/app/views/layouts/login.html.erb +40 -0
  411. data/app/views/shortcode_templates/form.html.erb +1 -0
  412. data/app/views/shortcode_templates/widget.html.erb +11 -0
  413. data/config/initializers/active_record_extension.rb +24 -0
  414. data/config/initializers/assets.rb +17 -0
  415. data/config/initializers/cache_helper.rb +9 -0
  416. data/config/initializers/elfinder.rb +79 -0
  417. data/config/initializers/fix_ssl.rb +14 -0
  418. data/config/initializers/mobu.rb +24 -0
  419. data/config/initializers/page_caching.rb +35 -0
  420. data/config/initializers/rufus_cron.rb +44 -0
  421. data/config/locales/admin/en.yml +561 -0
  422. data/config/locales/admin/es.yml +560 -0
  423. data/config/locales/ar.yml +275 -0
  424. data/config/locales/common.yml +125 -0
  425. data/config/locales/de.yml +210 -0
  426. data/config/locales/en.yml +207 -0
  427. data/config/locales/es.yml +198 -0
  428. data/config/locales/fr.yml +207 -0
  429. data/config/locales/languages.yml +19 -0
  430. data/config/locales/pl.yml +237 -0
  431. data/config/locales/pt.yml +201 -0
  432. data/config/locales/routes.yml +23 -0
  433. data/config/routes.rb +10 -0
  434. data/config/routes/admin.rb +119 -0
  435. data/config/routes/frontend.rb +35 -0
  436. data/config/sitemap.rb +52 -0
  437. data/config/system.json +16 -0
  438. data/db/migrate/20150611161134_post_table_into_utf8.rb +115 -0
  439. data/lib/ca-bundle.crt +3554 -0
  440. data/lib/camaleon_cms.rb +4 -0
  441. data/lib/camaleon_cms/engine.rb +60 -0
  442. data/lib/camaleon_cms/version.rb +3 -0
  443. data/lib/captcha/bumpyroad.ttf +0 -0
  444. data/lib/captcha/captcha_0.jpg +0 -0
  445. data/lib/captcha/captcha_1.jpg +0 -0
  446. data/lib/captcha/captcha_10.jpg +0 -0
  447. data/lib/captcha/captcha_11.jpg +0 -0
  448. data/lib/captcha/captcha_2.jpg +0 -0
  449. data/lib/captcha/captcha_3.jpg +0 -0
  450. data/lib/captcha/captcha_4.jpg +0 -0
  451. data/lib/captcha/captcha_5.jpg +0 -0
  452. data/lib/captcha/captcha_6.jpg +0 -0
  453. data/lib/captcha/captcha_7.jpg +0 -0
  454. data/lib/captcha/captcha_8.jpg +0 -0
  455. data/lib/captcha/captcha_9.jpg +0 -0
  456. data/lib/ext/aes_crypt.rb +246 -0
  457. data/lib/ext/array.rb +54 -0
  458. data/lib/ext/hash.rb +41 -0
  459. data/lib/ext/string.rb +159 -0
  460. data/lib/ext/translator.rb +83 -0
  461. data/lib/generators/camaleon_cms/install_generator.rb +20 -0
  462. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/admin_controller.rb +25 -0
  463. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/images/screenshot_1.jpg +0 -0
  464. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/images/screenshot_2.jpg +0 -0
  465. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/images/screenshot_3.jpg +0 -0
  466. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/assets/docs/index.html +60 -0
  467. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/attack_helper.rb +99 -0
  468. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/config.json +31 -0
  469. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/custom_models.rb +4 -0
  470. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/locales/readme.txt +1 -0
  471. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/locales/translation.yml +36 -0
  472. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/config/routes_admin.txt +2 -0
  473. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/models/attack.rb +12 -0
  474. data/lib/generators/camaleon_cms/install_template/apps/plugins/attack/views/admin/settings.html.erb +49 -0
  475. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/admin_forms_controller.rb +93 -0
  476. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/admin/form-builder/formbuilder.css +70 -0
  477. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/contact-form.css +8 -0
  478. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/front/railsform.scss +94 -0
  479. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/css/readme.txt +1 -0
  480. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_1.jpg +0 -0
  481. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_2.jpg +0 -0
  482. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_3.jpg +0 -0
  483. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_4.jpg +0 -0
  484. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/images/screenshot_5.jpg +0 -0
  485. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/docs/index.html +89 -0
  486. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/contact_form.js +2 -0
  487. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/form-builder/formbuilder.js +1271 -0
  488. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/form-builder/vendor.js +3072 -0
  489. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/assets/js/readme.txt +1 -0
  490. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/config.json +35 -0
  491. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/locales/readme.txt +1 -0
  492. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/locales/translation.yml +210 -0
  493. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/routes_admin.txt +4 -0
  494. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/config/routes_front.txt +2 -0
  495. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/contact_form_helper.rb +91 -0
  496. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/contact_form_html_helper.rb +157 -0
  497. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/front_controller.rb +106 -0
  498. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/models/contact_form.rb +26 -0
  499. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/_form.html.erb +33 -0
  500. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/edit.html.erb +375 -0
  501. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/index.html.erb +65 -0
  502. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/manual.html.erb +59 -0
  503. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/admin_forms/responses.html.erb +67 -0
  504. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/forms_shorcode.html.erb +27 -0
  505. data/lib/generators/camaleon_cms/install_template/apps/plugins/contact_form/views/front/index.html.erb +3 -0
  506. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/admin_controller.rb +35 -0
  507. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/assets/docs/images/screenshot_1.jpg +0 -0
  508. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/assets/docs/images/screenshot_2.jpg +0 -0
  509. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/assets/docs/index.html +58 -0
  510. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/config.json +21 -0
  511. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/locales/readme.txt +1 -0
  512. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/locales/translation.yml +37 -0
  513. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/config/routes_admin.txt +3 -0
  514. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/front_cache_helper.rb +154 -0
  515. data/lib/generators/camaleon_cms/install_template/apps/plugins/front_cache/views/admin/settings.html.erb +71 -0
  516. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_1.jpg +0 -0
  517. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_2.jpg +0 -0
  518. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_3.jpg +0 -0
  519. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/images/screenshot_4.jpg +0 -0
  520. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/docs/index.html +62 -0
  521. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/assets/js/form.js +29 -0
  522. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/config/config.json +24 -0
  523. data/lib/generators/camaleon_cms/install_template/apps/plugins/visibility_post/visibility_post_helper.rb +132 -0
  524. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/magnific-ver.css +394 -0
  525. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/main.css +15 -0
  526. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/style-ver.css.scss +224 -0
  527. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/css/wpbase.css +1 -0
  528. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/empe.jpg +0 -0
  529. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/image.png +0 -0
  530. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/loader.gif +0 -0
  531. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/images/zoom.png +0 -0
  532. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/hover.zoom.js +67 -0
  533. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/magnific.min.js +3 -0
  534. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/main-ver.js +46 -0
  535. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/main.js +18 -0
  536. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/assets/js/modernizr.custom.js +4 -0
  537. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/config/config.json +14 -0
  538. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/main_helper.rb +43 -0
  539. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/admin/settings.html.erb +4 -0
  540. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/index.html.erb +28 -0
  541. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/layouts/index.html.erb +85 -0
  542. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/partials/readme.txt +1 -0
  543. data/lib/generators/camaleon_cms/install_template/apps/themes/camaleon_first/views/template_sample_page.html.erb +6 -0
  544. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/css/main.css +13 -0
  545. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/css/style.css.scss +3395 -0
  546. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/css/styles.css.scss +175 -0
  547. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/COPYING.txt +9 -0
  548. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/Genericons-Regular.otf +0 -0
  549. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/LICENSE.txt +339 -0
  550. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/README.txt +123 -0
  551. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.eot +0 -0
  552. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.svg +135 -0
  553. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.ttf +0 -0
  554. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/font/genericons-regular-webfont.woff +0 -0
  555. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/genericons/genericons.css +197 -0
  556. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/circle.png +0 -0
  557. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line-2x.png +0 -0
  558. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line-light-2x.png +0 -0
  559. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line-light.png +0 -0
  560. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/dotted-line.png +0 -0
  561. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/circle-thumbnail.png +0 -0
  562. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/circle.png +0 -0
  563. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/diamond-thumbnail.png +0 -0
  564. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/diamond.png +0 -0
  565. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/star-thumbnail.png +0 -0
  566. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/headers/star.png +0 -0
  567. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/image.png +0 -0
  568. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/search-icon-2x.png +0 -0
  569. data/lib/generators/camaleon_cms/install_template/apps/themes/default/assets/images/search-icon.png +0 -0
  570. data/lib/generators/camaleon_cms/install_template/apps/themes/default/config/config.json +19 -0
  571. data/lib/generators/camaleon_cms/install_template/apps/themes/default/default_helper.rb +36 -0
  572. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/admin/settings.html.erb +1 -0
  573. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/category.html.erb +16 -0
  574. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/index.html.erb +35 -0
  575. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/layouts/index.html.erb +83 -0
  576. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/page.html.erb +22 -0
  577. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_breadcrumb.html.erb +10 -0
  578. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_categories_list.html.erb +23 -0
  579. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_comments.html.erb +25 -0
  580. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_comments_list.html.erb +20 -0
  581. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_flash_messages.html.erb +26 -0
  582. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_forms.html.erb +19 -0
  583. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_post_list_item.html.erb +34 -0
  584. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_search_form.html.erb +8 -0
  585. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/partials/_sidebar.html.erb +50 -0
  586. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/post.html.erb +22 -0
  587. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/post_tag.html.erb +14 -0
  588. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/post_type.html.erb +33 -0
  589. data/lib/generators/camaleon_cms/install_template/apps/themes/default/views/search.html.erb +17 -0
  590. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/css/bootstrap/bootstrap.min.css +6735 -0
  591. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/css/main.css +13 -0
  592. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/css/styles.css.scss +175 -0
  593. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/images/image.png +0 -0
  594. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/main.js +15 -0
  595. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/plugins/bootstrap/bootstrap.min.js +6 -0
  596. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/plugins/jquery/jquery.min.js +4 -0
  597. data/lib/generators/camaleon_cms/install_template/apps/themes/new/assets/js/plugins/modal_elfinder.js +29 -0
  598. data/lib/generators/camaleon_cms/install_template/apps/themes/new/config/config.json +26 -0
  599. data/lib/generators/camaleon_cms/install_template/apps/themes/new/custom_helper.rb +37 -0
  600. data/lib/generators/camaleon_cms/install_template/apps/themes/new/data.json +1 -0
  601. data/lib/generators/camaleon_cms/install_template/apps/themes/new/image.png +0 -0
  602. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/admin/settings.html.erb +1 -0
  603. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/category.html.erb +33 -0
  604. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/index.html.erb +70 -0
  605. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/layouts/_footer.html.erb +18 -0
  606. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/layouts/_header.html.erb +38 -0
  607. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/layouts/index.html.erb +34 -0
  608. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/page.html.erb +24 -0
  609. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_breadcrumb.html.erb +10 -0
  610. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_categories_list.html.erb +23 -0
  611. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_comments.html.erb +32 -0
  612. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_comments_list.html.erb +21 -0
  613. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_flash_messages.html.erb +26 -0
  614. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_forms.html.erb +19 -0
  615. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_post_list_item.html.erb +13 -0
  616. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_search_form.html.erb +10 -0
  617. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/partials/_sidebar.html.erb +60 -0
  618. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/post.html.erb +20 -0
  619. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/post_tag.html.erb +22 -0
  620. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/post_type.html.erb +33 -0
  621. data/lib/generators/camaleon_cms/install_template/apps/themes/new/views/search.html.erb +18 -0
  622. data/lib/generators/camaleon_cms/install_template/plugin_routes.rb +311 -0
  623. data/lib/generators/camaleon_cms/install_template/system.json +11 -0
  624. data/lib/generators/cplugin_generator.rb +80 -0
  625. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/admin_controller.rb +9 -0
  626. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/assets/css/readme.txt +1 -0
  627. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/assets/images/readme.txt +1 -0
  628. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/assets/js/readme.txt +1 -0
  629. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/config.json +18 -0
  630. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/locales/readme.txt +1 -0
  631. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/routes_admin.txt +1 -0
  632. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/config/routes_front.txt +1 -0
  633. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/front_controller.rb +9 -0
  634. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/main_helper.rb +21 -0
  635. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/models/my_plugin.rb +12 -0
  636. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/views/admin/index.html.erb +2 -0
  637. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/views/front/index.html.erb +2 -0
  638. data/lib/generators/cplugin_template/app/apps/plugins/my_plugin/views/layouts/readme.txt +2 -0
  639. data/lib/generators/ctheme_generator.rb +63 -0
  640. data/lib/generators/ctheme_template/app/apps/themes/my_theme/assets/css/main.css +12 -0
  641. data/lib/generators/ctheme_template/app/apps/themes/my_theme/assets/images/image.png +0 -0
  642. data/lib/generators/ctheme_template/app/apps/themes/my_theme/assets/js/main.js +14 -0
  643. data/lib/generators/ctheme_template/app/apps/themes/my_theme/config/config.json +14 -0
  644. data/lib/generators/ctheme_template/app/apps/themes/my_theme/main_helper.rb +25 -0
  645. data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/admin/settings.html.erb +4 -0
  646. data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/index.html.erb +25 -0
  647. data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/layouts/index.html.erb +71 -0
  648. data/lib/generators/ctheme_template/app/apps/themes/my_theme/views/partials/readme.txt +1 -0
  649. data/lib/tasks/camaleon_cms_tasks.rake +4 -0
  650. data/test/camaleon_cms_test.rb +7 -0
  651. data/test/integration/navigation_test.rb +10 -0
  652. data/test/test_helper.rb +19 -0
  653. metadata +699 -0
@@ -0,0 +1,2 @@
1
+ //= require ./form-builder/vendor
2
+ //= require ./form-builder/formbuilder
@@ -0,0 +1,1271 @@
1
+ (function() {
2
+ rivets.binders.input = {
3
+ publishes: true,
4
+ routine: rivets.binders.value.routine,
5
+ bind: function(el) {
6
+ return $(el).bind('input.rivets', this.publish);
7
+ },
8
+ unbind: function(el) {
9
+ return $(el).unbind('input.rivets');
10
+ }
11
+ };
12
+
13
+ rivets.configure({
14
+ prefix: "rv",
15
+ adapter: {
16
+ subscribe: function(obj, keypath, callback) {
17
+ callback.wrapped = function(m, v) {
18
+ return callback(v);
19
+ };
20
+ return obj.on('change:' + keypath, callback.wrapped);
21
+ },
22
+ unsubscribe: function(obj, keypath, callback) {
23
+ return obj.off('change:' + keypath, callback.wrapped);
24
+ },
25
+ read: function(obj, keypath) {
26
+ if (keypath === "cid") {
27
+ return obj.cid;
28
+ }
29
+ return obj.get(keypath);
30
+ },
31
+ publish: function(obj, keypath, value) {
32
+ if (obj.cid) {
33
+ return obj.set(keypath, value);
34
+ } else {
35
+ return obj[keypath] = value;
36
+ }
37
+ }
38
+ }
39
+ });
40
+
41
+ }).call(this);
42
+
43
+ (function() {
44
+ var BuilderView, EditFieldView, Formbuilder, FormbuilderCollection, FormbuilderModel, ViewFieldView, _ref, _ref1, _ref2, _ref3, _ref4,
45
+ __hasProp = {}.hasOwnProperty,
46
+ __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
47
+
48
+ FormbuilderModel = (function(_super) {
49
+ __extends(FormbuilderModel, _super);
50
+
51
+ function FormbuilderModel() {
52
+ _ref = FormbuilderModel.__super__.constructor.apply(this, arguments);
53
+ return _ref;
54
+ }
55
+
56
+ FormbuilderModel.prototype.sync = function() {};
57
+
58
+ FormbuilderModel.prototype.indexInDOM = function() {
59
+ var $wrapper,
60
+ _this = this;
61
+ $wrapper = $(".fb-field-wrapper").filter((function(_, el) {
62
+ return $(el).data('cid') === _this.cid;
63
+ }));
64
+ return $(".fb-field-wrapper").index($wrapper);
65
+ };
66
+
67
+ FormbuilderModel.prototype.is_input = function() {
68
+ return Formbuilder.inputFields[this.get(Formbuilder.options.mappings.FIELD_TYPE)] != null;
69
+ };
70
+
71
+ return FormbuilderModel;
72
+
73
+ })(Backbone.DeepModel);
74
+
75
+ FormbuilderCollection = (function(_super) {
76
+ __extends(FormbuilderCollection, _super);
77
+
78
+ function FormbuilderCollection() {
79
+ _ref1 = FormbuilderCollection.__super__.constructor.apply(this, arguments);
80
+ return _ref1;
81
+ }
82
+
83
+ FormbuilderCollection.prototype.initialize = function() {
84
+ return this.on('add', this.copyCidToModel);
85
+ };
86
+
87
+ FormbuilderCollection.prototype.model = FormbuilderModel;
88
+
89
+ FormbuilderCollection.prototype.comparator = function(model) {
90
+ return model.indexInDOM();
91
+ };
92
+
93
+ FormbuilderCollection.prototype.copyCidToModel = function(model) {
94
+ return model.attributes.cid = model.cid;
95
+ };
96
+
97
+ return FormbuilderCollection;
98
+
99
+ })(Backbone.Collection);
100
+
101
+ ViewFieldView = (function(_super) {
102
+ __extends(ViewFieldView, _super);
103
+
104
+ function ViewFieldView() {
105
+ _ref2 = ViewFieldView.__super__.constructor.apply(this, arguments);
106
+ return _ref2;
107
+ }
108
+
109
+ ViewFieldView.prototype.className = "fb-field-wrapper";
110
+
111
+ ViewFieldView.prototype.events = {
112
+ 'click .subtemplate-wrapper': 'focusEditView',
113
+ 'click .js-duplicate': 'duplicate',
114
+ 'click .js-clear': 'clear'
115
+ };
116
+
117
+ ViewFieldView.prototype.initialize = function(options) {
118
+ this.parentView = options.parentView;
119
+ this.listenTo(this.model, "change", this.render);
120
+ return this.listenTo(this.model, "destroy", this.remove);
121
+ };
122
+
123
+ ViewFieldView.prototype.render = function() {
124
+ this.$el.addClass('response-field-' + this.model.get(Formbuilder.options.mappings.FIELD_TYPE)).data('cid', this.model.cid).html(Formbuilder.templates["view/base" + (!this.model.is_input() ? '_non_input' : '')]({
125
+ rf: this.model
126
+ }));
127
+ return this;
128
+ };
129
+
130
+ ViewFieldView.prototype.focusEditView = function() {
131
+ return this.parentView.createAndShowEditView(this.model);
132
+ };
133
+
134
+ ViewFieldView.prototype.clear = function(e) {
135
+ var cb, x,
136
+ _this = this;
137
+ e.preventDefault();
138
+ e.stopPropagation();
139
+ cb = function() {
140
+ _this.parentView.handleFormUpdate();
141
+ return _this.model.destroy();
142
+ };
143
+ x = Formbuilder.options.CLEAR_FIELD_CONFIRM;
144
+ switch (typeof x) {
145
+ case 'string':
146
+ if (confirm(x)) {
147
+ return cb();
148
+ }
149
+ break;
150
+ case 'function':
151
+ return x(cb);
152
+ default:
153
+ return cb();
154
+ }
155
+ };
156
+
157
+ ViewFieldView.prototype.duplicate = function() {
158
+ var attrs;
159
+ attrs = _.clone(this.model.attributes);
160
+ delete attrs['id'];
161
+ attrs['label'] += ' Copy';
162
+ return this.parentView.createField(attrs, {
163
+ position: this.model.indexInDOM() + 1
164
+ });
165
+ };
166
+
167
+ return ViewFieldView;
168
+
169
+ })(Backbone.View);
170
+
171
+ EditFieldView = (function(_super) {
172
+ __extends(EditFieldView, _super);
173
+
174
+ function EditFieldView() {
175
+ _ref3 = EditFieldView.__super__.constructor.apply(this, arguments);
176
+ return _ref3;
177
+ }
178
+
179
+ EditFieldView.prototype.className = "edit-response-field";
180
+
181
+ EditFieldView.prototype.events = {
182
+ 'click .js-add-option': 'addOption',
183
+ 'click .js-remove-option': 'removeOption',
184
+ 'click .js-default-updated': 'defaultUpdated',
185
+ 'input .option-label-input': 'forceRender'
186
+ };
187
+
188
+ EditFieldView.prototype.initialize = function(options) {
189
+ this.parentView = options.parentView;
190
+ return this.listenTo(this.model, "destroy", this.remove);
191
+ };
192
+
193
+ EditFieldView.prototype.render = function() {
194
+
195
+ this.$el.html(Formbuilder.templates["edit/base" + (!this.model.is_input() ? '_non_input' : '')]({
196
+ rf: this.model
197
+ }));
198
+ this.$el.find('.fields-cid').html(this.model.attributes.cid);
199
+
200
+ rivets.bind(this.$el, {
201
+ model: this.model
202
+ });
203
+
204
+ return this;
205
+ };
206
+
207
+ EditFieldView.prototype.remove = function() {
208
+ this.parentView.editView = void 0;
209
+ this.parentView.$el.find("[data-target=\"#addField\"]").click();
210
+ return EditFieldView.__super__.remove.apply(this, arguments);
211
+ };
212
+
213
+ EditFieldView.prototype.addOption = function(e) {
214
+ var $el, i, newOption, options;
215
+ $el = $(e.currentTarget);
216
+ i = this.$el.find('.option').index($el.closest('.option'));
217
+ options = this.model.get(Formbuilder.options.mappings.OPTIONS) || [];
218
+ newOption = {
219
+ label: "",
220
+ checked: false
221
+ };
222
+ if (i > -1) {
223
+ options.splice(i + 1, 0, newOption);
224
+ } else {
225
+ options.push(newOption);
226
+ }
227
+ this.model.set(Formbuilder.options.mappings.OPTIONS, options);
228
+ this.model.trigger("change:" + Formbuilder.options.mappings.OPTIONS);
229
+ return this.forceRender();
230
+ };
231
+
232
+ EditFieldView.prototype.removeOption = function(e) {
233
+ var $el, index, options;
234
+ $el = $(e.currentTarget);
235
+ index = this.$el.find(".js-remove-option").index($el);
236
+ options = this.model.get(Formbuilder.options.mappings.OPTIONS);
237
+ options.splice(index, 1);
238
+ this.model.set(Formbuilder.options.mappings.OPTIONS, options);
239
+ this.model.trigger("change:" + Formbuilder.options.mappings.OPTIONS);
240
+ return this.forceRender();
241
+ };
242
+
243
+ EditFieldView.prototype.defaultUpdated = function(e) {
244
+ var $el;
245
+ $el = $(e.currentTarget);
246
+ if (this.model.get(Formbuilder.options.mappings.FIELD_TYPE) !== 'checkboxes') {
247
+ this.$el.find(".js-default-updated").not($el).attr('checked', false).trigger('change');
248
+ }
249
+ return this.forceRender();
250
+ };
251
+
252
+ EditFieldView.prototype.forceRender = function() {
253
+ return this.model.trigger('change');
254
+ };
255
+
256
+ return EditFieldView;
257
+
258
+ })(Backbone.View);
259
+
260
+ BuilderView = (function(_super) {
261
+ __extends(BuilderView, _super);
262
+
263
+ function BuilderView() {
264
+ _ref4 = BuilderView.__super__.constructor.apply(this, arguments);
265
+ return _ref4;
266
+ }
267
+
268
+ BuilderView.prototype.SUBVIEWS = [];
269
+
270
+ BuilderView.prototype.events = {
271
+ 'click .js-save-form': 'saveForm',
272
+ 'click .fb-tabs a': 'showTab',
273
+ 'click .fb-add-field-types a': 'addField',
274
+ 'mouseover .fb-add-field-types': 'lockLeftWrapper',
275
+ 'mouseout .fb-add-field-types': 'unlockLeftWrapper'
276
+ };
277
+
278
+ BuilderView.prototype.initialize = function(options) {
279
+ var selector;
280
+ selector = options.selector, this.formBuilder = options.formBuilder, this.bootstrapData = options.bootstrapData, Formbuilder.options.LANG = options.lang;
281
+ if (selector != null) {
282
+ this.setElement($(selector));
283
+ }
284
+ this.collection = new FormbuilderCollection;
285
+ this.collection.bind('add', this.addOne, this);
286
+ this.collection.bind('reset', this.reset, this);
287
+ this.collection.bind('change', this.handleFormUpdate, this);
288
+ this.collection.bind('destroy add reset', this.hideShowNoResponseFields, this);
289
+ this.collection.bind('destroy', this.ensureEditViewScrolled, this);
290
+ this.render();
291
+ this.collection.reset(this.bootstrapData);
292
+ return this.bindSaveEvent();
293
+ };
294
+
295
+ BuilderView.prototype.bindSaveEvent = function() {
296
+ var _this = this;
297
+ this.formSaved = true;
298
+ this.saveFormButton = this.$el.find(".js-save-form");
299
+ this.saveFormButton.attr('disabled', true).text(Formbuilder.options.dict.ALL_CHANGES_SAVED);
300
+ if (!!Formbuilder.options.AUTOSAVE) {
301
+ setInterval(function() {
302
+ return _this.saveForm.call(_this);
303
+ }, 1000);
304
+ }
305
+ return true;
306
+ return $(window).bind('beforeunload', function() {
307
+ if (_this.formSaved) {
308
+ return void 0;
309
+ } else {
310
+ return Formbuilder.options.dict.UNSAVED_CHANGES;
311
+ }
312
+ });
313
+ };
314
+
315
+ BuilderView.prototype.reset = function() {
316
+ this.$responseFields.html('');
317
+ return this.addAll();
318
+ };
319
+
320
+ BuilderView.prototype.render = function() {
321
+ var subview, _i, _len, _ref5;
322
+ this.$el.html(Formbuilder.templates['page']());
323
+ this.$fbLeft = this.$el.find('.fb-left');
324
+ this.$responseFields = this.$el.find('.fb-response-fields');
325
+ this.bindWindowScrollEvent();
326
+ this.hideShowNoResponseFields();
327
+ _ref5 = this.SUBVIEWS;
328
+ for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
329
+ subview = _ref5[_i];
330
+ new subview({
331
+ parentView: this
332
+ }).render();
333
+ }
334
+ return this;
335
+ };
336
+
337
+ BuilderView.prototype.bindWindowScrollEvent = function() {
338
+ var _this = this;
339
+ return $(window).on('scroll', function() {
340
+ var maxMargin, newMargin;
341
+ if (_this.$fbLeft.data('locked') === true) {
342
+ return;
343
+ }
344
+ newMargin = Math.max(0, $(window).scrollTop() - _this.$el.offset().top);
345
+ maxMargin = _this.$responseFields.height();
346
+ return _this.$fbLeft.css({
347
+ //'margin-top': Math.min(maxMargin, newMargin)
348
+ });
349
+ });
350
+ };
351
+
352
+ BuilderView.prototype.showTab = function(e) {
353
+ var $el, first_model, target;
354
+ $el = $(e.currentTarget);
355
+ target = $el.data('target');
356
+ $el.closest('li').addClass('active').siblings('li').removeClass('active');
357
+ $(target).addClass('active').siblings('.fb-tab-pane').removeClass('active');
358
+ if (target !== '#editField') {
359
+ this.unlockLeftWrapper();
360
+ }
361
+ if (target === '#editField' && !this.editView && (first_model = this.collection.models[0])) {
362
+ return this.createAndShowEditView(first_model);
363
+ }
364
+ };
365
+
366
+ BuilderView.prototype.addOne = function(responseField, _, options) {
367
+ var $replacePosition, view;
368
+ view = new ViewFieldView({
369
+ model: responseField,
370
+ parentView: this
371
+ });
372
+ if (options.$replaceEl != null) {
373
+ return options.$replaceEl.replaceWith(view.render().el);
374
+ } else if ((options.position == null) || options.position === -1) {
375
+ return this.$responseFields.append(view.render().el);
376
+ } else if (options.position === 0) {
377
+ return this.$responseFields.prepend(view.render().el);
378
+ } else if (($replacePosition = this.$responseFields.find(".fb-field-wrapper").eq(options.position))[0]) {
379
+ return $replacePosition.before(view.render().el);
380
+ } else {
381
+ return this.$responseFields.append(view.render().el);
382
+ }
383
+ };
384
+
385
+ BuilderView.prototype.setSortable = function() {
386
+ var _this = this;
387
+ if (this.$responseFields.hasClass('ui-sortable')) {
388
+ this.$responseFields.sortable('destroy');
389
+ }
390
+ this.$responseFields.sortable({
391
+ forcePlaceholderSize: true,
392
+ placeholder: 'sortable-placeholder',
393
+ axis: 'y',
394
+ containment: '.fb-response-fields',
395
+ stop: function(e, ui) {
396
+ var rf;
397
+ if (ui.item.data('field-type')) {
398
+ rf = _this.collection.create(Formbuilder.helpers.defaultFieldAttrs(ui.item.data('field-type')), {
399
+ $replaceEl: ui.item
400
+ });
401
+ _this.createAndShowEditView(rf);
402
+ }
403
+ _this.handleFormUpdate();
404
+ return true;
405
+ },
406
+ update: function(e, ui) {
407
+ if (!ui.item.data('field-type')) {
408
+ return _this.ensureEditViewScrolled();
409
+ }
410
+ }
411
+ });
412
+ return this.setDraggable();
413
+ };
414
+
415
+ BuilderView.prototype.setDraggable = function() {
416
+ var $addFieldButtons,
417
+ _this = this;
418
+ $addFieldButtons = this.$el.find("[data-field-type]");
419
+ //return $addFieldButtons.draggable({
420
+ // connectToSortable: this.$responseFields,
421
+ // helper: function() {
422
+ // var $helper;
423
+ // $helper = $("<div class='response-field-draggable-helper' />");
424
+ // $helper.css({
425
+ // width: _this.$responseFields.width(),
426
+ // height: '80px'
427
+ // });
428
+ // return $helper;
429
+ // }
430
+ //});
431
+ };
432
+
433
+ BuilderView.prototype.addAll = function() {
434
+ this.collection.each(this.addOne, this);
435
+ return this.setSortable();
436
+ };
437
+
438
+ BuilderView.prototype.hideShowNoResponseFields = function() {
439
+ return this.$el.find(".fb-no-response-fields")[this.collection.length > 0 ? 'hide' : 'show']();
440
+ };
441
+
442
+ BuilderView.prototype.addField = function(e) {
443
+ var field_type;
444
+ field_type = $(e.currentTarget).data('field-type');
445
+ return this.createField(Formbuilder.helpers.defaultFieldAttrs(field_type));
446
+ };
447
+
448
+ BuilderView.prototype.createField = function(attrs, options) {
449
+ var rf;
450
+ rf = this.collection.create(attrs, options);
451
+ this.createAndShowEditView(rf);
452
+ return this.handleFormUpdate();
453
+ };
454
+
455
+ BuilderView.prototype.createAndShowEditView = function(model) {
456
+ var $newEditEl, $responseFieldEl, $sortableOption;
457
+ $responseFieldEl = this.$el.find(".fb-field-wrapper").filter(function() {
458
+ return $(this).data('cid') === model.cid;
459
+ });
460
+
461
+ $responseFieldEl.addClass('editing').siblings('.fb-field-wrapper').removeClass('editing');
462
+ if (this.editView) {
463
+ if (this.editView.model.cid === model.cid) {
464
+ this.$el.find(".fb-tabs a[data-target=\"#editField\"]").click();
465
+ this.scrollLeftWrapper($responseFieldEl);
466
+ return;
467
+ }
468
+ this.editView.remove();
469
+ }
470
+ this.editView = new EditFieldView({
471
+ model: model,
472
+ parentView: this
473
+ });
474
+ $newEditEl = this.editView.render().$el;
475
+ this.$el.find(".fb-edit-field-wrapper").html($newEditEl);
476
+ this.$el.find(".fb-tabs a[data-target=\"#editField\"]").click();
477
+ this.scrollLeftWrapper($responseFieldEl);
478
+ return this;
479
+ };
480
+
481
+ BuilderView.prototype.ensureEditViewScrolled = function() {
482
+ if (!this.editView) {
483
+ return;
484
+ }
485
+ return this.scrollLeftWrapper($(".fb-field-wrapper.editing"));
486
+ };
487
+
488
+ BuilderView.prototype.scrollLeftWrapper = function($responseFieldEl) {
489
+ var _this = this;
490
+ this.unlockLeftWrapper();
491
+ if (!$responseFieldEl[0]) {
492
+ return;
493
+ }
494
+ return $.scrollWindowTo((this.$el.offset().top + $responseFieldEl.offset().top) - this.$responseFields.offset().top, 200, function() {
495
+ return _this.lockLeftWrapper();
496
+ });
497
+ };
498
+
499
+ BuilderView.prototype.lockLeftWrapper = function() {
500
+ return this.$fbLeft.data('locked', true);
501
+ };
502
+
503
+ BuilderView.prototype.unlockLeftWrapper = function() {
504
+ return this.$fbLeft.data('locked', false);
505
+ };
506
+
507
+ BuilderView.prototype.handleFormUpdate = function() {
508
+ if (this.updatingBatch) {
509
+ return;
510
+ }
511
+ this.formSaved = false;
512
+ return this.saveFormButton.removeAttr('disabled').text(Formbuilder.options.dict.SAVE_FORM);
513
+ };
514
+
515
+ BuilderView.prototype.saveForm = function(e) {
516
+ var payload;
517
+ if (this.formSaved) {
518
+ return;
519
+ }
520
+ this.formSaved = true;
521
+ this.saveFormButton.attr('disabled', true).text(Formbuilder.options.dict.ALL_CHANGES_SAVED);
522
+ this.collection.sort();
523
+ payload = JSON.stringify({
524
+ fields: this.collection.toJSON()
525
+ });
526
+ if (Formbuilder.options.HTTP_ENDPOINT) {
527
+ this.doAjaxSave(payload);
528
+ }
529
+ return this.formBuilder.trigger('save', payload);
530
+ };
531
+
532
+ BuilderView.prototype.doAjaxSave = function(payload) {
533
+ var _this = this;
534
+ return $.ajax({
535
+ url: Formbuilder.options.HTTP_ENDPOINT,
536
+ type: Formbuilder.options.HTTP_METHOD,
537
+ data: payload,
538
+ contentType: "application/json",
539
+ success: function(data) {
540
+ var datum, _i, _len, _ref5;
541
+ _this.updatingBatch = true;
542
+ for (_i = 0, _len = data.length; _i < _len; _i++) {
543
+ datum = data[_i];
544
+ if ((_ref5 = _this.collection.get(datum.cid)) != null) {
545
+ _ref5.set({
546
+ id: datum.id
547
+ });
548
+ }
549
+ _this.collection.trigger('sync');
550
+ }
551
+ return _this.updatingBatch = void 0;
552
+ }
553
+ });
554
+ };
555
+
556
+ return BuilderView;
557
+
558
+ })(Backbone.View);
559
+
560
+ Formbuilder = (function() {
561
+ Formbuilder.helpers = {
562
+ defaultFieldAttrs: function(field_type) {
563
+ var attrs, _base;
564
+ attrs = {};
565
+ attrs[Formbuilder.options.mappings.LABEL] = Formbuilder.options.LANG.untitled;
566
+ attrs[Formbuilder.options.mappings.FIELD_TYPE] = field_type;
567
+ attrs[Formbuilder.options.mappings.REQUIRED] = true;
568
+ attrs['field_options'] = {};
569
+ return (typeof (_base = Formbuilder.fields[field_type]).defaultAttributes === "function" ? _base.defaultAttributes(attrs) : void 0) || attrs;
570
+ },
571
+ simple_format: function(x) {
572
+ return x != null ? x.replace(/\n/g, '<br />') : void 0;
573
+ }
574
+ };
575
+
576
+ Formbuilder.options = {
577
+ BUTTON_CLASS: 'btn btn-default',//'fb-button',
578
+ HTTP_ENDPOINT: '',
579
+ HTTP_METHOD: 'POST',
580
+ AUTOSAVE: true,
581
+ CLEAR_FIELD_CONFIRM: false,
582
+ LANG: {},
583
+ mappings: {
584
+ FIELD_CLASS: 'field_options.field_class',
585
+ SIZE: 'field_options.size',
586
+ UNITS: 'field_options.units',
587
+ LABEL: 'label',
588
+ FIELD_TYPE: 'field_type',
589
+ REQUIRED: 'required',
590
+ ADMIN_ONLY: 'admin_only',
591
+ OPTIONS: 'field_options.options',
592
+ DESCRIPTION: 'field_options.description',
593
+ INCLUDE_OTHER: 'field_options.include_other_option',
594
+ INCLUDE_BLANK: 'field_options.include_blank_option',
595
+ INTEGER_ONLY: 'field_options.integer_only',
596
+ MIN: 'field_options.min',
597
+ MAX: 'field_options.max',
598
+ MINLENGTH: 'field_options.minlength',
599
+ MAXLENGTH: 'field_options.maxlength',
600
+ LENGTH_UNITS: 'field_options.min_max_length_units'
601
+ },
602
+ dict: {
603
+ ALL_CHANGES_SAVED: 'All changes saved',
604
+ SAVE_FORM: 'Save form',
605
+ UNSAVED_CHANGES: 'You have unsaved changes. If you leave this page, you will lose those changes!'
606
+ }
607
+ };
608
+
609
+ Formbuilder.fields = {};
610
+
611
+ Formbuilder.inputFields = {};
612
+
613
+ Formbuilder.nonInputFields = {};
614
+
615
+ Formbuilder.registerField = function(name, opts) {
616
+ var x, _i, _len, _ref5;
617
+ _ref5 = ['view', 'edit'];
618
+ for (_i = 0, _len = _ref5.length; _i < _len; _i++) {
619
+ x = _ref5[_i];
620
+ opts[x] = _.template(opts[x]);
621
+ }
622
+ opts.field_type = name;
623
+ Formbuilder.fields[name] = opts;
624
+
625
+ if (opts.type === 'non_input') {
626
+ return Formbuilder.nonInputFields[name] = opts;
627
+ } else {
628
+ return Formbuilder.inputFields[name] = opts;
629
+ }
630
+ };
631
+
632
+ function Formbuilder(opts) {
633
+ var args;
634
+ if (opts == null) {
635
+ opts = {};
636
+ }
637
+ _.extend(this, Backbone.Events);
638
+ args = _.extend(opts, {
639
+ formBuilder: this
640
+ });
641
+ this.mainView = new BuilderView(args);
642
+ }
643
+
644
+ return Formbuilder;
645
+
646
+ })();
647
+
648
+ window.Formbuilder = Formbuilder;
649
+
650
+ if (typeof module !== "undefined" && module !== null) {
651
+ module.exports = Formbuilder;
652
+ } else {
653
+ window.Formbuilder = Formbuilder;
654
+ }
655
+
656
+ }).call(this);
657
+
658
+ /*(function() {
659
+ Formbuilder.registerField('address', {
660
+ order: 50,
661
+ view: "<div class='input-line'>\n <span class='street'>\n <input type='text' />\n <label>Address</label>\n </span>\n</div>\n\n<div class='input-line'>\n <span class='city'>\n <input type='text' />\n <label>City</label>\n </span>\n\n <span class='state'>\n <input type='text' />\n <label>State / Province / Region</label>\n </span>\n</div>\n\n<div class='input-line'>\n <span class='zip'>\n <input type='text' />\n <label>Zipcode</label>\n </span>\n\n <span class='country'>\n <select><option>United States</option></select>\n <label>Country</label>\n </span>\n</div>",
662
+ edit: "",
663
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-home\"></span></span> Address"
664
+ });
665
+
666
+ }).call(this);*/
667
+
668
+ (function() {
669
+ Formbuilder.registerField('checkboxes', {
670
+ order: 10,
671
+ view: "<% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n <div class='checkbox'>\n <label>\n <input class='rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' type='checkbox' <%= rf.get(Formbuilder.options.mappings.OPTIONS)[i].checked && 'checked' %> onclick=\"javascript: return false;\" />\n <%= rf.get(Formbuilder.options.mappings.OPTIONS)[i].label %>\n </label>\n </div>\n<% } %>\n\n<% if (rf.get(Formbuilder.options.mappings.INCLUDE_OTHER)) { %>\n <div class='other-option'>\n <label>\n <input type='checkbox' />\n Other\n </label>\n\n <input type='text' />\n </div>\n<% } %>",
672
+ //edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/options']({ includeOther: false }) %>",
673
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/options']() %>",
674
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-square-o\"></span></span> Checkboxes",
675
+ defaultAttributes: function(attrs) {
676
+ attrs.field_options.options = [
677
+ {
678
+ label: Formbuilder.options.LANG.default,
679
+ checked: false
680
+ }, {
681
+ label: Formbuilder.options.LANG.default,
682
+ checked: false
683
+ }
684
+ ];
685
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
686
+ return attrs;
687
+ }
688
+ });
689
+
690
+ }).call(this);
691
+
692
+ /*(function() {
693
+ Formbuilder.registerField('date', {
694
+ order: 20,
695
+ view: "<div class='input-line'>\n <span class='month'>\n <input type=\"text\" />\n <label>MM</label>\n </span>\n\n <span class='above-line'>/</span>\n\n <span class='day'>\n <input type=\"text\" />\n <label>DD</label>\n </span>\n\n <span class='above-line'>/</span>\n\n <span class='year'>\n <input type=\"text\" />\n <label>YYYY</label>\n </span>\n</div>",
696
+ edit: "",
697
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-calendar\"></span></span> Date"
698
+ });
699
+
700
+ }).call(this); */
701
+
702
+ (function() {
703
+ Formbuilder.registerField('dropdown', {
704
+ order: 24,
705
+ view: "<select class='form-control rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>'>\n <% if (rf.get(Formbuilder.options.mappings.INCLUDE_BLANK)) { %>\n <option value=''></option>\n <% } %>\n\n <% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n <option <%= rf.get(Formbuilder.options.mappings.OPTIONS)[i].checked && 'selected' %>>\n <%= rf.get(Formbuilder.options.mappings.OPTIONS)[i].label %>\n </option>\n <% } %>\n</select>",
706
+ //edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/options']({ includeBlank: true }) %>",
707
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/options']() %>",
708
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-caret-down\"></span></span> Dropdown",
709
+ defaultAttributes: function(attrs) {
710
+ attrs.field_options.options = [
711
+ {
712
+ label: Formbuilder.options.LANG.default,
713
+ checked: false
714
+ }, {
715
+ label: Formbuilder.options.LANG.default,
716
+ checked: false
717
+ }
718
+ ];
719
+ attrs.field_options.include_blank_option = false;
720
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
721
+ return attrs;
722
+ }
723
+ });
724
+
725
+ }).call(this);
726
+
727
+ (function() {
728
+ Formbuilder.registerField('email', {
729
+ order: 40,
730
+ view: "<input type='text' class='form-control rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' />",
731
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n",
732
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-envelope-o\"></span></span> Email",
733
+ defaultAttributes: function(attrs) {
734
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
735
+ return attrs;
736
+ }
737
+ });
738
+
739
+ }).call(this);
740
+
741
+ (function() {
742
+
743
+
744
+ }).call(this);
745
+
746
+ /*(function() {
747
+ Formbuilder.registerField('number', {
748
+ order: 30,
749
+ view: "<input type='text' />\n<% if (units = rf.get(Formbuilder.options.mappings.UNITS)) { %>\n <%= units %>\n<% } %>",
750
+ edit: "<%= Formbuilder.templates['edit/min_max']() %>\n<%= Formbuilder.templates['edit/units']() %>\n<%= Formbuilder.templates['edit/integer_only']() %>",
751
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-number\">123</span></span> Number"
752
+ });
753
+
754
+ }).call(this);*/
755
+
756
+
757
+ (function() {
758
+ Formbuilder.registerField('paragraph', {
759
+ cid: '',
760
+ order: 5,
761
+ view: "<textarea class='form-control rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %> '></textarea>",
762
+ //edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/size']() %>\n<%= Formbuilder.templates['edit/min_max_length']() %>",
763
+ edit: "<%= Formbuilder.templates['edit/class']() %>",
764
+ addButton: "<span class=\"symbol\">&#182;</span> Textarea",
765
+ defaultAttributes: function(attrs) {
766
+ attrs.field_options.size = 'large';
767
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
768
+ return attrs;
769
+ }
770
+ });
771
+
772
+ }).call(this);
773
+
774
+ /*(function() {
775
+ Formbuilder.registerField('price', {
776
+ order: 45,
777
+ view: "<div class='input-line'>\n <span class='above-line'>$</span>\n <span class='dolars'>\n <input type='text' />\n <label>Dollars</label>\n </span>\n <span class='above-line'>.</span>\n <span class='cents'>\n <input type='text' />\n <label>Cents</label>\n </span>\n</div>",
778
+ edit: "",
779
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-usd\"></span></span> Price"
780
+ });
781
+
782
+ }).call(this);*/
783
+
784
+ (function() {
785
+ Formbuilder.registerField('radio', {
786
+ order: 15,
787
+ view: "<% for (i in (rf.get(Formbuilder.options.mappings.OPTIONS) || [])) { %>\n <div class='radio'>\n <label>\n <input class='rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' type='radio' <%= rf.get(Formbuilder.options.mappings.OPTIONS)[i].checked && 'checked' %> onclick=\"javascript: return false;\" />\n <%= rf.get(Formbuilder.options.mappings.OPTIONS)[i].label %>\n </label>\n </div>\n<% } %>\n\n<% if (rf.get(Formbuilder.options.mappings.INCLUDE_OTHER)) { %>\n <div class='other-option'>\n <label>\n <input type='radio' />\n Other\n </label>\n\n <input type='text' />\n </div>\n<% } %>",
788
+ //edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/options']({ includeOther: true }) %>",
789
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/options']() %>",
790
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-circle-o\"></span></span> Multiple Choice",
791
+ defaultAttributes: function(attrs) {
792
+ attrs.field_options.options = [
793
+ {
794
+ label: Formbuilder.options.LANG.default,
795
+ checked: false
796
+ }, {
797
+ label: Formbuilder.options.LANG.default,
798
+ checked: false
799
+ }
800
+ ];
801
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
802
+ return attrs;
803
+ }
804
+ });
805
+
806
+ }).call(this);
807
+
808
+ /*(function() {
809
+ Formbuilder.registerField('section_break', {
810
+ order: 0,
811
+ type: 'non_input',
812
+ view: "<label class='section-name'><%= rf.get(Formbuilder.options.mappings.LABEL) %></label>\n<p><%= rf.get(Formbuilder.options.mappings.DESCRIPTION) %></p>",
813
+ edit: "<div class='fb-edit-section-header'>Label</div>\n<input type='text' data-rv-input='model.<%= Formbuilder.options.mappings.LABEL %>' />\n<textarea data-rv-input='model.<%= Formbuilder.options.mappings.DESCRIPTION %>'\n placeholder='Add a longer description to this field'></textarea>",
814
+ addButton: "<span class='symbol'><span class='fa fa-minus'></span></span> Section Break"
815
+ });
816
+
817
+ }).call(this); */
818
+
819
+ (function() {
820
+ Formbuilder.registerField('text', {
821
+ order: 0,
822
+ view: "<input type='text' class='form-control rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' />",
823
+ //edit: "<%= Formbuilder.templates['edit/class']() %>\n<%= Formbuilder.templates['edit/size']() %>\n<%= Formbuilder.templates['edit/min_max_length']() %>",
824
+ edit: "<%= Formbuilder.templates['edit/class']() %>",
825
+ addButton: "<span class='symbol'><span class='fa fa-font'></span></span> Text",
826
+ defaultAttributes: function(attrs) {
827
+ attrs.field_options.size = 'large';
828
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
829
+ return attrs;
830
+ }
831
+ });
832
+
833
+ }).call(this);
834
+
835
+ (function() {
836
+ Formbuilder.registerField('captcha', {
837
+ order: 45,
838
+ view: "<input type='text' placeholder='' class='form-control rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' />",
839
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n",
840
+ addButton: "<span class=\"symbol\"><span class=\"glyphicon glyphicon-barcode\"></span></span> Captcha",
841
+ defaultAttributes: function(attrs) {
842
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
843
+ return attrs;
844
+ }
845
+ });
846
+
847
+ }).call(this);
848
+
849
+ (function() {
850
+ Formbuilder.registerField('file', {
851
+ order: 54,
852
+ view: "<input type='file' placeholder='' class='rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' multiple />",
853
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n",
854
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-cloud-upload\"></span></span> Upload File",
855
+ defaultAttributes: function(attrs) {
856
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
857
+ return attrs;
858
+ }
859
+ });
860
+
861
+ }).call(this);
862
+
863
+ /*(function() {
864
+ Formbuilder.registerField('time', {
865
+ order: 25,
866
+ view: "<div class='input-line'>\n <span class='hours'>\n <input type=\"text\" />\n <label>HH</label>\n </span>\n\n <span class='above-line'>:</span>\n\n <span class='minutes'>\n <input type=\"text\" />\n <label>MM</label>\n </span>\n\n <span class='above-line'>:</span>\n\n <span class='seconds'>\n <input type=\"text\" />\n <label>SS</label>\n </span>\n\n <span class='am_pm'>\n <select>\n <option>AM</option>\n <option>PM</option>\n </select>\n </span>\n</div>",
867
+ edit: "",
868
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-clock-o\"></span></span> Time"
869
+ });
870
+
871
+ }).call(this);*/
872
+
873
+ (function() {
874
+ Formbuilder.registerField('website', {
875
+ order: 35,
876
+ view: "<input type='text' placeholder='http://' class='form-control rf-clase-<%= rf.get(Formbuilder.options.mappings.FIELD_CLASS) %>' />",
877
+ edit: "<%= Formbuilder.templates['edit/class']() %>\n",
878
+ addButton: "<span class=\"symbol\"><span class=\"fa fa-link\"></span></span> Website",
879
+ defaultAttributes: function(attrs) {
880
+ attrs.field_options.field_class = Formbuilder.options.LANG.default;
881
+ return attrs;
882
+ }
883
+ });
884
+
885
+ }).call(this);
886
+
887
+ this["Formbuilder"] = this["Formbuilder"] || {};
888
+ this["Formbuilder"]["templates"] = this["Formbuilder"]["templates"] || {};
889
+
890
+ this["Formbuilder"]["templates"]["edit/base"] = function(obj) {
891
+ obj || (obj = {});
892
+ var __t, __p = '', __e = _.escape;
893
+ with (obj) {
894
+ __p +=
895
+ ((__t = ( Formbuilder.templates['edit/base_header']() )) == null ? '' : __t) +
896
+ '\n' +
897
+ ((__t = ( Formbuilder.templates['edit/common']() )) == null ? '' : __t) +
898
+ '\n' +
899
+ ((__t = ( Formbuilder.fields[rf.get(Formbuilder.options.mappings.FIELD_TYPE)].edit({rf: rf}) )) == null ? '' : __t) +
900
+ '\n';
901
+
902
+ }
903
+ return __p
904
+ };
905
+
906
+ this["Formbuilder"]["templates"]["edit/base_header"] = function(obj) {
907
+ obj || (obj = {});
908
+ var __t, __p = '', __e = _.escape;
909
+ with (obj) {
910
+ __p += '<div>cid: <span class=\'fields-cid\'></span>\n</div></div>\n' +
911
+ '';
912
+
913
+ }
914
+ return __p
915
+ };
916
+
917
+ this["Formbuilder"]["templates"]["edit/base_non_input"] = function(obj) {
918
+ obj || (obj = {});
919
+ var __t, __p = '', __e = _.escape;
920
+ with (obj) {
921
+ __p +=
922
+ ((__t = ( Formbuilder.templates['edit/base_header']() )) == null ? '' : __t) +
923
+ '\n' +
924
+ ((__t = ( Formbuilder.fields[rf.get(Formbuilder.options.mappings.FIELD_TYPE)].edit({rf: rf}) )) == null ? '' : __t) +
925
+ '\n';
926
+
927
+ }
928
+ return __p
929
+ };
930
+
931
+ this["Formbuilder"]["templates"]["edit/checkboxes"] = function(obj) {
932
+ obj || (obj = {});
933
+ var __t, __p = '', __e = _.escape;
934
+ with (obj) {
935
+ __p += '<label>\n <input type=\'checkbox\' data-rv-checked=\'model.' +
936
+ ((__t = ( Formbuilder.options.mappings.REQUIRED )) == null ? '' : __t) +
937
+ '\' />\n '+Formbuilder.options.LANG.required+'\n</label>\n<!-- label>\n <input type=\'checkbox\' data-rv-checked=\'model.' +
938
+ ((__t = ( Formbuilder.options.mappings.ADMIN_ONLY )) == null ? '' : __t) +
939
+ '\' />\n Admin only\n</label -->';
940
+
941
+ }
942
+ return __p
943
+ };
944
+
945
+ this["Formbuilder"]["templates"]["edit/common"] = function(obj) {
946
+ obj || (obj = {});
947
+ var __t, __p = '', __e = _.escape;
948
+ with (obj) {
949
+ __p += '<div class=\'fb-edit-section-header\'>'+Formbuilder.options.LANG.label+
950
+ ' (<small class=\'field-type\' data-rv-text=\'model.' +
951
+ ((__t = ( Formbuilder.options.mappings.FIELD_TYPE )) == null ? '' : __t) +
952
+ '\'></small>)\n' +
953
+ '</div>\n' +
954
+ '\n<div class=\'fb-common-wrapper\'>\n '+
955
+ '<div class=\'fb-label-description\'>\n ' +
956
+ ((__t = ( Formbuilder.templates['edit/label_description']() )) == null ? '' : __t) +
957
+ '\n </div>\n '+
958
+ '<div class=\'checkbox\'>\n ' +
959
+ ((__t = ( Formbuilder.templates['edit/checkboxes']() )) == null ? '' : __t) +
960
+ '\n </div>\n <div class=\'fb-clear\'></div>\n</div>\n';
961
+
962
+ }
963
+ return __p
964
+ };
965
+
966
+ this["Formbuilder"]["templates"]["edit/integer_only"] = function(obj) {
967
+ obj || (obj = {});
968
+ var __t, __p = '', __e = _.escape;
969
+ with (obj) {
970
+ __p += '<div class=\'fb-edit-section-header\'>Integer only</div>\n<label>\n <input type=\'checkbox\' data-rv-checked=\'model.' +
971
+ ((__t = ( Formbuilder.options.mappings.INTEGER_ONLY )) == null ? '' : __t) +
972
+ '\' />\n Only accept integers\n</label>\n';
973
+
974
+ }
975
+ return __p
976
+ };
977
+
978
+ this["Formbuilder"]["templates"]["edit/label_description"] = function(obj) {
979
+ obj || (obj = {});
980
+ var __t, __p = '', __e = _.escape;
981
+ with (obj) {
982
+ __p += '<input class=\'form-control\' type=\'text\' data-rv-input=\'model.' +
983
+ ((__t = ( Formbuilder.options.mappings.LABEL )) == null ? '' : __t) +
984
+ '\' />\n<br><br><textarea class=\'form-control\' data-rv-input=\'model.' +
985
+ ((__t = ( Formbuilder.options.mappings.DESCRIPTION )) == null ? '' : __t) +
986
+ '\'\n placeholder=\''+Formbuilder.options.LANG.msg_add_longer_description_field+'\'></textarea>';
987
+
988
+ }
989
+ return __p
990
+ };
991
+
992
+
993
+ this["Formbuilder"]["templates"]["edit/min_max"] = function(obj) {
994
+ obj || (obj = {});
995
+ var __t, __p = '', __e = _.escape;
996
+ with (obj) {
997
+ __p += '<div class=\'fb-edit-section-header\'>Minimum / Maximum</div>\n\nAbove\n<input type="text" data-rv-input="model.' +
998
+ ((__t = ( Formbuilder.options.mappings.MIN )) == null ? '' : __t) +
999
+ '" style="width: 30px" />\n\n&nbsp;&nbsp;\n\nBelow\n<input type="text" data-rv-input="model.' +
1000
+ ((__t = ( Formbuilder.options.mappings.MAX )) == null ? '' : __t) +
1001
+ '" style="width: 30px" />\n';
1002
+
1003
+ }
1004
+ return __p
1005
+ };
1006
+
1007
+ this["Formbuilder"]["templates"]["edit/min_max_length"] = function(obj) {
1008
+ obj || (obj = {});
1009
+ var __t, __p = '', __e = _.escape;
1010
+ with (obj) {
1011
+ __p += '<div class=\'fb-edit-section-header\'>Length Limit</div>\n\nMin\n<input type="text" data-rv-input="model.' +
1012
+ ((__t = ( Formbuilder.options.mappings.MINLENGTH )) == null ? '' : __t) +
1013
+ '" style="width: 30px" />\n\n&nbsp;&nbsp;\n\nMax\n<input type="text" data-rv-input="model.' +
1014
+ ((__t = ( Formbuilder.options.mappings.MAXLENGTH )) == null ? '' : __t) +
1015
+ '" style="width: 30px" />\n\n&nbsp;&nbsp;\n\n<select data-rv-value="model.' +
1016
+ ((__t = ( Formbuilder.options.mappings.LENGTH_UNITS )) == null ? '' : __t) +
1017
+ '" style="width: auto;">\n <option value="characters">characters</option>\n <option value="words">words</option>\n</select>\n';
1018
+
1019
+ }
1020
+ return __p
1021
+ };
1022
+
1023
+ this["Formbuilder"]["templates"]["edit/options"] = function(obj) {
1024
+ obj || (obj = {});
1025
+ var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
1026
+ function print() { __p += __j.call(arguments, '') }
1027
+ with (obj) {
1028
+ __p += '<div class=\'fb-edit-section-header\'>'+Formbuilder.options.LANG.options+'</div>\n\n';
1029
+ if (typeof includeBlank !== 'undefined'){ ;
1030
+ __p += '\n <label>\n <input type=\'checkbox\' data-rv-checked=\'model.' +
1031
+ ((__t = ( Formbuilder.options.mappings.INCLUDE_BLANK )) == null ? '' : __t) +
1032
+ '\' />\n '+Formbuilder.options.LANG.include_lank+' \n </label>\n';
1033
+ } ;
1034
+ __p += '\n\n<div class=\'option\' data-rv-each-option=\'model.' +
1035
+ ((__t = ( Formbuilder.options.mappings.OPTIONS )) == null ? '' : __t) +
1036
+ '\'>\n <input type="checkbox" class=\'js-default-updated\' data-rv-checked="option:checked" />\n <input type="text" data-rv-input="option:label" class=\'option-label-input\' />\n <a class="js-add-option ' +
1037
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1038
+ '" title="'+Formbuilder.options.LANG.add_option+'"><i class=\'fa fa-plus-circle\'></i></a>\n <a class="js-remove-option ' +
1039
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1040
+ '" title="'+Formbuilder.options.LANG.remove_option+'"><i class=\'fa fa-minus-circle\'></i></a>\n</div>\n\n';
1041
+ if (typeof includeOther !== 'undefined'){ ;
1042
+ __p += '\n <label>\n <input type=\'checkbox\' data-rv-checked=\'model.' +
1043
+ ((__t = ( Formbuilder.options.mappings.INCLUDE_OTHER )) == null ? '' : __t) +
1044
+ '\' />\n '+Formbuilder.options.LANG.include_other+' \n </label>\n';
1045
+ } ;
1046
+ __p += '\n\n<div class=\'fb-bottom-add\'>\n <a class="js-add-option ' +
1047
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1048
+ '">'+Formbuilder.options.LANG.add_option+'</a>\n</div>\n';
1049
+
1050
+ }
1051
+ return __p
1052
+ };
1053
+
1054
+ this["Formbuilder"]["templates"]["edit/size"] = function(obj) {
1055
+ obj || (obj = {});
1056
+ var __t, __p = '', __e = _.escape;
1057
+ with (obj) {
1058
+ __p += '<div class=\'fb-edit-section-header\'>Size</div>\n<select data-rv-value="model.' +
1059
+ ((__t = ( Formbuilder.options.mappings.SIZE )) == null ? '' : __t) +
1060
+ '">\n <option value="small">Small</option>\n <option value="medium">Medium</option>\n <option value="large">Large</option>\n</select>\n';
1061
+
1062
+ }
1063
+ return __p
1064
+ };
1065
+
1066
+
1067
+ /* add function field_class */
1068
+ this["Formbuilder"]["templates"]["edit/class"] = function(obj) {
1069
+ obj || (obj = {});
1070
+ var __t, __p = '', __e = _.escape;
1071
+ with (obj) {
1072
+ __p += '<div class=\'fb-edit-section-header\'>'+Formbuilder.options.LANG.custom_class+'</div>\n<input class="form-control" type="text" data-rv-input="model.' +
1073
+ ((__t = ( Formbuilder.options.mappings.FIELD_CLASS )) == null ? '' : __t) +
1074
+ '" />\n';
1075
+
1076
+ }
1077
+ return __p
1078
+ };
1079
+ /* end function field_class*/
1080
+
1081
+
1082
+ this["Formbuilder"]["templates"]["edit/units"] = function(obj) {
1083
+ obj || (obj = {});
1084
+ var __t, __p = '', __e = _.escape;
1085
+ with (obj) {
1086
+ __p += '<div class=\'fb-edit-section-header\'>Units</div>\n<input type="text" data-rv-input="model.' +
1087
+ ((__t = ( Formbuilder.options.mappings.UNITS )) == null ? '' : __t) +
1088
+ '" />\n';
1089
+
1090
+ }
1091
+ return __p
1092
+ };
1093
+
1094
+ this["Formbuilder"]["templates"]["page"] = function(obj) {
1095
+ obj || (obj = {});
1096
+ var __t, __p = '', __e = _.escape;
1097
+ with (obj) {
1098
+ __p +=
1099
+ //
1100
+ // ((__t = ( Formbuilder.templates['partials/save_button']() )) == null ? '' : __t) +
1101
+ '\n' +
1102
+ ((__t = ( Formbuilder.templates['partials/left_side']() )) == null ? '' : __t) +
1103
+ '\n' +
1104
+ ((__t = ( Formbuilder.templates['partials/right_side']() )) == null ? '' : __t) +
1105
+ '\n<div class=\'fb-clear\'></div>\n</div>';
1106
+
1107
+ }
1108
+ return __p
1109
+ };
1110
+
1111
+ this["Formbuilder"]["templates"]["partials/add_field"] = function(obj) {
1112
+ obj || (obj = {});
1113
+ var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
1114
+ function print() { __p += __j.call(arguments, '') }
1115
+ with (obj) {
1116
+ __p += '<div class=\'fb-tab-pane active\' id=\'addField\'>\n <div class=\'fb-add-field-types\'>\n <div class=\'section\'>\n ';
1117
+ _.each(_.sortBy(Formbuilder.inputFields, 'order'), function(f){ ;
1118
+ __p += '\n <a data-field-type="' +
1119
+ ((__t = ( f.field_type )) == null ? '' : __t) +
1120
+ '" class="' +
1121
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1122
+ '">\n ' +
1123
+ ((__t = ( f.addButton )) == null ? '' : __t) +
1124
+ '\n </a>\n ';
1125
+ }); ;
1126
+ __p += '\n </div>\n\n <div class=\'section\'>\n ';
1127
+ _.each(_.sortBy(Formbuilder.nonInputFields, 'order'), function(f){ ;
1128
+ __p += '\n <a data-field-type="' +
1129
+ ((__t = ( f.field_type )) == null ? '' : __t) +
1130
+ '" class="' +
1131
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1132
+ '">\n ' +
1133
+ ((__t = ( f.addButton )) == null ? '' : __t) +
1134
+ '\n </a>\n ';
1135
+ }); ;
1136
+ __p += '\n </div>\n </div>\n</div>\n';
1137
+
1138
+ }
1139
+ return __p
1140
+ };
1141
+
1142
+ this["Formbuilder"]["templates"]["partials/edit_field"] = function(obj) {
1143
+ obj || (obj = {});
1144
+ var __t, __p = '', __e = _.escape;
1145
+ with (obj) {
1146
+ __p += '<div class=\'fb-tab-pane\' id=\'editField\'>\n <div class=\'fb-edit-field-wrapper\'></div>\n</div>\n';
1147
+
1148
+ }
1149
+ return __p
1150
+ };
1151
+
1152
+ this["Formbuilder"]["templates"]["partials/left_side"] = function(obj) {
1153
+ obj || (obj = {});
1154
+ var __t, __p = '', __e = _.escape;
1155
+ with (obj) {
1156
+ __p += '<div class=\'row\'>\n' +
1157
+ '<div class=\'col-md-6 \'>\n ' +
1158
+ '<div class=\'panel panel-default\'>\n' +
1159
+ '<div class=\'panel-heading\'>\n' +
1160
+ '<h3 class=\'panel-title\'>'+Formbuilder.options.LANG.edit_field+'</h3>\n' +
1161
+ '<ul class=\'panel-controls\'>\n' +
1162
+ '<li>\n<a href=\'#\' class=\'panel-collapse\'>\n<span class=\'fa fa-angle-down\'></span>\n</a>\n</li>\n' +
1163
+ '</ul>' +
1164
+ '</div>\n' +
1165
+ '<div class=\'panel-body\'>\n' +
1166
+ '<div class=\'fb-no-response-fields\'>'+lang.message_no_response_fields+'</div>\n ' +
1167
+ '<div class=\'fb-response-fields\'></div>\n' +
1168
+ '</div>\n' +
1169
+ '</div>\n' +
1170
+ '</div>\n';
1171
+
1172
+ }
1173
+ return __p
1174
+ };
1175
+
1176
+ this["Formbuilder"]["templates"]["partials/right_side"] = function(obj) {
1177
+ obj || (obj = {});
1178
+ var __t, __p = '', __e = _.escape;
1179
+ with (obj) {
1180
+ __p += '<div class=\'col-md-6 \'>\n <div class=\'panel panel-default\'>\n<div class=\'panel-heading\'><h3 class=\'panel-title\'>'+Formbuilder.options.LANG.add_field+'</h3>\n' +
1181
+ '<ul class=\'panel-controls\'>\n<li>\n<a href=\'#\' class=\'panel-collapse\'>\n<span class=\'fa fa-angle-down\'></span>\n</a>\n</li>\n</ul></div>\n' +
1182
+ '<div class=\'panel-body\'>\n <ul class=\'fb-tabs\'>\n <li class=\'active\'><a data-target=\'#addField\'>'+Formbuilder.options.LANG.add_new_field+'</a></li>\n<li>' +
1183
+ '<a data-target=\'#editField\'>'+Formbuilder.options.LANG.edit_field+'</a></li>\n </ul>\n\n <div class=\'fb-tab-content\'>\n ' +
1184
+ ((__t = ( Formbuilder.templates['partials/add_field']() )) == null ? '' : __t) +
1185
+ '\n ' +
1186
+ ((__t = ( Formbuilder.templates['partials/edit_field']() )) == null ? '' : __t) +
1187
+ '\n </div>\n</div>\n</div>\n</div>';
1188
+ }
1189
+ return __p
1190
+ };
1191
+
1192
+ this["Formbuilder"]["templates"]["partials/save_button"] = function(obj) {
1193
+ obj || (obj = {});
1194
+ var __t, __p = '', __e = _.escape;
1195
+ with (obj) {
1196
+ __p += '<div class=\'row fb-save-wrapper\'>\n <button class=\'js-save-form ' +
1197
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1198
+ '\'></button>\n</div>';
1199
+
1200
+ }
1201
+ return __p
1202
+ };
1203
+
1204
+ this["Formbuilder"]["templates"]["view/base"] = function(obj) {
1205
+ obj || (obj = {});
1206
+ var __t, __p = '', __e = _.escape;
1207
+ with (obj) {
1208
+ __p += '<div class=\'subtemplate-wrapper\'>\n <div class=\'cover\'></div>\n ' +
1209
+ ((__t = ( Formbuilder.templates['view/label']({rf: rf}) )) == null ? '' : __t) +
1210
+ '\n\n ' +
1211
+ ((__t = ( Formbuilder.fields[rf.get(Formbuilder.options.mappings.FIELD_TYPE)].view({rf: rf}) )) == null ? '' : __t) +
1212
+ '\n\n ' +
1213
+ ((__t = ( Formbuilder.templates['view/description']({rf: rf}) )) == null ? '' : __t) +
1214
+ '\n ' +
1215
+ ((__t = ( Formbuilder.templates['view/duplicate_remove']({rf: rf}) )) == null ? '' : __t) +
1216
+ '\n</div>\n';
1217
+
1218
+ }
1219
+ return __p
1220
+ };
1221
+
1222
+ this["Formbuilder"]["templates"]["view/base_non_input"] = function(obj) {
1223
+ obj || (obj = {});
1224
+ var __t, __p = '', __e = _.escape;
1225
+ with (obj) {
1226
+ __p += '';
1227
+
1228
+ }
1229
+ return __p
1230
+ };
1231
+
1232
+ this["Formbuilder"]["templates"]["view/description"] = function(obj) {
1233
+ obj || (obj = {});
1234
+ var __t, __p = '', __e = _.escape;
1235
+ with (obj) {
1236
+ __p += '<span class=\'help-block\'>\n ' +
1237
+ ((__t = ( Formbuilder.helpers.simple_format(rf.get(Formbuilder.options.mappings.DESCRIPTION)) )) == null ? '' : __t) +
1238
+ '\n</span>\n';
1239
+
1240
+ }
1241
+ return __p
1242
+ };
1243
+
1244
+ this["Formbuilder"]["templates"]["view/duplicate_remove"] = function(obj) {
1245
+ obj || (obj = {});
1246
+ var __t, __p = '', __e = _.escape;
1247
+ with (obj) {
1248
+ __p += '<div class=\'actions-wrapper\'>\n <a class="js-clear ' +
1249
+ ((__t = ( Formbuilder.options.BUTTON_CLASS )) == null ? '' : __t) +
1250
+ '" title="'+Formbuilder.options.LANG.remove_field+'"><i class=\'fa fa-minus-circle\'></i></a>\n</div>';
1251
+
1252
+ }
1253
+ return __p
1254
+ };
1255
+
1256
+ this["Formbuilder"]["templates"]["view/label"] = function(obj) {
1257
+ obj || (obj = {});
1258
+ var __t, __p = '', __e = _.escape, __j = Array.prototype.join;
1259
+ function print() { __p += __j.call(arguments, '') }
1260
+ with (obj) {
1261
+ __p += '<label>\n <span>' +
1262
+ ((__t = ( Formbuilder.helpers.simple_format(rf.get(Formbuilder.options.mappings.LABEL)) )) == null ? '' : __t) +
1263
+ '\n ';
1264
+ if (rf.get(Formbuilder.options.mappings.REQUIRED)) { ;
1265
+ __p += '\n <abbr title=\'required\'>*</abbr>\n ';
1266
+ } ;
1267
+ __p += '\n</label>\n';
1268
+
1269
+ }
1270
+ return __p
1271
+ };