2022-01-29 00:00:11 +03:00
import $ from 'jquery' ;
2022-12-23 19:03:11 +03:00
import { attachTribute } from './tribute.js' ;
2021-10-16 20:28:04 +03:00
import { initCompMarkupContentPreviewTab } from './comp/MarkupContentPreview.js' ;
2021-12-10 05:51:27 +03:00
import { initEasyMDEImagePaste } from './comp/ImagePaste.js' ;
2022-01-05 15:17:25 +03:00
import { createCommentEasyMDE } from './comp/EasyMDE.js' ;
2023-03-10 19:42:38 +03:00
import { hideElem , showElem } from '../utils/dom.js' ;
2021-10-16 20:28:04 +03:00
export function initRepoRelease ( ) {
$ ( document ) . on ( 'click' , '.remove-rel-attach' , function ( ) {
const uuid = $ ( this ) . data ( 'uuid' ) ;
const id = $ ( this ) . data ( 'id' ) ;
$ ( ` input[name='attachment-del- ${ uuid } '] ` ) . attr ( 'value' , true ) ;
2023-02-19 07:06:14 +03:00
hideElem ( $ ( ` #attachment- ${ id } ` ) ) ;
2021-10-16 20:28:04 +03:00
} ) ;
}
2023-03-10 19:42:38 +03:00
export function initRepoReleaseNew ( ) {
const $repoReleaseNew = $ ( '.repository.new.release' ) ;
if ( ! $repoReleaseNew . length ) return ;
2021-10-16 20:28:04 +03:00
2023-03-10 19:42:38 +03:00
initTagNameEditor ( ) ;
initRepoReleaseEditor ( ) ;
}
function initTagNameEditor ( ) {
const el = document . getElementById ( 'tag-name-editor' ) ;
if ( ! el ) return ;
const existingTags = JSON . parse ( el . getAttribute ( 'data-existing-tags' ) ) ;
if ( ! Array . isArray ( existingTags ) ) return ;
const defaultTagHelperText = el . getAttribute ( 'data-tag-helper' ) ;
const newTagHelperText = el . getAttribute ( 'data-tag-helper-new' ) ;
const existingTagHelperText = el . getAttribute ( 'data-tag-helper-existing' ) ;
document . getElementById ( 'tag-name' ) . addEventListener ( 'keyup' , ( e ) => {
const value = e . target . value ;
if ( existingTags . includes ( value ) ) {
// If the tag already exists, hide the target branch selector.
hideElem ( '#tag-target-selector' ) ;
document . getElementById ( 'tag-helper' ) . innerText = existingTagHelperText ;
} else {
showElem ( '#tag-target-selector' ) ;
if ( value ) {
document . getElementById ( 'tag-helper' ) . innerText = newTagHelperText ;
} else {
document . getElementById ( 'tag-helper' ) . innerText = defaultTagHelperText ;
}
}
} ) ;
}
function initRepoReleaseEditor ( ) {
2021-10-16 20:28:04 +03:00
const $editor = $ ( '.repository.new.release .content-editor' ) ;
if ( $editor . length === 0 ) {
2023-02-01 22:14:40 +03:00
return ;
2021-10-16 20:28:04 +03:00
}
2022-01-05 15:17:25 +03:00
( async ( ) => {
const $textarea = $editor . find ( 'textarea' ) ;
2023-02-01 22:14:40 +03:00
await attachTribute ( $textarea . get ( ) , { mentions : true , emoji : true } ) ;
2022-01-05 15:17:25 +03:00
const easyMDE = await createCommentEasyMDE ( $textarea ) ;
initCompMarkupContentPreviewTab ( $editor ) ;
2022-06-28 20:52:58 +03:00
const $dropzone = $editor . parent ( ) . find ( '.dropzone' ) ;
initEasyMDEImagePaste ( easyMDE , $dropzone ) ;
2022-01-05 15:17:25 +03:00
} ) ( ) ;
2021-10-16 20:28:04 +03:00
}