serum-rails 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.gitignore +6 -0
- data/.rspec +3 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +42 -0
- data/LICENSE +22 -0
- data/README.md +40 -0
- data/bin/serum-rails +13 -0
- data/lib/serum/rails/app.rb +50 -0
- data/lib/serum/rails/code_scanner.rb +49 -0
- data/lib/serum/rails/metrics.rb +118 -0
- data/lib/serum/rails/type_selection.rb +31 -0
- data/lib/serum/rails/version.rb +7 -0
- data/lib/serum-rails.rb +5 -0
- data/serum-rails.gemspec +23 -0
- data/spec/serum/rails/metrics_spec.rb +87 -0
- data/spec/spec_helper.rb +80 -0
- data/spec/test_app/Capfile +4 -0
- data/spec/test_app/Gemfile +54 -0
- data/spec/test_app/Gemfile.lock +163 -0
- data/spec/test_app/Rakefile +11 -0
- data/spec/test_app/app/controllers/admin/categories_controller.rb +17 -0
- data/spec/test_app/app/controllers/admin/users_controller.rb +30 -0
- data/spec/test_app/app/controllers/application_controller/i18n_trait.rb +24 -0
- data/spec/test_app/app/controllers/application_controller/navigation_trait.rb +19 -0
- data/spec/test_app/app/controllers/application_controller/security_trait/disabled_clearance_accounts_trait.rb +41 -0
- data/spec/test_app/app/controllers/application_controller/security_trait.rb +65 -0
- data/spec/test_app/app/controllers/application_controller.rb +13 -0
- data/spec/test_app/app/controllers/conferences_controller.rb +67 -0
- data/spec/test_app/app/controllers/friendship_requests_controller.rb +31 -0
- data/spec/test_app/app/controllers/invitations_controller.rb +39 -0
- data/spec/test_app/app/controllers/members_controller.rb +21 -0
- data/spec/test_app/app/controllers/passwords_controller.rb +33 -0
- data/spec/test_app/app/controllers/sessions_controller.rb +17 -0
- data/spec/test_app/app/controllers/shared/boring_controller_trait/deletable_trait.rb +23 -0
- data/spec/test_app/app/controllers/shared/boring_controller_trait/flash_trait.rb +23 -0
- data/spec/test_app/app/controllers/shared/boring_controller_trait/helpers_trait.rb +35 -0
- data/spec/test_app/app/controllers/shared/boring_controller_trait/index_trait.rb +39 -0
- data/spec/test_app/app/controllers/shared/boring_controller_trait/log_changes_trait.rb +18 -0
- data/spec/test_app/app/controllers/shared/boring_controller_trait.rb +16 -0
- data/spec/test_app/app/controllers/users_controller.rb +49 -0
- data/spec/test_app/app/controllers/ws/api_controller/formatters_trait.rb +91 -0
- data/spec/test_app/app/controllers/ws/api_controller/parsers_trait.rb +59 -0
- data/spec/test_app/app/controllers/ws/api_controller.rb +70 -0
- data/spec/test_app/app/controllers/ws/attendees_controller.rb +43 -0
- data/spec/test_app/app/controllers/ws/categories_controller.rb +30 -0
- data/spec/test_app/app/controllers/ws/conferences_controller.rb +62 -0
- data/spec/test_app/app/controllers/ws/contacts_controller.rb +41 -0
- data/spec/test_app/app/controllers/ws/factory_controller.rb +45 -0
- data/spec/test_app/app/controllers/ws/members_controller.rb +34 -0
- data/spec/test_app/app/controllers/ws/series_controller.rb +19 -0
- data/spec/test_app/app/controllers/ws/tests_controller.rb +23 -0
- data/spec/test_app/app/helpers/application_helper.rb +180 -0
- data/spec/test_app/app/helpers/mail_helper.rb +9 -0
- data/spec/test_app/app/helpers/tags_helper.rb +16 -0
- data/spec/test_app/app/helpers/user_helper.rb +23 -0
- data/spec/test_app/app/models/attendance.rb +11 -0
- data/spec/test_app/app/models/category/ancestry_trait.rb +23 -0
- data/spec/test_app/app/models/category.rb +25 -0
- data/spec/test_app/app/models/conference/attendance_trait.rb +23 -0
- data/spec/test_app/app/models/conference/categories_trait.rb +26 -0
- data/spec/test_app/app/models/conference/icalendar_trait.rb +36 -0
- data/spec/test_app/app/models/conference/search_trait.rb +44 -0
- data/spec/test_app/app/models/conference.rb +24 -0
- data/spec/test_app/app/models/conference_category.rb +6 -0
- data/spec/test_app/app/models/conference_search.rb +51 -0
- data/spec/test_app/app/models/error.rb +25 -0
- data/spec/test_app/app/models/friendship.rb +14 -0
- data/spec/test_app/app/models/friendship_request.rb +19 -0
- data/spec/test_app/app/models/invitation.rb +38 -0
- data/spec/test_app/app/models/member_search.rb +18 -0
- data/spec/test_app/app/models/navigation.rb +38 -0
- data/spec/test_app/app/models/patterns.rb +14 -0
- data/spec/test_app/app/models/permissions.rb +106 -0
- data/spec/test_app/app/models/shared/afterlife_trait.rb +18 -0
- data/spec/test_app/app/models/shared/choice_trait.rb +37 -0
- data/spec/test_app/app/models/shared/deletable_trait.rb +8 -0
- data/spec/test_app/app/models/shared/flag_trait.rb +30 -0
- data/spec/test_app/app/models/shared/indestructible_trait.rb +19 -0
- data/spec/test_app/app/models/shared/list_field_trait.rb +70 -0
- data/spec/test_app/app/models/shared/person_name_trait.rb +25 -0
- data/spec/test_app/app/models/shared/searchable_trait.rb +71 -0
- data/spec/test_app/app/models/shared/sortable_trait.rb +24 -0
- data/spec/test_app/app/models/user/authentication_trait.rb +33 -0
- data/spec/test_app/app/models/user/authorization_trait.rb +17 -0
- data/spec/test_app/app/models/user/friends_trait.rb +42 -0
- data/spec/test_app/app/models/user/search_trait.rb +43 -0
- data/spec/test_app/app/models/user.rb +61 -0
- data/spec/test_app/app/models/util.rb +19 -0
- data/spec/test_app/app/views/admin/categories/_form.html.haml +18 -0
- data/spec/test_app/app/views/admin/categories/_list.html.haml +17 -0
- data/spec/test_app/app/views/admin/categories/edit.html.haml +6 -0
- data/spec/test_app/app/views/admin/categories/index.html.haml +6 -0
- data/spec/test_app/app/views/admin/categories/new.html.haml +6 -0
- data/spec/test_app/app/views/admin/categories/show.html.haml +27 -0
- data/spec/test_app/app/views/admin/users/_form.html.haml +49 -0
- data/spec/test_app/app/views/admin/users/_head.html.haml +5 -0
- data/spec/test_app/app/views/admin/users/_list.html.haml +20 -0
- data/spec/test_app/app/views/admin/users/_search.html.haml +9 -0
- data/spec/test_app/app/views/admin/users/deleted.html.haml +5 -0
- data/spec/test_app/app/views/admin/users/edit.html.haml +5 -0
- data/spec/test_app/app/views/admin/users/index.html.haml +7 -0
- data/spec/test_app/app/views/admin/users/new.html.haml +6 -0
- data/spec/test_app/app/views/clearance_mailer/change_password.erb +9 -0
- data/spec/test_app/app/views/conferences/_categories_list.html.haml +8 -0
- data/spec/test_app/app/views/conferences/_form.html.haml +32 -0
- data/spec/test_app/app/views/conferences/_head.html.haml +4 -0
- data/spec/test_app/app/views/conferences/_list.html.haml +22 -0
- data/spec/test_app/app/views/conferences/_search.html.haml +24 -0
- data/spec/test_app/app/views/conferences/edit.html.haml +8 -0
- data/spec/test_app/app/views/conferences/index.html.haml +22 -0
- data/spec/test_app/app/views/conferences/new.html.haml +9 -0
- data/spec/test_app/app/views/conferences/search.html.haml +7 -0
- data/spec/test_app/app/views/conferences/show.html.haml +78 -0
- data/spec/test_app/app/views/invitations/index.html.haml +26 -0
- data/spec/test_app/app/views/invitations/new.html.haml +22 -0
- data/spec/test_app/app/views/layouts/_flashes.html.haml +13 -0
- data/spec/test_app/app/views/layouts/_javascript_requirement.html.haml +8 -0
- data/spec/test_app/app/views/layouts/_javascripts.html.haml +4 -0
- data/spec/test_app/app/views/layouts/_notifications.html.haml +11 -0
- data/spec/test_app/app/views/layouts/_session_navigation.html.haml +12 -0
- data/spec/test_app/app/views/layouts/_stylesheets.html.haml +6 -0
- data/spec/test_app/app/views/layouts/screen.html.haml +30 -0
- data/spec/test_app/app/views/members/index.html.haml +40 -0
- data/spec/test_app/app/views/passwords/edit.html.haml +21 -0
- data/spec/test_app/app/views/passwords/new.html.haml +14 -0
- data/spec/test_app/app/views/sessions/new.html.haml +19 -0
- data/spec/test_app/app/views/users/_form.html.haml +45 -0
- data/spec/test_app/app/views/users/_head.html.haml +3 -0
- data/spec/test_app/app/views/users/edit.html.haml +5 -0
- data/spec/test_app/app/views/users/new.html.haml +6 -0
- data/spec/test_app/app/views/users/show.html.haml +49 -0
- data/spec/test_app/assets/data.json +981 -0
- data/spec/test_app/config/boot.rb +125 -0
- data/spec/test_app/config/cucumber.yml +8 -0
- data/spec/test_app/config/database.sample.yml +24 -0
- data/spec/test_app/config/deploy/production.rb +9 -0
- data/spec/test_app/config/deploy.rb +100 -0
- data/spec/test_app/config/environment.rb +27 -0
- data/spec/test_app/config/environments/cucumber.rb +28 -0
- data/spec/test_app/config/environments/development.rb +22 -0
- data/spec/test_app/config/environments/production.rb +35 -0
- data/spec/test_app/config/environments/test.rb +30 -0
- data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/test_app/config/initializers/clearance.rb +5 -0
- data/spec/test_app/config/initializers/collect_hash.rb +23 -0
- data/spec/test_app/config/initializers/collection_path_with_params.rb +18 -0
- data/spec/test_app/config/initializers/cookie_verification_secret.rb +10 -0
- data/spec/test_app/config/initializers/form_builder.rb +166 -0
- data/spec/test_app/config/initializers/inflections.rb +10 -0
- data/spec/test_app/config/initializers/invert_ordered_hash.rb +12 -0
- data/spec/test_app/config/initializers/localize_textfield_input_for_numbers.rb +30 -0
- data/spec/test_app/config/initializers/mime_types.rb +7 -0
- data/spec/test_app/config/initializers/new_rails_defaults.rb +21 -0
- data/spec/test_app/config/initializers/preload_associations.rb +7 -0
- data/spec/test_app/config/initializers/query_diet.rb +6 -0
- data/spec/test_app/config/initializers/saner_field_with_errors.rb +5 -0
- data/spec/test_app/config/initializers/session_store.rb +18 -0
- data/spec/test_app/config/locales/en.yml +231 -0
- data/spec/test_app/config/preinitializer.rb +22 -0
- data/spec/test_app/config/routes.rb +47 -0
- data/spec/test_app/db/migrate/20110114164517_initial_tables.rb +52 -0
- data/spec/test_app/db/migrate/20110118090858_add_profile_fields_to_user.rb +15 -0
- data/spec/test_app/db/migrate/20110118092741_create_conference.rb +20 -0
- data/spec/test_app/db/migrate/20110118093503_create_category.rb +17 -0
- data/spec/test_app/db/migrate/20110118104438_create_conference_category.rb +16 -0
- data/spec/test_app/db/migrate/20110118105959_create_attendance.rb +17 -0
- data/spec/test_app/db/migrate/20110118122324_create_friendship_requests.rb +15 -0
- data/spec/test_app/db/migrate/20110118162436_create_invitation.rb +16 -0
- data/spec/test_app/db/migrate/20110118170347_create_friendships.rb +15 -0
- data/spec/test_app/db/migrate/20110118193528_add_timestamps_to_conference.rb +12 -0
- data/spec/test_app/db/migrate/20110119075012_set_unique_index_on_username_for_user.rb +11 -0
- data/spec/test_app/db/migrate/20110119093458_remove_first_and_last_name_from_user.rb +12 -0
- data/spec/test_app/db/migrate/20110119110857_add_missing_indexes.rb +23 -0
- data/spec/test_app/db/migrate/20110119115751_add_uniqueness_of_name_to_category.rb +9 -0
- data/spec/test_app/db/seeds.rb +5 -0
- data/spec/test_app/lib/scripts/create_many_users_sql.rb +14 -0
- data/spec/test_app/lib/tasks/cucumber.rake +53 -0
- data/spec/test_app/lib/tasks/pending_migrations.rake +24 -0
- data/spec/test_app/lib/tasks/rcov.rake +42 -0
- data/spec/test_app/lib/tasks/rspec.rake +144 -0
- data/spec/test_app/public/404.html +30 -0
- data/spec/test_app/public/422.html +30 -0
- data/spec/test_app/public/500.html +30 -0
- data/spec/test_app/public/favicon.ico +0 -0
- data/spec/test_app/public/images/ajax-loader.gif +0 -0
- data/spec/test_app/public/images/icons/balloon-quotation.png +0 -0
- data/spec/test_app/public/images/icons/balloon-sound.png +0 -0
- data/spec/test_app/public/images/icons/balloon.png +0 -0
- data/spec/test_app/public/images/icons/bell.png +0 -0
- data/spec/test_app/public/images/icons/bin.png +0 -0
- data/spec/test_app/public/images/icons/bookmark.png +0 -0
- data/spec/test_app/public/images/icons/cake.png +0 -0
- data/spec/test_app/public/images/icons/calendar-blue.png +0 -0
- data/spec/test_app/public/images/icons/calendar-month.png +0 -0
- data/spec/test_app/public/images/icons/calendar-month_light.png +0 -0
- data/spec/test_app/public/images/icons/calendar-select.png +0 -0
- data/spec/test_app/public/images/icons/card-address.png +0 -0
- data/spec/test_app/public/images/icons/cards-address.png +0 -0
- data/spec/test_app/public/images/icons/cross-script.png +0 -0
- data/spec/test_app/public/images/icons/cross-small.png +0 -0
- data/spec/test_app/public/images/icons/cross.png +0 -0
- data/spec/test_app/public/images/icons/crown-silver.png +0 -0
- data/spec/test_app/public/images/icons/crown.png +0 -0
- data/spec/test_app/public/images/icons/dashboard.png +0 -0
- data/spec/test_app/public/images/icons/document-list.png +0 -0
- data/spec/test_app/public/images/icons/document-node.png +0 -0
- data/spec/test_app/public/images/icons/document-number.png +0 -0
- data/spec/test_app/public/images/icons/document-stamp.png +0 -0
- data/spec/test_app/public/images/icons/document-task.png +0 -0
- data/spec/test_app/public/images/icons/document-text.png +0 -0
- data/spec/test_app/public/images/icons/fire.png +0 -0
- data/spec/test_app/public/images/icons/folder-medium.png +0 -0
- data/spec/test_app/public/images/icons/folder.png +0 -0
- data/spec/test_app/public/images/icons/gear.png +0 -0
- data/spec/test_app/public/images/icons/globe-green.png +0 -0
- data/spec/test_app/public/images/icons/globe-green_light.png +0 -0
- data/spec/test_app/public/images/icons/globe-medium-green.png +0 -0
- data/spec/test_app/public/images/icons/heart-break.png +0 -0
- data/spec/test_app/public/images/icons/heart.png +0 -0
- data/spec/test_app/public/images/icons/images-flickr.png +0 -0
- data/spec/test_app/public/images/icons/information-balloon.png +0 -0
- data/spec/test_app/public/images/icons/key.png +0 -0
- data/spec/test_app/public/images/icons/light-bulb.png +0 -0
- data/spec/test_app/public/images/icons/lock--exclamation.png +0 -0
- data/spec/test_app/public/images/icons/lock.png +0 -0
- data/spec/test_app/public/images/icons/magnifier-medium.png +0 -0
- data/spec/test_app/public/images/icons/magnifier.png +0 -0
- data/spec/test_app/public/images/icons/mail.png +0 -0
- data/spec/test_app/public/images/icons/paper-clip-small.png +0 -0
- data/spec/test_app/public/images/icons/paper-clip.png +0 -0
- data/spec/test_app/public/images/icons/pencil.png +0 -0
- data/spec/test_app/public/images/icons/plus-circle.png +0 -0
- data/spec/test_app/public/images/icons/plus-small.png +0 -0
- data/spec/test_app/public/images/icons/plus.png +0 -0
- data/spec/test_app/public/images/icons/printer.png +0 -0
- data/spec/test_app/public/images/icons/question-balloon.png +0 -0
- data/spec/test_app/public/images/icons/question-white.png +0 -0
- data/spec/test_app/public/images/icons/question.png +0 -0
- data/spec/test_app/public/images/icons/quill.png +0 -0
- data/spec/test_app/public/images/icons/robot.png +0 -0
- data/spec/test_app/public/images/icons/ruby_16.png +0 -0
- data/spec/test_app/public/images/icons/ruby_2_16.png +0 -0
- data/spec/test_app/public/images/icons/ruby_32.png +0 -0
- data/spec/test_app/public/images/icons/show.png +0 -0
- data/spec/test_app/public/images/icons/star.png +0 -0
- data/spec/test_app/public/images/icons/sticky-note-text.png +0 -0
- data/spec/test_app/public/images/icons/telephone-fax.png +0 -0
- data/spec/test_app/public/images/icons/telephone-fax_light.png +0 -0
- data/spec/test_app/public/images/icons/telephone.png +0 -0
- data/spec/test_app/public/images/icons/telephone_light.png +0 -0
- data/spec/test_app/public/images/icons/thumb-up.png +0 -0
- data/spec/test_app/public/images/icons/thumb.png +0 -0
- data/spec/test_app/public/images/icons/tick.png +0 -0
- data/spec/test_app/public/images/icons/trophy-silver.png +0 -0
- data/spec/test_app/public/images/icons/trophy.png +0 -0
- data/spec/test_app/public/images/icons/user-gray.png +0 -0
- data/spec/test_app/public/images/icons/user-gray_gray.png +0 -0
- data/spec/test_app/public/images/icons/user-medium.png +0 -0
- data/spec/test_app/public/images/icons/user-red.png +0 -0
- data/spec/test_app/public/images/icons/users.png +0 -0
- data/spec/test_app/public/images/icons/users_gray.png +0 -0
- data/spec/test_app/public/images/icons/xfn.png +0 -0
- data/spec/test_app/public/images/legend_bg.png +0 -0
- data/spec/test_app/public/images/poshytip/tip-deepgray.png +0 -0
- data/spec/test_app/public/images/poshytip/tip-deepgray_arrows.png +0 -0
- data/spec/test_app/public/images/stripes_bottom_dark.png +0 -0
- data/spec/test_app/public/images/stripes_top_dark.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_flat_10_000000_40x100.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/spec/test_app/public/images/ui/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/spec/test_app/public/images/ui/ui-icons_222222_256x240.png +0 -0
- data/spec/test_app/public/images/ui/ui-icons_228ef1_256x240.png +0 -0
- data/spec/test_app/public/images/ui/ui-icons_ef8c08_256x240.png +0 -0
- data/spec/test_app/public/images/ui/ui-icons_ffd27a_256x240.png +0 -0
- data/spec/test_app/public/images/ui/ui-icons_ffffff_256x240.png +0 -0
- data/spec/test_app/public/javascripts/application.js +175 -0
- data/spec/test_app/public/javascripts/lib/jquery-1.4.2.min.js +154 -0
- data/spec/test_app/public/javascripts/lib/jquery-ui-1.8.5.custom.min.js +249 -0
- data/spec/test_app/public/javascripts/lib/jquery-ui-1.8.5.custom.min.txt +9 -0
- data/spec/test_app/public/javascripts/lib/jquery-ui-timepicker-addon.js +682 -0
- data/spec/test_app/public/javascripts/lib/jquery-ui-timepicker-addon.min.js +22 -0
- data/spec/test_app/public/javascripts/lib/jquery.elastic.js +6 -0
- data/spec/test_app/public/javascripts/lib/jquery.elastic.performance.js +128 -0
- data/spec/test_app/public/javascripts/lib/jquery.elastic.source.js +117 -0
- data/spec/test_app/public/javascripts/lib/jquery.poshytip.js +414 -0
- data/spec/test_app/public/javascripts/lib/jquery.poshytip.min.js +7 -0
- data/spec/test_app/public/javascripts/lib/jquery.ui.datepicker-de.js +23 -0
- data/spec/test_app/public/javascripts/lib/jrails.js +1 -0
- data/spec/test_app/public/javascripts/lib/multiple-autocomplete.js +39 -0
- data/spec/test_app/public/javascripts/lib/underscore-min.js +17 -0
- data/spec/test_app/public/javascripts/lib/underscore.js +704 -0
- data/spec/test_app/public/robots.txt +5 -0
- data/spec/test_app/public/stylesheets/lib/PIE.htc +77 -0
- data/spec/test_app/public/stylesheets/lib/PIE_uncompressed.htc +3064 -0
- data/spec/test_app/public/stylesheets/lib/jquery-ui-timepicker-addon.css +11 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-darkgray/tip-darkgray.css +62 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-darkgray/tip-darkgray.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-darkgray/tip-darkgray_arrows.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-deepgray/tip-deepgray.css +64 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-green/tip-green.css +57 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-green/tip-green_arrows.gif +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-skyblue/tip-skyblue.css +58 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-skyblue/tip-skyblue.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-skyblue/tip-skyblue_arrows.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-twitter/tip-twitter.css +59 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-twitter/tip-twitter_arrows.gif +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-violet/tip-violet.css +60 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-violet/tip-violet.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-violet/tip-violet_arrows.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-yellow/tip-yellow.css +60 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-yellow/tip-yellow.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-yellow/tip-yellow_arrows.png +0 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-yellowsimple/tip-yellowsimple.css +60 -0
- data/spec/test_app/public/stylesheets/lib/poshytip/tip-yellowsimple/tip-yellowsimple_arrows.gif +0 -0
- data/spec/test_app/public/stylesheets/lib/ui-lightness/jquery-ui-1.8.5.custom.css +459 -0
- data/spec/test_app/public/stylesheets/sass/_mixins.sass +79 -0
- data/spec/test_app/public/stylesheets/sass/_reset.sass +40 -0
- data/spec/test_app/public/stylesheets/sass/print.sass +22 -0
- data/spec/test_app/public/stylesheets/sass/screen.sass +866 -0
- data/spec/test_app/script/about +4 -0
- data/spec/test_app/script/autospec +6 -0
- data/spec/test_app/script/console +3 -0
- data/spec/test_app/script/cucumber +10 -0
- data/spec/test_app/script/dbconsole +3 -0
- data/spec/test_app/script/destroy +3 -0
- data/spec/test_app/script/generate +3 -0
- data/spec/test_app/script/performance/benchmarker +3 -0
- data/spec/test_app/script/performance/profiler +3 -0
- data/spec/test_app/script/plugin +3 -0
- data/spec/test_app/script/runner +3 -0
- data/spec/test_app/script/server +3 -0
- data/spec/test_app/script/spec +10 -0
- metadata +748 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
-# View to show a category as an admin.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
- page_head :title => icon(:category, @category.name), :navigation => Navigation.admin_category
|
5
|
+
|
6
|
+
- buttons do
|
7
|
+
= link_to icon(:create, 'Add sub-category'), new_admin_category_path(:category => { :parent_id => object.id })
|
8
|
+
|
9
|
+
%table
|
10
|
+
%tr
|
11
|
+
%th Name
|
12
|
+
%td= @category.name
|
13
|
+
%tr
|
14
|
+
%th Parent category
|
15
|
+
%td
|
16
|
+
- if @category.parent
|
17
|
+
= link_to(icon(:category, @category.parent.andand.name), [:admin, @category.parent])
|
18
|
+
- else
|
19
|
+
–
|
20
|
+
- if @category.children.any?
|
21
|
+
%tr
|
22
|
+
%th Sub-categories
|
23
|
+
%td
|
24
|
+
%ul
|
25
|
+
- for child in @category.children.sort
|
26
|
+
%li
|
27
|
+
= link_to(icon(:category, child.name), [:admin, child])
|
@@ -0,0 +1,49 @@
|
|
1
|
+
-# Partial for a user form as shown to admins.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
- form_for [:admin, @user] do |form|
|
5
|
+
%dl
|
6
|
+
%dt
|
7
|
+
= form.label :username
|
8
|
+
%dd
|
9
|
+
= form.text_field :username
|
10
|
+
%dt
|
11
|
+
= form.label :email
|
12
|
+
%dd
|
13
|
+
= form.text_field :email
|
14
|
+
%dt
|
15
|
+
= form.label :full_name
|
16
|
+
%dd
|
17
|
+
= form.text_field :full_name
|
18
|
+
%dt
|
19
|
+
= form.label :town
|
20
|
+
%dd
|
21
|
+
= form.text_field :town
|
22
|
+
%dt
|
23
|
+
= form.label :country
|
24
|
+
%dd
|
25
|
+
= form.text_field :country
|
26
|
+
%dt
|
27
|
+
= form.label :password
|
28
|
+
- unless form.object.new_record?
|
29
|
+
= help 'Leave blank to keep the password unchanged'
|
30
|
+
%dd
|
31
|
+
= form.password_field :password, :autocomplete => 'off'
|
32
|
+
%dt
|
33
|
+
= form.label :password_confirmation
|
34
|
+
%dd
|
35
|
+
= form.password_field :password_confirmation, :autocomplete => 'off'
|
36
|
+
|
37
|
+
%dt
|
38
|
+
= form.label :role_name
|
39
|
+
%dd
|
40
|
+
= form.select :role_name, User.available_roles.invert, :include_blank => true
|
41
|
+
|
42
|
+
%dt
|
43
|
+
= form.label :locked
|
44
|
+
%dd
|
45
|
+
= form.check_box :locked
|
46
|
+
= form.label :locked, "This user may no longer sign in"
|
47
|
+
|
48
|
+
= boring_save_cancel_buttons :delete_link => current_user.may_destroy_admin_user?(@user)
|
49
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-# Partial for a user list as shown to admins.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
- if @users.present?
|
5
|
+
%table.grid
|
6
|
+
%tr
|
7
|
+
%th= User.human_attribute_name :username
|
8
|
+
%th= User.human_attribute_name :full_name
|
9
|
+
%th= User.human_attribute_name :email
|
10
|
+
- for user in @users
|
11
|
+
%tr
|
12
|
+
- icon_name = user.locked? ? :lock : :edit
|
13
|
+
%td= link_to(icon(icon_name, user.username), [:edit, :admin, user])
|
14
|
+
%td= maybe_blank(user.full_name)
|
15
|
+
%td= maybe_blank(user.email)
|
16
|
+
= pagination @users
|
17
|
+
- else
|
18
|
+
.none
|
19
|
+
No users found.
|
20
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%-
|
2
|
+
# E-mail sent when the user has forgotten her password or when a new user is created by an admin.
|
3
|
+
# origin: RM
|
4
|
+
-%>
|
5
|
+
Follow this link to change your password:
|
6
|
+
|
7
|
+
<%=raw reset_password_link(@user) %>
|
8
|
+
|
9
|
+
If you didn't request a password reset, please ignore this e-mail.
|
@@ -0,0 +1,8 @@
|
|
1
|
+
-# Partial to list categories on the conference list and search.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
- if @categories.present?
|
5
|
+
- segment(:title => @category ? 'Subcategories' : 'Categories') do
|
6
|
+
%ul
|
7
|
+
- for category in @categories
|
8
|
+
%li= link_to icon(:category, category.name), conferences_path(:category_id => category)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
-# Partial for a conference form as shown to users.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
%dl
|
5
|
+
%dt
|
6
|
+
= form.label :name
|
7
|
+
%dd
|
8
|
+
= form.error_message_on :name
|
9
|
+
= form.text_field :name
|
10
|
+
%dt
|
11
|
+
= form.label :description
|
12
|
+
%dd
|
13
|
+
= form.error_message_on :description
|
14
|
+
= form.text_area :description, :rows => 3
|
15
|
+
%dt
|
16
|
+
= form.label :start_date
|
17
|
+
%dd
|
18
|
+
= form.error_message_on :start_date
|
19
|
+
= form.date_picker :start_date
|
20
|
+
%dt
|
21
|
+
= form.label :end_date
|
22
|
+
%dd
|
23
|
+
= form.error_message_on :end_date
|
24
|
+
= form.date_picker :end_date
|
25
|
+
%dt
|
26
|
+
= form.label :address
|
27
|
+
%dd
|
28
|
+
= form.error_message_on :address
|
29
|
+
= form.text_area :address, :rows => 3
|
30
|
+
%dt Categories
|
31
|
+
%dd
|
32
|
+
= form.check_box_list :category_list, Category.all.collect { |c| [c.id.to_s, c.name] }
|
@@ -0,0 +1,22 @@
|
|
1
|
+
-# Partial to display a list of conferences matching the search query.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
- if @running_conferences.present?
|
5
|
+
|
6
|
+
- segment(:title => 'Currently running conferences', :id => 'running_conferences') do
|
7
|
+
%ul
|
8
|
+
- for conference in @running_conferences
|
9
|
+
%li= link_to icon(:conference, conference.name), conference
|
10
|
+
|
11
|
+
|
12
|
+
-# Always show the generic list of conferences
|
13
|
+
|
14
|
+
- segment(:title => 'Conferences') do
|
15
|
+
- if @conferences.present?
|
16
|
+
%ul
|
17
|
+
- for conference in @conferences
|
18
|
+
%li= link_to icon(:conference, conference.name), conference
|
19
|
+
= pagination @conferences
|
20
|
+
- else
|
21
|
+
.none
|
22
|
+
No conference found.
|
@@ -0,0 +1,24 @@
|
|
1
|
+
-# Partial for the conference search form.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
- form_for @conference_search, :url => search_conferences_path, :html => { :method => :get, :id => 'conference_search_form', :class => ('advanced' if local_assigns[:advanced]) } do |form|
|
5
|
+
- if local_assigns[:advanced]
|
6
|
+
|
7
|
+
%dl
|
8
|
+
%dt Dates
|
9
|
+
%dd.dates
|
10
|
+
= form.label :from
|
11
|
+
= form.date_picker :from
|
12
|
+
= form.label :until, 'until'
|
13
|
+
= form.date_picker :until
|
14
|
+
%dt Categories
|
15
|
+
%dd.list.categories
|
16
|
+
= form.check_box_list :category_ids, Category.all.sort.collect { |c| [c.id.to_s, c.name] }, :allow_empty => true
|
17
|
+
= clear
|
18
|
+
|
19
|
+
- buttons do
|
20
|
+
= form.spec_label :query, 'Query'
|
21
|
+
= form.text_field :query
|
22
|
+
= form.submit 'Search'
|
23
|
+
|
24
|
+
= clear
|
@@ -0,0 +1,22 @@
|
|
1
|
+
-# View to display the list of conferences.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
- if @category
|
5
|
+
= page_head :title => icon(:category, @category.name)
|
6
|
+
- else
|
7
|
+
= render 'search'
|
8
|
+
|
9
|
+
- if current_user.may_create_conference?
|
10
|
+
= boring_create_button(:label => 'Add conference')
|
11
|
+
|
12
|
+
- columns do
|
13
|
+
|
14
|
+
- column do
|
15
|
+
#conferences
|
16
|
+
= list
|
17
|
+
|
18
|
+
- if @categories.present?
|
19
|
+
- column(:size => :narrow) do
|
20
|
+
#categories
|
21
|
+
= render 'categories_list'
|
22
|
+
|
@@ -0,0 +1,78 @@
|
|
1
|
+
-# View for the conference summary.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
= render 'head'
|
5
|
+
|
6
|
+
#conference
|
7
|
+
|
8
|
+
- buttons do
|
9
|
+
- if @conference.attended_by?(current_user)
|
10
|
+
- if current_user.may_cancel_attendance_conference?(@conference)
|
11
|
+
= link_to icon(:cancel_attendance, 'Cancel your attendance'), cancel_attendance_conference_path(@conference), :method => :put
|
12
|
+
- else
|
13
|
+
- if current_user.may_attend_conference?(@conference)
|
14
|
+
= link_to icon(:attend, 'Sign up for this conference'), attend_conference_path(@conference), :method => :put
|
15
|
+
|
16
|
+
= link_to icon(:invite, 'Invite contacts'), new_invitation_path(:invitation => { :conference_id => @conference.id})
|
17
|
+
= link_to icon(:calendar, 'Download as iCalendar'), object_path(:format => 'ics')
|
18
|
+
|
19
|
+
%table
|
20
|
+
|
21
|
+
%tr
|
22
|
+
%th
|
23
|
+
= Conference.human_attribute_name :description
|
24
|
+
%td
|
25
|
+
.prose
|
26
|
+
= simple_format @conference.description
|
27
|
+
|
28
|
+
- if @conference.categories.any?
|
29
|
+
%tr
|
30
|
+
%th
|
31
|
+
= Conference.human_attribute_name :categories
|
32
|
+
%td
|
33
|
+
%ul
|
34
|
+
- for category in @conference.categories
|
35
|
+
%li
|
36
|
+
= icon(:category, category.name)
|
37
|
+
|
38
|
+
%tr
|
39
|
+
%th
|
40
|
+
= Conference.human_attribute_name :start_date
|
41
|
+
%td
|
42
|
+
=l @conference.start_date
|
43
|
+
|
44
|
+
%tr
|
45
|
+
%th
|
46
|
+
= Conference.human_attribute_name :end_date
|
47
|
+
%td
|
48
|
+
=l @conference.end_date
|
49
|
+
|
50
|
+
%tr
|
51
|
+
%th
|
52
|
+
= Conference.human_attribute_name :address
|
53
|
+
%td
|
54
|
+
.prose
|
55
|
+
= simple_format @conference.address
|
56
|
+
|
57
|
+
%tr
|
58
|
+
%th
|
59
|
+
= Conference.human_attribute_name :user_id
|
60
|
+
%td
|
61
|
+
= link_to icon(:user, @conference.user.username_with_full_name), @conference.user
|
62
|
+
(#{@conference.user.email})
|
63
|
+
|
64
|
+
- if @conference.attendees.any?
|
65
|
+
- segment :title => 'Attendees', :id => 'attendees' do
|
66
|
+
%table.grid
|
67
|
+
%tr
|
68
|
+
%th Name
|
69
|
+
%th= User.human_attribute_name(:email)
|
70
|
+
- for attendee in @conference.attendees
|
71
|
+
%tr
|
72
|
+
%td
|
73
|
+
= link_to(icon(:attendee, current_user.name_for(attendee, attendee == @conference.user)), attendee)
|
74
|
+
%td
|
75
|
+
= current_user.email_for(attendee, attendee == @conference.user)
|
76
|
+
|
77
|
+
:javascript
|
78
|
+
someFunction(#{JSON.dump(@some_var)})
|
@@ -0,0 +1,26 @@
|
|
1
|
+
-# View to show outstanding conference invitations of the signed in user.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
#invitations
|
5
|
+
|
6
|
+
- invitations = current_user.received_invitations.include_everything
|
7
|
+
|
8
|
+
- if invitations.any?
|
9
|
+
|
10
|
+
- for invitation in current_user.received_invitations
|
11
|
+
.blob.invitation
|
12
|
+
.description
|
13
|
+
Invitation to
|
14
|
+
= link_to(invitation.conference.name, invitation.conference)
|
15
|
+
.sender
|
16
|
+
from
|
17
|
+
= link_to(current_user.name_for(invitation.sender), invitation.sender)
|
18
|
+
- buttons do
|
19
|
+
= link_to(icon(:accept_invitation, 'Accept'), accept_invitation_path(invitation), :title => "This will sign you up for #{invitation.conference.name}", :method => :put)
|
20
|
+
= link_to(icon(:dismiss_invitation, 'Dismiss'), dismiss_invitation_path(invitation), :method => :delete)
|
21
|
+
|
22
|
+
- else
|
23
|
+
|
24
|
+
.none
|
25
|
+
You have no outstanding conference invitations.
|
26
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
-# View to invite friends to a conference.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
= page_head :title => "Invite contacts to ".html_safe + link_to(object.conference.name, object.conference)
|
5
|
+
|
6
|
+
#invite_friends
|
7
|
+
- if current_user.friends.any?
|
8
|
+
%table.grid
|
9
|
+
- for friend in current_user.friends
|
10
|
+
- friend_name = current_user.name_for(friend)
|
11
|
+
%tr{:id => "friend_#{friend.username}"}
|
12
|
+
%td.beside_buttons
|
13
|
+
= link_to icon(:user, friend_name), friend
|
14
|
+
%td
|
15
|
+
- buttons do
|
16
|
+
= link_to icon(:invite, 'Invite'), invitations_path(:invitation => { :conference_id => object.conference.id, :recipient_id => friend.id }), :method => :post
|
17
|
+
- else
|
18
|
+
.none
|
19
|
+
You have no contacts to invite.
|
20
|
+
|
21
|
+
:javascript
|
22
|
+
someFunction(#{@some_var.to_json})
|
@@ -0,0 +1,13 @@
|
|
1
|
+
-# Partial for displaying flash messages (usually notifications for the success or failure of a user action) in the page head.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
- flash.each do |level, value|
|
5
|
+
%div{:class => "flash #{h level}"}
|
6
|
+
= h value
|
7
|
+
|
8
|
+
- if flash.any?
|
9
|
+
:javascript
|
10
|
+
setTimeout(function() {
|
11
|
+
$('.flash').fadeOut(400);
|
12
|
+
}, 1800);
|
13
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
-# Partial to display a warning if the browser has Javascript disabled.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
%noscript
|
5
|
+
#javascript_requirement
|
6
|
+
This application requires Javascript. Please
|
7
|
+
= link_to 'enable Javascript', 'http://www.google.com/support/bin/answer.py?hl=en&answer=23852'
|
8
|
+
in your browser and reload this page.
|
@@ -0,0 +1,4 @@
|
|
1
|
+
-# Partial to include Javascript files in the HTML head.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
= javascript_include_tag 'lib/underscore-min.js', 'lib/jquery-1.4.2.min.js', 'lib/jquery-ui-1.8.5.custom.min.js', 'lib/jquery.ui.datepicker-de.js', 'lib/jquery-ui-timepicker-addon.min.js', 'lib/jquery.elastic.performance.js', 'lib/jquery.poshytip.min.js', 'lib/multiple-autocomplete.js', 'lib/jrails', 'application.js', :cache => true
|
@@ -0,0 +1,11 @@
|
|
1
|
+
-# Partial to display notifications for outstanding invitations and friendship requests to the signed in user
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
#notifications
|
5
|
+
#notifications_inner
|
6
|
+
- invitation_count = current_user.received_invitations.count
|
7
|
+
- if invitation_count > 0
|
8
|
+
= link_to icon(:email, pluralize(invitation_count, 'invitation', 'invitations')), invitations_path, :class => 'notification'
|
9
|
+
- friendship_request_count = current_user.friendship_requests.count
|
10
|
+
- if friendship_request_count > 0
|
11
|
+
= link_to icon(:email, pluralize(friendship_request_count, 'contact request', 'contact requests')), current_user, :class => 'notification'
|
@@ -0,0 +1,12 @@
|
|
1
|
+
-# Partial for the navigation in the top-right corner, which relates to the current user being signed in.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
#session_navigation
|
5
|
+
- if signed_in?
|
6
|
+
%span#current_user
|
7
|
+
= link_to current_user.username, current_user
|
8
|
+
(#{current_user.email})
|
9
|
+
%span#sign_out= link_to 'Sign out', session_path, :method => :delete
|
10
|
+
- else
|
11
|
+
%span#sign_up= link_to 'Sign up', [ :new, :user ]
|
12
|
+
%span#sign_in= link_to 'Sign in', [ :new, :session ]
|
@@ -0,0 +1,6 @@
|
|
1
|
+
-# Partial to include CSS stylesheet files in the HTML head.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
= stylesheet_link_tag("lib/poshytip/tip-deepgray/tip-deepgray.css", 'lib/ui-lightness/jquery-ui-1.8.5.custom.css', 'lib/jquery-ui-timepicker-addon.css', :media => 'screen', :cache => 'lib')
|
5
|
+
= stylesheet_link_tag('screen', :media => 'screen')
|
6
|
+
= stylesheet_link_tag('print', :media => 'print')
|
@@ -0,0 +1,30 @@
|
|
1
|
+
-# The main application layout which is wrapped around every view.
|
2
|
+
-# origin: RM
|
3
|
+
!!!
|
4
|
+
%html
|
5
|
+
%head
|
6
|
+
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
|
7
|
+
%meta{:content => "en", "http-equiv" => "Content-Language"}/
|
8
|
+
%meta{:'http-equiv' => 'X-UA-Compatible', :content => 'IE=EmulateIE7'}/
|
9
|
+
= csrf_meta_tag
|
10
|
+
%title= APPLICATION_TITLE
|
11
|
+
= render 'layouts/stylesheets'
|
12
|
+
= render 'layouts/javascripts'
|
13
|
+
%body{:id => yield(:body_id)}
|
14
|
+
#container
|
15
|
+
#head
|
16
|
+
#head_inner
|
17
|
+
.viewport
|
18
|
+
#site_name= link_to APPLICATION_TITLE, root_path
|
19
|
+
= render 'layouts/session_navigation'
|
20
|
+
= clear
|
21
|
+
= render 'layouts/notifications'
|
22
|
+
= render_navigation Navigation.main
|
23
|
+
= yield(:page_head)
|
24
|
+
= render 'layouts/flashes'
|
25
|
+
#main
|
26
|
+
#main_inner
|
27
|
+
#page
|
28
|
+
= yield
|
29
|
+
= render 'layouts/javascript_requirement'
|
30
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
-# View to display the list of members, the member search form and its search results.
|
2
|
+
-# origin: M
|
3
|
+
|
4
|
+
- form_for @member_search, :url => [ :members ], :html => { :method => :get } do |form|
|
5
|
+
= form.spec_label :name
|
6
|
+
= form.text_field :name
|
7
|
+
= form.submit 'Search'
|
8
|
+
|
9
|
+
#list
|
10
|
+
- if @matching_users.present?
|
11
|
+
- form_tag request_friendships_members_path do
|
12
|
+
%table.grid
|
13
|
+
%tr
|
14
|
+
%th
|
15
|
+
%th User
|
16
|
+
%th Town
|
17
|
+
%th Country
|
18
|
+
- for user in @matching_users
|
19
|
+
%tr
|
20
|
+
%td.center
|
21
|
+
:ruby
|
22
|
+
request_id = "request_friendship_with_#{user.id}"
|
23
|
+
request_name = 'friendship_request[user_id][]'
|
24
|
+
- if current_user.can_become_friends_with? user
|
25
|
+
= spec_label_tag request_id, "Request contact with #{user.username}"
|
26
|
+
= check_box_tag request_name, user.id, false, :id => request_id
|
27
|
+
- else
|
28
|
+
= friendship_status user, true
|
29
|
+
%td= link_to current_user.name_for(user), user
|
30
|
+
%td= user.town
|
31
|
+
%td= user.country
|
32
|
+
- buttons do
|
33
|
+
%button{ :type => 'submit' }
|
34
|
+
= icon(:email, 'Send contact requests')
|
35
|
+
|
36
|
+
= pagination @matching_users
|
37
|
+
|
38
|
+
- else
|
39
|
+
%p.none
|
40
|
+
No users found.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
-# View to reset a user password after the user has forgotten her password, or wants to set her initial password
|
2
|
+
-# when her account was created by an admin.
|
3
|
+
-# origin: RM
|
4
|
+
|
5
|
+
%h1 Choose a password
|
6
|
+
%p
|
7
|
+
Please choose a new password for your account.
|
8
|
+
- form_for(@user, :url => password_path(:user_id => @user.id, :token => @user.confirmation_token), :html => { :method => :put }) do |form|
|
9
|
+
%dl
|
10
|
+
%dt
|
11
|
+
= form.label :password, "New password"
|
12
|
+
%dd
|
13
|
+
= form.error_message_on :password
|
14
|
+
= form.password_field :password
|
15
|
+
%dt
|
16
|
+
= form.label :password_confirmation
|
17
|
+
%dd
|
18
|
+
= form.error_message_on :password_confirmation
|
19
|
+
= form.password_field :password_confirmation
|
20
|
+
- buttons do
|
21
|
+
= form.submit "Save password", :disable_with => "Please wait..."
|
@@ -0,0 +1,14 @@
|
|
1
|
+
-# View to request a user password reset token after the user has forgotten her password.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
%h1 Reset your password
|
5
|
+
%p
|
6
|
+
Please fill in the e-mail address you are using for this application.
|
7
|
+
%br/
|
8
|
+
We will then send you instructions to reset your password.
|
9
|
+
- form_for :password, :url => password_path do |form|
|
10
|
+
%dl
|
11
|
+
%dt= form.label :email, "E-mail"
|
12
|
+
%dd= form.text_field :email
|
13
|
+
- buttons do
|
14
|
+
= form.submit "Request instructions", :disable_with => "Please wait..."
|
@@ -0,0 +1,19 @@
|
|
1
|
+
-# View to sign into the application.
|
2
|
+
-# origin: RM
|
3
|
+
|
4
|
+
= page_head :title => icon(:sign_in, 'Sign in')
|
5
|
+
|
6
|
+
%p
|
7
|
+
No account yet?
|
8
|
+
= link_to 'Sign up!', new_user_path
|
9
|
+
|
10
|
+
- form_for :session, :url => session_path do |form|
|
11
|
+
%dl
|
12
|
+
%dt= form.label :email, 'E-mail or username'
|
13
|
+
%dd= form.text_field :email, :value => params[:session].andand[:email], :tabindex => 1
|
14
|
+
%dt
|
15
|
+
= form.label :password, 'Password'
|
16
|
+
= help link_to('Forgot your password?', new_password_path, :tabindex => 4)
|
17
|
+
%dd= form.password_field :password, :tabindex => 2
|
18
|
+
- buttons do
|
19
|
+
= form.submit 'Sign in', :tabindex => 3
|