';$.each(children,function(id,value){gchildren=getChildrenProjects(value.project_id,hierarchy);html+=composeHTMLNestedProjects(value.project_id,gchildren,hierarchy)});html+="
"}else{html+='
'+getProjectTitle(project_id,hierarchy)+""}return html}function composeProjectMap(){var html="
";var hierarchy=Report.getProjectsHierarchy();if(hierarchy.length===0){return""}project_id="root";var children=getChildrenProjects(project_id,hierarchy);var parents=getParentProjects(project_id,hierarchy);$.each(children,function(id,value){grandchildren=getChildrenProjects(value.project_id,hierarchy);html+=composeHTMLNestedProjects(value.project_id,grandchildren,hierarchy)});html+="
";return html}function getSectionName4Release(){var result=[];var sections={data_sources:"Data sources",project_map:"Project map",people:"Contributor",company:"Company",country:"Country",domain:"Domain","scm-companies":"Activity on code repositories by companies","mls-companies":"Activity on mailing lists by companies","its-companies":"Activity on issue trackers by companies"};url_no_params=document.URL.split("?")[0];url_tokens=url_no_params.split("/");var section=url_tokens[url_tokens.length-1].split(".")[0];if(section==="project"||section==="index"||section==="release"||section===""){return[]}else{if(sections.hasOwnProperty(section)){result.push([section,sections[section]])}else{return[["#","Unavailable section name"]]}return result}}function getSectionName(){var result=[];var sections={mls:"MLS overview",irc:"IRC overview",its:"ITS overview",storyboard:"Storyboard overview",qaforums:"QA Forums overview",scr:"Code Review overview",scm:"SCM overview",wiki:"Wiki overview",downloads:"Downloads",forge:"Forge releases",demographics:"Demographics",data_sources:"Data sources",project_map:"Project map",people:"Contributor",company:"Company",country:"Country",domain:"Domain",release:"Companies analysis by release",project_comparison:"Project comparison"};var filters={companies:"Activity by companies",contributors:"Activity by contributors",countries:"Activity by countries",domains:"Activity by domains",projects:"Activity by project",repos:"Activity by repositories",states:"Activity by states",tags:"Activity by tags"};var filters2={repository:"Repository",countries:"Activity by countries"};url_no_params=document.URL.split("?")[0];url_tokens=url_no_params.split("/");var section=url_tokens[url_tokens.length-1].split(".")[0];if(section==="project"||section==="index"||section===""){return[]}else if(section==="filter"){var filter_by=$.urlParam("filter_by_item");var filter_names=$.urlParam("filter_names");switch(filter_names){case"company+country":result=[["company","Company"],["Activity by country and company","Activity by country and company"]]}return result}else{var s_tokens=section.split("-");if(s_tokens[0]==="repository"){ds_name=$.urlParam("ds");s_tokens=[ds_name,"repos","repository"]}if(sections.hasOwnProperty(s_tokens[0])){result.push([s_tokens[0],sections[s_tokens[0]]]);if(s_tokens.length>0){if(filters.hasOwnProperty(s_tokens[1])){result.push([s_tokens[0]+"-"+s_tokens[1],filters[s_tokens[1]]]);if(s_tokens.length>2){if(filters2.hasOwnProperty(s_tokens[2])){result.push([s_tokens[0],filters2[s_tokens[2]]])}}}}}else{return[["#","Unavailable section name"]]}return result}}function isURLRelease(){if($.urlParam("release")!==null&&$.urlParam("release").length>0)return true;else return false}function composeSideBar(project_id){if(project_id===undefined){project_id="root"}var html="";var html_extra="";html+='";return html}Convert.convertSideBar=function(project_id){var divs=$(".SideNavBar");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();if(!div.id)div.id="SideNavBar";var label;if(project_id){label=Report.cleanLabel(project_id)}var htmlaux=composeSideBar(label);$("#"+div.id).append(htmlaux);data=Report.getProjectData();$(".report_name").text(data.project_name);if(Utils.isReleasePage())$(".report_name").attr("href","./?release="+$.urlParam("release"))})}};Convert.convertProjectNavBar=function(project_id){var divs=$(".ProjectNavBar");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();if(!div.id)div.id="ProjectNavBar";var label;if(project_id){label=Report.cleanLabel(project_id)}var htmlaux=composeProjectBreadcrumbs(label);$("#"+div.id).append(htmlaux)})}};Convert.convertNavbar=function(){$.get(Report.getHtmlDir()+"navbar.html",function(navigation){$("#Navbar").html(navigation);var project_id=Report.getParameterByName("project");Convert.convertProjectNavBar(project_id);Convert.convertReleaseSelector();Convert.convertSideBar(project_id)})};Convert.convertReleaseSelector=function(){var releases=Report.getReleaseNames();if(releases===undefined){return}if(releases.length>0){var divs=$(".ReleaseSelector");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();if(!div.id)div.id="ReleaseSelector"+getRandomId();var htmlaux=HTMLComposer.releaseSelector($.urlParam("release"),releases);$("#"+div.id).append(htmlaux)})}}};function composeSectionBreadCrumb(project_id){var html='
';data=Report.getProjectData();document.title=data.project_name+" Dashboard";if(project_id===undefined){var subsects_b=getSectionName();var params=Utils.paramsInURL();if(subsects_b.length>0){html+='- Project Overview
';var cont_b=1;$.each(subsects_b,function(id,value){if(subsects_b.length===cont_b){html+='- '+value[1]+"
";document.title=value[1]+" | "+data.project_name+" Dashboard"}else{if(Utils.isReleasePage()){html+='- ';html+=value[1]+"
"}else{if(value[0]==="company"){var get_param=$.urlParam("filter_item");html+='- '+get_param[0].toUpperCase()+get_param.slice(1)+"
"}else{html+='- '+value[1]+"
"}}}cont_b+=1})}else{html+='- Project Overview
';document.title="Project Overview | "+data.project_name+" Dashboard"}}else{html+="- "+getSectionName()+"
";document.title=getSectionName()+" | "+data.project_name+" Dashboard"}html+="
";return html}Convert.convertSectionBreadcrumb=function(project_id){var divs=$(".SectionBreadcrumb");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();if(!div.id)div.id="SectionBreadcrumb";var label;if(project_id){label=Report.cleanLabel(project_id)}var htmlaux=composeSectionBreadCrumb(label);$("#"+div.id).append(htmlaux)})}};Convert.convertProjectMap=function(){var divs=$(".ProjectMap");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();if(!div.id)div.id="ProjectMap";var label;var htmlaux=composeProjectMap();$("#"+div.id).append(htmlaux)})}};Convert.convertFooter=function(){$.get(Report.getHtmlDir()+"footer.html",function(footer){$("#Footer").html(footer);$("#vizjs-lib-version").append(vizjslib_git_tag)})};Convert.convertSummary=function(){div_param="Summary";var divs=$("."+div_param);if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var ds=$(this).data("data-source");var DS=Report.getDataSourceByName(ds);if(DS===null)return;div.id=ds+"-Summary";DS.displayGlobalSummary(div.id)})}};function composeDropDownRepo(DS){var repository=Report.getParameterByName("repository");if(repository&&$.inArray(repository,DS.getReposData())<0)return"";var dsname=DS.getName();var section="";var label_repo=DS.getLabelForRepository();var label_repo_plural=DS.getLabelForRepositories();if(repository!==undefined){section=repository}else{section="All "+label_repo_plural}html='
';html='- Filtered by '+label_repo+":
";html+='';html+='
";html+=" ";return html}Convert.convertRepositorySelector=function(){var divs=$(".repository-selector");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var ds=$(this).data("data-source");var DS=Report.getDataSourceByName(ds);if(DS===null)return;div.id=ds+"-repository-selector";var htmlaux=composeDropDownRepo(DS);$("#"+div.id).append(htmlaux)})}};function displayReportData(){data=Report.getProjectData();document.title=data.project_name+" Report by Bitergia";if(data.title)document.title=data.title;$(".report_date").text(data.date);$(".report_name").text(data.project_name);str=data.blog_url;if(str&&str.length>0){$("#blogEntry").html("
Blog post with some more details");$(".blog_url").attr("href",data.blog_url)}else{$("#more_info").hide()}str=data.producer;if(str&&str.length>0){$("#producer").html(str)}else{$("#producer").html("
Bitergia")}$(".project_name").text(data.project_name);$("#project_url").attr("href",data.project_url)}Convert.convertRefcard=function(){$.when($.get(Report.getHtmlDir()+"refcard.html"),$.get(Report.getHtmlDir()+"project-card.html")).done(function(res1,res2){refcard=res1[0];projcard=res2[0];$("#Refcard").html(refcard);displayReportData();$.each(Report.getProjectsData(),function(prj_name,prj_data){var new_div="card-"+prj_name.replace(".","").replace(" ","");$("#Refcard #projects_info").append(projcard);$("#Refcard #projects_info #new_card").attr("id",new_div);$.each(Report.getDataSources(),function(i,DS){if(DS.getProject()!==prj_name){$("#"+new_div+" ."+DS.getName()+"-info").hide();return}DS.displayData(new_div)});$("#"+new_div+" #project_name").text(prj_name);if(Report.getProjectsDirs.length>1)$("#"+new_div+" .project_info").append('
Report');$("#"+new_div+" #project_url").attr("href",prj_data.url)})})};Convert.convertGlobalData=function(){var divs=$(".GlobalData");if(divs.length>0){$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;var data=DS.getGlobalData();var key=$(this).data("field");$(this).text(Report.formatValue(data[key],key))})}};Convert.convertProjectData=function(){var divs=$(".ProjectData");var p=Report.getParameterByName("project");if(divs.length>0){$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;var data=DS.getProjectsGlobalData()[p];if(data===undefined){return}var key=$(this).data("field");$(this).text(Report.formatValue(data[key],key))})}};Convert.convertRadarActivity=function(){var div_param="RadarActivity";var divs=$("#"+div_param);if(divs.length>0){$.each(divs,function(id,div){$(this).empty()});Viz.displayRadarActivity(div_param)}};Convert.convertRadarCommunity=function(){var div_param="RadarCommunity";var divs=$("#"+div_param);if(divs.length>0){$.each(divs,function(id,div){$(this).empty()});Viz.displayRadarCommunity("RadarCommunity")}};Convert.convertTreemap=function(){var div_param="Treemap";var divs=$("#"+div_param);if(divs.length>0){$.each(divs,function(id,div){$(this).empty()});var file=$("#Treemap").data("file");$("#Treemap").empty();Viz.displayTreeMap("Treemap",file)}};Convert.convertBubbles=function(){div_param="Bubbles";var divs=$("."+div_param);if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var ds=$(this).data("data-source");var DS=Report.getDataSourceByName(ds);if(DS===null)return;if(DS.getData().length===0)return;var radius=$(this).data("radius");div.id=ds+"-Bubbles";DS.displayBubbles(div.id,radius)})}};function loadHTMLEvolParameters(htmldiv,config_viz){config_viz.help=true;var help=$(htmldiv).data("help");if(help!==undefined)config_viz.help=help;config_viz.show_legend=false;if($(htmldiv).data("frame-time"))config_viz.frame_time=true;config_viz.graph=$(htmldiv).data("graph");if($(htmldiv).data("min")){config_viz.show_legend=false;config_viz.show_labels=true;config_viz.show_grid=true;config_viz.help=false}if($(htmldiv).data("legend"))config_viz.show_legend=true;config_viz.ligth_style=false;if($(htmldiv).data("light-style")){config_viz.light_style=true}if($(htmldiv).data("custom-title")){config_viz.custom_title=$(htmldiv).data("custom-title")}if(config_viz.help&&$(htmldiv).data("custom-help")){config_viz.custom_help=$(htmldiv).data("custom-help")}else{config_viz.custom_help=""}if($(htmldiv).data("repo-filter")){config_viz.repo_filter=$(htmldiv).data("repo-filter")}var start=$(htmldiv).data("start");if(start)config_viz.start_time=start;var end=$(htmldiv).data("end");if(end)config_viz.end_time=end;var remove_last_point=$(htmldiv).data("remove-last-point");if(remove_last_point)config_viz.remove_last_point=true;return config_viz}Convert.convertMetricsEvol=function(){var config_metric={};config_metric.show_desc=false;config_metric.show_title=true;config_metric.show_labels=true;var config=Report.getVizConfig();if(config){$.each(config,function(key,value){config_metric[key]=value})}var div_param="MetricsEvol";var divs=$("."+div_param);if(divs.length>0){$.each(divs,function(id,div){var config_viz={};$.each(config_metric,function(key,value){config_viz[key]=value});$(this).empty();var metrics=$(this).data("metrics");var ds=$(this).data("data-source");config_viz.title=$(this).data("title");var DS=Report.getDataSourceByName(ds);if(DS===null)return;config_viz=loadHTMLEvolParameters(div,config_viz);div.id=metrics.replace(/,/g,"-")+"-"+ds+"-metrics-evol-"+this.id;div.id=div.id.replace(/\n|\s/g,"");DS.displayMetricsEvol(metrics.split(","),div.id,config_viz,$(this).data("convert"))})}};Convert.convertMetricsEvolCustomized=function(filter){var config_metric={};config_metric.show_desc=false;config_metric.show_title=true;config_metric.show_labels=true;var config=Report.getVizConfig();if(config){$.each(config,function(key,value){config_metric[key]=value})}var div_param="MetricsEvolCustomized";var divs=$("."+div_param);if(divs.length>0){$.each(divs,function(id,div){if(filter!==$(this).data("filter"))return;var config_viz={};$.each(config_metric,function(key,value){config_viz[key]=value});$(this).empty();var metrics=$(this).data("metrics");var ds=$(this).data("data-source");config_viz.title=$(this).data("title");var DS=Report.getDataSourceByName(ds);if(DS===null)return;config_viz=loadHTMLEvolParameters(div,config_viz);div.id=metrics.replace(/,/g,"-")+"-"+ds+"-metrics-evol-"+this.id;div.id=div.id.replace(/\n|\s/g,"");DS.displayMetricsEvol(metrics.split(","),div.id,config_viz,$(this).data("convert"))})}};Convert.convertMetricsEvolSelector=function(){var config_metric={};config_metric.show_desc=false;config_metric.show_title=true;config_metric.show_labels=true;var config=Report.getVizConfig();if(config){$.each(config,function(key,value){config_metric[key]=value})}var div_param="MetricsEvol";var divs=$("."+div_param);if(divs.length>0){$.each(divs,function(id,div){var config_viz={};$.each(config_metric,function(key,value){config_viz[key]=value});$(this).empty();var metrics=$(this).data("metrics");var ds=$(this).data("data-source");var DS=Report.getDataSourceByName(ds);if(DS===null)return;var repository=Report.getParameterByName("repository");config_viz.repo_filter=repository;config_viz=loadHTMLEvolParameters(div,config_viz);div.id=metrics.replace(/,/g,"-")+"-"+ds+"-metrics-evol-"+repository;div.id=div.id.replace(/\n|\s/g,"");DS.displayMetricsEvol(metrics.split(","),div.id,config_viz,$(this).data("convert"))})}};Convert.convertMetricsEvolSet=function(){div_param="MetricsEvolSet";var divs=$("."+div_param);if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var all=$(this).data("all");var relative=$(this).data("relative");var summary_graph=$(this).data("summary-graph");var legend=$(this).data("legend-show");div.id=ds+"-MetricsEvolSet-"+this.id;if(all===true){div.id=ds+"-All";Viz.displayEnvisionAll(div.id,relative,legend,summary_graph);return false}var ds=$(this).data("data-source");var DS=Report.getDataSourceByName(ds);if(DS===null)return;DS.displayEnvision(div.id,relative,legend,summary_graph)})}};Convert.convertTimeTo=function(){var div_tt="TimeTo";divs=$("."+div_tt);if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var ds=$(this).data("data-source");var DS=Report.getDataSourceByName(ds);if(DS===null)return;var quantil=$(this).data("quantil");var type=$(this).data("type");div.id=ds+"-time-to-"+type+"-"+quantil;if(type==="fix")DS.displayTimeToFix(div.id,quantil);if(type==="attention")DS.displayTimeToAttention(div.id,quantil)})}};Convert.convertMarkovTable=function(){var div_id_mt="MarkovTable";var divs=$("."+div_id_mt);var DS,ds;if(divs.length>0){$.each(divs,function(id,div){$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(DS.getData().length===0)return;var title=$(this).data("title");div.id=ds+"-markov-table";DS.displayMarkovTable(div.id,title)})}};Convert.convertLastActivity=function(){var all_metrics=Report.getAllMetrics();function activityInfo(div,period,label){var html="
Last "+label+"
";$.each(Report.getDataSources(),function(index,DS){var data=DS.getGlobalData();$.each(data,function(key,val){var suffix="_"+period;if(key.indexOf(suffix,key.length-suffix.length)!==-1){var metric=key.substring(0,key.length-suffix.length);label=metric;if(all_metrics[metric])label=all_metrics[metric].name;html+=label+":"+data[key]+"
"}})});$(div).append(html)}var divs=$(".LastActivity");var period=null;var days={Week:7,Month:30,Quarter:90,Year:365};if(divs.length>0)$.each(divs,function(id,div){period=$(div).data("period");activityInfo(div,days[period],period)})};Convert.convertTopByPeriod=function(){var div_id_top="TopByPeriod";var divs=$("."+div_id_top);var DS,ds;if(divs.length>0){var unique=0;$.each(divs,function(id,div){$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(DS.getData().length===0)return;var show_all=false;if($(this).data("show_all"))show_all=true;var top_metric=$(this).data("metric");var npeople=$(this).data("limit");var is_release=Utils.isReleasePage();var html=HTMLComposer.TopByPeriod(ds,top_metric,npeople,is_release);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.convertTop=function(){var div_id_top="Top";var divs=$("."+div_id_top);var DS,ds;if(divs.length>0){var unique=0;$.each(divs,function(id,div){$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(DS.getData().length===0)return;var show_all=false;if($(this).data("show_all"))show_all=true;var top_metric=$(this).data("metric");var limit=$(this).data("limit");var graph=$(this).data("graph");var people_links=$(this).data("people_links");var threads_links=$(this).data("threads_links");
+var period=$(this).data("period");var period_all=$(this).data("period_all");var repository=Report.getParameterByName("repository");div.id=ds+"-"+div_id_top+unique++;if(graph){div.id+="-"+graph}if(period===undefined&&period_all===undefined){period_all=true}if(limit===undefined){limit=10}DS.displayTop(div.id,show_all,top_metric,period,period_all,graph,limit,people_links,threads_links,repository)})}};Convert.convertPersonMetrics=function(upeople_id,upeople_identifier){var config_metric={};config_metric.show_desc=false;config_metric.show_title=false;config_metric.show_labels=true;divs=$(".PersonMetrics");if(divs.length){$.each(divs,function(id,div){$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;var metrics=$(this).data("metrics");config_metric.show_legend=false;config_metric.help=false;if($(this).data("frame-time"))config_metric.frame_time=true;if($(this).data("legend"))config_metric.show_legend=true;if($(this).data("person_id"))upeople_id=$(this).data("person_id");if($(this).data("person_name"))upeople_identifier=$(this).data("person_name");div.id=metrics.replace(/,/g,"-")+"-people-metrics";DS.displayMetricsPeople(upeople_id,upeople_identifier,metrics.split(","),div.id,config_metric)})}};function getRandomId(){return Math.floor(Math.random()*1e3+1)}Convert.convertPersonData=function(upeople_id,upeople_identifier){var divs=$(".PersonData"),name,email;if(divs.length>0){$.each(divs,function(id,div){$(this).empty();if($(this).data("person_id"))upeople_id=$(this).data("person_id");if(!div.id)div.id="PersonData"+"-"+upeople_id+"-"+getRandomId();var data=Report.getPeopleIdentities()[upeople_id];if(data){name=DataProcess.selectPersonName(data);email=DataProcess.selectPersonEmail(data);email="("+DataProcess.hideEmail(email)+")"}else{if(upeople_identifier!==undefined)name=upeople_identifier;else name=upeople_id;email=""}html=HTMLComposer.personName(name,email);$("#"+div.id).append(html)})}};Convert.personSummaryBlock=function(upeople_id){var divs=$(".PersonSummaryBlock");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;ds_name=$(this).data("data-source");ds_realname=$(this).data("data-realname");metric_name=$(this).data("metrics");DS=Report.getDataSourceByName(ds_name);if(DS===null)return;if(DS.getData().length===0)return;if(DS.getPeopleMetricsData()[upeople_id].length===0)return;var html=HTMLComposer.personDSBlock(ds_name,metric_name,ds_realname);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.convertPersonSummary=function(upeople_id,upeople_identifier){var divs=$(".PersonSummary");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if($(this).data("person_id"))upeople_id=$(this).data("person_id");if($(this).data("person_name"))upeople_identifier=$(this).data("person_name");div.id=ds+"-refcard-people";DS.displayPeopleSummary(div.id,upeople_id,upeople_identifier,DS)})}};Convert.convertPeople=function(upeople_id,upeople_identifier){if(upeople_id===undefined)upeople_id=Report.getParameterByName("id");if(upeople_identifier===undefined)upeople_identifier=Report.getParameterByName("name");if(upeople_id===undefined)return;if(Loader.check_people_item(upeople_id)===false){$.each(Report.getDataSources(),function(index,DS){Loader.data_load_people_item(upeople_id,DS,Convert.convertPeople)});return}Convert.personSummaryBlock(upeople_id);Convert.convertPersonData(upeople_id,upeople_identifier);Convert.convertPersonSummary(upeople_id,upeople_identifier);Convert.convertPersonMetrics(upeople_id,upeople_identifier);Convert.activateHelp()};function dataFilterAvailable(filter_name,item_name){if(filter_name==="repos"){if(DS.getReposGlobalData()[item_name]===undefined||DS.getReposGlobalData()[item_name].length===0)return false}else if(filter_name==="companies"){if(DS.getCompaniesGlobalData()[item_name]===undefined||DS.getCompaniesGlobalData()[item_name].length===0)return false}else if(filter_name==="countries"){if(DS.getCountriesGlobalData()[item_name]===undefined||DS.getCountriesGlobalData()[item_name].length===0)return false}else if(filter_name==="companies"){if(DS.getDomainsGlobalData()[item_name]===undefined||DS.getDomainsGlobalData()[item_name].length===0)return false}return true}Convert.repositoryDSBlock=function(repo_id){var divs=$(".FilterDSBlock");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;ds_name=$(this).data("data-source");filter_name=$(this).data("filter");aux=$(this).data("metrics");metric_names=aux.split(",");$.each(metric_names,function(id,value){metric_names[id]=metric_names[id].replace(/:/g,",")});DS=Report.getDataSourceByName(ds_name);if(DS===null)return;if(DS.getData().length===0)return;if(dataFilterAvailable(filter_name,repo_id)){var html=HTMLComposer.filterDSBlock(ds_name,filter_name,metric_names);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)}})}};Convert.convertDSSummaryBlock=function(upeople_id){var divs=$(".DSSummaryBlock");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;ds_name=$(this).data("data-source");ds_realname=$(this).data("data-realname");box_labels=$(this).data("box-labels");box_metrics=$(this).data("box-metrics");ts_metrics=$(this).data("ts-metrics");DS=Report.getDataSourceByName(ds_name);if(DS===null)return;if(DS.getData().length===0)return;var html=HTMLComposer.DSBlock(ds_name,box_labels,box_metrics,ts_metrics,ds_realname);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.convertDSSummaryBlockProjectFiltered=function(upeople_id){var divs=$(".DSSummaryBlockProjectFiltered");var pname=Report.getParameterByName("project");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;ds_name=$(this).data("data-source");box_labels=$(this).data("box-labels");box_metrics=$(this).data("box-metrics");ts_metrics=$(this).data("ts-metrics");DS=Report.getDataSourceByName(ds_name);if(DS===null)return;if(DS.getProjectsGlobalData()[pname]===undefined)return;if(DS.getProjectsGlobalData()[pname].length===0)return;var html=HTMLComposer.DSBlockProject(ds_name,box_labels,box_metrics,ts_metrics,pname);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.convertOverallSummaryBlock=function(){var divs=$(".OverallSummaryBlock");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;var html=HTMLComposer.overallSummaryBlock();if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.convertDemographics=function(){var divs=$(".Demographics");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;var period=$(this).data("period");div.id="Demographics"+"-"+ds+"-"+"-"+period;DS.displayDemographics(div.id,period)})}};function filterItemsConfig(){var config_metric={};config_metric.show_desc=false;config_metric.show_title=false;config_metric.show_labels=true;config_metric.show_legend=false;return config_metric}Convert.getRealItem=function(ds,filter,item){var map=Report.getReposMap();if(map===undefined||map.length===0){if($.inArray(item,ds.getReposData())>-1)return item;else return null}var map_item=null;if(filter==="repos"){var rdata=ds.getReposMetricsData()[item];if(rdata===undefined){$.each(map,function(id,repos){$.each(Report.getDataSources(),function(index,DS){if(repos[DS.getName()]===item){map_item=repos[ds.getName()];return false}});if(map_item!==null)return false})}else map_item=item}else map_item=item;return map_item};Convert.convertFilterItemsSummary=function(filter){var divlabel="FilterItemsSummary";divs=$("."+divlabel);if(divs.length>0){$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;div.id=ds+"-"+divlabel;$(this).empty();if(filter==="repos")DS.displayReposSummary(div.id,DS);if(filter==="countries")DS.displayCountriesSummary(div.id,DS);if(filter==="companies")DS.displayCompaniesSummary(div.id,DS);if(filter==="domains")DS.displayDomainsSummary(div.id,DS);if(filter==="projects")DS.displayProjectsSummary(div.id,DS)})}};Convert.convertFilterItemsGlobal=function(filter){var config_metric=filterItemsConfig();var divlabel="FilterItemsGlobal";divs=$("."+divlabel);if(divs.length>0){$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;var metric=$(this).data("metric");var show_others=$(this).data("show-others");var order_by=$(this).data("order-by");config_metric.show_legend=$(this).data("legend");if($("#"+$(this).data("legend-div")).length>0){config_metric.legend={container:$(this).data("legend-div")}}else config_metric.legend={container:null};config_metric.graph=$(this).data("graph");config_metric.title=$(this).data("title");config_metric.show_title=1;div.id=metric+"-"+divlabel;$(this).empty();if(filter==="repos")DS.displayMetricReposStatic(metric,div.id,config_metric,order_by,show_others);if(filter==="countries")DS.displayMetricCountriesStatic(metric,div.id,config_metric,order_by,show_others);if(filter==="companies")DS.displayMetricCompaniesStatic(metric,div.id,config_metric,order_by,show_others);if(filter==="domains")DS.displayMetricDomainsStatic(metric,div.id,config_metric,order_by,show_others);if(filter==="projects")DS.displayMetricProjectsStatic(metric,div.id,config_metric,order_by,show_others)})}};Convert.convertFilterItemsNav=function(filter,page){var divlabel="FilterItemsNav";divs=$("."+divlabel);if(divs.length>0){var cont=0;$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;if($(this).data("page"))page=$(this).data("page");order_by=$(this).data("order-by");div.id=ds+"-"+divlabel+"-"+cont;cont+=1;$(this).empty();if(filter==="repos")DS.displayItemsNav(div.id,filter,page,order_by);else if(filter==="countries")DS.displayItemsNav(div.id,filter,page);else if(filter==="companies")DS.displayItemsNav(div.id,filter,page);else if(filter==="domains")DS.displayItemsNav(div.id,filter,page);else if(filter==="projects")DS.displayItemsNav(div.id,filter,page)})}};Convert.convertFilterItemsMetricsEvol=function(filter){var config_metric=filterItemsConfig();var divlabel="FilterItemsMetricsEvol";divs=$("."+divlabel);if(divs.length>0){$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;var metric=$(this).data("metric");var stacked=false;if($(this).data("stacked"))stacked=true;if($(this).data("min")){config_viz.show_legend=false;config_viz.show_labels=true;config_viz.show_grid=true;config_viz.help=false}var start=$(this).data("start");var end=$(this).data("end");config_metric.lines={stacked:stacked};if($("#"+$(this).data("legend-div")).length>0){config_metric.legend={container:$(this).data("legend-div")}}else config_metric.legend={container:null};config_metric.show_legend=$(this).data("legend");config_metric.mouse_tracker=$(this).data("mouse_tracker");var remove_last_point=$(this).data("remove-last-point");if(remove_last_point)config_metric.remove_last_point=true;div.id=metric+"-"+divlabel;$(this).empty();if(filter==="companies")DS.displayMetricCompanies(metric,div.id,config_metric,start,end);else if(filter==="repos")DS.displayMetricRepos(metric,div.id,config_metric,start,end);else if(filter==="domains")DS.displayMetricDomains(metric,div.id,config_metric,start,end);else if(filter==="projects")DS.displayMetricProjects(metric,div.id,config_metric,start,end)})}};Convert.convertFilterItemsMiniCharts=function(filter,page){var config_metric=filterItemsConfig();var divlabel="FilterItemsMiniCharts";divs=$("."+divlabel);if(divs.length>0){$.each(divs,function(id,div){ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;if($(this).data("page"))page=$(this).data("page");var metrics=$(this).data("metrics");var order_by=$(this).data("order-by");var show_links=true;if($(this).data("show_links")!==undefined)show_links=$(this).data("show_links");var start=$(this).data("start");var end=$(this).data("end");var convert=$(this).data("convert");if($(this).data("frame-time"))config_metric.frame_time=true;var remove_last_point=$(this).data("remove-last-point");if(remove_last_point)config_metric.remove_last_point=true;div.id=metrics.replace(/,/g,"-")+"-"+filter+"-"+divlabel;$(this).empty();if(filter==="repos")DS.displayReposList(metrics.split(","),div.id,config_metric,order_by,page,show_links,start,end,convert);else if(filter==="countries")DS.displayCountriesList(metrics.split(","),div.id,config_metric,order_by,page,show_links,start,end,convert);else if(filter==="companies")DS.displayCompaniesList(metrics.split(","),div.id,config_metric,order_by,page,show_links,start,end,convert);else if(filter==="domains")DS.displayDomainsList(metrics.split(","),div.id,config_metric,order_by,page,show_links,start,end,convert);else if(filter==="projects")DS.displayProjectsList(metrics.split(","),div.id,config_metric,order_by,page,show_links,start,end,convert)})}};Convert.convertFilterItemData=function(filter,item){var divs=$(".FilterItemData");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var label=Report.cleanLabel(item);if(!div.id)div.id="FilterItemData"+getRandomId();html=HTMLComposer.itemName(label,filter);$("#"+div.id).append(html)})}};Convert.convertFilterItemSummary=function(filter,item){var divlabel="FilterItemSummary";divs=$("."+divlabel);if(item!==null&&divs.length>0){$.each(divs,function(id,div){var real_item=item;ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;if($(this).data("item"))real_item=$(this).data("item");div.id=ds+"-"+filter+"-"+divlabel;$(this).empty();if(filter==="repos"){DS.displayRepoSummary(div.id,real_item,DS)}else if(filter==="countries")DS.displayCountrySummary(div.id,real_item,DS);else if(filter==="companies")DS.displayCompanySummary(div.id,real_item,DS);else if(filter==="domains")DS.displayDomainSummary(div.id,real_item,DS);else if(filter==="projects")DS.displayProjectSummary(div.id,real_item,DS)})}};Convert.convertFilterItemMicrodashText=function(filter,item){var divs=$(".FilterItemMicrodashText");if(divs.length>0){$.each(divs,function(id,div){$(this).empty();var global_data;var real_item=item;var metric=$(this).data("metric");var show_name=$(this).data("name");var ds=Report.getMetricDS(metric)[0];if(ds===undefined)return;if(filter==="projects"){global_data=ds.getProjectsGlobalData()[item];if(global_data===undefined){return}}else{return}var html='
';if(show_name){html+='
';html+=''+ds.basic_metrics[metric].name+"";html+="
"}$.each([365,30,7],function(index,period){var column=ds.getMetrics()[metric].column;var value=global_data[metric+"_"+period];var netvalue=global_data["diff_net"+column+"_"+period];var percentagevalue=global_data["percentage_"+column+"_"+period];percentagevalue=Math.round(percentagevalue*10)/10;if(value===undefined)return;var str_percentagevalue="";if(netvalue>0)str_percentagevalue="+"+percentagevalue;if(netvalue<0)str_percentagevalue="-"+Math.abs(percentagevalue);if(show_name){html+='
'}else{html+='
'}html+='Last '+period+" days:";html+=" "+Report.formatValue(value)+"
";if(netvalue===0){html+=' '+str_percentagevalue+"% "}else if(netvalue>0){html+=' '+str_percentagevalue+"% "}else if(netvalue<0){html+=' '+str_percentagevalue+"% "}html+="
"});html+="
";$(div).append(html)})}};Convert.convertFilterItemMetricsEvol=function(filter,item){var config_metric=filterItemsConfig();var divlabel="FilterItemMetricsEvol";divs=$("."+divlabel);if(item!==null&&divs.length>0){$.each(divs,function(id,div){var real_item=item;var metrics=$(this).data("metrics");ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;if($(this).data("item"))real_item=$(this).data("item");config_metric=loadHTMLEvolParameters(div,config_metric);div.id=Report.cleanLabel(item).replace(/ /g,"_")+"-";div.id+=metrics.replace(/,/g,"-")+"-"+ds+"-"+filter+"-"+divlabel;$(this).empty();if(filter==="repos"){DS.displayMetricsRepo(real_item,metrics.split(","),div.id,config_metric)}else if(filter==="countries"){DS.displayMetricsCountry(real_item,metrics.split(","),div.id,config_metric)}else if(filter==="companies"){DS.displayMetricsCompany(real_item,metrics.split(","),div.id,config_metric)}else if(filter==="domains"){DS.displayMetricsDomain(real_item,metrics.split(","),div.id,config_metric)}else if(filter==="projects"){DS.displayMetricsProject(real_item,metrics.split(","),div.id,config_metric)}})}};Convert.convertFilterItemTop=function(filter,item){var divlabel="FilterItemTop";divs=$("."+divlabel);if(divs.length>0){$.each(divs,function(id,div){var real_item=item;$(this).empty();ds=$(this).data("data-source");DS=Report.getDataSourceByName(ds);if(DS===null)return;if(filter===undefined)filter=$(this).data("filter");if(filter!==$(this).data("filter"))return;if(!filter)return;if($(this).data("item"))real_item=$(this).data("item");var metric=$(this).data("metric");var period=$(this).data("period");var titles=$(this).data("titles");div.id=metric+"-"+ds+"-"+filter+"-"+divlabel+"-"+getRandomId();$(this).empty();div.className="";if(filter==="companies")DS.displayTopCompany(real_item,div.id,metric,period,titles)})}};Convert.convertSmartLinks=function(){var divs=$(".SmartLinks");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;target_page=$(this).data("target");label=$(this).data("label");var html=HTMLComposer.smartLinks(target_page,label);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.companyFilters=function(){var divs=$(".CompanyFilters");if(divs.length>0){$.each(divs,function(id,div){if(div.id.indexOf("Parsed")>=0)return;company_name=Report.getParameterByName("company");var html=HTMLComposer.companyFilters(company_name);if(!div.id)div.id="Parsed"+getRandomId();$("#"+div.id).append(html)})}};Convert.convertFilterStudyItem=function(filter,item){var convertfn=Convert.convertFilterStudyItem;if(convertfn.done===undefined){convertfn.done={}}else if(convertfn.done[filter]===true)return;if(filter==="repositories")filter="repos";if(item===undefined){if(filter==="repos")item=Report.getParameterByName("repository");if(filter==="countries")item=Report.getParameterByName("country");if(filter==="companies")item=Report.getParameterByName("company");if(filter==="domains")item=Report.getParameterByName("domain");if(filter==="projects")item=Report.getParameterByName("project")}if(!item)return;if(Loader.FilterItemCheck(item,filter)===false)return;Convert.repositoryDSBlock(item);Convert.convertDSSummaryBlockProjectFiltered();Convert.convertFilterItemData(filter,item);Convert.convertFilterItemSummary(filter,item);Convert.convertFilterItemMetricsEvol(filter,item);Convert.convertFilterItemTop(filter,item);Convert.convertFilterItemMicrodashText(filter,item);Convert.convertProjectData();Convert.activateHelp();Convert.convertMetricsEvolSelector();convertfn.done[filter]=true};Convert.activateHelp=function(){$(".help").popover({html:true,trigger:"manual"}).click(function(e){$(this).popover("toggle");e.stopPropagation()})};Convert.convertFilterStudy=function(filter){var page=Report.getCurrentPage();if(page===null){page=Report.getParameterByName("page");if(page!==undefined)Report.setCurrentPage(page)}if(page===undefined){if($("[class^='FilterItems']").length>0){page=1;Report.setCurrentPage(page)}else return}if(filter==="repositories")filter="repos";if(Loader.check_filter_page(page,filter)===false){$.each(Report.getDataSources(),function(index,DS){Loader.data_load_items_page(DS,page,Convert.convertFilterStudy,filter)});return}Convert.convertFilterItemsSummary(filter);Convert.convertFilterItemsGlobal(filter);Convert.convertFilterItemsNav(filter,page);Convert.convertFilterItemsMetricsEvol(filter);Convert.convertFilterItemsMiniCharts(filter,page)};Convert.convertDSTable=function(){var dst="DataSourcesTable";var divs=$("."+dst);var DS,ds;if(divs.length>0){var unique=0;$.each(divs,function(id,div){$(this).empty();div.id=dst+unique++;Viz.displayDataSourcesTable(div)})}};Convert.convertBasicDivs=function(){Convert.convertNavbar();Convert.convertSmartLinks();Convert.convertSectionBreadcrumb();Convert.convertProjectMap();Convert.convertFooter();Convert.convertOverallSummaryBlock();Convert.convertDSSummaryBlock();Convert.convertDSTable();Convert.convertGlobalData();Convert.convertSummary();Convert.convertTopByPeriod();Convert.companyFilters()};Convert.convertBasicDivsMisc=function(){Convert.convertRadarActivity();Convert.convertRadarCommunity();Convert.convertTreemap();Convert.convertBubbles()};Convert.convertBasicMetrics=function(config){var item=Report.getParameterByName("repository");if(item===undefined)Convert.convertMetricsEvol();Convert.convertTimeTo();Convert.convertMarkovTable()};Convert.convertFilterTop=function(filter){var item=Report.getParameterByName("repository");if(item!==undefined){if(Loader.filterTopCheck(item,filter)===false)return}Convert.convertTop();Convert.convertRepositorySelector()}})();if(Report===undefined)var Report={};(function(){var project_data=null,markers=null,viz_config=null,gridster={},data_sources=[],report_config=null,html_dir="",menu_elements;var data_dir="data/json";var config_dir="config";var default_data_dir="data/json";var default_html_dir="";var projects_dirs=[default_data_dir];var projects_data={};var projects_datasources={};var repos_map;Report.all_json_file=data_dir+"/all.json";var project_file=config_dir+"/project-info.json";viz_config_file=data_dir+"/viz_cfg.json";markers_file=data_dir+"/markers.json";repos_map_file=data_dir+"/repos-map.json";projects_hierarchy_file=data_dir+"/projects_hierarchy.json";menu_elements_file=config_dir+"/menu-elements.json";var page_size=10,page=null;var project_people_identities={};Report.createDataSources=createDataSources;Report.getAllMetrics=getAllMetrics;Report.getMarkers=getMarkers;Report.getVizConfig=getVizConfig;Report.getProjectsHierarchy=getProjectsHierarchy;Report.getMenuElements=getMenuElements;Report.getMenuElementsReleases=getMenuElementsReleases;Report.getReleaseNames=getReleaseNames;Report.getThreadsSite=getThreadsSite;Report.getMetricDS=getMetricDS;Report.getGridster=getGridster;Report.setGridster=setGridster;Report.getCurrentPage=function(){return page};Report.setCurrentPage=function(current_page){page=current_page};Report.getPageSize=function(){return page_size};Report.setPageSize=function(size){page_size=size};Report.getProjectData=getProjectData;Report.getProjectsData=getProjectsData;Report.convertStudies=convertStudies;Report.getDataSources=function(){return data_sources};Report.registerDataSource=function(backend){data_sources.push(backend)};Report.setHtmlDir=function(dir){html_dir=dir};Report.getHtmlDir=function(){return html_dir};Report.getDataDir=function(){return data_dir};Report.setDataDir=function(dataDir){data_dir=dataDir;project_file=dataDir+"/project-info.json";config_file=dataDir+"/viz_cfg.json";markers_file=dataDir+"/markers.json";repos_mapping_file=data_dir+"/repos-mapping.json";projects_hierarchy_file=data_dir+"/projects_hierarchy.json"};function getMarkers(){return markers}Report.setMarkers=function(data){markers=data};Report.getMarkersFile=function(){return markers_file};Report.getReposMap=function(){return repos_map};Report.setReposMap=function(data){repos_map=data};Report.getReposMapFile=function(){return repos_map_file};function getVizConfig(){return viz_config}Report.setVizConfig=function(cfg){viz_config=cfg};Report.getVizConfigFile=function(){return viz_config_file};function getProjectsHierarchy(){return projects_hierarchy}Report.setProjectsHierarchy=function(data){projects_hierarchy=data};Report.getProjectsHierarchyFile=function(){return projects_hierarchy_file};function getMenuElements(){var elements;if(menu_elements!==undefined){elements=menu_elements.menu}return elements}function getMenuElementsReleases(){var releases;if(menu_elements!==undefined){releases=menu_elements.menu_releases}return releases}function getReleaseNames(){var names;if(menu_elements!==undefined){names=menu_elements.releases}return names}function getThreadsSite(){var site;if(menu_elements!==undefined){site=menu_elements.threads_site}return site}Report.setMenuElements=function(data){menu_elements=data};Report.getMenuElementsFile=function(){return menu_elements_file};function getGridster(){return gridster}function setGridster(grid){gridster=grid}function getProjectData(){return project_data}Report.setProjectData=function(data){project_data=data};Report.getProjectFile=function(){return project_file};function getProjectsData(){return projects_data}Report.getProjectsDirs=function(){return projects_dirs};Report.setProjectsDirs=function(dirs){projects_dirs=dirs};Report.getProjectsList=function(){var projects_list=[];$.each(getProjectsData(),function(key,val){projects_list.push(key)});return projects_list};Report.getProjectsDataSources=function(){return projects_datasources};Report.setMetricsDefinition=function(metrics){$.each(Report.getDataSources(),function(i,DS){DS.setMetricsDefinition(metrics[DS.getName()])})};Report.getPeopleIdentities=function(){return project_people_identities};Report.setPeopleIdentities=function(people){project_people_identities=people};Report.cleanLabel=function(item){var label=item;var aux=null;if(item.split("___").length===2){aux=item.split(" ");label=aux[0]}else if(item.lastIndexOf("https:__api.github.com_repos_")===0){label=label.replace("https:__api.github.com_repos_","");label=label.split("_")[1]}else if(item.lastIndexOf("http")===0||item.split("_").length>3){aux=item.split("_");label=aux.pop();if(label==="")label=aux.pop();label=label.replace("buglist.cgi?product=","");label=label.replace("gmane.comp.sysutils.","")}else if(item.lastIndexOf("<")===0)label=MLS.displayMLSListName(item);return label};function strNumberWithThousands(x){var parts=x.toString().split(".");parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,",");return parts.join(".")}Report.formatValue=function(number,field){if(number===undefined)return"-";var date_fields=["last_date","first_date"];var reports=["repositories","companies","countries","domains","projects"];var value=number;try{value=parseFloat(number).toFixed(1).toString().replace(/\.0$/,"");value=strNumberWithThousands(value);if(navigator.language==="es"){var parts=value.split(".");parts[0]=parts[0].replace(/,/g,".");value=parts.join(",")}}catch(err){}if(typeof value==="number"&&isNaN(value))value=number.toString();if(field!==undefined&&$.inArray(field,date_fields)>-1)value=number.toString();if(field!==undefined&&value==="0"){$.each(reports,function(i,report){if(field.indexOf(report)!=1){value="-"}})}return value};Report.escapeHtml=function(unsafe){return unsafe.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")};Report.getParameterByName=function(name){name=name.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var regex=new RegExp("[\\?&]"+name+"=([^]*)"),results=regex.exec(location.search);return results===null?undefined:Report.escapeHtml(decodeURIComponent(results[1].replace(/\+/g," ")))};function getMetricDS(metric_id){var ds=[];$.each(Report.getDataSources(),function(i,DS){if(DS.getMetrics()[metric_id]){ds.push(DS)}});return ds}Report.getDataSourceByName=function(ds){var DS=null;$.each(Report.getDataSources(),function(index,DSaux){if(DSaux.getName()===ds){DS=DSaux;return false}});return DS};function getAllMetrics(){var all={};$.each(Report.getDataSources(),function(index,DS){all=$.extend({},all,DS.getMetrics())});return all}Report.displayActiveMenu=function(){var active=window.location.href;var page=active.substr(active.lastIndexOf("/")+1,active.length);page=page.split(".html")[0];if(page.indexOf("scm")===0){$(".scm-menu")[0].className=$(".scm-menu")[0].className+" active"}else if(page.indexOf("its")===0){$(".its-menu")[0].className=$(".its-menu")[0].className+" active"}else if(page.indexOf("mls")===0){$(".mls-menu")[0].className=$(".mls-menu")[0].className+" active"}else if(page.indexOf("scr")===0){$(".scr-menu")[0].className=$(".scr-menu")[0].className+" active"}else if(page.indexOf("irc")===0){$(".irc-menu")[0].className=$(".irc-menu")[0].className+" active"}else if(page.indexOf("qaforum")===0){$(".qaforum-menu")[0].className=$(".qaforum-menu")[0].className+" active"}else if(page.indexOf("studies")===0){$(".studies-menu")[0].className=$(".studies-menu")[0].className+" active"}else if(page.indexOf("wiki")===0){$(".wiki-menu")[0].className=$(".wiki-menu")[0].className+" active"}else if(page.indexOf("downloads")===0){$(".downloads-menu")[0].className=$(".downloads-menu")[0].className+" active"}else if(page.indexOf("projects")===0){$(".listprojects-menu")[0].className=$(".listprojects-menu")[0].className+" active"}else if(page.indexOf("index")===0||page===""){if($(".summary-menu").length===0)return;$(".summary-menu")[0].className=$(".summary-menu")[0].className+" active"}else{if($(".experimental-menu")[0])$(".experimental-menu")[0].className=$(".experimental-menu")[0].className+" active"}};function checkDynamicConfig(){var data_sources=[];var release=$.urlParam("release");if(release!==null&&release.length>0){data_sources.push("data/json/"+release);Report.setDataDir("data/json/"+release);if(data_sources.length>0)Report.setProjectsDirs(data_sources)}}function createDataSources(){checkDynamicConfig();var projects_dirs=Report.getProjectsDirs();var scm,its,its_1,mls,scr,irc,mediawiki,people,downloads,qaforums,releases;$.each(projects_dirs,function(i,project){if(Report.getConfig()===null||Report.getConfig()["data-sources"]===undefined){its=new ITS;Report.registerDataSource(its);its_1=new ITS_1;Report.registerDataSource(its_1);mls=new MLS;Report.registerDataSource(mls);scm=new SCM;Report.registerDataSource(scm);scr=new SCR;Report.registerDataSource(scr);irc=new IRC;Report.registerDataSource(irc);mediawiki=new MediaWiki;Report.registerDataSource(mediawiki);people=new People;Report.registerDataSource(people);downloads=new Downloads;Report.registerDataSource(downloads);qaforums=new QAForums;Report.registerDataSource(qaforums);releases=new Releases;Report.registerDataSource(releases)}else{var active_ds=Report.getConfig()["data-sources"];$.each(active_ds,function(i,name){if(name==="its"){its=new ITS;Report.registerDataSource(its)}else if(name==="its_1"){its_1=new ITS_1;Report.registerDataSource(its_1)}else if(name==="mls"){mls=new MLS;Report.registerDataSource(mls)}else if(name==="scm"){scm=new SCM;Report.registerDataSource(scm)}else if(name==="scr"){scr=new SCR;Report.registerDataSource(scr)}else if(name==="irc"){irc=new IRC;Report.registerDataSource(irc)}else if(name==="mediawiki"){mediawiki=new MediaWiki;
+Report.registerDataSource(mediawiki)}else if(name==="people"){people=new People;Report.registerDataSource(people)}else if(name==="downloads"){downloads=new Downloads;Report.registerDataSource(downloads)}else if(name==="qaforums"){qaforums=new QAForums;Report.registerDataSource(qaforums)}else if(name==="releases"){releases=new Releases;Report.registerDataSource(releases)}else Report.log("Not support data source "+name)})}if(its)its.setDataDir(project);if(its_1)its_1.setDataDir(project);if(mls)mls.setDataDir(project);if(scm)scm.setDataDir(project);if(scr)scr.setDataDir(project);if(irc)irc.setDataDir(project);if(mediawiki)mediawiki.setDataDir(project);if(people)people.setDataDir(project);if(downloads)downloads.setDataDir(project);if(qaforums)qaforums.setDataDir(project);if(releases)releases.setDataDir(project);if(scm&&its)scm.setITS(its)});return true}Report.addDataDir=function(){var addURL;var querystr=window.location.search.substr(1);if(querystr&&querystr.indexOf("data_dir")!==-1){addURL=window.location.search.substr(1)}return addURL};Report.configDataSources=function(){var prjs_dss=Report.getProjectsDataSources();$.each(Report.getDataSources(),function(index,ds){if(ds.getData()instanceof Array)return;$.each(projects_data,function(name,project){if(project.dir===ds.getDataDir()){if(prjs_dss[name]===undefined)prjs_dss[name]=[];$.each(prjs_dss[name],function(prj,prjds){if(ds.getName()===prjds.getName())return false});ds.setProject(name);prjs_dss[name].push(ds);return false}})})};Report.getConfig=function(){return report_config};Report.setConfig=function(data){report_config=data;if(data){Report.log("Global config file found");if(data["global-html-dir"])Report.setHtmlDir(data["global-html-dir"]);if(data["global-data-dir"]){Report.setDataDir(data["global-data-dir"]);Report.setProjectsDirs([data["global-data-dir"]])}if(data["projects-data-dirs"])Report.setProjectsDirs(data["projects-data-dirs"])}};Report.convertGlobal=function(){Convert.convertBasicDivs();Convert.convertBasicDivsMisc();Convert.convertBasicMetrics();Convert.convertDemographics();Convert.convertMetricsEvolSet();Convert.convertLastActivity();Convert.convertMicrodash();Convert.convertMicrodashText()};Report.getActiveStudies=function(){var activeStudies=[];var reports;var reports_study=["repositories","countries","companies","domains","projects"];if(Report.getConfig()!==null)reports=Report.getConfig().reports;else reports=reports_study;$.each(reports_study,function(i,study){if($.inArray(study,reports)>-1)activeStudies.push(study)});return activeStudies};Report.convertStudiesGlobal=function(){Convert.convertPeople()};function convertStudies(){$.each(Report.getActiveStudies(),function(i,study){var filter=study;if(study==="repositories")filter="repos";DataProcess.orderItems(filter);Convert.convertFilterStudy(study);Convert.convertFilterStudyItem(study)})}var log_on=true;Report.getLog=function(){return log_on};Report.setLog=function(status){log_on=status};Report.log=function(msg){if(Report.getLog()===true)if(window.console)console.log(msg)}})();Loader.data_ready_global(function(){Report.configDataSources();Report.convertGlobal();Report.convertStudiesGlobal()});Loader.data_ready(function(){study="repos";Convert.convertFilterTop(study)});Loader.data_ready(function(){Report.convertStudies();$("body").css("cursor","auto");$("html").click(function(e){$(".help").popover("hide")});Convert.activateHelp()});$(document).ready(function(){$.getJSON(Report.getMenuElementsFile(),function(data){Report.setMenuElements(data)}).fail(function(){if(window.console)Report.log("Can't read global config file "+Report.getMenuElementsFile())}).always(function(data){Report.createDataSources();$.getJSON(Report.all_json_file,function(data){if(window.console){Report.log("Loaded all JSON data from "+Report.all_json_file)}Loader.set_all_data(data)}).always(function(data){Loader.data_load()});$("body").css("cursor","progress")})});function resizedw(){if(true){return}Report.convertGlobal();Report.convertStudiesGlobal();Report.convertStudies();Convert.activateHelp()}var resized;$(window).resize(function(){clearTimeout(resized);resized=setTimeout(resizedw,100)});function DataSource(name,basic_metrics){this.top_data_file=this.data_dir+"/"+this.name+"-top.json";this.getTopDataFile=function(){return this.top_data_file};this.getMetrics=function(){return this.basic_metrics};this.setMetrics=function(metrics){this.basic_metrics=metrics};this.setMetricsDefinition=function(metrics){if(metrics===undefined)return;this.setMetrics(metrics)};this.data_file=this.data_dir+"/"+this.name+"-evolutionary.json";this.getDataFile=function(){return this.data_file};this.setDataFile=function(file){this.data_file=file};this.data=null;this.getData=function(){return this.data};function nameSpaceMetrics(plain_metrics,ds){if(plain_metrics instanceof Array)return plain_metrics;var metrics={};if(plain_metrics===null){return metrics}$.each(plain_metrics,function(name,value){var basic_name=name;var aux=name.split("_");if(isNaN(aux[aux.length-1])===false)basic_name=aux.slice(0,aux.length-1).join("_");var ns_basic_name=ds.getName()+"_"+basic_name;var ns_name=ds.getName()+"_"+name;if(ds.getMetrics()[ns_basic_name]===undefined)metrics[name]=value;else metrics[ns_name]=value});return metrics}this.setData=function(load_data,self){if(self===undefined)self=this;self.data=nameSpaceMetrics(load_data,self)};this.demographics_aging_file=this.data_dir+"/"+this.name+"-demographics-aging.json";this.demographics_birth_file=this.data_dir+"/"+this.name+"-demographics-birth.json";this.getDemographicsAgingFile=function(){return this.demographics_aging_file};this.getDemographicsBirthFile=function(){return this.demographics_birth_file};this.demographics_data={};this.getDemographicsData=function(){return this.demographics_data};this.setDemographicsAgingData=function(data,self){if(self===undefined)self=this;self.demographics_data.aging=data};this.setDemographicsBirthData=function(data,self){if(self===undefined)self=this;self.demographics_data.birth=data};this.data_dir="data/json";this.getDataDir=function(){return this.data_dir};this.setDataDir=function(dataDir){this.data_dir=dataDir;this.data_file=dataDir+"/"+this.name+"-evolutionary.json";this.demographics_aging_file=dataDir+"/"+this.name+"-demographics-aging.json";this.demographics_birth_file=dataDir+"/"+this.name+"-demographics-birth.json";this.global_data_file=dataDir+"/"+this.name+"-static.json";this.top_data_file=dataDir+"/"+this.name+"-top.json";this.companies_data_file=dataDir+"/"+this.name+"-companies.json";this.repos_data_file=dataDir+"/"+this.name+"-repos.json";this.countries_data_file=dataDir+"/"+this.name+"-countries.json";this.domains_data_file=dataDir+"/"+this.name+"-domains.json";this.projects_data_file=dataDir+"/"+this.name+"-projects.json";this.time_to_fix_data_file=dataDir+"/"+this.name+"-quantiles-month-time_to_fix_hour.json"};this.global_data_file=this.data_dir+"/"+this.name+"-static.json";this.getGlobalDataFile=function(){return this.global_data_file};this.global_data=null;this.getGlobalData=function(){return this.global_data};this.setGlobalData=function(data,self){if(self===undefined)self=this;var aux=Report.getMenuElements();var active_companies=null;if(aux&&typeof aux.filter_companies!==undefined){active_companies=aux.filter_companies}if(active_companies&&active_companies.length>0&&Object.keys(data).indexOf("companies")>=0){data.companies=active_companies.length}self.global_data=nameSpaceMetrics(data,self)};this.global_top_data=null;this.getGlobalTopData=function(){return this.global_top_data};this.setGlobalTopData=function(data,self){if(self===undefined)self=this;self.global_top_data=data};this.name=name;this.getName=function(){return this.name};this.people_data_file=this.data_dir+"/"+this.name+"-people.json";this.getPeopleDataFile=function(){return this.people_data_file};this.people=null;this.getPeopleData=function(){return this.people};this.setPeopleData=function(people,self){if(self===undefined)self=this;self.people=people};this.time_to_fix_data_file=this.data_dir+"/"+this.name+"-quantiles-month-time_to_fix_hour.json";this.getTimeToFixDataFile=function(){return this.time_to_fix_data_file};this.time_to_fix_data=null;this.getTimeToFixData=function(){return this.time_to_fix_data};this.setTimeToFixData=function(data,self){if(self===undefined)self=this;self.time_to_fix_data=data};this.time_to_attention_data_file=this.data_dir+"/"+this.name+"-quantiles-month-time_to_attention_hour.json";this.getTimeToAttentionDataFile=function(){return this.time_to_attention_data_file};this.time_to_attention_data=null;this.getTimeToAttentionData=function(){return this.time_to_attention_data};this.setTimeToAttentionData=function(data,self){if(self===undefined)self=this;self.time_to_attention_data=data};this.project=null;this.getProject=function(){return this.project};this.setProject=function(project){this.project=project};this.markov_table_data_file=this.data_dir+"/"+this.name+"-markov.json";this.getMarkovTableDataFile=function(){return this.markov_table_data_file};this.markov_table_data=null;this.getMarkovTableData=function(){return this.markov_table_data};this.setMarkovTableData=function(data,self){if(self===undefined)self=this;self.markov_table_data=data};this.companies_data_file=this.data_dir+"/"+this.name+"-companies.json";this.getCompaniesDataFile=function(){return this.companies_data_file};this.companies=null;this.getCompaniesDataFull=function(){return this.companies};this.getCompaniesData=function(){var items=this.companies;if(items instanceof Array===false){if(this.companies!==null){items=this.companies.name}}return items};function filterOutCompaniesArray(com_data){var aux=Report.getMenuElements(),active_companies=null,result=[];if(aux&&typeof aux.filter_companies!==undefined){active_companies=aux.filter_companies}if(active_companies&&active_companies.length>0){$.each(com_data,function(pos,name){if(active_companies.indexOf(name)>=0){result[result.length]=name}})}else{result=com_data}return result}function filterOutCompanies(com_data){var aux=Report.getMenuElements();var active_companies=null;if(aux&&typeof aux.filter_companies!==undefined){active_companies=aux.filter_companies}if(active_companies&&active_companies.length>0){var keys=Object.keys(com_data);var positions=[];$.each(com_data.name,function(pos,name){if(active_companies.indexOf(name)>=0){positions[positions.length]=pos}});var new_obj={};$.each(keys,function(id,k){new_obj[k]=[];$.each(positions,function(subid,pos){var l=new_obj[k].length;new_obj[k][l]=com_data[k][pos]})});com_data=new_obj}return com_data}this.setCompaniesData=function(companies,self){if(companies===null)companies=[];if(self===undefined)self=this;if(Array.isArray(companies)){self.companies=filterOutCompaniesArray(companies)}else if(typeof companies==="object"){self.companies=filterOutCompanies(companies)}};this.companies_metrics_data={};this.addCompanyMetricsData=function(company,data,self){if(self===undefined)self=this;self.companies_metrics_data[company]=nameSpaceMetrics(data,self)};this.getCompaniesMetricsData=function(){return this.companies_metrics_data};this.companies_global_data={};this.addCompanyGlobalData=function(company,data,self){if(self===undefined)self=this;self.companies_global_data[company]=nameSpaceMetrics(data,self)};this.getCompaniesGlobalData=function(){return this.companies_global_data};this.companies_top_data={};this.addCompanyTopData=function(company,data,self){if(self===undefined)self=this;if(self.companies_top_data[company]===undefined)self.companies_top_data[company]={};self.companies_top_data[company]=data};this.getCompaniesTopData=function(){return this.companies_top_data};this.setCompaniesTopData=function(data,self){if(self===undefined)self=this;self.companies_top_data=data};this.repos_data_file=this.data_dir+"/"+this.name+"-repos.json";this.getReposDataFile=function(){return this.repos_data_file};this.repos=null;this.getReposDataFull=function(){return this.repos};this.getReposData=function(){var items=this.repos;if(items instanceof Array===false){if(this.repos!==null){items=this.repos.name}}return items};this.setReposData=function(repos,self){if(self===undefined)self=this;self.repos=repos;if(self.getName()!=="its")return;repos_names=[];if(repos instanceof Array===true){self.repos={};self.repos.name=repos}var filtered_repos=[];for(var i=0;i
=0){if(self.getName()==="mls"){var mls_name=MLS.displayMLSListName(value);data[mls_name]=self.getReposMetricsData()[value]}else{data[value]=self.getReposMetricsData()[value]}}})}else{data=this.getData()}if(convert){data=DataProcess.convert(data,convert,metric_ids);if(convert==="divide"){mlabel=this.getMetrics()[metric_ids[0]].name+"/";mlabel+=this.getMetrics()[metric_ids[1]].name;metric_ids=["divide"];this.getMetrics().divide={name:mlabel}}if(convert==="substract"){mlabel=this.getMetrics()[metric_ids[0]].name+"-";mlabel+=this.getMetrics()[metric_ids[1]].name;metric_ids=["substract"];this.getMetrics().substract={name:mlabel}}}Viz.displayMetricsEvol(this,metric_ids,data,div_target,config,repositories)};this.isPageDisplayed=function(visited,linked,total,displayed){var window=Math.floor((displayed-3)/2);var lowest_barrier=visited-window;var highest_barrier=visited+window;if(linked===1||linked===total||linked==visited){return true}else if(linked>=lowest_barrier&&linkedvisited){return true}else{return false}};this.displayItemsNav=function(div_nav,type,page_str,order_by){var page=parseInt(page_str,null);if(isNaN(page))page=1;var items=null;var title="";var total=0;var displayed_pages=5;if(type==="companies"){items=this.getCompaniesData();title="List of companies"}else if(type==="repos"){items=this.getReposData();if(order_by)items=DataProcess.sortGlobal(this,order_by,type)}else if(type==="countries"){items=this.getCountriesData()}else if(type==="domains"){items=this.getDomainsData()}else if(type==="projects"){items=this.getProjectsData()}else{return}total=items.length;var nav="";var psize=Report.getPageSize();if(page){nav+=""}if(Report.getPageSize()>10)$.each(items,function(id,item){var label=Report.cleanLabel(item);nav+=""+label+" "});$("#"+div_nav).append(nav)};this.displayCompaniesLinks=function(div_links,limit,sort_metric){var sorted_companies=DataProcess.sortGlobal(this,sort_metric,"companies");var links="";var i=0;$.each(sorted_companies,function(id,company){links+=''+company+"| ";if(i++>=limit-1)return false});$("#"+div_links).append(links)};this.displayCompaniesList=function(metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert){this.displaySubReportList("companies",metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert)};this.displayReposList=function(metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert){this.displaySubReportList("repos",metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert)};this.displayCountriesList=function(metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert){this.displaySubReportList("countries",metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert)};this.displayDomainsList=function(metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert){this.displaySubReportList("domains",metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert)};this.displayProjectsList=function(metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert){this.displaySubReportList("projects",metrics,div_id,config_metric,sort_metric,page,show_links,start,end,convert)};this.displaySubReportList=function(report,metrics,div_id,config_metric,sort_metric,page_str,show_links,start,end,convert){var page=parseInt(page_str,null);if(isNaN(page))page=1;var list="";var cont=(page-1)*Report.getPageSize()+1;var ds=this;var data=null,sorted=null;if(show_links===undefined)show_links=true;if(report==="companies"){data=this.getCompaniesMetricsData();sorted=DataProcess.sortGlobal(this,sort_metric,report)}else if(report==="repos"){data=this.getReposMetricsData();sorted=DataProcess.sortGlobal(this,sort_metric,report)}else if(report==="countries"){data=this.getCountriesMetricsData();sorted=DataProcess.sortGlobal(this,sort_metric,report)}else if(report==="domains"){data=this.getDomainsMetricsData();sorted=DataProcess.sortGlobal(this,sort_metric,report)}else if(report==="projects"){data=this.getProjectsMetricsData();sorted=DataProcess.sortGlobal(this,sort_metric,report)}else return;sorted=DataProcess.paginate(sorted,page);list+='";$("#"+div_id).append(list);var start_items=null,end_items=null,convert_items=null;if(start){if(typeof start==="number")start_items=[start.toString()];else start_items=start.split(",")}if(end){if(typeof end==="number")end_items=[end.toString()];else end_items=end.split(",")}if(convert)convert_items=convert.split(",");$.each(sorted,function(id,item){var i=0;$.each(metrics,function(id,metric){var mstart=null,mend=null,mconvert=null;if(start_items){if(start_items.length==1)mstart=start_items[0];else mstart=start_items[i]}if(end_items){if(end_items.length==1)mend=end_items[0];else mend=end_items[i]}if(convert_items)mconvert=convert_items[i];if(item in data===false)return;var item_data=data[item];if(item_data[metric]===undefined)return;var div_id=report+"-"+item+"-"+metric;var items={};items[item]=item_data;var title="";Viz.displayMetricSubReportLines(div_id,metric,items,title,config_metric,mstart,mend,mconvert);i++})})};this.displayGlobalSummary=function(divid){this.displaySummary(null,divid,null,this)};this.displayCompanySummary=function(divid,company,ds){this.displaySummary("companies",divid,company,ds)};this.displayRepoSummary=function(divid,repo,ds){this.displaySummary("repositories",divid,repo,ds)};this.displayCountrySummary=function(divid,repo,ds){this.displaySummary("countries",divid,repo,ds)};this.displayDomainSummary=function(divid,domain,ds){this.displaySummary("domains",divid,domain,ds)};this.displayProjectSummary=function(divid,project,ds){this.displaySummary("projects",divid,project,ds)};this.displayPeopleSummary=function(divid,upeople_id,upeople_identifier,ds){var history=ds.getPeopleGlobalData()[upeople_id];if(history===undefined||history instanceof Array)return;html=HTMLComposer.personSummaryTable(ds.getName(),history);$("#"+divid).append(html)};this.displayCompaniesSummary=function(divid,ds){var html="";var data=ds.getGlobalData();html+="Total companies: "+data.companies+"
";if(data.companies_2006)html+="Companies in 2006: "+data.companies_2006+"
";if(data.companies_2009)html+="Companies in 2009: "+data.companies_2009+"
";if(data.companies_2012)html+="Companies in 2012: "+data.companies_2012+"
";$("#"+divid).append(html)};this.getSummaryLabels=function(){};this.getLabelForRepository=function(){return"repository"};this.getLabelForRepositories=function(){return"repositories"};this.displaySummary=function(report,divid,item,ds){if(!item)item="";var html=""+ds.getTitle()+"
";var id_label=this.getSummaryLabels();var global_data=null;if(report==="companies")global_data=ds.getCompaniesGlobalData()[item];else if(report==="countries")global_data=ds.getCountriesGlobalData()[item];else if(report==="repositories")global_data=ds.getReposGlobalData()[item];else if(report==="domains")global_data=ds.getDomainsGlobalData()[item];else if(report==="projects")global_data=ds.getProjectsGlobalData()[item];
+else global_data=ds.getGlobalData();if(!global_data)return;html=HTMLComposer.repositorySummaryTable(ds,global_data,id_label);$("#"+divid).append(html)};this.displayReposSummary=function(divid,ds){var html="";var data=ds.getGlobalData();html+="Total repositories: "+data[ds.getName()+"_repositories"]+"
";$("#"+divid).append(html)};this.displayCountriesSummary=function(divid,ds){var html="";var data=ds.getGlobalData();html+="Total countries: "+data[ds.getName()+"_countries"]+"
";$("#"+divid).append(html)};this.displayDomainsSummary=function(divid,ds){var html="";var data=ds.getGlobalData();html+="Total domains: "+data.domains+"
";$("#"+divid).append(html)};this.displayProjectsSummary=function(divid,ds){var html="";var data=ds.getGlobalData();html+="Total projects: "+data.projects+"
";$("#"+divid).append(html)};this.displayDemographics=function(divid,period){var data=this.getDemographicsData();Viz.displayDemographicsChart(divid,data,period)};this.displayTimeToAttention=function(div_id,column,labels,title){labels=true;title="Time to Attention "+column;var data=this.getTimeToAttentionData();if(data instanceof Array)return;Viz.displayTimeToAttention(div_id,data,column,labels,title)};this.displayTimeToFix=function(div_id,column,labels,title){labels=true;title="Time to Fix "+column;var data=this.getTimeToFixData();if(data instanceof Array)return;Viz.displayTimeToFix(div_id,this.getTimeToFixData(),column,labels,title)};this.displayMarkovTable=function(div_id,title){var data=this.getMarkovTableData();if(data===undefined){Report.log("No Markov data available");return}Viz.displayMarkovTable(div_id,data,title)};this.displayTop=function(div,all,show_metric,period,period_all,graph,limit,people_links,threads_links,repository){if(all===undefined)all=true;var titles=null;Viz.displayTop(div,this,all,show_metric,period,period_all,null,null,limit,people_links,threads_links,repository)};this.displayTopCompany=function(company,div,metric_id,period,titles){var data=this.getCompaniesTopData()[company];if(data===undefined)return;var metric=this.getMetrics()[metric_id];Viz.displayTopCompany(company,data,div,metric,period,titles)};this.displayTopGlobal=function(div,metric,period,titles){Viz.displayTopGlobal(div,this,metric,period,titles)};this.envisionEvo=function(div_id,history,relative,legend_show,summary_graph){config=Report.getVizConfig();var options=Viz.getEnvisionOptions(div_id,history,this.getName(),Report.getVizConfig()[this.getName()+"_hide"],summary_graph);options.legend_show=legend_show;if(relative)DataProcess.addRelativeValues(options.data,this.getMainMetric());new envision.templates.Envision_Report(options,[this])};this.displayEnvision=function(divid,relative,legend_show,summary_graph){var projects_full_data=Report.getProjectsDataSources();this.envisionEvo(divid,projects_full_data,relative,legend_show,summary_graph)}}if(Viz===undefined)var Viz={};(function(){var bitergiaColor="#ffa500";Viz.displayTop=displayTop;Viz.displayTopCompany=displayTopCompany;Viz.displayTopGlobal=displayTopGlobal;Viz.displayBasicChart=displayBasicChart;Viz.displayMetricCompanies=displayMetricCompanies;Viz.displayMetricSubReportStatic=displayMetricSubReportStatic;Viz.displayMetricsCompany=displayMetricsCompany;Viz.displayMetricsDomain=displayMetricsDomain;Viz.displayMetricsProject=displayMetricsProject;Viz.displayMetricsPeople=displayMetricsPeople;Viz.displayMetricsRepo=displayMetricsRepo;Viz.displayMetricRepos=displayMetricRepos;Viz.displayMetricsCountry=displayMetricsCountry;Viz.displayMetricDomains=displayMetricDomains;Viz.displayMetricProjects=displayMetricProjects;Viz.displayMetricsEvol=displayMetricsEvol;Viz.displayBubbles=displayBubbles;Viz.displayDemographicsChart=displayDemographicsChart;Viz.displayEnvisionAll=displayEnvisionAll;Viz.displayTimeToFix=displayTimeToFix;Viz.displayTimeToAttention=displayTimeToAttention;Viz.displayMetricSubReportLines=displayMetricSubReportLines;Viz.displayRadarActivity=displayRadarActivity;Viz.displayRadarCommunity=displayRadarCommunity;Viz.displayTreeMap=displayTreeMap;Viz.displayMarkovTable=displayMarkovTable;Viz.displayDataSourcesTable=displayDataSourcesTable;Viz.getEnvisionOptions=getEnvisionOptions;Viz.checkBasicConfig=checkBasicConfig;Viz.displayTimeZone=displayTimeZone;function findMetricDoer(history,metric_id){var doer="";$.each(Report.getAllMetrics(),function(name,metric){if(metric.action===metric_id){doer=metric.column;return false}});return doer}function displayMarkovTable(div_id,data,title){var html=""+title+"
";var table='';table+="Transition | Number | Percent |
";$.each(data,function(i,val){subdata=data[i];old_value="old_value";new_value="new_value";percent="f";number="issue";for(var k=0;k"+i+" -> "+value_new+" | ";table+=""+value_num+" | ";table+=""+value_p+" | "}});table+="
";html+=table;div=$("#"+div_id);div.append(html);return}function translate(labels,l){if(labels.hasOwnProperty(l)){return labels[l]}else{return l}}function getTopVarsFromMetric(metric,ds_name){var var_names={};var_names.id="id";if(metric==="senders"&&(ds_name==="mls"||ds_name==="irc")){var_names.name="senders";var_names.action="sent"}if(metric==="authors"&&ds_name==="scm"){var_names.name="authors";var_names.action="commits"}if(metric==="closers"&&(ds_name==="its"||ds_name==="its_1")){var_names.name="closers";var_names.action="closed"}if(ds_name==="scr"){if(metric==="mergers"){var_names.name="mergers";var_names.action="merged"}if(metric==="openers"){var_names.name="openers";var_names.action="opened"}if(metric==="reviewers"){var_names.name="reviewers";var_names.action="reviews"}if(metric==="active_core_reviewers"){var_names.name="identifier";var_names.action="reviews"}if(metric==="participants"){var_names.name="identifier";var_names.action="events"}}if(ds_name==="downloads"){if(metric==="ips"){var_names.name="ips";var_names.action="downloads"}if(metric==="packages"){var_names.name="packages";var_names.action="downloads"}}if(ds_name==="mediawiki"){if(metric==="authors"){var_names.name="authors";var_names.action="reviews"}}if(ds_name==="qaforums"){if(metric==="senders"||metric==="asenders"||metric==="qsenders"){var_names.name="senders";var_names.action="sent"}else if(metric==="participants"){var_names.name="name";var_names.action="messages_sent"}}if(ds_name==="releases"){if(metric==="authors"){var_names.name="username";var_names.action="releases"}}return var_names}function getSortedPeriods(){return["last month","last year",""]}function composeTopRowsDownloads(dl_data,limit,var_names){var rows_html="";for(var j=0;j "+(j+1)+" | ";rows_html+="";rows_html+=dl_data[var_names.name][j];rows_html+=" | ";rows_html+=""+metric_value+" | "}return rows_html}function composeTopRowsThreads(threads_data,limit,threads_links){var rows_html="";for(var i=0;i#"+(i+1)+" | ";rows_html+="";if(threads_links===true){var url="http://www.google.com/search?output=search&q=X&btnI=1";if(Report.getThreadsSite()!==undefined){url="http://www.google.com/search?output=search&q=X%20site%3AY&btnI=1";url=url.replace(/Y/g,Report.getThreadsSite())}else if(threads_data.hasOwnProperty("url")&&threads_data.url[i].length>0){url="http://www.google.com/search?output=search&q=X%20site%3AY&btnI=1";url=url.replace(/Y/g,threads_data.url[i])}url=url.replace(/X/g,threads_data.subject[i]);rows_html+=" | ";rows_html+='';rows_html+=threads_data.subject[i]+"";rows_html+=' | '}else{rows_html+=""+threads_data.subject[i]+" | "}rows_html+=""+threads_data.initiator_name[i]+" | ";rows_html+=""+threads_data.length[i]+" | ";rows_html+=""}return rows_html}function composeTopRowsPeople(people_data,limit,people_links,var_names){var rows_html="";for(var j=0;j"+(j+1)+" | ";rows_html+="";if(people_links){rows_html+='';rows_html+=DataProcess.hideEmail(people_data[var_names.name][j])+""}else{rows_html+=DataProcess.hideEmail(people_data[var_names.name][j])}rows_html+=" | ";rows_html+=""+metric_value+" | "}return rows_html}function composeTopTabs(periods,metric,data,ds_name){var tabs_html="";var first=true;tabs_html+='";return tabs_html}function composeTitle(metric,ds_name,tabs,desc_metrics,selected_period){var key=ds_name+"_"+metric;var desc="";var title="";if(key in desc_metrics){desc=desc_metrics[key].desc;desc=desc.toLowerCase()}if(selected_period===""){data_period_formatted="Complete history"}else if(selected_period==="last month"){data_period_formatted="Last 30 days"}else if(selected_period==="last year"){data_period_formatted="Last 365 days"}if(Utils.isReleasePage())data_period_formatted="Release history";if(tabs===true){title+="Top "+desc+"
"}else{title+=''+data_period_formatted+"
"}return title}String.prototype.capitalize=function(){return this.replace(/(?:^|\s)\S/g,function(a){return a.toUpperCase()})};function displayTopMetric_new(div_id,data,metric,limit,desc_metrics,people_links,threads_links,selected_period){var tabs="";var tables="";var title="";var gen_tabs=true;var div=$("#"+div_id);var ds_name=div.attr("data-data-source");if(Report.getParameterByName("repository")!==undefined){people_links=false}periods=getSortedPeriods();if(selected_period!==undefined){gen_tabs=false}title+=composeTitle(metric,ds_name,gen_tabs,desc_metrics,selected_period);if(gen_tabs===true){tabs+=composeTopTabs(periods,metric,data,ds_name)}tables+='';var var_names=getTopVarsFromMetric(metric,ds_name);if(gen_tabs===true){var first=true;var html="";for(var k=0;k
';tables+='';if(metric==="threads"){tables+=composeTopRowsThreads(data[key],limit,threads_links)}else if(metric==="packages"||metric==="ips"){unit=desc_metrics[ds_name+"_"+metric].action;metric_name=desc_metrics[ds_name+"_"+metric].name;tables+="# | "+metric_name.capitalize()+" | ";if(unit!==undefined)tables+=""+unit.capitalize()+" | ";tables+="";tables+=composeTopRowsDownloads(data[key],limit,var_names)}else{unit=desc_metrics[ds_name+"_"+metric].action;metric_name=desc_metrics[ds_name+"_"+metric].name;tables+="# | "+metric_name.capitalize()+" | ";if(unit!==undefined)tables+=""+unit.capitalize()+" | ";tables+="";tables+=composeTopRowsPeople(data[key],limit,people_links,var_names);tables+=""}tables+="
";tables+=" "}}}else{tables+='';if(metric==="threads"){tables+=composeTopRowsThreads(data,limit,threads_links)}else if(metric==="packages"||metric==="ips"){unit=desc_metrics[ds_name+"_"+metric].action;tables+="# | "+metric.capitalize()+" | ";if(unit!==undefined)tables+=""+unit.capitalize()+" | ";tables+="";tables+=composeTopRowsDownloads(data,limit,var_names)}else{unit=desc_metrics[ds_name+"_"+metric].action;tables+="# | "+metric.capitalize()+" | ";if(unit!==undefined)tables+=""+unit.capitalize()+" | ";tables+="";tables+=composeTopRowsPeople(data,limit,people_links,var_names);tables+=""}tables+="
"}tables+="";if(gen_tabs===false){div.append(title)}div.append(tabs);div.append(tables);if(gen_tabs===true){script="";div.append(script)}}function displayTopMetric(div_id,metric,metric_period,history,graph,titles,limit,people_links){var top_metric_id=metric.name;if(!history||$.isEmptyObject(history))return;var metric_id=metric.action;if(limit&&history[metric_id].length
"}new_div+=table;div=$("#"+div_id);div.append(new_div);if(graph){var labels=history[doer];var data=history[metric_id];if(limit){labels=[];data=[];for(var i=0;i