Skip to content

Commit

Permalink
package/overview: fix bug with showing use flags
Browse files Browse the repository at this point in the history
Signed-off-by: Arthur Zamarin <[email protected]>
  • Loading branch information
arthurzam committed Aug 2, 2024
1 parent 1945a73 commit 46513ec
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 32 deletions.
42 changes: 15 additions & 27 deletions pkg/app/handler/packages/overview.templ
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,17 @@ templ maintainersList(maintainers []*models.Maintainer) {
}
}

templ useFlagsGroup(title string, useflags []*models.Useflag) {
<span class="kk-useflag-group">{ title }</span>
<ul class={ "kk-useflag-container", templ.KV("kk-useflag-container-many", len(useflags) >= 10), templ.KV("kk-useflag-container-few", len(useflags) < 10) }>
for _, use := range useflags {
<li class="kk-useflag">
<a title={ use.Description } data-toggle="tooltip" href={ templ.URL("/useflags/" + use.Name) }>{ use.Name }</a>
</li>
}
</ul>
}

templ overview(pkg *models.Package) {
<div class="row">
<div class="col-md-9">
Expand Down Expand Up @@ -332,36 +343,13 @@ templ overview(pkg *models.Package) {
</div>
<div class="col-xs-12 col-md-9">
if len(localUseflags) > 0 {
<span class="kk-useflag-group">Local Use Flags</span>
<ul class={ "kk-useflag-container", templ.KV("kk-useflag-container-many", len(localUseflags) >= 10), templ.KV("kk-useflag-container-few", len(localUseflags) < 10) }>
for _, use := range localUseflags {
<li class="kk-useflag">
<a title={ use.Description } data-toggle="tooltip" href={ templ.URL("/useflags/" + use.Name) }>{ use.Name }</a>
</li>
}
</ul>
@useFlagsGroup("Local Use Flags", localUseflags)
}
if len(globalUseflags) > 0 {
<span class="kk-useflag-group">Global Use Flags</span>
<ul class={ "kk-useflag-container", templ.KV("kk-useflag-container-many", len(localUseflags) >= 10), templ.KV("kk-useflag-container-few", len(localUseflags) < 10) }>
for _, use := range globalUseflags {
<li class="kk-useflag">
<a title={ use.Description } data-toggle="tooltip" href={ templ.URL("/useflags/" + use.Name) }>{ use.Name }</a>
</li>
}
</ul>
@useFlagsGroup("Global Use Flags", globalUseflags)
}
if len(useExpands) > 0 {
for groupName, flags := range useExpands {
<span class="kk-useflag-group">{ groupName } (Use Expand)</span>
<ul class={ "kk-useflag-container", templ.KV("kk-useflag-container-many", len(localUseflags) >= 10), templ.KV("kk-useflag-container-few", len(localUseflags) < 10) }>
for _, use := range flags {
<li class="kk-useflag">
<a title={ use.Description } data-toggle="tooltip" href={ templ.URL("/useflags/" + use.Name) }>{ strings.TrimPrefix(use.Name, use.UseExpand + "_") }</a>
</li>
}
</ul>
}
for groupName, flags := range useExpands {
@useFlagsGroup(groupName + " (Use Expand)", flags)
}
</div>
</div>
Expand Down
11 changes: 6 additions & 5 deletions pkg/app/handler/packages/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,13 +139,13 @@ func getParameterValue(parameterName string, r *http.Request) string {

// getPackageUseflags retrieves all local USE flags, global USE
// flags and use expands for a given package
func getPackageUseflags(gpackage *models.Package) (localUseflags []models.Useflag, filteredGlobalUseflags []models.Useflag, useExpands map[string][]models.Useflag) {
func getPackageUseflags(gpackage *models.Package) (localUseflags []*models.Useflag, filteredGlobalUseflags []*models.Useflag, useExpands map[string][]*models.Useflag) {
rawUseFlags := gpackage.AllUseflags()
if len(rawUseFlags) == 0 {
return
}

var tmp_useflags []models.Useflag
var tmp_useflags []*models.Useflag
err := database.DBCon.Model(&tmp_useflags).
WhereGroup(func(q *pg.Query) (*pg.Query, error) {
return q.Where("scope = ?", "local").Where("package = ?", gpackage.Atom), nil
Expand All @@ -160,8 +160,8 @@ func getPackageUseflags(gpackage *models.Package) (localUseflags []models.Usefla
return
}

var allGlobalUseflags []models.Useflag
useExpands = make(map[string][]models.Useflag)
var allGlobalUseflags []*models.Useflag
useExpands = make(map[string][]*models.Useflag)
for _, useflag := range tmp_useflags {
if useflag.Scope == "global" {
allGlobalUseflags = append(allGlobalUseflags, useflag)
Expand All @@ -170,6 +170,7 @@ func getPackageUseflags(gpackage *models.Package) (localUseflags []models.Usefla
localUseflags = append(localUseflags, useflag)
}
} else {
useflag.Name = strings.TrimPrefix(useflag.Name, useflag.UseExpand+"_")
useExpands[useflag.UseExpand] = append(useExpands[useflag.UseExpand], useflag)
}
}
Expand Down Expand Up @@ -283,7 +284,7 @@ func sortVersionsDesc(versions []*models.Version) {

// containsUseflag returns true if the given list of useflags contains the
// given userflag. Otherwise false will be returned.
func containsUseflag(useflag models.Useflag, useflags []models.Useflag) bool {
func containsUseflag(useflag *models.Useflag, useflags []*models.Useflag) bool {
for _, flag := range useflags {
if useflag.Name == flag.Name {
return true
Expand Down

0 comments on commit 46513ec

Please sign in to comment.