|
- 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.keyword",
- "13":"num_stars.keyword",
- "14":"num_forks.keyword",
- "21":"updated_unix.keyword",
- "31":"created_unix.keyword",
- "32":"name",
- "41":"created_unix.keyword",
- "42":"name",
- "51":"download_times.keyword",
- "61":"updated_unix.keyword"
- };
-
- var currentPage = 1;
- var pageSize = 15;
- var currentSearchTableName ="";
- var currentSearchKeyword="";
- var currentSearchSortBy="";
- var OnlySearchLabel=false;
- var startIndex =1;
- var endIndex = 5;
-
- function initPageInfo(){
- currentPage = 1;
- startIndex =1;
- endIndex = 5;
- }
-
- function searchItem(type,sortType){
- console.log("enter here 2.");
- currentSearchKeyword = document.getElementById("keyword_input").value;
- if(!isEmpty(currentSearchKeyword)){
- initPageInfo();
- currentSearchTableName = itemType[type];
- currentSearchSortBy = sortBy[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];
- 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 searchLabel(){
-
- }
-
- 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
- },
- async:true,
- success:function(json){
- 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){
- setPage(jsonResult,pageSize,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);
- }
- }
-
- 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 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 +="<a class=\"item\" href=\"javascript:searchItem(5,51);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">下载次数</a>";
- 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 += "<div class=\"item\">";
- html += " <div class=\"content\">";
- html += " <div class=\"ui right metas\">" ;
- if(!isEmpty(recordMap["category"])){
- html += " <span class=\"text grey\"><svg class=\"svg octicon-tasklist\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use xlink:href=\"#octicon-tasklist\" /></svg> " +recordMap["category"]+ "</span>";
- }
- if(!isEmpty(recordMap["task"])){
- html += " <span class=\"text grey\"><svg class=\"svg octicon-tag\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use xlink:href=\"#octicon-tag\" /></svg>" +recordMap["task"]+ "</span>";
- }
- html += " <span class=\"text grey\"><i class=\"ri-fire-line\"></i> " +recordMap["download_times"] + "</span> ";
- html +=" </div>";
- html += " <div class=\"ui header\">";
- html += " <a class=\"name\" href=\"/" +recordMap["repoUrl"] +"/datasets?type=0\">" + recordMap["repoUrl"] + "</a>";
- html +=" <span class=\"middle\"><svg class=\"svg octicon-repo-clone\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use xlink:href=\"#octicon-repo-clone\"></use></svg></span>";
- html +=" </div>";
- html += " <div class=\"description\">";
- html += " <p class=\"has-emoji\"> " + recordMap["title"] + "</p>";
- if(!isEmpty(recordMap["file_name"])){
- html += " <p class=\"has-emoji\"> " + recordMap["file_name"] + "</p>";
- }
- html +=" <p class=\"time\">";
- html +=" <span class=\"am-ml-10\"></span> 最后更新于 <span class=\"time-since poping up\" title=\"\" data-content=\"\" data-variation=\"inverted tiny\">" + getTime(recordMap["created_unix"],currentTime) +"</span>";
- html +=" </p>";
- html +=" </div>";
- html +=" </div>";
- html +="</div>";
- }
- 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 +="<a class=\"item\" href=\"javascript:searchItem(4,41);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">加入时间</a>";
- sortHtml +="<a class=\"item\" href=\"javascript:searchItem(4,42);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_2\">名称自然序</a>";
- 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 += "<div class=\"item members\">";
- html += "<img class=\"ui avatar image\" src=\"" + recordMap["avatar"] + "\"></img>";
- html += " <div class=\"content\">";
- html += " <div class=\"ui header\">";
- html += " <a class=\"name\" href=\"/" + recordMap["real_name"] +"\">" + recordMap["name"] + "</a>";
- html +=" </div>";
- html += " <div class=\"description\">";
- html += " <p class=\"has-emoji\"> " + recordMap["description"] + "</p>";
- html +=" <p class=\"has-emoji\">";
- html +=" <i class=\"ri-map-pin-2-line\"></i> " + recordMap["location"];
- html +=" <span class=\"am-ml-10\"></span>";
- if(!isEmpty(recordMap["website"]) && recordMap["website"] != "null"){
- html +=" <i class=\"ri-links-line\"></i>" + "<a href=\""+ recordMap["website"] + "\" target=\"_blank\">" + recordMap["website"] + "</a>";
- }
- html +=" <i class=\"ri-time-line am-ml-10\"></i> 加入于 ";
- var userAddDate = new Date(recordMap["created_unix"]*1000);
- html += monthDisplay[userAddDate.getMonth()] + " " + userAddDate.getDay() + " " + userAddDate.getFullYear();
- html +=" </p>";
- html +=" </div>";
- html +=" </div>";
- html +="</div>";
- }
- 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 +="<a class=\"item\" href=\"javascript:searchItem(3,31);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">加入时间</a>";
- sortHtml +="<a class=\"item\" href=\"javascript:searchItem(3,32);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_2\">名称自然序</a>";
- 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 += "<div class=\"item members\">";
- html += "<img class=\"ui avatar image\" src=\"" + recordMap["avatar"] + "\"></img>";
- html += " <div class=\"content\">";
- html += " <div class=\"ui header\">";
- html += " <a class=\"name\" href=\"/" + recordMap["real_name"] +"\">" + recordMap["name"] + "</a>";
- html +=" </div>";
- html += " <div class=\"description\">";
- html += " <p class=\"has-emoji\"> " + recordMap["description"] + "</p>";
- html +=" <p class=\"has-emoji\">";
- html +=" <i class=\"ri-mail-line\"></i>" + recordMap["email"];
- html +=" <i class=\"ri-time-line am-ml-10\"></i> 加入于 ";
- var userAddDate = new Date(recordMap["created_unix"]*1000);
- html += monthDisplay[userAddDate.getMonth()] + " " + userAddDate.getDay() + " " + userAddDate.getFullYear();
- html +=" </p>";
- html +=" </div>";
- html +=" </div>";
- html +="</div>";
- }
- document.getElementById("child_search_item").innerHTML=html;
- }
- }
-
- function setIssueOrPrInnerHtml(data){
- var sortHtml = "";
- sortHtml +="<a class=\"item\" href=\"javascript:searchItem(2,21);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">最近更新</a>";
- 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 += "<div class=\"item\">";
- html += " <div class=\"content\">";
- html += " <div class=\"ui header\">";
- html += " <a class=\"name\" href=\"/" + recordMap["repoUrl"] +"\">" + recordMap["name"] + "</a>";
- html +=" </div>";
- html += " <div class=\"description\">";
- html += " <p class=\"has-emoji\"> " + recordMap["content"] + "</p>";
- html +=" <p class=\"time\">";
- html +=" <i class=\"ri-code-box-line\"></i>";
- html +=" <a class=\"am-text grey\" href=\"/" + recordMap["repoUrl"] +"/" + recordMap["id"] + "\"> " + recordMap["repoUrl"] +"#" + recordMap["id"] + "</a>";
- html +=" <i class=\"ri-information-line am-ml-10\"></i> ";
- if(isEmpty(recordMap["is_closed"]) || recordMap["is_closed"]=="f"){
- html += "关闭";
- }else{
- html += "开启中";
- }
- html +=" <span class=\"am-ml-10\"></span> 最后更新于 <span class=\"time-since poping up\" title=\"\" data-content=\"\" data-variation=\"inverted tiny\">" + getTime(recordMap["updated_unix"],currentTime) +"</span>";
-
- html +=" </p>";
- html +=" </div>";
- html +=" </div>";
- html +="</div>";
- }
- 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);
- }
- }
-
- 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 +="<a class=\"item\" href=\"javascript:searchItem(1,11);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">最近更新</a>";
- sortHtml +="<a class=\"item\" href=\"javascript:searchItem(1,12);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">关注数</a>";
- sortHtml +="<a class=\"item\" href=\"javascript:searchItem(1,13);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">点赞数</a>";
- sortHtml +="<a class=\"item\" href=\"javascript:searchItem(1,14);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">Fork数</a>";
-
- 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 += "<div class=\"item\">";
- if(!isEmpty(recordMap['avatar'])){
- html += "<img class=\"ui avatar image\" src=\"" + recordMap['avatar'] + "\">";
- }
- html += " <div class=\"content\">";
- html += " <div class=\"ui header\">";
- html += " <a class=\"name\" href=\"/" + recordMap["owner_name"] + "/" + recordMap["real_name"] +"\"> <span class=\"highlight\">" + recordMap["owner_name"] +"</span> <span>/</span> <strong>" + recordMap["name"] + "</strong></a>";
- html +=" <span class=\"middle\"><svg class=\"svg octicon-repo-clone\" width=\"16\" height=\"16\" aria-hidden=\"true\"><use xlink:href=\"#octicon-repo-clone\"></use></svg></span>";
- html +=" </div>";
- html += " <div class=\"description\">";
- html += " <p class=\"has-emoji\"> " + recordMap["description"] + "</p>";
- html += " <div class=\"ui tags\">";
- if(!isEmpty(recordMap["topics"]) && recordMap["topics"] !="null"){
- for(var j = 0; j < recordMap["topics"].length;j++){
- //function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true,sortBy){
- html +=" <a href=\"javascript:doSearch('repository','" + recordMap["topics"][j] + "',1,15,false,'updated_unix.keyword',true);\"><div class=\"ui small label topic\">"+ recordMap["topics"][j] + "</div></a>";
- }
- }
- html +=" </div>";
- html +=" <p class=\"time\">";
- html +=" <i class=\"ri-star-line\"></i>" + recordMap["num_stars"] + "<i class=\"ri-git-branch-line am-ml-10\"></i>" + recordMap["num_forks"];
- html +=" 最后更新于 <span class=\"time-since poping up\" title=\"\" data-content=\"\" data-variation=\"inverted tiny\">" + getTime(recordMap["updated_unix"],currentTime) +"</span>";
- if(!isEmpty(recordMap["lang"])){
- html +=" <span class=\"text grey am-ml-10\"><i class=\"color-icon\" style=\"background-color: #3572A5\"></i>" + recordMap["lang"] + "</span>";
- }
- html +=" </p>";
- html +=" </div>";
- html +=" </div>";
- html +="</div>";
- }
-
- 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);
- page(currentPage);
- }
-
- function prePage(){
- console.log("currentPage=" + currentPage);
- if(currentPage > 1){
- currentPage = currentPage-1;
- console.log("currentPage=" + (currentPage));
- page(currentPage);
- }
- }
-
- function goPage(){
- var goNum = $('#goNum').val();
-
- var pageTotal = $("#totalNum").text();
- var pageNum = parseInt(pageTotal/pageSize);
- if(pageTotal%pageSize!=0){
- pageNum += 1;
- }else {
- pageNum = pageNum;
- }
- if (goNum<=0){
- alert("请输入大于0的数值");
- }
- else if(goNum<=pageNum){
- page(goNum - 1,pageSize);
- }
- else{
- alert("不能超出总页码!");
- }
- }
-
-
-
- function setPage(pageData,pageSize,currentPage){
- if (isEmpty(pageData)){
- return;
- }
- console.log("currentPage=" + currentPage);
- $('#page_total').text("共 " + pageData.Total + " 条");
- if(currentPage > 1){
- $('#startPage').removeClass("disabled");
- $('#lastPage').removeClass("disabled");
- }else{
- $('#startPage').addClass("disabled");
- $('#lastPage').addClass("disabled");
- }
- var totalPage=Math.ceil(pageData.Total/pageSize)
- console.log("totalPage=" + totalPage);
- var html ="";
- for(var i=0;i<5&&(i+currentPage)<totalPage;i++){
- var page_i = (currentPage + i);
- if( i== 0){
- html += "<a id=\"page_" + page_i+ "\" class=\"active item\" href=\"page(" + page_i +")\">" + page_i + "</a>";
- }else{
- html += "<a id=\"page_" + page_i+ "\" class=\"item\" href=\"page(" + page_i +")\">" + page_i + "</a>";
- }
- }
- if(currentPage >=totalPage){
- $('#nextPage').addClass("disabled");
- $('#endPage').addClass("disabled");
- }else{
- $('#nextPage').removeClass("disabled");
- $('#endPage').removeClass("disabled");
- $('#endPage').attr("href","page(" + totalPage + ")");
- }
-
- }
|