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,53 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Carnival
3
+ class AdminUserPresenter < Carnival::BaseAdminPresenter
4
+ field :id,
5
+ :actions => [:index, :show],
6
+ :sortable => {:direction => :asc, :default => true},
7
+ :searchable => true,
8
+ :advanced_search => {:operator => :equal}
9
+ field :name,
10
+ :actions => [:index, :new, :show, :edit],
11
+ :searchable => true,
12
+ :advanced_search => {:operator => :like},
13
+ position: {line: 1, column: 1}
14
+ field :email,
15
+ :actions => [:index, :new, :show, :edit],
16
+ :sortable => true,
17
+ :searchable => true,
18
+ :advanced_search => {:operator => :like},
19
+ position: {line: 1, column: 2, size: 5}
20
+ field :last_sign_in_at, :actions => [:index, :show]
21
+ field :sign_in_count, :actions => [:index, :show]
22
+
23
+ action :show
24
+ action :edit
25
+ action :destroy
26
+ action :new
27
+ action :teste1, :target => :record, :path=>"http://www.google.com.br"
28
+ action :teste2, :target => :page, :path=>"http://www.google.com.br"
29
+
30
+ def listagem_botoes
31
+ {:novo => true, :editar=> true, :apagar => true}
32
+ end
33
+
34
+ def listagem_botoes_extras
35
+ [
36
+ {
37
+ :link => 'admin_admin_user',
38
+ :nome => I18n.t('details')
39
+ }
40
+ ]
41
+ end
42
+
43
+ def filtro_data
44
+
45
+ end
46
+
47
+
48
+ def escopo
49
+ []
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,336 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module Carnival
3
+ class BaseAdminPresenter
4
+ include Rails.application.routes.url_helpers
5
+ attr_accessor :special_scope_to_exec
6
+
7
+ def initialize(params)
8
+ @@controller = params[:controller]
9
+ @special_scopes_to_exec = nil
10
+ end
11
+
12
+ def base_query
13
+ @base_query
14
+ end
15
+
16
+ #New implementation starts here
17
+ @@actions = {}
18
+ def self.action(name, params = {})
19
+ @@actions[presenter_class_name] = {} if @@actions[presenter_class_name].nil?
20
+ @@actions[presenter_class_name][name] = Carnival::Action.new(self.new({}), name, params)
21
+ end
22
+
23
+ def actions
24
+ @@actions[presenter_class_name]
25
+ end
26
+
27
+ def actions_for_record
28
+ filter_actions([:show, :edit, :destroy], :record)
29
+ end
30
+
31
+ def actions_for_page
32
+ filter_actions([:new], :page)
33
+ end
34
+
35
+ def has_action?(action)
36
+ @@actions[presenter_class_name].present? && @@actions[presenter_class_name][action].present?
37
+ end
38
+
39
+ @@fields = {}
40
+ @@scopes = {}
41
+ @@forms = {}
42
+
43
+ def self.scope(name, params = {})
44
+ self.instantiate_element(@@scopes, Carnival::Scope, name, params)
45
+ end
46
+
47
+ def self.field(name, params = {})
48
+ self.instantiate_element(@@fields, Carnival::Field, name, params)
49
+ end
50
+
51
+ def self.form(action, params = {})
52
+ self.instantiate_element(@@forms, Carnival::Form, name, params)
53
+ end
54
+
55
+ def scopes
56
+ @@scopes[presenter_class_name]
57
+ end
58
+
59
+ def scopes_counters
60
+ scopes = {}
61
+ if @@scopes[presenter_class_name].present?
62
+ @@scopes[presenter_class_name].each do |key, scope|
63
+ if base_query.present?
64
+ scopes[scope.name] = base_query.send(scope.name).count
65
+ else
66
+ scopes[scope.name] = model_class.send(scope.name).count
67
+ end
68
+ end
69
+ end
70
+ scopes
71
+ end
72
+
73
+ def fields
74
+ @@fields[presenter_class_name]
75
+ end
76
+
77
+ def fields_for_action(action)
78
+ fields_action = {}
79
+ @@fields[presenter_class_name].each do |key, field|
80
+ if field.valid_for_action?(action)
81
+ fields_action[key] = field
82
+ end
83
+ end
84
+ fields_action
85
+ end
86
+
87
+ def form_for(action)
88
+ form = Carnival::Form.new(action)
89
+ form = @@forms[presenter_class_name][action] if @@forms[presenter_class_name].present? and @@forms[presenter_class_name][action].present?
90
+ form.fields = fields_for_action(action)
91
+ form
92
+ end
93
+
94
+ def model_name
95
+ self.class.to_s.split("::").last().gsub("Presenter", "").underscore
96
+ end
97
+
98
+ def model_path(action, extra_params=nil)
99
+ params = {controller: model_class.to_s.pluralize.underscore, action: action}
100
+ params = params.merge(extra_params) if extra_params.present?
101
+ params = params.merge(:only_path => true)
102
+ url_for(params)
103
+ end
104
+
105
+ def full_model_name
106
+ self.class.to_s.gsub("Presenter", "").underscore
107
+ end
108
+
109
+ def controller_name
110
+ namespace = extract_namespace
111
+ if namespace.present?
112
+ "#{extract_namespace.downcase}/#{@@controller.controller_name}"
113
+ else
114
+ @@controller.controller_name
115
+ end
116
+ end
117
+
118
+ def table_name
119
+ model_name.pluralize
120
+ end
121
+
122
+ def searchable_fields
123
+ searchable_fields = {}
124
+ @@fields[presenter_class_name].each do |key, field|
125
+ searchable_fields[key] = field if field.searchable?
126
+ end
127
+ searchable_fields
128
+ end
129
+
130
+ def default_scope
131
+ default_scope = nil
132
+ @@scopes[presenter_class_name].each do |key, scope|
133
+ default_scope = scope if scope.default?
134
+ break
135
+ end
136
+ default_scope = @@scopes[presenter_class_name].first[1] if default_scope.nil?
137
+ default_scope
138
+ end
139
+
140
+ def default_sortable_field
141
+ default_field = nil
142
+ @@fields[presenter_class_name].each do |key, field|
143
+ default_field = field if field.default_sortable?
144
+ break
145
+ end
146
+ default_field = @@fields[presenter_class_name].first[1] if default_field.nil?
147
+ default_field
148
+ end
149
+
150
+ def default_sort_direction
151
+ default_sortable_field.default_sort_direction
152
+ end
153
+
154
+ def sortable_fields
155
+ sortable_fields = {}
156
+ @@fields[presenter_class_name].each do |key, field|
157
+ sortable_fields[key] = field if field.sortable?
158
+ end
159
+ sortable_fields
160
+ end
161
+
162
+ def advanced_search_fields
163
+ advanced_search_fields = {}
164
+ @@fields[presenter_class_name].each do |key, field|
165
+ advanced_search_fields[key] = field if field.advanced_searchable?
166
+ end
167
+ advanced_search_fields
168
+ end
169
+
170
+ def date_filter_field
171
+ date_field = nil
172
+ @@fields[presenter_class_name].each do |key, field|
173
+ if field.date_filter?
174
+ date_field = field
175
+ break
176
+ end
177
+ end
178
+ date_field
179
+ end
180
+
181
+ def model_class
182
+ self.class.to_s.gsub("Presenter", "").constantize
183
+ end
184
+
185
+ def relation_field?(field)
186
+ if model_class.reflect_on_association(field)
187
+ true
188
+ else
189
+ false
190
+ end
191
+ end
192
+
193
+ def relation_label(field, record)
194
+ if relation_field?(field)
195
+ if model_class.reflect_on_association(field).macro == :belongs_to
196
+ return record.send(field)
197
+ else
198
+ return I18n.t("#{model_name}.#{field}")
199
+ end
200
+ end
201
+ raise
202
+ return ""
203
+ end
204
+
205
+ def relation_path(field, record)
206
+ if relation_field?(field)
207
+ related_class = model_class.reflect_on_association(field).klass.name.pluralize.underscore
208
+ if model_class.reflect_on_association(field).macro == :belongs_to
209
+ params = {:controller => related_class, :action => :show, :id => record.send(model_class.reflect_on_association(field).foreign_key)}
210
+ else
211
+ params = {:controller => related_class, :action => :index, :advanced_search => make_relation_advanced_query_url_options(field, record)}
212
+ end
213
+ params = params.merge(:only_path => true)
214
+ return url_for(params)
215
+ end
216
+ return nil
217
+ end
218
+
219
+ def parse_advanced_search records, search_syntax
220
+ search = JSON.parse(search_syntax)
221
+ search.keys.each do |key|
222
+ search_field = key
223
+ search_field = key.split(".").last if key.include?(".")
224
+ search_field = search_field.gsub("_id", "") if search_field.ends_with?("_id")
225
+ if @@fields[presenter_class_name].keys.include? search_field.to_sym
226
+ if @@fields[presenter_class_name][search_field.to_sym].advanced_searchable?
227
+ records = parse_advanced_search_field(search_field, search[key], records)
228
+ end
229
+ end
230
+ end
231
+ records
232
+ end
233
+
234
+ protected
235
+ def make_relation_advanced_query_url_options(field, record)
236
+ relation_model = model_class.reflect_on_association(field).klass.name.pluralize.underscore.split("/").last
237
+ relation_field = model_class.reflect_on_association(field).foreign_key
238
+ relation_value = record.id
239
+ {"#{relation_model}.#{relation_field}" => relation_value}
240
+ end
241
+
242
+ def filter_actions(default_actions, target)
243
+ actions = {}
244
+ if @@actions[presenter_class_name]
245
+ @@actions[presenter_class_name].each do |key, action|
246
+ if default_actions.include?(key) || action.target == target
247
+ actions[key] = action
248
+ end
249
+ end
250
+ end
251
+ actions
252
+ end
253
+
254
+ def self.presenter_class_name
255
+ if self.class.name == "Class"
256
+ self.to_s
257
+ else
258
+ self.class.name
259
+ end
260
+ end
261
+
262
+ def presenter_class_name
263
+ if self.class.name == "Class"
264
+ self.to_s
265
+ else
266
+ self.class.name
267
+ end
268
+ end
269
+
270
+ def parse_advanced_search_field search_field, field_param, records
271
+ return records if not field_param["value"].present?
272
+ return records if field_param["value"] == ""
273
+
274
+ if relation_field?(search_field.to_sym)
275
+ related_model = model_class.reflect_on_association(search_field.to_sym).klass.name.underscore
276
+ foreign_key = model_class.reflect_on_association(search_field.to_sym).foreign_key
277
+ if model_class.reflect_on_association(search_field.to_sym).macro == :belongs_to
278
+ records = records.joins(related_model.split("/").last.to_sym)
279
+ else
280
+ records = records.joins(related_model.split("/").last.pluralize)
281
+ end
282
+ table = related_model.split("/").last.pluralize
283
+ column = "id"
284
+ else
285
+ table = table_name
286
+ column = search_field
287
+ end
288
+ full_column_query = "#{table}.#{column}"
289
+ where_clause = nil
290
+
291
+ case field_param["operator"]
292
+ when "equal"
293
+ if field_param["value"] == "nil"
294
+ where_clause = "#{full_column_query} is null"
295
+ else
296
+ where_clause = "#{full_column_query} = #{advanced_search_field_value_for_query(field_param["value"])}"
297
+ end
298
+ when "like"
299
+ where_clause = "#{full_column_query} like '%#{field_param["value"]}%'"
300
+ when "greater_than"
301
+ where_clause = "#{full_column_query} >= '#{field_param["value"]}'"
302
+ when "less_than"
303
+ where_clause = "#{full_column_query} <= '#{field_param["value"]}'"
304
+ when "between"
305
+ where_clause = "#{full_column_query} between '#{field_param["value"]}' and '#{field_param["value2"]}'"
306
+ else
307
+ where_clause = "#{full_column_query} = #{advanced_search_field_value_for_query(field_param["value"])}"
308
+ end
309
+ records = records.where(where_clause) if where_clause.present?
310
+ records
311
+ end
312
+
313
+ def advanced_search_field_value_for_query(value)
314
+ if "true" == value.downcase
315
+ return "'t'"
316
+ elsif "false" == value.downcase
317
+ return "'f'"
318
+ else
319
+ '#{value}'
320
+ end
321
+ end
322
+
323
+ def self.instantiate_element(container, klass, name, params)
324
+ container[presenter_class_name] = {} if container[presenter_class_name].nil?
325
+ container[presenter_class_name][name] = klass.new(name, params)
326
+ end
327
+
328
+ def extract_namespace
329
+ namespace = ""
330
+ arr = self.class.to_s.split("::")
331
+ namespace = arr[0] if arr.size > 1
332
+ namespace
333
+ end
334
+
335
+ end
336
+ end
@@ -0,0 +1,21 @@
1
+ .action_back
2
+ = link_to t('back'), admin_admin_users_path, :class => 'back_link'
3
+
4
+ = simple_form_for @admin_user, html: {id: 'formframe'} do |f|
5
+ - if @admin_user.errors.any?
6
+ #error_explanation
7
+ %ul
8
+ - @admin_user.errors.full_messages.each do |msg|
9
+ %li= msg
10
+ .field
11
+ = f.input :name
12
+ .field
13
+ = f.input :email
14
+ .field
15
+ = f.input :password
16
+ .field
17
+ = f.input :password_confirmation
18
+
19
+ .submit_button
20
+ - submit_label = action_name
21
+ = f.submit t(submit_label), :disable_with => I18n.t('please_wait'), :class => 'submit'
@@ -0,0 +1,3 @@
1
+ .gray_border.with_margin_bottom
2
+ %h1= t('admin_user.edit')
3
+ = render "form"
@@ -0,0 +1,4 @@
1
+ .gray_border.with_margin_bottom
2
+ %h1= t('admin_user.new')
3
+ = render "form"
4
+
@@ -0,0 +1,14 @@
1
+ .gray_border.with_margin_bottom
2
+ %h1= t('admin_users.admin')
3
+
4
+ .action_back
5
+ = link_to t('back'), admin_admin_users_path, :class => 'back_link'
6
+
7
+
8
+ .field
9
+ %label= "#{t('admin_user.name')}:"
10
+ ="#{@admin_user.name}"
11
+
12
+ .field
13
+ %label= "#{t('admin_user.email')}:"
14
+ ="#{@admin_user.email}"
@@ -0,0 +1,93 @@
1
+ = javascript_include_tag "carnival/data_tables_functions"
2
+ - special_scope = params[:special_scope]
3
+ - modelo = @datatable.model
4
+ - items = []
5
+ - presenter = @datatable.presenter
6
+ - params = {:class => 'table'}
7
+
8
+ - date_filter_field = presenter.date_filter_field
9
+ - if date_filter_field.present?
10
+ - params["data-from"] = date_filter_field.date_filter_periods[date_filter_field.default_date_filter][0]
11
+ - params["data-to"] = date_filter_field.date_filter_periods[date_filter_field.default_date_filter][1]
12
+
13
+ - params["data-source"] = presenter.model_path("index", {format: :json})
14
+
15
+ - params["data-search"] = presenter.searchable_fields.size > 0
16
+
17
+ - if special_scope.present?
18
+ - params["data-special_scope"] = special_scope
19
+
20
+ .table-tools
21
+ .advanced_search
22
+ = render '/carnival/shared/advanced_search', :params => params, presenter: presenter
23
+ = render '/carnival/shared/scope', :params => params, presenter: presenter
24
+ .actions
25
+ - presenter.actions_for_page.each do |key, action|
26
+ = render '/carnival/shared/action_default', :label=>t("#{presenter.model_name}.#{action.name}"), :path=> action.path
27
+ = render '/carnival/shared/period_filter', :params => params, presenter: presenter
28
+
29
+ %table{params}
30
+ %thead
31
+ %tr
32
+ -presenter.fields_for_action(:index).each do |key, field|
33
+ %th{"data-sortable" => "#{field.sortable?}"}= t("#{presenter.model_name}.#{field.name}")
34
+ %th.buttons
35
+ %tbody
36
+
37
+ .table-tools.table-download-links
38
+ = link_to t('download_as_csv'), "javascript:exportTable('csv');"
39
+ = link_to t('download_as_pdf'), presenter.model_path(:index, {:format => 'pdf'})
40
+ :javascript
41
+ function exportTable(format){
42
+ var url = generateDataSource($("table").first()).replace("json", format);
43
+ window.open(url,'_blank');
44
+ }
45
+
46
+ var dataTablesTranslation = {
47
+ 'oPaginate': {
48
+ 'sFirst': '#{t('data_tables.first')}',
49
+ 'sLast': '#{t('data_tables.last')}',
50
+ 'sNext': '#{t('data_tables.next')} &raquo;',
51
+ 'sPrevious': '&laquo; #{t('data_tables.previous')}',
52
+ },
53
+ 'sInfo': '#{t('data_tables.row_counter')}',
54
+ 'sInfoEmpty': '#{t('data_tables.row_counter_empty')}',
55
+ 'sEmptyTable': '#{t('data_tables.table_empty')}',
56
+ 'sInfoFiltered': '#{t('data_tables.rows_filtered')}',
57
+ 'sInfoPostFix': '',
58
+ 'sLengthMenu': '#{t('data_tables.rows_per_page')}',
59
+ 'sProcessing': '#{t('data_tables.processing')}',
60
+ 'sSearch': '',
61
+ 'sZeroRecords': '#{t('data_tables.zero_records')}'
62
+ };
63
+
64
+ var vizirApplication = {};
65
+ vizirApplication.remoteFunction = function(url, successCallback, errorCallback, method, data){
66
+ if(!data)
67
+ data = {};
68
+ $.ajax({
69
+ url: url,
70
+ type: method,
71
+ data: data,
72
+ success: function(data, status, jqXHR){
73
+ if(successCallback)
74
+ successCallback(data, status, jqXHR);
75
+ else{
76
+ if(console && console.warn)
77
+ console.warn('Não foi implementada uma função de success Callback')
78
+ }
79
+ },
80
+ error: function(jqXHR, status, error){
81
+ if(errorCallback)
82
+ errorCallback(jqXHR, status, error);
83
+ else{
84
+ if(console && console.warn)
85
+ console.warn('Não foi implementada uma função de error Callback')
86
+ }
87
+ }
88
+ })
89
+ }
90
+
91
+ $(document).ready(function(){
92
+ datatable_list('table', []);
93
+ });