Files snapshot from file-caching

./js_templates/branches.ts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
d64ea6 Tucker McKnight
d44a18 Tucker McKnight
cb7f69 Tucker McKnight
d44a18 Tucker McKnight
d44a18 Tucker McKnight
cb7f69 Tucker McKnight
d44a18 Tucker McKnight
d44a18 Tucker McKnight
d44a18 Tucker McKnight
d44a18 Tucker McKnight
b30bd9 Tucker McKnight
d44a18 Tucker McKnight
b30bd9 Tucker McKnight
b30bd9 Tucker McKnight
920e38 Tucker McKnight
920e38 Tucker McKnight
080e0c Tucker McKnight
b30bd9 Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
b30bd9 Tucker McKnight
b30bd9 Tucker McKnight
b30bd9 Tucker McKnight
080e0c Tucker McKnight
b30bd9 Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
d64ea6 Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
080e0c Tucker McKnight
920e38 Tucker McKnight
920e38 Tucker McKnight
cb7f69 Tucker McKnight
920e38 Tucker McKnight
920e38 Tucker McKnight
920e38 Tucker McKnight
920e38 Tucker McKnight
651585 Tucker McKnight
cb7f69 Tucker McKnight
cb7f69 Tucker McKnight
d44a18 Tucker McKnight
import m from 'mithril'
import {NavHelper} from './helpers/nav.ts'
import htmlPage from './common/htmlPage.ts'

export default async (
  reposConfig: any,
  eleventyConfig: any,
  data: any,
) => {
  const slugify = eleventyConfig.getFilter("slugify")
  const nav = NavHelper(reposConfig, slugify, data.flatRel.repoName, data.flatRel.relName)

  const branchesWithWorkInProgress = data.flatRels.filter(rel => rel.type === "branch" && rel.ahead > 0)
  const branchesFullyMerged = data.flatRels.filter(rel => rel.type === "branch" && rel.ahead === 0)

  const branchCards = (branches) => {
    return m('ul', branches.map((branch) => {
      return branch.repoName === data.flatRel.repoName ?
        m('li', [
          m('a', {
            href: `${data.reposPath}/${slugify(branch.repoName)}/branches/${slugify(branch.relName)}/branches`
          }, branch.relName),
          branch.relName === data.flatRel.relName
            ? m('div', {class: "badge rounded-pill bg-secondary mx-1"}, 'current') : null,
          branch.relName === data.reposConfig.repos[branch.repoName].defaultBranch
            ? m('div', {class: "badge rounded-pill bg-info text-dark mx-1"}, 'default') : null,
          m('ul', [
            m('li', [
              `${branch.ahead} commits ahead, ${branch.behind} commits behind `,
              m('span', {class: 'font-monospace'}, branch.compareTo)
            ]),
            branch.description ? m('li', branch.description) : null
          ]),
        ])
      : null
    }))
  }

  const pageContent = [
    m('h1', {class: 'fs-2'}, 'Branches with unmerged commits'),
    branchCards(branchesWithWorkInProgress),
    m('h1', {class: 'fs-2'}, 'Branches that are fully merged'),
    branchCards(branchesFullyMerged),
  ]

  return await htmlPage(reposConfig, eleventyConfig, data, pageContent)
}