open_conference_ware 1.0.0.pre1
Sign up to get free protection for your applications and to get access to all the features.
- data.tar.gz.sig +0 -0
- data/.autotest +14 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +21 -0
- data/.rspec +1 -0
- data/.travis.yml +18 -0
- data/CHANGES.md +280 -0
- data/CONTRIBUTORS.markdown +17 -0
- data/Gemfile +21 -0
- data/Gemfile.lock +296 -0
- data/Guardfile +24 -0
- data/LICENSE.txt +23 -0
- data/README.markdown +173 -0
- data/Rakefile +27 -0
- data/TODO.txt +22 -0
- data/app/assets/images/open_conference_ware/accept.png +0 -0
- data/app/assets/images/open_conference_ware/arrow-left.png +0 -0
- data/app/assets/images/open_conference_ware/arrow-out.png +0 -0
- data/app/assets/images/open_conference_ware/arrow-right.png +0 -0
- data/app/assets/images/open_conference_ware/arrow-up.png +0 -0
- data/app/assets/images/open_conference_ware/arrow_refresh.png +0 -0
- data/app/assets/images/open_conference_ware/comment.png +0 -0
- data/app/assets/images/open_conference_ware/comment_edit.png +0 -0
- data/app/assets/images/open_conference_ware/delete.png +0 -0
- data/app/assets/images/open_conference_ware/disk.png +0 -0
- data/app/assets/images/open_conference_ware/document-blank.png +0 -0
- data/app/assets/images/open_conference_ware/document.png +0 -0
- data/app/assets/images/open_conference_ware/edit.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_01.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_05.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_05x16.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_21.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_23.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_24.png +0 -0
- data/app/assets/images/open_conference_ware/extras/001_29.png +0 -0
- data/app/assets/images/open_conference_ware/extras/01.png +0 -0
- data/app/assets/images/open_conference_ware/extras/05.png +0 -0
- data/app/assets/images/open_conference_ware/extras/06.png +0 -0
- data/app/assets/images/open_conference_ware/extras/1.png +0 -0
- data/app/assets/images/open_conference_ware/extras/14.png +0 -0
- data/app/assets/images/open_conference_ware/extras/16.png +0 -0
- data/app/assets/images/open_conference_ware/extras/2.png +0 -0
- data/app/assets/images/open_conference_ware/extras/21.png +0 -0
- data/app/assets/images/open_conference_ware/extras/28.png +0 -0
- data/app/assets/images/open_conference_ware/extras/3.png +0 -0
- data/app/assets/images/open_conference_ware/extras/31.png +0 -0
- data/app/assets/images/open_conference_ware/extras/32.png +0 -0
- data/app/assets/images/open_conference_ware/extras/35.png +0 -0
- data/app/assets/images/open_conference_ware/extras/36.png +0 -0
- data/app/assets/images/open_conference_ware/extras/4.png +0 -0
- data/app/assets/images/open_conference_ware/extras/44.png +0 -0
- data/app/assets/images/open_conference_ware/extras/45.png +0 -0
- data/app/assets/images/open_conference_ware/extras/46.png +0 -0
- data/app/assets/images/open_conference_ware/extras/cancel.png +0 -0
- data/app/assets/images/open_conference_ware/extras/cancelx16.png +0 -0
- data/app/assets/images/open_conference_ware/extras/icon.trashcan.gif +0 -0
- data/app/assets/images/open_conference_ware/favorite.png +0 -0
- data/app/assets/images/open_conference_ware/feed.png +0 -0
- data/app/assets/images/open_conference_ware/heart.png +0 -0
- data/app/assets/images/open_conference_ware/house.png +0 -0
- data/app/assets/images/open_conference_ware/ignite_portland_header3_clear.png +0 -0
- data/app/assets/images/open_conference_ware/ignite_portland_header3_clear_cropped.png +0 -0
- data/app/assets/images/open_conference_ware/jquery.wysiwyg.gif +0 -0
- data/app/assets/images/open_conference_ware/lock.png +0 -0
- data/app/assets/images/open_conference_ware/new_window.gif +0 -0
- data/app/assets/images/open_conference_ware/openid-icon.gif +0 -0
- data/app/assets/images/open_conference_ware/pencil.png +0 -0
- data/app/assets/images/open_conference_ware/plus.png +0 -0
- data/app/assets/images/open_conference_ware/quote.png +0 -0
- data/app/assets/images/open_conference_ware/rails.png +0 -0
- data/app/assets/images/open_conference_ware/redx.png +0 -0
- data/app/assets/images/open_conference_ware/reset-fff.png +0 -0
- data/app/assets/images/open_conference_ware/spinner-big.gif +0 -0
- data/app/assets/images/open_conference_ware/spinner.gif +0 -0
- data/app/assets/images/open_conference_ware/star.png +0 -0
- data/app/assets/images/open_conference_ware/tag_blue.png +0 -0
- data/app/assets/images/open_conference_ware/time.png +0 -0
- data/app/assets/javascripts/open_conference_ware/application.js +18 -0
- data/app/assets/javascripts/open_conference_ware/base.js +15 -0
- data/app/assets/javascripts/open_conference_ware/favorites.js +76 -0
- data/app/assets/javascripts/open_conference_ware/ie.js +2 -0
- data/app/assets/javascripts/open_conference_ware/menu.js +47 -0
- data/app/assets/javascripts/open_conference_ware/persona.js +10 -0
- data/app/assets/javascripts/open_conference_ware/proposals.js +208 -0
- data/app/assets/javascripts/open_conference_ware/schedule.js +20 -0
- data/app/assets/javascripts/open_conference_ware/spinner.js +11 -0
- data/app/assets/javascripts/open_conference_ware/util.js +23 -0
- data/app/assets/stylesheets/open_conference_ware/application.css +8 -0
- data/app/assets/stylesheets/open_conference_ware/common.css.scss +491 -0
- data/app/assets/stylesheets/open_conference_ware/custom.css.scss +1033 -0
- data/app/assets/stylesheets/open_conference_ware/scaffold.css +54 -0
- data/app/controllers/open_conference_ware/application_controller.rb +488 -0
- data/app/controllers/open_conference_ware/authentications_controller.rb +42 -0
- data/app/controllers/open_conference_ware/comments_controller.rb +86 -0
- data/app/controllers/open_conference_ware/events_controller.rb +36 -0
- data/app/controllers/open_conference_ware/manage/events_controller.rb +157 -0
- data/app/controllers/open_conference_ware/manage/snippets_controller.rb +110 -0
- data/app/controllers/open_conference_ware/proposals_controller.rb +521 -0
- data/app/controllers/open_conference_ware/rooms_controller.rb +130 -0
- data/app/controllers/open_conference_ware/schedule_items_controller.rb +128 -0
- data/app/controllers/open_conference_ware/selector_votes_controller.rb +71 -0
- data/app/controllers/open_conference_ware/session_types_controller.rb +123 -0
- data/app/controllers/open_conference_ware/tracks_controller.rb +118 -0
- data/app/controllers/open_conference_ware/user_favorites_controller.rb +68 -0
- data/app/controllers/open_conference_ware/users_controller.rb +120 -0
- data/app/helpers/open_conference_ware/application_helper.rb +167 -0
- data/app/helpers/open_conference_ware/authentications_helper.rb +25 -0
- data/app/helpers/open_conference_ware/cache_if_helper.rb +13 -0
- data/app/helpers/open_conference_ware/display_link_to_helper.rb +25 -0
- data/app/helpers/open_conference_ware/display_textile_for_helper.rb +11 -0
- data/app/helpers/open_conference_ware/field_annotation_helper.rb +11 -0
- data/app/helpers/open_conference_ware/focus_helper.rb +16 -0
- data/app/helpers/open_conference_ware/localcss_helper.rb +10 -0
- data/app/helpers/open_conference_ware/page_title_helper.rb +17 -0
- data/app/helpers/open_conference_ware/proposals_helper.rb +54 -0
- data/app/helpers/open_conference_ware/rooms_helper.rb +5 -0
- data/app/helpers/open_conference_ware/scroll_to_helper.rb +15 -0
- data/app/helpers/open_conference_ware/session_types_helper.rb +5 -0
- data/app/helpers/open_conference_ware/snippets_helper.rb +36 -0
- data/app/helpers/open_conference_ware/time_range_helper.rb +198 -0
- data/app/helpers/open_conference_ware/tracks_helper.rb +9 -0
- data/app/helpers/open_conference_ware/user_favorites_helper.rb +15 -0
- data/app/mailers/open_conference_ware/speaker_mailer.rb +51 -0
- data/app/mixins/open_conference_ware/breadcrumbs_mixin.rb +76 -0
- data/app/mixins/open_conference_ware/cache_lookups_mixin.rb +128 -0
- data/app/mixins/open_conference_ware/faux_routes_mixin.rb +83 -0
- data/app/mixins/open_conference_ware/normalize_url_mixin.rb +40 -0
- data/app/mixins/open_conference_ware/public_attributes_mixin.rb +62 -0
- data/app/mixins/open_conference_ware/schedule_overlaps_mixin.rb +12 -0
- data/app/mixins/open_conference_ware/settings_checkers_mixin.rb +50 -0
- data/app/mixins/open_conference_ware/simple_slug_mixin.rb +26 -0
- data/app/models/open_conference_ware/authentication.rb +47 -0
- data/app/models/open_conference_ware/base.rb +6 -0
- data/app/models/open_conference_ware/comment.rb +26 -0
- data/app/models/open_conference_ware/event.rb +227 -0
- data/app/models/open_conference_ware/proposal.rb +625 -0
- data/app/models/open_conference_ware/room.rb +42 -0
- data/app/models/open_conference_ware/schedule.rb +216 -0
- data/app/models/open_conference_ware/schedule_item.rb +55 -0
- data/app/models/open_conference_ware/selector_vote.rb +22 -0
- data/app/models/open_conference_ware/session_type.rb +33 -0
- data/app/models/open_conference_ware/snippet.rb +58 -0
- data/app/models/open_conference_ware/track.rb +51 -0
- data/app/models/open_conference_ware/user.rb +262 -0
- data/app/models/open_conference_ware/user_favorite.rb +42 -0
- data/app/observers/open_conference_ware/cache_watcher.rb +42 -0
- data/app/views/layouts/open_conference_ware/_header.html.erb +106 -0
- data/app/views/layouts/open_conference_ware/application.atom.erb +1 -0
- data/app/views/layouts/open_conference_ware/application.html.erb +126 -0
- data/app/views/layouts/open_conference_ware/scaffold.html.erb +21 -0
- data/app/views/open_conference_ware/404.html.erb +8 -0
- data/app/views/open_conference_ware/422.html.erb +11 -0
- data/app/views/open_conference_ware/500.html.erb +11 -0
- data/app/views/open_conference_ware/_email_link.html.erb +24 -0
- data/app/views/open_conference_ware/_google_analytics.html.erb +9 -0
- data/app/views/open_conference_ware/authentications/_developer.html.erb +7 -0
- data/app/views/open_conference_ware/authentications/_openid.html.erb +11 -0
- data/app/views/open_conference_ware/authentications/_persona.html.erb +17 -0
- data/app/views/open_conference_ware/authentications/sign_in.html.erb +12 -0
- data/app/views/open_conference_ware/comments/_list.html.erb +31 -0
- data/app/views/open_conference_ware/comments/index.atom.builder +25 -0
- data/app/views/open_conference_ware/comments/index.html.erb +3 -0
- data/app/views/open_conference_ware/events/index.html.erb +9 -0
- data/app/views/open_conference_ware/events/show.html.erb +0 -0
- data/app/views/open_conference_ware/events/speakers.html.erb +7 -0
- data/app/views/open_conference_ware/manage/events/_form.html.erb +107 -0
- data/app/views/open_conference_ware/manage/events/edit.html.erb +3 -0
- data/app/views/open_conference_ware/manage/events/index.html.erb +41 -0
- data/app/views/open_conference_ware/manage/events/new.html.erb +3 -0
- data/app/views/open_conference_ware/manage/events/proposals.html.erb +133 -0
- data/app/views/open_conference_ware/manage/events/show.html.erb +181 -0
- data/app/views/open_conference_ware/manage/snippets/_form.html.erb +30 -0
- data/app/views/open_conference_ware/manage/snippets/edit.html.erb +3 -0
- data/app/views/open_conference_ware/manage/snippets/index.html.erb +34 -0
- data/app/views/open_conference_ware/manage/snippets/new.html.erb +3 -0
- data/app/views/open_conference_ware/manage/snippets/show.html.erb +32 -0
- data/app/views/open_conference_ware/proposals/_admin_controls.html.erb +33 -0
- data/app/views/open_conference_ware/proposals/_form.html.erb +381 -0
- data/app/views/open_conference_ware/proposals/_list.html.erb +164 -0
- data/app/views/open_conference_ware/proposals/_list_concise.html.erb +93 -0
- data/app/views/open_conference_ware/proposals/_manage_speakers.html.erb +30 -0
- data/app/views/open_conference_ware/proposals/_room_control.html.erb +21 -0
- data/app/views/open_conference_ware/proposals/_schedule_block.html.erb +8 -0
- data/app/views/open_conference_ware/proposals/_schedule_control.html.erb +13 -0
- data/app/views/open_conference_ware/proposals/_search_speakers.html.erb +20 -0
- data/app/views/open_conference_ware/proposals/_sub_list.html.erb +65 -0
- data/app/views/open_conference_ware/proposals/_sub_list_for_kind.html.erb +31 -0
- data/app/views/open_conference_ware/proposals/_transition_control.html.erb +16 -0
- data/app/views/open_conference_ware/proposals/create.html.erb +29 -0
- data/app/views/open_conference_ware/proposals/edit.html.erb +7 -0
- data/app/views/open_conference_ware/proposals/index.atom.builder +63 -0
- data/app/views/open_conference_ware/proposals/index.html.erb +46 -0
- data/app/views/open_conference_ware/proposals/new.html.erb +3 -0
- data/app/views/open_conference_ware/proposals/schedule.html.erb +108 -0
- data/app/views/open_conference_ware/proposals/sessions_index_terse.html.erb +22 -0
- data/app/views/open_conference_ware/proposals/show.html.erb +316 -0
- data/app/views/open_conference_ware/proposals/stats.html.erb +72 -0
- data/app/views/open_conference_ware/rooms/_form.html.erb +36 -0
- data/app/views/open_conference_ware/rooms/edit.html.erb +3 -0
- data/app/views/open_conference_ware/rooms/index.html.erb +13 -0
- data/app/views/open_conference_ware/rooms/new.html.erb +3 -0
- data/app/views/open_conference_ware/rooms/show.html.erb +27 -0
- data/app/views/open_conference_ware/schedule_items/_form.html.erb +35 -0
- data/app/views/open_conference_ware/schedule_items/edit.html.erb +3 -0
- data/app/views/open_conference_ware/schedule_items/index.html.erb +31 -0
- data/app/views/open_conference_ware/schedule_items/new.html.erb +3 -0
- data/app/views/open_conference_ware/schedule_items/show.html.erb +30 -0
- data/app/views/open_conference_ware/selector_votes/index.html.erb +81 -0
- data/app/views/open_conference_ware/session_types/_form.html.erb +23 -0
- data/app/views/open_conference_ware/session_types/edit.html.erb +3 -0
- data/app/views/open_conference_ware/session_types/index.html.erb +18 -0
- data/app/views/open_conference_ware/session_types/new.html.erb +3 -0
- data/app/views/open_conference_ware/session_types/show.html.erb +14 -0
- data/app/views/open_conference_ware/speaker_mailer/speaker_email.text.erb +14 -0
- data/app/views/open_conference_ware/tracks/_colors.css.erb +7 -0
- data/app/views/open_conference_ware/tracks/_form.html.erb +36 -0
- data/app/views/open_conference_ware/tracks/edit.html.erb +3 -0
- data/app/views/open_conference_ware/tracks/index.html.erb +25 -0
- data/app/views/open_conference_ware/tracks/new.html.erb +3 -0
- data/app/views/open_conference_ware/tracks/show.html.erb +19 -0
- data/app/views/open_conference_ware/user_favorites/index.html.erb +12 -0
- data/app/views/open_conference_ware/users/_account_box.html.erb +10 -0
- data/app/views/open_conference_ware/users/_block.html.erb +80 -0
- data/app/views/open_conference_ware/users/_list.html.erb +17 -0
- data/app/views/open_conference_ware/users/edit.html.erb +73 -0
- data/app/views/open_conference_ware/users/index.html.erb +28 -0
- data/app/views/open_conference_ware/users/new.html.erb +7 -0
- data/app/views/open_conference_ware/users/proposals.html.erb +24 -0
- data/app/views/open_conference_ware/users/show.html.erb +5 -0
- data/app/views/open_conference_ware/welcome/test.html.haml +8 -0
- data/bin/rails +8 -0
- data/ci/Gemfile.ci +13 -0
- data/ci/copy_database_config.rb +6 -0
- data/ci/database.mysql.yml +5 -0
- data/ci/database.postgresql.yml +4 -0
- data/ci/database.sqlite.yml +5 -0
- data/config/initializers/acts_as_taggable_on.rb +2 -0
- data/config/initializers/date_time_formats.rb +9 -0
- data/config/routes.rb +74 -0
- data/db/migrate/20131203235128_create_open_conference_ware_authentications.rb +14 -0
- data/db/migrate/20131203235216_create_open_conference_ware_comments.rb +14 -0
- data/db/migrate/20131203235418_create_open_conference_ware_events.rb +27 -0
- data/db/migrate/20131203235524_create_open_conference_ware_proposals.rb +36 -0
- data/db/migrate/20131203235723_create_open_conference_ware_rooms.rb +20 -0
- data/db/migrate/20131203235831_create_open_conference_ware_schedule_items.rb +18 -0
- data/db/migrate/20131203235910_create_open_conference_ware_selector_votes.rb +10 -0
- data/db/migrate/20131203235934_create_open_conference_ware_session_types.rb +14 -0
- data/db/migrate/20131204000008_create_open_conference_ware_snippets.rb +15 -0
- data/db/migrate/20131204000048_create_open_conference_ware_taggings.rb +16 -0
- data/db/migrate/20131204000129_create_open_conference_ware_tags.rb +7 -0
- data/db/migrate/20131204000147_create_open_conference_ware_tracks.rb +15 -0
- data/db/migrate/20131204000230_create_open_conference_ware_user_favorites.rb +10 -0
- data/db/migrate/20131204000251_create_open_conference_ware_users.rb +24 -0
- data/db/migrate/20131204000355_create_proposals_users_join_table.rb +8 -0
- data/db/seeds.rb +31 -0
- data/features/comment_create.feature +9 -0
- data/features/comment_destroy.feature +22 -0
- data/features/comment_new.feature +22 -0
- data/features/step_definitions/authentication_steps.rb +22 -0
- data/features/step_definitions/comment_create_steps.rb +5 -0
- data/features/step_definitions/comment_destroy_steps.rb +13 -0
- data/features/step_definitions/comment_new_steps.rb +41 -0
- data/features/step_definitions/notification_steps.rb +3 -0
- data/features/step_definitions/web_steps.rb +263 -0
- data/features/support/env.rb +58 -0
- data/features/support/helpers.rb +17 -0
- data/features/support/paths.rb +35 -0
- data/gem-public_cert.pem +22 -0
- data/lib/defer_proxy.rb +127 -0
- data/lib/ext/color_rgb_serializer_fix.rb +18 -0
- data/lib/ext/string_possessiveize.rb +7 -0
- data/lib/ext/vpim_icalendar_extra_properties.rb +25 -0
- data/lib/generators/open_conference_ware/install/USAGE +12 -0
- data/lib/generators/open_conference_ware/install/install_generator.rb +35 -0
- data/lib/generators/open_conference_ware/install/templates/config_initializer.rb +110 -0
- data/lib/generators/open_conference_ware/install/templates/omniauth_initializer.rb +33 -0
- data/lib/open_conference_ware.rb +156 -0
- data/lib/open_conference_ware/dependencies.rb +38 -0
- data/lib/open_conference_ware/engine.rb +38 -0
- data/lib/open_conference_ware/omni_auth_builder.rb +8 -0
- data/lib/open_conference_ware/version.rb +3 -0
- data/lib/rwikibot_page_drone.rb +70 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/audio.rake +53 -0
- data/lib/tasks/cucumber.rake +65 -0
- data/lib/tasks/export.rake +170 -0
- data/lib/tasks/mediawiki.rake +96 -0
- data/lib/tasks/open_conference_ware_tasks.rake +16 -0
- data/lib/tasks/schedule.rake +103 -0
- data/lib/tasks/snippets.rake +23 -0
- data/open_conference_ware.gemspec +67 -0
- data/original_graphics/favorite.psd +0 -0
- data/spec/controllers/open_conference_ware/application_controller_spec.rb +309 -0
- data/spec/controllers/open_conference_ware/authentications_controller_spec.rb +87 -0
- data/spec/controllers/open_conference_ware/comments_controller_spec.rb +146 -0
- data/spec/controllers/open_conference_ware/events_controller_spec.rb +102 -0
- data/spec/controllers/open_conference_ware/manage_events_controller_spec.rb +103 -0
- data/spec/controllers/open_conference_ware/proposals_controller_spec.rb +1273 -0
- data/spec/controllers/open_conference_ware/rooms_controller_spec.rb +190 -0
- data/spec/controllers/open_conference_ware/selector_votes_controller_spec.rb +263 -0
- data/spec/controllers/open_conference_ware/session_types_controller_spec.rb +190 -0
- data/spec/controllers/open_conference_ware/sessions_routing_spec.rb +13 -0
- data/spec/controllers/open_conference_ware/tracks_controller_spec.rb +190 -0
- data/spec/controllers/open_conference_ware/user_favorites_controller_spec.rb +127 -0
- data/spec/controllers/open_conference_ware/users_controller_spec.rb +166 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/images/.keep +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/controllers/concerns/.keep +0 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.keep +0 -0
- data/spec/dummy/app/models/.keep +0 -0
- data/spec/dummy/app/models/concerns/.keep +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +30 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/01_open_conference_ware.rb +110 -0
- data/spec/dummy/config/initializers/02_omniauth.rb +17 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/schema.rb +219 -0
- data/spec/dummy/db/seeds.rb +10 -0
- data/spec/dummy/lib/assets/.keep +0 -0
- data/spec/dummy/log/.keep +0 -0
- data/spec/dummy/public/404.html +58 -0
- data/spec/dummy/public/422.html +58 -0
- data/spec/dummy/public/500.html +57 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/authentication_factory.rb +16 -0
- data/spec/factories/common_factory.rb +4 -0
- data/spec/factories/event_factory.rb +26 -0
- data/spec/factories/proposal_factory.rb +57 -0
- data/spec/factories/proposal_user_factory.rb +7 -0
- data/spec/factories/room_factory.rb +11 -0
- data/spec/factories/schedule_item_factory.rb +13 -0
- data/spec/factories/session_types_factory.rb +10 -0
- data/spec/factories/snippet_factory.rb +7 -0
- data/spec/factories/track_factory.rb +12 -0
- data/spec/factories/user_factory.rb +22 -0
- data/spec/factories/user_favorite_factory.rb +7 -0
- data/spec/features/sign_in_spec.rb +11 -0
- data/spec/features/snippets_spec.rb +38 -0
- data/spec/fixtures/open_conference_ware_comments.yml +27 -0
- data/spec/fixtures/open_conference_ware_events.yml +56 -0
- data/spec/fixtures/open_conference_ware_proposals.yml +256 -0
- data/spec/fixtures/open_conference_ware_rooms.yml +13 -0
- data/spec/fixtures/open_conference_ware_schedule_items.yml +23 -0
- data/spec/fixtures/open_conference_ware_session_types.yml +19 -0
- data/spec/fixtures/open_conference_ware_snippets.yml +62 -0
- data/spec/fixtures/open_conference_ware_tracks.yml +65 -0
- data/spec/fixtures/open_conference_ware_user_favorites.yml +7 -0
- data/spec/fixtures/open_conference_ware_users.yml +87 -0
- data/spec/helpers/open_conference_ware/application_helper_spec.rb +58 -0
- data/spec/helpers/open_conference_ware/authentications_helper_spec.rb +15 -0
- data/spec/helpers/open_conference_ware/display_link_to_helper_spec.rb +52 -0
- data/spec/helpers/open_conference_ware/proposals_helper_spec.rb +32 -0
- data/spec/helpers/open_conference_ware/rooms_helper_spec.rb +11 -0
- data/spec/helpers/open_conference_ware/session_types_helper_spec.rb +15 -0
- data/spec/helpers/open_conference_ware/time_range_helper_spec.rb +56 -0
- data/spec/helpers/open_conference_ware/tracks_helper_spec.rb +11 -0
- data/spec/helpers/open_conference_ware/user_favorites_helper_spec.rb +11 -0
- data/spec/integration/open_conference_ware/cache_lookups_mixin_spec.rb +122 -0
- data/spec/mixins/open_conference_ware/normalize_url_mixin_spec.rb +65 -0
- data/spec/models/open_conference_ware/authentication_spec.rb +67 -0
- data/spec/models/open_conference_ware/event_spec.rb +211 -0
- data/spec/models/open_conference_ware/proposal_spec.rb +606 -0
- data/spec/models/open_conference_ware/room_spec.rb +14 -0
- data/spec/models/open_conference_ware/schedule_item_spec.rb +12 -0
- data/spec/models/open_conference_ware/schedule_spec.rb +358 -0
- data/spec/models/open_conference_ware/selector_vote_spec.rb +12 -0
- data/spec/models/open_conference_ware/session_type_spec.rb +15 -0
- data/spec/models/open_conference_ware/snippet_spec.rb +13 -0
- data/spec/models/open_conference_ware/speaker_mailer_spec.rb +91 -0
- data/spec/models/open_conference_ware/track_spec.rb +36 -0
- data/spec/models/open_conference_ware/user_favorite_spec.rb +41 -0
- data/spec/models/open_conference_ware/user_spec.rb +77 -0
- data/spec/ocw_config.rb +76 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +55 -0
- data/spec/spec_helper_customizations.rb +125 -0
- data/spec/support/add_all_helpers_to_view.rb +24 -0
- data/spec/support/authenticated_test_helper.rb +27 -0
- data/spec/support/fixture_shortcuts.rb +18 -0
- data/spec/support/omniauth.rb +34 -0
- data/spec/support/valid_params_extraction.rb +15 -0
- data/spec/views/open_conference_ware/proposals/_room_control.html.erb_spec.rb +23 -0
- data/spec/views/open_conference_ware/proposals/_transition_control.html.erb_spec.rb +14 -0
- data/spec/views/open_conference_ware/proposals/show.html.erb_spec.rb +128 -0
- data/spec/views/open_conference_ware/rooms/index.html.erb_spec.rb +19 -0
- data/spec/views/open_conference_ware/rooms/show.html.erb_spec.rb +15 -0
- data/spec/views/open_conference_ware/selector_votes/index.html.erb_spec.rb +41 -0
- data/spec/views/open_conference_ware/session_types/edit.html.erb_spec.rb +25 -0
- data/spec/views/open_conference_ware/session_types/index.html.erb_spec.rb +19 -0
- data/spec/views/open_conference_ware/session_types/new.html.erb_spec.rb +24 -0
- data/spec/views/open_conference_ware/session_types/show.html.erb_spec.rb +18 -0
- data/spec/views/open_conference_ware/tracks/edit.html.erb_spec.rb +25 -0
- data/spec/views/open_conference_ware/tracks/index.html.erb_spec.rb +56 -0
- data/spec/views/open_conference_ware/tracks/new.html.erb_spec.rb +26 -0
- data/spec/views/open_conference_ware/tracks/show.html.erb_spec.rb +23 -0
- data/spec/views/open_conference_ware/user_favorites/index.html.erb_spec.rb +29 -0
- data/spec/views/open_conference_ware/users/index_spec.rb +24 -0
- data/util/add_id3_tags_to_mp3.rb +57 -0
- data/util/schedule_demo.rb +36 -0
- data/util/seed_schedule.rb +61 -0
- data/util/sessions_to_lanyrd.rb +166 -0
- data/util/transfer_schedule_items.rb +25 -0
- data/util/update_proposal_status_from_voting_spreadsheet.rb +26 -0
- data/util/user_favorites_contention_report.rb +42 -0
- data/util/user_favorites_contention_report.sh +9 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.eot +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.svg +228 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/vendor/assets/fonts/glyphicons-halflings-regular.woff +0 -0
- data/vendor/assets/images/farbtastic/marker.png +0 -0
- data/vendor/assets/images/farbtastic/mask.png +0 -0
- data/vendor/assets/images/farbtastic/wheel.png +0 -0
- data/vendor/assets/images/idselector/aol.ico +0 -0
- data/vendor/assets/images/idselector/arrow.gif +0 -0
- data/vendor/assets/images/idselector/arrow_white_back.png +0 -0
- data/vendor/assets/images/idselector/arrow_white_forward.png +0 -0
- data/vendor/assets/images/idselector/blogger.ico +0 -0
- data/vendor/assets/images/idselector/claimid.ico +0 -0
- data/vendor/assets/images/idselector/flickr.ico +0 -0
- data/vendor/assets/images/idselector/google.ico +0 -0
- data/vendor/assets/images/idselector/lj.ico +0 -0
- data/vendor/assets/images/idselector/myopenid.ico +0 -0
- data/vendor/assets/images/idselector/openid.ico +0 -0
- data/vendor/assets/images/idselector/technorati.ico +0 -0
- data/vendor/assets/images/idselector/verisign.ico +0 -0
- data/vendor/assets/images/idselector/vidoop2.ico +0 -0
- data/vendor/assets/images/idselector/vox.ico +0 -0
- data/vendor/assets/images/idselector/yahoo.ico +0 -0
- data/vendor/assets/javascripts/audiojs/audio.min.js +23 -0
- data/vendor/assets/javascripts/audiojs/audiojs.swf +0 -0
- data/vendor/assets/javascripts/audiojs/player-graphics.gif +0 -0
- data/vendor/assets/javascripts/bootstrap.js +1999 -0
- data/vendor/assets/javascripts/farbtastic.js +329 -0
- data/vendor/assets/javascripts/html5shiv.js +8 -0
- data/vendor/assets/javascripts/idselector.js +538 -0
- data/vendor/assets/javascripts/idselector~original.js +532 -0
- data/vendor/assets/javascripts/jquery-migrate-1.2.1.js +521 -0
- data/vendor/assets/javascripts/jquery.localScroll.js +106 -0
- data/vendor/assets/javascripts/jquery.scrollTo.js +174 -0
- data/vendor/assets/javascripts/respond.min.js +6 -0
- data/vendor/assets/stylesheets/bootstrap-theme.css +384 -0
- data/vendor/assets/stylesheets/bootstrap.css +6805 -0
- data/vendor/assets/stylesheets/farbtastic.css.scss +38 -0
- data/vendor/assets/stylesheets/persona-buttons.css +229 -0
- data/vendor/assets/stylesheets/reset-fonts-grids.css +7 -0
- metadata +1174 -0
- metadata.gz.sig +0 -0
data/gem-public_cert.pem
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDkjCCAnqgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQwwCgYDVQQDDANnZW0x
|
3
|
+
IjAgBgoJkiaJk/IsZAEZFhJvcGVuY29uZmVyZW5jZXdhcmUxEzARBgoJkiaJk/Is
|
4
|
+
ZAEZFgNvcmcwHhcNMTMxMjEyMDIyNjM5WhcNMTQxMjEyMDIyNjM5WjBHMQwwCgYD
|
5
|
+
VQQDDANnZW0xIjAgBgoJkiaJk/IsZAEZFhJvcGVuY29uZmVyZW5jZXdhcmUxEzAR
|
6
|
+
BgoJkiaJk/IsZAEZFgNvcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
7
|
+
AQCrKCjMparnINUvpDuhwIUffdTrCmiqSbstrUKz58mshYWqhJNbq8LLJvfxW+Np
|
8
|
+
DWNMj6UgQTHIIv9r3qSb+FptleTwhFCHkymdeie6fARiB3t7eyKUXOqkKACrFPC1
|
9
|
+
yTsBIhNjnVIWceuwskdH6kq9d0je9MUy3GH27U4x4UwvZ+zhWFyEbax7sIwYmTkG
|
10
|
+
iF0vj1NF4FZcGJMJ8QaQz2Y0eDNcEI9ISmuddNU6YKaXOFcBraIh1IW6XNXgPeAh
|
11
|
+
59NrSYUfZGMtpXnTsGpDbBNF+QDz8WNJKLB+EpYmbuMZxrQSBKGw7DCf4KbZlKBF
|
12
|
+
hDMrAJbHMcCqB98z4LbsGb9NAgMBAAGjgYgwgYUwCQYDVR0TBAIwADALBgNVHQ8E
|
13
|
+
BAMCBLAwHQYDVR0OBBYEFOJQecIZy19aGG/NCAzUKmUvEDzhMCUGA1UdEQQeMByB
|
14
|
+
GmdlbUBvcGVuY29uZmVyZW5jZXdhcmUub3JnMCUGA1UdEgQeMByBGmdlbUBvcGVu
|
15
|
+
Y29uZmVyZW5jZXdhcmUub3JnMA0GCSqGSIb3DQEBBQUAA4IBAQBiKvbxnIBzzbsV
|
16
|
+
ryx8JpM1pDK9DOw80GD4Kq/LoKeJYq5VtVomHHcEX0Rh7xAXHvMQ/8CSkukIrL/T
|
17
|
+
sbYUZsokm5OtEgL2vX7fov41UtjFeKbrJKmcX14PiDFT8CHDUoEhCU8ExNPNcysa
|
18
|
+
jMcibSoXrceNHSW4ricYcgaGlAGfZM4mt6/T5OESUngpqMJhBf1v20yg/jdm0aAm
|
19
|
+
mT62ObTTt1RZISVE9N2Pl+IFFrUHbHo2nfwZOb1o9Zf/3+oudJ8X3B7mh0S4paOk
|
20
|
+
TRyJkJYSUkgdnAFMIkY6+/N+TH5gA0PxvBsQ2XxTonoWJrQtFkkgdEuYrMQSWXyf
|
21
|
+
1C3tWJJ9
|
22
|
+
-----END CERTIFICATE-----
|
data/lib/defer_proxy.rb
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
# = DeferProxy
|
2
|
+
#
|
3
|
+
# Create a proxy for lazy-loading objects.
|
4
|
+
#
|
5
|
+
# == Example for Ruby
|
6
|
+
#
|
7
|
+
# In the example below, we create an @array variable that behaves just like an
|
8
|
+
# Array instance, but is actually a proxy that will return array content. The
|
9
|
+
# proxy materialies this content the first time that an instance method is
|
10
|
+
# called on it:
|
11
|
+
#
|
12
|
+
# # Create a proxy using either the DeferProxy class or Defer method:
|
13
|
+
# @array = DeferProxy.new { p "zzz"; sleep 1; p "yawn"; [1,2,3] }
|
14
|
+
# @array = Defer { p "zzz"; sleep 1; p "yawn"; [1,2,3] }
|
15
|
+
#
|
16
|
+
# # Access proxy to materialize results, it will execute slowly:
|
17
|
+
# @array.size
|
18
|
+
# # "zzz"
|
19
|
+
# # "yawn"
|
20
|
+
# # => 3
|
21
|
+
#
|
22
|
+
# # Access proxy again, it will return materialized results immediately:
|
23
|
+
# @array.size
|
24
|
+
# # => 3
|
25
|
+
#
|
26
|
+
# == Example for Rails
|
27
|
+
#
|
28
|
+
# Deferred-instantiation proxies are useful in Rails applications because they
|
29
|
+
# help avoid slow operations while preserving MVC encapsulation.
|
30
|
+
#
|
31
|
+
# In the example below, the +Record+ class has a ::slow_operation method that
|
32
|
+
# we wish to avoid calling if possible. We create a proxy called @records in
|
33
|
+
# the #index controller action to describe how to fetch data. The view then
|
34
|
+
# uses the @records object within a #cache block that captures HTML emitted
|
35
|
+
# within that scope. If the view finds the fragment cache for this block, then
|
36
|
+
# the @records proxy object will never be used and the ::slow_operation never
|
37
|
+
# called, thus making the action much faster.
|
38
|
+
#
|
39
|
+
# # Model
|
40
|
+
# class Record < ActiveRecord::Base
|
41
|
+
# def self.slow_operation
|
42
|
+
# puts "Performing slow operation...."
|
43
|
+
# sleep 3
|
44
|
+
# puts "Completed slow operation!"
|
45
|
+
# return [1,2,3]
|
46
|
+
# end
|
47
|
+
# end
|
48
|
+
#
|
49
|
+
# # Action
|
50
|
+
# def index
|
51
|
+
# @records = Defer { Record.slow_operation }
|
52
|
+
# end
|
53
|
+
#
|
54
|
+
# # View
|
55
|
+
# <% cache "record_index" do %>
|
56
|
+
# <%= @records.size %>
|
57
|
+
# <% end %>
|
58
|
+
class DeferProxy
|
59
|
+
# In order to proxy the most methods, remove this object's instance methods
|
60
|
+
# so that calls will be sent to #method_missing for forwarding.
|
61
|
+
instance_methods.each { |m| undef_method(m) unless m =~ /^__/ || m == :object_id }
|
62
|
+
|
63
|
+
# Create proxy that, when called, will return a value by callling the block.
|
64
|
+
def initialize(&block)
|
65
|
+
@__defer_proxy_callback = block
|
66
|
+
end
|
67
|
+
|
68
|
+
# Return true if asked if this is a kind of DeferProxy else fallback to
|
69
|
+
# +kind_of?+ behavior of proxied object.
|
70
|
+
def kind_of?(klass)
|
71
|
+
return(klass == DeferProxy || method_missing(:kind_of?, klass))
|
72
|
+
end
|
73
|
+
|
74
|
+
# Materialize the proxied object and call it.
|
75
|
+
def method_missing(name, *args, &block)
|
76
|
+
return(__materialize.send(name, *args, &block))
|
77
|
+
end
|
78
|
+
|
79
|
+
# Return the proxied object, materializing it if needed.
|
80
|
+
def __materialize(*args, &block)
|
81
|
+
return(@__defer_proxy_value ||= @__defer_proxy_callback.call(*args, &block))
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
# Return a DeferProxy instance for the given +block+.
|
86
|
+
def Defer(&block)
|
87
|
+
return DeferProxy.new(&block)
|
88
|
+
end
|
89
|
+
|
90
|
+
# Return the content of a value, be it a Defer or not.
|
91
|
+
def Undefer(value)
|
92
|
+
return value.kind_of?(DeferProxy) ? value.__materialize : value
|
93
|
+
end
|
94
|
+
|
95
|
+
# Self-test
|
96
|
+
if __FILE__ == $0
|
97
|
+
require 'test/unit'
|
98
|
+
class DeferProxyTest < Test::Unit::TestCase
|
99
|
+
def test_should_proxy_an_integer
|
100
|
+
assert_equal(1, Defer{1})
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_should_proxy_an_array
|
104
|
+
assert_equal([1,2,3], Defer{[1,2,3]}.map{|t| t})
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_should_proxy_an_array_for_use_with_map
|
108
|
+
assert_equal([1,2,3], Defer{[1,2,3]}.map{|t| t})
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_should_be_able_to_use_kind_of_on_proxied_object
|
112
|
+
assert(Defer{[1,2,3]}.kind_of?(Array))
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_should_be_able_to_use_kind_of_on_self
|
116
|
+
assert(Defer{[1,2,3]}.kind_of?(DeferProxy))
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_should_provide_access_to_proxied_object
|
120
|
+
assert_equal([1,2,3], Undefer(Defer{[1,2,3]}))
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_should_provide_access_to_proxied_object_thats_not_a_defer
|
124
|
+
assert(Undefer(Defer{[1,2,3]}).respond_to?(:__materialize) == false)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Vpim
|
2
|
+
class Icalendar
|
3
|
+
|
4
|
+
# The title of the calendar.
|
5
|
+
def title
|
6
|
+
@properties['X-WR-CALNAME']
|
7
|
+
end
|
8
|
+
|
9
|
+
# Sets the title of the calendar, displayed by some clients.
|
10
|
+
def title=(value)
|
11
|
+
@properties.push_unique DirectoryInfo::Field.create('X-WR-CALNAME', value)
|
12
|
+
end
|
13
|
+
|
14
|
+
# The time zone of the calendar
|
15
|
+
def time_zone
|
16
|
+
@properties['X-WR-TIMEZONE']
|
17
|
+
end
|
18
|
+
|
19
|
+
# Sets the time zone for entries of this calendar. (e.g. America/Los Angeles)
|
20
|
+
def time_zone=(value)
|
21
|
+
@properties.push_unique DirectoryInfo::Field.create('X-WR-TIMEZONE', value)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
Description:
|
2
|
+
Installs initializers to configure OpenConferenceWare
|
3
|
+
|
4
|
+
Example:
|
5
|
+
rails generate open_conference_ware:install /ocw
|
6
|
+
|
7
|
+
This will:
|
8
|
+
- create config/initializers/01_open_conference_ware.rb
|
9
|
+
- create config/initializers/02_omniauth.rb
|
10
|
+
- mount OpenConferenceWare at the given mount point (/ocw)
|
11
|
+
- set up OpenConferenceWare's seed data
|
12
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class OpenConferenceWare::InstallGenerator < Rails::Generators::Base
|
2
|
+
source_root File.expand_path('../templates', __FILE__)
|
3
|
+
|
4
|
+
argument :mount_point,
|
5
|
+
type: :string,
|
6
|
+
default: "/",
|
7
|
+
desc: "The path where OpenConferenceWare should be mounted",
|
8
|
+
banner: "MOUNT_POINT (Default: /)"
|
9
|
+
|
10
|
+
def copy_config_initializer
|
11
|
+
template "config_initializer.rb", "config/initializers/01_open_conference_ware.rb"
|
12
|
+
end
|
13
|
+
|
14
|
+
def copy_omniauth_initializer
|
15
|
+
copy_file "omniauth_initializer.rb", "config/initializers/02_omniauth.rb"
|
16
|
+
end
|
17
|
+
|
18
|
+
def mount_engine
|
19
|
+
route %Q{mount OpenConferenceWare::Engine => "#{mount_point}"}
|
20
|
+
end
|
21
|
+
|
22
|
+
def include_engine_seeds
|
23
|
+
append_to_file "db/seeds.rb" do
|
24
|
+
<<-SEED
|
25
|
+
|
26
|
+
# Include OpenConferenceWare's seed data
|
27
|
+
OpenConferenceWare::Engine.load_seed
|
28
|
+
SEED
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def run_setup_rake_task
|
33
|
+
rake "open_conference_ware:setup"
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# Edit this file to configure OpenConferenceWare's settings
|
2
|
+
|
3
|
+
OpenConferenceWare.configure do |config|
|
4
|
+
# The path where the OpenConferenceWare engine is mounted in your Rails app
|
5
|
+
# This default should work in most situations, but may need to be overridden
|
6
|
+
# in some cases with a string like "/open_conference_ware"
|
7
|
+
config.mount_point = '<%= mount_point %>'
|
8
|
+
|
9
|
+
# Event name, or organization running events:
|
10
|
+
config.organization = 'Open Source Bridge'
|
11
|
+
|
12
|
+
# Abbreviated name for use in URLs and proposal slugs.
|
13
|
+
config.organization_slug = 'osb'
|
14
|
+
|
15
|
+
# Top-level tagline or description.
|
16
|
+
config.tagline = 'The conference for open source citizens'
|
17
|
+
|
18
|
+
# What is the slug for the current event? E.g., if this is '2014' and the user
|
19
|
+
# visits the '/proposals' URI, then the system will try to lookup an Event with
|
20
|
+
# the '2012' slug and redirect to '/events/2012/proposals' if it's available.
|
21
|
+
#
|
22
|
+
# TODO: Setting the current event here is a short-term hack and will be replaced shortly with a Site record that tracks the current event in the database and provides a way to set it through an admin web UI.
|
23
|
+
# config.current_event_slug = '2012'
|
24
|
+
|
25
|
+
##[ OCW Features ]##
|
26
|
+
# Many features of OpenConferenceWare can be toggled via these settings
|
27
|
+
|
28
|
+
# Can people create proposals without logging in?
|
29
|
+
config.have_anonymous_proposals = false
|
30
|
+
|
31
|
+
# Do proposals have excerpts?
|
32
|
+
config.have_proposal_excerpts = true
|
33
|
+
|
34
|
+
# Do events have tracks?
|
35
|
+
config.have_event_tracks = true
|
36
|
+
|
37
|
+
# Do events have session types?
|
38
|
+
config.have_event_session_types = true
|
39
|
+
|
40
|
+
# Display events picker so user can pick between multiple events?
|
41
|
+
config.have_events_picker = false
|
42
|
+
|
43
|
+
# Are proposals associated with multiple presenters?
|
44
|
+
config.have_multiple_presenters = true
|
45
|
+
|
46
|
+
# Can people upload pictures of themselves?
|
47
|
+
config.have_user_pictures = true
|
48
|
+
|
49
|
+
# Is profile information, like biography, stored in the User record? Else stored in Proposal.
|
50
|
+
config.have_user_profiles = true
|
51
|
+
|
52
|
+
# Do events have rooms?
|
53
|
+
config.have_event_rooms = true
|
54
|
+
|
55
|
+
# Should a proposal ask for the submitter's speaking experience?
|
56
|
+
config.have_proposal_speaking_experience = true
|
57
|
+
|
58
|
+
# Can proposals have start times?
|
59
|
+
config.have_proposal_start_times = true
|
60
|
+
|
61
|
+
# Can proposals have statuses?
|
62
|
+
config.have_proposal_statuses = true
|
63
|
+
|
64
|
+
# Can users add comments until a toggle is flipped on the event?
|
65
|
+
config.have_event_proposal_comments_after_deadline = true
|
66
|
+
|
67
|
+
# What audience experience levels can a proposal be classified as?
|
68
|
+
# The list will be displayed on the form in the order defined below.
|
69
|
+
# The "slug" is the unique key defining the particular audience level, while
|
70
|
+
# the "label" is the human-readable value displayed.
|
71
|
+
#
|
72
|
+
# Set this to a blank array to disable audience levels
|
73
|
+
config.proposal_audience_levels ||= [
|
74
|
+
{slug: 'a', label: 'Beginner'},
|
75
|
+
{slug: 'b', label: 'Intermediate'},
|
76
|
+
{slug: 'c', label: 'Advanced'}
|
77
|
+
]
|
78
|
+
|
79
|
+
# What message is displayed as a hint to explain the audience level?
|
80
|
+
config.proposal_audience_level_hint = "(Tell us the intended audience experience level for this talk)"
|
81
|
+
|
82
|
+
##[ Session Notes ]##
|
83
|
+
#
|
84
|
+
# OCW can generate links to an external system, such as a wiki or an Etherpad
|
85
|
+
# instance, that provides a place for attendees to take notes.
|
86
|
+
|
87
|
+
# URL where OCW is installed
|
88
|
+
config.app_root_url = 'http://opensourcebridge.org/'
|
89
|
+
|
90
|
+
# URL of wiki with session notes (optional). This 'printf' format contains
|
91
|
+
# positional variables that filled by Proposal#session_notes_url:
|
92
|
+
# * %1 => site's public URL
|
93
|
+
# * %2 => parent OR event slug
|
94
|
+
# * %3 => event slug
|
95
|
+
# E.g., '%1$s%2$s/wiki/' may translate to 'http://my_site.com/my_parent_slug/wiki'
|
96
|
+
config.session_notes_url_format = '%1$swiki/%2$s/'
|
97
|
+
|
98
|
+
##[ Optional Settings ]##
|
99
|
+
|
100
|
+
# Policy agreement to show on the proposal form
|
101
|
+
# If an agreement is set, presenters will be required to agree in order to submit a proposal.
|
102
|
+
#
|
103
|
+
# config.agreement = 'I have reviewed and agree to the recording policy and code of conduct.'
|
104
|
+
|
105
|
+
# Breadcrumbs that are always visible, each breadcrumb is a name and URI:
|
106
|
+
# NOTE: The current default theme never displays any breadcrumbs, but infrastructure exists to support them.
|
107
|
+
#
|
108
|
+
# config.breadcrumbs = [['Home', 'http://openconferenceware.org']]
|
109
|
+
|
110
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
OmniAuth.config.path_prefix = OpenConferenceWare.mounted_path("auth")
|
2
|
+
|
3
|
+
Rails.application.config.middleware.use OpenConferenceWare::OmniAuthBuilder do
|
4
|
+
# Configure authentication providers for OpenConferenceWare
|
5
|
+
|
6
|
+
# The providers below are supported with built-in sign in forms.
|
7
|
+
#
|
8
|
+
# Additional providers can be found at:
|
9
|
+
# https://github.com/intridea/omniauth/wiki/List-of-Strategies
|
10
|
+
#
|
11
|
+
# When adding a new provider, it will be linked to from the sign in page.
|
12
|
+
#
|
13
|
+
# If you want to display a nicer form, just add a partial at
|
14
|
+
# /app/views/open_conference_ware/authentications/_<provider>.html.erb
|
15
|
+
#
|
16
|
+
# Providers will be shown on the sign in page in the order they are added.
|
17
|
+
|
18
|
+
# OpenID
|
19
|
+
# add 'omniauth-openid' to Gemfile and uncomment to enable OpenID
|
20
|
+
#
|
21
|
+
#require 'openid/store/filesystem'
|
22
|
+
#provider :openid, store: OpenID::Store::Filesystem.new(Rails.root.join('tmp'))
|
23
|
+
|
24
|
+
# Persona
|
25
|
+
# add 'omniauth-persona' to Gemfile and uncomment to enable Persona
|
26
|
+
#
|
27
|
+
#provider :persona
|
28
|
+
|
29
|
+
# Developer
|
30
|
+
# Used to provide easy authentication during development
|
31
|
+
provider :developer if %w[development preview].include?(Rails.env)
|
32
|
+
end
|
33
|
+
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require 'open_conference_ware/dependencies'
|
2
|
+
require "open_conference_ware/engine"
|
3
|
+
|
4
|
+
module OpenConferenceWare
|
5
|
+
def self.configure(&block)
|
6
|
+
yield(self)
|
7
|
+
end
|
8
|
+
|
9
|
+
# Engine Configuration
|
10
|
+
|
11
|
+
# Path where the OCW engine is mounted
|
12
|
+
mattr_accessor :mount_point
|
13
|
+
self.mount_point ||= "/"
|
14
|
+
|
15
|
+
def self.mounted_path(path)
|
16
|
+
"#{self.mount_point}/#{path}".gsub("//","/")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Secrets
|
20
|
+
mattr_accessor :email
|
21
|
+
|
22
|
+
# Email address of administrator that will get exception notifications
|
23
|
+
# and requests for assistance from users:
|
24
|
+
mattr_accessor :administrator_email
|
25
|
+
self.administrator_email ||= 'your@email.addr'
|
26
|
+
|
27
|
+
# Secret key for getting an ATOM feed of private comments:
|
28
|
+
mattr_accessor :comments_secret
|
29
|
+
self.comments_secret ||= '1234'
|
30
|
+
|
31
|
+
# Email
|
32
|
+
|
33
|
+
mattr_accessor :default_from_address
|
34
|
+
self.default_from_address ||= 'ocw@ocw.local'
|
35
|
+
|
36
|
+
mattr_accessor :default_bcc_address
|
37
|
+
|
38
|
+
# Settings
|
39
|
+
|
40
|
+
# Public URL of website:
|
41
|
+
mattr_accessor :public_url
|
42
|
+
self.public_url ||= 'http://ocw.local/'
|
43
|
+
|
44
|
+
# URL where OCW is installed
|
45
|
+
mattr_accessor :app_root_url
|
46
|
+
self.app_root_url ||= 'http://ocw.local/'
|
47
|
+
|
48
|
+
# Mailer host
|
49
|
+
mattr_accessor :mailer_host
|
50
|
+
self.mailer_host ||= 'ocw.local'
|
51
|
+
|
52
|
+
# URL of wiki with session notes (optional). This 'printf' format contains
|
53
|
+
# positional variables that filled by Proposal#session_notes_url:
|
54
|
+
# * %1 => site's public URL
|
55
|
+
# * %2 => parent OR event slug
|
56
|
+
# * %3 => event slug
|
57
|
+
# E.g., '%1$s%2$s/wiki/' may translate to 'http://my_site.com/my_parent_slug/wiki'
|
58
|
+
mattr_accessor :session_notes_url_format
|
59
|
+
|
60
|
+
# Organization running event:
|
61
|
+
mattr_accessor :organization
|
62
|
+
self.organization ||= 'Open Conference Ware'
|
63
|
+
|
64
|
+
# Abbreviated name for use in URLs and proposal slugs.
|
65
|
+
mattr_accessor :organization_slug
|
66
|
+
self.organization_slug ||= 'osb'
|
67
|
+
|
68
|
+
# Twitter account for the event (optional)
|
69
|
+
mattr_accessor :twitter
|
70
|
+
# self.twitter ||= 'openconferenceware'
|
71
|
+
|
72
|
+
# Top-level tagline or description.
|
73
|
+
mattr_accessor :tagline
|
74
|
+
self.tagline ||= 'A truly great event.'
|
75
|
+
|
76
|
+
# Aggreement to show on proposal pages. (optional)
|
77
|
+
mattr_accessor :agreement
|
78
|
+
#self.agreement ||= 'I have reviewed and agree to the recording policy and code of conduct.'
|
79
|
+
|
80
|
+
# Breadcrumbs that are always visible, each breadcrumb is a name and URI:
|
81
|
+
mattr_accessor :breadcrumbs
|
82
|
+
self.breadcrumbs ||= []
|
83
|
+
|
84
|
+
# What is the slug for the current event? E.g., if this is '2009' and the user visits the '/proposals' URI, then the system will try to lookup an Event with the '2009' slug and redirect to '/events/2009 proposals' if it's available.
|
85
|
+
mattr_accessor :current_event_slug
|
86
|
+
self.current_event_slug ||= '2013'
|
87
|
+
|
88
|
+
# Can people create proposals without logging in?
|
89
|
+
mattr_accessor :have_anonymous_proposals
|
90
|
+
self.have_anonymous_proposals ||= false
|
91
|
+
|
92
|
+
# Do proposals have excerpts?
|
93
|
+
mattr_accessor :have_proposal_excerpts
|
94
|
+
self.have_proposal_excerpts ||= true
|
95
|
+
|
96
|
+
# Do events have tracks?
|
97
|
+
mattr_accessor :have_event_tracks
|
98
|
+
self.have_event_tracks ||= true
|
99
|
+
|
100
|
+
# Do events have session types?
|
101
|
+
mattr_accessor :have_event_session_types
|
102
|
+
self.have_event_session_types ||= true
|
103
|
+
|
104
|
+
# Display events picker so user can pick between multiple events?
|
105
|
+
mattr_accessor :have_events_picker
|
106
|
+
self.have_events_picker ||= false
|
107
|
+
|
108
|
+
# Are proposals associated with multiple presenters?
|
109
|
+
mattr_accessor :have_multiple_presenters
|
110
|
+
self.have_multiple_presenters ||= true
|
111
|
+
|
112
|
+
# Can people upload pictures of themselves?
|
113
|
+
mattr_accessor :have_user_pictures
|
114
|
+
self.have_user_pictures ||= true
|
115
|
+
|
116
|
+
# Is profile information, like biography, stored in the User record? Else stored in Proposal.
|
117
|
+
mattr_accessor :have_user_profiles
|
118
|
+
self.have_user_profiles ||= true
|
119
|
+
|
120
|
+
# Do events have rooms?
|
121
|
+
mattr_accessor :have_event_rooms
|
122
|
+
self.have_event_rooms ||= true
|
123
|
+
|
124
|
+
# Should a proposal ask for the submitter's speaking experience?
|
125
|
+
mattr_accessor :have_proposal_speaking_experience
|
126
|
+
self.have_proposal_speaking_experience ||= true
|
127
|
+
|
128
|
+
# Can proposals have start times?
|
129
|
+
mattr_accessor :have_proposal_start_times
|
130
|
+
self.have_proposal_start_times ||= true
|
131
|
+
|
132
|
+
# Can proposals have statuses?
|
133
|
+
mattr_accessor :have_proposal_statuses
|
134
|
+
self.have_proposal_statuses ||= true
|
135
|
+
|
136
|
+
# Can users add comments until a toggle is flipped on the event?
|
137
|
+
mattr_accessor :have_event_proposal_comments_after_deadline
|
138
|
+
self.have_event_proposal_comments_after_deadline |= true
|
139
|
+
|
140
|
+
# What audience experience levels can a proposal be classified as? The list will be displayed on the form in the order defined below. The "slug" is the unique key defining the particular audience level, while the "label" is the human-readable value displayed.
|
141
|
+
mattr_accessor :proposal_audience_levels
|
142
|
+
self.proposal_audience_levels ||= [
|
143
|
+
{slug: 'a', label: 'Beginner'},
|
144
|
+
{slug: 'b', label: 'Intermediate'},
|
145
|
+
{slug: 'c', label: 'Advanced'}
|
146
|
+
]
|
147
|
+
|
148
|
+
# What message is displayed as a hint to explain the audience level?
|
149
|
+
mattr_accessor :proposal_audience_level_hint
|
150
|
+
self.proposal_audience_level_hint ||= "(Tell us the intended audience experience level for this talk)"
|
151
|
+
|
152
|
+
# Loaded authentication providers
|
153
|
+
mattr_accessor :auth_providers
|
154
|
+
self.auth_providers ||= []
|
155
|
+
end
|
156
|
+
|