package webui import ( "encoding/base64" "github.com/pogo-vcs/pogo/db" "github.com/pogo-vcs/pogo/server/webui/components" "github.com/pogo-vcs/pogo/server/webui/icons" "path" "strconv" ) templ renderFileNode(node *FileNode) { if node.IsDir {
  • @icons.Folder() { node.Name }
  • } else {
  • {{ color := "text-ctp-text" }} if node.File.Conflict { {{ color = "text-ctp-red" }} } else if node.File.Executable { {{ color = "text-ctp-blue" }} } if node.File.Conflict { @icons.ExclamationTriangle() } else if node.File.Executable { @icons.LightningBolt() } else { @icons.File() } { node.Name }
  • } } templ Repository() { if repoId, ok := GetParamI32(ctx, "id"); ok { if repo, err := db.Q.GetRepository(ctx, repoId); err == nil { {{ hasAccess := repo.Public }} if !hasAccess && IsLoggedIn(ctx) { if user := GetUser(ctx); user != nil { if accessCheck, err := db.Q.CheckUserRepositoryAccess(ctx, repoId, user.ID); err == nil { {{ hasAccess = accessCheck }} } } } if hasAccess { @layout(repo.Name) { @components.Header(GetUser(ctx)) { {{ user := GetUser(ctx) }} CI Runs if user != nil { if userHasAccess, err := db.Q.CheckUserRepositoryAccess(ctx, repoId, user.ID); err == nil && userHasAccess { Settings } } @components.CodeButton(repo.ID, repo.Name) } @components.Main() { if readme, err := db.Q.GetRepositoryBookmarkFileByName(ctx, repoId, "main", "readme"); err == nil {

    Readme

    @RenderFileComponent(readme.Name, base64.URLEncoding.EncodeToString(readme.ContentHash))
    } else {

    { repo.Name }

    } if license, err := db.Q.GetRepositoryBookmarkFileByName(ctx, repoId, "main", "license"); err == nil {

    License

    @RenderFileComponent(license.Name, base64.URLEncoding.EncodeToString(license.ContentHash))
    }
    if files, err := db.Q.GetRepositoryFiles(ctx, repoId, "main"); err == nil { if len(files) > 0 {

    Files

    {{ tree := BuildFileTree(files) }} } else {

    No files or no main bookmark found in this repository.

    } } else {

    Failed to load repository files

    { err.Error() }
    }
    } } } else { @layout("Unauthorized") { @components.Header(GetUser(ctx)) @components.Main() {

    Access Denied

    You don't have permission to view this repository.

    } } } } } }