Files snapshot from horizontal-language-chart-concept

./js_templates/commits.ts

0
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
8230d6 Tucker McKnight
913bff Tucker McKnight
8a5d0a Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
8a5d0a Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
99f634 Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
913bff Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
99f634 Tucker McKnight
8a5d0a Tucker McKnight
8a5d0a Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
be1c77 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
99f634 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
0dfdda Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
99f634 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
be1c77 Tucker McKnight
b30bd9 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
b1c071 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
c02110 Tucker McKnight
d05ed8 Tucker McKnight
c02110 Tucker McKnight
c02110 Tucker McKnight
c02110 Tucker McKnight
c02110 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
c02110 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
c02110 Tucker McKnight
c02110 Tucker McKnight
c02110 Tucker McKnight
d05ed8 Tucker McKnight
c02110 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
d05ed8 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
99f634 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
be1c77 Tucker McKnight
b30bd9 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
b1c071 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
8230d6 Tucker McKnight
651585 Tucker McKnight
8a5d0a Tucker McKnight
8a5d0a Tucker McKnight
913bff 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 pagesJustForRef = eleventyConfig.getFilter("pagesJustForRef")
  const slugify = eleventyConfig.getFilter("slugify")
  const date = eleventyConfig.getFilter("date")

  const nav = NavHelper({
    reposConfig,
    slugify,
    currentRepoName: data.patchPage.repoName,
    currentRefName: data.patchPage.refName,
    currentRefType: data.patchPage.type,
  })

  const pageContent = [
    m('div', {class: "row mt-3 mb-1"},
      m('div', {class: "col"},
        m('p', {class: "d-inline-block"}, [
          'Showing commits from ',
          m('span', {class: "font-monospace me-2"}, data.patchPage.refName),
          m('a', {
            class: "btn btn-outline-primary badge shadow-none",
            href: nav.rssFeed()
          }, [
            m('img', {
              src: `${nav.rootPath()}frontend/img/rss-icon.svg`,
              style: "width: 11px; margin-right: 5px;"
            }),
            'RSS',
          ])
        ])
      )
    ),
    m('nav', 
      m('ul', {class: "pagination"},
        pagesJustForRef(
          data.paginatedPatches,
          data.patchPage.repoName,
          data.patchPage.refName,
          data.patchPage.type,
        ).map((pageObj) => {
          return m('li', {class: "page-item"},
            m('a', {
              class: `page-link ${pageObj.pageNumber === data.patchPage.pageNumber ? 'active' : ''}`,
              href: `${nav.commits(pageObj.pageNumber)}`,
            }, pageObj.pageNumber)
          )
        })
      )
    ),
    m('div', {class: "container"}, data.patchPage.commits.map((commit) => {
      return [

        m('div', {class: "commit row py-2 my-2"}, [
          m('div', {class: "col-lg-auto col-12 commit-date"}, [
            m('span', {class: "date mb-1 me-2 font-monospace d-inline-block text-nowrap"}, date(commit.date).split(' ').slice(1).join(' ')),
            commit.isMerge ? m('span', {class: 'badge rounded-pill bg-warning me-1'}, 'merge') : null,
            // TODO: if this commit has any tags, list them here
            // m('span', {class: "bg-danger mb-1 badge rounded-pill d-inline-block"}, 'v1.2')
          ]),
          m('div', {class: "col-12 col-md"}, [
            m('div', {class: "row mb-1"},
              m('a', {href: nav.commit(commit.hash), class: "commit-msg"}, commit.message.split('\n').slice(0, 1))
            ),
            m('div', {class: "row mb-3 mb-lg-0"}, [
              m('div', {class: "col d-flex flex-direction-row align-items-center flex-wrap"}, [
                m('span', {class: "author me-2"}, commit.author),
                // TODO: if the user has a verified website, put it here
                // m('span', {class: "bg-primary badge rounded-pill me-2"}, 'tuckerm.us'),
                m('span', {class: "copy-sha"}, [
                  m('span', {class: "sha font-monospace me-1"}, commit.hash.slice(0, 6)),
                  m('a', {href: "#"}, 'Copy')
                ])
              ])
            ])
          ]),
          m('div', {class: "col col-lg-4"}, [
            m('div', {class: "row"}, [
              m('div', {class: "col-auto language-names pe-1"}, [
                m('div', 'js'),
                m('div', 'css'),
                m('div', 'md'),
                m('div', 'other'),
              ]),
              m('div', {class: "col ps-0"}, [
                m('div', {class: "flex-grow-1 d-flex"}, [
                  m('div', {class: "lang-diff plus-1"}, '+510'),
                  m('div', {class: "lang-diff minus-1"}, '-245')
                ]),
                m('div', {class: "flex-grow-1 d-flex"}, [
                  m('div', {class: "lang-diff plus-2 text-white"}, '+314'),
                  m('div', {class: "lang-diff minus-2 text-white"}, '-275')
                ]),
                m('div', {class: "flex-grow-1 d-flex"}, [
                  m('div', {class: "lang-diff plus-3 text-white"}, '+45'),
                  m('div', {class: "lang-diff minus-3 text-white"}, '-20')
                ]),
                m('div', {class: "flex-grow-1 d-flex"}, [
                  m('div', {class: "lang-diff plus-4 text-white"}, '+890'),
                  m('div', {class: "lang-diff minus-4 text-white"}, '-789')
                ])
              ])
            ])
          ])
        ]),
      ]
    })),
    m('nav',
      m('ul', {class: "pagination"},
        pagesJustForRef(
          data.paginatedPatches,
          data.patchPage.repoName,
          data.patchPage.refName,
          data.patchPage.type,
        ).map((pageObj) => {
          return m('li', {class: "page-item"},
            m('a', {
              class: `page-link ${pageObj.pageNumber === data.patchPage.pageNumber ? 'active' : ''}`,
              href: `${nav.commits(pageObj.pageNumber)}`,
            }, pageObj.pageNumber)
          )
        })
      )
    )
  ]

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