jmou/cgithub
git clone https://github.com/jmou/cgithub.git
git clone git@github.com:jmou/cgithub.git
Loading…
(top)/views/_nav.eta
1.53 KB / 34 lines / 34 loc
History
View raw
<section>
  <%
  const isCommitHash = /^[0-9a-f]{40}$/.test(it.branch);
  const refLabel = isCommitHash ? it.branch.slice(0, 7) : it.branch;
  %>
  <button type="button" class="ref-selector-button branch" command="show-modal" commandfor="ref-selector-menu">
    <img src="/static/icons/git-branch.svg" alt="branch" class="icon"> <%= refLabel %> ▾
  </button>
  <dialog class="ref-selector-menu" id="ref-selector-menu" closedby="any" data-owner="<%= it.repo.owner %>" data-repo="<%= it.repo.name %>" data-view="<%= it.view %>"<% if (it.path && it.path !== "/") { %> data-path="<%= it.path %>"<% } %>>
    <div class="ref-selector-tabs">
      <button type="button" class="active" data-ref-type="branches">Branches</button>
      <button type="button" data-ref-type="tags">Tags</button>
    </div>
    <div class="ref-selector-list">Loading…</div>
  </dialog>
  <% if (it.path && it.path !== "/") { %>
    <%
    const crumbHrefBase = `/${it.repo.owner}/${it.repo.name}/${it.view === "blob" ? "tree" : it.view}/${it.branch}`;
    %>
    <a href="<%= crumbHrefBase %>">(top)</a><%
    const pathParts = it.path.split('/').filter(p => p);
    let currentPath = '';
    for (let i = 0; i < pathParts.length; i++) {
      const part = pathParts[i];
      currentPath += (currentPath ? '/' : '') + part;
      const isLast = i === pathParts.length - 1;
      if (isLast) {
        %>/<%= part %><%= it.view === "tree" ? "/" : "" %><%
      } else {
        %>/<a href="<%= crumbHrefBase %>/<%= currentPath %>"><%= part %></a><%
      }
    } %>
  <% } %>
</section>