summaryrefslogtreecommitdiffstats
path: root/web_src/js/features/repo-branch.js
diff options
context:
space:
mode:
Diffstat (limited to 'web_src/js/features/repo-branch.js')
-rw-r--r--web_src/js/features/repo-branch.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/web_src/js/features/repo-branch.js b/web_src/js/features/repo-branch.js
new file mode 100644
index 0000000..b9ffc61
--- /dev/null
+++ b/web_src/js/features/repo-branch.js
@@ -0,0 +1,42 @@
+import $ from 'jquery';
+import {toggleElem} from '../utils/dom.js';
+
+export function initRepoBranchButton() {
+ initRepoCreateBranchButton();
+ initRepoRenameBranchButton();
+}
+
+function initRepoCreateBranchButton() {
+ // 2 pages share this code, one is the branch list page, the other is the commit view page: create branch/tag from current commit (dirty code)
+ for (const el of document.querySelectorAll('.show-create-branch-modal')) {
+ el.addEventListener('click', () => {
+ const modalFormName = el.getAttribute('data-modal-form') || '#create-branch-form';
+ const modalForm = document.querySelector(modalFormName);
+ if (!modalForm) return;
+ modalForm.action = `${modalForm.getAttribute('data-base-action')}${el.getAttribute('data-branch-from-urlcomponent')}`;
+
+ const fromSpanName = el.getAttribute('data-modal-from-span') || '#modal-create-branch-from-span';
+ document.querySelector(fromSpanName).textContent = el.getAttribute('data-branch-from');
+
+ $(el.getAttribute('data-modal')).modal('show');
+ });
+ }
+}
+
+function initRepoRenameBranchButton() {
+ for (const el of document.querySelectorAll('.show-rename-branch-modal')) {
+ el.addEventListener('click', () => {
+ const target = el.getAttribute('data-modal');
+ const modal = document.querySelector(target);
+ const oldBranchName = el.getAttribute('data-old-branch-name');
+ modal.querySelector('input[name=from]').value = oldBranchName;
+
+ // display the warning that the branch which is chosen is the default branch
+ const warn = modal.querySelector('.default-branch-warning');
+ toggleElem(warn, el.getAttribute('data-is-default-branch') === 'true');
+
+ const text = modal.querySelector('[data-rename-branch-to]');
+ text.textContent = text.getAttribute('data-rename-branch-to').replace('%s', oldBranchName);
+ });
+ }
+}