2022-01-28 13:00:11 -08:00
import $ from 'jquery' ;
2024-07-07 17:32:30 +02:00
import { toggleElem } from '../utils/dom.ts' ;
2022-01-28 13:00:11 -08:00
2021-10-17 01:28:04 +08:00
export function initRepoBranchButton() {
2023-04-30 23:08:51 +08:00
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)
2024-03-27 12:40:21 +02:00
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' ) } ` ;
2022-02-09 20:28:55 +00:00
2024-03-27 12:40:21 +02:00
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' ) ;
} ) ;
}
2021-10-17 01:28:04 +08:00
}
2023-04-30 23:08:51 +08:00
function initRepoRenameBranchButton() {
2024-03-27 12:40:21 +02:00
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 ;
2023-04-30 23:08:51 +08:00
2024-03-27 12:40:21 +02:00
// 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' ) ;
2023-05-05 06:54:38 +08:00
2024-03-27 12:40:21 +02:00
const text = modal . querySelector ( '[data-rename-branch-to]' ) ;
text . textContent = text . getAttribute ( 'data-rename-branch-to' ) . replace ( '%s' , oldBranchName ) ;
} ) ;
}
2023-04-30 23:08:51 +08:00
}