Skip to main content

max / makenotwork

3.6 KB · 76 lines History Blame Raw
1 {%- import "partials/_ui.html" as ui -%}
2 {% if git_enabled %}
3 <div id="tab-project-code-cfg" hidden data-project-id="{{ project.id }}" data-project-slug="{{ project.slug }}"></div>
4 <div class="tab-docs"><a href="/docs/git">Docs: Git &rarr;</a> <a href="/dashboard?tab=settings&amp;section=ssh-keys" class="proj-code-docs-link">Manage SSH Keys &rarr;</a></div>
5
6 <div class="form-section" id="git-repos-section">
7 <h2 class="subsection-title">Git Repositories</h2>
8
9 {% if !linked_repos.is_empty() %}
10 <div class="proj-code-linked-list">
11 <label>Linked Repositories</label>
12 {% for repo in &linked_repos %}
13 <div class="proj-code-repo">
14 <div class="proj-code-repo-row">
15 <a href="/git/{{ repo.name }}" class="proj-code-repo-link">{{ repo.name }}</a>
16 {{ crate::quasi::repo_acts::unlink_html(project.id, repo.name)|safe }}
17 </div>
18 {% if !repo.collaborators.is_empty() %}
19 <div class="proj-code-collab-block">
20 <label class="proj-code-collab-label">Collaborators</label>
21 {% for c in &repo.collaborators %}
22 <div class="proj-code-collab-row">
23 <span class="proj-code-collab-name">@{{ c.username }}{% if !c.can_push %} <span class="proj-code-collab-readonly">(read only)</span>{% endif %}</span>
24 {{ crate::quasi::repo_acts::remove_collaborator_html(repo.id, repo.name, c.user_id, c.username)|safe }}
25 </div>
26 {% endfor %}
27 </div>
28 {% endif %}
29 <div class="proj-code-collab-block">
30 <div class="proj-code-add-collab-row">
31 <input type="text" placeholder="Username" class="collab-username-input" data-repo-id="{{ repo.id }}">
32 <button class="btn-secondary small collab-add-btn" data-repo-id="{{ repo.id }}">Add Collaborator</button>
33 </div>
34 </div>
35 </div>
36 {% endfor %}
37 </div>
38 <script src="/static/tab-project-code-collab.js?v=0623"></script>
39 {% endif %}
40
41 {% if !available_repos.is_empty() %}
42 <div>
43 <label for="link-repo-select">Link a Repository</label>
44 <div class="proj-code-link-row">
45 <select id="link-repo-select">
46 <option value="">Select a repository...</option>
47 {% for repo in &available_repos %}
48 <option value="{{ repo.name }}">{{ repo.name }}</option>
49 {% endfor %}
50 </select>
51 <button class="btn-secondary" id="link-repo-btn">Link</button>
52 </div>
53 <div class="hint">Choose from your unlinked repositories.</div>
54 </div>
55 <script src="/static/tab-project-code-link.js?v=0623"></script>
56 {% else if linked_repos.is_empty() %}
57 {% call ui::empty_state("", "No repositories available. Create one below or push to the server.") %}{% endcall %}
58 {% endif %}
59
60 <div class="proj-code-create-section">
61 <label for="create-repo-name">Create Repository</label>
62 <div class="proj-code-link-row">
63 <input type="text" id="create-repo-name" placeholder="repo-name" pattern="[a-zA-Z0-9._-]+" title="Letters, numbers, hyphens, underscores, and dots">
64 <button class="btn-secondary" id="create-repo-btn">Create</button>
65 </div>
66 <div class="hint">Creates a bare git repository on the server.</div>
67 <div id="create-repo-status" class="proj-code-create-status"></div>
68 </div>
69 <script src="/static/tab-project-code-create.js?v=0623"></script>
70 </div>
71 {% else %}
72 <div class="proj-code-disabled">
73 <p>Git hosting is not configured on this server.</p>
74 </div>
75 {% endif %}
76