underworld 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/LICENSE +339 -0
- data/Rakefile +48 -0
- data/app/assets/fonts/DroidNaskh-Bold.ttf +0 -0
- data/app/assets/fonts/DroidNaskh-Regular.ttf +0 -0
- data/app/assets/fonts/OpenSans-Bold.ttf +0 -0
- data/app/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- data/app/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Italic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Light.ttf +0 -0
- data/app/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Regular.ttf +0 -0
- data/app/assets/fonts/OpenSans-Semibold.ttf +0 -0
- data/app/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- data/app/assets/images/underworld/select2-spinner.gif +0 -0
- data/app/assets/images/underworld/select2.png +0 -0
- data/app/assets/images/underworld/select2x2.png +0 -0
- data/app/assets/javascripts/underworld/application.js +16 -0
- data/app/assets/javascripts/underworld/dashboard/application.js.erb +30 -0
- data/app/assets/javascripts/underworld/dashboard/functions.js.erb +50 -0
- data/app/assets/javascripts/underworld/dashboard/init.js.coffee +33 -0
- data/app/assets/javascripts/underworld/dashboard/lib/actions.js +7 -0
- data/app/assets/javascripts/underworld/dashboard/lib/amd.js.coffee.erb +0 -0
- data/app/assets/javascripts/underworld/dashboard/lib/flash_message.js +71 -0
- data/app/assets/javascripts/underworld/dashboard/lib/locale.js +14 -0
- data/app/assets/javascripts/underworld/dashboard/lib/misc.js +5 -0
- data/app/assets/javascripts/underworld/dashboard/lib/string.js +3 -0
- data/app/assets/javascripts/underworld/dashboard/lib/ujs_patches.js.coffee +28 -0
- data/app/assets/javascripts/underworld/dashboard/manifest.js +5 -0
- data/app/assets/javascripts/underworld/dashboard/variables.js.erb +6 -0
- data/app/assets/javascripts/underworld/groups.js +2 -0
- data/app/assets/javascripts/underworld/home.js +2 -0
- data/app/assets/javascripts/underworld/i18n.js +13 -0
- data/app/assets/javascripts/underworld/simple.js +20 -0
- data/app/assets/javascripts/underworld/users.js +2 -0
- data/app/assets/stylesheets/underworld/dashboard/loadindicator.scss +17 -0
- data/app/assets/stylesheets/underworld/dashboard/ltr/application.css +38 -0
- data/app/assets/stylesheets/underworld/dashboard/ltr/base.css.scss +0 -0
- data/app/assets/stylesheets/underworld/dashboard/rtl/application.css +11 -0
- data/app/assets/stylesheets/underworld/dashboard/rtl/base.css.scss +0 -0
- data/app/assets/stylesheets/underworld/dashboard/share.scss +62 -0
- data/app/assets/stylesheets/underworld/dashboard/variables.scss +9 -0
- data/app/assets/stylesheets/underworld/ltr/application.css +0 -0
- data/app/assets/stylesheets/underworld/rtl/application.css +0 -0
- data/app/assets/stylesheets/underworld/simple/ltr/application.css +2 -0
- data/app/assets/stylesheets/underworld/simple/rtl/application.css +2 -0
- data/app/assets/stylesheets/underworld/simple/rtl/rtl.scss +16 -0
- data/app/assets/stylesheets/underworld/simple/share.scss +11 -0
- data/app/controllers/underworld/api_controller.rb +133 -0
- data/app/controllers/underworld/application_controller.rb +16 -0
- data/app/controllers/underworld/assets_controller.rb +6 -0
- data/app/controllers/underworld/dashboard/application_controller.rb +43 -0
- data/app/controllers/underworld/dashboard/groups_controller.rb +85 -0
- data/app/controllers/underworld/dashboard/profile_controller.rb +49 -0
- data/app/controllers/underworld/dashboard/user_messages_controller.rb +27 -0
- data/app/controllers/underworld/dashboard/users_controller.rb +116 -0
- data/app/controllers/underworld/dashboard_controller.rb +16 -0
- data/app/controllers/underworld/omniauth/callbacks_controller.rb +24 -0
- data/app/helpers/underworld/application_helper.rb +4 -0
- data/app/helpers/underworld/dashboard_helper.rb +107 -0
- data/app/helpers/underworld/groups_helper.rb +4 -0
- data/app/helpers/underworld/home_helper.rb +4 -0
- data/app/helpers/underworld/users_helper.rb +8 -0
- data/app/models/application_record.rb +3 -0
- data/app/models/underworld/concerns/assignment.rb +16 -0
- data/app/models/underworld/concerns/user/auth_definitions.rb +87 -0
- data/app/models/underworld/concerns/user/gravatar.rb +11 -0
- data/app/models/underworld/concerns/user/mongoid_fields.rb +81 -0
- data/app/models/underworld/concerns/user/permission.rb +47 -0
- data/app/models/underworld/concerns/user/user_roles.rb +24 -0
- data/app/models/underworld/group.rb +57 -0
- data/app/models/underworld/permission.rb +43 -0
- data/app/models/underworld/user.rb +81 -0
- data/app/models/underworld/user_message.rb +6 -0
- data/app/policies/underworld/admin_only_policy.rb +66 -0
- data/app/policies/underworld/application_policy.rb +55 -0
- data/app/policies/underworld/group_policy.rb +8 -0
- data/app/policies/underworld/user_message_policy.rb +9 -0
- data/app/policies/underworld/user_policy.rb +9 -0
- data/app/views/angular/auth/groups/details.html +2 -0
- data/app/views/angular/auth/groups/index.html +2 -0
- data/app/views/angular/auth/groups/new.html +2 -0
- data/app/views/angular/auth/index.html +30 -0
- data/app/views/angular/auth/profile/edit.html +54 -0
- data/app/views/angular/auth/users/details.html +28 -0
- data/app/views/angular/auth/users/index.html +6 -0
- data/app/views/angular/auth/users/new.html +57 -0
- data/app/views/angular/conversations/details.html +19 -0
- data/app/views/angular/conversations/index.html +13 -0
- data/app/views/angular/conversations/new.html +39 -0
- data/app/views/angular/conversations/show.html +6 -0
- data/app/views/angular/conversations/show_details.html +15 -0
- data/app/views/angular/fields/boolean/boolean.html +4 -0
- data/app/views/angular/fields/control-combo/control-list.html +19 -0
- data/app/views/angular/fields/datetime/datetime.html +10 -0
- data/app/views/angular/fields/datetime/time.html +25 -0
- data/app/views/angular/fields/file/file.html.slim +0 -0
- data/app/views/angular/fields/float/float.html +4 -0
- data/app/views/angular/fields/image/image.html +1 -0
- data/app/views/angular/fields/integer/integer.html +4 -0
- data/app/views/angular/fields/relation/relation.html +44 -0
- data/app/views/angular/fields/string/string.html +22 -0
- data/app/views/angular/fields/tag/tag.html +1 -0
- data/app/views/angular/fields/text/text.html +4 -0
- data/app/views/angular/filter/index.html +15 -0
- data/app/views/angular/index.html +3 -0
- data/app/views/angular/locale/fa.po +25 -0
- data/app/views/angular/locale/templates.pot +24 -0
- data/app/views/angular/logs/index.html +6 -0
- data/app/views/angular/modules.html +0 -0
- data/app/views/angular/nav.html.erb +39 -0
- data/app/views/angular/underworld/views/generic_add_view.html.slim +5 -0
- data/app/views/devise/registrations/edit.html.erb +29 -0
- data/app/views/devise/registrations/new.html.erb +38 -0
- data/app/views/devise/sessions/new.html.erb +37 -0
- data/app/views/devise/shared/_links.erb +19 -0
- data/app/views/devise/shared/_omni_link.erb +33 -0
- data/app/views/kaminari/_first_page.html.slim +3 -0
- data/app/views/kaminari/_gap.html.slim +2 -0
- data/app/views/kaminari/_last_page.html.slim +3 -0
- data/app/views/kaminari/_next_page.html.slim +3 -0
- data/app/views/kaminari/_page.html.slim +3 -0
- data/app/views/kaminari/_paginator.html.slim +13 -0
- data/app/views/kaminari/_prev_page.html.slim +3 -0
- data/app/views/layouts/underworld/application.html.erb +79 -0
- data/app/views/layouts/underworld/dashboard.html.erb +52 -0
- data/app/views/layouts/underworld/simple.html.erb +27 -0
- data/app/views/underworld/api/v1/conversations/create.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/conversations/destroy.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/conversations/index.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/conversations/reply.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/conversations/show.json.jbuilder +14 -0
- data/app/views/underworld/api/v1/conversations/trash.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/groups/create.json.jbuilder +4 -0
- data/app/views/underworld/api/v1/groups/destroy.html.erb +2 -0
- data/app/views/underworld/api/v1/groups/destroy.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/groups/edit.html.erb +2 -0
- data/app/views/underworld/api/v1/groups/index.html.erb +2 -0
- data/app/views/underworld/api/v1/groups/index.json.jbuilder +6 -0
- data/app/views/underworld/api/v1/groups/new.html.erb +2 -0
- data/app/views/underworld/api/v1/groups/show.html.erb +2 -0
- data/app/views/underworld/api/v1/groups/show.json.jbuilder +5 -0
- data/app/views/underworld/api/v1/groups/update.json.jbuilder +4 -0
- data/app/views/underworld/api/v1/logs/index.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/permissions/index.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/permissions/user_permissions.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/users/create.html.erb +2 -0
- data/app/views/underworld/api/v1/users/create.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/users/destroy.json.jbuilder +1 -0
- data/app/views/underworld/api/v1/users/distroy.html.erb +2 -0
- data/app/views/underworld/api/v1/users/edit.html.erb +2 -0
- data/app/views/underworld/api/v1/users/index.html.erb +2 -0
- data/app/views/underworld/api/v1/users/index.json.jbuilder +4 -0
- data/app/views/underworld/api/v1/users/show.html.erb +2 -0
- data/app/views/underworld/api/v1/users/show.json.jbuilder +2 -0
- data/app/views/underworld/api/v1/users/update.json.jbuilder +1 -0
- data/app/views/underworld/dashboard/groups/_form.html.slim +68 -0
- data/app/views/underworld/dashboard/groups/create.js.erb +3 -0
- data/app/views/underworld/dashboard/groups/edit.html.slim +3 -0
- data/app/views/underworld/dashboard/groups/errors.js.erb +3 -0
- data/app/views/underworld/dashboard/groups/index.html.slim +47 -0
- data/app/views/underworld/dashboard/groups/new.html.slim +2 -0
- data/app/views/underworld/dashboard/groups/update.js.erb +3 -0
- data/app/views/underworld/dashboard/index.html.erb +0 -0
- data/app/views/underworld/dashboard/login_required_page.html.erb +5 -0
- data/app/views/underworld/dashboard/not_found.html.slim +9 -0
- data/app/views/underworld/dashboard/not_found.js.erb +1 -0
- data/app/views/underworld/dashboard/profile/_form.html.erb +33 -0
- data/app/views/underworld/dashboard/profile/_profile_form.html.erb +33 -0
- data/app/views/underworld/dashboard/profile/create.js.erb +3 -0
- data/app/views/underworld/dashboard/profile/edit.html.erb +2 -0
- data/app/views/underworld/dashboard/profile/edit_password.html.erb +2 -0
- data/app/views/underworld/dashboard/profile/errors.js.erb +3 -0
- data/app/views/underworld/dashboard/resource/_form.html.slim +33 -0
- data/app/views/underworld/dashboard/resource/_input.html.slim +3 -0
- data/app/views/underworld/dashboard/resource/create.js.erb +3 -0
- data/app/views/underworld/dashboard/resource/destroy.js.erb +2 -0
- data/app/views/underworld/dashboard/resource/edit.html.slim +3 -0
- data/app/views/underworld/dashboard/resource/index.html.slim +60 -0
- data/app/views/underworld/dashboard/resource/new.html.slim +2 -0
- data/app/views/underworld/dashboard/resource/show.html.slim +22 -0
- data/app/views/underworld/dashboard/resource/update.js.erb +3 -0
- data/app/views/underworld/dashboard/shared/_content_header.html.slim +15 -0
- data/app/views/underworld/dashboard/shared/_control_sidebar.html.slim +50 -0
- data/app/views/underworld/dashboard/shared/_footer.html.slim +7 -0
- data/app/views/underworld/dashboard/shared/_header.html.erb +98 -0
- data/app/views/underworld/dashboard/shared/_sidebar.html.erb +69 -0
- data/app/views/underworld/dashboard/shared/_toolbar.html.slim +0 -0
- data/app/views/underworld/dashboard/shared/errors.js.erb +3 -0
- data/app/views/underworld/dashboard/user_messages/_form.html.slim +0 -0
- data/app/views/underworld/dashboard/user_messages/create.js.erb +0 -0
- data/app/views/underworld/dashboard/user_messages/destroy.js.erb +0 -0
- data/app/views/underworld/dashboard/user_messages/new.html.slim +72 -0
- data/app/views/underworld/dashboard/users/_form.html.slim +73 -0
- data/app/views/underworld/dashboard/users/_password_form.html.slim +37 -0
- data/app/views/underworld/dashboard/users/create.js.erb +3 -0
- data/app/views/underworld/dashboard/users/destroy.js.erb +2 -0
- data/app/views/underworld/dashboard/users/edit.html.slim +3 -0
- data/app/views/underworld/dashboard/users/edit_password.html.slim +1 -0
- data/app/views/underworld/dashboard/users/errors.js.erb +3 -0
- data/app/views/underworld/dashboard/users/index.html.slim +66 -0
- data/app/views/underworld/dashboard/users/new.html.slim +2 -0
- data/app/views/underworld/dashboard/users/show.html.slim +6 -0
- data/app/views/underworld/dashboard/users/update.js.erb +3 -0
- data/app/views/underworld/dashboard/users/update_password.js.erb +3 -0
- data/app/views/underworld/relations/_belongs_to.json.jbuilder +11 -0
- data/config/initializers/devise.rb +24 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/devise.fa.yml +58 -0
- data/config/locales/underworld.en.yml +96 -0
- data/config/locales/underworld.fa.yml +108 -0
- data/config/routes.rb +43 -0
- data/config/spring.rb +1 -0
- data/db/migrate/20131013091000_devise_create_underworld_users.rb +65 -0
- data/db/migrate/20131020124701_create_underworld_groups.rb +15 -0
- data/db/migrate/20131021170923_create_underworld_permissions.rb +15 -0
- data/db/migrate/20131123120422_add_permissions_groups_table.rb +16 -0
- data/db/migrate/20140613120923_add_users_groups_table.rb +13 -0
- data/db/migrate/20151122115129_add_uniqueness_index_to_users_groups.rb +11 -0
- data/db/migrate/20160310105736_create_underworld_user_messages.rb +25 -0
- data/db/seeds.rb +49 -0
- data/lib/generators/underworld/install_generator.rb +108 -0
- data/lib/generators/underworld/resource_generator.rb +70 -0
- data/lib/generators/underworld/resources_generator.rb +20 -0
- data/lib/generators/underworld/templates/README +21 -0
- data/lib/generators/underworld/templates/SPECS +13 -0
- data/lib/generators/underworld/templates/api/controller.rb.erb +60 -0
- data/lib/generators/underworld/templates/api_controller.rb +2 -0
- data/lib/generators/underworld/templates/dashboard/controller.rb.erb +2 -0
- data/lib/generators/underworld/templates/dashboard_controller.rb +18 -0
- data/lib/generators/underworld/templates/devise.rb +251 -0
- data/lib/generators/underworld/templates/features/api.feature +92 -0
- data/lib/generators/underworld/templates/features/api.step.rb +7 -0
- data/lib/generators/underworld/templates/features/step_definitions/email_steps.rb +206 -0
- data/lib/generators/underworld/templates/features/support/email_spec.rb +1 -0
- data/lib/generators/underworld/templates/features/support/env.rb +79 -0
- data/lib/generators/underworld/templates/javascripts/application.js +19 -0
- data/lib/generators/underworld/templates/policy/application_policy.rb +2 -0
- data/lib/generators/underworld/templates/policy/policy.rb.erb +2 -0
- data/lib/generators/underworld/templates/seeds.rb +1 -0
- data/lib/generators/underworld/templates/spec/factories/groups.rb +5 -0
- data/lib/generators/underworld/templates/spec/factories/users.rb +10 -0
- data/lib/generators/underworld/templates/spec/spec_helper.rb +69 -0
- data/lib/generators/underworld/templates/spec/support/devise.rb +3 -0
- data/lib/generators/underworld/templates/stylesheets/dashboard/ltr/application.css +3 -0
- data/lib/generators/underworld/templates/stylesheets/dashboard/rtl/application.css +3 -0
- data/lib/generators/underworld/templates/stylesheets/ltr/application.css +3 -0
- data/lib/generators/underworld/templates/stylesheets/rtl/application.css +3 -0
- data/lib/generators/underworld/templates/underworld.rb +12 -0
- data/lib/generators/underworld/templates/views/create.json.jbuilder.erb +3 -0
- data/lib/generators/underworld/templates/views/destroy.json.jbuilder.erb +1 -0
- data/lib/generators/underworld/templates/views/index.json.jbuilder.erb +13 -0
- data/lib/generators/underworld/templates/views/show.json.jbuilder.erb +6 -0
- data/lib/generators/underworld/templates/views/update.json.jbuilder.erb +6 -0
- data/lib/generators/underworld/views_generator.rb +57 -0
- data/lib/tasks/docs.rake +6 -0
- data/lib/tasks/sync.rake +9 -0
- data/lib/tasks/underworld_tasks.rake +38 -0
- data/lib/underworld.rb +35 -0
- data/lib/underworld/action_dispatch.rb +3 -0
- data/lib/underworld/api.rb +42 -0
- data/lib/underworld/api/groups_api.rb +41 -0
- data/lib/underworld/api/permissions_api.rb +24 -0
- data/lib/underworld/api/root.rb +15 -0
- data/lib/underworld/api/users_api.rb +20 -0
- data/lib/underworld/concerns.rb +7 -0
- data/lib/underworld/concerns/authorizable.rb +81 -0
- data/lib/underworld/configuration.rb +97 -0
- data/lib/underworld/dashboard.rb +11 -0
- data/lib/underworld/dashboard/dsl.rb +41 -0
- data/lib/underworld/dashboard/dsl/base.rb +133 -0
- data/lib/underworld/dashboard/dsl/create.rb +116 -0
- data/lib/underworld/dashboard/dsl/form_fields_properties.rb +62 -0
- data/lib/underworld/dashboard/dsl/index.rb +45 -0
- data/lib/underworld/dashboard/dsl/show.rb +6 -0
- data/lib/underworld/dashboard/dsl/update.rb +6 -0
- data/lib/underworld/dashboard/helpers/box_helpers.rb +129 -0
- data/lib/underworld/dashboard/models.rb +2 -0
- data/lib/underworld/dashboard/models/sidebar.rb +139 -0
- data/lib/underworld/dashboard/sections.rb +2 -0
- data/lib/underworld/dashboard/sections/resource.rb +229 -0
- data/lib/underworld/dashboard/sections/resource_create.rb +263 -0
- data/lib/underworld/dashboard/sections/resource_destroy.rb +27 -0
- data/lib/underworld/dashboard/sections/resource_show.rb +96 -0
- data/lib/underworld/dashboard/sections/resources_index.rb +113 -0
- data/lib/underworld/dashboard/sections/sidebar.rb +41 -0
- data/lib/underworld/discovery.rb +8 -0
- data/lib/underworld/discovery/permissions.rb +49 -0
- data/lib/underworld/engine.rb +53 -0
- data/lib/underworld/exceptions.rb +7 -0
- data/lib/underworld/extension.rb +18 -0
- data/lib/underworld/extension/base.rb +29 -0
- data/lib/underworld/fake_assets.rb +5 -0
- data/lib/underworld/i18n.rb +101 -0
- data/lib/underworld/initialize.rb +0 -0
- data/lib/underworld/liquid.rb +7 -0
- data/lib/underworld/liquid/block.rb +14 -0
- data/lib/underworld/liquid/render_tag.rb +50 -0
- data/lib/underworld/liquid/tag.rb +51 -0
- data/lib/underworld/middlewares.rb +1 -0
- data/lib/underworld/middlewares/locale.rb +29 -0
- data/lib/underworld/omniauth.rb +8 -0
- data/lib/underworld/omniauth/callbacks.rb +39 -0
- data/lib/underworld/orm.rb +30 -0
- data/lib/underworld/routes.rb +117 -0
- data/lib/underworld/version.rb +3 -0
- data/test/controllers/underworld/dashboard/resource_test.rb +118 -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/javascripts/dashboard/application.js +19 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/assets/stylesheets/dashboard/ltr/application.css +3 -0
- data/test/dummy/app/assets/stylesheets/dashboard/rtl/application.css +3 -0
- data/test/dummy/app/assets/stylesheets/ltr/application.css +3 -0
- data/test/dummy/app/assets/stylesheets/rtl/application.css +3 -0
- data/test/dummy/app/controllers/api_controller.rb +2 -0
- data/test/dummy/app/controllers/application_controller.rb +6 -0
- data/test/dummy/app/controllers/dashboard/application_controller.rb +18 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/policies/application_policy.rb +2 -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 +23 -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 +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +38 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/devise.rb +251 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/formstatic.rb +76 -0
- data/test/dummy/config/initializers/formtastic.rb +110 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/kaminari_config.rb +10 -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/underworld.rb +11 -0
- data/test/dummy/config/initializers/underworld_assets.rb +1 -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 +13 -0
- data/test/dummy/lib/templates/slim/scaffold/_form.html.slim +8 -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/fabricators/underworld/groups.rb +27 -0
- data/test/fabricators/underworld/permissions.rb +14 -0
- data/test/fabricators/underworld/users.rb +17 -0
- data/test/generators/install_generator_test.rb +84 -0
- data/test/integration/underworld/authentication_test.rb +36 -0
- data/test/integration/underworld/dashboard_test.rb +64 -0
- data/test/test_helper.rb +72 -0
- metadata +1045 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
json.content @data
|
@@ -0,0 +1 @@
|
|
1
|
+
json.array! [{ permissions: @permissions }]
|
@@ -0,0 +1 @@
|
|
1
|
+
json.permissions @permissions
|
@@ -0,0 +1 @@
|
|
1
|
+
json.extract! @user, :id, :email, :group_id
|
@@ -0,0 +1 @@
|
|
1
|
+
json.msg _("Items removed successfully.")
|
@@ -0,0 +1 @@
|
|
1
|
+
json.extract! @user, :id, :email, :group
|
@@ -0,0 +1,68 @@
|
|
1
|
+
div
|
2
|
+
= form_tag(form_target, remote: true, method: method) do
|
3
|
+
.row
|
4
|
+
.col-sm-12.col-lg-9
|
5
|
+
.box.box-primary
|
6
|
+
.box-header
|
7
|
+
.box-title
|
8
|
+
|
9
|
+
.box-body
|
10
|
+
.row
|
11
|
+
.col-sm-12.col-lg-6
|
12
|
+
.form-group data-name="role"
|
13
|
+
label for="group_name"
|
14
|
+
= t('underworld.group.group_name')
|
15
|
+
|
16
|
+
input#group_name.form-control[name="group[name]" type="text" required value=(@group.name)]
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
/.col-sm-12.col-lg-3
|
21
|
+
.box
|
22
|
+
.box-header
|
23
|
+
.box-title
|
24
|
+
= _('Groups to use as template')
|
25
|
+
.row
|
26
|
+
.col-sm-12.col-lg-9
|
27
|
+
.box.box-warning
|
28
|
+
.box-header
|
29
|
+
.box-title
|
30
|
+
= t("underworld.permission.permissions")
|
31
|
+
|
32
|
+
.box-body
|
33
|
+
.row
|
34
|
+
.col-xs-12
|
35
|
+
table.table.table-striped
|
36
|
+
tbody
|
37
|
+
tr
|
38
|
+
th.col-md-4
|
39
|
+
= t('underworld.permission.entity_name')
|
40
|
+
th.col-md-8
|
41
|
+
= t('underworld.permission.permission')
|
42
|
+
|
43
|
+
- @permissions.each do |perm, actions|
|
44
|
+
tr
|
45
|
+
td.col-md-4
|
46
|
+
= perm.gsub('::',' ').humanize
|
47
|
+
td.col-md-8
|
48
|
+
- actions.each do |action|
|
49
|
+
span.col-sm-3
|
50
|
+
- if @group.include_permission? action[1]
|
51
|
+
input[type="checkbox" checked name=("group[permissions][#{action[1]}]") label=(t("underworld.permissions.#{action[0]}"))]
|
52
|
+
= t("underworld.permissions.#{action[0]}")
|
53
|
+
- else
|
54
|
+
input[type="checkbox" name=("group[permissions][#{action[1]}]") label=(t("underworld.permissions.#{action[0]}"))]
|
55
|
+
= t("underworld.permissions.#{action[0]}")
|
56
|
+
|
57
|
+
.row
|
58
|
+
.col-sm-2
|
59
|
+
button.btn.btn-primary.btn-block type="submit"
|
60
|
+
i.fa.fa-check
|
61
|
+
|
|
62
|
+
= t('underworld.save')
|
63
|
+
|
64
|
+
.col-sm-2
|
65
|
+
|
66
|
+
div.btn.btn-danger.btn-block onclick=("redirect_to('#{index}')")
|
67
|
+
i.fa.fa-times
|
68
|
+
= t('underworld.cancel')
|
@@ -0,0 +1,47 @@
|
|
1
|
+
.row
|
2
|
+
.col-xs-12
|
3
|
+
.box.box-default
|
4
|
+
.box-header.with-border
|
5
|
+
h3.box-title
|
6
|
+
= t('underworld.group.groups')
|
7
|
+
.box-tools
|
8
|
+
- new_group = underworld.new_dashboard_auth_group_path
|
9
|
+
a.btn.btn-success.pull-right.btn-sm href=(new_group)
|
10
|
+
i.fa.fa-plus
|
11
|
+
= t('underworld.dashboard.index_section.add_button', resource: t('underworld.group.group'))
|
12
|
+
|
13
|
+
.box-body.no-padding
|
14
|
+
table.table.table-striped
|
15
|
+
tbody
|
16
|
+
tr
|
17
|
+
th
|
18
|
+
|#
|
19
|
+
th
|
20
|
+
= t("underworld.group.name")
|
21
|
+
th
|
22
|
+
= t("underworld.group.role")
|
23
|
+
th
|
24
|
+
= t('created_at')
|
25
|
+
th
|
26
|
+
= t('underworld.dashboard.actions')
|
27
|
+
|
28
|
+
- @groups.each do |group|
|
29
|
+
- edit_target = underworld.edit_dashboard_auth_group_path(id: group.id)
|
30
|
+
- destroy_target = underworld.dashboard_auth_groups_path
|
31
|
+
- show_target = underworld.dashboard_auth_group_path(id: group.id)
|
32
|
+
tr id=("group_#{group.id}")
|
33
|
+
|
34
|
+
td
|
35
|
+
= group.id
|
36
|
+
td
|
37
|
+
= group.name
|
38
|
+
td
|
39
|
+
= group.role
|
40
|
+
td
|
41
|
+
= group.created_at
|
42
|
+
td.btn-user
|
43
|
+
a.warning.link.pull-left href=(edit_target)
|
44
|
+
i.fa.fa-edit
|
45
|
+
a.link.pull-left href=(destroy_target) data-remote="true" data-method="delete"
|
46
|
+
i.fa.fa-remove.btn-remove
|
47
|
+
.box-footer
|
File without changes
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<br /><br /><br />
|
2
|
+
<div class="row"><div class="small-8 columns small-offset-2 text-center">
|
3
|
+
<h4><%= t("underworld.login_required") %></h4>
|
4
|
+
<a href="/<%= Underworld::Engine.dashboard_namespace %>/?signin" class="btn medium blue"> <i class="fa fa-sign-in"></i> <%= t("underworld.sign_in")%></a>
|
5
|
+
</div></div>
|
@@ -0,0 +1 @@
|
|
1
|
+
error_message("<%= t('underworld.page_not_found') %>");
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%= form_tag dashboard_auth_profile_editpassword_path, remote: true do %>
|
2
|
+
<div class="form box box-info">
|
3
|
+
<div class="box-body">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-sm-4 form-group data-name="current_password"">
|
6
|
+
<label><span translate><%= label_tag :current_password %></span> :</label>
|
7
|
+
<input type="password" name="user[current_password]" class="form-control input-lg rounded string_field">
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="row">
|
12
|
+
<div class="col-sm-4 form-group" data-name="password">
|
13
|
+
<label><span translate><%= label_tag :password %></span> :</label>
|
14
|
+
<input type="password" name="user[password]" class="form-control input-lg rounded string_field">
|
15
|
+
</div>
|
16
|
+
<div class="col-sm-4 form-group col-sm-offset-2" data-name="password_confirmation">
|
17
|
+
<lable><span translate><%= label_tag :password_confirmation %></span></lable>
|
18
|
+
<input type="password" name="user[password_confirmation]" class="form-control input-lg rounded string_field">
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div class="row">
|
24
|
+
<div class="col-sm-6 columns">
|
25
|
+
<button type="submit" class="btn btn-lg btn-success" ><i class="fa fa-check"></i> <span translate>Submit</span></button>
|
26
|
+
<button class="btn btn-lg btn-danger" ><i class="fa fa-times"></i> <span translate>Cancel</span></button>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<% end %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<%= form_tag dashboard_profile_editpassword_path, remote: true do %>
|
2
|
+
<div class="form box box-info">
|
3
|
+
<div class="box-body">
|
4
|
+
<div class="row">
|
5
|
+
<div class="col-sm-4 form-group data-name="First Name">
|
6
|
+
<label><span translate><%= label_tag : firstname%></span> :</label>
|
7
|
+
<input type="text" name="user[firdstname]" class="form-control input-lg rounded string_field">
|
8
|
+
</div>
|
9
|
+
<div class="col-sm-4 form-group col-sm-offset-2" data-name="password_confirmation">
|
10
|
+
<lable><span translate><%= label_tag :lastname %></span></lable>
|
11
|
+
<input type="text" name="user[lastname]" class="form-control input-lg rounded string_field">
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="row">
|
16
|
+
<div class="col-sm-4 form-group" data-name="Last Name">
|
17
|
+
<label><span translate><%= label_tag :password %></span> :</label>
|
18
|
+
<input type="text" name="user[password]" class="form-control input-lg rounded string_field">
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
<div class="row">
|
24
|
+
<div class="col-sm-6 columns">
|
25
|
+
<button type="submit" class="btn btn-lg btn-success" ><i class="fa fa-check"></i> <span translate>Submit</span></button>
|
26
|
+
<button class="btn btn-lg btn-danger" ><i class="fa fa-times"></i> <span translate>Cancel</span></button>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<% end %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
= semantic_form_for(@resource, url: form_target, remote: true, html: { multipart: @multipart }) do |f|
|
2
|
+
.row
|
3
|
+
.col-sm-12.col-lg-12
|
4
|
+
.box.box-primary
|
5
|
+
.box-header
|
6
|
+
.box-title
|
7
|
+
/ TODO: add a DSL to provide a message for this section
|
8
|
+
.box-body
|
9
|
+
- @_fields.each_with_index do |name, index|
|
10
|
+
- if index % 2 == 0
|
11
|
+
| <div class="row">
|
12
|
+
.col-sm-12.col-lg-6.col-md-6
|
13
|
+
.form-group data-name=(name)
|
14
|
+
- hash = @_fields_properties[name.to_sym] || {}
|
15
|
+
- hash[:label] = form_label(@resource, name) unless hash.include?(:label)
|
16
|
+
= f.send(:input, name, hash)
|
17
|
+
- if index % 2 != 0
|
18
|
+
| </div>
|
19
|
+
|
20
|
+
|
21
|
+
.box-footer
|
22
|
+
.row
|
23
|
+
.col-sm-2
|
24
|
+
button.btn.btn-success.btn-block type="submit"
|
25
|
+
i.fa.fa-check
|
26
|
+
|
|
27
|
+
= t('underworld.save')
|
28
|
+
|
29
|
+
.col-sm-2.pull-right
|
30
|
+
|
31
|
+
a.btn.btn-danger.btn-block href=(index)
|
32
|
+
i.fa.fa-times
|
33
|
+
= t('underworld.cancel')
|
@@ -0,0 +1,60 @@
|
|
1
|
+
.row.hidden-print
|
2
|
+
.col-xs-12
|
3
|
+
- if flash[:error]
|
4
|
+
.alert.alert-danger.alert-dismissable
|
5
|
+
button.close type="button" data-dismiss="alert" aria-hidden="true">
|
6
|
+
Ã
|
7
|
+
= flash[:error]
|
8
|
+
|
9
|
+
- if flash[:error]
|
10
|
+
.alert.alert-success.alert-dismissable
|
11
|
+
button.close type="button" data-dismiss="alert" aria-hidden="true">
|
12
|
+
Ã
|
13
|
+
= flash[:success]
|
14
|
+
|
15
|
+
.row
|
16
|
+
.col-xs-12
|
17
|
+
.box.box-default
|
18
|
+
.box-header.with-border
|
19
|
+
h3.box-title
|
20
|
+
|
|
21
|
+
.box-tools.hidden-print
|
22
|
+
- if policy(@resources.model).create?
|
23
|
+
= link_button(t("underworld.dashboard.index_view.new_button", title: t("resources.#{@resources.model.name.underscore}")), remote: false, href: get_url(@new_route, nil, @engine), classes: 'btn-success btn-flat', icon_class: 'plus fa-lg')
|
24
|
+
|
25
|
+
= action_buttons(@_action_buttons)
|
26
|
+
|
27
|
+
.box-body.no-padding
|
28
|
+
table.table.table-striped.dataTable
|
29
|
+
tbody
|
30
|
+
tr
|
31
|
+
- @index_fields.each do |field|
|
32
|
+
th
|
33
|
+
/= field
|
34
|
+
= t("main_app.#{field}").humanize
|
35
|
+
th.text-center.hidden-print
|
36
|
+
= t('underworld.actions')
|
37
|
+
|
38
|
+
- @resources.each do |resource|
|
39
|
+
|
40
|
+
tr id=("#{controller_name.singularize.underscore}_#{resource.id}")
|
41
|
+
- @index_fields.each do |field|
|
42
|
+
td
|
43
|
+
= resource.try(field.to_s).to_s || '-'
|
44
|
+
td.btn-user.text-center.hidden-print
|
45
|
+
.btn-group.action-bar
|
46
|
+
a.pull-left.link.btn.btn-xs.btn.show.tool href=(get_url(@show_route, resource.id, @engine)) data-toggle="tooltip" data-placement="top" title=(t("underworld.dashboard.index_section.show"))
|
47
|
+
i.fa.fa-eye.fa-lg
|
48
|
+
a.warning.link.pull-left.btn.btn-xs.btn.edit.tool href=(get_url(@edit_route, resource.id, @engine)) data-toggle="tooltip" data-placement="top" title=(t("underworld.dashboard.index_section.edit"))
|
49
|
+
i.fa.fa-edit.fa-lg
|
50
|
+
a.link.pull-left.btn.btn-xs.delete.tool href=(get_url(@show_route, resource.id, @engine)) data-remote="true" data-method="delete" data-toggle="tooltip" data-placement="top" title=(t("underworld.dashboard.index_section.delete")) data-confirm=(t('underworld.dashboard.index_section.delete_msg'))
|
51
|
+
i.fa.fa-remove.fa-lg.btn-remove
|
52
|
+
|
53
|
+
- @_tools_buttons.each do |btn_name, btn|
|
54
|
+
a id=("tool_button_#{btn_name}") class=("link pull-left btn btn-xs #{btn[:class] || 'btn-default'}") href=(btn[:block].call(resource)) data-remote=("#{btn[:remote]}")
|
55
|
+
i class=("fa #{btn[:icon_class]}")
|
56
|
+
= btn_name
|
57
|
+
.box-footer.hidden-print
|
58
|
+
.row
|
59
|
+
.col-xs-12.col-sm-12
|
60
|
+
= paginate @resources
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.row
|
2
|
+
.col-sm-12.col-lg-12
|
3
|
+
.box.box-primary
|
4
|
+
.box-header
|
5
|
+
.box-title
|
6
|
+
/ TODO: add a DSL to provide a message for this section
|
7
|
+
.box-body
|
8
|
+
ul.resource.details.col-sm-12.col-lg-6.col-md-6
|
9
|
+
- @_fields.each_with_index do |name, index|
|
10
|
+
li
|
11
|
+
h5.header
|
12
|
+
= t("#{@resource.class.name.underscore}.show.#{name.to_s.underscore}") + ':'
|
13
|
+
h4.result
|
14
|
+
= @resource.send(name.to_sym).to_s || "-"
|
15
|
+
|
16
|
+
|
17
|
+
.box-footer.hidden-print
|
18
|
+
.row
|
19
|
+
.col-sm-2.pull-right
|
20
|
+
a.btn.btn-warning.btn-block href=(get_url(@index_route, nil, @engine))
|
21
|
+
i class=("fa fa-chevron-#{Underworld::I18n.direction(I18n.locale) == 'ltr' ? 'left' : 'right'}")
|
22
|
+
= t('underworld.back')
|