From 43627bbc2618fb023ca092ee70b5fbbe01d5a54b Mon Sep 17 00:00:00 2001 From: Craig Harman Date: Fri, 13 Jun 2014 15:50:22 -0400 Subject: [PATCH 1/2] Fixed JSHint warnings, pruned commented-out code. Ran JSHint on dynamic_wordclouds.js with the flag 'undef:true', which prohibits the use of explicitly undeclared variables. Added variable declarations where appropriate. --- dynamic_wordclouds.js | 268 ++++++++++++++++-------------------------- 1 file changed, 100 insertions(+), 168 deletions(-) diff --git a/dynamic_wordclouds.js b/dynamic_wordclouds.js index f28555b..907e156 100644 --- a/dynamic_wordclouds.js +++ b/dynamic_wordclouds.js @@ -2,6 +2,9 @@ -- deal with default bootstrap.js handling of clicking on menus so we can click-edit values into the sliders */ +// Global variable defined in floating-1.12.js ['global' comment below used by JSHint] +/* global floatingMenu */ + //Data containers var master_datasets = []; //All datasets encoded @@ -50,8 +53,8 @@ var s = { display_hashtags: true, display_user_mentions: true, wordcloud_element: 'wordcloud_location', - onclick_function: function (token) { - default_example_onclick(token); + onclick_function: function (token_text) { + default_example_onclick(token_text); }, oncontextclick_function: function (token) { } @@ -80,7 +83,7 @@ var highlight_keywords = false; /**Example Windows**/ /*******************/ -//if (document.getElementById('floatdivright')) { +if (document.getElementById('floatdivright')) { floatingMenu.add('floatdivright', { // Represents distance from left or right browser window @@ -103,16 +106,16 @@ var highlight_keywords = false; // Remove this one if you don't want snap effect snap: true }); -//} +} -//if (document.getElementById('floatdivleft')) { +if (document.getElementById('floatdivleft')) { floatingMenu.add('floatdivleft', { targetLeft: 10, targetBottom: 10, snap: true }); -//} +} function hide_example_windows() { $('#floatdivright').hide(); @@ -125,6 +128,7 @@ function show_example_windows() { } $('#floatdivleft').show(); } + function default_example_onclick(token) { if (token.length > 50) { //This happens if you click outside a word, ignore. @@ -135,7 +139,7 @@ function default_example_onclick(token) { var r_tokens = master_datasets[display_index_in_master_data[1]].tokens; var r_str_exs = 'N/A'; if (token in r_tokens) { - r_str_exs = r_tokens[token].examples.join('
 
'); + r_str_exs = r_tokens[token].examples.join('

'); } $('#examples_right').html(r_str_exs); } @@ -143,7 +147,7 @@ function default_example_onclick(token) { var l_tokens = master_datasets[display_index_in_master_data[0]].tokens; var l_str_exs = 'N/A'; if (token in l_tokens) { - l_str_exs = l_tokens[token].examples.join('
 
'); + l_str_exs = l_tokens[token].examples.join('

'); } $('#examples_left').html(l_str_exs); @@ -183,10 +187,7 @@ function initialize_wordcloud_controls() { function common_cloud_change(event, ui) { var orig_value = $("#common_cloud_controls").slider("values", 0); //Dynamic range seems to want to be between 0 and 0.03 - //value = orig_value / (100 / 0.01) - value = orig_value; - //value = orig_value * (100/55) / 5000 //Convert value to something more sensible for a threshold - //DEBUG//document.getElementById('common_cloud_controls_out').innerHTML = value + " " + orig_value; + var value = orig_value; s.center_threshold = value; draw_wordcloud(); } @@ -229,9 +230,7 @@ function initialize_wordcloud_controls() { }); function opacity_rarity_change(event, ui) { - //var orig_value = $( "#opacity_rarity_slider" ).slider( "values", num_words_max ); var value = $("#opacity_rarity_slider").slider("values", 1); - //DEBUG//document.getElementById('opacity_rarity_slider_out').innerHTML = value + " " + orig_value; s.opacity_rarity_weight = 1 - value; update_wordcloud(); } @@ -249,12 +248,10 @@ function initialize_wordcloud_controls() { } }); }); -//begin count sliders + //begin count sliders function size_frequency_change(event, ui) { - //var orig_value = $( "#size_frequency_slider" ).slider( "values", num_words_max ); - //DEBUG//document.getElementById('size_frequency_slider_out').innerHTML = value + " " + orig_value; s.size_frequency_weight = $("#size_frequency_slider").slider("values", 1); update_wordcloud(); } @@ -275,27 +272,9 @@ function initialize_wordcloud_controls() { }); function opacity_frequency_change(event, ui) { - //var orig_value = $( "#opacity_frequency_slider" ).slider( "values", num_words_max ); - //DEBUG//document.getElementById('opacity_frequency_slider_out').innerHTML = value + " " + orig_value; s.opacity_frequency_weight = $("#opacity_frequency_slider").slider("values", 1); update_wordcloud(); } - /* - $(function() { - $( "#opacity_frequency_slider" ).slider(); - $( "#opacity_frequency_slider" ).slider("option","min",0); - $( "#opacity_frequency_slider" ).slider("option","max",1); - $( "#opacity_frequency_slider" ).slider("option","step",0.01); - $( "#opacity_frequency_slider" ).slider("option","value",s.opacity_frequency_weight); - - $( "#opacity_frequency_slider" ).slider({ - slide: function( event, ui ) { opacity_frequency_change(event,ui);}, - change: function( event, ui ) { opacity_frequency_change(event,ui);} - }); - - }); - */ - $(function () { $("#opacity_frequency_slider").slider({ "min": 0, @@ -314,30 +293,27 @@ function initialize_wordcloud_controls() { //end count slider function update_required_tf_filter_display(values) { - //document.getElementById("required_observations_out").innerHTML = '[' + values[0] + ' , ' + values[1] + ']'; - // min value var min = $( "#min_required_observations" ); - if(min.attr('data-mode')==='input') + if(min.attr('data-mode')==='input') { min.find('input').val(values[ 0 ]); - else + } + else { min.text(values[ 0 ]); + } // max value var max = $( "#max_required_observations" ); - if(max.attr('data-mode')==='input') + if(max.attr('data-mode')==='input') { max.find('input').val(values[ 1 ]); - else + } + else { max.text(values[ 1 ]); + } } //begin Required Observations slider $(function () { - /*$( "#required_observations_slider" ).slider("option","min",1); - $( "#required_observations_slider" ).slider("option","max",overall_max_observed); - $( "#required_observations_slider" ).slider("option","step",1); - $( "#required_observations_slider" ).slider("option","values",[s.min_req_tf,s.max_req_tf]); - */ $("#required_observations_slider").slider({ range: true, min: 1, @@ -345,17 +321,13 @@ function initialize_wordcloud_controls() { step: 1, value: [s.min_req_tf, s.max_req_tf], change: function (event, ui) { - //var orig_value = $( "#required_observations_slider" ).slider( "values", num_words_max ); - sli = $('#required_observations_slider'); + var sli = $('#required_observations_slider'); var orig_value = sli.slider("values") || [s.min_req_tf, s.max_req_tf]; - value = orig_value; + var value = orig_value; - //DEBUG//document.getElementById('required_observations_slider_out').innerHTML = value + " " + orig_value; s.min_req_tf = value[0]; s.max_req_tf = value[1]; update_required_tf_filter_display([s.min_req_tf, s.max_req_tf]); - //required_observations = value; - //document.getElementById("required_observations_out").innerHTML = required_observations; draw_wordcloud(); }, @@ -364,18 +336,15 @@ function initialize_wordcloud_controls() { update_required_tf_filter_display(tmp); } }); - //update_required_tf_filter_display($("required_observations_slider").slider("values")); update_required_tf_filter_display([s.min_req_tf, s.max_req_tf]); // Maybe we want to display overall_max_observed instead? // attach click handlers to result display $( "#min_required_observations" ).on('click', function(event) { sliderValueInputHandler(event); }); $( "#max_required_observations" ).on('click', function(event) { sliderValueInputHandler(event); }); - }); function sliderValueInputHandler(event, conversionFunction){ - conversionFunction = conversionFunction || function(value) {return value;}; var fieldValue; @@ -416,9 +385,7 @@ function initialize_wordcloud_controls() { eSlider.slider('option', 'value', conversionFunction(newInput.val())); break; } - } - }); newInput.on('blur', function(event){ // revert back to text @@ -437,42 +404,34 @@ function initialize_wordcloud_controls() { //begin Required IDF slider function update_required_idf_filter_display(values) { - //var disp = '[' + Math.floor(values[0]) + ' , ' + Math.floor(values[1]) + ']'; - //document.getElementById("required_idf_out").innerHTML = disp; - // min value var min = $( "#min_required_idf" ); - if(min.attr('data-mode')==='input') + if(min.attr('data-mode')==='input') { min.find('input').val(Math.floor(values[0])); - else + } + else { min.text(Math.floor(values[0])); + } // max value var max = $( "#max_required_idf" ); - if(max.attr('data-mode')==='input') + if(max.attr('data-mode')==='input') { max.find('input').val(Math.floor(values[1])); - else + } + else { max.text(Math.floor(values[1])); + } } $(function () { - - /* - $( "#required_idf_slider" ).slider(); - $( "#required_idf_slider" ).slider("option","min",1); - $( "#required_idf_slider" ).slider("option","max",1/overall_min_idf_observed); - $( "#required_idf_slider" ).slider("option","step",1); - $( "#required_idf_slider" ).slider("option","value",(1/overall_min_idf_observed)/4); - */ $("#required_idf_slider").slider({ min: 1, max: 1 / overall_min_idf_observed, step: 0.0001, values: [1 / s.max_req_idf, 1 / s.min_req_idf], change: function (event, ui) { - //var orig_value = 1/$( "#required_idf_slider" ).slider( "values", num_words_max ); var orig_value = $("#required_idf_slider").slider("values"); - value = orig_value; + var value = orig_value; s.min_req_idf = 1 / orig_value[1]; s.max_req_idf = 1 / orig_value[0]; update_required_idf_filter_display([1 / s.max_req_idf, 1 / s.min_req_idf]); @@ -488,25 +447,26 @@ function initialize_wordcloud_controls() { // attach click handlers to result display $( "#min_required_idf" ).on('click', function(event) { sliderValueInputHandler(event); }); $( "#max_required_idf" ).on('click', function(event) { sliderValueInputHandler(event); }); - - }); function update_required_characters_filter_display(values) { - // min value var min = $( "#min_required_characters" ); - if(min.attr('data-mode')==='input') + if(min.attr('data-mode')==='input') { min.find('input').val(values[ 0 ]); - else + } + else { min.text(values[ 0 ]); + } // max value var max = $( "#max_required_characters" ); - if(max.attr('data-mode')==='input') + if(max.attr('data-mode')==='input') { max.find('input').val(values[ 1 ]); - else + } + else { max.text(values[ 1 ]); + } } //begin Required Word Length @@ -518,9 +478,9 @@ function initialize_wordcloud_controls() { step: 1, value: [s.min_req_chars, s.max_req_chars], change: function (event, ui) { - sli = $('#required_characters_slider'); + var sli = $('#required_characters_slider'); var orig_value = sli.slider("values") || [s.min_req_chars, s.max_req_chars]; - value = orig_value; + var value = orig_value; s.min_req_chars = value[0]; s.max_req_chars = value[1]; @@ -538,28 +498,21 @@ function initialize_wordcloud_controls() { // attach click handlers to result display $( "#min_required_characters" ).on('click', function(event) { sliderValueInputHandler(event); }); $( "#max_required_characters" ).on('click', function(event) { sliderValueInputHandler(event); }); - - }); - - - //end size slider //begin dynamic range function base_fontsize_change(event, ui) { - //var orig_value = $( "#base_fontsize_slider" ).slider( "values", num_words_max ); var orig_value = $("#base_fontsize_slider").slider("values", 12); - value = orig_value; - //DEBUG//document.getElementById('base_fontsize_slider_out').innerHTML = value + " " + orig_value; + var value = orig_value; s.base_fontsize = value; update_wordcloud(); } $(function () { - handle = $('#base_fontsize_slider'); + var handle = $('#base_fontsize_slider'); handle.slider(); handle.slider("option", "min", 1); handle.slider("option", "max", 100); @@ -577,11 +530,8 @@ function initialize_wordcloud_controls() { function base_opacity_change(event, ui) { var sli = $("#base_opacity_slider"); - //var orig_value = $( "#base_opacity_slider" ).slider( "values", num_words_max ); var orig_value = sli.slider("values", 0.5); - value = orig_value; - //DEBUG//document.getElementById('base_opacity_slider_out').innerHTML = value + " " + orig_value; - //base_opacity = opacity_slider_max_value - value; + var value = orig_value; s.base_opacity = value; update_wordcloud(); } @@ -603,15 +553,15 @@ function initialize_wordcloud_controls() { //end dynamic range sliders - //hide_all_controls(); - } //End of initialize_wordcloud_controls + //What year is this that sum() is not defined by default!? --GAC function sum(l) { return l.reduce(function (a, b) { return a + b; }); } + /* creates a clone. if passed a decorator function will apply it when cloning an object Note: for objects, clone does NOT follow prototype chain, however, it will clone objects set as properties @@ -649,7 +599,7 @@ function clone(original, decoratorFunction) { //Passthrough for the moment, can adapt if the data is not in the expected form (e.g. arbreviz?) -proc_query_data = function (query) { +var proc_query_data = function (query) { return query; }; @@ -661,7 +611,7 @@ function filter_for_idf(to_filter_dict) { // does not exist. if (document.getElementById('required_idf_slider')) { $.each(Object.keys(to_filter_dict), function (index, key) { - this_idf = to_filter_dict[key].idf; + var this_idf = to_filter_dict[key].idf; if (this_idf < s.min_req_idf || this_idf > s.max_req_idf) { delete to_filter_dict[key]; } @@ -672,7 +622,7 @@ function filter_for_idf(to_filter_dict) { function filter_for_characters(to_filter_dict) { $.each(Object.keys(to_filter_dict), function (index, key) { - this_word_length = key.length; + var this_word_length = key.length; if (this_word_length < s.min_req_chars || this_word_length > s.max_req_chars) { delete to_filter_dict[key]; } @@ -682,18 +632,18 @@ function filter_for_characters(to_filter_dict) { //TODO: Make a function to take an arbitrary number of dicts to filter, and filter on the sum of their tfs function filter_for_required_tf(to_filter_dicts) { + var to_filter_dict; //If we are passed {} or [{}] but not [{},{},...], this is simple and fast - if (to_filter_dicts.constructor != Array || to_filter_dicts.length == 1) { - if (to_filter_dicts.constructor == Array) { + if (to_filter_dicts.constructor !== Array || to_filter_dicts.length === 1) { + if (to_filter_dicts.constructor === Array) { to_filter_dict = to_filter_dicts[0]; // Passed [{}] } else { to_filter_dict = to_filter_dicts; // passed {} } $.each(Object.keys(to_filter_dict), function (index, key) { - this_tf = to_filter_dict[key].tf; - //if (this_tf < s.min_req_tf || this_tf > s.max_req_tf ) { - if (key != 'orioles' && (this_tf < s.min_req_tf || this_tf > s.max_req_tf )) {///HARDCODE WHY!? + var this_tf = to_filter_dict[key].tf; + if (this_tf < s.min_req_tf || this_tf > s.max_req_tf ) { delete to_filter_dict[key]; } }); @@ -706,7 +656,7 @@ function filter_for_required_tf(to_filter_dicts) { for (index = 0, len = to_filter_dicts.length; index < len; index++) { to_filter_dict = to_filter_dicts[index]; $.each(Object.keys(to_filter_dict), function (index, key) { - this_tf = to_filter_dict[key].tf; + var this_tf = to_filter_dict[key].tf; if (key in all_tokens) { all_tokens[key] += this_tf; } @@ -717,12 +667,11 @@ function filter_for_required_tf(to_filter_dicts) { } //Now go through and filter out any tokens for which we don't have enough occurences $.each(Object.keys(all_tokens), function (index, key) { - combined_tf = all_tokens[key]; + var combined_tf = all_tokens[key]; if (combined_tf < s.min_req_tf || combined_tf > s.max_req_tf) { for (index = 0, len = to_filter_dicts.length; index < len; index++) { to_filter_dict = to_filter_dicts[index]; - //if (key in to_filter_dict){ - if (key in to_filter_dict && key != 'orioles') { + if (key in to_filter_dict) { delete to_filter_dict[key]; } } @@ -734,7 +683,7 @@ function filter_for_required_observations_and_idf(to_filter_dict) { //TODO: classifier score filter_for_idf(to_filter_dict); $.each(Object.keys(to_filter_dict), function (index, key) { - this_tf = to_filter_dict[key].tf; + var this_tf = to_filter_dict[key].tf; if (this_tf < s.min_req_tf || this_tf > s.max_req_tf) { delete to_filter_dict[key]; } @@ -768,16 +717,14 @@ function filter_for_display_entities_types(to_filter) { return to_filter; //All types selected, this is just a passthrough } - //filtered = []; - //console.log(to_filter); $.each(Object.keys(to_filter), function (index, i) { - key = to_filter[i].text; - if (key[0] == '@') { + var key = to_filter[i].text; + if (key[0] === '@') { if (!s.display_user_mentions) { delete to_filter[i]; } } - else if (key[0] == '#') { + else if (key[0] === '#') { if (!s.display_hashtags) { delete to_filter[i]; } @@ -788,7 +735,6 @@ function filter_for_display_entities_types(to_filter) { } } }); - //return filtered; return to_filter; } @@ -814,23 +760,21 @@ function sorter(to_sort, my_sort_type) { function preference_sorter(to_sort) { //Sort by what the user has specified s.sort_type = $("#radio :radio:checked").attr('id'); - sorted = sorter(to_sort, s.sort_type); + var sorted = sorter(to_sort, s.sort_type); return sorted; } //Size and Opacity calculations -get_size = function (count, idf) { +var get_size = function (count, idf) { var weighted_by_count = count * (10 / overall_max_observed); //HARDCODE?? // When IDF=1, weighted_by_rarity_size=Infinity, which causes weighted_size // to be set to Infinity - which makes all fonts have the same (maximum) size //var weighted_by_rarity_size = 1 / Math.log(1 / idf); //HARDCODE turned off var weighted_by_rarity_size = 1; var weighted_size = s.base_fontsize; // A base size - //console.log(weighted_size, weighted_by_rarity_size, weighted_by_count, count, idf); weighted_size *= (1 - s.size_frequency_weight) + s.size_frequency_weight * weighted_by_count; weighted_size *= (1 - s.size_rarity_weight) + (s.size_rarity_weight * weighted_by_rarity_size); - //DEBUG.innerHTML = "~!" + (1-rarity_weight) * unweighted_by_rarity_size + "~~" + rarity_weight * idf + "!@!" + max_observed_count; if (weighted_size < 10) { return 10; } @@ -843,10 +787,10 @@ get_size = function (count, idf) { }; -get_opacity = function (count, idf) { - weighted_opacity = s.base_opacity; - weighted_by_count = count / (mean_counts * 2); - weighted_by_rarity = 1 / Math.log(1 / idf); +var get_opacity = function (count, idf) { + var weighted_opacity = s.base_opacity; + var weighted_by_count = count / (s.mean_counts * 2); + var weighted_by_rarity = 1 / Math.log(1 / idf); weighted_opacity *= (1 - s.opacity_frequency_weight) + (s.opacity_frequency_weight * weighted_by_count); weighted_opacity *= (s.opacity_rarity_weight) + ((1 - s.opacity_rarity_weight) * weighted_by_rarity); if (weighted_opacity < 0.1) { @@ -866,7 +810,7 @@ function update_wordcloud() { //Updates all the WC visual aspects that have changed since last time. for (var cloud_index = 0, numclouds = current_display_data.length; cloud_index < numclouds; cloud_index++) { $.each(Object.keys(current_display_data[cloud_index]), function (index) { - token = current_display_data[cloud_index][index]; + var token = current_display_data[cloud_index][index]; var token_element = token.handle; token_element.style.fontSize = get_size(token.tf, token.idf) + 'pt'; token_element.style.opacity = get_opacity(token.tf, token.idf); @@ -884,10 +828,10 @@ function prepare_wordcloud_data(selected_datasets) { //Determine whether we are working on one or two corpora singlecloud = false; venncloud = false; - if (selected_datasets.length == 1) { + if (selected_datasets.length === 1) { singlecloud = true; } - else if (selected_datasets.length == 2) { + else if (selected_datasets.length === 2) { venncloud = true; } else { @@ -945,9 +889,9 @@ function prepare_wordcloud_data(selected_datasets) { if (r_tf > 0 && l_tf > 0 && Math.abs((l_prop - r_prop) / (l_prop + r_prop)) <= s.center_threshold) { - common_token = {}; + var common_token = {}; common_token.text = token; - common_token.tf = (l_tf + r_tf); // Shoudl we average instead of add? + common_token.tf = (l_tf + r_tf); // Should we average instead of add? common_token.idf = L[token].idf; //Add classifier scores? common_list.push(common_token); @@ -968,7 +912,6 @@ function prepare_wordcloud_data(selected_datasets) { $.map(current_display_data, preference_sorter); /* - //Do set-level changes -- i.e. those that result in a complete redraw of the wc //Figure out what we are displayign and in what order current_display_data = []; @@ -979,7 +922,6 @@ function prepare_wordcloud_data(selected_datasets) { current_display_data.push(tmp); }; */ - } @@ -1033,13 +975,13 @@ function add_description_to_display() { } } - if (s.sort_type == "ALPHABETIC") { + if (s.sort_type === "ALPHABETIC") { d += "Words are sorted alphabetically.
"; } - if (s.sort_type == "IDF") { + if (s.sort_type === "IDF") { d += "Words are sorted by those that occur in the fewest document to those that occur in the most, in the whole corpus (IDF).
"; } - if (s.sort_type == "COUNT") { + if (s.sort_type === "COUNT") { d += "Words are sorted by many to few occurences in the query (TF).
"; } @@ -1082,15 +1024,11 @@ function draw_wordcloud() { display_index_in_master_data = selected_datasets; - prepare_wordcloud_data(selected_datasets); //Actually put the words on the screen -- before they have been properly sized/opacitized - //clear the existing display(s) and set it to not display - //main_wordcloud_container.hide(); - // before removing elements, unbind handlers $('#left_dataset_selector').off(); $('#right_dataset_selector').off(); @@ -1102,8 +1040,8 @@ function draw_wordcloud() { var rightAvailableDatasets = ''; var tempDatasetIndex; for (tempDatasetIndex in master_datasets){ - leftAvailableDatasets += ''; - rightAvailableDatasets += ''; + leftAvailableDatasets += ''; + rightAvailableDatasets += ''; } var display = ""; @@ -1115,13 +1053,9 @@ function draw_wordcloud() { display += ""; if (venncloud) { //TODO: Deal with space more effectively -- we should be able to estimate how much room each should get - display += ""; - display += ""; - display += ""; - /*display += ""; - display += ""; - display += ""; - */ + display += ""; + display += ""; + display += ""; } else if (singlecloud) { display += ""; @@ -1162,7 +1096,7 @@ function update_displayed_token(old_token, new_token){ console.log("updating "+old_token+" with "+new_token); //Loop through each dataset and update the token for (var j in master_datasets){ - dataset = master_datasets[j].tokens; + var dataset = master_datasets[j].tokens; console.log(dataset); //TODO: this does not properly update and combine tokens!! if (old_token in dataset){ @@ -1179,7 +1113,7 @@ function junk_displayed_token(old_token){ console.log("junking "+old_token); //Loop through each dataset and remove the token for (var j in master_datasets){ - dataset = master_datasets[j].tokens; + var dataset = master_datasets[j].tokens; if (old_token in dataset){ delete master_datasets[j].tokens[old_token]; } @@ -1192,7 +1126,6 @@ var counts = []; function compute_master_data(datasets) { var idfs = []; - //Add fields to each dataset for (var j = 0, lenj = datasets.length; j < lenj; j += 1) { var dataset = datasets[j]; @@ -1205,7 +1138,7 @@ function compute_master_data(datasets) { var idf = tokens[i].idf; counts.push(tf); idfs.push(idf); - token = tokens[i].text; + var token = tokens[i].text; tokens[i].opacity = 1; tokens[i].size = 9; tokens[i].handle = undefined; //This will be the jquery visual element handle for easy updates @@ -1230,11 +1163,10 @@ function compute_master_data(datasets) { } //Put anything here we can precompute on load for all datasets, independent of view. - mean_counts = sum(counts) / counts.length; - mean_idf = sum(idfs) / idfs.length; + s.mean_counts = sum(counts) / counts.length; + s.mean_idf = sum(idfs) / idfs.length; counts.sort(); //Something here can figure out how many words we want to display overall - //s.min_req_tf = counts[Math.floor(counts.length/2)] * 2; if (counts.length > 500) { s.min_req_tf = counts[Math.floor(counts.length) - 500]; } @@ -1253,12 +1185,9 @@ function compute_master_data(datasets) { $("#required_idf_slider").slider("option", "max", 1 / overall_min_idf_observed); $("#required_characters_slider").slider("option", "max", overall_max_word_length_observed); - //////var tmp = $( "#required_idf_slider" ).slider("values",(1/overall_min_idf_observed)/4); - //////$( "#required_idf_slider" ).slider("option","value",tmp || (1/overall_min_idf_observed)/4); - tmp = [1 / s.max_req_idf, 1 / s.min_req_idf]; + var tmp = [1 / s.max_req_idf, 1 / s.min_req_idf]; $("#required_idf_slider").slider("option", "values", tmp); - //tmp = $( "#required_observations_slider" ).slider("values") || [s.min_req_tf,s.max_req_tf]; tmp = [s.min_req_tf, s.max_req_tf]; $("#required_observations_slider").slider("option", "values", tmp); @@ -1269,30 +1198,34 @@ function compute_master_data(datasets) { return datasets; } - function add_handlers(zone) { - //console.log("Z:",zone); zone.on("click", function (e) { - e = e || Event; + e = e || jQuery.Event; s.onclick_function(e.target.innerHTML.trim()); }); zone.on("contextmenu", function (e) { - e = e || Event; + e = e || jQuery.Event; s.oncontextclick_function(e.target); return false; }); } + function initialize_wordcloud() { + // TODO: The 'required_idf' and 'required_observations' variables are not + // global variables, but may have been used in an earlier + // incarnation of the code. + /* required_idf = overall_min_idf_observed; required_observations = 4; + */ compute_master_data(); //Actually compute it here. } function dataset_selected() { var leftDatasetId = $('#left_dataset_selector')[0].value; var rightDatasetId = $('#right_dataset_selector')[0].value; - selected_datasets = [leftDatasetId, rightDatasetId]; - draw_wordcloud(); + selected_datasets = [leftDatasetId, rightDatasetId]; + draw_wordcloud(); } function make_me_a_venncloud(datasets, options) { @@ -1315,8 +1248,8 @@ function make_me_a_venncloud(datasets, options) { master_datasets = compute_master_data(datasets); var initialSelection = []; - if (master_datasets.length > 0) initialSelection.push(0); - if (master_datasets.length > 1) initialSelection.push(1); + if (master_datasets.length > 0) { initialSelection.push(0); } + if (master_datasets.length > 1) { initialSelection.push(1); } selected_datasets = initialSelection; draw_wordcloud(); @@ -1324,5 +1257,4 @@ function make_me_a_venncloud(datasets, options) { main_wordcloud_container = $('#' + s.wordcloud_element); var context_area = $('#' + s.wordcloud_element + '>table>tbody'); - } From 2a53e5a68e3a26e1d5c87397334e058a6bab0ce0 Mon Sep 17 00:00:00 2001 From: Craig Harman Date: Wed, 18 Jun 2014 12:57:24 -0400 Subject: [PATCH 2/2] Fixed Markdown formatting issue in Proposed_API.md --- Proposed_API.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Proposed_API.md b/Proposed_API.md index 79f2d86..32aa090 100644 --- a/Proposed_API.md +++ b/Proposed_API.md @@ -42,6 +42,7 @@ Tokens ====== Each token is a dictionary: + * `idf` - **[required]** * `tf` - **[required]** * `text` - **[required]**