Skip to main content

max / makenotwork

1.3 KB · 33 lines History Blame Raw
1 (function() {
2 var cfg = document.getElementById('tab-project-code-cfg');
3 var projectSlug = cfg.dataset.projectSlug;
4 var btn = document.getElementById('create-repo-btn');
5 var input = document.getElementById('create-repo-name');
6 var status = document.getElementById('create-repo-status');
7 if (!btn || !input) return;
8 btn.addEventListener('click', function() {
9 var name = input.value.trim();
10 if (!name) return;
11 btn.disabled = true;
12 fetch('/api/repos', {
13 method: 'POST',
14 headers: {'Content-Type': 'application/json', ...csrfHeaders()},
15 body: JSON.stringify({name: name})
16 }).then(function(r) {
17 if (r.ok) {
18 htmx.ajax('GET', '/dashboard/project/' + projectSlug + '/tabs/code', {target: '#tab-content', swap: 'innerHTML'});
19 } else {
20 return r.json().then(function(data) {
21 status.textContent = data.error || 'Failed to create repository';
22 status.classList.add('is-error');
23 });
24 }
25 }).catch(function() {
26 status.textContent = 'Network error';
27 status.classList.add('is-error');
28 }).finally(function() {
29 btn.disabled = false;
30 });
31 });
32 })();
33