1
1
// Copyright 2014 The Gogs Authors. All rights reserved.
2
+ // Copyright 2019 The Gitea Authors. All rights reserved.
2
3
// Use of this source code is governed by a MIT-style
3
4
// license that can be found in the LICENSE file.
4
5
@@ -387,6 +388,37 @@ func showOrgProfile(ctx *context.Context) {
387
388
org := ctx .Org .Organization
388
389
ctx .Data ["Title" ] = org .DisplayName ()
389
390
391
+ var orderBy models.SearchOrderBy
392
+ ctx .Data ["SortType" ] = ctx .Query ("sort" )
393
+ switch ctx .Query ("sort" ) {
394
+ case "newest" :
395
+ orderBy = models .SearchOrderByNewest
396
+ case "oldest" :
397
+ orderBy = models .SearchOrderByOldest
398
+ case "recentupdate" :
399
+ orderBy = models .SearchOrderByRecentUpdated
400
+ case "leastupdate" :
401
+ orderBy = models .SearchOrderByLeastUpdated
402
+ case "reversealphabetically" :
403
+ orderBy = models .SearchOrderByAlphabeticallyReverse
404
+ case "alphabetically" :
405
+ orderBy = models .SearchOrderByAlphabetically
406
+ case "moststars" :
407
+ orderBy = models .SearchOrderByStarsReverse
408
+ case "feweststars" :
409
+ orderBy = models .SearchOrderByStars
410
+ case "mostforks" :
411
+ orderBy = models .SearchOrderByForksReverse
412
+ case "fewestforks" :
413
+ orderBy = models .SearchOrderByForks
414
+ default :
415
+ ctx .Data ["SortType" ] = "recentupdate"
416
+ orderBy = models .SearchOrderByRecentUpdated
417
+ }
418
+
419
+ keyword := strings .Trim (ctx .Query ("q" ), " " )
420
+ ctx .Data ["Keyword" ] = keyword
421
+
390
422
page := ctx .QueryInt ("page" )
391
423
if page <= 0 {
392
424
page = 1
@@ -403,6 +435,9 @@ func showOrgProfile(ctx *context.Context) {
403
435
ctx .ServerError ("AccessibleReposEnv" , err )
404
436
return
405
437
}
438
+ if len (keyword ) != 0 {
439
+ env .AddKeyword (keyword )
440
+ }
406
441
repos , err = env .Repos (page , setting .UI .User .RepoPagingNum )
407
442
if err != nil {
408
443
ctx .ServerError ("env.Repos" , err )
@@ -413,25 +448,41 @@ func showOrgProfile(ctx *context.Context) {
413
448
ctx .ServerError ("env.CountRepos" , err )
414
449
return
415
450
}
416
- ctx .Data ["Repos" ] = repos
417
451
} else {
418
452
showPrivate := ctx .IsSigned && ctx .User .IsAdmin
419
- repos , err = models .GetUserRepositories (org .ID , showPrivate , page , setting .UI .User .RepoPagingNum , "" )
420
- if err != nil {
421
- ctx .ServerError ("GetRepositories" , err )
422
- return
453
+ if len (keyword ) == 0 {
454
+ repos , err = models .GetUserRepositories (org .ID , showPrivate , page , setting .UI .User .RepoPagingNum , orderBy .String ())
455
+ if err != nil {
456
+ ctx .ServerError ("GetRepositories" , err )
457
+ return
458
+ }
459
+ count = models .CountUserRepositories (org .ID , showPrivate )
460
+ } else {
461
+ repos , count , err = models .SearchRepositoryByName (& models.SearchRepoOptions {
462
+ Keyword : keyword ,
463
+ OwnerID : org .ID ,
464
+ OrderBy : orderBy ,
465
+ Private : showPrivate ,
466
+ Page : page ,
467
+ IsProfile : true ,
468
+ PageSize : setting .UI .User .RepoPagingNum ,
469
+ })
470
+ if err != nil {
471
+ ctx .ServerError ("SearchRepositoryByName" , err )
472
+ return
473
+ }
423
474
}
424
- ctx .Data ["Repos" ] = repos
425
- count = models .CountUserRepositories (org .ID , showPrivate )
426
475
}
427
- ctx .Data ["Page" ] = paginater .New (int (count ), setting .UI .User .RepoPagingNum , page , 5 )
428
476
429
477
if err := org .GetMembers (); err != nil {
430
478
ctx .ServerError ("GetMembers" , err )
431
479
return
432
480
}
433
- ctx .Data ["Members" ] = org .Members
434
481
482
+ ctx .Data ["Repos" ] = repos
483
+ ctx .Data ["Total" ] = count
484
+ ctx .Data ["Page" ] = paginater .New (int (count ), setting .UI .User .RepoPagingNum , page , 5 )
485
+ ctx .Data ["Members" ] = org .Members
435
486
ctx .Data ["Teams" ] = org .Teams
436
487
437
488
ctx .HTML (200 , tplOrgHome )
0 commit comments