annotate media/js/timezone.js @ 197:2baadae33f2e

Got autocomplete working for the member search. Updated django and ran into a bug where url tags with comma separated kwargs starting consuming tons of CPU throughput. The work-around is to cut over to using spaces between arguments. This is now allowed to be consistent with other tags. Did some query optimization for the news app.
author Brian Neal <bgneal@gmail.com>
date Sat, 10 Apr 2010 04:32:24 +0000
parents c0d3b09c9b95
children ed6202fb08b6
rev   line source
bgneal@70 1 var gcalTzInfo = {
bgneal@70 2 areas: ['Africa', 'America', 'Antarctica', 'Asia', 'Atlantic', 'Australia', 'Europe', 'Indian', 'Pacific', 'US'],
bgneal@70 3 locations: [['Abidjan', 'Accra', 'Addis Ababa', 'Algiers', 'Asmara', 'Bamako', 'Bangui', 'Banjul', 'Bissau', 'Blantyre', 'Brazzaville', 'Bujumbura', 'Cairo', 'Casablanca', 'Ceuta', 'Conakry', 'Dakar', 'Dar es Salaam', 'Djibouti', 'Douala', 'El Aaiun', 'Freetown', 'Gaborone', 'Harare', 'Johannesburg', 'Kampala', 'Khartoum', 'Kigali', 'Kinshasa', 'Lagos', 'Libreville', 'Lome', 'Luanda', 'Lubumbashi', 'Lusaka', 'Malabo', 'Maputo', 'Maseru', 'Mbabane', 'Mogadishu', 'Monrovia', 'Nairobi', 'Ndjamena', 'Niamey', 'Nouakchott', 'Ouagadougou', 'Porto-Novo', 'Sao Tome', 'Tripoli', 'Tunis', 'Windhoek'],
bgneal@70 4 ['Adak', 'Anchorage', 'Anguilla', 'Antigua', 'Araguaina', 'Argentina/Buenos Aires', 'Argentina/Catamarca', 'Argentina/Cordoba', 'Argentina/Jujuy', 'Argentina/La Rioja', 'Argentina/Mendoza', 'Argentina/Rio Gallegos', 'Argentina/Salta', 'Argentina/San Juan', 'Argentina/San Luis', 'Argentina/Tucuman', 'Argentina/Ushuaia', 'Aruba', 'Asuncion', 'Atikokan', 'Bahia', 'Barbados', 'Belem', 'Belize', 'Blanc-Sablon', 'Boa Vista', 'Bogota', 'Boise', 'Cambridge Bay', 'Campo Grande', 'Cancun', 'Caracas', 'Cayenne', 'Cayman', 'Chicago', 'Chihuahua', 'Costa Rica', 'Cuiaba', 'Curacao', 'Danmarkshavn', 'Dawson', 'Dawson Creek', 'Denver', 'Detroit', 'Dominica', 'Edmonton', 'Eirunepe', 'El Salvador', 'Fortaleza', 'Glace Bay', 'Godthab', 'Goose Bay', 'Grand Turk', 'Grenada', 'Guadeloupe', 'Guatemala', 'Guayaquil', 'Guyana', 'Halifax', 'Havana', 'Hermosillo', 'Indiana/Indianapolis', 'Indiana/Knox', 'Indiana/Marengo', 'Indiana/Petersburg', 'Indiana/Tell City', 'Indiana/Vevay', 'Indiana/Vincennes', 'Indiana/Winamac', 'Inuvik', 'Iqaluit', 'Jamaica', 'Juneau', 'Kentucky/Louisville', 'Kentucky/Monticello', 'La Paz', 'Lima', 'Los Angeles', 'Maceio', 'Managua', 'Manaus', 'Martinique', 'Mazatlan', 'Menominee', 'Merida', 'Mexico City', 'Miquelon', 'Moncton', 'Monterrey', 'Montevideo', 'Montreal', 'Montserrat', 'Nassau', 'New York', 'Nipigon', 'Nome', 'Noronha', 'North Dakota/Center', 'North Dakota/New Salem', 'Panama', 'Pangnirtung', 'Paramaribo', 'Phoenix', 'Port of Spain', 'Port-au-Prince', 'Porto Velho', 'Puerto Rico', 'Rainy River', 'Rankin Inlet', 'Recife', 'Regina', 'Resolute', 'Rio Branco', 'Santarem', 'Santiago', 'Santo Domingo', 'Sao Paulo', 'Scoresbysund', 'St Johns', 'St Kitts', 'St Lucia', 'St Thomas', 'St Vincent', 'Swift Current', 'Tegucigalpa', 'Thule', 'Thunder Bay', 'Tijuana', 'Toronto', 'Tortola', 'Vancouver', 'Whitehorse', 'Winnipeg', 'Yakutat', 'Yellowknife'],
bgneal@70 5 ['Casey', 'Davis', 'DumontDUrville', 'Mawson', 'McMurdo', 'Palmer', 'Rothera', 'Syowa', 'Vostok'],
bgneal@70 6 ['Aden', 'Almaty', 'Amman', 'Anadyr', 'Aqtau', 'Aqtobe', 'Ashgabat', 'Baghdad', 'Bahrain', 'Baku', 'Bangkok', 'Beirut', 'Bishkek', 'Brunei', 'Choibalsan', 'Chongqing', 'Colombo', 'Damascus', 'Dhaka', 'Dili', 'Dubai', 'Dushanbe', 'Gaza', 'Harbin', 'Ho Chi Minh', 'Hong Kong', 'Hovd', 'Irkutsk', 'Jakarta', 'Jayapura', 'Jerusalem', 'Kabul', 'Kamchatka', 'Karachi', 'Kashgar', 'Kathmandu', 'Kolkata', 'Krasnoyarsk', 'Kuala Lumpur', 'Kuching', 'Kuwait', 'Macau', 'Magadan', 'Makassar', 'Manila', 'Muscat', 'Nicosia', 'Novosibirsk', 'Omsk', 'Oral', 'Phnom Penh', 'Pontianak', 'Pyongyang', 'Qatar', 'Qyzylorda', 'Rangoon', 'Riyadh', 'Sakhalin', 'Samarkand', 'Seoul', 'Shanghai', 'Singapore', 'Taipei', 'Tashkent', 'Tbilisi', 'Tehran', 'Thimphu', 'Tokyo', 'Ulaanbaatar', 'Urumqi', 'Vientiane', 'Vladivostok', 'Yakutsk', 'Yekaterinburg', 'Yerevan'],
bgneal@70 7 ['Azores', 'Bermuda', 'Canary', 'Cape Verde', 'Faroe', 'Madeira', 'Reykjavik', 'South Georgia', 'St Helena', 'Stanley'],
bgneal@70 8 ['Adelaide', 'Brisbane', 'Broken Hill', 'Currie', 'Darwin', 'Eucla', 'Hobart', 'Lindeman', 'Lord Howe', 'Melbourne', 'Perth', 'Sydney'],
bgneal@70 9 ['Amsterdam', 'Andorra', 'Athens', 'Belgrade', 'Berlin', 'Brussels', 'Bucharest', 'Budapest', 'Chisinau', 'Copenhagen', 'Dublin', 'Gibraltar', 'Helsinki', 'Istanbul', 'Kaliningrad', 'Kiev', 'Lisbon', 'London', 'Luxembourg', 'Madrid', 'Malta', 'Minsk', 'Monaco', 'Moscow', 'Oslo', 'Paris', 'Prague', 'Riga', 'Rome', 'Samara', 'Simferopol', 'Sofia', 'Stockholm', 'Tallinn', 'Tirane', 'Uzhgorod', 'Vaduz', 'Vienna', 'Vilnius', 'Volgograd', 'Warsaw', 'Zaporozhye', 'Zurich'],
bgneal@70 10 ['Antananarivo', 'Chagos', 'Christmas', 'Cocos', 'Comoro', 'Kerguelen', 'Mahe', 'Maldives', 'Mauritius', 'Mayotte', 'Reunion'],
bgneal@70 11 ['Apia', 'Auckland', 'Chatham', 'Easter', 'Efate', 'Enderbury', 'Fakaofo', 'Fiji', 'Funafuti', 'Galapagos', 'Gambier', 'Guadalcanal', 'Guam', 'Honolulu', 'Johnston', 'Kiritimati', 'Kosrae', 'Kwajalein', 'Majuro', 'Marquesas', 'Midway', 'Nauru', 'Niue', 'Norfolk', 'Noumea', 'Pago Pago', 'Palau', 'Pitcairn', 'Ponape', 'Port Moresby', 'Rarotonga', 'Saipan', 'Tahiti', 'Tarawa', 'Tongatapu', 'Truk', 'Wake', 'Wallis'],
bgneal@70 12 ['Alaska', 'Arizona', 'Central', 'Eastern', 'Hawaii', 'Mountain', 'Pacific']],
bgneal@70 13 default_area: 9,
bgneal@70 14 default_location: 6
bgneal@70 15 };
bgneal@70 16
bgneal@70 17 $(document).ready(function() {
bgneal@70 18 var $tz_area = $('#id_tz_area');
bgneal@70 19 var $tz_loc = $('#id_tz_location');
bgneal@70 20 var tz_area = $tz_area[0];
bgneal@70 21 var tz_loc = $tz_loc[0];
bgneal@70 22 tz_area.options.length = 0;
bgneal@70 23 for (var i = 0; i < gcalTzInfo.areas.length; ++i)
bgneal@70 24 {
bgneal@70 25 tz_area.options[i] = new Option(gcalTzInfo.areas[i]);
bgneal@70 26 }
bgneal@70 27 var tz = $('#id_time_zone').val();
bgneal@70 28 if (tz == '')
bgneal@70 29 {
bgneal@70 30 tz_area.options.selectedIndex = gcalTzInfo.default_area;
bgneal@70 31 }
bgneal@70 32 else
bgneal@70 33 {
bgneal@70 34 var area_match = tz.match(/^(\w+)\/.*$/);
bgneal@70 35 if (area_match != null)
bgneal@70 36 {
bgneal@70 37 var i = gcalTzInfo.areas.indexOf(area_match[1]);
bgneal@70 38 tz_area.options.selectedIndex = (i != -1) ? i : gcalTzInfo.default_area;
bgneal@70 39 }
bgneal@70 40 else
bgneal@70 41 {
bgneal@70 42 tz_area.options.selectedIndex = gcalTzInfo.default_area;
bgneal@70 43 }
bgneal@70 44 }
bgneal@70 45
bgneal@70 46 $tz_area.change(function () {
bgneal@70 47 tz_loc.options.length = 0;
bgneal@70 48 var area = tz_area.options.selectedIndex;
bgneal@70 49 for (var i = 0; i < gcalTzInfo.locations[area].length; ++i)
bgneal@70 50 {
bgneal@70 51 tz_loc.options[i] = new Option(gcalTzInfo.locations[area][i]);
bgneal@70 52 }
bgneal@70 53 }).change();
bgneal@70 54
bgneal@70 55 if (tz == '')
bgneal@70 56 {
bgneal@70 57 tz_loc.options.selectedIndex = gcalTzInfo.default_location;
bgneal@70 58 }
bgneal@70 59 else
bgneal@70 60 {
bgneal@70 61 var loc_match = tz.match(/^[^\/]+\/(.*)$/);
bgneal@70 62 if (loc_match != null)
bgneal@70 63 {
bgneal@70 64 var loc = loc_match[1].replace(/_/g, ' ');
bgneal@70 65 var i = gcalTzInfo.locations[tz_area.options.selectedIndex].indexOf(loc);
bgneal@70 66 tz_loc.options.selectedIndex = (i != -1) ? i : gcalTzInfo.default_location;
bgneal@70 67 }
bgneal@70 68 else
bgneal@70 69 {
bgneal@70 70 tz_loc.options.selectedIndex = gcalTzInfo.default_location;
bgneal@70 71 }
bgneal@70 72 }
bgneal@70 73
bgneal@70 74 $tz_area.parents('form').submit(function () {
bgneal@70 75 var area = $tz_area.val();
bgneal@70 76 var loc = $tz_loc.val();
bgneal@70 77 var tz = area + '/' + loc.replace(/ /g, '_');
bgneal@70 78 $('#id_time_zone').val(tz);
bgneal@70 79 return true;
bgneal@70 80 });
bgneal@70 81 });