Browse Source

提交任务搜索的代码。

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.3.2^2
zouap 4 years ago
parent
commit
a9d7253f9c
3 changed files with 85 additions and 11 deletions
  1. +77
    -4
      public/home/search.js
  2. +2
    -1
      routers/search.go
  3. +6
    -6
      templates/explore/search_new.tmpl

+ 77
- 4
public/home/search.js View File

@@ -23,7 +23,39 @@ function isEmpty(str){
return false;
}

var itemType={
"1":"repository",
"2":"issue",
"3":"user",
"4":"org",
"5":"dataset",
"6":"pr"
};

var sortBy={
"11":"updated_unix",
"12":"num_watches",
"13":"num_stars",
"14":"num_forks",
"21":"updated_unix",
"31":"created_unix",
"32":"name",
"41":"created_unix",
"42":"name",
"51":"download_times",
"61":"updated_unix"
};


function searchItem(type,sortType){
console.log("enter here.");
var keyword = document.getElementById("keyword_input").value;
var page =1;
var pageSize=15;
if(!isEmpty(keyword)){
doSearch(itemType[type],keyword,page,pageSize,false,sortBy[sortType]);
}
}

function search(){
console.log("enter here.");
@@ -31,7 +63,7 @@ function search(){
var page =1;
var pageSize=15;
if(!isEmpty(keyword)){
doSearch("repository",keyword,page,pageSize,false);
doSearch("repository",keyword,page,pageSize,false,sortBy[11]);
//doSearch("issue",keyword,page,pageSize,true);
//doSearch("user",keyword,page,pageSize,true);
//doSearch("org",keyword,page,pageSize,true);
@@ -40,7 +72,7 @@ function search(){
}
}

function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true){
function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true,sortBy){
$.ajax({
type:"GET",
url:"/all/dosearch/",
@@ -54,7 +86,8 @@ function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true){
'Key': keyword,
'Page': page,
'PageSize': pageSize,
'OnlyReturnNum':onlyReturnNum
'OnlyReturnNum':onlyReturnNum,
'SortBy':sortBy
},
async:true,
success:function(json){
@@ -62,7 +95,7 @@ function doSearch(tableName,keyword,page,pageSize=15,onlyReturnNum=true){
displayResult(tableName,page,json,onlyReturnNum,keyword);
},
error:function(response) {
console.log(response);
console.log(response);
}
});
}
@@ -135,6 +168,37 @@ function displayIssueResult(page,jsonResult,onlyReturnNum,keyword){
$('#keyword_desc').text(keyword);
$('#obj_desc').text("任务");
$('#child_total').text(total);

var sortHtml = "";
sortHtml +="<a class=\"item\" href=\"javascript:searchItem(2,21);\" tabindex=\"-1\" role=\"menuitem\" id=\"menuitem_1\">最近更新</a>"
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=\"/" + record["repoUrl"] +"\">" + record["name"] + "</a>";
html +=" </div>";
html += " <div class=\"description\">";
html += " <p class=\"has-emoji\"> " + recordMap["description"] + "</p>";
html +=" <p class=\"time\">";
html +=" <i class=\"ri-code-box-line\"></i>";
html +=" <a class=\"am-text grey\" href=\"/" + record["repoUrl"] +"/" + record["id"] + "\"> " + record["repoUrl"] +"#" + record["id"] + "</a>";
html +=" <i class=\"ri-information-line am-ml-10\"></i> ";
if(isEmpty(record["is_closed"]) || record["is_closed"]=="false"){
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>";
}

}
}

@@ -147,6 +211,15 @@ function displayRepoResult(page,jsonResult,onlyReturnNum,keyword){
$('#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++){


+ 2
- 1
routers/search.go View File

@@ -267,7 +267,7 @@ func searchUserOrOrg(ctx *context.Context, TableName string, Key string, Page in
*/
SortBy := ctx.Query("SortBy")
if SortBy == "" {
SortBy = "updated_unix.keyword"
SortBy = "created_unix.keyword"
}
ascending := ctx.QueryBool("Ascending")
boolQ := elastic.NewBoolQuery()
@@ -561,6 +561,7 @@ func makeIssueResult(sRes *elastic.SearchResult, Key string, OnlyReturnNum bool)
record["comment"] = ""
}
record["num_comments"] = recordSource["num_comments"]
record["is_closed"] = recordSource["is_closed"]
record["updated_unix"] = recordSource["updated_unix"]
result = append(result, record)
} else {


+ 6
- 6
templates/explore/search_new.tmpl View File

@@ -20,27 +20,27 @@
<div class="ui container seachnav">
<div class="ui secondary pointing menu">
<a class="active item">
<a class="active item" href="javascript:searchItem(1,11);">
项目
<span class="ui circular mini label" id="repo_total"></span>
</a>
<a class="item">
<a class="item" href="javascript:searchItem(2,21);">
数据集
<span class="ui circular mini label" id="dataset_total"></span>
</a>
<a class="item">
<a class="item" href="javascript:searchItem(3,31);">
任务
<span class="ui circular mini label" id="issue_total"></span>
</a>
<a class="item">
<a class="item" href="javascript:searchItem(4,41);">
合并请求
<span class="ui circular mini label" id="pr_total"></span>
</a>
<a class="item">
<a class="item" href="javascript:searchItem(5,51);">
用户
<span class="ui circular mini label" id="user_total"></span>
</a>
<a class="item">
<a class="item" href="javascript:searchItem(6,61);">
组织 <span class="ui circular mini label" id="org_total"></span>
</a>
</div>


Loading…
Cancel
Save