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.
- checksums.yaml +15 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +34 -0
- data/app/assets/images/carnival/avatar.png +0 -0
- data/app/assets/images/carnival/bg_button.png +0 -0
- data/app/assets/images/carnival/cal.png +0 -0
- data/app/assets/images/carnival/chosen-sprite.png +0 -0
- data/app/assets/images/carnival/chosen-sprite@2x.png +0 -0
- data/app/assets/images/carnival/datatables-loading.gif +0 -0
- data/app/assets/images/carnival/fonts/opensans-regular-webfont.eot +0 -0
- data/app/assets/images/carnival/fonts/opensans-regular-webfont.svg +252 -0
- data/app/assets/images/carnival/fonts/opensans-regular-webfont.ttf +0 -0
- data/app/assets/images/carnival/fonts/opensans-regular-webfont.woff +0 -0
- data/app/assets/images/carnival/fonts/opensans-semibold-webfont.eot +0 -0
- data/app/assets/images/carnival/fonts/opensans-semibold-webfont.svg +251 -0
- data/app/assets/images/carnival/fonts/opensans-semibold-webfont.ttf +0 -0
- data/app/assets/images/carnival/fonts/opensans-semibold-webfont.woff +0 -0
- data/app/assets/images/carnival/fonts/up-not.png +0 -0
- data/app/assets/images/carnival/header-bg.png +0 -0
- data/app/assets/images/carnival/novo.png +0 -0
- data/app/assets/images/carnival/overlay.png +0 -0
- data/app/assets/images/carnival/search-button.png +0 -0
- data/app/assets/images/carnival/search.png +0 -0
- data/app/assets/images/carnival/sort_asc.png +0 -0
- data/app/assets/images/carnival/sort_asc_disabled.png +0 -0
- data/app/assets/images/carnival/sort_both.png +0 -0
- data/app/assets/images/carnival/sort_desc.png +0 -0
- data/app/assets/images/carnival/sort_desc_disabled.png +0 -0
- data/app/assets/images/carnival/sprite.png +0 -0
- data/app/assets/images/carnival/sprites-active.png +0 -0
- data/app/assets/images/carnival/sprites.png +0 -0
- data/app/assets/images/carnival/up-not.png +0 -0
- data/app/assets/images/carnival/voltar.png +0 -0
- data/app/assets/javascripts/carnival/admin.js +10 -0
- data/app/assets/javascripts/carnival/advanced_search.js +40 -0
- data/app/assets/javascripts/carnival/data_tables_functions.js +75 -0
- data/app/assets/javascripts/carnival/external/chosen.jquery.js +1239 -0
- data/app/assets/javascripts/carnival/external/jquery-ui-1.9.1.custom.min.js +6 -0
- data/app/assets/javascripts/carnival/external/jquery.colorbox-min.js +7 -0
- data/app/assets/javascripts/carnival/external/jquery.dataTables.min.js +156 -0
- data/app/assets/javascripts/carnival/external/jquery.maskedinput.js +7 -0
- data/app/assets/javascripts/carnival/external/jquery.noty.js +560 -0
- data/app/assets/javascripts/carnival/external/jquery.noty.layout.bottom.js +34 -0
- data/app/assets/javascripts/carnival/external/jquery.noty.theme.default.js +156 -0
- data/app/assets/javascripts/carnival/external/perfect-scrollbar-0.4.6.min.js +4 -0
- data/app/assets/javascripts/carnival/external/perfect-scrollbar-0.4.6.with-mousewheel.min.js +4 -0
- data/app/assets/javascripts/carnival/vizir_admin.js +137 -0
- data/app/assets/stylesheets/carnival/admin.css +13 -0
- data/app/assets/stylesheets/carnival/admin_users.css +4 -0
- data/app/assets/stylesheets/carnival/chosen.css +435 -0
- data/app/assets/stylesheets/carnival/colorbox.css +69 -0
- data/app/assets/stylesheets/carnival/datatable.css +131 -0
- data/app/assets/stylesheets/carnival/formframe.css +407 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-icons_222222_256x240.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-icons_454545_256x240.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-icons_888888_256x240.png +0 -0
- data/app/assets/stylesheets/carnival/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/stylesheets/carnival/jquery-ui-1.8.11.custom.css +573 -0
- data/app/assets/stylesheets/carnival/jquery.noty.css +104 -0
- data/app/assets/stylesheets/carnival/main.css +2223 -0
- data/app/assets/stylesheets/carnival/noty_theme_default.css +185 -0
- data/app/assets/stylesheets/carnival/perfect-scrollbar-0.4.6.min.css +5 -0
- data/app/assets/stylesheets/carnival/vizir-grid.css +663 -0
- data/app/controllers/carnival/admin_user_notifications_controller.rb +19 -0
- data/app/controllers/carnival/admin_users_controller.rb +10 -0
- data/app/controllers/carnival/base_admin_controller.rb +103 -0
- data/app/controllers/carnival/omniauth_callbacks_controller.rb +26 -0
- data/app/controllers/carnival/sessions_controller.rb +23 -0
- data/app/datatable/carnival/generic_datatable.rb +179 -0
- data/app/helpers/carnival/admin_users_helper.rb +4 -0
- data/app/helpers/carnival/base_admin_helper.rb +75 -0
- data/app/inputs/admin_base_input.rb +8 -0
- data/app/inputs/admin_currency_input.rb +12 -0
- data/app/inputs/admin_date_input.rb +11 -0
- data/app/inputs/admin_enum_input.rb +13 -0
- data/app/inputs/admin_relationship_select_input.rb +13 -0
- data/app/inputs/admin_text_input.rb +7 -0
- data/app/models/carnival/action.rb +51 -0
- data/app/models/carnival/admin_user.rb +40 -0
- data/app/models/carnival/admin_user_notification.rb +20 -0
- data/app/models/carnival/field.rb +102 -0
- data/app/models/carnival/form.rb +83 -0
- data/app/models/carnival/notification.rb +5 -0
- data/app/models/carnival/scope.rb +16 -0
- data/app/presenters/carnival/admin_user_notification_presenter.rb +61 -0
- data/app/presenters/carnival/admin_user_presenter.rb +53 -0
- data/app/presenters/carnival/base_admin_presenter.rb +336 -0
- data/app/views/carnival/admin_users/_form.html.haml +21 -0
- data/app/views/carnival/admin_users/edit.html.haml +3 -0
- data/app/views/carnival/admin_users/new.html.haml +4 -0
- data/app/views/carnival/admin_users/show.html.haml +14 -0
- data/app/views/carnival/index.html.haml +93 -0
- data/app/views/carnival/index.pdf.haml +5 -0
- data/app/views/carnival/login.html.haml +20 -0
- data/app/views/carnival/shared/_action_default.html.haml +1 -0
- data/app/views/carnival/shared/_action_delete.html.haml +1 -0
- data/app/views/carnival/shared/_add_button.html.haml +2 -0
- data/app/views/carnival/shared/_advanced_search.html.haml +26 -0
- data/app/views/carnival/shared/_advanced_search_field.html.haml +10 -0
- data/app/views/carnival/shared/_application_popup_partial.html.haml +12 -0
- data/app/views/carnival/shared/_batch_operation_checkbox.html.haml +4 -0
- data/app/views/carnival/shared/_delete.html.haml +1 -0
- data/app/views/carnival/shared/_edit_delete.html.haml +6 -0
- data/app/views/carnival/shared/_extra.html.haml +3 -0
- data/app/views/carnival/shared/_extra_item.html.haml +21 -0
- data/app/views/carnival/shared/_filter_bar.html.haml +3 -0
- data/app/views/carnival/shared/_header.pdf.haml +13 -0
- data/app/views/carnival/shared/_item_buttons.html.haml +3 -0
- data/app/views/carnival/shared/_link_fields.html.haml +6 -0
- data/app/views/carnival/shared/_list_cel.html.haml +9 -0
- data/app/views/carnival/shared/_list_cel.pdf.haml +9 -0
- data/app/views/carnival/shared/_period_filter.html.haml +54 -0
- data/app/views/carnival/shared/_report.pdf.haml +21 -0
- data/app/views/carnival/shared/_scope.html.haml +75 -0
- data/app/views/carnival/shared/_special_scope.html.haml +1 -0
- data/app/views/carnival/shared/form/_edit.html.haml +1 -0
- data/app/views/carnival/shared/form/_field.html.haml +8 -0
- data/app/views/carnival/shared/form/_form.html.haml +13 -0
- data/app/views/carnival/shared/form/edit.html.haml +6 -0
- data/app/views/carnival/shared/form/new.html.haml +7 -0
- data/app/views/carnival/shared/form/show.html.haml +16 -0
- data/app/views/carnival/shared/render_popup.js.erb +2 -0
- data/app/views/devise/confirmations/new.html.erb +12 -0
- data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/devise/passwords/edit.html.erb +16 -0
- data/app/views/devise/passwords/new.html.erb +12 -0
- data/app/views/devise/registrations/edit.html.erb +29 -0
- data/app/views/devise/registrations/new.html.erb +18 -0
- data/app/views/devise/sessions/new.html.erb +19 -0
- data/app/views/devise/shared/_links.erb +25 -0
- data/app/views/devise/unlocks/new.html.erb +12 -0
- data/app/views/layouts/carnival/_menu.html.haml +30 -0
- data/app/views/layouts/carnival/_notifications_list.html.haml +27 -0
- data/app/views/layouts/carnival/admin.html.haml +51 -0
- data/config/initializers/carnival_initializer.rb +41 -0
- data/config/initializers/devise.rb +258 -0
- data/config/initializers/simple_form.rb +3 -0
- data/config/locales/carnival.en.yml +1 -0
- data/config/locales/carnival.pt.yml +228 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/devise.pt.yml +59 -0
- data/config/routes.rb +8 -0
- data/db/migrate/20140129211859_devise_create_admin_users.rb +43 -0
- data/db/migrate/20140129213216_create_notifications.rb +10 -0
- data/db/migrate/20140129223355_create_admin_user_notifications.rb +10 -0
- data/db/migrate/20140206144730_add_columns_to_admin_users.rb +7 -0
- data/lib/carnival.rb +13 -0
- data/lib/carnival/config.rb +10 -0
- data/lib/carnival/engine.rb +5 -0
- data/lib/carnival/routes.rb +13 -0
- data/lib/carnival/version.rb +3 -0
- data/lib/generators/carnival/install_generator.rb +18 -0
- data/lib/generators/carnival/templates/carnival_initializer.rb +41 -0
- data/lib/tasks/carnival_tasks.rake +4 -0
- data/test/carnival_test.rb +7 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/admin/cities_controller.rb +9 -0
- data/test/dummy/app/controllers/admin/countries_controller.rb +9 -0
- data/test/dummy/app/controllers/admin/people_controller.rb +9 -0
- data/test/dummy/app/controllers/admin/states_controller.rb +9 -0
- data/test/dummy/app/controllers/admin/testes_controller.rb +9 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/admin.rb +5 -0
- data/test/dummy/app/models/admin/association_common.rb +23 -0
- data/test/dummy/app/models/admin/city.rb +11 -0
- data/test/dummy/app/models/admin/company.rb +14 -0
- data/test/dummy/app/models/admin/country.rb +9 -0
- data/test/dummy/app/models/admin/job.rb +10 -0
- data/test/dummy/app/models/admin/person.rb +17 -0
- data/test/dummy/app/models/admin/professional_experience.rb +14 -0
- data/test/dummy/app/models/admin/state.rb +12 -0
- data/test/dummy/app/models/job.rb +8 -0
- data/test/dummy/app/presenters/admin/city_presenter.rb +42 -0
- data/test/dummy/app/presenters/admin/country_presenter.rb +28 -0
- data/test/dummy/app/presenters/admin/person_presenter.rb +60 -0
- data/test/dummy/app/presenters/admin/state_presenter.rb +35 -0
- data/test/dummy/app/views/admin/testes/_form.html.haml +17 -0
- data/test/dummy/app/views/admin/testes/edit.html.haml +3 -0
- data/test/dummy/app/views/admin/testes/new.html.haml +4 -0
- data/test/dummy/app/views/admin/testes/show.html.haml +14 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +22 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +47 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +15 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20140206211804_create_admin_companies.rb +16 -0
- data/test/dummy/db/migrate/20140206211829_create_admin_countries.rb +10 -0
- data/test/dummy/db/migrate/20140206211850_create_admin_states.rb +12 -0
- data/test/dummy/db/migrate/20140206211923_create_admin_cities.rb +11 -0
- data/test/dummy/db/migrate/20140206212128_create_admin_people.rb +19 -0
- data/test/dummy/db/migrate/20140309013000_create_jobs.rb +9 -0
- data/test/dummy/db/migrate/20140309013019_create_professional_experiences.rb +14 -0
- data/test/dummy/db/migrate/20140323020642_devise_create_admin_users.carnival_engine.rb +44 -0
- data/test/dummy/db/migrate/20140323020643_create_notifications.carnival_engine.rb +11 -0
- data/test/dummy/db/migrate/20140323020644_create_admin_user_notifications.carnival_engine.rb +11 -0
- data/test/dummy/db/migrate/20140323020645_add_columns_to_admin_users.carnival_engine.rb +8 -0
- data/test/dummy/db/schema.rb +143 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/bullet.log +0 -0
- data/test/dummy/log/development.log +6933 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/01c1d1cbb942f60130f0aa01d50c98d2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/049c6f2079e2e93f96fd228df8c265ba +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0d9971c4a3b5017a7d2122508b66bb12 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/147e4215ac96fd8b8d373567ae00ed47 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/1634e1287a9914e738e710919b7cd6e4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/16c6027bc506317d8266573d0ae1b510 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/16e4094498947b5f36bfbb490b94d025 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/197f549b9c46ec6679bddac8e4065948 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2109e2acf993625dc0a3f05e7e0af523 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/22e50c67b95bf23b653e7a6768d38749 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2684dad966b304ec2aee0149dc77c657 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2908a36318747c72030e94441a2579c4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2a4d4d7ea99972ea41453ec4e6bad058 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/30c8c2e6ca355103a267133f6b45b0ce +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/31177aaa32db75be241353c5819450b4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/31a6581dfe5a788b2b450403959a97c5 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/32daf8a3bfd9da8ab261f5002f66389f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/33dfbc7bdde795abfd1031ceaa315dc8 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3636240cbc1f10d05a7e27f44c330bf9 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/39d34c0caaa6f36d684fac1898a7f88f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3ac0f4fad0d3e6d3d13d4ed2189dcabe +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3d8100b6e405407290dcf994ef05e0b7 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3fd8a2a00bb4ebd69a3ecac257dbe536 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/3fdb709b3417757576eff80c0ec26b75 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4423cb4765f66f187ffcb3be911c3600 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/45b86c586ed942b09cec2190b3c45c5a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/47ce692a80d5b075614c2489d7e3a142 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4a7a4dcd9fea9bd2e287771c51f96631 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4bd7e9214a07840040d269fdbf523e97 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4c36f4196d9df171251bea6f3b587fe3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4e4b1f24c5e69f2f305f6d6483a1605c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5090d7ea741c7f63994eb7b62e757f8f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/565023fdd3960225e817ec043b2d9474 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5a4d2d875f1d8ab987ab653f896d1c39 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5c8a4c90b3525681a2173b93b9d55293 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5e7998a2046d512312e432aef40d3e22 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/5eacf8d05b2a79f57d54ee047a51e223 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/662125e0a3b8f685abafe02e03c6f442 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6808736d34ec24fb10203097ff009a4d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6c257cb7126b2e5bda4c42d414e39786 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6ce5945ed85a31ec875a9973b5a3d3bc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6d806eaa317f200bbf2832a0abf1c1cc +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/6f6ec88ead28d25410be2a6f62ec79b1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/706dcf8ec253808fea35ae06a4b408b1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7cfe3fa955d677396ed9e22193559a64 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7e154ca951644e8aa1a2c6221f08db4f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/822d6436044fe88b0b3fbc6f3458ff88 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/84e6a879569ca7546a93558488a6ff70 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8576d7c22dbd8222ab27a6c47f56a65c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/88144c375f9e329812d0302be96e0eab +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8a4b32386b5d8554473df478badd6ef9 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8bc60f31f479cd0263d897aa45b88750 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/8e22d55d0b7b958a3904e7428269df65 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/918ab452d9c4634682ff94ffbd89e16f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9455de99a5c68705427bbec9e50865ce +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/958dd41e5252627471b2b65116401512 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/996ac001c901711cabb64b7e1940c54a +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9aec27b5fa2afdfa28068452ece0e6f0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9db7e75f3fa621ef08ade7ffda96e39f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/9dc853d92b5d774afadacc451965059c +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a125dd8e84a82fc90705bd3710fb93c2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a1c5386d742fb4d01bea977ed28f4a96 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a30288f737d428b0feb2a78b3aab9c69 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a40d723f9a6ad5b541009b8f05ce6533 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a908448dd851cae431aa2b4bde9b5a98 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/aa5708f6fbe7528d49c127a7f89a2511 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/aaf9dac7bb02577a8005e39ca9225482 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ad7b50123ad008ac0730bbbdf76a6bfe +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/b271e3537645a42480b3ba7bca2342f4 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ba891185d4fda83f4c16e6bb8139359b +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c72101732682999b6ca050f007fc6467 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c8927e934e7960fc7907b6fc02ea7f08 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c980544b5828a643ecaa8e784897c2c2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ca0e1997bc6c40f955a42ee777299750 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cc2c3f8b87c5b787305412a3076058db +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d16461dfcae4b782f721ebd81e4f8740 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d3b5d5784361e5eb827fbcdb0332258f +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d81122f6f2520c8f0785425936756e20 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dbf160a6439a8d0b792ff46cf0a612f6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dc829340258cc36c0df423725df54649 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/dd326f3f4fd1c7fd075b58d6cb623a25 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/de060f82711b4b5c465f17b140eb2a61 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e0352d0f97751491adbe6a94832772af +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e1d6efce94e71965434d2dde64fd8410 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e4298973f799acdce289752c24bfddf2 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/e9c81ca91323dab8977ffd8a459cab06 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/eccab0d41d08e156ccd2f36f85949356 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/eed84a44f4e3915a39ea98ce25dc2570 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f1e75c209067b23f5c0c7bf2006c43d0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f31e05a23db2e9dfc9207658cda7b799 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f5c9348795319821f3309d4e03bb9fdb +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f631443b06d6b36e666344dbaf0b64f0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7ab949c8c6b7ef3f2b743ebd98f9f59 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fc4b3bb94f52c27dfb87395841a7cb62 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fc79e1609ba401a4408c71182ef89b3e +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fd1e0a44b82fc47f26c7adec9d918911 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/fe9a0ccc2a407c74780c85e66882e888 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/ff3b0a569330823bd5599af14ee70cc8 +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/fixtures/notifications.yml +11 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/models/notification_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- 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,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,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("&",'&').gsub("<",'<').gsub(">",'>').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
|