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,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,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')} »',
|
|
51
|
+
'sPrevious': '« #{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
|
+
});
|