var token; if(isEmpty(token)){ var meta = $("meta[name=_uid]"); if(!isEmpty(meta)){ token = meta.attr("content"); console.log("token is uid:" + token); } } var html =document.documentElement; var lang = html.attributes["lang"] var isZh = true; if(lang != null && lang.nodeValue =="en-US" ){ console.log("the language is " + lang.nodeValue); isZh=false; }else{ console.log("default lang=zh"); } function isEmpty(str){ if(typeof str == "undefined" || str == null || str == ""){ return true; } return false; } var itemType={ "1":"repository", "2":"issue", "3":"user", "4":"org", "5":"dataset", "6":"pr" }; var sortBy={ "11":"updated_unix.keyword", "12":"num_watches", "13":"num_stars", "14":"num_forks", "21":"updated_unix.keyword", "31":"created_unix.keyword", "32":"name.keyword", "41":"created_unix.keyword", "42":"name.keyword", "51":"download_times.keyword", "61":"updated_unix.keyword" }; var sortAscending={ "11":"false", "12":"false", "13":"false", "14":"false", "21":"false", "31":"false", "32":"true", "41":"false", "42":"true", "51":"false", "61":"false" }; var currentPage = 1; var pageSize = 15; var currentSearchTableName =""; var currentSearchKeyword=""; var currentSearchSortBy=""; var currentSearchAscending=false; var OnlySearchLabel=false; var startIndex =1; var endIndex = 5; var totalPage = 1; var totalNum = 0; function initPageInfo(){ currentPage = 1; startIndex =1; endIndex = 5; } function searchItem(type,sortType){ console.log("enter item 2."); currentSearchKeyword = document.getElementById("keyword_input").value; if(!isEmpty(currentSearchKeyword)){ initPageInfo(); currentSearchTableName = itemType[type]; currentSearchSortBy = sortBy[sortType]; currentSearchAscending = sortAscending[sortType]; OnlySearchLabel =false; page(currentPage); } } function search(){ console.log("enter here 1."); currentSearchKeyword = document.getElementById("keyword_input").value; initPageInfo(); if(!isEmpty(currentSearchKeyword)){ currentSearchTableName = "repository"; currentSearchSortBy = sortBy[11]; currentSearchAscending = false; OnlySearchLabel =false; page(currentPage); doSearch("issue",currentSearchKeyword,1,pageSize,true,"",false); doSearch("user",currentSearchKeyword,1,pageSize,true,"",false); doSearch("org",currentSearchKeyword,1,pageSize,true,"",false); doSearch("dataset",currentSearchKeyword,1,pageSize,true,"",false); doSearch("pr",currentSearchKeyword,1,pageSize,true,"",false); } } function initDiv(isSearchLabel=false){ if(isSearchLabel){ document.getElementById("search_div").style.display="none"; document.getElementById("search_label_div").style.display="block"; document.getElementById("dataset_item").style.display="none"; document.getElementById("issue_item").style.display="none"; document.getElementById("pr_item").style.display="none"; document.getElementById("user_item").style.display="none"; document.getElementById("org_item").style.display="none"; document.getElementById("find_id").innerHTML=""; }else{ document.getElementById("search_div").style.display="block"; document.getElementById("search_label_div").style.display="none"; document.getElementById("dataset_item").style.display="block"; document.getElementById("issue_item").style.display="block"; document.getElementById("pr_item").style.display="block"; document.getElementById("user_item").style.display="block"; document.getElementById("org_item").style.display="block"; document.getElementById("find_id").innerHTML="找到"; } } function searchLabel(tableName,keyword,sortBy="",ascending=false){ console.log("enter label search."); initDiv(true); //document.getElementById("search_div").style.display="none"; //document.getElementById("search_label_div").style.display="block"; document.getElementById("search_label_div").innerHTML="

#" + keyword + "

"; currentSearchKeyword = keyword; initPageInfo(); currentSearchTableName = tableName; currentSearchSortBy = sortBy; currentSearchAscending = ascending; OnlySearchLabel =true; page(currentPage); } function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true,sortBy="",OnlySearchLabel=false){ $.ajax({ type:"GET", url:"/all/dosearch/", headers: { authorization:token, }, dataType:"json", data:{ 'TableName': tableName, 'Key': keyword, 'Page': page, 'PageSize': pageSize, 'OnlyReturnNum':onlyReturnNum, 'SortBy':sortBy, 'OnlySearchLabel':OnlySearchLabel, 'Ascending':currentSearchAscending }, async:true, success:function(json){ console.log("tableName=" + tableName); console.log(json); displayResult(tableName,page,json,onlyReturnNum,keyword); }, error:function(response) { console.log(response); } }); } function displayResult(tableName,page,jsonResult,onlyReturnNum,keyword){ if(tableName == "repository") { displayRepoResult(page,jsonResult,onlyReturnNum,keyword); } else if (tableName == "issue") { displayIssueResult(page,jsonResult,onlyReturnNum,keyword); } else if (tableName == "user") { displayUserResult(page,jsonResult,onlyReturnNum,keyword); } else if (tableName == "org") { displayOrgResult(page,jsonResult,onlyReturnNum,keyword); } else if (tableName == "dataset") { displayDataSetResult(page,jsonResult,onlyReturnNum,keyword); } else if (tableName == "pr") { displayPrResult(page,jsonResult,onlyReturnNum,keyword); } if(!onlyReturnNum){ console.log("set total num." + tableName); totalPage =Math.ceil(jsonResult.Total/pageSize); totalNum = jsonResult.Total; setPage(page); } } function displayPrResult(page,jsonResult,onlyReturnNum,keyword){ var data = jsonResult.Result; var total = jsonResult.Total; $('#pr_total').text(total); if(!onlyReturnNum){ setActivate("pr_item"); $('#keyword_desc').text(keyword); $('#obj_desc').text("合并请求"); $('#child_total').text(total); setIssueOrPrInnerHtml(data,"pulls"); } } var categoryDesc={ "computer_vision":"计算机视觉", "natural_language_processing":"自然语言处理", "speech_processing":"语音处理", "computer_vision_natural_language_processing":"计算机视觉、自然语言处理" }; var taskDesc={ "machine_translation":"机器翻译", "question_answering_system":"问答系统", "information_retrieval":"信息检索", "knowledge_graph":"知识图谱", "text_annotation":"文本标注", "text_categorization":"文本分类", "emotion_analysis":"情感分析", "language_modeling":"语言建模", "speech_recognition":"语音识别", "automatic_digest":"自动文摘", "information_extraction":"信息抽取", "description_generation":"说明生成", "image_classification":"图像分类", "face_recognition":"人脸识别", "image_search":"图像搜索", "target_detection":"目标检测", "image_description_generation":"图像描述生成", "vehicle_license_plate_recognition":"车辆车牌识别", "medical_image_analysis":"医学图像分析", "unmanned":"无人驾驶", "unmanned_security":"无人安防", "drone":"无人机", "vr_ar":"VR/AR", "2_d_vision":"2-D视觉", "2_5_d_vision":"2.5-D视觉", "3_d_reconstruction":"3D重构", "image_processing":"图像处理", "video_processing":"视频处理", "visual_input_system":"视觉输入系统", "speech_coding":"语音编码", "speech_enhancement":"语音增强", "speech_recognition":"语音识别", "speech_synthesis":"语音合成" }; function getCategoryDesc(key){ var re = categoryDesc[key]; if(isEmpty(re)){ return key; } return re; } function getTaskDesc(key){ var re = taskDesc[key]; if(isEmpty(re)){ return key; } return re; } function displayDataSetResult(page,jsonResult,onlyReturnNum,keyword){ var data = jsonResult.Result; var total = jsonResult.Total; $('#dataset_total').text(total); if(!onlyReturnNum){ setActivate("dataset_item"); $('#keyword_desc').text(keyword); $('#obj_desc').text("数据集"); $('#child_total').text(total); var sortHtml = ""; sortHtml +="下载次数"; document.getElementById("sort_type").innerHTML=sortHtml; var html = ""; var currentTime = new Date().getTime(); for(var i = 0; i < data.length;i++){ var recordMap = data[i]; html += "
"; html += "
"; html += "
" ; if(!isEmpty(recordMap["category"])){ html += " " + getCategoryDesc(recordMap["category"]) + ""; } if(!isEmpty(recordMap["task"])){ html += " " + getTaskDesc(recordMap["task"]) + ""; } html += " " +recordMap["download_times"] + " "; html +="
"; html += "
"; html += " " + recordMap["title"] + ""; html +=" "; html +="
"; html += "
"; html += "

" + recordMap["description"] + "

"; if(!isEmpty(recordMap["file_name"])){ html += "

" + recordMap["file_name"] + "

"; } html +="

"; html +=" 最后更新于 " + getTime(recordMap["created_unix"],currentTime) +""; html +="

"; html +="
"; html +="
"; html +="
"; } document.getElementById("child_search_item").innerHTML=html; } } function displayOrgResult(page,jsonResult,onlyReturnNum,keyword){ var data = jsonResult.Result; var total = jsonResult.Total; $('#org_total').text(total); if(!onlyReturnNum){ setActivate("org_item"); $('#keyword_desc').text(keyword); $('#obj_desc').text("组织"); $('#child_total').text(total); var sortHtml = ""; sortHtml +="加入时间"; sortHtml +="名称自然序"; document.getElementById("sort_type").innerHTML=sortHtml; var html = ""; var currentTime = new Date().getTime(); for(var i = 0; i < data.length;i++){ var recordMap = data[i]; html += "
"; html += ""; html += "
"; html += "
"; html += " " + recordMap["name"] + ""; html +="
"; html += "
"; html += "

" + recordMap["description"] + "

"; html +="

"; html +=" " + recordMap["location"]; html +=" "; if(!isEmpty(recordMap["website"]) && recordMap["website"] != "null"){ html +=" " + "" + recordMap["website"] + ""; } html +=" 加入于 "; var userAddDate = new Date(recordMap["created_unix"]*1000); html += monthDisplay[userAddDate.getMonth()] + " " + userAddDate.getDay() + " " + userAddDate.getFullYear(); html +="

"; html +="
"; html +="
"; html +="
"; } document.getElementById("child_search_item").innerHTML=html; } } var monthDisplay=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Spt","Oct","Nov","Dec"); function displayUserResult(page,jsonResult,onlyReturnNum,keyword){ var data = jsonResult.Result; var total = jsonResult.Total; $('#user_total').text(total); if(!onlyReturnNum){ setActivate("user_item"); $('#keyword_desc').text(keyword); $('#obj_desc').text("用户"); $('#child_total').text(total); var sortHtml = ""; sortHtml +="加入时间"; sortHtml +="名称自然序"; document.getElementById("sort_type").innerHTML=sortHtml; var html = ""; var currentTime = new Date().getTime(); for(var i = 0; i < data.length;i++){ var recordMap = data[i]; html += "
"; html += ""; html += "
"; html += "
"; html += " " + recordMap["name"] + ""; html +="
"; html += "
"; html += "

" + recordMap["description"] + "

"; html +="

"; html +=" " + recordMap["email"]; html +=" 加入于 "; var userAddDate = new Date(recordMap["created_unix"]*1000); html += monthDisplay[userAddDate.getMonth()] + " " + userAddDate.getDay() + " " + userAddDate.getFullYear(); html +="

"; html +="
"; html +="
"; html +="
"; } document.getElementById("child_search_item").innerHTML=html; } } function setIssueOrPrInnerHtml(data,path){ var sortHtml = ""; sortHtml +="最近更新"; document.getElementById("sort_type").innerHTML=sortHtml; var html = ""; var currentTime = new Date().getTime(); for(var i = 0; i < data.length;i++){ var recordMap = data[i]; html += "
"; html += "
"; html += "
"; html += " " + recordMap["name"] + ""; html +="
"; html += "
"; html += "

" + recordMap["content"] + "

"; html +="

"; html +=" "; html +=" " + recordMap["repoUrl"] +"#" + recordMap["index"] + ""; html +=" "; if(isEmpty(recordMap["is_closed"]) || recordMap["is_closed"]=="f"){ html += "关闭"; }else{ html += "开启中"; } html +=" 最后更新于 " + getTime(recordMap["updated_unix"],currentTime) +""; html +="

"; html +="
"; html +="
"; html +="
"; } document.getElementById("child_search_item").innerHTML=html; } function displayIssueResult(page,jsonResult,onlyReturnNum,keyword){ var data = jsonResult.Result; var total = jsonResult.Total; $('#issue_total').text(total); if(!onlyReturnNum){ setActivate("issue_item"); $('#keyword_desc').text(keyword); $('#obj_desc').text("任务"); $('#child_total').text(total); setIssueOrPrInnerHtml(data,"issues"); } } function setActivate(name){ $('#repo_item').removeClass("active"); $('#user_item').removeClass("active"); $('#issue_item').removeClass("active"); $('#dataset_item').removeClass("active"); $('#org_item').removeClass("active"); $('#pr_item').removeClass("active"); var tmp = "#" + name; $(tmp).addClass("active"); } function displayRepoResult(page,jsonResult,onlyReturnNum,keyword){ var data = jsonResult.Result; var total = jsonResult.Total; $('#repo_total').text(total); if(!onlyReturnNum){ setActivate("repo_item"); $('#keyword_desc').text(keyword); $('#obj_desc').text("项目"); $('#child_total').text(total); var sortHtml = ""; sortHtml +="最近更新"; sortHtml +="关注数"; sortHtml +="点赞数"; sortHtml +="Fork数"; document.getElementById("sort_type").innerHTML=sortHtml; var html = ""; var currentTime = new Date().getTime(); for(var i = 0; i < data.length;i++){ var recordMap = data[i]; html += "
"; if(!isEmpty(recordMap['avatar'])){ html += ""; } html += "
"; html += " "; html += "
"; html += "

" + recordMap["description"] + "

"; html += "
"; if(!isEmpty(recordMap["topics"]) && recordMap["topics"] !="null"){ for(var j = 0; j < recordMap["topics"].length;j++){ //function searchLabel(tableName,keyword,sortBy="",ascending=false) html +="
"+ recordMap["hightTopics"][j] + "
"; } } html +="
"; html +="

"; html +=" " +recordMap["num_watches"] + "  " + recordMap["num_stars"] + "  " + recordMap["num_forks"] +"  "; html +="    最后更新于 " + getTime(recordMap["updated_unix"],currentTime) +""; if(!isEmpty(recordMap["lang"])){ html +=" " + recordMap["lang"] + ""; } html +="

"; html +="
"; html +="
"; html +="
"; } document.getElementById("child_search_item").innerHTML=html; } } function getTime(UpdatedUnix,currentTime){ UpdatedUnix = UpdatedUnix; currentTime = currentTime / 1000; var timeEscSecond = currentTime - UpdatedUnix; if( timeEscSecond < 0){ timeEscSecond = 1; } console.log("currentTime=" + currentTime + " updateUnix=" + UpdatedUnix); var hours= Math.floor(timeEscSecond / 3600); //计算相差分钟数 var leave2 = Math.floor(timeEscSecond % (3600)); //计算小时数后剩余的秒数 var minutes= Math.floor(leave2 / 60);//计算相差分钟数 var leave3=Math.floor(leave2 % 60); //计算分钟数后剩余的秒数 var seconds= leave3; if(hours == 0 && minutes == 0){ return seconds + getRepoOrOrg(6,isZh); }else{ if(hours > 0){ if(hours >= 24){ return Math.ceil(hours/24) + getRepoOrOrg(7,isZh); }else{ return hours + getRepoOrOrg(4,isZh); } }else{ return minutes + getRepoOrOrg(5,isZh); } } } function getRepoOrOrg(key,isZhLang){ if(isZhLang){ return repoAndOrgZH[key]; }else{ return repoAndOrgEN[key]; } } var repoAndOrgZH={ "1":"项目", "2":"成员", "3":"团队", "4":"小时前", "5":"分钟前", "6":"秒前", "7":"天前" }; var repoAndOrgEN={ "1":"repository", "2":"Members ", "3":"Teams", "4":" hours ago", "5":" minutes ago", "6":" seconds ago", "7":" days ago" }; function page(current){ //function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true,sortBy="",OnlySearchLabel=false){ currentPage=current; doSearch(currentSearchTableName,currentSearchKeyword,current,pageSize,false,currentSearchSortBy,OnlySearchLabel); } function nextPage(){ currentPage = currentPage+1; console.log("currentPage=" + currentPage); if(currentPage >= endIndex){ startIndex=startIndex+1; endIndex = endIndex +1; } page(currentPage); } function prePage(){ console.log("currentPage=" + currentPage); if(currentPage > 1){ currentPage = currentPage-1; if(currentPage <= startIndex && startIndex > 1){ startIndex = startIndex -1; endIndex = endIndex - 1; } console.log("currentPage=" + (currentPage)); page(currentPage); } } function goPage(){ var goNum = $('#inputpage').val(); if (goNum<=0){ alert("请输入大于0的数值"); } else if(goNum<=totalPage){ page(goNum); } else{ alert("不能超出总页数!"); } } function setPage(currentPage){ console.log("totalPage=" + totalPage); var html =""; console.log("currentPage=" + currentPage); if(totalPage==0){ return; } html += "共 " + totalNum + " 条" if(currentPage > 1){ html += "首页"; html += ""; }else{ html += "首页"; html += ""; } for(var i=startIndex; i <= endIndex; i++){ var page_i = i; if(page_i > totalPage){ break; } if( page_i == currentPage){ html += "" + page_i + ""; }else{ html += "" + page_i + ""; } } if(currentPage >=totalPage){ html += ""; html += "末页"; }else{ html += ""; html += "末页"; } html +="
前往
"; console.log("html=" + html) document.getElementById("page_menu").innerHTML=html; $('#inputpage').on('keypress',function(event){ if(event.keyCode == 13){ goPage(); } }); } $('#keyword_input').on('keypress',function(event){ if(event.keyCode == 13){ var keyword = $('#keyword_input').val(); if(!isEmpty(keyword)){ search(); } } }); initDiv(false); document.onreadystatechange = function() { if (document.readyState === "complete") { var keyword = $('#keyword_input').val(); if(!isEmpty(keyword)){ search(); } } }