binda 0.0.7 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +850 -18
  3. data/Rakefile +1 -13
  4. data/app/assets/javascripts/binda/application.js +23 -0
  5. data/app/assets/javascripts/binda/components/bootstrap.js +9 -0
  6. data/app/assets/javascripts/binda/components/field_group_editor.js +18 -0
  7. data/app/assets/javascripts/binda/components/fileupload.js +182 -0
  8. data/app/assets/javascripts/binda/components/form_item.js +91 -23
  9. data/app/assets/javascripts/binda/components/form_item_choice.js +15 -8
  10. data/app/assets/javascripts/binda/components/form_item_editor.js +6 -6
  11. data/app/assets/javascripts/binda/components/form_item_image.js +23 -0
  12. data/app/assets/javascripts/binda/components/form_item_repeater.js +70 -23
  13. data/app/assets/javascripts/binda/components/login-shader.js +193 -0
  14. data/app/assets/javascripts/binda/components/login_form.js +116 -0
  15. data/app/assets/javascripts/binda/components/radio-toggle.js +18 -0
  16. data/app/assets/javascripts/binda/components/select2.js +22 -0
  17. data/app/assets/javascripts/binda/components/sortable.js +53 -8
  18. data/app/assets/javascripts/binda/dist/binda.bundle.js +914 -107
  19. data/app/assets/javascripts/binda/index.js +26 -3
  20. data/app/assets/stylesheets/binda/application.scss +6 -0
  21. data/app/assets/stylesheets/binda/components/assets_manager.scss +46 -36
  22. data/app/assets/stylesheets/binda/components/b-btn.scss +114 -0
  23. data/app/assets/stylesheets/binda/components/button.scss +4 -1
  24. data/app/assets/stylesheets/binda/components/fileupload.scss +134 -0
  25. data/app/assets/stylesheets/binda/components/form_item.scss +233 -168
  26. data/app/assets/stylesheets/binda/components/form_item_image.scss +0 -0
  27. data/app/assets/stylesheets/binda/components/form_item_video.scss +25 -0
  28. data/app/assets/stylesheets/binda/components/main_container.scss +3 -0
  29. data/app/assets/stylesheets/binda/components/main_content.scss +1 -2
  30. data/app/assets/stylesheets/binda/components/main_header.scss +21 -20
  31. data/app/assets/stylesheets/binda/components/main_sidebar.scss +121 -0
  32. data/app/assets/stylesheets/binda/components/main_table.scss +84 -28
  33. data/app/assets/stylesheets/binda/components/popup_warning.scss +71 -0
  34. data/app/assets/stylesheets/binda/components/select2.scss +126 -0
  35. data/app/assets/stylesheets/binda/components/sortable.scss +83 -56
  36. data/app/assets/stylesheets/binda/components/standard-form.scss +228 -0
  37. data/app/assets/stylesheets/binda/components/texts.scss +6 -0
  38. data/app/assets/stylesheets/binda/controllers/components_index.scss +3 -0
  39. data/app/assets/stylesheets/binda/controllers/users_sessions_new.scss +309 -0
  40. data/app/assets/stylesheets/binda/index.scss +16 -8
  41. data/app/assets/stylesheets/binda/settings/bootstrap_overrides.scss +0 -0
  42. data/app/assets/stylesheets/binda/settings/buttons.scss +36 -0
  43. data/app/assets/stylesheets/binda/settings/common.scss +36 -79
  44. data/app/assets/stylesheets/binda/settings/fonts.scss +88 -31
  45. data/app/assets/stylesheets/binda/settings/tiny_mce_overrides.scss +82 -0
  46. data/app/assets/stylesheets/binda/settings/variables.scss +36 -31
  47. data/app/controllers/binda/application_controller.rb +0 -2
  48. data/app/controllers/binda/assets_controller.rb +1 -1
  49. data/app/controllers/binda/boards_controller.rb +15 -4
  50. data/app/controllers/binda/components_controller.rb +30 -15
  51. data/app/controllers/binda/field_groups_controller.rb +19 -4
  52. data/app/controllers/binda/images_controller.rb +68 -0
  53. data/app/controllers/binda/repeaters_controller.rb +3 -12
  54. data/app/controllers/binda/structures_controller.rb +8 -1
  55. data/app/controllers/binda/videos_controller.rb +68 -0
  56. data/app/controllers/concerns/binda/fieldable_helpers.rb +113 -28
  57. data/app/controllers/concerns/binda/maintenance_helpers.rb +34 -0
  58. data/app/helpers/binda/components_helper.rb +26 -2
  59. data/app/helpers/binda/field_groups_helper.rb +16 -0
  60. data/app/helpers/binda/structures_helper.rb +6 -0
  61. data/app/models/binda/asset.rb +0 -4
  62. data/app/models/binda/b.rb +5 -0
  63. data/app/models/binda/board.rb +1 -18
  64. data/app/models/binda/choice.rb +48 -12
  65. data/app/models/binda/component.rb +20 -0
  66. data/app/models/binda/field_group.rb +2 -2
  67. data/app/models/binda/field_setting.rb +61 -28
  68. data/app/models/binda/gallery.rb +0 -2
  69. data/app/models/binda/image.rb +7 -0
  70. data/app/models/binda/relation.rb +79 -0
  71. data/app/models/binda/relation_link.rb +11 -0
  72. data/app/models/binda/repeater.rb +1 -1
  73. data/app/models/binda/selection.rb +0 -9
  74. data/app/models/binda/structure.rb +41 -39
  75. data/app/models/binda/video.rb +7 -0
  76. data/app/models/concerns/binda/default_helpers.rb +186 -0
  77. data/app/models/concerns/binda/fieldable_associations.rb +276 -30
  78. data/app/uploaders/binda/{asset → image}/image_uploader.rb +27 -9
  79. data/app/uploaders/binda/video/video_uploader.rb +51 -0
  80. data/app/views/binda/boards/edit.html.erb +6 -1
  81. data/app/views/binda/categories/_form.html.erb +41 -40
  82. data/app/views/binda/categories/edit.html.erb +1 -1
  83. data/app/views/binda/categories/index.html.erb +16 -13
  84. data/app/views/binda/components/edit.html.erb +6 -3
  85. data/app/views/binda/components/index.html.erb +69 -28
  86. data/app/views/binda/components/new.html.erb +1 -1
  87. data/app/views/binda/components/sort_index.html.erb +46 -0
  88. data/app/views/binda/field_groups/_form_body.html.erb +65 -44
  89. data/app/views/binda/field_groups/_form_item.html.erb +66 -23
  90. data/app/views/binda/field_groups/_form_item_choice.erb +34 -15
  91. data/app/views/binda/field_groups/_form_section.html.erb +6 -10
  92. data/app/views/binda/field_groups/_form_section_repeater.html.erb +3 -3
  93. data/app/views/binda/field_groups/edit.html.erb +1 -1
  94. data/app/views/binda/field_settings/_form_body.html.erb +5 -5
  95. data/app/views/binda/field_settings/edit.html.erb +1 -1
  96. data/app/views/binda/fieldable/_form_body.html.erb +93 -79
  97. data/app/views/binda/fieldable/_form_item_date.html.erb +14 -14
  98. data/app/views/binda/fieldable/_form_item_image.html.erb +35 -0
  99. data/app/views/binda/fieldable/_form_item_new_repeater.html.erb +12 -5
  100. data/app/views/binda/fieldable/_form_item_relation.html.erb +44 -0
  101. data/app/views/binda/fieldable/_form_item_repeater.html.erb +80 -58
  102. data/app/views/binda/fieldable/_form_item_selections.html.erb +109 -87
  103. data/app/views/binda/fieldable/_form_item_string.html.erb +19 -17
  104. data/app/views/binda/fieldable/_form_item_text.html.erb +19 -16
  105. data/app/views/binda/fieldable/_form_item_video.html.erb +32 -0
  106. data/app/views/binda/fieldable/_form_section.html.erb +27 -5
  107. data/app/views/binda/fieldable/_form_section_repeater.html.erb +30 -10
  108. data/app/views/binda/fieldable/_form_sidebar.html.erb +44 -20
  109. data/app/views/binda/manage/users/_form_body.html.erb +42 -37
  110. data/app/views/binda/manage/users/edit.html.erb +1 -1
  111. data/app/views/binda/manage/users/index.html.erb +21 -21
  112. data/app/views/binda/structures/_form_body.html.erb +54 -60
  113. data/app/views/binda/structures/_form_section.html.erb +32 -18
  114. data/app/views/binda/structures/_form_sidebar.html.erb +35 -0
  115. data/app/views/binda/structures/edit.html.erb +2 -2
  116. data/app/views/binda/structures/index.html.erb +21 -16
  117. data/app/views/binda/structures/sort_index.html.erb +36 -0
  118. data/app/views/{users → binda/users}/confirmations/new.html.erb +1 -1
  119. data/app/views/{users → binda/users}/mailer/confirmation_instructions.html.erb +0 -0
  120. data/app/views/{users → binda/users}/mailer/password_change.html.erb +0 -0
  121. data/app/views/{users → binda/users}/mailer/reset_password_instructions.html.erb +0 -0
  122. data/app/views/{users → binda/users}/mailer/unlock_instructions.html.erb +0 -0
  123. data/app/views/{users → binda/users}/passwords/edit.html.erb +1 -1
  124. data/app/views/{users → binda/users}/passwords/new.html.erb +1 -1
  125. data/app/views/{users → binda/users}/registrations/edit.html.erb +0 -0
  126. data/app/views/{users → binda/users}/registrations/new.html.erb +1 -1
  127. data/app/views/binda/users/sessions/_background.html.erb +139 -0
  128. data/app/views/binda/users/sessions/new.html.erb +62 -0
  129. data/app/views/{users → binda/users}/shared/_links.html.erb +3 -3
  130. data/app/views/{users → binda/users}/unlocks/new.html.erb +1 -1
  131. data/app/views/kaminari/_first_page.html.erb +11 -0
  132. data/app/views/kaminari/_gap.html.erb +8 -0
  133. data/app/views/kaminari/_last_page.html.erb +11 -0
  134. data/app/views/kaminari/_next_page.html.erb +11 -0
  135. data/app/views/kaminari/_page.html.erb +12 -0
  136. data/app/views/kaminari/_paginator.html.erb +19 -0
  137. data/app/views/kaminari/_prev_page.html.erb +11 -0
  138. data/app/views/layouts/binda/_flash.html.erb +1 -1
  139. data/app/views/layouts/binda/_header.html.erb +2 -6
  140. data/app/views/layouts/binda/_sidebar.html.erb +11 -4
  141. data/app/views/layouts/binda/application.html.erb +15 -7
  142. data/config/autoprefixer.yml +5 -0
  143. data/config/database.yml.travis +3 -0
  144. data/config/initializers/assets.rb +1 -0
  145. data/config/initializers/autoprefixer.yml +5 -0
  146. data/config/initializers/carrierwave.rb +32 -0
  147. data/config/initializers/devise.rb +14 -10
  148. data/config/initializers/devise_patch.rb +8 -8
  149. data/config/initializers/simple_form.rb +4 -0
  150. data/config/initializers/simple_form__fileupload.rb +121 -0
  151. data/config/initializers/{simple_form_bootstrap.rb → simple_form_custom.rb} +79 -50
  152. data/config/locales/en.yml +61 -3
  153. data/config/locales/it.yml +51 -0
  154. data/config/locales/simple_form.en.yml +3 -3
  155. data/config/routes.rb +41 -24
  156. data/db/migrate/1_create_binda_tables.rb +18 -7
  157. data/db/migrate/20171214140451_add_preview_mode.rb +5 -0
  158. data/lib/binda.rb +1 -1
  159. data/lib/binda/engine.rb +19 -23
  160. data/lib/binda/version.rb +2 -2
  161. data/lib/generators/binda/install/install_generator.rb +59 -54
  162. data/lib/generators/binda/install/templates/config/initializers/carrierwave.rb +11 -2
  163. data/lib/generators/binda/maintenance/USAGE +8 -0
  164. data/lib/generators/binda/maintenance/maintenance_generator.rb +50 -0
  165. data/lib/generators/binda/maintenance/templates/app/assets/javascripts/maintenance.js +0 -0
  166. data/lib/generators/binda/maintenance/templates/app/assets/stylesheets/maintenance.scss +0 -0
  167. data/lib/generators/binda/maintenance/templates/app/views/layouts/maintenance.html.erb +16 -0
  168. data/lib/generators/binda/maintenance/templates/config/initializers/maintenance.rb +1 -0
  169. data/lib/generators/binda/setup/setup_generator.rb +41 -30
  170. data/lib/tasks/add_default_helpers_class_task.rake +11 -0
  171. data/lib/tasks/add_video_feature_task.rake +15 -0
  172. data/lib/tasks/remove_orphan_fields_task.rake +16 -0
  173. data/lib/tasks/set_repeater_position_task.rake +13 -0
  174. data/lib/tasks/upgrade_to_v007_task.rake +72 -0
  175. data/lib/tasks/user_tasks.rake +14 -0
  176. data/vendor/assets/fonts/font-awesome/fa-brands-400.eot +0 -0
  177. data/vendor/assets/fonts/font-awesome/fa-brands-400.svg +978 -0
  178. data/vendor/assets/fonts/font-awesome/fa-brands-400.ttf +0 -0
  179. data/vendor/assets/fonts/font-awesome/fa-brands-400.woff +0 -0
  180. data/vendor/assets/fonts/font-awesome/fa-brands-400.woff2 +0 -0
  181. data/vendor/assets/fonts/font-awesome/fa-regular-400.eot +0 -0
  182. data/vendor/assets/fonts/font-awesome/fa-regular-400.svg +363 -0
  183. data/vendor/assets/fonts/font-awesome/fa-regular-400.ttf +0 -0
  184. data/vendor/assets/fonts/font-awesome/fa-regular-400.woff +0 -0
  185. data/vendor/assets/fonts/font-awesome/fa-regular-400.woff2 +0 -0
  186. data/vendor/assets/fonts/font-awesome/fa-solid-900.eot +0 -0
  187. data/vendor/assets/fonts/font-awesome/fa-solid-900.svg +1410 -0
  188. data/vendor/assets/fonts/font-awesome/fa-solid-900.ttf +0 -0
  189. data/vendor/assets/fonts/font-awesome/fa-solid-900.woff +0 -0
  190. data/vendor/assets/fonts/font-awesome/fa-solid-900.woff2 +0 -0
  191. data/vendor/assets/javascripts/GSAP/CSSPlugin.min.js +13 -0
  192. data/vendor/assets/javascripts/GSAP/EasePack.min.js +12 -0
  193. data/vendor/assets/javascripts/GSAP/ScrollToPlugin.min.js +12 -0
  194. data/vendor/assets/javascripts/GSAP/TweenLite.min.js +12 -0
  195. data/vendor/assets/javascripts/select2/i18n/af.js +3 -0
  196. data/vendor/assets/javascripts/select2/i18n/ar.js +3 -0
  197. data/vendor/assets/javascripts/select2/i18n/az.js +3 -0
  198. data/vendor/assets/javascripts/select2/i18n/bg.js +3 -0
  199. data/vendor/assets/javascripts/select2/i18n/bs.js +3 -0
  200. data/vendor/assets/javascripts/select2/i18n/ca.js +3 -0
  201. data/vendor/assets/javascripts/select2/i18n/cs.js +3 -0
  202. data/vendor/assets/javascripts/select2/i18n/da.js +3 -0
  203. data/vendor/assets/javascripts/select2/i18n/de.js +3 -0
  204. data/vendor/assets/javascripts/select2/i18n/dsb.js +3 -0
  205. data/vendor/assets/javascripts/select2/i18n/el.js +3 -0
  206. data/vendor/assets/javascripts/select2/i18n/en.js +3 -0
  207. data/vendor/assets/javascripts/select2/i18n/es.js +3 -0
  208. data/vendor/assets/javascripts/select2/i18n/et.js +3 -0
  209. data/vendor/assets/javascripts/select2/i18n/eu.js +3 -0
  210. data/vendor/assets/javascripts/select2/i18n/fa.js +3 -0
  211. data/vendor/assets/javascripts/select2/i18n/fi.js +3 -0
  212. data/vendor/assets/javascripts/select2/i18n/fr.js +3 -0
  213. data/vendor/assets/javascripts/select2/i18n/gl.js +3 -0
  214. data/vendor/assets/javascripts/select2/i18n/he.js +3 -0
  215. data/vendor/assets/javascripts/select2/i18n/hi.js +3 -0
  216. data/vendor/assets/javascripts/select2/i18n/hr.js +3 -0
  217. data/vendor/assets/javascripts/select2/i18n/hsb.js +3 -0
  218. data/vendor/assets/javascripts/select2/i18n/hu.js +3 -0
  219. data/vendor/assets/javascripts/select2/i18n/hy.js +3 -0
  220. data/vendor/assets/javascripts/select2/i18n/id.js +3 -0
  221. data/vendor/assets/javascripts/select2/i18n/is.js +3 -0
  222. data/vendor/assets/javascripts/select2/i18n/it.js +3 -0
  223. data/vendor/assets/javascripts/select2/i18n/ja.js +3 -0
  224. data/vendor/assets/javascripts/select2/i18n/km.js +3 -0
  225. data/vendor/assets/javascripts/select2/i18n/ko.js +3 -0
  226. data/vendor/assets/javascripts/select2/i18n/lt.js +3 -0
  227. data/vendor/assets/javascripts/select2/i18n/lv.js +3 -0
  228. data/vendor/assets/javascripts/select2/i18n/mk.js +3 -0
  229. data/vendor/assets/javascripts/select2/i18n/ms.js +3 -0
  230. data/vendor/assets/javascripts/select2/i18n/nb.js +3 -0
  231. data/vendor/assets/javascripts/select2/i18n/nl.js +3 -0
  232. data/vendor/assets/javascripts/select2/i18n/pl.js +3 -0
  233. data/vendor/assets/javascripts/select2/i18n/ps.js +3 -0
  234. data/vendor/assets/javascripts/select2/i18n/pt-BR.js +3 -0
  235. data/vendor/assets/javascripts/select2/i18n/pt.js +3 -0
  236. data/vendor/assets/javascripts/select2/i18n/ro.js +3 -0
  237. data/vendor/assets/javascripts/select2/i18n/ru.js +3 -0
  238. data/vendor/assets/javascripts/select2/i18n/sk.js +3 -0
  239. data/vendor/assets/javascripts/select2/i18n/sl.js +3 -0
  240. data/vendor/assets/javascripts/select2/i18n/sr-Cyrl.js +3 -0
  241. data/vendor/assets/javascripts/select2/i18n/sr.js +3 -0
  242. data/vendor/assets/javascripts/select2/i18n/sv.js +3 -0
  243. data/vendor/assets/javascripts/select2/i18n/th.js +3 -0
  244. data/vendor/assets/javascripts/select2/i18n/tr.js +3 -0
  245. data/vendor/assets/javascripts/select2/i18n/uk.js +3 -0
  246. data/vendor/assets/javascripts/select2/i18n/vi.js +3 -0
  247. data/vendor/assets/javascripts/select2/i18n/zh-CN.js +3 -0
  248. data/vendor/assets/javascripts/select2/i18n/zh-TW.js +3 -0
  249. data/vendor/assets/javascripts/select2/select2.full.min.js +1 -0
  250. data/vendor/assets/javascripts/select2/select2.min.js +1 -0
  251. data/vendor/assets/javascripts/tether.min.js +1 -0
  252. data/vendor/assets/stylesheets/{bootstrap-select.css → bootstrap/bootstrap-select.css} +0 -0
  253. data/vendor/assets/stylesheets/font-awesome/_animated.scss +6 -20
  254. data/vendor/assets/stylesheets/font-awesome/_bordered-pulled.scss +6 -11
  255. data/vendor/assets/stylesheets/font-awesome/_core.scss +11 -7
  256. data/vendor/assets/stylesheets/font-awesome/_fixed-width.scss +1 -1
  257. data/vendor/assets/stylesheets/font-awesome/_icons.scss +785 -787
  258. data/vendor/assets/stylesheets/font-awesome/_larger.scss +16 -6
  259. data/vendor/assets/stylesheets/font-awesome/_list.scss +7 -8
  260. data/vendor/assets/stylesheets/font-awesome/_mixins.scss +17 -20
  261. data/vendor/assets/stylesheets/font-awesome/_rotated-flipped.scss +9 -6
  262. data/vendor/assets/stylesheets/font-awesome/_screen-reader.scss +2 -2
  263. data/vendor/assets/stylesheets/font-awesome/_stacked.scss +19 -8
  264. data/vendor/assets/stylesheets/font-awesome/_variables.scss +795 -795
  265. data/vendor/assets/stylesheets/font-awesome/fa-brands.scss +21 -0
  266. data/vendor/assets/stylesheets/font-awesome/fa-regular.scss +22 -0
  267. data/vendor/assets/stylesheets/font-awesome/fa-solid.scss +23 -0
  268. data/vendor/assets/stylesheets/font-awesome/fontawesome.scss +20 -0
  269. data/vendor/assets/stylesheets/select2/select2.min.css +1 -0
  270. metadata +278 -125
  271. data/app/assets/javascripts/binda/components/form_item_asset.js +0 -25
  272. data/app/assets/stylesheets/binda/application.css +0 -6
  273. data/app/assets/stylesheets/binda/components/form_body.scss +0 -2
  274. data/app/assets/stylesheets/binda/components/form_item_asset.scss +0 -20
  275. data/app/assets/stylesheets/binda/components/form_section.scss +0 -40
  276. data/app/assets/stylesheets/binda/components/sidebar.scss +0 -131
  277. data/app/assets/stylesheets/binda/layout/components_index.scss +0 -9
  278. data/app/assets/stylesheets/binda/layout/dashboard.scss +0 -7
  279. data/app/assets/stylesheets/binda/layout/users_sign_in.scss +0 -29
  280. data/app/controllers/binda/bindings_controller.rb +0 -62
  281. data/app/controllers/concerns/binda/default_helpers.rb +0 -226
  282. data/app/helpers/binda/bindings_helper.rb +0 -4
  283. data/app/models/binda/binda.rb +0 -7
  284. data/app/models/binda/binding.rb +0 -24
  285. data/app/views/binda/bindings/_form.html.erb +0 -32
  286. data/app/views/binda/bindings/edit.html.erb +0 -6
  287. data/app/views/binda/bindings/index.html.erb +0 -31
  288. data/app/views/binda/bindings/new.html.erb +0 -5
  289. data/app/views/binda/bindings/show.html.erb +0 -19
  290. data/app/views/binda/field_groups/index.html.erb +0 -34
  291. data/app/views/binda/fieldable/_form_item_asset.html.erb +0 -20
  292. data/app/views/users/sessions/new.html.erb +0 -27
  293. data/lib/tasks/binda.rake +0 -79
  294. data/vendor/assets/fonts/font-awesome/FontAwesome.otf +0 -0
  295. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.eot +0 -0
  296. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.svg +0 -2671
  297. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
  298. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.woff +0 -0
  299. data/vendor/assets/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
  300. data/vendor/assets/stylesheets/font-awesome/_path.scss +0 -15
  301. data/vendor/assets/stylesheets/font-awesome/font-awesome.scss +0 -18
@@ -1,25 +0,0 @@
1
- ///- - - - - - - - - - - - - - - - - - - -
2
- /// FORM ITEM ASSET
3
- ///- - - - - - - - - - - - - - - - - - - -
4
-
5
- class FormItemAsset
6
- {
7
- constructor()
8
- {
9
- this.target = '.form-item--asset'
10
- }
11
-
12
- isSet()
13
- {
14
- if ( $( this.target ).length > 0 ) { return true }
15
- else { return false }
16
- }
17
-
18
- setEvents()
19
- {
20
- // here code to setup assets via ajax
21
- //
22
- }
23
- }
24
-
25
- export var _FormItemAsset = new FormItemAsset()
@@ -1,6 +0,0 @@
1
- /*
2
- *= require bootstrap/bootstrap
3
- *= require bootstrap-select
4
- *= require binda/index
5
- *= require_self
6
- */
@@ -1,2 +0,0 @@
1
- .form-body--delete {
2
- }
@@ -1,20 +0,0 @@
1
- .form-item--asset--clearfix {
2
- margin-bottom: $font-size-base;
3
- border-bottom: 1px solid $gray-lighter;
4
- @extend .clearfix;
5
- }
6
-
7
- .form-item--asset--image {
8
- max-width: 20%;
9
- height: auto;
10
- margin-left: 20%;
11
- margin-bottom: $font-size-base;
12
- }
13
-
14
- .form-item--asset--uploader {
15
- display: inline-block;
16
- margin: 0;
17
- margin-top: 9px;
18
- float: left;
19
- clear: both;
20
- }
@@ -1,40 +0,0 @@
1
- .form-section {
2
- overflow-y: hidden;
3
- }
4
-
5
- .form-section--transparent-container {
6
- margin: 0;
7
-
8
- > div {
9
- padding-right: $font-size-base;
10
- padding-bottom: $font-size-base;
11
- padding-left: $font-size-base;
12
- margin-bottom: $font-size-base * 2;
13
- @extend .box-shadowed;
14
- }
15
- }
16
-
17
- .form-section--container {
18
- @extend .form-section--transparent-container;
19
-
20
- > div {
21
- background-color: #FFF;
22
- }
23
-
24
- small {
25
- display: inline-block;
26
- margin-bottom: $font-size-base;
27
- }
28
-
29
- h4 {
30
- padding-bottom: $font-size-base;
31
- margin-bottom: $font-size-base;
32
- border-bottom: 1px solid $gray-lighter;
33
- font-weight: bold;
34
- }
35
- }
36
-
37
- .form-section--wide-container,
38
- .form-section--narrow-container {
39
- @extend .form-section--container;
40
- }
@@ -1,131 +0,0 @@
1
- #main-container {
2
- padding-left: 0;
3
- transition: all 0.5 ease;
4
-
5
- @media ( min-width: $tablet ) {
6
- padding-left: 240px;
7
- }
8
-
9
- #main-sidebar {
10
- z-index: 1000;
11
- position: fixed;
12
- left: 240px;
13
- width: 0;
14
- height: 100%;
15
- margin-left: -240px;
16
- overflow-y: auto;
17
- @extend .box-shadowed;
18
- background-color: #FFF;
19
- transition: all 0.5s ease;
20
-
21
- @media ( min-width: $tablet ) {
22
- width: 240px;
23
- }
24
- }
25
-
26
- #main-content {
27
- width: 100%;
28
- position: absolute;
29
-
30
- @media ( min-width: $tablet ) {
31
- position: relative;
32
- }
33
- }
34
-
35
- &.toggled {
36
- padding-left: 240px;
37
-
38
- @media ( min-width: $tablet ) {
39
- padding-left: 0;
40
- }
41
-
42
- #main-sidebar {
43
- width: 240px;
44
-
45
- @media ( min-width: $tablet ) {
46
- width: 0;
47
- }
48
- }
49
-
50
- #main-content {
51
- position: absolute;
52
- margin-right: -240px;
53
-
54
- @media ( min-width: $tablet ) {
55
- position: relative;
56
- margin-right: 0;
57
- }
58
- }
59
- }
60
- }
61
-
62
- .main-sidebar--nav {
63
- position: absolute;
64
- top: 0;
65
- width: 240px;
66
- margin: 0;
67
- padding: 0;
68
- list-style: none;
69
-
70
- li {
71
- // text-indent: 20px;
72
- // line-height: 40px;
73
-
74
- h3 {
75
- padding-left: $font-size-base;
76
- }
77
-
78
- > a {
79
- display: block;
80
- padding: $font-size-base;
81
- text-decoration: none;
82
- color: $text-color;
83
- font-weight: normal;
84
- transition: all 0.3s ease;
85
-
86
- &:hover {
87
- padding-left: $font-size-base * 2;
88
- text-decoration: none;
89
- color: $gray-darker;
90
- background-color: $gray-lighter;
91
- border-bottom: none;
92
- }
93
-
94
- &:active,
95
- &:focus {
96
- text-decoration: none;
97
- }
98
- }
99
- }
100
- }
101
-
102
- li.main-sidebar--brand {
103
- padding-bottom: $font-size-base;
104
- margin-bottom: $font-size-base * 2;
105
- // border-bottom: 1px solid $gray-lighter;
106
- background: #FFF;
107
- // background: -moz-linear-gradient(top, #FFF 0%, $gray-lighter 100%);
108
- // background: -webkit-linear-gradient(top, #FFF 0%,$gray-lighter 100%);
109
- // background: linear-gradient(to bottom, #FFF 0%,$gray-lighter 100%);
110
- // filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFF', endColorstr='$gray-lighter',GradientType=0 );
111
- }
112
- .main-sidebar--nav .glyphicon {
113
- text-indent: 0;
114
- padding-right: $font-size-base/2;
115
- }
116
-
117
- .main-sidebar--nav li a.main-sidebar--logout {
118
- color: $color-danger;
119
- }
120
-
121
- .main-sidebar--structure {
122
- border-bottom: 1px solid $gray-lighter;
123
- }
124
-
125
- .main-sidebar--first-structure {
126
- border-top: 1px solid $gray-lighter;
127
- }
128
-
129
- .main-sidebar--nav li:last-child {
130
- border-bottom: 1px solid $gray-lighter;
131
- }
@@ -1,9 +0,0 @@
1
- .components-index--new-component {
2
- margin-top: 25px;
3
- }
4
-
5
- .components-index--table {
6
- .glyphicon {
7
- padding-right: 5px;
8
- }
9
- }
@@ -1,7 +0,0 @@
1
- .dashboard--title {
2
- margin-bottom: 30px;
3
- }
4
-
5
- .dashboard--maintenance-mode {
6
- margin-bottom: 20px;
7
- }
@@ -1,29 +0,0 @@
1
- .devise-view {
2
- // background: #FFF;
3
- // background: -moz-linear-gradient(top, #FFF 0%, $gray-lighter 100%);
4
- // background: -webkit-linear-gradient(top, #FFF 0%,$gray-lighter 100%);
5
- // background: linear-gradient(to bottom, #FFF 0%,$gray-lighter 100%);
6
- // filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFF', endColorstr='$gray-lighter',GradientType=0 );
7
- background: $gray-lighter;
8
- height: 100vh;
9
-
10
- #main-container {
11
- padding-left: 0;
12
- position: relative;
13
- height: 100vh;
14
- }
15
- #main-content {
16
- position: absolute !important;
17
- top: 50%;
18
- left: 50%;
19
- width: 100%;
20
- transform: translate(-50%, -50%);
21
-
22
- width: 33% !important;
23
- padding: $font-size-base * 2;
24
- // margin: $font-size-base auto;
25
- background-color: #FFF;
26
- border-radius: $font-size-base / 2;
27
- border: 1px solid $gray-lighter;
28
- }
29
- }
@@ -1,62 +0,0 @@
1
- require_dependency "binda/application_controller"
2
-
3
- module Binda
4
- class BindingsController < ApplicationController
5
- before_action :set_binding, only: [:show, :edit, :update, :destroy]
6
-
7
- # GET /bindings
8
- def index
9
- @bindings = Binding.all
10
- end
11
-
12
- # GET /bindings/1
13
- def show
14
- end
15
-
16
- # GET /bindings/new
17
- def new
18
- @binding = Binding.new
19
- end
20
-
21
- # GET /bindings/1/edit
22
- def edit
23
- end
24
-
25
- # POST /bindings
26
- def create
27
- @binding = Binding.new(binding_params)
28
-
29
- if @binding.save
30
- redirect_to binding_path( @binding.id ), notice: 'Binding was successfully created.'
31
- else
32
- render :new
33
- end
34
- end
35
-
36
- # PATCH/PUT /bindings/1
37
- def update
38
- if @binding.update(binding_params)
39
- redirect_to binding_path( @binding.id ), notice: 'Binding was successfully updated.'
40
- else
41
- render :edit
42
- end
43
- end
44
-
45
- # DELETE /bindings/1
46
- def destroy
47
- @binding.destroy
48
- redirect_to bindings_url, notice: 'Binding was successfully destroyed.'
49
- end
50
-
51
- private
52
- # Use callbacks to share common setup or constraints between actions.
53
- def set_binding
54
- @binding = Binding.find(params[:id])
55
- end
56
-
57
- # Only allow a trusted parameter "white list" through.
58
- def binding_params
59
- params.require(:binding).permit(:title, :description, :position)
60
- end
61
- end
62
- end
@@ -1,226 +0,0 @@
1
- module Binda
2
- # Binda comes with a bunch of helpers to make life easier.
3
- module DefaultHelpers
4
- extend ActiveSupport::Concern
5
-
6
- # Get components
7
- #
8
- # This method retrieves **all components** belonging to a specific structure.
9
- # With this method you can optimize the query in order to avoid the infamous
10
- # [N+1 issue](https://youtu.be/oJ4Ur5XPAF8) by specifing what field types
11
- # you are going to request in the view. The list of field types available
12
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
13
- # Field types must be listed as separated strings, lowercase and plural.
14
- # See the following examples.
15
- #
16
- # @example Get all components belonging to `page` structure:
17
- # get_components('page')
18
- # # return all published pages sorted by position
19
- #
20
- # get_components('page', { published: false })
21
- # # return all published and draft pages sorted by position
22
- #
23
- # get_components('page', { custom_order: 'created_at DESC' })
24
- # # return all published pages sorted chronologically
25
- #
26
- # get_components('page', { fields: ['strings'] })
27
- # get_components('page', { fields: ['strings', 'dates', 'assets'] })
28
- # # it optimizes the query in order to avoid the N+1 issue
29
- # # useful if you are going to request any field from these components
30
- # # or from any repeaters
31
- #
32
- # get_components('page', { published: true, custom_order: 'name', fields: ['string', 'repeaters'] })
33
- # # it's then possible to create any sort of combination
34
- #
35
- # @param slug [string] The slug of the structure to which the components belong
36
- # @param args [hash] A hash containing the options used to customize the query.
37
- #
38
- # The hash parameters are:
39
- #
40
- # - `published` (boolean) - Set to true to gather just published components,
41
- # false to get them all
42
- # - `custom_order` (string) - Set the order parameter. Default is `position`,
43
- # but you can use any of the following `created_at`, `updated_at`, `id`, `name`, `slug`.
44
- # Append `DESC` if you want to reverse the order, e.g. `position DESC`
45
- # - `fields` (array) - Include related field classes to the query. The list of field types available
46
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
47
- # Field types must be listed as separated strings, lowercase and plural.
48
- #
49
- # @return [ActiveRecord Object]
50
- def get_components( slug, args = { published: true, custom_order: 'position', fields: [] })
51
-
52
- validate_provided_arguments( args )
53
-
54
- # Sets defaults
55
- args[:published] = 'true' if args[:published].nil?
56
- args[:custom_order] = 'position' if args[:custom_order].nil?
57
- args[:fields] = [] if args[:fields].nil?
58
-
59
- validate_provided_fields( args )
60
- validate_provided_custom_order( args )
61
-
62
- # Generate query
63
- if args[:published]
64
- if args[:fields].any?
65
- Component.where( structure_id: Structure.where( slug: slug ) ).published.includes( args[:fields] )
66
- else
67
- Component.where( structure_id: Structure.where( slug: slug ) ).published
68
- end
69
- else
70
- if args[:fields].any?
71
- Component.where( structure_id: Structure.where( slug: slug ) ).order( args[:custom_order] ).includes( args[:fields] )
72
- else
73
- Component.where( structure_id: Structure.where( slug: slug ) ).order( args[:custom_order] )
74
- end
75
- end
76
- end
77
-
78
- # This method retrieves a **single component**.
79
- # With this method you can optimize the query in order to avoid the infamous
80
- # [N+1 issue](https://youtu.be/oJ4Ur5XPAF8) by specifing what field types
81
- # you are going to request in the view. The list of field types available
82
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
83
- # Field types must be listed as separated strings, lowercase and plural.
84
- # See the following examples.
85
- #
86
- # @example Get a component with slug `my-first-post`
87
- # get_component('my-first-post')
88
- # # return the component
89
- #
90
- # get_component('my-first-post', { fields: ['strings', 'texts', 'assets', 'selections'] })
91
- # # return the component and optimize the query for any of the listed fields related to it
92
- #
93
- #
94
- # @param slug [string] The slug of the component
95
- # @param args [hash] A hash containing the options used to customize the query.
96
- #
97
- # The hash parameters are:
98
- #
99
- # - `fields` (array) - Include related field classes to the query. The list of field types available
100
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
101
- # Field types must be listed as separated strings, lowercase and plural.
102
- #
103
- # @return [ActiveRecord Object]
104
- def get_component( slug, args = { fields: [] })
105
-
106
- validate_provided_arguments( args )
107
-
108
- # Sets defaults
109
- args[:fields] = [] if args[:fields].nil?
110
-
111
- validate_provided_fields( args )
112
-
113
- if args[:fields].any?
114
- Component.where(slug: slug).first.inlcudes( args[:fields] )
115
- else
116
- Component.where(slug: slug).first
117
- end
118
- end
119
-
120
- # This method retrieves a **board**.
121
- # With this method you can optimize the query in order to avoid the infamous
122
- # [N+1 issue](https://youtu.be/oJ4Ur5XPAF8) by specifing what field types
123
- # you are going to request in the view. The list of field types available
124
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
125
- # Field types must be listed as separated strings, lowercase and plural.
126
- # See the following examples.
127
- #
128
- # @example Get a board with slug `my-dashboard`
129
- # get_board('my-dashboard')
130
- # # return the board
131
- #
132
- # get_board('my-dashboard', { fields: ['strings', 'texts', 'assets', 'selections'] })
133
- # # return the board and optimize the query for any of the listed fields related to it
134
- #
135
- #
136
- # @param slug [string] The slug of the board
137
- # @param args [hash] A hash containing the options used to customize the query.
138
- #
139
- # The hash parameters are:
140
- #
141
- # - `fields` (array) - Include related field classes to the query. The list of field types available
142
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
143
- # Field types must be listed as separated strings, lowercase and plural.
144
- #
145
- # @return [ActiveRecord Object]
146
- def get_board( slug, args = { fields: [] })
147
-
148
- validate_provided_arguments( args )
149
-
150
- # Sets defaults
151
- args[:fields] = [] if args[:fields].nil?
152
-
153
- check_provided_fields( args )
154
-
155
- if args[:fields].any?
156
- Board.where(slug: slug).first.inlcudes( args[:fields] )
157
- else
158
- Board.where(slug: slug).first
159
- end
160
- end
161
-
162
- # This method retrieves a **repeater**.
163
- # With this method you can optimize the query in order to avoid the infamous
164
- # [N+1 issue](https://youtu.be/oJ4Ur5XPAF8) by specifing what field types
165
- # you are going to request in the view. The list of field types available
166
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
167
- # Field types must be listed as separated strings, lowercase and plural.
168
- # See the following examples.
169
- #
170
- # @example Get a repeater with slug `slideshow`
171
- # get_repeater('slideshow')
172
- # # return the repeater
173
- #
174
- # get_repeater('slideshow', { fields: ['strings', 'assets'] })
175
- # # return the repeater and optimize the query for any of the listed fields related to it
176
- #
177
- #
178
- # @param slug [string] The slug of the repeater
179
- # @param args [hash] A hash containing the options used to customize the query.
180
- #
181
- # The hash parameters are:
182
- #
183
- # - `fields` (array) - Include related field classes to the query. The list of field types available
184
- # can be found in the [official documentation](https://github.com/lacolonia/binda/wiki/Fields).
185
- # Field types must be listed as separated strings, lowercase and plural.
186
- #
187
- # @return [ActiveRecord Object]
188
- def get_repeater( slug, args = { fields: [] })
189
-
190
- validate_provided_arguments( args )
191
-
192
- # Sets defaults
193
- args[:fields] = [] if args[:fields].nil?
194
-
195
- check_provided_fields( args )
196
-
197
- if args[:fields].any?
198
- Repeater.where(slug: slug).first.inlcudes( args[:fields] )
199
- else
200
- Repeater.where(slug: slug).first
201
- end
202
- end
203
-
204
- private
205
-
206
- # Check if provided `fields` are ok, otherwise raise an error
207
- def validate_provided_fields( args )
208
- raise ArgumentError, "Argument error in get_components(): fields should be an Array, not a #{args[:fields].class.to_s}.", caller unless args[:fields].instance_of? Array
209
- args[:fields].each do |f|
210
- raise ArgumentError, "Argument error in get_components(): #{f.to_s} is not a valid field type.", caller unless FieldSetting.get_field_classes.map{ |fc| fc.underscore.pluralize }.include? f.to_s
211
- end
212
- end
213
-
214
- # Check if provided `custom_order` is ok, otherwise raise an error
215
- def validate_provided_custom_order( args )
216
- raise ArgumentError, "Argument error in get_components(): custom_order should be a String, not a #{args[:custom_order].class.to_s}.", caller unless args[:custom_order].instance_of? ::String
217
- end
218
-
219
- # Check if provided arguments are ok, otherwise raise an error
220
- def validate_provided_arguments( args )
221
- args.each do |key, value|
222
- raise ArgumentError, "Argument error in get_components(): #{key.to_s} is not a valid key.", caller unless ['published', 'custom_order', 'fields'].include? key.to_s
223
- end
224
- end
225
- end
226
- end