feat: use active users instead of total users in Template views (#3900)

This commit is contained in:
Ammar Bandukwala
2022-09-09 19:30:31 +00:00
committed by GitHub
parent 346583f13e
commit f6aa025a01
20 changed files with 251 additions and 142 deletions
+8 -8
View File
@@ -72,7 +72,7 @@ func create() *cobra.Command {
}
slices.SortFunc(templates, func(a, b codersdk.Template) bool {
return a.WorkspaceOwnerCount > b.WorkspaceOwnerCount
return a.ActiveUserCount > b.ActiveUserCount
})
templateNames := make([]string, 0, len(templates))
@@ -81,13 +81,13 @@ func create() *cobra.Command {
for _, template := range templates {
templateName := template.Name
if template.WorkspaceOwnerCount > 0 {
developerText := "developer"
if template.WorkspaceOwnerCount != 1 {
developerText = "developers"
}
templateName += cliui.Styles.Placeholder.Render(fmt.Sprintf(" (used by %d %s)", template.WorkspaceOwnerCount, developerText))
if template.ActiveUserCount > 0 {
templateName += cliui.Styles.Placeholder.Render(
fmt.Sprintf(
" (used by %s)",
formatActiveDevelopers(template.ActiveUserCount),
),
)
}
templateNames = append(templateNames, templateName)
+1 -7
View File
@@ -1,7 +1,6 @@
package cli
import (
"fmt"
"time"
"github.com/google/uuid"
@@ -64,11 +63,6 @@ type templateTableRow struct {
func displayTemplates(filterColumns []string, templates ...codersdk.Template) (string, error) {
rows := make([]templateTableRow, len(templates))
for i, template := range templates {
suffix := ""
if template.WorkspaceOwnerCount != 1 {
suffix = "s"
}
rows[i] = templateTableRow{
Name: template.Name,
CreatedAt: template.CreatedAt.Format("January 2, 2006"),
@@ -76,7 +70,7 @@ func displayTemplates(filterColumns []string, templates ...codersdk.Template) (s
OrganizationID: template.OrganizationID,
Provisioner: template.Provisioner,
ActiveVersionID: template.ActiveVersionID,
UsedBy: cliui.Styles.Fuchsia.Render(fmt.Sprintf("%d developer%s", template.WorkspaceOwnerCount, suffix)),
UsedBy: cliui.Styles.Fuchsia.Render(formatActiveDevelopers(template.ActiveUserCount)),
MaxTTL: (time.Duration(template.MaxTTLMillis) * time.Millisecond),
MinAutostartInterval: (time.Duration(template.MinAutostartIntervalMillis) * time.Millisecond),
}
+17
View File
@@ -2,6 +2,7 @@ package cli
import (
"fmt"
"strconv"
"strings"
"time"
@@ -175,3 +176,19 @@ func parseTime(s string) (time.Time, error) {
}
return time.Time{}, errInvalidTimeFormat
}
func formatActiveDevelopers(n int) string {
developerText := "developer"
if n != 1 {
developerText = "developers"
}
var nStr string
if n < 0 {
nStr = "-"
} else {
nStr = strconv.Itoa(n)
}
return fmt.Sprintf("%s active %s", nStr, developerText)
}