Browse Source

Merge branch 'computing' of https://git.openi.org.cn/OpenI/aiforge into computing

pull/1425/head
wangjr 3 years ago
parent
commit
b2018ff67c
9 changed files with 43 additions and 20 deletions
  1. +21
    -0
      models/repo.go
  2. +1
    -0
      modules/structs/repo.go
  3. +12
    -12
      public/home/home.js
  4. +1
    -1
      routers/org/teams.go
  5. +2
    -1
      routers/repo/repo.go
  6. +1
    -1
      services/repository/repository.go
  7. +1
    -1
      templates/admin/repo/list.tmpl
  8. +1
    -1
      templates/org/team/repositories.tmpl
  9. +3
    -3
      web_src/js/index.js

+ 21
- 0
models/repo.go View File

@@ -409,6 +409,7 @@ func (repo *Repository) innerAPIFormat(e Engine, mode AccessMode, isParent bool)
ID: repo.ID, ID: repo.ID,
Owner: repo.Owner.APIFormat(), Owner: repo.Owner.APIFormat(),
Name: repo.Name, Name: repo.Name,
Alias: repo.Alias,
FullName: repo.FullName(), FullName: repo.FullName(),
FullDisplayName: repo.FullDisplayName(), FullDisplayName: repo.FullDisplayName(),
Description: repo.Description, Description: repo.Description,
@@ -1956,6 +1957,26 @@ func getRepositoryByOwnerAndName(e Engine, ownerName, repoName string) (*Reposit
return &repo, nil return &repo, nil
} }


// GetRepositoryByOwnerAndAlias returns the repository by given ownername and reponame.
func GetRepositoryByOwnerAndAlias(ownerName, alias string) (*Repository, error) {
return getRepositoryByOwnerAndAlias(x, ownerName, alias)
}

func getRepositoryByOwnerAndAlias(e Engine, ownerName, alias string) (*Repository, error) {
var repo Repository
has, err := e.Table("repository").Select("repository.*").
Join("INNER", "`user`", "`user`.id = repository.owner_id").
Where("repository.lower_alias = ?", strings.ToLower(alias)).
And("`user`.lower_name = ?", strings.ToLower(ownerName)).
Get(&repo)
if err != nil {
return nil, err
} else if !has {
return nil, ErrRepoNotExist{0, 0, ownerName, alias}
}
return &repo, nil
}

// GetRepositoryByName returns the repository by given name under user if exists. // GetRepositoryByName returns the repository by given name under user if exists.
func GetRepositoryByName(ownerID int64, name string) (*Repository, error) { func GetRepositoryByName(ownerID int64, name string) (*Repository, error) {
repo := &Repository{ repo := &Repository{


+ 1
- 0
modules/structs/repo.go View File

@@ -49,6 +49,7 @@ type Repository struct {
ID int64 `json:"id"` ID int64 `json:"id"`
Owner *User `json:"owner"` Owner *User `json:"owner"`
Name string `json:"name"` Name string `json:"name"`
Alias string `json:"alias"`
FullName string `json:"full_name"` FullName string `json:"full_name"`
FullDisplayName string `json:"full_display_name"` FullDisplayName string `json:"full_display_name"`
Description string `json:"description"` Description string `json:"description"`


+ 12
- 12
public/home/home.js View File

@@ -64,18 +64,18 @@ socket.onmessage = function (e) {
var currentTime = new Date().getTime(); var currentTime = new Date().getTime();
for(var i = 0; i < messageQueue.length; i++){ for(var i = 0; i < messageQueue.length; i++){
var record = messageQueue[i]; var record = messageQueue[i];
var recordPrefix = getMsg(record); var recordPrefix = getMsg(record);
var actionName = getAction(record.OpType,isZh); var actionName = getAction(record.OpType,isZh);
if(record.OpType == "6" || record.OpType == "10" || record.OpType == "12" || record.OpType == "13"){ if(record.OpType == "6" || record.OpType == "10" || record.OpType == "12" || record.OpType == "13"){
html += recordPrefix + actionName; html += recordPrefix + actionName;
html += " <a href=\"" + getIssueLink(record) + "\" rel=\"nofollow\">" + getIssueText(record) + "</a>"
html += " <a href=\"" + getIssueLink(record) + "\" rel=\"nofollow\">" + getIssueText(record) + "</a>"
} }
else if(record.OpType == "7" || record.OpType == "11" || record.OpType == "14" || record.OpType == "15" || record.OpType == "22" else if(record.OpType == "7" || record.OpType == "11" || record.OpType == "14" || record.OpType == "15" || record.OpType == "22"
|| record.OpType == "23"){ || record.OpType == "23"){
html += recordPrefix + actionName; html += recordPrefix + actionName;
html += " <a href=\"" + getPRLink(record) + "\" rel=\"nofollow\">" + getPRText(record) + "</a>"
html += " <a href=\"" + getPRLink(record) + "\" rel=\"nofollow\">" + getPRText(record) + "</a>"
} }
else if(record.OpType == "1"){ else if(record.OpType == "1"){
html += recordPrefix + actionName; html += recordPrefix + actionName;
@@ -120,7 +120,7 @@ function getMsg(record){
html += "<div class=\"swiper-slide item\">"; html += "<div class=\"swiper-slide item\">";
html += " <img class=\"ui avatar image\" src=\"/user/avatar/" + record.ActUser.Name + "/-1\" alt=\"\">" html += " <img class=\"ui avatar image\" src=\"/user/avatar/" + record.ActUser.Name + "/-1\" alt=\"\">"
html += " <div class=\"middle aligned content nowrap\">" html += " <div class=\"middle aligned content nowrap\">"
html += " <a href=\"/" + record.ActUser.Name + "\" title=\"\">" + record.ActUser.Name + "</a>"
html += " <a href=\"/" + record.ActUser.Name + "\" title=\"\">" + record.ActUser.Name + "</a>"
return html; return html;
} }


@@ -133,7 +133,7 @@ function getRepotext(record){
} }
function getRepoLink(record){ function getRepoLink(record){
return record.Repo.OwnerName + "/" + record.Repo.Name; return record.Repo.OwnerName + "/" + record.Repo.Name;
} }


function getTime(UpdatedUnix,currentTime){ function getTime(UpdatedUnix,currentTime){
@@ -143,7 +143,7 @@ function getTime(UpdatedUnix,currentTime){
if( timeEscSecond < 0){ if( timeEscSecond < 0){
timeEscSecond = 1; timeEscSecond = 1;
} }
var hours= Math.floor(timeEscSecond / 3600); var hours= Math.floor(timeEscSecond / 3600);
//计算相差分钟数 //计算相差分钟数
var leave2 = Math.floor(timeEscSecond % (3600)); //计算小时数后剩余的秒数 var leave2 = Math.floor(timeEscSecond % (3600)); //计算小时数后剩余的秒数
@@ -172,11 +172,11 @@ function getPRText(record){
}else{ }else{
return record.Repo.OwnerName + "/" + record.Repo.Name + "#" + getIssueId(record); return record.Repo.OwnerName + "/" + record.Repo.Name + "#" + getIssueId(record);
} }
} }


function getIssueLink(record){ function getIssueLink(record){
return "/" + record.Repo.OwnerName + "/" + record.Repo.Name + "/issues/" + getIssueId(record); return "/" + record.Repo.OwnerName + "/" + record.Repo.Name + "/issues/" + getIssueId(record);
} }


@@ -202,7 +202,7 @@ function getIssueText(record){
}else{ }else{
return record.Repo.OwnerName + "/" + record.Repo.Name + "#" + getIssueId(record); return record.Repo.OwnerName + "/" + record.Repo.Name + "#" + getIssueId(record);
} }
} }


/* /*
@@ -354,7 +354,7 @@ function displayRepo(json){
html += " <i class=\"ri-star-line\"></i>" + record["NumStars"] + "<i class=\"ri-git-branch-line am-ml-10\"></i>" + record["NumForks"]; html += " <i class=\"ri-star-line\"></i>" + record["NumStars"] + "<i class=\"ri-git-branch-line am-ml-10\"></i>" + record["NumForks"];
html += " </span>"; html += " </span>";
html += " <img class=\"left floated mini ui image\" src=\"" + record["Avatar"] + "\">"; html += " <img class=\"left floated mini ui image\" src=\"" + record["Avatar"] + "\">";
html += " <a class=\"header nowrap\" href=\"/" + record["OwnerName"] + "/" + record["Name"] + "\">" + record["Name"] +"</a>";
html += " <a class=\"header nowrap\" href=\"/" + record["OwnerName"] + "/" + record["Name"] + "\">" + record["Alias"] +"</a>";
html += " <div class=\"description nowrap-2\">" + record["Description"] + " </div>"; html += " <div class=\"description nowrap-2\">" + record["Description"] + " </div>";
html += " <div class=\"ui tags nowrap am-mt-10\">" html += " <div class=\"ui tags nowrap am-mt-10\">"
if(record["Topics"] != null){ if(record["Topics"] != null){
@@ -408,4 +408,4 @@ function displayOrg(json){
} }
} }
orgDiv.innerHTML = html; orgDiv.innerHTML = html;
}
}

+ 1
- 1
routers/org/teams.go View File

@@ -150,7 +150,7 @@ func TeamsRepoAction(ctx *context.Context) {
case "add": case "add":
repoName := path.Base(ctx.Query("repo_name")) repoName := path.Base(ctx.Query("repo_name"))
var repo *models.Repository var repo *models.Repository
repo, err = models.GetRepositoryByName(ctx.Org.Organization.ID, repoName)
repo, err = models.GetRepositoryByOwnerAndAlias(ctx.Org.Organization.Name, repoName)
if err != nil { if err != nil {
if models.IsErrRepoNotExist(err) { if models.IsErrRepoNotExist(err) {
ctx.Flash.Error(ctx.Tr("org.teams.add_nonexistent_repo")) ctx.Flash.Error(ctx.Tr("org.teams.add_nonexistent_repo"))


+ 2
- 1
routers/repo/repo.go View File

@@ -13,6 +13,7 @@ import (
"path" "path"
"regexp" "regexp"
"strings" "strings"
"unicode/utf8"


"code.gitea.io/gitea/models" "code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/auth" "code.gitea.io/gitea/modules/auth"
@@ -566,7 +567,7 @@ func CheckName(ctx *context.Context) {
var r = make(map[string]string, 1) var r = make(map[string]string, 1)
q := ctx.Query("q") q := ctx.Query("q")
owner := ctx.Query("owner") owner := ctx.Query("owner")
if q == "" || owner == "" || len(q) > 100 || !validation.ValidAlphaDashDotChinese(q) {
if q == "" || owner == "" || utf8.RuneCountInString(q) > 100 || !validation.ValidAlphaDashDotChinese(q) {
r["name"] = "" r["name"] = ""
ctx.JSON(200, r) ctx.JSON(200, r)
return return


+ 1
- 1
services/repository/repository.go View File

@@ -122,7 +122,7 @@ func GetRecommendRepoFromPromote(filename string) ([]map[string]interface{}, err
} else { } else {
ownerName := strings.Trim(repoName[0:tmpIndex], " ") ownerName := strings.Trim(repoName[0:tmpIndex], " ")
repoName := strings.Trim(repoName[tmpIndex+1:], " ") repoName := strings.Trim(repoName[tmpIndex+1:], " ")
repo, err := models.GetRepositoryByOwnerAndName(ownerName, repoName)
repo, err := models.GetRepositoryByOwnerAndAlias(ownerName, repoName)
if err == nil { if err == nil {
repoMap := make(map[string]interface{}) repoMap := make(map[string]interface{})
repoMap["ID"] = fmt.Sprint(repo.ID) repoMap["ID"] = fmt.Sprint(repo.ID)


+ 1
- 1
templates/admin/repo/list.tmpl View File

@@ -36,7 +36,7 @@
<span class="text gold">{{svg "octicon-lock" 16}}</span> <span class="text gold">{{svg "octicon-lock" 16}}</span>
{{end}} {{end}}
</td> </td>
<td><a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Name}}</a></td>
<td><a href="{{AppSubUrl}}/{{.Owner.Name}}/{{.Name}}">{{.Alias}}</a></td>
<td><i class="fa fa{{if .IsPrivate}}-check{{end}}-square-o"></i></td> <td><i class="fa fa{{if .IsPrivate}}-check{{end}}-square-o"></i></td>
<td>{{.NumWatches}}</td> <td>{{.NumWatches}}</td>
<td>{{.NumStars}}</td> <td>{{.NumStars}}</td>


+ 1
- 1
templates/org/team/repositories.tmpl View File

@@ -50,7 +50,7 @@
{{else}} {{else}}
{{svg "octicon-repo" 16}} {{svg "octicon-repo" 16}}
{{end}} {{end}}
<strong>{{$.Org.Name}}/{{.Name}}</strong>
<strong>{{$.Org.Name}}/{{.Alias}}</strong>
</a> </a>
</div> </div>
{{else}} {{else}}


+ 3
- 3
web_src/js/index.js View File

@@ -2411,8 +2411,8 @@ function searchRepositories() {
const items = []; const items = [];
$.each(response.data, (_i, item) => { $.each(response.data, (_i, item) => {
items.push({ items.push({
title: item.full_name.split('/')[1],
description: item.full_name
title: item.full_display_name.split('/')[1],
description: item.full_display_name
}); });
}); });


@@ -2677,7 +2677,7 @@ function initTemplateSearch() {
// Parse the response from the api to work with our dropdown // Parse the response from the api to work with our dropdown
$.each(response.data, (_r, repo) => { $.each(response.data, (_r, repo) => {
filteredResponse.results.push({ filteredResponse.results.push({
name: htmlEncode(repo.full_name),
name: htmlEncode(repo.full_display_name),
value: repo.id value: repo.id
}); });
}); });


Loading…
Cancel
Save