carnival 0.0.10

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 (346) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +34 -0
  4. data/app/assets/images/carnival/avatar.png +0 -0
  5. data/app/assets/images/carnival/bg_button.png +0 -0
  6. data/app/assets/images/carnival/cal.png +0 -0
  7. data/app/assets/images/carnival/chosen-sprite.png +0 -0
  8. data/app/assets/images/carnival/chosen-sprite@2x.png +0 -0
  9. data/app/assets/images/carnival/datatables-loading.gif +0 -0
  10. data/app/assets/images/carnival/fonts/opensans-regular-webfont.eot +0 -0
  11. data/app/assets/images/carnival/fonts/opensans-regular-webfont.svg +252 -0
  12. data/app/assets/images/carnival/fonts/opensans-regular-webfont.ttf +0 -0
  13. data/app/assets/images/carnival/fonts/opensans-regular-webfont.woff +0 -0
  14. data/app/assets/images/carnival/fonts/opensans-semibold-webfont.eot +0 -0
  15. data/app/assets/images/carnival/fonts/opensans-semibold-webfont.svg +251 -0
  16. data/app/assets/images/carnival/fonts/opensans-semibold-webfont.ttf +0 -0
  17. data/app/assets/images/carnival/fonts/opensans-semibold-webfont.woff +0 -0
  18. data/app/assets/images/carnival/fonts/up-not.png +0 -0
  19. data/app/assets/images/carnival/header-bg.png +0 -0
  20. data/app/assets/images/carnival/novo.png +0 -0
  21. data/app/assets/images/carnival/overlay.png +0 -0
  22. data/app/assets/images/carnival/search-button.png +0 -0
  23. data/app/assets/images/carnival/search.png +0 -0
  24. data/app/assets/images/carnival/sort_asc.png +0 -0
  25. data/app/assets/images/carnival/sort_asc_disabled.png +0 -0
  26. data/app/assets/images/carnival/sort_both.png +0 -0
  27. data/app/assets/images/carnival/sort_desc.png +0 -0
  28. data/app/assets/images/carnival/sort_desc_disabled.png +0 -0
  29. data/app/assets/images/carnival/sprite.png +0 -0
  30. data/app/assets/images/carnival/sprites-active.png +0 -0
  31. data/app/assets/images/carnival/sprites.png +0 -0
  32. data/app/assets/images/carnival/up-not.png +0 -0
  33. data/app/assets/images/carnival/voltar.png +0 -0
  34. data/app/assets/javascripts/carnival/admin.js +10 -0
  35. data/app/assets/javascripts/carnival/advanced_search.js +40 -0
  36. data/app/assets/javascripts/carnival/data_tables_functions.js +75 -0
  37. data/app/assets/javascripts/carnival/external/chosen.jquery.js +1239 -0
  38. data/app/assets/javascripts/carnival/external/jquery-ui-1.9.1.custom.min.js +6 -0
  39. data/app/assets/javascripts/carnival/external/jquery.colorbox-min.js +7 -0
  40. data/app/assets/javascripts/carnival/external/jquery.dataTables.min.js +156 -0
  41. data/app/assets/javascripts/carnival/external/jquery.maskedinput.js +7 -0
  42. data/app/assets/javascripts/carnival/external/jquery.noty.js +560 -0
  43. data/app/assets/javascripts/carnival/external/jquery.noty.layout.bottom.js +34 -0
  44. data/app/assets/javascripts/carnival/external/jquery.noty.theme.default.js +156 -0
  45. data/app/assets/javascripts/carnival/external/perfect-scrollbar-0.4.6.min.js +4 -0
  46. data/app/assets/javascripts/carnival/external/perfect-scrollbar-0.4.6.with-mousewheel.min.js +4 -0
  47. data/app/assets/javascripts/carnival/vizir_admin.js +137 -0
  48. data/app/assets/stylesheets/carnival/admin.css +13 -0
  49. data/app/assets/stylesheets/carnival/admin_users.css +4 -0
  50. data/app/assets/stylesheets/carnival/chosen.css +435 -0
  51. data/app/assets/stylesheets/carnival/colorbox.css +69 -0
  52. data/app/assets/stylesheets/carnival/datatable.css +131 -0
  53. data/app/assets/stylesheets/carnival/formframe.css +407 -0
  54. data/app/assets/stylesheets/carnival/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  55. data/app/assets/stylesheets/carnival/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  56. data/app/assets/stylesheets/carnival/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  57. data/app/assets/stylesheets/carnival/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  58. data/app/assets/stylesheets/carnival/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  59. data/app/assets/stylesheets/carnival/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  60. data/app/assets/stylesheets/carnival/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  61. data/app/assets/stylesheets/carnival/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  62. data/app/assets/stylesheets/carnival/images/ui-icons_222222_256x240.png +0 -0
  63. data/app/assets/stylesheets/carnival/images/ui-icons_2e83ff_256x240.png +0 -0
  64. data/app/assets/stylesheets/carnival/images/ui-icons_454545_256x240.png +0 -0
  65. data/app/assets/stylesheets/carnival/images/ui-icons_888888_256x240.png +0 -0
  66. data/app/assets/stylesheets/carnival/images/ui-icons_cd0a0a_256x240.png +0 -0
  67. data/app/assets/stylesheets/carnival/jquery-ui-1.8.11.custom.css +573 -0
  68. data/app/assets/stylesheets/carnival/jquery.noty.css +104 -0
  69. data/app/assets/stylesheets/carnival/main.css +2223 -0
  70. data/app/assets/stylesheets/carnival/noty_theme_default.css +185 -0
  71. data/app/assets/stylesheets/carnival/perfect-scrollbar-0.4.6.min.css +5 -0
  72. data/app/assets/stylesheets/carnival/vizir-grid.css +663 -0
  73. data/app/controllers/carnival/admin_user_notifications_controller.rb +19 -0
  74. data/app/controllers/carnival/admin_users_controller.rb +10 -0
  75. data/app/controllers/carnival/base_admin_controller.rb +103 -0
  76. data/app/controllers/carnival/omniauth_callbacks_controller.rb +26 -0
  77. data/app/controllers/carnival/sessions_controller.rb +23 -0
  78. data/app/datatable/carnival/generic_datatable.rb +179 -0
  79. data/app/helpers/carnival/admin_users_helper.rb +4 -0
  80. data/app/helpers/carnival/base_admin_helper.rb +75 -0
  81. data/app/inputs/admin_base_input.rb +8 -0
  82. data/app/inputs/admin_currency_input.rb +12 -0
  83. data/app/inputs/admin_date_input.rb +11 -0
  84. data/app/inputs/admin_enum_input.rb +13 -0
  85. data/app/inputs/admin_relationship_select_input.rb +13 -0
  86. data/app/inputs/admin_text_input.rb +7 -0
  87. data/app/models/carnival/action.rb +51 -0
  88. data/app/models/carnival/admin_user.rb +40 -0
  89. data/app/models/carnival/admin_user_notification.rb +20 -0
  90. data/app/models/carnival/field.rb +102 -0
  91. data/app/models/carnival/form.rb +83 -0
  92. data/app/models/carnival/notification.rb +5 -0
  93. data/app/models/carnival/scope.rb +16 -0
  94. data/app/presenters/carnival/admin_user_notification_presenter.rb +61 -0
  95. data/app/presenters/carnival/admin_user_presenter.rb +53 -0
  96. data/app/presenters/carnival/base_admin_presenter.rb +336 -0
  97. data/app/views/carnival/admin_users/_form.html.haml +21 -0
  98. data/app/views/carnival/admin_users/edit.html.haml +3 -0
  99. data/app/views/carnival/admin_users/new.html.haml +4 -0
  100. data/app/views/carnival/admin_users/show.html.haml +14 -0
  101. data/app/views/carnival/index.html.haml +93 -0
  102. data/app/views/carnival/index.pdf.haml +5 -0
  103. data/app/views/carnival/login.html.haml +20 -0
  104. data/app/views/carnival/shared/_action_default.html.haml +1 -0
  105. data/app/views/carnival/shared/_action_delete.html.haml +1 -0
  106. data/app/views/carnival/shared/_add_button.html.haml +2 -0
  107. data/app/views/carnival/shared/_advanced_search.html.haml +26 -0
  108. data/app/views/carnival/shared/_advanced_search_field.html.haml +10 -0
  109. data/app/views/carnival/shared/_application_popup_partial.html.haml +12 -0
  110. data/app/views/carnival/shared/_batch_operation_checkbox.html.haml +4 -0
  111. data/app/views/carnival/shared/_delete.html.haml +1 -0
  112. data/app/views/carnival/shared/_edit_delete.html.haml +6 -0
  113. data/app/views/carnival/shared/_extra.html.haml +3 -0
  114. data/app/views/carnival/shared/_extra_item.html.haml +21 -0
  115. data/app/views/carnival/shared/_filter_bar.html.haml +3 -0
  116. data/app/views/carnival/shared/_header.pdf.haml +13 -0
  117. data/app/views/carnival/shared/_item_buttons.html.haml +3 -0
  118. data/app/views/carnival/shared/_link_fields.html.haml +6 -0
  119. data/app/views/carnival/shared/_list_cel.html.haml +9 -0
  120. data/app/views/carnival/shared/_list_cel.pdf.haml +9 -0
  121. data/app/views/carnival/shared/_period_filter.html.haml +54 -0
  122. data/app/views/carnival/shared/_report.pdf.haml +21 -0
  123. data/app/views/carnival/shared/_scope.html.haml +75 -0
  124. data/app/views/carnival/shared/_special_scope.html.haml +1 -0
  125. data/app/views/carnival/shared/form/_edit.html.haml +1 -0
  126. data/app/views/carnival/shared/form/_field.html.haml +8 -0
  127. data/app/views/carnival/shared/form/_form.html.haml +13 -0
  128. data/app/views/carnival/shared/form/edit.html.haml +6 -0
  129. data/app/views/carnival/shared/form/new.html.haml +7 -0
  130. data/app/views/carnival/shared/form/show.html.haml +16 -0
  131. data/app/views/carnival/shared/render_popup.js.erb +2 -0
  132. data/app/views/devise/confirmations/new.html.erb +12 -0
  133. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  134. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  135. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  136. data/app/views/devise/passwords/edit.html.erb +16 -0
  137. data/app/views/devise/passwords/new.html.erb +12 -0
  138. data/app/views/devise/registrations/edit.html.erb +29 -0
  139. data/app/views/devise/registrations/new.html.erb +18 -0
  140. data/app/views/devise/sessions/new.html.erb +19 -0
  141. data/app/views/devise/shared/_links.erb +25 -0
  142. data/app/views/devise/unlocks/new.html.erb +12 -0
  143. data/app/views/layouts/carnival/_menu.html.haml +30 -0
  144. data/app/views/layouts/carnival/_notifications_list.html.haml +27 -0
  145. data/app/views/layouts/carnival/admin.html.haml +51 -0
  146. data/config/initializers/carnival_initializer.rb +41 -0
  147. data/config/initializers/devise.rb +258 -0
  148. data/config/initializers/simple_form.rb +3 -0
  149. data/config/locales/carnival.en.yml +1 -0
  150. data/config/locales/carnival.pt.yml +228 -0
  151. data/config/locales/devise.en.yml +59 -0
  152. data/config/locales/devise.pt.yml +59 -0
  153. data/config/routes.rb +8 -0
  154. data/db/migrate/20140129211859_devise_create_admin_users.rb +43 -0
  155. data/db/migrate/20140129213216_create_notifications.rb +10 -0
  156. data/db/migrate/20140129223355_create_admin_user_notifications.rb +10 -0
  157. data/db/migrate/20140206144730_add_columns_to_admin_users.rb +7 -0
  158. data/lib/carnival.rb +13 -0
  159. data/lib/carnival/config.rb +10 -0
  160. data/lib/carnival/engine.rb +5 -0
  161. data/lib/carnival/routes.rb +13 -0
  162. data/lib/carnival/version.rb +3 -0
  163. data/lib/generators/carnival/install_generator.rb +18 -0
  164. data/lib/generators/carnival/templates/carnival_initializer.rb +41 -0
  165. data/lib/tasks/carnival_tasks.rake +4 -0
  166. data/test/carnival_test.rb +7 -0
  167. data/test/dummy/README.rdoc +28 -0
  168. data/test/dummy/Rakefile +6 -0
  169. data/test/dummy/app/assets/javascripts/application.js +13 -0
  170. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  171. data/test/dummy/app/controllers/admin/cities_controller.rb +9 -0
  172. data/test/dummy/app/controllers/admin/countries_controller.rb +9 -0
  173. data/test/dummy/app/controllers/admin/people_controller.rb +9 -0
  174. data/test/dummy/app/controllers/admin/states_controller.rb +9 -0
  175. data/test/dummy/app/controllers/admin/testes_controller.rb +9 -0
  176. data/test/dummy/app/controllers/application_controller.rb +5 -0
  177. data/test/dummy/app/helpers/application_helper.rb +2 -0
  178. data/test/dummy/app/models/admin.rb +5 -0
  179. data/test/dummy/app/models/admin/association_common.rb +23 -0
  180. data/test/dummy/app/models/admin/city.rb +11 -0
  181. data/test/dummy/app/models/admin/company.rb +14 -0
  182. data/test/dummy/app/models/admin/country.rb +9 -0
  183. data/test/dummy/app/models/admin/job.rb +10 -0
  184. data/test/dummy/app/models/admin/person.rb +17 -0
  185. data/test/dummy/app/models/admin/professional_experience.rb +14 -0
  186. data/test/dummy/app/models/admin/state.rb +12 -0
  187. data/test/dummy/app/models/job.rb +8 -0
  188. data/test/dummy/app/presenters/admin/city_presenter.rb +42 -0
  189. data/test/dummy/app/presenters/admin/country_presenter.rb +28 -0
  190. data/test/dummy/app/presenters/admin/person_presenter.rb +60 -0
  191. data/test/dummy/app/presenters/admin/state_presenter.rb +35 -0
  192. data/test/dummy/app/views/admin/testes/_form.html.haml +17 -0
  193. data/test/dummy/app/views/admin/testes/edit.html.haml +3 -0
  194. data/test/dummy/app/views/admin/testes/new.html.haml +4 -0
  195. data/test/dummy/app/views/admin/testes/show.html.haml +14 -0
  196. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  197. data/test/dummy/bin/bundle +3 -0
  198. data/test/dummy/bin/rails +4 -0
  199. data/test/dummy/bin/rake +4 -0
  200. data/test/dummy/config.ru +4 -0
  201. data/test/dummy/config/application.rb +22 -0
  202. data/test/dummy/config/boot.rb +5 -0
  203. data/test/dummy/config/database.yml +25 -0
  204. data/test/dummy/config/environment.rb +5 -0
  205. data/test/dummy/config/environments/development.rb +47 -0
  206. data/test/dummy/config/environments/production.rb +80 -0
  207. data/test/dummy/config/environments/test.rb +36 -0
  208. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  209. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  210. data/test/dummy/config/initializers/inflections.rb +16 -0
  211. data/test/dummy/config/initializers/mime_types.rb +5 -0
  212. data/test/dummy/config/initializers/secret_token.rb +12 -0
  213. data/test/dummy/config/initializers/session_store.rb +3 -0
  214. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  215. data/test/dummy/config/locales/en.yml +23 -0
  216. data/test/dummy/config/routes.rb +15 -0
  217. data/test/dummy/db/development.sqlite3 +0 -0
  218. data/test/dummy/db/migrate/20140206211804_create_admin_companies.rb +16 -0
  219. data/test/dummy/db/migrate/20140206211829_create_admin_countries.rb +10 -0
  220. data/test/dummy/db/migrate/20140206211850_create_admin_states.rb +12 -0
  221. data/test/dummy/db/migrate/20140206211923_create_admin_cities.rb +11 -0
  222. data/test/dummy/db/migrate/20140206212128_create_admin_people.rb +19 -0
  223. data/test/dummy/db/migrate/20140309013000_create_jobs.rb +9 -0
  224. data/test/dummy/db/migrate/20140309013019_create_professional_experiences.rb +14 -0
  225. data/test/dummy/db/migrate/20140323020642_devise_create_admin_users.carnival_engine.rb +44 -0
  226. data/test/dummy/db/migrate/20140323020643_create_notifications.carnival_engine.rb +11 -0
  227. data/test/dummy/db/migrate/20140323020644_create_admin_user_notifications.carnival_engine.rb +11 -0
  228. data/test/dummy/db/migrate/20140323020645_add_columns_to_admin_users.carnival_engine.rb +8 -0
  229. data/test/dummy/db/schema.rb +143 -0
  230. data/test/dummy/db/test.sqlite3 +0 -0
  231. data/test/dummy/log/bullet.log +0 -0
  232. data/test/dummy/log/development.log +6933 -0
  233. data/test/dummy/public/404.html +58 -0
  234. data/test/dummy/public/422.html +58 -0
  235. data/test/dummy/public/500.html +57 -0
  236. data/test/dummy/public/favicon.ico +0 -0
  237. data/test/dummy/tmp/cache/assets/development/sprockets/01c1d1cbb942f60130f0aa01d50c98d2 +0 -0
  238. data/test/dummy/tmp/cache/assets/development/sprockets/049c6f2079e2e93f96fd228df8c265ba +0 -0
  239. data/test/dummy/tmp/cache/assets/development/sprockets/0d9971c4a3b5017a7d2122508b66bb12 +0 -0
  240. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  241. data/test/dummy/tmp/cache/assets/development/sprockets/147e4215ac96fd8b8d373567ae00ed47 +0 -0
  242. data/test/dummy/tmp/cache/assets/development/sprockets/1634e1287a9914e738e710919b7cd6e4 +0 -0
  243. data/test/dummy/tmp/cache/assets/development/sprockets/16c6027bc506317d8266573d0ae1b510 +0 -0
  244. data/test/dummy/tmp/cache/assets/development/sprockets/16e4094498947b5f36bfbb490b94d025 +0 -0
  245. data/test/dummy/tmp/cache/assets/development/sprockets/197f549b9c46ec6679bddac8e4065948 +0 -0
  246. data/test/dummy/tmp/cache/assets/development/sprockets/2109e2acf993625dc0a3f05e7e0af523 +0 -0
  247. data/test/dummy/tmp/cache/assets/development/sprockets/22e50c67b95bf23b653e7a6768d38749 +0 -0
  248. data/test/dummy/tmp/cache/assets/development/sprockets/2684dad966b304ec2aee0149dc77c657 +0 -0
  249. data/test/dummy/tmp/cache/assets/development/sprockets/2908a36318747c72030e94441a2579c4 +0 -0
  250. data/test/dummy/tmp/cache/assets/development/sprockets/2a4d4d7ea99972ea41453ec4e6bad058 +0 -0
  251. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  252. data/test/dummy/tmp/cache/assets/development/sprockets/30c8c2e6ca355103a267133f6b45b0ce +0 -0
  253. data/test/dummy/tmp/cache/assets/development/sprockets/31177aaa32db75be241353c5819450b4 +0 -0
  254. data/test/dummy/tmp/cache/assets/development/sprockets/31a6581dfe5a788b2b450403959a97c5 +0 -0
  255. data/test/dummy/tmp/cache/assets/development/sprockets/32daf8a3bfd9da8ab261f5002f66389f +0 -0
  256. data/test/dummy/tmp/cache/assets/development/sprockets/33dfbc7bdde795abfd1031ceaa315dc8 +0 -0
  257. data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  258. data/test/dummy/tmp/cache/assets/development/sprockets/3636240cbc1f10d05a7e27f44c330bf9 +0 -0
  259. data/test/dummy/tmp/cache/assets/development/sprockets/39d34c0caaa6f36d684fac1898a7f88f +0 -0
  260. data/test/dummy/tmp/cache/assets/development/sprockets/3ac0f4fad0d3e6d3d13d4ed2189dcabe +0 -0
  261. data/test/dummy/tmp/cache/assets/development/sprockets/3d8100b6e405407290dcf994ef05e0b7 +0 -0
  262. data/test/dummy/tmp/cache/assets/development/sprockets/3fd8a2a00bb4ebd69a3ecac257dbe536 +0 -0
  263. data/test/dummy/tmp/cache/assets/development/sprockets/3fdb709b3417757576eff80c0ec26b75 +0 -0
  264. data/test/dummy/tmp/cache/assets/development/sprockets/4423cb4765f66f187ffcb3be911c3600 +0 -0
  265. data/test/dummy/tmp/cache/assets/development/sprockets/45b86c586ed942b09cec2190b3c45c5a +0 -0
  266. data/test/dummy/tmp/cache/assets/development/sprockets/47ce692a80d5b075614c2489d7e3a142 +0 -0
  267. data/test/dummy/tmp/cache/assets/development/sprockets/4a7a4dcd9fea9bd2e287771c51f96631 +0 -0
  268. data/test/dummy/tmp/cache/assets/development/sprockets/4bd7e9214a07840040d269fdbf523e97 +0 -0
  269. data/test/dummy/tmp/cache/assets/development/sprockets/4c36f4196d9df171251bea6f3b587fe3 +0 -0
  270. data/test/dummy/tmp/cache/assets/development/sprockets/4e4b1f24c5e69f2f305f6d6483a1605c +0 -0
  271. data/test/dummy/tmp/cache/assets/development/sprockets/5090d7ea741c7f63994eb7b62e757f8f +0 -0
  272. data/test/dummy/tmp/cache/assets/development/sprockets/565023fdd3960225e817ec043b2d9474 +0 -0
  273. data/test/dummy/tmp/cache/assets/development/sprockets/5a4d2d875f1d8ab987ab653f896d1c39 +0 -0
  274. data/test/dummy/tmp/cache/assets/development/sprockets/5c8a4c90b3525681a2173b93b9d55293 +0 -0
  275. data/test/dummy/tmp/cache/assets/development/sprockets/5e7998a2046d512312e432aef40d3e22 +0 -0
  276. data/test/dummy/tmp/cache/assets/development/sprockets/5eacf8d05b2a79f57d54ee047a51e223 +0 -0
  277. data/test/dummy/tmp/cache/assets/development/sprockets/662125e0a3b8f685abafe02e03c6f442 +0 -0
  278. data/test/dummy/tmp/cache/assets/development/sprockets/6808736d34ec24fb10203097ff009a4d +0 -0
  279. data/test/dummy/tmp/cache/assets/development/sprockets/6c257cb7126b2e5bda4c42d414e39786 +0 -0
  280. data/test/dummy/tmp/cache/assets/development/sprockets/6ce5945ed85a31ec875a9973b5a3d3bc +0 -0
  281. data/test/dummy/tmp/cache/assets/development/sprockets/6d806eaa317f200bbf2832a0abf1c1cc +0 -0
  282. data/test/dummy/tmp/cache/assets/development/sprockets/6f6ec88ead28d25410be2a6f62ec79b1 +0 -0
  283. data/test/dummy/tmp/cache/assets/development/sprockets/706dcf8ec253808fea35ae06a4b408b1 +0 -0
  284. data/test/dummy/tmp/cache/assets/development/sprockets/7cfe3fa955d677396ed9e22193559a64 +0 -0
  285. data/test/dummy/tmp/cache/assets/development/sprockets/7e154ca951644e8aa1a2c6221f08db4f +0 -0
  286. data/test/dummy/tmp/cache/assets/development/sprockets/822d6436044fe88b0b3fbc6f3458ff88 +0 -0
  287. data/test/dummy/tmp/cache/assets/development/sprockets/84e6a879569ca7546a93558488a6ff70 +0 -0
  288. data/test/dummy/tmp/cache/assets/development/sprockets/8576d7c22dbd8222ab27a6c47f56a65c +0 -0
  289. data/test/dummy/tmp/cache/assets/development/sprockets/88144c375f9e329812d0302be96e0eab +0 -0
  290. data/test/dummy/tmp/cache/assets/development/sprockets/8a4b32386b5d8554473df478badd6ef9 +0 -0
  291. data/test/dummy/tmp/cache/assets/development/sprockets/8bc60f31f479cd0263d897aa45b88750 +0 -0
  292. data/test/dummy/tmp/cache/assets/development/sprockets/8e22d55d0b7b958a3904e7428269df65 +0 -0
  293. data/test/dummy/tmp/cache/assets/development/sprockets/918ab452d9c4634682ff94ffbd89e16f +0 -0
  294. data/test/dummy/tmp/cache/assets/development/sprockets/9455de99a5c68705427bbec9e50865ce +0 -0
  295. data/test/dummy/tmp/cache/assets/development/sprockets/958dd41e5252627471b2b65116401512 +0 -0
  296. data/test/dummy/tmp/cache/assets/development/sprockets/996ac001c901711cabb64b7e1940c54a +0 -0
  297. data/test/dummy/tmp/cache/assets/development/sprockets/9aec27b5fa2afdfa28068452ece0e6f0 +0 -0
  298. data/test/dummy/tmp/cache/assets/development/sprockets/9db7e75f3fa621ef08ade7ffda96e39f +0 -0
  299. data/test/dummy/tmp/cache/assets/development/sprockets/9dc853d92b5d774afadacc451965059c +0 -0
  300. data/test/dummy/tmp/cache/assets/development/sprockets/a125dd8e84a82fc90705bd3710fb93c2 +0 -0
  301. data/test/dummy/tmp/cache/assets/development/sprockets/a1c5386d742fb4d01bea977ed28f4a96 +0 -0
  302. data/test/dummy/tmp/cache/assets/development/sprockets/a30288f737d428b0feb2a78b3aab9c69 +0 -0
  303. data/test/dummy/tmp/cache/assets/development/sprockets/a40d723f9a6ad5b541009b8f05ce6533 +0 -0
  304. data/test/dummy/tmp/cache/assets/development/sprockets/a908448dd851cae431aa2b4bde9b5a98 +0 -0
  305. data/test/dummy/tmp/cache/assets/development/sprockets/aa5708f6fbe7528d49c127a7f89a2511 +0 -0
  306. data/test/dummy/tmp/cache/assets/development/sprockets/aaf9dac7bb02577a8005e39ca9225482 +0 -0
  307. data/test/dummy/tmp/cache/assets/development/sprockets/ad7b50123ad008ac0730bbbdf76a6bfe +0 -0
  308. data/test/dummy/tmp/cache/assets/development/sprockets/b271e3537645a42480b3ba7bca2342f4 +0 -0
  309. data/test/dummy/tmp/cache/assets/development/sprockets/ba891185d4fda83f4c16e6bb8139359b +0 -0
  310. data/test/dummy/tmp/cache/assets/development/sprockets/c72101732682999b6ca050f007fc6467 +0 -0
  311. data/test/dummy/tmp/cache/assets/development/sprockets/c8927e934e7960fc7907b6fc02ea7f08 +0 -0
  312. data/test/dummy/tmp/cache/assets/development/sprockets/c980544b5828a643ecaa8e784897c2c2 +0 -0
  313. data/test/dummy/tmp/cache/assets/development/sprockets/ca0e1997bc6c40f955a42ee777299750 +0 -0
  314. data/test/dummy/tmp/cache/assets/development/sprockets/cc2c3f8b87c5b787305412a3076058db +0 -0
  315. data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  316. data/test/dummy/tmp/cache/assets/development/sprockets/d16461dfcae4b782f721ebd81e4f8740 +0 -0
  317. data/test/dummy/tmp/cache/assets/development/sprockets/d3b5d5784361e5eb827fbcdb0332258f +0 -0
  318. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  319. data/test/dummy/tmp/cache/assets/development/sprockets/d81122f6f2520c8f0785425936756e20 +0 -0
  320. data/test/dummy/tmp/cache/assets/development/sprockets/dbf160a6439a8d0b792ff46cf0a612f6 +0 -0
  321. data/test/dummy/tmp/cache/assets/development/sprockets/dc829340258cc36c0df423725df54649 +0 -0
  322. data/test/dummy/tmp/cache/assets/development/sprockets/dd326f3f4fd1c7fd075b58d6cb623a25 +0 -0
  323. data/test/dummy/tmp/cache/assets/development/sprockets/de060f82711b4b5c465f17b140eb2a61 +0 -0
  324. data/test/dummy/tmp/cache/assets/development/sprockets/e0352d0f97751491adbe6a94832772af +0 -0
  325. data/test/dummy/tmp/cache/assets/development/sprockets/e1d6efce94e71965434d2dde64fd8410 +0 -0
  326. data/test/dummy/tmp/cache/assets/development/sprockets/e4298973f799acdce289752c24bfddf2 +0 -0
  327. data/test/dummy/tmp/cache/assets/development/sprockets/e9c81ca91323dab8977ffd8a459cab06 +0 -0
  328. data/test/dummy/tmp/cache/assets/development/sprockets/eccab0d41d08e156ccd2f36f85949356 +0 -0
  329. data/test/dummy/tmp/cache/assets/development/sprockets/eed84a44f4e3915a39ea98ce25dc2570 +0 -0
  330. data/test/dummy/tmp/cache/assets/development/sprockets/f1e75c209067b23f5c0c7bf2006c43d0 +0 -0
  331. data/test/dummy/tmp/cache/assets/development/sprockets/f31e05a23db2e9dfc9207658cda7b799 +0 -0
  332. data/test/dummy/tmp/cache/assets/development/sprockets/f5c9348795319821f3309d4e03bb9fdb +0 -0
  333. data/test/dummy/tmp/cache/assets/development/sprockets/f631443b06d6b36e666344dbaf0b64f0 +0 -0
  334. data/test/dummy/tmp/cache/assets/development/sprockets/f7ab949c8c6b7ef3f2b743ebd98f9f59 +0 -0
  335. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  336. data/test/dummy/tmp/cache/assets/development/sprockets/fc4b3bb94f52c27dfb87395841a7cb62 +0 -0
  337. data/test/dummy/tmp/cache/assets/development/sprockets/fc79e1609ba401a4408c71182ef89b3e +0 -0
  338. data/test/dummy/tmp/cache/assets/development/sprockets/fd1e0a44b82fc47f26c7adec9d918911 +0 -0
  339. data/test/dummy/tmp/cache/assets/development/sprockets/fe9a0ccc2a407c74780c85e66882e888 +0 -0
  340. data/test/dummy/tmp/cache/assets/development/sprockets/ff3b0a569330823bd5599af14ee70cc8 +0 -0
  341. data/test/dummy/tmp/pids/server.pid +1 -0
  342. data/test/fixtures/notifications.yml +11 -0
  343. data/test/integration/navigation_test.rb +10 -0
  344. data/test/models/notification_test.rb +7 -0
  345. data/test/test_helper.rb +15 -0
  346. metadata +739 -0
@@ -0,0 +1,19 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Carnival
3
+ class AdminUserNotificationsController < Carnival::BaseAdminController
4
+ layout "carnival/admin"
5
+
6
+ def read
7
+ admin_user_notification = AdminUserNotification.find params[:id]
8
+ link = admin_user_notification.mark_as_read_and_get_link
9
+ redirect_to link
10
+ end
11
+
12
+ def generate_datatable
13
+ query = Carnival::AdminUserNotification.where('admin_user_id = ? ', current_admin_user.id)
14
+ modelo_presenter = Carnival::AdminUserNotificationPresenter.new(query)
15
+ @admin_user_notifications = []
16
+ GenericDatatable.new(view_context, AdminUserNotification, self, modelo_presenter, query)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ module Carnival
2
+
3
+ class AdminUsersController < Carnival::BaseAdminController
4
+ layout "carnival/admin"
5
+
6
+ def permitted_params
7
+ params.permit(admin_admin_user: [:name, :email, :password, :password_confirmation])
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,103 @@
1
+ module Carnival
2
+ class BaseAdminController < InheritedResources::Base
3
+ respond_to :html, :json
4
+ before_filter :authenticate_admin_user!
5
+
6
+ def generate_datatable
7
+ modelo_presenter = instantiate_presenter
8
+ Carnival::GenericDatatable.new(view_context, instantiate_model, self, modelo_presenter)
9
+ end
10
+
11
+ def index
12
+ @datatable = generate_datatable
13
+ @advanced_search = params["advanced_search"] if params["advanced_search"].present?
14
+
15
+ if params[:special_scope].present?
16
+ presenter = @datatable.presenter
17
+ presenter.parse_special_scope params[:special_scope]
18
+ end
19
+
20
+ respond_to do |format|
21
+ format.html do |render|
22
+ render '/carnival/index'
23
+ end
24
+ format.json do |render|
25
+ render(json: @datatable)
26
+ end
27
+ format.csv do
28
+ render text: @datatable.as_csv.encode("utf-16le")
29
+ end
30
+ format.pdf do
31
+ render :pdf => t("#{@datatable.model.to_s.underscore}.lista") , :template => 'carnival/index.pdf.haml', :show_as_html => params[:debug].present?
32
+ end
33
+ end
34
+ end
35
+
36
+ def show
37
+ @model_presenter = instantiate_presenter
38
+ show! do |format|
39
+ format.html{render '/carnival/shared/form/show'}
40
+ end
41
+ end
42
+
43
+ def new
44
+ @model_presenter = instantiate_presenter
45
+ new! do |format|
46
+ @model = instance_variable_get("@#{controller_name.classify.underscore}")
47
+ format.html{render '/carnival/shared/form/new'}
48
+ end
49
+ end
50
+
51
+ def edit
52
+ @model_presenter = instantiate_presenter
53
+ edit! do |format|
54
+ @model = instance_variable_get("@#{controller_name.classify.underscore}")
55
+ format.html{render '/carnival/shared/form/edit'}
56
+ end
57
+ end
58
+
59
+ def create
60
+ create!(:notice => I18n.t("messages.created"))
61
+ end
62
+
63
+ def update
64
+ update!(:notice => I18n.t("messages.updated"))
65
+ end
66
+
67
+ def render_popup partial
68
+ @application_popup = partial
69
+ render 'layouts/shared/render_popup' and return
70
+ end
71
+
72
+ def current_user
73
+ current_admin_user
74
+ end
75
+
76
+ private
77
+
78
+ def instantiate_model
79
+ namespace = extract_namespace
80
+ if namespace.present?
81
+ "#{extract_namespace}::#{controller_name.classify}".constantize
82
+ else
83
+ "#{controller_name.classify}".constantize
84
+ end
85
+ end
86
+
87
+ def instantiate_presenter
88
+ namespace = extract_namespace
89
+ if namespace.present?
90
+ "#{extract_namespace}::#{controller_name.classify}Presenter".constantize.send(:new, :controller => self)
91
+ else
92
+ "#{controller_name.classify}Presenter".constantize.send(:new, :controller => self)
93
+ end
94
+ end
95
+
96
+ def extract_namespace
97
+ namespace = ""
98
+ arr = self.class.to_s.split("::")
99
+ namespace = arr[0] if arr.size > 1
100
+ namespace
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,26 @@
1
+ class Carnival::OmniauthCallbacksController < Devise::OmniauthCallbacksController
2
+ def facebook
3
+ # You need to implement the method below in your model (e.g. app/models/user.rb)
4
+ @user = Carnival::AdminUser.find_for_omni_auth(request.env["omniauth.auth"])
5
+
6
+ if @user.persisted?
7
+ sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
8
+ set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
9
+ else
10
+ session["devise.facebook_data"] = request.env["omniauth.auth"]
11
+ redirect_to new_user_registration_url
12
+ end
13
+ end
14
+
15
+ def google_oauth2
16
+ user = Carnival::AdminUser.find_for_omni_auth(request.env["omniauth.auth"])
17
+ if user.persisted?
18
+ flash.notice = "Signed in Through Google!"
19
+ sign_in_and_redirect user
20
+ else
21
+ session["devise.user_attributes"] = user.attributes
22
+ flash.notice = "You are almost Done! Please provide a password to finish setting up your account"
23
+ redirect_to new_user_registration_url
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ module Carnival
2
+ class SessionsController < Devise::SessionsController
3
+ def create
4
+ resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
5
+ set_flash_message(:success, :signed_in) if is_navigational_format?
6
+ redirect_to admin_root_url
7
+ end
8
+
9
+ def destroy
10
+ redirect_path = after_sign_out_path_for(resource_name)
11
+ signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
12
+ set_flash_message :success, :signed_out if signed_out && is_navigational_format?
13
+ # We actually need to hardcode this as Rails default responder doesn't
14
+ # support returning empty response on GET request
15
+ respond_to do |format|
16
+ format.any(*navigational_formats) { redirect_to redirect_path }
17
+ format.all do
18
+ head :no_content
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,179 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Carnival
3
+ class GenericDatatable
4
+ delegate :params, :caminho_modelo, :h, :link_to, :number_to_currency, :number_with_precision, to: :@view
5
+ delegate :current_usuario, :render_to_string, to: :@controller
6
+ attr_accessor :model, :presenter
7
+ require 'csv'
8
+
9
+ RENDER_TABLE = 0
10
+ RENDER_CSV = 1
11
+ RENDER_PDF = 2
12
+
13
+ def initialize(view, model, controller, presenter, items=nil)
14
+ @view = view
15
+ @model = model
16
+ @controller = controller
17
+ @presenter = presenter
18
+ @items = items
19
+ @filters = []
20
+ end
21
+
22
+ def as_csv(options = {})
23
+ data_to_csv(data(RENDER_CSV))
24
+ end
25
+
26
+ def as_json(options = {})
27
+ if(params[:scope].present? && params[:scope] != "all")
28
+ @model = @model.send(params[:scope])
29
+ end
30
+
31
+ date_filter_field = @presenter.date_filter_field
32
+ if(date_filter_field.present? && params[:from].present? && params[:from] != "" && params[:to].present? && params[:to] != "")
33
+ @model = @model.where("#{@presenter.table_name}.#{date_filter_field.name} between ? and ?", params[:from], params[:to])
34
+ end
35
+
36
+ count = @model.count
37
+
38
+ return_data = {}
39
+ return_data[:data] = data
40
+ {
41
+ sEcho: params[:sEcho].to_i,
42
+ iTotalRecords: count,
43
+ iTotalDisplayRecords: records.total_entries,
44
+ aaData: return_data[:data]
45
+ }
46
+ end
47
+
48
+ def as_pdf(options = {})
49
+ fetch_records
50
+ end
51
+
52
+ def filters
53
+ @filters
54
+ end
55
+
56
+ private
57
+
58
+ def data_to_csv(data)
59
+ CSV.generate(:col_sep => "\t") do |csv|
60
+ csv_line = []
61
+ @presenter.fields_for_action(:csv).each do |key, field|
62
+ csv_line << I18n.t("#{@presenter.model_name}.#{field.name}")
63
+ end
64
+ csv << csv_line
65
+
66
+ data.each do |line|
67
+ i = 0
68
+ csv_line = []
69
+ line.each do |field|
70
+ csv_line << field[1].gsub(/\n$/, "") if i > 1
71
+ i = i + 1
72
+ end
73
+ csv << csv_line
74
+ end
75
+ end
76
+ end
77
+
78
+ def data(render_type = RENDER_TABLE)
79
+ data = []
80
+ records.each do |record|
81
+ data_item = {
82
+ "DT_RowId" => "item#{record.id}",
83
+ "DT_RowClass" => "more-click"
84
+ }
85
+
86
+ ac = @controller
87
+ i = 0
88
+
89
+ if render_type == RENDER_CSV
90
+ @presenter.fields_for_action(:csv).each do |key, field|
91
+ data_item[i.to_s] = ac.render_to_string :formats => [:html] , :partial => '/carnival/shared/list_cel', :locals => {:presenter => @presenter,:field=> key, :record=> record, :only_render_fields => true}
92
+ i = i + 1
93
+ end
94
+ elsif render_type == RENDER_PDF
95
+ @presenter.fields_for_action(:pdf).each do |key, field|
96
+ data_item[i.to_s] = ac.render_to_string :formats => [:html] , :partial => '/carnival/shared/list_cel', :locals => {:presenter => @presenter,:field=> key, :record=> record, :only_render_fields => true}
97
+ i = i + 1
98
+ end
99
+ else render_type == RENDER_TABLE
100
+ @presenter.fields_for_action(:index).each do |key, field|
101
+ data_item[i.to_s] = ac.render_to_string :formats => [:html] , :partial => '/carnival/shared/list_cel', :locals => {:presenter => @presenter,:field=> key, :record=> record, :only_render_fields => false}
102
+ i = i + 1
103
+ end
104
+ data_item[i.to_s] = ac.render_to_string :formats => [:html], :partial => '/carnival/shared/item_buttons', :locals => {:record=>record, :presenter => @presenter}
105
+ i = i + 1
106
+ end
107
+ data << data_item
108
+ end
109
+ data
110
+ end
111
+
112
+
113
+ def records
114
+ @records ||= fetch_records
115
+ end
116
+
117
+ def fetch_records
118
+ @filters = []
119
+ records = !@items.nil? ? @items : @model
120
+ if(params[:scope].present? && params[:scope] != "all")
121
+ records = records.send(params[:scope])
122
+ add_filter 'Escopo',params[:scope]
123
+ end
124
+
125
+ date_filter_field = @presenter.date_filter_field
126
+ if(date_filter_field.present? && params[:from].present? && params[:from] != "" && params[:to].present? && params[:to] != "")
127
+ @model = @model.where("#{@presenter.table_name}.#{date_filter_field.name} between ? and ?", params[:from], params[:to])
128
+ add_filter 'Período',"#{params[:from]} - #{params[:to]}"
129
+ end
130
+
131
+ records = records.order("#{@presenter.table_name}.#{sort_column} #{sort_direction}")
132
+ records = records.page(page).per_page(per_page)
133
+ filtros = []
134
+ if params[:advancedquery].present?
135
+ records = @presenter.parse_advanced_search(records, params[:advancedquery])
136
+ records = records.where(filtros.join(" or "), search: "%#{params[:sSearch]}%")
137
+ elsif params[:sSearch].present? and @presenter.searchable_fields.size > 0
138
+ @presenter.searchable_fields.each do |key, field|
139
+ filtros << "#{key.to_s} like :search"
140
+ end
141
+ records = records.where(filtros.join(" or "), search: "%#{params[:sSearch]}%")
142
+ end
143
+ records
144
+ end
145
+
146
+ def add_filter(name,value)
147
+ @filters << [name,value]
148
+ end
149
+
150
+ def page
151
+ params[:iDisplayStart].to_i/per_page + 1
152
+ end
153
+
154
+ def per_page
155
+ params[:iDisplayLength].to_i > 0 ? params[:iDisplayLength].to_i : 50
156
+ end
157
+
158
+ def sort_column
159
+ if @presenter.fields.size > 0
160
+ columns = @presenter.fields.map {|k, v| k.to_s}
161
+ end
162
+ columns[params[:iSortCol_0].to_i]
163
+ end
164
+
165
+ def sort_direction
166
+ sort_dir = @presenter.default_sort_direction
167
+ if params[:sSortDir_0].present?
168
+ sort_dir = params[:sSortDir_0]
169
+ sort_dir == "desc" ? "desc" : "asc"
170
+ end
171
+
172
+ if sort_dir == 'desc'
173
+ return 'desc'
174
+ else
175
+ return 'asc'
176
+ end
177
+ end
178
+ end
179
+ end
@@ -0,0 +1,4 @@
1
+ module Carnival
2
+ module AdminUsersHelper
3
+ end
4
+ end
@@ -0,0 +1,75 @@
1
+ module Carnival
2
+ module BaseAdminHelper
3
+ def set_resource_actived_if_current(path)
4
+ (request.fullpath == path)? 'actived' : ''
5
+ end
6
+
7
+ def show_messages
8
+ @messages = ''
9
+ flash.each do |type, message|
10
+ @messages = message
11
+ @type = type
12
+ end
13
+ javascript = "noty({'text':'#{@messages}',
14
+ 'layout':'bottom','type':'#{@type}','animateOpen':{'height':'toggle'},
15
+ 'animateClose':{'height':'toggle'},'speed':500,'timeout':4000,
16
+ 'closeButton':false,'closeOnSelfClick':true,'closeOnSelfOver':true});"
17
+ return javascript if defined?(@type)
18
+ ''
19
+ end
20
+
21
+ def link_to_add_fields(name, f, association, path="")
22
+ new_object = f.object.class.reflect_on_association(association).klass.new
23
+ fields = f.fields_for(association, [new_object], :child_index => "new_#{association}") do |builder|
24
+ render(path + association.to_s.singularize + "_fields", :f => builder)
25
+ end
26
+ fields = fields.gsub("\"","'").gsub("&",'&amp;').gsub("<",'&lt;').gsub(">",'&gt;').gsub("\n", '')
27
+ link_to_function(name, ("addFields(this, '#{association}', \"#{raw(fields)}\")"))
28
+ end
29
+
30
+ def link_to_remove_fields(name, f)
31
+ f.hidden_field(:_destroy) + link_to_function(name, "removeFields(this)")
32
+ end
33
+
34
+ def caminho_modelo(action, extra_params=nil)
35
+ params = {controller: controller.controller_name, action: action}
36
+ params = params.merge(extra_params) if extra_params.present?
37
+ url_for(params)
38
+ end
39
+
40
+ def constant_exists?(item, field)
41
+ begin
42
+ item.class.const_get(field.to_s.upcase).present?
43
+ rescue
44
+ false
45
+ end
46
+ end
47
+
48
+ def field_type(presenter,field)
49
+ return :relation if presenter.relation_field?(field.to_sym)
50
+ field_type = nil
51
+ field_type = presenter.model_class.columns_hash[field.to_s].type if presenter.model_class.columns_hash[field.to_s].present?
52
+ return :date if field_type == :datetime or field_type == :date
53
+ return :number if field_type == :decimal or field_type == :float
54
+ return :enum if field_type == :integer and constant_exists?(presenter.model_class,field)
55
+ :other
56
+ end
57
+
58
+ def field_to_show(presenter, field, record, show_only_value=false)
59
+ current_type = field_type(presenter,field)
60
+ if current_type == :relation
61
+ if show_only_value
62
+ record.send(field.to_s).to_s
63
+ else
64
+ return link_to presenter.relation_label(field.to_sym, record), presenter.relation_path(field.to_sym, record)
65
+ end
66
+ else
67
+ result = record.send(field)
68
+ return result.strftime("%d/%m/%y %H:%M:%S") if current_type == :date
69
+ return number_with_precision(result, :precision => 2, :separator => ",") if current_type == :number
70
+ return record.class.const_get(field.to_s.upcase)[result] if current_type == :enum
71
+ result
72
+ end
73
+ end
74
+ end
75
+ end