# HG changeset patch # User Mario Ferraro # Date 1251212310 -3600 # Node ID cd9eed2b787e9146cd976377c522e639307719bb # Parent 0fe7767592d01f400a92f7813c5703e76da3b31b Made all JS code JSLint compliant. diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/blog-081117.js --- a/app/soc/content/js/blog-081117.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/blog-081117.js Tue Aug 25 15:58:30 2009 +0100 @@ -17,17 +17,19 @@ this.container_ = container; } -BlogPreview.prototype.show = function(url, entries_num, title, title_link) { +BlogPreview.prototype.show = function (url, entries_num, title, title_link) { var feed = new google.feeds.Feed(url); var preview = this; - feed.setNumEntries(entries_num) - feed.load(function(result) { + feed.setNumEntries(entries_num); + feed.load(function (result) { preview.render_(result, title, title_link); }); -} +}; -BlogPreview.prototype.render_ = function(result, title, title_link) { - if (!result.feed || !result.feed.entries) return; +BlogPreview.prototype.render_ = function (result, title, title_link) { + if (!result.feed || !result.feed.entries) { + return; + } while (this.container_.firstChild) { this.container_.removeChild(this.container_.firstChild); } @@ -52,20 +54,20 @@ } this.createDiv_(div, "snippet", entry.contentSnippet); } -} +}; -BlogPreview.prototype.createDiv_ = function(parent, className, opt_text) { +BlogPreview.prototype.createDiv_ = function (parent, className, opt_text) { return this.createElement_("div", parent, className, opt_text); -} +}; -BlogPreview.prototype.createLink_ = function(parent, href, text) { +BlogPreview.prototype.createLink_ = function (parent, href, text) { var link = this.createElement_("a", parent, "", text); link.href = href; return link; -} +}; -BlogPreview.prototype.createElement_ = function(tagName, parent, className, - opt_text) { +BlogPreview.prototype.createElement_ = function (tagName, parent, className, + opt_text) { var div = document.createElement(tagName); div.className = className; parent.appendChild(div); @@ -73,5 +75,5 @@ div.appendChild(document.createTextNode(opt_text)); } return div; -} +}; diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/bulk-review-090304.js --- a/app/soc/content/js/bulk-review-090304.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/bulk-review-090304.js Tue Aug 25 15:58:30 2009 +0100 @@ -1,99 +1,119 @@ -$(document).ready(function() { - $("#applications_progress_bar").progressBar({showText: false}); +jQuery(document).ready(function () { + jQuery("#applications_progress_bar").progressBar({showText: false}); }); -function bulkReviewInit(bulk_review_link,button) { - // get the JSON object with details of every application for bulk acceptance - $.getJSON(bulk_review_link+"?_="+(new Date().getTime()), - function(data){ - // If there are applications to review... - if (data.nr_applications != 0) { - //...then fade out the button, show the progress bar and call the function for review - $("[id^=button_bulk_]").fadeOut("slow", - function() { - $("#applications_progress_bar").progressBar(0); - $("#description_done").html(""); - $("#applications_progress_bar").fadeIn("slow", bulkReview(data)); - } - ); - }else { - var no_organization_text="No organizations to "; - if ($(button).attr("id").indexOf("reject")!=-1) { - no_organization_text+="reject"; - } - else { - no_organization_text+="accept"; - } - $("#description_done").html(""+no_organization_text+""); - } - } - ); -} +function bulkReview(data) { + // some global constants + var GLOBAL_LINK = data.link; + var TOTAL_APPLICATIONS = data.nr_applications; -function bulkReview(data) { - // some global constants - var GLOBAL_LINK = data.link; - var TOTAL_APPLICATIONS = data.nr_applications; - - // some global variables set needed for internal iteration - var application_index = 0; - // number of iteration is not taken from data.nr_applications - // to ensure avoidance of array out of bounds errors - var total_index = data.applications.length; + // some global variables set needed for internal iteration + var application_index = 0; + // number of iteration is not taken from data.nr_applications + // to ensure avoidance of array out of bounds errors + var total_index = data.applications.length; - // call immediately the function for review - // real iteration is inside - setTimeout(function(){ - var error_happened = false; + // call immediately the function for review + // real iteration is inside + setTimeout( + function () { + var error_happened = false; + var application = data.applications[application_index]; + var current_application = application_index + 1; + // regular expression to find a valid scope path + // inside matching parenthesis + var re = /\((\w*)\)/; + var scope_path = GLOBAL_LINK.match(re)[1]; + // the URL is obtained by using the scope path found + // in the matching parenthesis + var url_to_call = GLOBAL_LINK.replace(re, application[scope_path]); + // now we can call the URL found + jQuery.ajax({ + async: false, + cache: false, + url: url_to_call, + timeout: 10000, + success: function (data) { + if (data) { + // update progress bar percentage and description + var percentage = + Math.floor(100 * (current_application) / (TOTAL_APPLICATIONS)); + jQuery("#description_progressbar").html([ + " Processed application ", application.name, + " (", current_application, "/", TOTAL_APPLICATIONS, ")" + ].join("")); + jQuery("#applications_progress_bar").progressBar(percentage); + } + }, + error: function (XMLHttpRequest, textStatus, errorThrown) { + // if there is an error return the button and + // leave a try again message + error_happened = true; + jQuery("[id^=button_bulk_]").fadeIn( + "slow", + function () { + jQuery("#description_done").html([ + "", + " Error encountered, try again", + "" + ].join("")); + } + ); + } + }); + // if there were no errors, continue the iteration + if (!error_happened) { + // prepare for new iteration and then recall this function + application_index++; + if (application_index < total_index) { + setTimeout(arguments.callee, 0); + } + else { + // all ok, tell the user we are done + jQuery("#applications_progress_bar").fadeOut( + "slow", + function () { + jQuery("#applications_progress_bar").progressBar(0); + jQuery("[id^=button_bulk_]").fadeIn("slow"); + } + ); + jQuery("#description_progressbar").html(""); + jQuery("#description_done").html("Done!"); + } + } + }, + 0 + ); +} - var application = data.applications[application_index]; - var current_application = application_index + 1; - // regular expression to find a valid scope path inside matching parenthesis - var re = /\((\w*)\)/; - var scope_path = GLOBAL_LINK.match(re)[1]; - // the URL is obtained by using the scope path found in the matching parenthesis - var url_to_call = GLOBAL_LINK.replace(re, eval("application." + scope_path)); - // now we can call the URL found - $.ajax({ - async: false, - cache: false, - url: url_to_call, - timeout: 10000, - success: function(data) { - if (data) { - // update progress bar percentage and description - var percentage = Math.floor(100 * (current_application) / (TOTAL_APPLICATIONS)); - $("#description_progressbar").html(" Processed application " + application.name + " (" + (current_application) + "/" + TOTAL_APPLICATIONS + ")"); - $("#applications_progress_bar").progressBar(percentage); - } - }, - error: function(XMLHttpRequest, textStatus, errorThrown) { - // if there is an error return the button and leave a try again message - error_happened = true; - $("[id^=button_bulk_]").fadeIn("slow", function() { - $("#description_done").html(" Error encountered, try again"); - }); - } - }); - // if there were no errors, continue the iteration - if (!error_happened) { - // prepare for new iteration and then recall this function - application_index++; - if (application_index < total_index) { - setTimeout(arguments.callee, 0); - } - else { - // all ok, tell the user we are done - $("#applications_progress_bar").fadeOut("slow", - function() { - $("#applications_progress_bar").progressBar(0); - $("[id^=button_bulk_]").fadeIn("slow"); - } - ); - $("#description_progressbar").html(""); - $("#description_done").html("Done!"); - } - } - },0); +function bulkReviewInit(bulk_review_link, button) { + // get the JSON object with details of every application for bulk acceptance + jQuery.getJSON( + bulk_review_link + "?_=" + (new Date().getTime()), + function (data) { + // If there are applications to review... + if (data.nr_applications !== 0) { + //...then fade out the button, show the progress bar and call the function for review + jQuery("[id^=button_bulk_]").fadeOut( + "slow", + function () { + jQuery("#applications_progress_bar").progressBar(0); + jQuery("#description_done").html(""); + jQuery("#applications_progress_bar").fadeIn("slow", bulkReview(data)); + } + ); + } + else { + var no_organization_text = "No organizations to "; + if (jQuery(button).attr("id").indexOf("reject") !== -1) { + no_organization_text += "reject"; + } + else { + no_organization_text += "accept"; + } + jQuery("#description_done").html("" + no_organization_text + ""); + } + } + ); } diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/datetime-loader-090304.js --- a/app/soc/content/js/datetime-loader-090304.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/datetime-loader-090304.js Tue Aug 25 15:58:30 2009 +0100 @@ -1,5 +1,6 @@ -$(function() -{ -$('.datetime-pick').datetimepicker(); -}); +jQuery( + function () { + jQuery('.datetime-pick').datetimepicker(); + } +); diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/datetimepicker-090304.js --- a/app/soc/content/js/datetimepicker-090304.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/datetimepicker-090304.js Tue Aug 25 15:58:30 2009 +0100 @@ -1,10 +1,12 @@ -$(function() { - $('.datetime-pick').datetimepicker(); - $('.date-pick').datetimepicker({ - 'pickDateOnly' : true, - 'defaultDate' : new Date('01/01/1974'), - 'timeFormat' : '', - 'yearRange' : '1900:2008' - }); - }); +jQuery( + function () { + jQuery('.datetime-pick').datetimepicker(); + jQuery('.date-pick').datetimepicker({ + 'pickDateOnly': true, + 'defaultDate': new Date('01/01/1974'), + 'timeFormat': '', + 'yearRange': '1900:2008' + }); + } +); diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/duplicate-slots-090505.js --- a/app/soc/content/js/duplicate-slots-090505.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/duplicate-slots-090505.js Tue Aug 25 15:58:30 2009 +0100 @@ -1,105 +1,102 @@ -var duplicateSlots = new function() { +(function () { + var duplicateSlots = window.duplicateSlots = function () { + }; // this variable will contain all the org details, and filled // incrementally var orgs_details = {}; // this variable will contain all student/proposal data details, // filled incrementally - var assigned_proposals = new Array(); - - // public function to begin iterating load of JSONs and then call printing - // of duplicates - - this.showDuplicatesInit = function() { - - html_string = ''; - // Remember this object for Javascript scoping - var this_object = this; - var NUMBER_OF_ORGS = number_of_orgs; - var OFFSET_LENGTH = offset_length; - // Variables to handle progress bar updating - var ITERATIONS = (number_of_orgs % offset_length)==0 ? Math.floor(number_of_orgs/offset_length) : Math.floor(number_of_orgs/offset_length)+1; - - if (ITERATIONS==0) { - $("#div_duplicate_slots").html("No org slots to process"); - return; - } - - var successful_calls = 0; + var assigned_proposals = []; - $("#id_button_duplicate_slots").fadeOut("slow", - function() { - $("#duplicates_progress_bar").progressBar(0); - $("#description_done").html(""); - // For every ajax success, bind this function to update user feedback - $(this).bind("ajaxSuccess", function() { - successful_calls++; - var percentage = Math.floor(100 * (successful_calls) / (ITERATIONS)); - $("#duplicates_progress_bar").progressBar(percentage); - $("#description_progressbar").html(" Processed orgs chunk " + (successful_calls) + "/" + ITERATIONS); - // If this is the last call, feedback the user and print the duplicates data - if (successful_calls==ITERATIONS) { - $("#applications_progress_bar").fadeOut("slow", - function() { - $("#duplicates_progress_bar").progressBar(0); - $("#id_button_duplicate_slots").fadeIn("slow"); - } - ); - $("#description_progressbar").html(""); - $("#description_done").html(" Done!"); - $("#duplicates_progress_bar").fadeOut("slow", - function() { - $("#id_button_duplicate_slots").val("Recalculate").fadeIn("slow", - function() { - // Call printing to HTML function with correct scope - printDuplicatesAndSendJSON.call(this_object); - } - ); - } - ); - } - }); - // Call the showDuplicates function for the first time with correct scope - $("#duplicates_progress_bar").fadeIn("slow", showDuplicates.apply(this_object,[url_to_query,OFFSET_LENGTH,NUMBER_OF_ORGS])); + // public function to output actual HTML out of the data (cached or not) + duplicateSlots.showDuplicatesHtml = + function (orgs_details, student, student_key, proposals) { + /*jslint undef:false */ + if (html_string === '') { + jQuery("#div_duplicate_slots").html(''); + html_string = ''; + jQuery("#div_duplicate_slots").html(html_string); + /*jslint undef:true */ + }; - // Here Ajax call is handled - setTimeout(function() { - $.ajax({ - cache:false, - mode: "sync", - type: "GET", - timeout: 1000000, - dataType: "json", - url: "/program/assigned_proposals/"+url_to_query+"?limit="+OFFSET_LENGTH+"&offset="+current_offset, - success: function (data, textStatus) { - if (data) { - // Load JSON data - loadSingleJSONData(data); - } - }, - error: function(XMLHttpRequest, textStatus, errorThrown) { - // if there is an error return the button and leave a try again message - if (XMLHttpRequest!=undefined) { - $("#id_button_duplicate_slots").fadeIn("slow", function() { - $("#description_done").html(" Error encountered, try again"); - }); - } - } - }); - current_offset+=OFFSET_LENGTH; - if (current_offsetNo duplicate slots found"); + } + // at the end, send the JSON for caching purposes + jQuery.ajax({ + url: location.href, + type: 'POST', + processData: true, + data: {result: JSON.stringify(to_json)}, + contentType: 'application/json', + dataType: 'json' + }); } // private function to load a JSON and pushing the data to the @@ -107,19 +104,21 @@ function loadSingleJSONData(data) { if (data) { // pushing org details - for (var org_key in data.data.orgs) { - orgs_details[org_key] = data.data.orgs[org_key]; - } + jQuery.each(data.data.orgs, function (org_key, organization) { + orgs_details[org_key] = organization; + }); // pushing proposals - $(data.data.proposals).each( - function(intIndex, proposal) { + jQuery(data.data.proposals).each( + function (intIndex, proposal) { // if this student_key is not yet present - if (assigned_proposals[proposal.student_key]==undefined) { + if (assigned_proposals[proposal.student_key] === undefined) { // create the object and insert general info assigned_proposals[proposal.student_key] = {}; - assigned_proposals[proposal.student_key].name = proposal.student_name; - assigned_proposals[proposal.student_key].contact = proposal.student_contact; - assigned_proposals[proposal.student_key].proposals = new Array(); + assigned_proposals[proposal.student_key].name = + proposal.student_name; + assigned_proposals[proposal.student_key].contact = + proposal.student_contact; + assigned_proposals[proposal.student_key].proposals = []; } // anyway, push the accepted proposals assigned_proposals[proposal.student_key].proposals.push( @@ -134,58 +133,130 @@ } } - // private function to generate the JSON to send for caching and calling - // the actual function that will print the data - function printDuplicatesAndSendJSON() { - // JSON skeleton that need to be sent to the server - var to_json = { - "data": { - "orgs" : orgs_details, - "students": {} - } - } - // for every student... - for (var student_key in assigned_proposals) { - var accepted_proposals = assigned_proposals[student_key].proposals.length; - // if accepted proposal are less than 2, then ignore and continue the iteration - if (accepted_proposals<2) continue; - var student = assigned_proposals[student_key]; - // push this student to the caching JSON - to_json.data.students[student_key] = student; - var proposals = student.proposals; - // call the function that prints the output html - this.showDuplicatesHtml(orgs_details,student,student_key,proposals); - } - if (html_string=="") { - $("#div_duplicate_slots").html("No duplicate slots found"); - } - // at the end, send the JSON for caching purposes - $.ajax({ - url: location.href, - type: 'POST', - processData: true, - data: {result: JSON.stringify(to_json)}, - contentType: 'application/json', - dataType: 'json', - }); + function showDuplicates(url_to_query, OFFSET_LENGTH, NUMBER_OF_ORGS) { + var current_offset = 0; + orgs_details = {}; + assigned_proposals = []; + + // Here Ajax call is handled + setTimeout( + function () { + jQuery.ajax({ + cache: false, + mode: "sync", + type: "GET", + timeout: 1000000, + dataType: "json", + url: [ + "/program/assigned_proposals/", url_to_query, + "?limit=", OFFSET_LENGTH, + "&offset=", current_offset + ].join(""), + success: function (data, textStatus) { + if (data) { + // Load JSON data + loadSingleJSONData(data); + } + }, + error: function (XMLHttpRequest, textStatus, errorThrown) { + // if there is an error return the button and + // leave a try again message + if (XMLHttpRequest !== undefined) { + jQuery("#id_button_duplicate_slots").fadeIn("slow", + function () { + jQuery("#description_done").html([ + " ", + "Error encountered, try again", + "" + ].join("")); + } + ); + } + } + }); + current_offset += OFFSET_LENGTH; + if (current_offset < NUMBER_OF_ORGS) { + setTimeout(arguments.callee, 1); + } + }, + 1 + ); + // This prevent page reloading after each ajax call + return false; } - // public function to output actual HTML out of the data (cached or not) - this.showDuplicatesHtml = function(orgs_details,student,student_key,proposals) { - if (html_string == '') { - $("#div_duplicate_slots").html(''); - html_string=''; - $("#div_duplicate_slots").html(html_string); - } -} + }; +}()); \ No newline at end of file diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/map-090730.js --- a/app/soc/content/js/map-090730.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/map-090730.js Tue Aug 25 15:58:30 2009 +0100 @@ -1,10 +1,13 @@ -role_profile_gmap = new function(){ +(function () { + var role_profile_gmap = window.role_profile_gmap = function () { + }; + // Create global variables var map; var marker; var geocoder; - // The following strings can be customized to reflect ids in the page. + // The following strings can be customized to reflect ids in the page. // You can also add or remove fields used for GMap Geocoding in // the JSON address object @@ -48,62 +51,75 @@ id: "#id_res_postalcode", old_value: "" } - } + }; // Save current address fields in the JSON Object function saveOldAddress() { - for (var a in address) { - address[a].old_value = $(address[a].id).val(); - } + jQuery.each(address, function (level, level_details) { + level_details.old_value = jQuery(level_details.id).val(); + }); } // Return true if the user has edited address fields function isNewAddress() { - for (var a in address) { - if ($(address[a].id).val() != address[a].old_value) return true; - } - return false; + var is_new = false; + jQuery.each(address, function (level, level_details) { + if (jQuery(level_details.id).val() !== level_details.old_value) { + is_new = true; + return false; + } + }); + return is_new; } // Write saved lat and lng values to page fields function setLatLngFields() { - $(field_lat).val(current_lat); - $(field_lng).val(current_lng); + jQuery(field_lat).val(current_lat); + jQuery(field_lng).val(current_lng); } // Read lat and lng fields and store them function readLatLngFields() { - current_lat = $(field_lat).val(); - current_lng = $(field_lng).val(); + current_lat = jQuery(field_lat).val(); + current_lng = jQuery(field_lng).val(); } - // This function reads address fields, merge them and uses + // This function reads address fields, merge them and uses // GMap API geocoding to find the first hit - // Using geocoding http://code.google.com/intl/it-IT/apis/maps/documentation/services.html#Geocoding + // Using geocoding + // http://code.google.com/intl/it-IT/apis/maps/documentation/ + // services.html#Geocoding function calculateAddress() { // If the user has really edited address fields... if (isNewAddress()) { // Merge address fields var address_string = ""; - for (var a in address) { - address_string+=$(address[a].id).val(); - if (a!=address.length-1) {address_string+=","}; - } + jQuery.each(address, function (level, level_details) { + address_string += jQuery(level_details.id).val() + ","; + }); // Ask GMap API for geocoding geocoder.getLatLng( address_string, - function(point) { + function (point) { // If a point is found if (point) { // Save the current address in the JSON object saveOldAddress(); // Set the new zoom, map center and marker coords var zoom_set = world_zoom; - if ($(address.street.id).val()!="") zoom_set = address_zoom; - else if ($(address.city.id).val()!="") zoom_set = city_zoom; - else if ($(address.state.id).val()!="") zoom_set = state_zoom; - else if ($(address.country.id).val()!="") zoom_set = country_zoom; + if (jQuery(address.street.id).val() !== "") { + zoom_set = address_zoom; + } + else if (jQuery(address.city.id).val() !== "") { + zoom_set = city_zoom; + } + else if (jQuery(address.state.id).val() !== "") { + zoom_set = state_zoom; + } + else if (jQuery(address.country.id).val() !== "") { + zoom_set = country_zoom; + } map.setCenter(point, zoom_set); marker.setPoint(point); map.clearOverlays(); @@ -120,12 +136,12 @@ } // Public function to load the map - this.map_load = function() { + role_profile_gmap.map_load = function () { // All can happen only if there is gmap compatible browser. // TODO: Fallback in case the browser is not compatible - if (GBrowserIsCompatible()) { - // Save the address fields. This is useful if the page is being edited - // to not update blindly the lat/lng fields with GMap geocoding if + if (window.GBrowserIsCompatible()) { + // Save the address fields. This is useful if the page is being edited + // to not update blindly the lat/lng fields with GMap geocoding if // blurring an address field saveOldAddress(); var starting_point; @@ -133,36 +149,38 @@ var show_marker = true; // Create the map and add small controls - map = new GMap2(document.getElementById(map_div)); - map.addControl(new GSmallMapControl()); - map.addControl(new GMapTypeControl()); + map = new window.GMap2(document.getElementById(map_div)); + map.addControl(new window.GSmallMapControl()); + map.addControl(new window.GMapTypeControl()); // Instantiate a global geocoder for future use - geocoder = new GClientGeocoder(); + geocoder = new window.GClientGeocoder(); - // If lat and lng fields are not void (the page is being edited) then - // update the starting coords, modify the zoom level and tells following + // If lat and lng fields are not void (the page is being edited) then + // update the starting coords, modify the zoom level and tells following // code to show the marker - if ($(field_lat).val()!="" && $(field_lng).val()!="") { + if (jQuery(field_lat).val() !== "" && jQuery(field_lng).val() !== "") { readLatLngFields(); zoom_selected = address_zoom; show_marker = true; } - + // Set map center, marker coords and show it if this is an editing - starting_point = new GLatLng(current_lat,current_lng); + starting_point = new window.GLatLng(current_lat, current_lng); map.setCenter(starting_point, zoom_selected); - marker = new GMarker(starting_point, {draggable:true}); - if (show_marker) map.addOverlay(marker); - + marker = new window.GMarker(starting_point, {draggable: true}); + if (show_marker) { + map.addOverlay(marker); + } + // Adds a new event listener to geocode the address when an address // field is blurred - for (var a in address) { - $(address[a].id).blur(calculateAddress); - } - + jQuery.each(address, function (level, level_details) { + jQuery(level_details.id).blur(calculateAddress); + }); + // Adds a new event listener: if the marker has been dragged around... - GEvent.addListener(marker, "dragend", function() { + window.GEvent.addListener(marker, "dragend", function () { // Update internal variables with current marker coords... current_lat = marker.getPoint().lat(); current_lng = marker.getPoint().lng(); @@ -170,54 +188,56 @@ setLatLngFields(); }); } - } -}; + }; +}()); -org_home_gmap = new function(){ +(function () { + var org_home_gmap = window.org_home_gmap = function () { + }; // Global variables var map; // HTML div tag where map needs to be inserted var map_div = "org_home_map"; - + // Setup required icons - var base_icon = new GIcon(); + var base_icon = new window.GIcon(); base_icon.shadow = "http://www.google.com/mapfiles/shadow50.png"; - base_icon.iconSize = new GSize(20, 34); - base_icon.shadowSize = new GSize(37, 34); - base_icon.iconAnchor = new GPoint(9, 34); - base_icon.infoWindowAnchor = new GPoint(9, 2); - base_icon.infoShadowAnchor = new GPoint(18, 25); - var student_icon = new GIcon(base_icon); + base_icon.iconSize = new window.GSize(20, 34); + base_icon.shadowSize = new window.GSize(37, 34); + base_icon.iconAnchor = new window.GPoint(9, 34); + base_icon.infoWindowAnchor = new window.GPoint(9, 2); + base_icon.infoShadowAnchor = new window.GPoint(18, 25); + var student_icon = new window.GIcon(base_icon); student_icon.image = "http://www.google.com/mapfiles/marker.png"; - var mentor_icon = new GIcon(base_icon); + var mentor_icon = new window.GIcon(base_icon); mentor_icon.image = "/soc/content/images/mentor-marker.png"; // Map load function - this.map_load = function(map_data) { + org_home_gmap.map_load = function (map_data) { - if (GBrowserIsCompatible()) { + if (window.GBrowserIsCompatible()) { // Create the map and add small controls - map = new GMap2(document.getElementById(map_div)); - map.addControl(new GLargeMapControl()); - map.addControl(new GMapTypeControl()); + map = new window.GMap2(document.getElementById(map_div)); + map.addControl(new window.GLargeMapControl()); + map.addControl(new window.GMapTypeControl()); // Set map center and initial zoom level - map.setCenter(new GLatLng(0, 0), 1); + map.setCenter(new window.GLatLng(0, 0), 1); var mentors = {}; var students = {}; var projects = {}; var polylines = []; - jQuery.each(map_data.people, function(key, person) { + jQuery.each(map_data.people, function (key, person) { if (person.type === "student") { students[key] = { "name": person.name, "lat": person.lat, "long": person.long, "projects": person.projects - } + }; } if (person.type === "mentor") { mentors[key] = { @@ -239,31 +259,41 @@ current_student.long !== null && current_mentor.lat !== null && current_mentor.long !== null) { - polylines.push([[current_student.lat,current_student.long],[current_mentor.lat,current_mentor.long]]); + /*jslint white: false */ + polylines.push([ + [current_student.lat, current_student.long], + [current_mentor.lat, current_mentor.long] + ]); + /*jslint white: true */ } }); // Iterate over students - jQuery.each(students, function(key, person) { + jQuery.each(students, function (key, person) { var html = ""; var marker = null; - if (person.lat!==null && person.long!==null) { - point = new GLatLng(person.lat, - person.long); + if (person.lat !== null && person.long !== null) { + var point = new window.GLatLng(person.lat, person.long); - marker = new GMarker(point, student_icon); - html = "" + person.name + "
"; - html += "Student
"; - html += "
"; + marker = new window.GMarker(point, student_icon); + html = [ + "", person.name, "
", + "Student
", + "
" + ].join(""); // iterate through projects jQuery.each(person.projects, function () { var current_project = map_data.projects[this]; - html += "" + current_project.title + "
"; - html += "Mentor: " + current_project.mentor_name + "
"; + html += [ + "", + current_project.title, "
", + "Mentor: ", current_project.mentor_name, "
" + ].join(""); }); - html+= "
"; - GEvent.addListener(marker, "click", function() { + html += "
"; + window.GEvent.addListener(marker, "click", function () { marker.openInfoWindowHtml(html); }); @@ -272,27 +302,32 @@ }); // Iterate over mentors - jQuery.each(mentors, function(key, person) { + jQuery.each(mentors, function (key, person) { var html = ""; var marker = null; - if (person.lat!==null && person.long!==null) { - point = new GLatLng(person.lat, - person.long); + if (person.lat !== null && person.long !== null) { + var point = new window.GLatLng(person.lat, person.long); - marker = new GMarker(point, mentor_icon); - html = "" + person.name + "
"; - html += "Mentor
"; - html += "
"; + marker = new window.GMarker(point, mentor_icon); + html = [ + "", person.name, "
", + "Mentor
", + "
" + ].join(""); // iterate through projects jQuery.each(person.projects, function () { var current_project = map_data.projects[this]; - html += "" + current_project.title + "
"; - html += "Student: " + current_project.student_name + "
"; + html += [ + "", + current_project.title, "
", + "Student: ", current_project.student_name, "
" + ].join(""); }); - html+= "
"; + html += "
"; - GEvent.addListener(marker, "click", function() { + window.GEvent.addListener(marker, "click", function () { marker.openInfoWindowHtml(html); }); @@ -301,12 +336,12 @@ }); // Draw all polylines - jQuery.each(polylines, function() { - var from = new GLatLng(this[0][0],this[0][1]); - var to = new GLatLng(this[1][0],this[1][1]); - var polyline = new GPolyline([from, to], "#ff0000", 3); + jQuery.each(polylines, function () { + var from = new window.GLatLng(this[0][0], this[0][1]); + var to = new window.GLatLng(this[1][0], this[1][1]); + var polyline = new window.GPolyline([from, to], "#ff0000", 3); map.addOverlay(polyline); }); } - } -}; + }; +}()); diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/menu-081108.js --- a/app/soc/content/js/menu-081108.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/menu-081108.js Tue Aug 25 15:58:30 2009 +0100 @@ -1,22 +1,24 @@ -$(function() { +jQuery(function () { + var new_item_text = "(new)"; + jQuery('#menu li.expandable').find('a').each(function () { + if (jQuery(this).text().indexOf(new_item_text) > -1) { + jQuery(this).css('color', 'red'); + } + }); - var new_item_text = "(new)" - $('#menu li.expandable').find('a').each(function(){ - if ($(this).text().indexOf(new_item_text) > -1) - $(this).css('color', 'red'); - }); - - $('#side #menu li.expandable > a').dblclick(function() { - window.location = $(this).attr('href'); - }) - $('#side #menu li.expandable > span').toggle(function() { - $(this).find("img").attr('src', '/soc/content/images/plus.gif') + jQuery('#side #menu li.expandable > a').dblclick(function () { + window.location = jQuery(this).attr('href'); + }); + + jQuery('#side #menu li.expandable > span').toggle(function () { + jQuery(this).find("img").attr('src', '/soc/content/images/plus.gif') .end().parent().children("ul").toggle(); - }, function() { - $(this).find("img").attr('src', '/soc/content/images/minus.gif') + }, function () { + jQuery(this).find("img").attr('src', '/soc/content/images/minus.gif') .end().parent().children("ul").toggle(); return false; }); - $('#side #menu li.expandable > span').contents() + + jQuery('#side #menu li.expandable > span').contents() .before(''); -}); +}); diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/slot-allocator-090320.js --- a/app/soc/content/js/slot-allocator-090320.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/slot-allocator-090320.js Tue Aug 25 15:58:30 2009 +0100 @@ -9,29 +9,52 @@ "

", "

", "
", - "", - ].join(''); + "" +].join(''); + +jQuery.postJSON = function (post_url, to_json, callback) { + jQuery.ajax({ + url: post_url, + type: 'POST', + processData: true, + data: {result: JSON.stringify(to_json)}, + contentType: 'application/json', + dataType: 'json', + success: callback + }); +}; -$.postJSON = function (post_url, to_json, callback) { - $.ajax({ - url: post_url, - type: 'POST', - processData: true, - data: {result: JSON.stringify(to_json)}, - contentType: 'application/json', - dataType: 'json', - success: callback, - }); -}; +function updateCurrentSlots() { + current_allocated_slots = 0; + jQuery.each(current_slots, function (org_id, org_details) { + current_allocated_slots = + current_allocated_slots + Number(org_details.slots); + }); +} + +function updateOverlay() { + updateCurrentSlots(); + var remaining_slots = window.MAX_AVAILABLE_SLOTS - current_allocated_slots; + jQuery("#p_assigned_slots") + .html("Assigned slots: " + current_allocated_slots); + jQuery("#p_remaining_slots") + .html("Remaining slots: " + remaining_slots); +} function updateFromJSON(data) { if (data) { - $(data.data).each( - function (intIndex,item) { - $("#id_spin_slot_count_"+item.link_id).val(item.slots); - current_slots[item.link_id] = {slots: item.slots, locked: item.locked, adjustment: item.adjustment}; - $("#id_locked_slot_"+item.link_id).attr("checked",item.locked); - $("#id_spin_adjustment_count_"+item.link_id).val(item.adjustment); + jQuery(data.data).each( + function (intIndex, item) { + jQuery("#id_spin_slot_count_" + item.link_id).val(item.slots); + current_slots[item.link_id] = { + slots: item.slots, + locked: item.locked, + adjustment: item.adjustment + }; + jQuery("#id_locked_slot_" + item.link_id) + .attr("checked", item.locked); + jQuery("#id_spin_adjustment_count_" + item.link_id) + .val(item.adjustment); } ); updateOverlay(); @@ -39,61 +62,49 @@ } function retrieveJSON() { - $.getJSON(RETURN_URL+"?_="+(new Date().getTime()), function(data) { - if (data) { - updateFromJSON(data); + jQuery.getJSON( + window.RETURN_URL + "?_=" + (new Date().getTime()), + function (data) { + if (data) { + updateFromJSON(data); + } } - } ); } function reCalculate() { - url = RETURN_URL+"?_="+(new Date().getTime()) -  $.postJSON(url, current_slots, updateFromJSON); + var url = window.RETURN_URL + "?_=" + (new Date().getTime()); +  jQuery.postJSON(url, current_slots, updateFromJSON); } function submit() { - url = RETURN_URL+"?submit=1&_="+(new Date().getTime()) -  $.postJSON(url, current_slots, updateFromJSON); + var url = window.RETURN_URL + "?submit=1&_=" + (new Date().getTime()); +  jQuery.postJSON(url, current_slots, updateFromJSON); } function load() { - url = RETURN_URL+"?load=1&_="+(new Date().getTime()) -  $.postJSON(url, current_slots, updateFromJSON); + var url = window.RETURN_URL + "?load=1&_=" + (new Date().getTime()); +  jQuery.postJSON(url, current_slots, updateFromJSON); } -function updateOverlay() { - updateCurrentSlots(); - var remaining_slots = MAX_AVAILABLE_SLOTS - current_allocated_slots; - $("#p_assigned_slots").html("Assigned slots: "+current_allocated_slots); - $("#p_remaining_slots").html("Remaining slots: "+remaining_slots); -} - -function updateCurrentSlots() { - current_allocated_slots = 0; - for (var org_id in current_slots) { - current_allocated_slots = current_allocated_slots+new Number(current_slots[org_id].slots); - } -} - -function lockSlots (checkbox) { - var locked = $(checkbox).attr("checked"); +function lockSlots(checkbox) { + var locked = jQuery(checkbox).attr("checked"); var re = /^id_locked_slot_(\w*)/; var org_link_id = checkbox.id.match(re)[1]; current_slots[org_link_id].locked = locked; } -function assignSlots (counter) { +function assignSlots(counter) { var re = /^id_spin_slot_count_(\w*)/; var org_link_id = counter.id.match(re)[1]; - current_slots[org_link_id].slots = $(counter).val(); + current_slots[org_link_id].slots = jQuery(counter).val(); updateCurrentSlots(); updateOverlay(); } -function assignAdjustment (counter) { +function assignAdjustment(counter) { var re = /^id_spin_adjustment_count_(\w*)/; var org_link_id = counter.id.match(re)[1]; - current_slots[org_link_id].adjustment = $(counter).val(); + current_slots[org_link_id].adjustment = jQuery(counter).val(); } diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/survey-edit-090708.js --- a/app/soc/content/js/survey-edit-090708.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/survey-edit-090708.js Tue Aug 25 15:58:30 2009 +0100 @@ -454,8 +454,10 @@ (function ($) { $(function () { - var del_li = [" "]; + var del_li = [ + " " + ]; // Confirmation dialog for deleting list/choice-field item from survey $("#delete_item_dialog").dialog({ @@ -503,7 +505,7 @@ '', name, '', '', '' + name.replace(/\"/g, '"'), '" >', '' ].join("")); ol.append( @@ -717,7 +719,7 @@ '', oname, '', '', '' + '__field" value="', oname.replace(/\"/g, '"'), '" >', '' ].join("")); ol.append(option_html.prepend( del_li.join(option_html.attr('id')))); diff -r 0fe7767592d0 -r cd9eed2b787e app/soc/content/js/survey-take-090708.js --- a/app/soc/content/js/survey-take-090708.js Tue Aug 25 15:55:26 2009 +0100 +++ b/app/soc/content/js/survey-take-090708.js Tue Aug 25 15:58:30 2009 +0100 @@ -54,9 +54,11 @@ .find('.pick_multi').each( function () { $(this).find('input').each( + /*jslint white: false */ function () { // if $(this).attr('checked', 'true');}); } + /*jslint white: true */ ); } ); @@ -142,12 +144,12 @@ * == Customize Comment Appearance == */ - var comments = widget.find('td > .comment'); - comments.each(function(){ - $(this).parents('tr:first') + var comments = widget.find('td > .comment'); + comments.each(function () { + $(this).parents('tr:first') .prev().css({'margin-top': '-10px'}) .find('label').css({'font-size': '11px'}); - }); + }); }); }(jQuery));