lato_core 1.1.5 → 2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (307) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +29 -0
  4. data/Rakefile +1 -22
  5. data/app/assets/config/lato_core_manifest.js +2 -0
  6. data/app/assets/fonts/lato_core/fontawesome-webfont.eot +0 -0
  7. data/app/assets/fonts/lato_core/fontawesome-webfont.svg +2671 -0
  8. data/app/assets/fonts/lato_core/fontawesome-webfont.ttf +0 -0
  9. data/app/assets/fonts/lato_core/fontawesome-webfont.woff +0 -0
  10. data/app/assets/fonts/lato_core/fontawesome-webfont.woff2 +0 -0
  11. data/app/assets/fonts/lato_core/lato-bold-webfont.eot +0 -0
  12. data/app/assets/fonts/lato_core/lato-bold-webfont.svg +4551 -0
  13. data/app/assets/fonts/lato_core/lato-bold-webfont.ttf +0 -0
  14. data/app/assets/fonts/lato_core/lato-bold-webfont.woff +0 -0
  15. data/app/assets/fonts/lato_core/lato-bold-webfont.woff2 +0 -0
  16. data/app/assets/fonts/lato_core/lato-regular-webfont.eot +0 -0
  17. data/app/assets/fonts/lato_core/lato-regular-webfont.svg +4241 -0
  18. data/app/assets/fonts/lato_core/lato-regular-webfont.ttf +0 -0
  19. data/app/assets/fonts/lato_core/lato-regular-webfont.woff +0 -0
  20. data/app/assets/fonts/lato_core/lato-regular-webfont.woff2 +0 -0
  21. data/app/assets/images/lato_core/editor-icons.svg +1 -0
  22. data/app/assets/images/lato_core/logo-negative.svg +13 -0
  23. data/app/assets/images/lato_core/logo.svg +1 -0
  24. data/app/assets/images/lato_core/user.png +0 -0
  25. data/app/assets/javascripts/lato_core/application.js +28 -0
  26. data/app/assets/javascripts/lato_core/initializers/Charts.js +36 -0
  27. data/app/assets/javascripts/lato_core/initializers/Elements.js +67 -0
  28. data/app/assets/javascripts/lato_core/initializers/Inputs.js +201 -0
  29. data/app/assets/javascripts/lato_core/initializers/Layout.js +37 -0
  30. data/app/assets/javascripts/lato_core/initializers/SortableManager.js +66 -0
  31. data/app/assets/javascripts/lato_core/interfaces/Modal.js +28 -0
  32. data/app/assets/javascripts/lato_core/vendors/Sortable.min.js +2 -0
  33. data/app/assets/javascripts/lato_core/vendors/chart.bundle.js +17220 -0
  34. data/app/assets/javascripts/lato_core/vendors/dropzone.js +1767 -0
  35. data/app/assets/javascripts/lato_core/vendors/jquery.datetimepicker.full.js +3243 -0
  36. data/app/assets/javascripts/lato_core/vendors/jquery.floatThead.js +1106 -0
  37. data/app/assets/javascripts/lato_core/vendors/jquery.selectize.js +3829 -0
  38. data/app/assets/javascripts/lato_core/vendors/jquery.trumbowyg.js +1603 -0
  39. data/app/assets/stylesheets/lato_core/application.scss +23 -0
  40. data/app/assets/stylesheets/lato_core/base/_base.scss +35 -0
  41. data/app/assets/stylesheets/lato_core/base/_button.scss +23 -0
  42. data/app/assets/stylesheets/lato_core/base/_grid.scss +258 -0
  43. data/app/assets/stylesheets/lato_core/base/_helpers.scss +29 -0
  44. data/app/assets/stylesheets/lato_core/base/_mixin.scss +37 -0
  45. data/app/assets/stylesheets/lato_core/base/_normalize.scss +424 -0
  46. data/app/assets/stylesheets/lato_core/base/_table.scss +47 -0
  47. data/app/assets/stylesheets/lato_core/base/_typography.scss +23 -0
  48. data/app/assets/stylesheets/lato_core/cells/_cells.scss +4 -0
  49. data/app/assets/stylesheets/lato_core/cells/charts/_bar.scss +3 -0
  50. data/app/assets/stylesheets/lato_core/cells/charts/_charts.scss +2 -0
  51. data/app/assets/stylesheets/lato_core/cells/charts/_general.scss +7 -0
  52. data/app/assets/stylesheets/lato_core/cells/elements/_block.scss +12 -0
  53. data/app/assets/stylesheets/lato_core/cells/elements/_button.scss +132 -0
  54. data/app/assets/stylesheets/lato_core/cells/elements/_buttongroup.scss +25 -0
  55. data/app/assets/stylesheets/lato_core/cells/elements/_code.scss +8 -0
  56. data/app/assets/stylesheets/lato_core/cells/elements/_elements.scss +10 -0
  57. data/app/assets/stylesheets/lato_core/cells/elements/_flash.scss +74 -0
  58. data/app/assets/stylesheets/lato_core/cells/elements/_modal.scss +76 -0
  59. data/app/assets/stylesheets/lato_core/cells/elements/_pagination.scss +64 -0
  60. data/app/assets/stylesheets/lato_core/cells/elements/_row.scss +3 -0
  61. data/app/assets/stylesheets/lato_core/cells/elements/_table.scss +57 -0
  62. data/app/assets/stylesheets/lato_core/cells/elements/_title.scss +32 -0
  63. data/app/assets/stylesheets/lato_core/cells/inputs/_checkbox.scss +42 -0
  64. data/app/assets/stylesheets/lato_core/cells/inputs/_datetime.scss +23 -0
  65. data/app/assets/stylesheets/lato_core/cells/inputs/_dropzone.scss +12 -0
  66. data/app/assets/stylesheets/lato_core/cells/inputs/_editor.scss +3 -0
  67. data/app/assets/stylesheets/lato_core/cells/inputs/_email.scss +3 -0
  68. data/app/assets/stylesheets/lato_core/cells/inputs/_form.scss +3 -0
  69. data/app/assets/stylesheets/lato_core/cells/inputs/_general.scss +51 -0
  70. data/app/assets/stylesheets/lato_core/cells/inputs/_geolocalization.scss +12 -0
  71. data/app/assets/stylesheets/lato_core/cells/inputs/_inputs.scss +14 -0
  72. data/app/assets/stylesheets/lato_core/cells/inputs/_number.scss +3 -0
  73. data/app/assets/stylesheets/lato_core/cells/inputs/_password.scss +3 -0
  74. data/app/assets/stylesheets/lato_core/cells/inputs/_select.scss +47 -0
  75. data/app/assets/stylesheets/lato_core/cells/inputs/_sortableblock.scss +51 -0
  76. data/app/assets/stylesheets/lato_core/cells/inputs/_text.scss +3 -0
  77. data/app/assets/stylesheets/lato_core/cells/inputs/_textarea.scss +25 -0
  78. data/app/assets/stylesheets/lato_core/cells/widgets/_index.scss +74 -0
  79. data/app/assets/stylesheets/lato_core/cells/widgets/_widgets.scss +1 -0
  80. data/app/assets/stylesheets/lato_core/layouts/_admin.scss +352 -0
  81. data/app/assets/stylesheets/lato_core/layouts/_authentication.scss +10 -0
  82. data/app/assets/stylesheets/lato_core/layouts/_layouts.scss +2 -0
  83. data/app/assets/stylesheets/lato_core/pages/_dashboard.scss +35 -0
  84. data/app/assets/stylesheets/lato_core/pages/_login.scss +7 -0
  85. data/app/assets/stylesheets/lato_core/pages/_pages.scss +2 -0
  86. data/app/assets/stylesheets/lato_core/partials/_dynamic_data_to_js.scss +3 -0
  87. data/app/assets/stylesheets/lato_core/partials/_partials.scss +1 -0
  88. data/app/assets/stylesheets/lato_core/theme.scss.erb +127 -0
  89. data/app/assets/stylesheets/lato_core/vendors/_datetimepicker.css +568 -0
  90. data/app/assets/stylesheets/lato_core/vendors/_dropzone.css +388 -0
  91. data/app/assets/stylesheets/lato_core/vendors/_fontawesome.css +2341 -0
  92. data/app/assets/stylesheets/lato_core/vendors/_scrollbar.css +904 -0
  93. data/app/assets/stylesheets/lato_core/vendors/_selectize.css +324 -0
  94. data/app/assets/stylesheets/lato_core/vendors/_trumbowyg.css +584 -0
  95. data/app/assets/stylesheets/lato_core/vendors/_vendors.scss +6 -0
  96. data/app/assets/stylesheets/lato_core/widgets/_systeminfo.scss +21 -0
  97. data/app/assets/stylesheets/lato_core/widgets/_widgets.scss +1 -0
  98. data/app/cells/lato_core/charts/bar/vertical/cell.rb +57 -0
  99. data/app/cells/lato_core/charts/bar/vertical/views/show.html.erb +7 -0
  100. data/app/cells/lato_core/elements/block/cell.rb +39 -0
  101. data/app/cells/lato_core/elements/block/views/close.html.erb +1 -0
  102. data/app/cells/lato_core/elements/block/views/open.html.erb +4 -0
  103. data/app/cells/lato_core/elements/button/cell.rb +59 -0
  104. data/app/cells/lato_core/elements/button/views/button.html.erb +27 -0
  105. data/app/cells/lato_core/elements/button/views/link.html.erb +65 -0
  106. data/app/cells/lato_core/elements/buttongroup/cell.rb +33 -0
  107. data/app/cells/lato_core/elements/buttongroup/views/show.html.erb +7 -0
  108. data/app/cells/lato_core/elements/code/cell.rb +36 -0
  109. data/app/cells/lato_core/elements/code/views/close.html.erb +2 -0
  110. data/app/cells/lato_core/elements/code/views/open.html.erb +2 -0
  111. data/app/cells/lato_core/elements/flash/cell.rb +35 -0
  112. data/app/cells/lato_core/elements/flash/views/show.html.erb +11 -0
  113. data/app/cells/lato_core/elements/icon/cell.rb +31 -0
  114. data/app/cells/lato_core/elements/icon/views/show.html.erb +1 -0
  115. data/app/cells/lato_core/elements/modal/cell.rb +31 -0
  116. data/app/cells/lato_core/elements/modal/views/show.html.erb +21 -0
  117. data/app/cells/lato_core/elements/pagination/cell.rb +68 -0
  118. data/app/cells/lato_core/elements/pagination/views/show.html.erb +59 -0
  119. data/app/cells/lato_core/elements/row/cell.rb +37 -0
  120. data/app/cells/lato_core/elements/row/views/close.html.erb +1 -0
  121. data/app/cells/lato_core/elements/row/views/open.html.erb +3 -0
  122. data/app/cells/lato_core/elements/table/body/cell.rb +37 -0
  123. data/app/cells/lato_core/elements/table/body/views/close.html.erb +1 -0
  124. data/app/cells/lato_core/elements/table/body/views/open.html.erb +3 -0
  125. data/app/cells/lato_core/elements/table/container/cell.rb +41 -0
  126. data/app/cells/lato_core/elements/table/container/views/close.html.erb +2 -0
  127. data/app/cells/lato_core/elements/table/container/views/open.html.erb +7 -0
  128. data/app/cells/lato_core/elements/table/head/cell.rb +33 -0
  129. data/app/cells/lato_core/elements/table/head/views/show.html.erb +7 -0
  130. data/app/cells/lato_core/elements/table/row/cell.rb +49 -0
  131. data/app/cells/lato_core/elements/table/row/views/show.html.erb +35 -0
  132. data/app/cells/lato_core/elements/title/cell.rb +52 -0
  133. data/app/cells/lato_core/elements/title/views/show.html.erb +4 -0
  134. data/app/cells/lato_core/inputs/checkbox/cell.rb +38 -0
  135. data/app/cells/lato_core/inputs/checkbox/views/show.html.erb +20 -0
  136. data/app/cells/lato_core/inputs/datetime/cell.rb +53 -0
  137. data/app/cells/lato_core/inputs/datetime/views/show.html.erb +19 -0
  138. data/app/cells/lato_core/inputs/dropzone/cell.rb +37 -0
  139. data/app/cells/lato_core/inputs/dropzone/views/show.html.erb +24 -0
  140. data/app/cells/lato_core/inputs/editor/cell.rb +37 -0
  141. data/app/cells/lato_core/inputs/editor/views/show.html.erb +12 -0
  142. data/app/cells/lato_core/inputs/email/cell.rb +40 -0
  143. data/app/cells/lato_core/inputs/email/views/show.html.erb +19 -0
  144. data/app/cells/lato_core/inputs/form/cell.rb +39 -0
  145. data/app/cells/lato_core/inputs/form/views/close.html.erb +1 -0
  146. data/app/cells/lato_core/inputs/form/views/open.html.erb +12 -0
  147. data/app/cells/lato_core/inputs/geolocalization/cell.rb +51 -0
  148. data/app/cells/lato_core/inputs/geolocalization/views/show.html.erb +26 -0
  149. data/app/cells/lato_core/inputs/number/cell.rb +44 -0
  150. data/app/cells/lato_core/inputs/number/views/show.html.erb +25 -0
  151. data/app/cells/lato_core/inputs/password/cell.rb +42 -0
  152. data/app/cells/lato_core/inputs/password/views/show.html.erb +21 -0
  153. data/app/cells/lato_core/inputs/select/cell.rb +56 -0
  154. data/app/cells/lato_core/inputs/select/views/show.html.erb +25 -0
  155. data/app/cells/lato_core/inputs/shared/help.html.erb +7 -0
  156. data/app/cells/lato_core/inputs/shared/label.html.erb +11 -0
  157. data/app/cells/lato_core/inputs/sortableblock/cell.rb +39 -0
  158. data/app/cells/lato_core/inputs/sortableblock/views/show.html.erb +40 -0
  159. data/app/cells/lato_core/inputs/text/cell.rb +42 -0
  160. data/app/cells/lato_core/inputs/text/views/show.html.erb +21 -0
  161. data/app/cells/lato_core/inputs/textarea/cell.rb +41 -0
  162. data/app/cells/lato_core/inputs/textarea/views/show.html.erb +16 -0
  163. data/app/cells/lato_core/widgets/index/cell.rb +215 -0
  164. data/app/cells/lato_core/widgets/index/views/partials/new.html.erb +3 -0
  165. data/app/cells/lato_core/widgets/index/views/partials/pagination.html.erb +3 -0
  166. data/app/cells/lato_core/widgets/index/views/partials/search.html.erb +17 -0
  167. data/app/cells/lato_core/widgets/index/views/show.html.erb +45 -0
  168. data/app/controllers/lato_core/api/api_controller.rb +5 -0
  169. data/app/controllers/lato_core/application_controller.rb +9 -1
  170. data/app/controllers/lato_core/back/authentication_controller.rb +33 -99
  171. data/app/controllers/lato_core/back/back_controller.rb +5 -14
  172. data/app/controllers/lato_core/back/dashboard_controller.rb +13 -0
  173. data/app/controllers/lato_core/back/superusers_controller.rb +97 -113
  174. data/app/controllers/lato_core/doc/cells_charts_controller.rb +7 -0
  175. data/app/controllers/lato_core/doc/cells_elements_controller.rb +31 -0
  176. data/app/controllers/lato_core/doc/cells_inputs_controller.rb +33 -0
  177. data/app/controllers/lato_core/doc/cells_widgets_controller.rb +10 -0
  178. data/app/controllers/lato_core/doc/doc_controller.rb +17 -0
  179. data/app/controllers/lato_core/doc/general_controller.rb +13 -0
  180. data/app/helpers/lato_core/application_helper.rb +4 -0
  181. data/app/jobs/lato_core/application_job.rb +4 -0
  182. data/app/mailers/lato_core/application_mailer.rb +2 -5
  183. data/app/models/lato_core/application_record.rb +5 -0
  184. data/app/models/lato_core/superuser.rb +11 -16
  185. data/app/models/lato_core/superuser/entity_helpers.rb +29 -0
  186. data/app/views/lato_core/back/authentication/index.html.erb +25 -0
  187. data/app/views/lato_core/back/dashboard/index.html.erb +29 -0
  188. data/app/views/lato_core/back/superusers/edit.html.erb +10 -15
  189. data/app/views/lato_core/back/superusers/index.html.erb +16 -27
  190. data/app/views/lato_core/back/superusers/new.html.erb +8 -13
  191. data/app/views/lato_core/back/superusers/shared/_form.html.erb +47 -55
  192. data/app/views/lato_core/back/superusers/show.html.erb +65 -1
  193. data/app/views/lato_core/doc/cells_charts/bar_vertical.erb +64 -0
  194. data/app/views/lato_core/doc/cells_elements/block.html.erb +172 -0
  195. data/app/views/lato_core/doc/cells_elements/button.html.erb +375 -0
  196. data/app/views/lato_core/doc/cells_elements/buttongroup.html.erb +101 -0
  197. data/app/views/lato_core/doc/cells_elements/flash_messages.html.erb +123 -0
  198. data/app/views/lato_core/doc/cells_elements/icon.html.erb +58 -0
  199. data/app/views/lato_core/doc/cells_elements/modal.html.erb +89 -0
  200. data/app/views/lato_core/doc/cells_elements/pagination.html.erb +149 -0
  201. data/app/views/lato_core/doc/cells_elements/row.html.erb +62 -0
  202. data/app/views/lato_core/doc/cells_elements/table.html.erb +272 -0
  203. data/app/views/lato_core/doc/cells_elements/table_body.html.erb +118 -0
  204. data/app/views/lato_core/doc/cells_elements/table_head.html.erb +110 -0
  205. data/app/views/lato_core/doc/cells_elements/table_row.html.erb +212 -0
  206. data/app/views/lato_core/doc/cells_elements/title.html.erb +70 -0
  207. data/app/views/lato_core/doc/cells_inputs/checkbox.html.erb +101 -0
  208. data/app/views/lato_core/doc/cells_inputs/datetime.html.erb +178 -0
  209. data/app/views/lato_core/doc/cells_inputs/dropzone.html.erb +114 -0
  210. data/app/views/lato_core/doc/cells_inputs/editor.html.erb +59 -0
  211. data/app/views/lato_core/doc/cells_inputs/email.html.erb +79 -0
  212. data/app/views/lato_core/doc/cells_inputs/form.html.erb +242 -0
  213. data/app/views/lato_core/doc/cells_inputs/geolocalization.html.erb +157 -0
  214. data/app/views/lato_core/doc/cells_inputs/number.html.erb +100 -0
  215. data/app/views/lato_core/doc/cells_inputs/password.html.erb +79 -0
  216. data/app/views/lato_core/doc/cells_inputs/select.html.erb +124 -0
  217. data/app/views/lato_core/doc/cells_inputs/sortableblock.html.erb +72 -0
  218. data/app/views/lato_core/doc/cells_inputs/text.html.erb +204 -0
  219. data/app/views/lato_core/doc/cells_inputs/textarea.html.erb +104 -0
  220. data/app/views/lato_core/doc/cells_widgets/index.html.erb +163 -0
  221. data/app/views/lato_core/doc/doc/index.html.erb +95 -0
  222. data/app/views/lato_core/doc/general/generators.html.erb +60 -0
  223. data/app/views/lato_core/doc/general/installation.html.erb +49 -0
  224. data/app/views/lato_core/doc/general/languages.html.erb +67 -0
  225. data/app/views/lato_core/doc/general/personalization.html.erb +177 -0
  226. data/app/views/lato_core/doc/shared/_modal_content.html.erb +4 -0
  227. data/app/views/lato_core/doc/shared/_sortableblock_partial.html.erb +1 -0
  228. data/app/views/lato_core/partials/_dynamic_data_to_js.html.erb +3 -0
  229. data/app/views/lato_core/partials/_gmaps.html.erb +5 -0
  230. data/app/views/lato_core/widgets/_systeminfo.html.erb +15 -0
  231. data/app/views/layouts/lato_core/admin.html.erb +44 -0
  232. data/app/views/layouts/lato_core/authentication.html.erb +22 -0
  233. data/app/views/layouts/lato_core/partials/_back.html.erb +5 -0
  234. data/app/views/layouts/lato_core/partials/_load_javascript.html.erb +4 -0
  235. data/app/views/layouts/lato_core/partials/_load_partials.html.erb +5 -0
  236. data/app/views/layouts/lato_core/partials/_load_stylesheet.html.erb +4 -0
  237. data/app/views/layouts/lato_core/partials/_logo.html.erb +9 -0
  238. data/app/views/layouts/lato_core/partials/_menu.html.erb +67 -0
  239. data/app/views/layouts/lato_core/partials/_profile.html.erb +19 -0
  240. data/app/views/layouts/lato_core/partials/_title.html.erb +3 -0
  241. data/app/views/layouts/lato_core/partials/_widgets.html.erb +13 -0
  242. data/config/configs.yml +102 -0
  243. data/config/initializers/assets.rb +9 -0
  244. data/config/initializers/init_system.rb +39 -0
  245. data/config/languages/default.yml +63 -0
  246. data/config/languages/it.yml +63 -0
  247. data/config/routes.rb +10 -13
  248. data/config/routes/api.rb +3 -0
  249. data/config/routes/back.rb +10 -0
  250. data/config/routes/doc.rb +48 -0
  251. data/db/migrate/20160224181217_create_lato_core_superusers.rb +8 -2
  252. data/lib/generators/lato_core/crud_generator.rb +26 -0
  253. data/lib/generators/lato_core/initializer_generator.rb +46 -0
  254. data/lib/generators/lato_core/templates/assets/images/logo.svg +13 -0
  255. data/{config/initializers/lists.rb → lib/generators/lato_core/templates/assets/javascripts/application.js} +0 -0
  256. data/lib/generators/lato_core/templates/assets/stylesheets/application.scss +2 -0
  257. data/lib/generators/lato_core/templates/assets/stylesheets/theme.scss.erb +13 -0
  258. data/lib/generators/lato_core/templates/controllers/application_controller.rb +13 -0
  259. data/lib/generators/lato_core/templates/controllers/crud_controller.rb +87 -0
  260. data/lib/generators/lato_core/templates/views/application/index.html.erb +16 -0
  261. data/lib/generators/lato_core/templates/views/crud/edit.html.erb +18 -0
  262. data/lib/generators/lato_core/templates/views/crud/index.html.erb +29 -0
  263. data/lib/generators/lato_core/templates/views/crud/new.html.erb +18 -0
  264. data/lib/generators/lato_core/templates/views/crud/shared/_form.html.erb +25 -0
  265. data/lib/generators/lato_core/templates/views/crud/show.html.erb +16 -0
  266. data/lib/lato_core.rb +6 -5
  267. data/lib/lato_core/cell.rb +28 -0
  268. data/lib/lato_core/engine.rb +16 -13
  269. data/lib/lato_core/helper.rb +11 -0
  270. data/lib/lato_core/helpers/cells.rb +20 -0
  271. data/lib/lato_core/helpers/general.rb +16 -0
  272. data/lib/lato_core/interface.rb +17 -14
  273. data/lib/lato_core/interfaces/apihelpers.rb +39 -0
  274. data/lib/lato_core/interfaces/application.rb +65 -0
  275. data/lib/lato_core/interfaces/authentication.rb +41 -0
  276. data/lib/lato_core/interfaces/cells.rb +41 -0
  277. data/lib/lato_core/interfaces/general.rb +39 -0
  278. data/lib/lato_core/interfaces/layout.rb +213 -0
  279. data/lib/lato_core/interfaces/modules.rb +110 -0
  280. data/lib/lato_core/interfaces/token.rb +25 -0
  281. data/lib/lato_core/version.rb +3 -0
  282. data/lib/tasks/lato_core_tasks.rake +4 -8
  283. data/lib/tasks/lato_tasks.rake +83 -0
  284. metadata +407 -33
  285. data/app/controllers/lato_core/api/v1/api_controller.rb +0 -8
  286. data/app/mailers/lato_core/superusers_mailer.rb +0 -27
  287. data/app/views/lato_core/back/authentication/login.html.erb +0 -45
  288. data/app/views/lato_core/back/authentication/password_edit.html.erb +0 -45
  289. data/app/views/lato_core/back/authentication/password_forget.html.erb +0 -36
  290. data/app/views/lato_core/back/back/home.html.erb +0 -20
  291. data/app/views/lato_core/mailers/layouts/mailer.html.erb +0 -9
  292. data/app/views/lato_core/mailers/layouts/mailer.text.erb +0 -1
  293. data/app/views/lato_core/mailers/superusers/notify.html.erb +0 -2
  294. data/app/views/lato_core/mailers/superusers/recover_password.html.erb +0 -4
  295. data/config/config.yml +0 -8
  296. data/config/example.yml +0 -66
  297. data/config/initializers/init.rb +0 -15
  298. data/config/initializers/ram.rb +0 -14
  299. data/lang/default.yml +0 -61
  300. data/lang/en.yml +0 -61
  301. data/lib/lato_core/interface/authentication.rb +0 -26
  302. data/lib/lato_core/interface/cache.rb +0 -23
  303. data/lib/lato_core/interface/communication.rb +0 -87
  304. data/lib/lato_core/interface/languages.rb +0 -51
  305. data/lib/lato_core/interface/navigation.rb +0 -95
  306. data/lib/lato_core/interface/session.rb +0 -57
  307. data/lib/lato_core/interface/superusers.rb +0 -134
@@ -0,0 +1,18 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ %>
5
+
6
+ <!-- MAIN CONTAINER -->
7
+ <%=raw row.open %>
8
+
9
+ <%=raw block.open %>
10
+
11
+ <%=raw cell(:elements, :title).new(label: 'New data', size: 2) %>
12
+
13
+ <%= render 'lato/crud/shared/form', url: lato_datas_path, method: :post %>
14
+
15
+ <%=raw block.close %>
16
+
17
+ <%=raw row.close %>
18
+ <!-- / MAIN CONTAINER -->
@@ -0,0 +1,25 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ form = cell(:inputs, :form).new(url: url, method: method)
4
+ %>
5
+
6
+ <%=raw form.open %>
7
+
8
+ <%=raw row.open %>
9
+
10
+ <%=raw cell(:inputs, :text).new(name: 'data[name]', label: 'Name',
11
+ required: true, class: 'md-12', value: @data.name) %>
12
+
13
+ <%=raw row.close %>
14
+
15
+ <div class="text-right">
16
+
17
+ <%=raw cell(:elements, :button).new(type: 'link', label: 'Cancel',
18
+ style: 'danger', icon: 'ban', url: lato_datas_path) %>
19
+
20
+ <%=raw cell(:elements, :button).new(type: 'submit', label: 'Save',
21
+ style: 'success', icon: 'check') %>
22
+
23
+ </div>
24
+
25
+ <%=raw form.close %>
@@ -0,0 +1,16 @@
1
+ <%
2
+ row = cell(:elements, :row).new
3
+ block = cell(:elements, :block).new(class: 'xs-12 sm-12 md-12')
4
+ %>
5
+
6
+ <!-- MAIN CONTAINER -->
7
+ <%=raw row.open %>
8
+
9
+ <%=raw block.open %>
10
+
11
+ <%=raw cell(:elements, :title).new(label: @data.name, size: 2) %>
12
+
13
+ <%=raw block.close %>
14
+
15
+ <%=raw row.close %>
16
+ <!-- / MAIN CONTAINER -->
@@ -1,7 +1,8 @@
1
- module LatoCore
2
-
3
- # include engine and interface
4
- require "lato_core/engine"
5
- require "lato_core/interface"
1
+ require "lato_core/engine"
2
+ require "lato_core/interface"
3
+ require "lato_core/cell"
4
+ require "lato_core/helper"
6
5
 
6
+ module LatoCore
7
+ # Your code goes here...
7
8
  end
@@ -0,0 +1,28 @@
1
+ module LatoCore
2
+
3
+ class Cell < Cell::Concept
4
+
5
+ # set cells directory
6
+ view_paths << "#{LatoCore::Engine.root}/app/cells"
7
+
8
+ # include cells dependencies
9
+ include ::Cell::Erb
10
+ include ActionView::Helpers::UrlHelper
11
+ include ActionView::Helpers::OutputSafetyHelper
12
+
13
+ # This function is used from cells to validates arguments on constructor.
14
+ def validate_args(args: {}, requested_args: [], default_args: {})
15
+ requested_args.each do |requested_arg|
16
+ raise "Cell must have #{requested_arg} argument" if args[requested_arg] == nil
17
+ end
18
+
19
+ default_args.each do |key, value|
20
+ args[key] = value if args[key] == nil
21
+ end
22
+
23
+ args
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -2,25 +2,28 @@ module LatoCore
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace LatoCore
4
4
 
5
- # Add migration support
6
- initializer 'Add migration support' do |app|
7
- unless app.root.to_s.match root.to_s
8
- config.paths['db/migrate'].expanded.each do |expanded_path|
9
- app.config.paths['db/migrate'] << expanded_path
10
- end
11
- end
12
- end
5
+ require 'rubygems'
6
+ require 'sass-rails'
7
+ require 'uglifier'
8
+ require 'jquery-rails'
9
+ require 'cells'
10
+ require 'cells-erb'
11
+ require 'bcrypt'
12
+ require 'jwt'
13
13
 
14
- # Add routes support
15
- initializer 'Add gem routes to application',
16
- before: :load_config_initializers do
14
+ # add routes support
15
+ initializer 'Add gem routes to application', before: :load_config_initializers do
17
16
  Rails.application.routes.append do
18
17
  mount LatoCore::Engine, at: '/lato/core'
19
18
  end
20
19
  end
21
20
 
22
- # Add interface to main application
23
- config.autoload_paths << LatoCore::Engine.root.join('lib/interface')
21
+ # add helpers support
22
+ initializer 'Add helpers to application' do
23
+ ActiveSupport.on_load :action_controller do
24
+ helper LatoCore::Helper
25
+ end
26
+ end
24
27
 
25
28
  end
26
29
  end
@@ -0,0 +1,11 @@
1
+ module LatoCore
2
+ module Helper
3
+
4
+ require 'lato_core/helpers/general'
5
+ include LatoCore::Helper::General
6
+
7
+ require 'lato_core/helpers/cells'
8
+ include LatoCore::Helper::Cells
9
+
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ module LatoCore
2
+
3
+ # This module contains helpers used to manage cells.
4
+ module Helper::Cells
5
+
6
+ # This helper is used to create a new cell with a pretty format.
7
+ def cell(*names)
8
+ # define variables
9
+ names_list = names.first.to_s.start_with?('Lato') ? names[1..-1] : names
10
+ cell_class = names.first.to_s.start_with?('Lato') ? "#{names.first}::" : 'LatoCore::'
11
+ # return correct cell
12
+ names_list.each do |name|
13
+ cell_class = "#{cell_class}#{name.capitalize}::"
14
+ end
15
+ "#{cell_class}Cell".constantize
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,16 @@
1
+ module LatoCore
2
+
3
+ # This helper contain general functions.
4
+ module Helper::General
5
+
6
+ def erb_open_tag
7
+ return "<span class='erb-tag'>&#060;&#037;</span>".html_safe
8
+ end
9
+
10
+ def erb_close_tag
11
+ return "<span class='erb-tag'>&#037;&#062;</span>".html_safe
12
+ end
13
+
14
+ end
15
+
16
+ end
@@ -1,26 +1,29 @@
1
1
  module LatoCore
2
2
  module Interface
3
3
 
4
- require 'lato_core/interface/authentication'
5
- include LatoCore::Interface::Authentication
4
+ require 'lato_core/interfaces/general'
5
+ include LatoCore::Interface::General
6
+
7
+ require 'lato_core/interfaces/application'
8
+ include LatoCore::Interface::Application
6
9
 
7
- require 'lato_core/interface/cache'
8
- include LatoCore::Interface::Cache
10
+ require 'lato_core/interfaces/modules'
11
+ include LatoCore::Interface::Modules
9
12
 
10
- require 'lato_core/interface/communication'
11
- include LatoCore::Interface::Communication
13
+ require 'lato_core/interfaces/token'
14
+ include LatoCore::Interface::Token
12
15
 
13
- require 'lato_core/interface/languages'
14
- include LatoCore::Interface::Languages
16
+ require 'lato_core/interfaces/layout'
17
+ include LatoCore::Interface::Layout
15
18
 
16
- require 'lato_core/interface/navigation'
17
- include LatoCore::Interface::Navigation
19
+ require 'lato_core/interfaces/authentication'
20
+ include LatoCore::Interface::Authentication
18
21
 
19
- require 'lato_core/interface/session'
20
- include LatoCore::Interface::Session
22
+ require 'lato_core/interfaces/cells'
23
+ include LatoCore::Interface::Cells
21
24
 
22
- require 'lato_core/interface/superusers'
23
- include LatoCore::Interface::Superusers
25
+ require 'lato_core/interfaces/apihelpers'
26
+ include LatoCore::Interface::Apihelpers
24
27
 
25
28
  end
26
29
  end
@@ -0,0 +1,39 @@
1
+ module LatoCore
2
+
3
+ # This module contains a list of functions used to write application or
4
+ # modules api. They permit to have a nice standard on api structure.
5
+ module Interface::Apihelpers
6
+
7
+ # This function render a normal success response with a custom payload.
8
+ def core__send_request_success(payload)
9
+ response = { result: true, error_message: nil }
10
+ response[:payload] = payload if payload
11
+ render json: response
12
+ end
13
+
14
+ # This function render an error message with a possible custom payload.
15
+ def core__send_request_fail(error, payload: nil)
16
+ response = { result: false, error_message: error }
17
+ response[:payload] = payload if payload
18
+ render json: response
19
+ end
20
+
21
+ # This function render an error message with the errors contained
22
+ # on an entity.
23
+ def core__send_entity_error(entity)
24
+ render_request_fail(entity.errors.full_messages.to_sentence)
25
+ end
26
+
27
+ # This function render an error for a bad request with an error message.
28
+ def core__send_bad_request_error(error)
29
+ render json: { result: false, error_message: error }, status: 400
30
+ end
31
+
32
+ # Tis function render an error for an unauthorized request with
33
+ # an error message.
34
+ def core__send_unauthorized_request_error(error)
35
+ render json: { result: false, error_message: error }, status: 401
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,65 @@
1
+ module LatoCore
2
+
3
+ # This module contains a list of functions used to get application informations.
4
+ # Information about the application are saved on a global variable APPLICATION.
5
+ module Interface::Application
6
+
7
+ # This function return the default language set on main application (I18l).
8
+ def core__get_application_language
9
+ I18n.locale
10
+ end
11
+
12
+ # This function return the list of gems used by the application.
13
+ def core__get_application_gems
14
+ gems = {}
15
+ Bundler.load.specs.each do |spec|
16
+ gems[spec.name] = spec.version
17
+ end
18
+ gems
19
+ end
20
+
21
+ # This function return the root path of the application.
22
+ def core__get_application_root_path
23
+ Rails.root.to_s
24
+ end
25
+
26
+ # This function return the path of the application logo for the sidebar.
27
+ def core__get_application_logo_sidebar_path
28
+ dir = "#{core__get_application_root_path}/app/assets/images/lato/"
29
+ if File.exist?("#{dir}/logo_sidebar.svg")
30
+ return 'lato/logo_sidebar.svg'
31
+ elsif File.exist?("#{dir}/logo_sidebar.png")
32
+ return 'lato/logo_sidebar.png'
33
+ elsif File.exist?("#{dir}/logo_sidebar.jpg")
34
+ return 'lato/logo_sidebar.jpg'
35
+ elsif File.exist?("#{dir}/logo_sidebar.gif")
36
+ return 'lato/logo_sidebar.gif'
37
+ end
38
+ core__get_application_logo_path
39
+ end
40
+
41
+ # This function return the path of the application logo.
42
+ def core__get_application_logo_path
43
+ dir = "#{core__get_application_root_path}/app/assets/images/lato/"
44
+ if File.exist?("#{dir}/logo.svg")
45
+ return 'lato/logo.svg'
46
+ elsif File.exist?("#{dir}/logo.png")
47
+ return 'lato/logo.png'
48
+ elsif File.exist?("#{dir}/logo.jpg")
49
+ return 'lato/logo.jpg'
50
+ elsif File.exist?('#{dir}/logo.gif')
51
+ return 'lato/logo.gif'
52
+ end
53
+ end
54
+
55
+ # This function create and return the path of configs on main application.
56
+ def core__get_application_lato_configs_path
57
+ absolute_path = "#{core__get_application_root_path}/config/lato"
58
+ # create directory if not exist
59
+ FileUtils.mkdir_p(absolute_path) unless File.exist?(absolute_path)
60
+ # return directory
61
+ absolute_path
62
+ end
63
+
64
+ end
65
+ end
@@ -0,0 +1,41 @@
1
+ module LatoCore
2
+
3
+ # This module contains a list of functions used to authenticate a superuser.
4
+ module Interface::Authentication
5
+
6
+ # This function set a cookie to create the superuser session.
7
+ def core__create_superuser_session(superuser, lifetime)
8
+ token = core__encode_token(lifetime, superuser_id: superuser.id)
9
+ session[:lato_core__superuser_session_token] = token
10
+ end
11
+
12
+ # This function delete a cookie to destroy the superuser session.
13
+ def core__destroy_superuser_session
14
+ session[:lato_core__superuser_session_token] = nil
15
+ end
16
+
17
+ # This function tells if the current session is valid.
18
+ def core__check_superuser_session_valid
19
+ decoded_token = core__decode_token(session[:lato_core__superuser_session_token])
20
+ return false unless decoded_token
21
+ true
22
+ end
23
+
24
+ # This function check the session for a superuser and set the variable @core__current_superuser.
25
+ # If session is not valid the user should be redirect to login path.
26
+ def core__manage_superuser_session
27
+ decoded_token = core__decode_token(session[:lato_core__superuser_session_token])
28
+
29
+ if decoded_token
30
+ @core__current_superuser = LatoCore::Superuser.find_by(id: decoded_token[:superuser_id])
31
+ unless @core__current_superuser
32
+ core__destroy_superuser_session
33
+ redirect_to lato_core.login_path
34
+ end
35
+ else
36
+ redirect_to lato_core.login_path
37
+ end
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ module LatoCore
2
+
3
+ # This module contains a list of functions used by controllers to interact with widgets
4
+ # cells.
5
+ module Interface::Cells
6
+
7
+ # This function must be executed before every action and set metadata
8
+ # used by cells.
9
+ def core__cells_initialize
10
+ @core__cells_authenticity_token = form_authenticity_token
11
+ end
12
+
13
+ # This function manage the widget index from front end.
14
+ def core__widgets_index(records, search: nil, pagination: 50)
15
+ response = {
16
+ records: records,
17
+ total: records.length,
18
+ per_page: pagination,
19
+ search: '',
20
+ search_key: search,
21
+ pagination: 1,
22
+ }
23
+ # manage search
24
+ if search && params[:widget_index] && params[:widget_index][:search] && !params[:widget_index][:search].blank?
25
+ response[:records] = response[:records].where("#{search} like ?", "%#{params[:widget_index][:search]}%")
26
+ response[:total] = response[:records].length
27
+ response[:search] = params[:widget_index][:search]
28
+ end
29
+ # manage pagination
30
+ if pagination
31
+ if params[:widget_index] && params[:widget_index][:pagination]
32
+ response[:pagination] = params[:widget_index][:pagination].to_i
33
+ end
34
+ response[:records] = core__paginate_array(response[:records], pagination, response[:pagination])
35
+ end
36
+ # return response
37
+ response
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,39 @@
1
+ module LatoCore
2
+
3
+ # This module contains a list of general functions used as helpers on the system.
4
+ module Interface::General
5
+
6
+ # This function takes a path to a yaml file and return the hash with yaml data
7
+ # or nil if file not exist.
8
+ def core__read_yaml(file_path)
9
+ # return nil if file not exist
10
+ return unless File.exist?(file_path)
11
+ config_file = File.read(file_path)
12
+ # return yaml data
13
+ return YAML.safe_load(config_file).with_indifferent_access
14
+ rescue
15
+ nil
16
+ end
17
+
18
+ # This function return the substring inside two strings.
19
+ def core__get_string_inside_strings(string, marker1, marker2)
20
+ string[/#{Regexp.escape(marker1)}(.*?)#{Regexp.escape(marker2)}/m, 1]
21
+ end
22
+
23
+ # This function paginate an array and return the requested page.
24
+ def core__paginate_array(array, per_page, page)
25
+ start = (page - 1) * per_page
26
+ array[start, per_page]
27
+ end
28
+
29
+ # This function add a new GET param to an url string.
30
+ def core__add_param_to_url(url, param_name, param_value)
31
+ uri = URI(url)
32
+ params = URI.decode_www_form(uri.query || "") << [param_name, param_value]
33
+ uri.query = URI.encode_www_form(params)
34
+ uri.to_s
35
+ end
36
+
37
+ end
38
+
39
+ end