calagator 0.0.1.pre1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +23 -0
- data/README.md +75 -0
- data/Rakefile +12 -0
- data/app/assets/images/confused-alligator-sm.png +0 -0
- data/app/assets/images/disk.png +0 -0
- data/app/assets/images/edit.png +0 -0
- data/app/assets/images/external_sites/epdx.png +0 -0
- data/app/assets/images/external_sites/external.gif +0 -0
- data/app/assets/images/external_sites/facebook.png +0 -0
- data/app/assets/images/external_sites/foursquare.png +0 -0
- data/app/assets/images/external_sites/gowalla.png +0 -0
- data/app/assets/images/external_sites/lanyrd.png +0 -0
- data/app/assets/images/external_sites/meetup.png +0 -0
- data/app/assets/images/external_sites/plancast.png +0 -0
- data/app/assets/images/external_sites/shizzow.png +0 -0
- data/app/assets/images/external_sites/upcoming.png +0 -0
- data/app/assets/images/external_sites/yelp.png +0 -0
- data/app/assets/images/feed.png +0 -0
- data/app/assets/images/heart.png +0 -0
- data/app/assets/images/icon_ical.gif +0 -0
- data/app/assets/images/information.png +0 -0
- data/app/assets/images/nav_marker.gif +0 -0
- data/app/assets/images/nav_marker.png +0 -0
- data/app/assets/images/plus.png +0 -0
- data/app/assets/images/redx.png +0 -0
- data/app/assets/images/site-icon.png +0 -0
- data/app/assets/images/spinner.gif +0 -0
- data/app/assets/images/star.png +0 -0
- data/app/assets/images/subnav_marker.gif +0 -0
- data/app/assets/images/subnav_marker.png +0 -0
- data/app/assets/images/tag_blue.png +0 -0
- data/app/assets/images/tag_icons/angular.png +0 -0
- data/app/assets/images/tag_icons/beer.png +0 -0
- data/app/assets/images/tag_icons/bitcoin.png +0 -0
- data/app/assets/images/tag_icons/free.png +0 -0
- data/app/assets/images/tag_icons/golang.png +0 -0
- data/app/assets/images/tag_icons/html.png +0 -0
- data/app/assets/images/tag_icons/javascript.png +0 -0
- data/app/assets/images/tag_icons/linux.png +0 -0
- data/app/assets/images/tag_icons/php.png +0 -0
- data/app/assets/images/tag_icons/pizza.png +0 -0
- data/app/assets/images/tag_icons/python.png +0 -0
- data/app/assets/images/tag_icons/rails.png +0 -0
- data/app/assets/images/tag_icons/ruby.png +0 -0
- data/app/assets/images/tag_icons/sass.png +0 -0
- data/app/assets/images/tag_icons/swift.png +0 -0
- data/app/assets/images/transmit_blue.png +0 -0
- data/app/assets/images/weekday_background.gif +0 -0
- data/app/assets/javascripts/calagator.js +18 -0
- data/app/assets/javascripts/calagator/forms.js +60 -0
- data/app/assets/stylesheets/calagator.scss +8 -0
- data/app/assets/stylesheets/calagator/common.scss +14 -0
- data/app/assets/stylesheets/calagator/datepicker.scss +177 -0
- data/app/assets/stylesheets/calagator/errors.css +110 -0
- data/app/assets/stylesheets/calagator/forms.scss +4 -0
- data/app/assets/stylesheets/calagator/reset.css +40 -0
- data/app/assets/stylesheets/calagator/theme.css +0 -0
- data/app/controllers/calagator/admin_controller.rb +27 -0
- data/app/controllers/calagator/application_controller.rb +82 -0
- data/app/controllers/calagator/events_controller.rb +171 -0
- data/app/controllers/calagator/site_controller.rb +35 -0
- data/app/controllers/calagator/sources_controller.rb +94 -0
- data/app/controllers/calagator/venues_controller.rb +133 -0
- data/app/controllers/calagator/versions_controller.rb +20 -0
- data/app/helpers/calagator/application_helper.rb +128 -0
- data/app/helpers/calagator/events_helper.rb +184 -0
- data/app/helpers/calagator/google_event_export_helper.rb +67 -0
- data/app/helpers/calagator/mapping_helper.rb +103 -0
- data/app/helpers/calagator/sources_helper.rb +10 -0
- data/app/helpers/calagator/tags_helper.rb +42 -0
- data/app/helpers/calagator/time_range_helper.rb +166 -0
- data/app/models/calagator/event.rb +246 -0
- data/app/models/calagator/event/cloner.rb +39 -0
- data/app/models/calagator/event/ical_renderer.rb +155 -0
- data/app/models/calagator/event/overview.rb +45 -0
- data/app/models/calagator/event/saver.rb +58 -0
- data/app/models/calagator/event/search.rb +72 -0
- data/app/models/calagator/event/search_engine.rb +28 -0
- data/app/models/calagator/event/search_engine/apache_sunspot.rb +106 -0
- data/app/models/calagator/event/search_engine/sql.rb +107 -0
- data/app/models/calagator/source.rb +115 -0
- data/app/models/calagator/source/importer.rb +46 -0
- data/app/models/calagator/source/parser.rb +128 -0
- data/app/models/calagator/source/parser/facebook.rb +67 -0
- data/app/models/calagator/source/parser/hcal.rb +108 -0
- data/app/models/calagator/source/parser/http_authentication_required_error.rb +6 -0
- data/app/models/calagator/source/parser/ical.rb +186 -0
- data/app/models/calagator/source/parser/meetup.rb +72 -0
- data/app/models/calagator/source/parser/not_found.rb +9 -0
- data/app/models/calagator/source/parser/plancast.rb +59 -0
- data/app/models/calagator/venue.rb +161 -0
- data/app/models/calagator/venue/geocoder.rb +51 -0
- data/app/models/calagator/venue/search.rb +63 -0
- data/app/models/calagator/venue/search_engine.rb +24 -0
- data/app/models/calagator/venue/search_engine/apache_sunspot.rb +85 -0
- data/app/models/calagator/venue/search_engine/sql.rb +68 -0
- data/app/models/event/search_engine/base.rb +0 -0
- data/app/observers/calagator/cache_observer.rb +37 -0
- data/app/views/calagator/admin/events.html.erb +28 -0
- data/app/views/calagator/admin/index.html.erb +8 -0
- data/app/views/calagator/events/_feed_item.html.erb +62 -0
- data/app/views/calagator/events/_form.html.erb +63 -0
- data/app/views/calagator/events/_gcal_reminder.html.erb +1 -0
- data/app/views/calagator/events/_hcal.html.erb +41 -0
- data/app/views/calagator/events/_item.html.erb +120 -0
- data/app/views/calagator/events/_list.html.erb +30 -0
- data/app/views/calagator/events/_list_item.html.erb +37 -0
- data/app/views/calagator/events/_search_section.html.erb +15 -0
- data/app/views/calagator/events/_subnav.html.erb +13 -0
- data/app/views/calagator/events/_table.html.erb +74 -0
- data/app/views/calagator/events/duplicates.html.erb +58 -0
- data/app/views/calagator/events/edit.html.erb +3 -0
- data/app/views/calagator/events/index.atom.builder +32 -0
- data/app/views/calagator/events/index.html.erb +51 -0
- data/app/views/calagator/events/index.kml.erb +20 -0
- data/app/views/calagator/events/new.html.erb +7 -0
- data/app/views/calagator/events/search.html.erb +25 -0
- data/app/views/calagator/events/show.html.erb +81 -0
- data/app/views/calagator/site/_appropriateness_message.html.erb +15 -0
- data/app/views/calagator/site/_description.html.erb +3 -0
- data/app/views/calagator/site/about.html.erb +7 -0
- data/app/views/calagator/site/defunct.html.erb +15 -0
- data/app/views/calagator/site/export.html.erb +4 -0
- data/app/views/calagator/site/index.html.erb +40 -0
- data/app/views/calagator/site/opensearch.xml.builder +8 -0
- data/app/views/calagator/sources/_subnav.html.erb +0 -0
- data/app/views/calagator/sources/edit.html.erb +12 -0
- data/app/views/calagator/sources/import.html.erb +10 -0
- data/app/views/calagator/sources/index.html.erb +22 -0
- data/app/views/calagator/sources/new.html.erb +32 -0
- data/app/views/calagator/sources/show.html.erb +16 -0
- data/app/views/calagator/venues/_form.html.erb +57 -0
- data/app/views/calagator/venues/_subnav.html.erb +10 -0
- data/app/views/calagator/venues/duplicates.html.erb +65 -0
- data/app/views/calagator/venues/edit.html.erb +3 -0
- data/app/views/calagator/venues/index.html.erb +93 -0
- data/app/views/calagator/venues/index.kml.erb +15 -0
- data/app/views/calagator/venues/map.html.erb +4 -0
- data/app/views/calagator/venues/new.html.erb +5 -0
- data/app/views/calagator/venues/show.html.erb +113 -0
- data/app/views/calagator/versions/_chooser.html.erb +28 -0
- data/app/views/calagator/versions/_edit_with_chooser.html.erb +16 -0
- data/app/views/layouts/calagator/application.html.erb +110 -0
- data/config/deploy/local.rb +37 -0
- data/config/deploy/lucca.rb +33 -0
- data/config/initializers/dates.rb +7 -0
- data/config/initializers/formtastic.rb +82 -0
- data/config/initializers/geokit.rb +74 -0
- data/config/initializers/ics_renderer.rb +6 -0
- data/config/initializers/load_tag_model_extensions.rb +3 -0
- data/config/initializers/mime_types.rb +9 -0
- data/config/initializers/observers.rb +1 -0
- data/config/initializers/search_engine.rb +4 -0
- data/config/initializers/set_default_url_host.rb +5 -0
- data/config/initializers/time_get_zone.rb +8 -0
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +55 -0
- data/config/secrets.yml.blag +75 -0
- data/config/sunspot.yml +23 -0
- data/db/development.sqlite3 +0 -0
- data/db/development.sqlite3.bak +0 -0
- data/db/development.sqlite3.old +0 -0
- data/db/development~20111112@110950.sqlite3 +0 -0
- data/db/migrate/001_create_events.rb +17 -0
- data/db/migrate/002_create_venues.rb +17 -0
- data/db/migrate/003_create_sources.rb +16 -0
- data/db/migrate/004_add_detailed_fields_to_venue.rb +19 -0
- data/db/migrate/005_add_end_time_to_events.rb +9 -0
- data/db/migrate/006_add_source_id_to_events.rb +9 -0
- data/db/migrate/008_add_source_id_to_venues.rb +10 -0
- data/db/migrate/009_add_duplicate_of_column_to_venues.rb +9 -0
- data/db/migrate/010_add_duplicate_of_column_to_events.rb +9 -0
- data/db/migrate/011_change_lat_long_type.rb +12 -0
- data/db/migrate/012_add_source_reimport.rb +9 -0
- data/db/migrate/013_change_end_time_to_duration.rb +11 -0
- data/db/migrate/014_remove_format_type_from_source.rb +9 -0
- data/db/migrate/015_create_updates.rb +15 -0
- data/db/migrate/016_remove_next_update_from_source.rb +9 -0
- data/db/migrate/20080705163959_change_duration_to_end_time.rb +11 -0
- data/db/migrate/20080705164959_create_tags_and_taggings.rb +28 -0
- data/db/migrate/20081011181519_create_versioned_events.rb +25 -0
- data/db/migrate/20081011193124_create_versioned_venues.rb +32 -0
- data/db/migrate/20081115190515_add_rrule_to_events.rb +15 -0
- data/db/migrate/20090912082129_create_versions.rb +18 -0
- data/db/migrate/20110219205156_add_closed_flag_to_venues.rb +9 -0
- data/db/migrate/20110220001008_add_wifi_flag_to_venues.rb +9 -0
- data/db/migrate/20110220011427_add_access_notes_to_venues.rb +9 -0
- data/db/migrate/20110220031117_add_events_count_to_venues.rb +8 -0
- data/db/migrate/20110604174521_add_venue_details_to_events.rb +9 -0
- data/db/migrate/20110717231316_acts_as_taggable_on_migration.rb +50 -0
- data/db/migrate/20120709092821_cleanup.rb +14 -0
- data/db/migrate/20120831234448_specify_venues_latitude_and_longitude_precision.rb +11 -0
- data/db/migrate/20150206085809_remove_updates.rb +13 -0
- data/db/migrate/20150207231355_add_locked_status_to_events.rb +5 -0
- data/db/production.sqlite3 +0 -0
- data/db/schema.rb +102 -0
- data/db/seeds.rb +16 -0
- data/db/test.sqlite3 +0 -0
- data/db/test2.sqlite3 +0 -0
- data/lib/calagator.rb +30 -0
- data/lib/calagator/blacklist_validator.rb +69 -0
- data/lib/calagator/decode_html_entities_hack.rb +33 -0
- data/lib/calagator/duplicate_checking.rb +133 -0
- data/lib/calagator/duplicate_checking/controller_actions.rb +38 -0
- data/lib/calagator/duplicate_checking/duplicate_finder.rb +83 -0
- data/lib/calagator/duplicate_checking/duplicate_squasher.rb +74 -0
- data/lib/calagator/engine.rb +30 -0
- data/lib/calagator/strip_whitespace.rb +19 -0
- data/lib/calagator/tag_model_extensions.rb +104 -0
- data/lib/calagator/url_prefixer.rb +9 -0
- data/lib/calagator/version.rb +3 -0
- data/lib/generators/calagator/install_generator.rb +39 -0
- data/lib/generators/calagator/templates/config/calagator.rb +26 -0
- data/lib/generators/calagator/templates/config/secrets.yml.sample +83 -0
- data/lib/secrets_reader.rb +76 -0
- data/lib/tasks/spec_db.rake +53 -0
- data/lib/tasks/sunspot_reindex_calagator.rake +6 -0
- data/lib/tasks/sunspot_solr_restart_enhancements.rake +19 -0
- data/lib/tasks/update_counter_caches.rake +13 -0
- data/lib/templates/erb/scaffold/_form.html.erb +11 -0
- data/lib/theme_reader.rb +17 -0
- data/lib/wait_for_solr.rb +25 -0
- data/spec/controllers/calagator/application_controller_spec.rb +47 -0
- data/spec/controllers/calagator/events_controller_spec.rb +794 -0
- data/spec/controllers/calagator/site_controller_spec.rb +59 -0
- data/spec/controllers/calagator/sources_controller_spec.rb +439 -0
- data/spec/controllers/calagator/venues_controller_spec.rb +319 -0
- data/spec/controllers/calagator/versions_controller_spec.rb +82 -0
- data/spec/controllers/squash_many_duplicates_examples.rb +49 -0
- data/spec/dummy/Gemfile +39 -0
- data/spec/dummy/Gemfile.lock +195 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/images/rails.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +16 -0
- data/spec/dummy/app/assets/stylesheets/application.css +14 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +62 -0
- data/spec/dummy/config/boot.rb +6 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/calagator.rb +26 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +59 -0
- data/spec/dummy/config/secrets.yml +83 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20150309023304_create_events.calagator.rb +18 -0
- data/spec/dummy/db/migrate/20150309023305_create_venues.calagator.rb +18 -0
- data/spec/dummy/db/migrate/20150309023306_create_sources.calagator.rb +17 -0
- data/spec/dummy/db/migrate/20150309023307_add_detailed_fields_to_venue.calagator.rb +20 -0
- data/spec/dummy/db/migrate/20150309023308_add_end_time_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023309_add_source_id_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023310_add_source_id_to_venues.calagator.rb +11 -0
- data/spec/dummy/db/migrate/20150309023311_add_duplicate_of_column_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023312_add_duplicate_of_column_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023313_change_lat_long_type.calagator.rb +13 -0
- data/spec/dummy/db/migrate/20150309023314_add_source_reimport.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023315_change_end_time_to_duration.calagator.rb +12 -0
- data/spec/dummy/db/migrate/20150309023316_remove_format_type_from_source.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023317_create_updates.calagator.rb +16 -0
- data/spec/dummy/db/migrate/20150309023318_remove_next_update_from_source.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023319_change_duration_to_end_time.calagator.rb +12 -0
- data/spec/dummy/db/migrate/20150309023320_create_tags_and_taggings.calagator.rb +29 -0
- data/spec/dummy/db/migrate/20150309023321_create_versioned_events.calagator.rb +26 -0
- data/spec/dummy/db/migrate/20150309023322_create_versioned_venues.calagator.rb +33 -0
- data/spec/dummy/db/migrate/20150309023323_add_rrule_to_events.calagator.rb +16 -0
- data/spec/dummy/db/migrate/20150309023324_create_versions.calagator.rb +19 -0
- data/spec/dummy/db/migrate/20150309023325_add_closed_flag_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023326_add_wifi_flag_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023327_add_access_notes_to_venues.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023328_add_events_count_to_venues.calagator.rb +9 -0
- data/spec/dummy/db/migrate/20150309023329_add_venue_details_to_events.calagator.rb +10 -0
- data/spec/dummy/db/migrate/20150309023330_acts_as_taggable_on_migration.calagator.rb +51 -0
- data/spec/dummy/db/migrate/20150309023331_cleanup.calagator.rb +15 -0
- data/spec/dummy/db/migrate/20150309023332_specify_venues_latitude_and_longitude_precision.calagator.rb +12 -0
- data/spec/dummy/db/migrate/20150309023333_remove_updates.calagator.rb +14 -0
- data/spec/dummy/db/migrate/20150309023334_add_locked_status_to_events.calagator.rb +6 -0
- data/spec/dummy/db/schema.rb +95 -0
- data/spec/dummy/db/seeds.rb +7 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/doc/README_FOR_APP +2 -0
- data/spec/dummy/log/development.log +273 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/test/performance/browsing_test.rb +12 -0
- data/spec/dummy/test/test_helper.rb +13 -0
- data/spec/factories.rb +93 -0
- data/spec/features/add_event_spec.rb +99 -0
- data/spec/features/add_venue_spec.rb +34 -0
- data/spec/features/admin_auth_spec.rb +22 -0
- data/spec/features/admin_lock_event_spec.rb +41 -0
- data/spec/features/import_events_from_feed_spec.rb +43 -0
- data/spec/features/managing_event_spec.rb +111 -0
- data/spec/features/managing_venue_spec.rb +71 -0
- data/spec/features/search_event_spec.rb +27 -0
- data/spec/helpers/calagator/application_helper_spec.rb +82 -0
- data/spec/helpers/calagator/events_helper_spec.rb +172 -0
- data/spec/helpers/calagator/google_event_export_helper_spec.rb +70 -0
- data/spec/helpers/calagator/sources_helper_spec.rb +12 -0
- data/spec/helpers/calagator/tags_helper_spec.rb +85 -0
- data/spec/helpers/calagator/time_range_helper_spec.rb +59 -0
- data/spec/lib/calagator/blacklist_validator_spec.rb +65 -0
- data/spec/lib/calagator/decode_html_entities_hack_spec.rb +54 -0
- data/spec/lib/calagator/settings_spec.rb +20 -0
- data/spec/lib/calagator/url_prefixer_spec.rb +33 -0
- data/spec/lib/secrets_reader_spec.rb +65 -0
- data/spec/models/calagator/event/cloner_spec.rb +43 -0
- data/spec/models/calagator/event/overview_spec.rb +79 -0
- data/spec/models/calagator/event/search_spec.rb +103 -0
- data/spec/models/calagator/event_search_spec.rb +149 -0
- data/spec/models/calagator/event_spec.rb +859 -0
- data/spec/models/calagator/source/parser_facebook_spec.rb +73 -0
- data/spec/models/calagator/source/parser_hcal_spec.rb +69 -0
- data/spec/models/calagator/source/parser_ical_non_standard_spec.rb +91 -0
- data/spec/models/calagator/source/parser_ical_spec.rb +322 -0
- data/spec/models/calagator/source/parser_meetup_spec.rb +69 -0
- data/spec/models/calagator/source/parser_plancast_spec.rb +53 -0
- data/spec/models/calagator/source/parser_spec.rb +238 -0
- data/spec/models/calagator/source_spec.rb +135 -0
- data/spec/models/calagator/venue/search_spec.rb +92 -0
- data/spec/models/calagator/venue_search_spec.rb +124 -0
- data/spec/models/calagator/venue_spec.rb +346 -0
- data/spec/models/tag_spec.rb +35 -0
- data/spec/rails_helper.rb +39 -0
- data/spec/spec_helper.rb +140 -0
- data/spec/support/disable_geocoding.rb +1 -0
- data/spec/support/http_samples.rb +5 -0
- data/spec/support/samples/facebook.json +23 -0
- data/spec/support/samples/hcal_basic.xml +6 -0
- data/spec/support/samples/hcal_dup_event_dup_venue.xml +13 -0
- data/spec/support/samples/hcal_event_duplicates_fixture.xml +13 -0
- data/spec/support/samples/hcal_event_wo_lat_and_long.xml +14 -0
- data/spec/support/samples/hcal_multiple.xml +16 -0
- data/spec/support/samples/hcal_same_event_twice_with_different_venues.xml +12 -0
- data/spec/support/samples/hcal_single.xml +8 -0
- data/spec/support/samples/hcal_two_identical_events.xml +14 -0
- data/spec/support/samples/hcal_upcoming_v1.html +412 -0
- data/spec/support/samples/hcal_upcoming_v2.html +749 -0
- data/spec/support/samples/hcal_upcoming_v3.html +685 -0
- data/spec/support/samples/hcal_upcoming_v4.html +761 -0
- data/spec/support/samples/ical_apple.ics +22 -0
- data/spec/support/samples/ical_apple_v3.ics +37 -0
- data/spec/support/samples/ical_basic.ics +15 -0
- data/spec/support/samples/ical_basic_with_duration.ics +16 -0
- data/spec/support/samples/ical_event_with_squashed_venue.ics +12 -0
- data/spec/support/samples/ical_eventful_many.ics +504 -0
- data/spec/support/samples/ical_gmt.ics +12 -0
- data/spec/support/samples/ical_google.ics +786 -0
- data/spec/support/samples/ical_multiple_calendars.ics +111 -0
- data/spec/support/samples/ical_upcoming.ics +36 -0
- data/spec/support/samples/ical_upcoming_many.ics +682 -0
- data/spec/support/samples/ical_upcoming_v2.ics +43 -0
- data/spec/support/samples/ical_z.ics +10 -0
- data/spec/support/samples/meetup.ics +16 -0
- data/spec/support/samples/meetup.json +31 -0
- data/spec/support/samples/plancast.ics +59 -0
- data/spec/support/samples/plancast.json +51 -0
- data/spec/support/samples/plancast_with_missing_venue.json +39 -0
- data/spec/support/samples/upcoming_v1.xml +8 -0
- data/spec/support/samples/upcoming_v2_with_invalid_utc_dates.xml +8 -0
- data/spec/support/time_convenience_methods.rb +8 -0
- data/spec/support/time_zones.rb +12 -0
- data/spec/support/url_helpers.rb +5 -0
- data/spec/support/wait_for_ajax.rb +15 -0
- data/spec/support/webmock.rb +8 -0
- data/spec/travis_spec.rb +7 -0
- metadata +1194 -0
@@ -0,0 +1,685 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml"
|
3
|
+
xmlns:cal="http://www.w3.org/2002/12/cal/cal#"
|
4
|
+
xmlns:vcard="http://www.w3.org/2006/vcard/ns#"
|
5
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
|
6
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
7
|
+
xmlns:upcoming="http://www.upcoming.org/vocab/"
|
8
|
+
xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
9
|
+
|
10
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
11
|
+
<html>
|
12
|
+
<head>
|
13
|
+
<title>Ignite Portland 5 at Bagdad Theater and Pub (Thursday February 19, 2009) - Upcoming</title>
|
14
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
15
|
+
<meta http-equiv="Content-Language" content="en-us">
|
16
|
+
<meta name="description" content="Upcoming Ignite Portland 5 at Bagdad Theater and Pub (Thursday February 19, 2009)">
|
17
|
+
<meta name="keywords" content="upcoming Ignite Portland 5 at Bagdad Theater and Pub (Thursday February 19, 2009)">
|
18
|
+
<meta http-equiv="X-UA-Compatible" content="IE=7"/>
|
19
|
+
<meta name="verify-v1" content="S6riHTy4aqQhYzxbTmxrbL229QqGndjohgo6wDpIuao=" />
|
20
|
+
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.1/build/reset-fonts-grids/reset-fonts-grids.css" />
|
21
|
+
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.1/build/autocomplete/assets/skins/sam/autocomplete.css" />
|
22
|
+
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.1/build/calendar/assets/skins/sam/calendar.css" />
|
23
|
+
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.1/build/container/assets/skins/sam/container.css" />
|
24
|
+
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.1/build/menu/assets/skins/sam/menu.css" />
|
25
|
+
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.1/build/tabview/assets/skins/sam/tabview.css" />
|
26
|
+
<link rel="stylesheet" type="text/css" href="http://l.yimg.com/ycs.upcoming.yahoo.com/css/default_e8018f768ea8b5a945ea3fc866914e23.css" /><link rel="stylesheet" type="text/css" href="http://l.yimg.com/ycs.upcoming.yahoo.com/css/base_eaec10ba83c4e113647c44da65980800.css" /><link rel="stylesheet" type="text/css" href="http://l.yimg.com/ycs.upcoming.yahoo.com/css/home_cf683e509ad1ef1a154c2f58c6602d92.css" /> </head>
|
27
|
+
<body>
|
28
|
+
<div id="doc4">
|
29
|
+
<div id="up-hd">
|
30
|
+
<div id="up-hd-user-websearch">
|
31
|
+
<div id="up-hd-user">
|
32
|
+
<span>
|
33
|
+
Welcome, <a href="/user/122240/">igal</a>
|
34
|
+
<a href="/notes/" title="Notes"><img src="http://us.i1.yimg.com/us.yimg.com/i/nt/ic/ut/alt3/mail12_1.gif" border="0" title="Notes" height="12" width="12" style="vertical-align: middle;" /></a> </span>
|
35
|
+
<a href="/logout/">Sign Out</a> |
|
36
|
+
<a href="/user/122240/">My Account</a> |
|
37
|
+
<a href="/help/">Help</a>
|
38
|
+
</div> <div id="up-hd-websearch">
|
39
|
+
<form id="up-hd-websearch-form" action="http://search.yahoo.com/search">
|
40
|
+
<div class="up-inline">
|
41
|
+
<label for="up-hd-websearch-q">Web search query term</label>
|
42
|
+
<input id="up-hd-websearch-q" name="p" type="text">
|
43
|
+
<button id="up-hd-websearch-button-go" class="up-palette2">Web Search</button>
|
44
|
+
</div>
|
45
|
+
</form>
|
46
|
+
</div> </div> <div id="up-hd-logo-search-nav" class="up-palette1">
|
47
|
+
<div id="up-hd-search">
|
48
|
+
<a id="up-hd-search-logo" class="up-palette1" href="/">Upcoming</a>
|
49
|
+
<form id="up-hd-search-form" action="/search/">
|
50
|
+
<input type="hidden" id="up-hd-search-action-type" name="type" value="events">
|
51
|
+
<input type="hidden" id="up-hd-search-radius-toggle" name="rt" value="1">
|
52
|
+
|
53
|
+
<span id="search-form-body">
|
54
|
+
<label for="up-hd-search-query">Search <span id="up-hd-search-query-label">Events</span></label>
|
55
|
+
<input id="up-hd-search-query" class="up-palette1 up-hd-search-query-notwide" name="q" type="text" value=""/>
|
56
|
+
<label for="up-hd-search-location" id="up-hd-search-location-label">City, State or Zip</label>
|
57
|
+
<input id="up-hd-search-location" class="up-palette1 up-hd-search-query-notwide " name="loc" type="text" value="San Francisco Bay Area" />
|
58
|
+
<div id="up-hd-search-buttons">
|
59
|
+
<button id="up-hd-search-button-go" class="up-palette1">Search <span id="up-hd-search-button-label">Events</span></button>
|
60
|
+
<button id="up-hd-search-button-change" class="up-palette1">Change Search Type</button>
|
61
|
+
</div>
|
62
|
+
<div id="up-hd-search-change" class="yuimenu">
|
63
|
+
<div class="bd">
|
64
|
+
<ul class="first-of-type">
|
65
|
+
<li class="yuimenuitem"><a class="yuimenuitemlabel up-palette2 up-hd-search-change-current" title="events" href="/event/">Events</a></li>
|
66
|
+
<li class="yuimenuitem"><a class="yuimenuitemlabel up-palette2 " title="venues" href="/venue/">Venues</a></li>
|
67
|
+
<!-- <li class="yuimenuitem"><a class="yuimenuitemlabel up-palette2 " title="performers" href="/performer/">Performers</a></li> -->
|
68
|
+
<li class="yuimenuitem"><a class="yuimenuitemlabel up-palette2 " title="users" href="/friend/">Upcoming Users</a></li>
|
69
|
+
</ul>
|
70
|
+
</div>
|
71
|
+
</div>
|
72
|
+
</span>
|
73
|
+
</form>
|
74
|
+
</div> <ul id="up-hd-nav">
|
75
|
+
<li id="home"><a id="up-hd-nav-home" href="/">Home</a></li>
|
76
|
+
<li id="events">
|
77
|
+
<a href="/myevents/" id="up-hd-nav-events-link" class="up-hd-nav-menu-link">My Events</a>
|
78
|
+
<a href="/myevents/" id="up-hd-nav-events" class="up-hd-nav-menubtn up-palette2">More Events Links</a>
|
79
|
+
<div class="up-hd-nav-menu-container">
|
80
|
+
<div id="up-hd-nav-events-menu" class="yuimenu">
|
81
|
+
<div class="bd">
|
82
|
+
<ul class="first-of-type">
|
83
|
+
<li class="yuimenuitem"><a href="/myevents/">My Events</a></li>
|
84
|
+
<li class="yuimenuitem"><a href="/friend/">My Friends</a></li>
|
85
|
+
<li class="yuimenuitem"><a href="/user/122240/">My Account</a></li>
|
86
|
+
<li class="yuimenuitem"><a href="/group/">My Groups</a></li>
|
87
|
+
<li class="yuimenuitem"><a href="/history/myevents/">My Scrapbook</a></li>
|
88
|
+
<li class="yuimenuitem"><a href="/activity/">What's New For You</a></li>
|
89
|
+
</ul>
|
90
|
+
</div>
|
91
|
+
</div>
|
92
|
+
</div>
|
93
|
+
</li>
|
94
|
+
<li id="friends">
|
95
|
+
<a href="/friend/" id="up-hd-nav-friends-link" class="up-hd-nav-menu-link">Friends</a>
|
96
|
+
<a href="/friend/" id="up-hd-nav-friends" class="up-hd-nav-menubtn up-palette2">More Friends Links</a>
|
97
|
+
<div class="up-hd-nav-menu-container">
|
98
|
+
<div id="up-hd-nav-friends-menu" class="yuimenu">
|
99
|
+
<div class="bd">
|
100
|
+
<ul class="first-of-type">
|
101
|
+
<li class="yuimenuitem"><a href="/friend/event/">Friends' Events</a></li>
|
102
|
+
<li class="yuimenuitem"><a href="/friend/">Friends List</a></li>
|
103
|
+
<li class="yuimenuitem"><a href="/site_invite/">Invite Friends</a></li>
|
104
|
+
</ul>
|
105
|
+
</div>
|
106
|
+
</div>
|
107
|
+
</div>
|
108
|
+
</li>
|
109
|
+
<li id="more">
|
110
|
+
<a href="/more/" id="up-hd-nav-more-link" class="up-hd-nav-menu-link">More</a>
|
111
|
+
<a href="/more/" id="up-hd-nav-more" class="up-hd-nav-menubtn up-palette2">More Helpful Links</a>
|
112
|
+
<div class="up-hd-nav-menu-container">
|
113
|
+
<div id="up-hd-nav-more-menu" class="yuimenu">
|
114
|
+
<div class="bd">
|
115
|
+
<ul class="first-of-type">
|
116
|
+
<li class="yuimenuitem"><a href="/group/">Groups</a></li>
|
117
|
+
<li class="yuimenuitem"><a href="/place/">Places</a></li>
|
118
|
+
<li class="yuimenuitem"><a href="/news/">News Blog</a></li>
|
119
|
+
<li class="yuimenuitem"><a href="/badge/">Upcoming Badges</a></li>
|
120
|
+
<li class="yuimenuitem"><a href="/services/api/">Developers API</a></li>
|
121
|
+
<li class="yuimenuitem"><a href="http://suggestions.yahoo.com/?prop=upcoming">Suggestion Board</a></li>
|
122
|
+
</ul>
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
</div>
|
126
|
+
</li>
|
127
|
+
<li id="add"><a id="up-hd-nav-add" class="up-palette2" href="/event/add/">Add An Event</a></li>
|
128
|
+
<li id="up-hd-nav-logo-container"><a id="up-hd-nav-logo" class="up-palette1" href="http://www.yahoo.com/">Yahoo!</a></li>
|
129
|
+
</ul> </div> </div> <div id="up-bd">
|
130
|
+
|
131
|
+
|
132
|
+
<div id="calendarContainer" class="vcalendar"> <!-- Begin vCalendar -->
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
<div id="event" class="vevent" about="#event" typeof="cal:Vevent">
|
137
|
+
|
138
|
+
<h1>
|
139
|
+
<div class="name summary" property="cal:summary">
|
140
|
+
Ignite Portland 5 </div>
|
141
|
+
</h1>
|
142
|
+
<div id="up-detail-tabs">
|
143
|
+
<ul>
|
144
|
+
<li class="selected"><div class="body">DETAILS & PHOTOS</div></li>
|
145
|
+
<li><div class="body"><span class="map-icon"> </span><a href="/maps/1363102">MAPS & WHAT'S NEARBY</a></div></li>
|
146
|
+
</ul>
|
147
|
+
</div>
|
148
|
+
|
149
|
+
|
150
|
+
<div id="eventMain">
|
151
|
+
<div id="add_photo_container" class="clicker_menu">
|
152
|
+
<a href="/event/1363102/" id="add_photo_close_link">(close)</a>
|
153
|
+
<ul>
|
154
|
+
<li>
|
155
|
+
<form method="post" action="/photos/upload/1363102/" enctype="multipart/form-data">
|
156
|
+
<label for="image">Select photo file to upload:</label>
|
157
|
+
<input type="file" id="image" name="image" />
|
158
|
+
<label for="caption">Add a title:</label>
|
159
|
+
<input type="text" id="caption" name="caption" maxlength="200" />
|
160
|
+
<input id="up-evt-photoup-btn" type="submit" value="Upload Photo" />
|
161
|
+
</form>
|
162
|
+
</li>
|
163
|
+
<li id="up-evt-photoup-flickr">
|
164
|
+
<p>Add Photos from <span class="up-flickr-logo">Flick<strong>r</strong></span></p>
|
165
|
+
<label for="up-evt-photoup-flickr-tag">Tag a public <a rel="nofollow" href="http://flickr.com/">Flickr</a> photo with:</label>
|
166
|
+
<input type="text" id="up-evt-photoup-flickr-tag" onFocus="this.select();" value="upcoming:event=1363102" />
|
167
|
+
<p id="up-evt-photoup-flickr-note">Your photos will appear on this event page automagically in a little while!</p>
|
168
|
+
</li>
|
169
|
+
</ul>
|
170
|
+
<a name="add_photo_anchor" id="add_photo_anchor"></a>
|
171
|
+
</div>
|
172
|
+
<div id="eventMetadata">
|
173
|
+
<div class="additionalInfo">
|
174
|
+
|
175
|
+
<div id="phototitle" class="phototext" style="visibility:hidden;display:none">Event Photos</div>
|
176
|
+
<div id="addphotos">
|
177
|
+
Have a photo?
|
178
|
+
<a id="add_photo_link" name="add_photo_link" href="/event/1363102">Add it here</a>
|
179
|
+
</div>
|
180
|
+
<div id="eventPhotos">
|
181
|
+
<div id="photo_container"></div>
|
182
|
+
|
183
|
+
<div class="photolink">
|
184
|
+
<span class="small" id="photos_loading_msg">
|
185
|
+
<div id="photolink_see">
|
186
|
+
<a href="/photos/event/1363102" id="photos_see_all_link">loading...</a>
|
187
|
+
</div>
|
188
|
+
<div id="photolink_add">
|
189
|
+
<a id="add_photo_link2" name="add_photo_link2" href="/event/1363102">Add Photos</a>
|
190
|
+
</div>
|
191
|
+
</span>
|
192
|
+
</div>
|
193
|
+
</div>
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
</div>
|
200
|
+
<!-- toolbar - top -->
|
201
|
+
|
202
|
+
<ul id="event-toolbar">
|
203
|
+
<li> <div id="addToCalendar_1363102_" class="export_button ">
|
204
|
+
<a rel="upcoming:addToCalendar" href="/event/1363102/export">Add to calendar</a>
|
205
|
+
</div></li>
|
206
|
+
<li><a id="invite" rel="upcoming:inviteFriends" href="/tools/invite/1363102">Invite Friends</a></li>
|
207
|
+
<li><a id="print" href="javascript:void(0)" onclick="window.print()">Print</a></li>
|
208
|
+
</ul>
|
209
|
+
|
210
|
+
<!-- end of toolbar -top -->
|
211
|
+
|
212
|
+
<div class="datetime">
|
213
|
+
<abbr class="dtstart" property="cal:dtstart" content="2009-02-19" title="20090219T190000">
|
214
|
+
Thursday February 19, 2009 </abbr>
|
215
|
+
at
|
216
|
+
7:00pm </div> <!-- /.time -->
|
217
|
+
|
218
|
+
<div class="venue location vcard" class="vcard" about="#venue">
|
219
|
+
<span class="fn org"><a rel="vcard:url" property="vcard:fn" href="/venue/61559/">Bagdad Theater and Pub</a></span><br />
|
220
|
+
<div class="address adr" rel="vcard:adr"><div typeof="vcard:Address">
|
221
|
+
<span class="street-address" property="vcard:street-address">3702 S.E. Hawthorne Blvd</span><br />
|
222
|
+
<span class="locality" property="vcard:locality">Portland</span>, <span class="region" property="vcard:region">Oregon</span> <span class="postal-code" property="vcard:postal-code">97214</span>
|
223
|
+
</div></div>
|
224
|
+
|
225
|
+
</div> <!-- /.venue -->
|
226
|
+
|
227
|
+
<div class="small">Category:
|
228
|
+
<span id="category">Social</span>
|
229
|
+
</div>
|
230
|
+
<div class="small">Website: <a rel="nofollow" href="http://www.igniteportland.com" class="url">http://www.igniteportland.com</a></div>
|
231
|
+
|
232
|
+
|
233
|
+
<div class="description"></div>
|
234
|
+
Save the date! Ignite Portland 5 will happen on Thursday, February 19, 2009, at the Bagdad Theater. Stay tuned to <a rel="nofollow" href="http://www.igniteportland.com/">http://www.igniteportland.com/</a> for more details, and submit YOUR talk idea now!<br />
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
<div class="clearb"></div>
|
243
|
+
<div class="bylineReport">
|
244
|
+
<div class="byline">
|
245
|
+
Added by
|
246
|
+
|
247
|
+
<a href="/user/21062/"><img src="http://static.flickr.com/8/buddyicons/44124452748@N01.jpg" height="12" width="12" border="0" /></a>
|
248
|
+
<span><a class="" id="user_21062" title="" href="http://upcoming.yahoo.com/user/21062/">jabancroft</a></span>
|
249
|
+
on November 13, 2008 <span id="event-toolbar"><a id="report" href="/flag/event/1363102">Report a problem </a></span>
|
250
|
+
|
251
|
+
</div>
|
252
|
+
<div style="height: 0px; clear: both;"></div>
|
253
|
+
|
254
|
+
</div>
|
255
|
+
</div>
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
<table class="mediatable">
|
262
|
+
<tr>
|
263
|
+
|
264
|
+
</tr>
|
265
|
+
</table>
|
266
|
+
|
267
|
+
<!-- /#eventMetadata -->
|
268
|
+
|
269
|
+
<div id="eventComments">
|
270
|
+
|
271
|
+
<div class="event-heading">Comments</div>
|
272
|
+
<div id="event-addcomments">
|
273
|
+
<form method="post" action="/add/comment/">
|
274
|
+
<input type="hidden" name="_ucrumb" value="WQqdM22/soy" />
|
275
|
+
<div class="heading">Add a comment:</div>
|
276
|
+
<textarea name="comment" id="comment" rows="5" cols="80" class="smarttext"></textarea>
|
277
|
+
<p id="comment-limit" title="4000" style="font-size: 10px; float: right;">Limit 4000 characters.</p>
|
278
|
+
|
279
|
+
<input type="hidden" name="event_id" value="1363102" />
|
280
|
+
<input type="submit" name="submit" class="button blue-button" value="Post Comment" />
|
281
|
+
</form>
|
282
|
+
</div><!-- end addcomments -->
|
283
|
+
|
284
|
+
</div> <!-- /#eventComments -->
|
285
|
+
|
286
|
+
</div> <!-- /#eventMain -->
|
287
|
+
|
288
|
+
|
289
|
+
<!--
|
290
|
+
|
291
|
+
##########################################################################
|
292
|
+
Sidebar
|
293
|
+
##########################################################################
|
294
|
+
|
295
|
+
-->
|
296
|
+
|
297
|
+
|
298
|
+
<div id="eventSidebar">
|
299
|
+
|
300
|
+
|
301
|
+
<div id="sidebarTopContainer">
|
302
|
+
<div id="sidebarTop">
|
303
|
+
|
304
|
+
|
305
|
+
<div id="attendWidget1363102" class="attendWidget">
|
306
|
+
<div id="watchlistCta" class="eventSidebarTitle" style="float: left;">
|
307
|
+
Let the community know:
|
308
|
+
</div>
|
309
|
+
<span class="undo"><a class="undo" href="javascript:void(0)">(undo)</a></span>
|
310
|
+
<div style="clear: both;"></div>
|
311
|
+
|
312
|
+
<div class="watchlistStatuses"> <form id="watchlistForm" onSubmit="return false;" method="GET" action="/watchlist">
|
313
|
+
<table>
|
314
|
+
<td class="buttonContainer">
|
315
|
+
<span id="attendButton" class="normal">
|
316
|
+
<div class="container">
|
317
|
+
<div class="front">
|
318
|
+
<div class="face">
|
319
|
+
<button name="status" value="attend" >
|
320
|
+
<div class="check">I'm Going</div>
|
321
|
+
<div class="busynotice">Saving to My Events</div>
|
322
|
+
</button>
|
323
|
+
</div>
|
324
|
+
</div>
|
325
|
+
<div class="back"></div>
|
326
|
+
</div>
|
327
|
+
</span>
|
328
|
+
</td>
|
329
|
+
<td>or</td>
|
330
|
+
<td class="buttonContainer">
|
331
|
+
<span id="watchButton" class="normal">
|
332
|
+
<div class="container">
|
333
|
+
<div class="front">
|
334
|
+
<div class="face">
|
335
|
+
<button name="status" value="watch">
|
336
|
+
<div class="check">I'm Interested</div>
|
337
|
+
<div class="busynotice">Saving to My Events</div>
|
338
|
+
</button>
|
339
|
+
</div>
|
340
|
+
</div>
|
341
|
+
<div class="back"></div>
|
342
|
+
</div>
|
343
|
+
</span>
|
344
|
+
</td>
|
345
|
+
</table>
|
346
|
+
<input type="hidden" name="redirect" value="/event/1363102"/>
|
347
|
+
<input type="hidden" name="event_id" value="1363102"/>
|
348
|
+
<input type="hidden" name="_ucrumb" value=""/>
|
349
|
+
</form>
|
350
|
+
</div>
|
351
|
+
|
352
|
+
<div style="clear: both;"></div>
|
353
|
+
|
354
|
+
<div class="guestCount" style="display:none">
|
355
|
+
<form id="attendWidget1363102.guestForm" method="POST" action="/watchlist/index.php">
|
356
|
+
<input type="hidden" name="_ucrumb" value="WQqdM22/soy" />
|
357
|
+
<input type="hidden" name="event_id" value="1363102" />
|
358
|
+
|
359
|
+
Bring Some Friends?:
|
360
|
+
<select name="num_guests"><option value="0" selected>0</option>
|
361
|
+
</select>
|
362
|
+
|
363
|
+
<noscript>
|
364
|
+
<input type="submit" value="Change"/>
|
365
|
+
</noscript>
|
366
|
+
|
367
|
+
</form>
|
368
|
+
</div>
|
369
|
+
</div>
|
370
|
+
|
371
|
+
|
372
|
+
<div id="friendlist1363102" class="friendlist"><div id="friendlistContainer1"><div id="friendlistContainer2"><div id='friendlistAttend'><div class='listTitle'>Friends Going</div><a href="/user/128987/"><img src="http://static.flickr.com/123/buddyicons/17194335@N00.jpg" class="avatar" height="45" width="45" border="1" /></a><span><a class="friendLink" id="user_128987" title="Watching since Dec 8, 2008 03:17 AM" href="http://upcoming.yahoo.com/user/128987/">reidab</a></span></div></div></div></div>
|
373
|
+
<div style="clear:both"></div>
|
374
|
+
<div id="userlist1363102" class="userlist"><div style="clear:both"></div><div id="userlistContainer1"><div id="userlistContainer2"> <div id="userlistExpand">
|
375
|
+
<span id="userlistsummary" style="float:left"><strong style="color:#8F0000" property="upcoming:numAttendees">38 People </strong>saved this event. </span>
|
376
|
+
<a id="hide_attendees" href="javascript:void(0);" style="display:none;float:left" class="up-palette2 tab">Hide this<span class="userlistExpandTriangle up-palette2"></span></a>
|
377
|
+
<a id="expand_attendees" href="javascript:void(0);" style="display:none;float:left" class="up-palette2 tab">Show me</a>
|
378
|
+
<a id="placeholder_attendees" href="javascript:void(0);" style="float:left" class="tab">...</a>
|
379
|
+
<img id="userlistExpandBusy" src="/images/indicator.gif" border="0" style="visibility: hidden;"/>
|
380
|
+
</div><div id="userlistContents"><div id='userlistAttend'><div class='listTitle'>25 Going</div><div class='hideable'></div></div><div id='userlistWatch'><div class='listTitle'>13 Interested</div><div class='hideable'></div></div></div></div></div></div> <div style="clear: both;"></div>
|
381
|
+
|
382
|
+
</div> <!-- sidebarTop -->
|
383
|
+
</div> <!-- sidebarTopContainer -->
|
384
|
+
|
385
|
+
|
386
|
+
<div class="eventRelated">
|
387
|
+
<div class="inset" id="insetContent">
|
388
|
+
<div class="insetTitle">Other Events Like This</div>
|
389
|
+
<div class="insetBody">
|
390
|
+
<table>
|
391
|
+
<tr id="first">
|
392
|
+
<td width="70" valign="top" id="date">Tue, Dec 9</td>
|
393
|
+
<td><b><a href="/event/1369765/">Winter Coders' Social II</a></b></td>
|
394
|
+
</tr>
|
395
|
+
<tr>
|
396
|
+
<td width="70" valign="top" id="date">Wed, Dec 10</td>
|
397
|
+
<td><b><a href="/event/1384481/">ThrivePDX</a></b></td>
|
398
|
+
</tr>
|
399
|
+
<tr>
|
400
|
+
<td width="70" valign="top" id="date">Thu, Dec 11</td>
|
401
|
+
<td><b><a href="/event/1274705/">CubeSpace Holiday Party</a></b></td>
|
402
|
+
</tr>
|
403
|
+
<tr>
|
404
|
+
<td width="70" valign="top" id="date">Wed, Jan 7</td>
|
405
|
+
<td><b><a href="/event/1406483/">Demolicious! - Portland Web Innovators</a></b></td>
|
406
|
+
</tr>
|
407
|
+
<tr>
|
408
|
+
<td width="70" valign="top" id="date">Sat, Jan 17</td>
|
409
|
+
<td><b><a href="/event/1313754/">Masterbacon: A day for bacon lovers</a></b></td>
|
410
|
+
</tr>
|
411
|
+
<tr>
|
412
|
+
<td width="70" valign="top" id="date">Wed, Feb 11</td>
|
413
|
+
<td><b><a href="/event/1326795/">Lunch 2.0 at AboutUs</a></b></td>
|
414
|
+
</tr>
|
415
|
+
</table>
|
416
|
+
</div>
|
417
|
+
</div>
|
418
|
+
</div>
|
419
|
+
|
420
|
+
<div id="eventTags">
|
421
|
+
<div class="insetTitle">
|
422
|
+
Tags
|
423
|
+
</div><!-- end insetTitle -->
|
424
|
+
<div class="insetBody categories">
|
425
|
+
<div id="tag_list">
|
426
|
+
<a href="/tag/pdx/" rel="tag" class="category">pdx</a>
|
427
|
+
<br />
|
428
|
+
<a href="/tag/ignite/" rel="tag" class="category">ignite</a>
|
429
|
+
<br />
|
430
|
+
<a href="/tag/igniteportland/" rel="tag" class="category">igniteportland</a>
|
431
|
+
<br />
|
432
|
+
<a href="/tag/oregon/" rel="tag" class="category">oregon</a>
|
433
|
+
<br />
|
434
|
+
<a href="/tag/portland/" rel="tag" class="category">portland</a>
|
435
|
+
<br />
|
436
|
+
<a href="/tag/ip5/" rel="tag" class="category">ip5</a>
|
437
|
+
<br />
|
438
|
+
<a href="/tag/mcmenamins/" rel="tag" class="category">mcmenamins</a>
|
439
|
+
<br />
|
440
|
+
</div>
|
441
|
+
<div id="add_tag">
|
442
|
+
<a id="add_tag_link" href="javascript:void(0);"><b>Add a tag?</b></a>
|
443
|
+
<form id="add_tag_form" method="post" style="display:none;">
|
444
|
+
<input type="hidden" name="_ucrumb" value="WQqdM22/soy" />
|
445
|
+
<input id="add_tag_field" type="text" name="tag" value="" />
|
446
|
+
<input type="hidden" name="event_id" value="1363102" />
|
447
|
+
<input id="add_tag_submit" type="submit" name="submit" value="Add Tag" />
|
448
|
+
<span id="add_tag_status_img" style="display:none;"><img src="http://l.yimg.com/ycs.upcoming.yahoo.com/images/indicator_03ce3dcc84af110e9da8699a841e5200.gif" border="0" /></span>
|
449
|
+
</form>
|
450
|
+
</div>
|
451
|
+
</div><!-- /.insetBody -->
|
452
|
+
</div> <!-- /#eventTags -->
|
453
|
+
|
454
|
+
<div id="eventGroups">
|
455
|
+
<div class="insetTitle">Related Groups</div>
|
456
|
+
<div class="insetBody">
|
457
|
+
<div><ul id="group_list"><a href="/group/4025/">Legion Of Tech</a></ul></div> <div id="send_to_group">
|
458
|
+
<a id="send_to_group_link" href="javascript:void(0);"><b>+ Send to group?</b></a>
|
459
|
+
<form id="send_to_group_form" method="post" style="display:none;">
|
460
|
+
<input type="hidden" name="_ucrumb" value="WQqdM22/soy" />
|
461
|
+
<input type="hidden" name="action" value="sendToGroup" />
|
462
|
+
<input type="hidden" name="event_id" value="1363102" />
|
463
|
+
<select id="send_to_group_select" name="group_id" style="width: 120px;margin-top:4px;display:inline;">
|
464
|
+
<option id="null_option">Select Group:</option>
|
465
|
+
</select>
|
466
|
+
<span id="send_to_group_status_img" style="display:none;"><img src="http://l.yimg.com/ycs.upcoming.yahoo.com/images/indicator_03ce3dcc84af110e9da8699a841e5200.gif" border="0" /></span>
|
467
|
+
|
468
|
+
</form>
|
469
|
+
|
470
|
+
</div>
|
471
|
+
</div> <!-- /.insetBody -->
|
472
|
+
</div> <!-- /#eventGroups -->
|
473
|
+
|
474
|
+
</div> <!-- /#eventSidebar -->
|
475
|
+
|
476
|
+
<div id="hidden_event_id" style="visibility:hidden;">1363102</div>
|
477
|
+
|
478
|
+
</div> <!-- /#event -->
|
479
|
+
|
480
|
+
<br style="clear: both">
|
481
|
+
|
482
|
+
|
483
|
+
<style type="text/css">
|
484
|
+
<!--
|
485
|
+
#performerFormContainer {
|
486
|
+
background-color: #f4f4f4;
|
487
|
+
padding: 10px 10px 10px 30px;
|
488
|
+
margin-top:15px;
|
489
|
+
width:898px;
|
490
|
+
}
|
491
|
+
|
492
|
+
#performerFormContainer .tblTitle {
|
493
|
+
font-size: 18px;
|
494
|
+
font-weight: bold;
|
495
|
+
}
|
496
|
+
|
497
|
+
-->
|
498
|
+
</style>
|
499
|
+
<div id="performerFormContainer" style="visibility:hidden">
|
500
|
+
<div class="tblTitle">Add a new performer</div>
|
501
|
+
|
502
|
+
<style type="text/css">
|
503
|
+
#performerFormDiv table td {
|
504
|
+
font-size: 12px;
|
505
|
+
padding: 5px;
|
506
|
+
}
|
507
|
+
|
508
|
+
#performerFormDiv .required {
|
509
|
+
color: #ad0b0a;
|
510
|
+
}
|
511
|
+
|
512
|
+
#performerFormDiv .optional {
|
513
|
+
color: #000000;
|
514
|
+
}
|
515
|
+
|
516
|
+
#performerFormDiv .questionTip {
|
517
|
+
font-size: 10px;
|
518
|
+
}
|
519
|
+
|
520
|
+
#performerFormDiv .fieldName {
|
521
|
+
width: 120px;
|
522
|
+
text-align: right;
|
523
|
+
vertical-align: top;
|
524
|
+
padding-top: 8px;
|
525
|
+
}
|
526
|
+
|
527
|
+
#performerFormDiv #performer_submit {
|
528
|
+
font-size: 16px;
|
529
|
+
}
|
530
|
+
|
531
|
+
#performerFormDiv tr#performer_submit td {
|
532
|
+
padding-top: 16px;
|
533
|
+
}
|
534
|
+
|
535
|
+
#performerFormDiv .longwidth {
|
536
|
+
width: 360px;
|
537
|
+
}
|
538
|
+
|
539
|
+
#performerFormDiv .shortwidth {
|
540
|
+
width: 240px;
|
541
|
+
}
|
542
|
+
|
543
|
+
|
544
|
+
|
545
|
+
|
546
|
+
-->
|
547
|
+
</style>
|
548
|
+
|
549
|
+
|
550
|
+
<div id="performerFormDiv" class="bd">
|
551
|
+
|
552
|
+
<div id="performerFormErrorDiv" class="error" style="visibility:hidden"></div>
|
553
|
+
<div id="performerFormDuplicateDiv" class="dupe" style="visibility:hidden"></div>
|
554
|
+
|
555
|
+
<!-- method="post" action="#" -->
|
556
|
+
<form id="performerForm" onsubmit="">
|
557
|
+
<input type="hidden" name="_ucrumb" value="WQqdM22/soy" />
|
558
|
+
<input type="hidden" name="mode" value="add" />
|
559
|
+
<input type="hidden" name="force" id="forcePerformerElement" value="0" />
|
560
|
+
|
561
|
+
|
562
|
+
<table cellspacing="0" cellpadding="10" border="0">
|
563
|
+
<tr>
|
564
|
+
<td class="fieldName required">Performer name</td>
|
565
|
+
<td><input id="performerForm.name" class="longwidth" type="text" name="name" value="" size="60" /></td>
|
566
|
+
</tr>
|
567
|
+
<tr>
|
568
|
+
|
569
|
+
<tr>
|
570
|
+
<td colspan="2">
|
571
|
+
<span class="tblTitle">More details</span> (optional, but nice)
|
572
|
+
</td>
|
573
|
+
</tr>
|
574
|
+
<tr>
|
575
|
+
<td class="fieldName optional">Performer homepage</td>
|
576
|
+
<td><input id="performerForm.url" type="text" name="url" value="http://" class="longwidth" size="60" /></td>
|
577
|
+
</tr>
|
578
|
+
<tr>
|
579
|
+
<td class="fieldName optional">Short description</td>
|
580
|
+
<td>
|
581
|
+
<textarea class="longwidth" id="performerForm.description" name="description" rows="5" cols="50"></textarea>
|
582
|
+
</td>
|
583
|
+
</tr>
|
584
|
+
<tr>
|
585
|
+
<tr id="performer_submit">
|
586
|
+
<td class="fieldName"></td>
|
587
|
+
<td>
|
588
|
+
<input id="performer_submit" type="submit" name="submit" value="Submit" class="submit" />
|
589
|
+
<span id="performerFormProgressArea" style="visibility:hidden;"><img src="/images/indicator.gif" border="0" /></span>
|
590
|
+
|
591
|
+
</td>
|
592
|
+
</tr>
|
593
|
+
</table>
|
594
|
+
</form>
|
595
|
+
</div><!-- end class="bd" -->
|
596
|
+
|
597
|
+
<div id="performerDupeCheckContainer" style="visibility: hidden">
|
598
|
+
<div class="hd">Hmm...</div>
|
599
|
+
<div class="bd">
|
600
|
+
<form method="post" name="dlgForm_performerDupeForm" id="performerDupeForm" action="/ajax/select.performer.php" onsubmit="">
|
601
|
+
<input type="hidden" name="type" value="performer" />
|
602
|
+
<div class="">We might have that performer already. Help us keep our database clean by looking to see if it's already here!</div>
|
603
|
+
<table border="0" id="performer_dupe_check_table">
|
604
|
+
<tr>
|
605
|
+
<td colspan="2">(Please select one)</td>
|
606
|
+
</tr>
|
607
|
+
<tr id="use_my_performer_tr">
|
608
|
+
<td><input id="use_my_performer" name="use_performer" type="radio" checked="checked" value="mine" /></td>
|
609
|
+
<td><label for="use_my_performer">Please just use the one I entered.</label></td>
|
610
|
+
</tr>
|
611
|
+
</table>
|
612
|
+
</form>
|
613
|
+
</div>
|
614
|
+
<div class="ft"></div>
|
615
|
+
</div>
|
616
|
+
|
617
|
+
</div><!-- end id="performerFormContainer" -->
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
</div> <!-- End vCalendar -->
|
622
|
+
|
623
|
+
<form onsubmit="javascript: return false;">
|
624
|
+
<input type="hidden" id="_cmb" name="_cmb" value="WQqdM22/soy" />
|
625
|
+
</form>
|
626
|
+
<div class="up-clearb"></div>
|
627
|
+
</div> <dl id="up-ft">
|
628
|
+
<dt>Me</dt>
|
629
|
+
<dd>
|
630
|
+
<a href="/myevents/">My Events</a> |
|
631
|
+
<a href="/history/myevents/">My Scrapbook</a> |
|
632
|
+
<a href="/friend/event/">My Friend's Events</a> |
|
633
|
+
<a href="/activity/">What's New For You</a> |
|
634
|
+
<a href="/user/122240">My Account</a>
|
635
|
+
</dd>
|
636
|
+
<dt>Tools</dt>
|
637
|
+
<dd>
|
638
|
+
<a href="/badge/">Upcoming Badges for Your Blog/Website</a> |
|
639
|
+
<a href="/site_invite/">Invite Friends</a> |
|
640
|
+
<a href="/group/">Groups</a> |
|
641
|
+
<a href="/services/api/">Developers API</a>
|
642
|
+
</dd>
|
643
|
+
<dt>Help</dt>
|
644
|
+
<dd>
|
645
|
+
<a href="/news/">News Blog</a> |
|
646
|
+
<a href="/help/guidelines/">Community Guidelines</a> |
|
647
|
+
<a href="/help/faq/;_ylt=AnJp1N2sKwVEPEMhmQyi0PfPa80F">FAQ</a> |
|
648
|
+
<a href="/contact/">Contact Us</a> |
|
649
|
+
<a href="http://suggestions.yahoo.com/?prop=upcoming">Suggestion Board</a>
|
650
|
+
</dd>
|
651
|
+
<dt class="up-ft-copyright">Copyright © 2008 Yahoo! Inc. All rights reserved.</dt>
|
652
|
+
<dd class="up-ft-copyright">
|
653
|
+
- <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright/IP Policy</a> -
|
654
|
+
<a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> -
|
655
|
+
<a href="http://privacy.yahoo.com/privacy/us/upcoming/">Privacy Policy</a>
|
656
|
+
</dd>
|
657
|
+
</dl>
|
658
|
+
</div> <script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/utilities/utilities.js"></script>
|
659
|
+
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/autocomplete/autocomplete-min.js"></script>
|
660
|
+
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/calendar/calendar-min.js"></script>
|
661
|
+
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/container/container-min.js"></script>
|
662
|
+
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/menu/menu-min.js"></script>
|
663
|
+
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/tabview/tabview-min.js"></script>
|
664
|
+
<script type="text/javascript" src="http://yui.yahooapis.com/2.5.1/build/cookie/cookie-beta-min.js"></script>
|
665
|
+
<script type="text/javascript" src="http://l.yimg.com/ycs.upcoming.yahoo.com/js/footer.minify_2352565f31dc0a2ca20212dcbdd19346.js"></script><script type="text/javascript" src="http://l.yimg.com/ycs.upcoming.yahoo.com/js/util_af84434aa3d1226ce8474811971a2ac2.js"></script><script type="text/javascript" src="http://l.yimg.com/ycs.upcoming.yahoo.com/js/performerForm_164c0e8cf4af9c00898a700b46b7a04d.js"></script><script type="text/javascript" src="http://l.yimg.com/ycs.upcoming.yahoo.com/js/performerSearchAdd_8371b2fb52cd6c7086e98ab7ecb1bc0d.js"></script><script type="text/javascript" src="http://l.yimg.com/ycs.upcoming.yahoo.com/js/event_page_5670718ff6635d0ed61cc53084b69215.js"></script><script type="text/javascript">YAHOO.up.hd.search.ghostText.setPlainLocation("Portland, Oregon 97214");</script><script type="text/javascript"><!--
|
666
|
+
var AW = new AttendWidgetEventPage(1363102,null,null,0,1,0,0,0,0,'attendWidget1363102','WQqdM22/soy');
|
667
|
+
-->
|
668
|
+
</script> <script type="text/javascript" src="http://us.js2.yimg.com/us.js.yimg.com/lib/rt/rto1_78.js"></script><script>var rt_page="97348559:FRTMA"; var rt_ip="24.22.40.60"; if ("function" == typeof(rt_AddVar) ){ rt_AddVar("ys", escape("8C3C8862"));}</script><noscript><img src="http://rtb.pclick.yahoo.com/images/nojs.gif?p=97348559:FRTMA"></noscript><script language=javascript>
|
669
|
+
if(window.yzq_d==null)window.yzq_d=new Object();
|
670
|
+
window.yzq_d['PA7EPNj8el0-']='&U=13gq1oodp%2fN%3dPA7EPNj8el0-%2fC%3d289534.10399734.11039816.10073328%2fD%3dFOOT%2fB%3d4466047%2fV%3d1';
|
671
|
+
</script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=CCVRemKIPI9hPwLmQI9UsAOrGBYoPEk9pyYACCVl&T=1425gmkrk%2fX%3d1228777254%2fE%3d97348559%2fR%3dupcoming%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d4101591957%2fQ%3d-1%2fS%3d1%2fJ%3d8C3C8862&U=13gq1oodp%2fN%3dPA7EPNj8el0-%2fC%3d289534.10399734.11039816.10073328%2fD%3dFOOT%2fB%3d4466047%2fV%3d1"></noscript><!-- SpaceID=97348559 loc=FSRVY noad -->
|
672
|
+
<script language=javascript>
|
673
|
+
if(window.yzq_d==null)window.yzq_d=new Object();
|
674
|
+
window.yzq_d['PQ7EPNj8el0-']='&U=12dbqce00%2fN%3dPQ7EPNj8el0-%2fC%3d-1%2fD%3dFSRVY%2fB%3d-1%2fV%3d0';
|
675
|
+
</script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=CCVRemKIPI9hPwLmQI9UsAOrGBYoPEk9pyYACCVl&T=142bdq7og%2fX%3d1228777254%2fE%3d97348559%2fR%3dupcoming%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d2487689334%2fQ%3d-1%2fS%3d1%2fJ%3d8C3C8862&U=12dbqce00%2fN%3dPQ7EPNj8el0-%2fC%3d-1%2fD%3dFSRVY%2fB%3d-1%2fV%3d0"></noscript> </body>
|
676
|
+
</html>
|
677
|
+
|
678
|
+
<!-- spaceid = -->
|
679
|
+
<script language=javascript>
|
680
|
+
if(window.yzq_p==null)document.write("<scr"+"ipt language=javascript src=http://l.yimg.com/us.js.yimg.com/lib/bc/bc_2.0.4.js></scr"+"ipt>");
|
681
|
+
</script><script language=javascript>
|
682
|
+
if(window.yzq_p)yzq_p('P=CCVRemKIPI9hPwLmQI9UsAOrGBYoPEk9pyYACCVl&T=13tvvb72o%2fX%3d1228777254%2fE%3d97348559%2fR%3dupcoming%2fK%3d5%2fV%3d1.1%2fW%3dJ%2fY%3dYAHOO%2fF%3d1465937063%2fS%3d1%2fJ%3d8C3C8862');
|
683
|
+
if(window.yzq_s)yzq_s();
|
684
|
+
</script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=CCVRemKIPI9hPwLmQI9UsAOrGBYoPEk9pyYACCVl&T=14249jfa7%2fX%3d1228777254%2fE%3d97348559%2fR%3dupcoming%2fK%3d5%2fV%3d3.1%2fW%3dJ%2fY%3dYAHOO%2fF%3d1416311146%2fQ%3d-1%2fS%3d1%2fJ%3d8C3C8862"></noscript>
|
685
|
+
<!-- w2.up.sp1.yahoo.com compressed/chunked Mon Dec 8 15:00:54 PST 2008 -->
|