Files snapshot from ui-experiment

./js_templates/commits.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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
ada2ba Tucker McKnight
ada2ba Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
import {NavHelper} from './helpers/nav.ts'

export default async (
  eleventyConfig: any,
  data: any,
  nav: ReturnType<typeof NavHelper>
) => {
  const pagesJustForBranch = eleventyConfig.getFilter("pagesJustForBranch")
  const slugify = eleventyConfig.getFilter("slugify")
  const date = eleventyConfig.getFilter("date")

  return `
    <div class="row mt-3 mb-1">
      <div class="col">
        <p class="d-inline-block">Showing commits from <span class="font-monospace">${data.patchPage.branchName}</span></p>
        <a class="btn btn-outline-primary badge shadow-none ms-2" href="${nav.repoCurrentBranchRssFeed()}"><div class="d-flex"><img src="${nav.rootPath()}frontend/img/rss-icon.svg" style="width: 11px; margin-right: 5px;" />RSS</div></a>
      </div>
    </div>

    <nav>
      <ul class="pagination">
        ${pagesJustForBranch(data.paginatedPatches, data.patchPage.repoName, data.patchPage.branchName).map((pageObj) => {
          return `
            <li class="page-item">
              <a class="page-link ${pageObj.pageNumber === data.patchPage.pageNumber ? 'active' : ''}" href="${data.reposPath}/${slugify(data.patchPage.repoName)}/branches/${data.patchPage.branchName}/commits/page${pageObj.pageNumber}">${pageObj.pageNumber}</a>
            </li>
          `
        }).join('')}
      </ul>
    </nav>

    <div>
      ${data.patchPage.commits.map((commit) => {
        return `
          <div class="bezel-gray p-2 my-2" style="max-width: 40rem;">
            <a class="fs-5" href="${data.reposPath}/${slugify(data.patchPage.repoName)}/branches/${slugify(data.patchPage.branchName)}/commits/${commit.hash}">
              ${commit.message.split('\n').slice(0, 1)}
            </a>
            <br />
            <span>${date(commit.date)}</span>
            <br />
            <span>${commit.author}</span>
            <span class="font-monospace">${commit.hash}</span>
          </div>
        `
      }).join('')}
    </div>

    <nav>
      <ul class="pagination">
        ${pagesJustForBranch(data.paginatedPatches, data.patchPage.repoName, data.patchPage.branchName).map((pageObj) => {
          return `
            <li class="page-item">
              <a class="page-link ${pageObj.pageNumber === data.patchPage.pageNumber ? 'active' : ''}" href="${data.reposPath}/${slugify(data.patchPage.repoName)}/branches/${data.patchPage.branchName}/commits/page${pageObj.pageNumber}">${pageObj.pageNumber}</a>
            </li>
          `
        }).join('')}
      </ul>
    </nav>
  `
}